INTER-2303 chore(deps): update all dependencies to latest supported versions#263
Conversation
- actions/checkout v4 -> v7, actions/setup-node v4 -> v6, actions/download-artifact v4 -> v8 - pnpm/action-setup pinned to v6.0.9 commit SHA - add Node 24 to the functional-test Node matrix
- typescript 5.4 -> 6.0 (capped below 7: typescript-eslint, typedoc and rollup-plugin-dts have no TS 7 support yet) - @types/node pinned to ^18 to match the >=18.17.0 engines floor - vitest & @vitest/coverage-v8 3 -> 4, lint-staged 15 -> 17, rimraf 5 -> 6, typedoc 0.27 -> 0.28, @commitlint/cli 19 -> 21, @changesets/cli, rollup, @rollup/plugin-typescript, rollup-plugin-dts, rollup-plugin-license, tslib, yaml, commitizen and dotenv (example + functional-tests) to latest - husky 9.1: prepare script 'husky install' -> 'husky'; drop deprecated hook preamble - drop tsx: run generate.mts via native Node type stripping - add corepack packageManager integrity hash - tsconfig: ignoreDeprecations '6.0' + explicit types:[node] required by TS 6 - test:dts: adapt tsc flags for TS 6; unit tests: toThrowError -> toThrow (vitest 4)
|
Coverage report
Show files with reduced coverage 🔻
Test suite run success83 tests passing in 24 suites. Report generated by 🧪jest coverage report action from 45c8f24 Show full coverage report
|
pnpm/action-setup v6 errors when both a 'version' input and a packageManager field specify pnpm. Let the corepack packageManager field be the single source of truth.
Resolve package.json/pnpm-lock.yaml conflicts: keep dep bumps from care/update-deps, adopt base's eslint stack (eslint ^10, typescript-eslint ^8, eslint-config-dx-team ^3.0.0), drop tsx. Regenerated lockfile; typescript-eslint@8.63 resolves cleanly against typescript@6.0.3.
There was a problem hiding this comment.
Pull request overview
This PR performs a broad dev-dependency/tooling refresh (Vitest, Husky, Rollup, TypeScript, etc.) while keeping the runtime/engines contract unchanged (node >=18.17.0) and updating CI workflows and local tooling to match.
Changes:
- Updated TypeScript/Vitest and related tooling; adjusted configs and tests for compatibility.
- Updated Husky setup (
preparescript + hook preambles removed) and refreshed CI actions/matrix. - Bumped ancillary dev/test dependencies (dotenv in example/functional tests, rollup plugins, etc.).
Reviewed changes
Copilot reviewed 9 out of 11 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
tsconfig.json |
Adds TS 6 deprecation bridge and pins included global types to Node. |
tests/unit-tests/sealedResults.spec.ts |
Updates Vitest assertion helpers to newer API (toThrowError → toThrow). |
tests/functional-tests/package.json |
Bumps dotenv for functional tests. |
package.json |
Updates tooling dependencies, Husky prepare script, and switches generateTypes runner. |
example/package.json |
Bumps dotenv for the example package. |
.husky/pre-push |
Removes Husky v8-era preamble; retains custom push-protection logic. |
.husky/pre-commit |
Removes Husky preamble; keeps lint-staged invocation. |
.husky/commit-msg |
Removes Husky preamble; keeps commitlint invocation. |
.github/workflows/functional_tests.yml |
Updates action versions and adds Node 24 to smoke matrix; updates pnpm setup pin. |
.github/workflows/e2e-tests.yml |
Updates checkout action version. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
husky v9 runs hooks via `sh -e`, ignoring the shebang. The bash-only `[[ =~ ]]` matcher silently failed under a POSIX sh (dash on Linux/CI), disabling the main-branch push guard. Replace it with a POSIX `case`.
🚀 Following releases will be created using changesets from this PR:@fingerprint/node-sdk@7.5.0Minor Changes
Patch Changes |
Ecosystem care Q2/2027 dependency refresh. The root package has no runtime dependencies, so every bump is dev-only and the
engines.nodecontract is unchanged (>=18.17.0).preparescripthusky install→husky; dropped the deprecated hook preambletsx—generate.mtsnow runs on native Node type-strippingpackageManagerintegrity hashcheckoutv4→v7,setup-nodev4→v6,download-artifactv4→v8,pnpm/action-setuppinned to the v6.0.9 SHA; added Node 24 to the smoke matrixDiscussion point: TypeScript capped at 6.0, not 7
Latest is 7.0.2 but
typescript-eslint(peer<6.1.0),typedocandrollup-plugin-dtsall cap at TS 6.0.x, so TS 7 would break type-aware lint, docs and.d.tsbundling at once. Pinned to~6.0.3. Pushback welcome if we'd rather hold at 5.x instead.Discussion point: @types/node pinned to ^18
Deliberately not latest (26) — pinned to the Node 18 engines floor so the build catches use of APIs missing on Node 18. Source typechecks clean against it.
No changeset
Dev-only changes,
enginesunchanged, and the regeneratedsrc/generatedApiTypes.tsis byte-identical (openapi-typescript unchanged) — no consumer-facing change, so no release.Follow-up: TS 6 deprecation bridge
Kept
moduleResolution: "node"viaignoreDeprecations: "6.0". When we move to TS 7, this becomesmoduleResolution: "node10"(identical resolver, current name).