Repository navigation
chore(deps): bump npm dependencies - #324
Draft
claude[bot] wants to merge 7 commits into
Draft
claude[bot] wants to merge 7 commits into
claude[bot] wants to merge 7 commits into
Conversation
Lockfile-only security resolutions; package.json is untouched. Takes the workspace from 31 to 20 advisories, 0 critical. Includes favicons 7.2.0 to 7.3.1, already permitted by the declared ^7.2.0 range, which pulls a patched sharp.
…favicons 7.3.1 favicons 7.3.1 adds a required htmlTags field to FaviconResponse, so the two type-annotated fixtures here no longer conform. The plugin source only reads .html, never .htmlTags, so an empty array is the faithful stand-in.
jsdom 30 routes FileReader.readAsDataURL through @exodus/bytes, whose assertU8 guard is an `instanceof Uint8Array` check. Vitest's jsdom environment swaps the global Uint8Array binding, so that check fails across realms and throws "TypeError: Expected an Uint8Array" out of FileReaderImpl._setResult. @leancodepl/image-uploader:test then exits non-zero on three unhandled errors even though all 47 assertions pass. It only reproduces on a from-scratch npm install, which is why CI caught it and a warm local tree did not. 30.0.1 is the latest release, so there is no patch to move to. The revert costs nothing: npm audit is unchanged at 20 findings (0 critical, 19 high, 1 moderate), and the vite-plugin-favicon test that jsdom 30 was credited with fixing stays green on 29.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Requested by Łukasz Komoszyński · Slack thread
Routine dependency refresh of the workspace. Seven commits, each verified on its own; the whole branch was then verified end to end. TypeScript is deliberately kept on 5.x — see the held list below.
Only
devDependencieswere moved. Runtimedependencieswere left alone on purpose and are collected at the bottom for a maintainer decision.What moved
Nx
nxand all@nx/*A patch-level migration. Nx's out-of-scope
packageJsonUpdateswere not applied — the commit touchesnxand@nx/*only.Safe devDependencies (minor and patch)
@commitlint/cli@commitlint/config-conventional@faker-js/faker@openapitools/openapi-generator-cli@playwright/test@tanstack/react-query@tanstack/react-query-devtools@types/node@types/react@types/react-domcore-jseslint-plugin-playwrightjsonc-eslint-parserlint-stagedprettierreactreact-domsinonstylelinttestcontainerstypescript-eslintverdaccioreactandreact-domare root devDependencies only; every workspace package declares them as*, so nothing downstream is constrained by this.Majors
lernanx >=23.1.0 <24.0.0, satisfied by the Nx bump above, so it now dedupes onto the workspace's Nx instead of bundling its own Nx 22.7.8 — that alone removes ~2000 lockfile lines. The release workflow never invokeslerna; it only reads the version out oflerna.json.lernais the only major taken.jsdomwas attempted and reverted — see the held list.One source change
packages/vite-plugin-favicon/src/lib/index.test.tsgainshtmlTags: []in two type-annotated fixtures.favicons7.3.1 (pulled bynpm audit fix, and already inside the declared^7.2.0range) adds a requiredhtmlTagsfield toFaviconResponse. Keeping 7.3.1 buys a patchedsharpand clears two high advisories; the plugin source only ever reads.html, never.htmlTags, so an empty array is a faithful stand-in. It is in its own commit.What was HELD, and why
typescriptjsdomFileReader.readAsDataURLthrough@exodus/bytes, whoseassertU8guard is a realm-fragileinstanceof Uint8Arraycheck; vitest's jsdom environment swaps the globalUint8Arraybinding, so the check throwsTypeError: Expected an Uint8Arrayand breaks@leancodepl/image-uploader:test. 30.0.1 is the latest release, so there is nothing to jump to.eslinteslint-plugin-import@2.32.0,eslint-plugin-jsx-a11y@6.10.2andeslint-plugin-react@7.37.5all cap theireslintpeer at^9. ESLint 10 has to wait for that plugin set.@babel/core,@babel/preset-react@nx/js@23.1.1hard-depends on@babel/core@^7.23.2. Moving the root to 8 would fork the Babel tree into a 7 and an 8 copy.@tanstack/react-router-devtools@tanstack/react-router@^1.170.19, but that is a runtime dependency pinned at 1.170.17 and out of scope here.@tanstack/router-plugin@tanstack/react-router@^1.170.29. The whole router group has to move together.vite,@vitejs/plugin-react,rollup,@swc/*,@swc-node/*Holding
jsdomcosts nothing measurable:npm auditlands on the same 20 findings (0 critical, 19 high, 1 moderate) either way, and thevite-plugin-favicontest — the one jsdom 30 was credited with fixing, on a "Failed to resolve entry for package parse5" error — is green on jsdom 29 too, from a clean install.Two notes worth a decision, neither introduced by this PR:
viteis the largest remaining security item. It is pinned at 7.3.1 and five high advisories are fixed in 7.3.4+. Because it is Nx-managed it was left alone here, but a follow-up that moves it is worth scheduling.@types/nodeis on 26.x while.nvmrcpins Node 24.18.mainalready declared^26.1.1before this PR, so this only carries it to^26.2.0inside that major. Type definitions ahead of the runtime can typecheck code that will not run. Whoever picks this up should decide which side moves — types back to 24.x, or the runtime forward.npm audit
main)npm audit fixnpm audit fixwas run without--force; it changed the lockfile only,package.jsonis untouched by it. What remains isvite(pinned, see above) plusbrace-expansion,js-yaml,svgoandtar, all reachable only through Nx and lerna.Dependabot
All ten open dependency PRs are subsumed by this branch and should close on merge:
nanoiddompurifyfast-uriip-addressundicipostcssbrace-expansionsharp+faviconsprotobufjsaxiosVerification
Full workspace run on the final tree, from a from-scratch
npm install, nothing skipped:linttypechecktestbuildEvery commit also installs cleanly with no lockfile drift, using the same
npm installthe CI workflow runs on the Node version in.nvmrc.Runtime dependencies — maintainer decision
None of these were touched. They are listed so the call is yours.
Worth taking first
@tanstack/react-router1.170.17 → 1.170.29 (root). Patch-level only. This is the single change that unblocks@tanstack/react-router-devtoolsand@tanstack/router-plugin, both held above. Recommended.favicons^7.2.0→^7.3.1(vite-plugin-favicon). Already what the lockfile resolves; raising the declared floor passes the patchedsharpon to consumers. Adds a requiredhtmlTagsfield toFaviconResponse. Recommended.@nx/devkit^23.0.0→^23.1.1(nx-plugins). Aligns the plugin's floor with the Nx the workspace now runs. Recommended.Low-risk floor raises on published packages — each only narrows what consumers may install, so each is a minor for the library:
axios>=1.6.0→>=1.19.0(axios-cqrs-client),^1.7.9→^1.19.0(intl). Security and fetch-adapter fixes. Recommended together.rxjs>=7.0.0→>=7.8.2(antd-table-hooks,force-update,react-query-cqrs-client,rx-cqrs-client). Patch-level within 7. Low risk.@tanstack/react-query>=5.0.0→>=5.101.4(kratos,react-query-cqrs-client). Matches the version the workspace already develops against.@tanstack/react-form>=1.23.0→>=1.33.5and@radix-ui/react-slot>=1.0.0→>=1.3.3(kratos). Both additive.tslib^2.3.0→^2.8.1and@typescript-eslint/utils>=8.0.0→>=8.67.0(eslint-plugin,fetch-client). Helper and type-utility floors.parse5^8.0.1,buffer>=6.0.3,tiny-invariant>=1.3.3,intl-messageformat^11.2.13.intlandmail-translation:@formatjs/cli^6.16.18,@inquirer/checkbox^5.2.1,@inquirer/confirm^6.1.1,lodash^4.18.1,yaml^2.9.0,yargs^18.1.0.react-easy-crop^6.0.0→^6.2.3andzod^4.0.5→^4.4.3. Additive within the major.Majors that need a real decision
jsdom^29.1.1→^30.0.1(root devDependency). Blocked on the@exodus/bytesrealm bug described in the held list, not on our code. Worth retrying once jsdom or@exodus/bytesships a fix, or if vitest stops swapping the globalUint8Array.antd^5.0.0 || ^6.0.0→^6.6.0(antd-table-hooks). Dropping the^5arm cuts off consumers still on antd 5. Recommendation: hold until the consuming apps are on 6.react-dropzone^15.0.0→^20.1.0(image-uploader). Five majors of API drift; needs the component reviewed against the current hook signature. Recommendation: separate PR.chalk>=5.0.0→>=6.0.0(logger,folder-structure-cruiser). Tightens the ESM-only story and raises the Node floor. Recommendation: take it alongside a Node baseline decision.stylelint>=16→>=17,stylelint-config-recommended-scss>=14→>=17,stylelint-order>=5→>=8(stylelint-config). The devDependency side is already on 17, so these floors are lagging; moving them is a breaking change for consumers on 16. Recommendation: take as a set in its own release.Generated by Claude Code