chore(js-client): bump npm dependencies#92
Open
claude[bot] wants to merge 15 commits into
Open
Conversation
Run nx migrate to latest 20.x (20.8.4). Bump nx and @nx/* packages. Align required optional peers of the Nx 20 toolchain: - eslint-config-prettier 9.1.0 -> 10.1.8 (required by @nx/eslint-plugin@20) - verdaccio ^5.0.4 -> 6.7.4 (required by @nx/js@20) Apply nx.json migration (useLegacyCache). Out-of-scope packageJsonUpdates from nx migrate (typescript, jest, @swc/cli, @types/jest) were reverted. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Bump minor/patch versions of dev dependencies (excluding Nx-managed packages: nx, @nx/*, @swc/*, @swc-node/*, rollup). Includes: - @leancodepl/eslint-config & prettier-config 7.5.0 -> 7.8.2 - @typescript-eslint/* 7.17.0 -> 7.18.0 - typescript 5.5.4 -> 5.9.3 - prettier ^3.3.3 -> ^3.9.4 - eslint 8.57.0 -> 8.57.1, eslint-plugin-prettier 5.2.1 -> 5.5.6 - jest/jest-environment-jsdom ^29.4.1 -> ^29.7.0, ts-jest ^29.1.0 -> ^29.4.11 - lerna 8.1.7 -> 8.2.4, @types/* aligned within existing majors Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Migrate the js-client workspace from legacy .eslintrc to ESLint 9 flat config, matching the setup used by leancodepl/js_corelibrary. - Replace .eslintrc.base.json / packages/pipe/.eslintrc.json / .eslintignore with eslint.config.mjs (root + per-package), built on @leancodepl/eslint-config. - eslint 8 -> ^9.39.4; drop @typescript-eslint/parser + @typescript-eslint/eslint-plugin in favour of the unified typescript-eslint 8.62.1; drop eslint-plugin-prettier. - Bump @leancodepl/eslint-config + @leancodepl/prettier-config 7.8.2 -> 10.5.2 and add @leancodepl/resolve-eslint-flat-config 10.5.2. - Repoint nx.json lint inputs at eslint.config.mjs; simplify .prettierrc.js. - Bump Node 20 -> 24.13 (.nvmrc) to satisfy the @leancodepl linting packages' engines (node >=22); CI reads node-version-file: js-client/.nvmrc. - Apply the resulting lint --fix and prettier reformat. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
…nsform @leancodepl/utils 10.5.2 (and its @leancodepl/api-date dependency) now ship as ESM. Bump the runtime dependency of @leancodepl/pipe from >=7.0.0 to >=10.0.0 and make it work under the CommonJS jest run. - Add transformIgnorePatterns to packages/pipe/jest.config.ts so @swc/jest transforms the @leancodepl/* ESM packages to CJS instead of ignoring them (tiny-invariant resolves to its CJS build via require and needs no transform). - Raise the published package engines to node >=22 to match @leancodepl/utils 10. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Runtime minor bump. lint + build green on Node 24; only the egress-blocked live-backend integration test fails (403 Host not in allowlist), unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Runtime patch bump. lint + build green on Node 24; only the egress-blocked integration test fails (403), unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Runtime in-range bump. lint + build green on Node 24; only the egress-blocked integration test fails (403), unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Aligns the Node type definitions with the Node 24 toolchain (.nvmrc 24.13). lint + build green on Node 24; only the egress-blocked integration test fails (403), unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Runtime major (8 -> 10). lint + build + compile/import all green on Node 24; only the egress-blocked integration test fails (403). signalr 10 ships a patched `ws`, so `npm audit --omit=dev` now reports 0 runtime vulnerabilities. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Ran `nx migrate latest` (nx + all @nx/* 20.8.4 -> 23.0.1) and applied all 37 migrations, then removed migrations.json. Kept eslint on 9.39.x to match js_corelibrary. Nx 23 ships @nx/jest 23 (jest 30-compatible), which resolves the previously blocking `clearMocksOnScope is not a function` error under @nx/jest 20. The migrate therefore also lands: - jest 29.7 -> 30.3.0, jest-environment-jsdom 30.0.5, @types/jest 30.0.0 (+ pinned jest-util 30.0.5) - @swc/jest 0.2.36 -> 0.2.39, @swc/core 1.5.7 -> 1.15.8, @swc/helpers 0.5.12 -> 0.5.23, @swc-node/register 1.9.2 -> 1.11.1 Two peer-dependency fixes needed by Nx 23 (were transitively provided by Nx 20): - @swc/cli 0.3.14 -> 0.8.1 (@nx/js@23 peer: >=0.6.0 <0.9.0) - add rollup ^4.62.2 (@nx/rollup@23 no longer bundles rollup; declares it a peer) Migration edits: nx.json drops `useLegacyCache`; jest.config.ts files converted to CommonJS require/module.exports (the @leancodepl ESM transformIgnorePatterns fix is preserved); project.json `tags` reordered. lint + build green on Node 24; jest 30 compiles, imports and executes the spec (no clearMocksOnScope error) -- only the egress-blocked live-backend integration test fails (403). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Release/versioning tooling. Verified `lerna list` succeeds (finds @leancodepl/pipe) and installs clean against nx 23. lint + build green on Node 24; only the egress-blocked integration test fails (403). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
…il 30.4.1) Latest within the jest 30 line that nx 23 unblocked. lint + build green on Node 24; jest still runs cleanly (no clearMocksOnScope) -- only the egress-blocked integration test fails (403). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Latest patch within the 1.15 line nx 23 pinned. lint + build + jest all green on Node 24; only the egress-blocked integration test fails (403). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
Komoszek
reviewed
Jul 6, 2026
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
- add trailing newline to js-client/.gitignore and .prettierignore (nx migration appended entries without one) - expand the eslint.config.mjs `**/*.json` block comment to explain it is required for @nx/dependency-checks to run on package.json; without it ESLint matches no config for package.json and silently skips it Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ET2dL5CiUkuFR1ZGiUrUH
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
Dependency-maintenance pass on the
js-client/package (the Nx + Lerna workspace that publishes@leancodepl/pipe).Before: eslint 8 legacy
.eslintrc, Node 20, Nx 19 + jest 29,@leancodepl/*on 7.x,@microsoft/signalr8.After: shared flat-config ESLint 9 (matching js_corelibrary), Node 24, Nx 23 + jest 30,
@leancodepl/*on 10.5.2,@microsoft/signalr10. Lint and build are green on Node 24; the only failing test is an egress-blocked live integration test (details below).Only the
js-client/package is touched.What changed
Nx 19.5.2 → 23.0.1 + jest 29 → 30
nx,@nx/eslint,@nx/eslint-plugin,@nx/jest,@nx/js,@nx/rollup,@nx/workspaceall19.5.2 → 23.0.1.@swc/cli0.3.14 → 0.8.1, androllupadded (^4.62.2) because@nx/rollup@23declares rollup a peer instead of bundling it (build failed withCannot find module 'rollup'until added).jest.config.tsfiles converted from ESM (import/export default) to CommonJS (require/module.exports), keeping the@leancodeplESMtransformIgnorePatterns;nx.jsonlint/production inputs repointed from.eslintrc.jsontoeslint.config.mjs;packages/pipe/project.jsontagsreordered.@nx/jest@19clearMocksOnScope is not a functionerror is gone since@nx/jest@23is jest-30-compatible. Related:jest-environment-jsdom→ 30.4.1,@types/jest→ 30.0.0,jest-util30.4.1 added,@swc/jest→ 0.2.39.ESLint 8 → 9 flat-config migration
Migrated to ESLint 9 flat config, matching leancodepl/js_corelibrary.
eslint.config.mjsat the workspace root spreading@nx/eslint-pluginflat/base+flat/typescript+flat/javascript, plus@leancodepl/eslint-config'sbase+importsonly (SignalR/rxjs library — no React/a11y). Thinpackages/pipe/eslint.config.mjsre-exports it..eslintrc.base.json,packages/pipe/.eslintrc.json, and.eslintignoredeleted.eslint8.57.0 → ^9.39.4; unifiedtypescript-eslint8.62.1added, replacing the separate@typescript-eslint/parser+@typescript-eslint/eslint-plugin(7.17.0, removed);eslint-plugin-prettier(5.2.1) removed;eslint-config-prettier9.1.0 → 10.1.8; prettier resolved via@leancodepl/prettier-config.@nx/dependency-checkslives in a dedicated**/*.jsonblock (jsonc parser) with@typescript-eslint/naming-conventiondisabled there — the shared@leancodeplbase applies type-aware naming-convention globally, which crashes under the JSON parser onpackage.json.packages/pipe/src/lib/pipe.ts(indentation and import order only, no logic change).@leancodepl/*and runtime bumps@leancodepl/eslint-configand@leancodepl/prettier-config7.5.0 → 10.5.2;@leancodepl/resolve-eslint-flat-config10.5.2added.@leancodepl/utils>=7.0.0 → >=10.0.0(now ESM). Because jest runs CommonJS, a naive bump breaks tests withCannot use import statement outside a module; fixed bytransformIgnorePatterns: ["node_modules/(?!(@leancodepl)/)"]inpackages/pipe/jest.config.tsso@swc/jesttransforms@leancodepl/*ESM to CJS.lerna8.1.7 → 9.0.7;@microsoft/signalr8.0.7 → 10.0.0(ships a patchedws, sonpm audit --omit=devreports 0 vulnerabilities);rxjs7.8.1 → 7.8.2;lodash4.17.21 → 4.18.1;tslib^2.3.0 → ^2.8.1;@types/node18.19.9 → 24.13.2(kept Node-24-aligned);@swc/core1.5.7 → 1.15.43;typescript5.5.4 → 5.9.3;verdaccio^5.0.4 → 6.7.4; plusprettier,ts-jest,@types/lodash,@swc-node/register,@swc/helpers.Node 20 → 24
.nvmrc20 → 24.13, which also cleanly satisfies the@leancodepllinting packages'engines.node >=22.@leancodepl/pipeengines.noderaised>=18 → >=22.Test status
Verified on Node 24: lint (
nx lint pipe) and build (nx build pipe) are green. Tests pass except the single live-backend integration test (packages/pipe/__tests__/pipe.spec.ts), which hitshttps://api.exampleapp.test.lncd.pland fails only because the sandbox blocks that host by egress policy (403). This is an environmental limitation, not a code failure — the spec compiles, imports, and executes cleanly (noclearMocksOnScopeerror), and only the network call fails. It is expected to pass in CI where the backend is reachable.Held / needs a maintainer decision
5.9.3. TS 6 turns thebaseUrldeprecation into a hard build error (TS5101), andtsconfig.base.jsonusesbaseUrl: "."for the@leancodepl/pipepath mapping. Adopting it needs a tsconfig migration (dropbaseUrl+ rebasepaths, or addignoreDeprecations). Deferred to its own PR.9.39.xto match js_corelibrary.24.xto stay aligned with the Node 24 runtime; opt in if the toolchain moves to Node 26.