@thiagoralves it would be a good idea to update the dependencies but only when you finished with the last phase and before next release.
Update all outdated packages. Impact analysis below.
Non-major (low risk, just run npm update)
| Package |
Current |
Latest |
Impact |
| chevrotain |
11.0.3 |
11.2.0 |
patch/minor fixes to the parser DSL; no API changes expected |
| esbuild |
0.27.0 |
0.27.3 |
bundler bug fixes; no config changes needed |
| prettier |
3.7.4 |
3.8.1 |
formatter updates; may reformat some files, run npm run format after |
Major bumps (require manual migration work)
vitest + @vitest/coverage-v8: 1.x → 4.x
Impact: medium. 3 major versions (v2, v3, v4). Key breaking changes:
- v2:
vi.spyOn and expect type changes; browser mode API overhaul (not used here)
- v3: Reporter API rewritten (
onTaskUpdate removed); workspace config moved inline; test filtering by line number added
- v4: (incremental on v3, mostly performance/stability)
- Action needed: check
vite.config.ts reporter usage; likely zero code changes needed since this project uses only basic describe/it/expect/beforeEach APIs. Run tests and fix any failures.
@typescript-eslint/eslint-plugin + @typescript-eslint/parser: 7.x → 8.x
Impact: medium. Key breaking changes:
ban-types rule deleted; replaced by no-empty-object-type, no-unsafe-function-type, no-wrapper-object-types — current config uses recommended which inherited ban-types; will get new rules automatically
no-var-requires deprecated in favour of no-require-imports
no-throw-literal removed in favour of only-throw-error
recommended-requiring-type-checking renamed to recommended-type-checked — current .eslintrc.cjs uses old name; must update
- Requires ESLint
^8.57.0 (already satisfied) and Node ^18.18.0 || ^20.9.0 (satisfied)
- Action needed: rename
plugin:@typescript-eslint/recommended-requiring-type-checking → plugin:@typescript-eslint/recommended-type-checked in .eslintrc.cjs; fix any new lint errors surfaced by added rules
eslint: 8.x → 10.x
Impact: high. Two major jumps (v9, v10):
- v9: Legacy
.eslintrc.* config format still supported but deprecated; flat config (eslint.config.*) is now default
- v10: Drops Node 18 support (requires Node 20+, satisfied); removes several long-deprecated formatters and rules
- Blocker: current config uses legacy
.eslintrc.cjs format. v9/v10 will warn on every run. Full migration to flat config (eslint.config.mjs) is needed to silence warnings and stay supported.
- Action needed: migrate
.eslintrc.cjs → eslint.config.mjs with flat config syntax; also bumps typescript-eslint dependency since v8 of that package added ESLint v9 support
lint-staged: 15.x → 16.x
Impact: low. Breaking changes:
- Drops
--shell flag (not used in this project's config)
- Switches subprocess runner from
execa to nano-spawn; bare JS scripts now need explicit node prefix on Windows
- Drops Node <20.18 (satisfied)
- Action needed: none — current config only calls
eslint and prettier --write, no shell tricks or JS scripts
@types/node: 20.x → 25.x
Impact: low. Type definitions only; no runtime effect. May expose new Node.js API types or change existing ones causing type errors.
- Action needed: run
npm run typecheck after update and fix any new type errors
Recommended order
- Non-major:
npm update chevrotain esbuild prettier
@types/node (isolated): update + typecheck
lint-staged (isolated): update + test
vitest + @vitest/coverage-v8 together: update + full test run
@typescript-eslint/* + eslint together (coupled): update + migrate .eslintrc.cjs → flat config + fix lint errors + full test run
@thiagoralves it would be a good idea to update the dependencies but only when you finished with the last phase and before next release.
Update all outdated packages. Impact analysis below.
Non-major (low risk, just run
npm update)npm run formatafterMajor bumps (require manual migration work)
vitest + @vitest/coverage-v8: 1.x → 4.x
Impact: medium. 3 major versions (v2, v3, v4). Key breaking changes:
vi.spyOnandexpecttype changes;browsermode API overhaul (not used here)onTaskUpdateremoved);workspaceconfig moved inline; test filtering by line number addedvite.config.tsreporter usage; likely zero code changes needed since this project uses only basicdescribe/it/expect/beforeEachAPIs. Run tests and fix any failures.@typescript-eslint/eslint-plugin + @typescript-eslint/parser: 7.x → 8.x
Impact: medium. Key breaking changes:
ban-typesrule deleted; replaced byno-empty-object-type,no-unsafe-function-type,no-wrapper-object-types— current config usesrecommendedwhich inheritedban-types; will get new rules automaticallyno-var-requiresdeprecated in favour ofno-require-importsno-throw-literalremoved in favour ofonly-throw-errorrecommended-requiring-type-checkingrenamed torecommended-type-checked— current.eslintrc.cjsuses old name; must update^8.57.0(already satisfied) and Node^18.18.0 || ^20.9.0(satisfied)plugin:@typescript-eslint/recommended-requiring-type-checking→plugin:@typescript-eslint/recommended-type-checkedin.eslintrc.cjs; fix any new lint errors surfaced by added ruleseslint: 8.x → 10.x
Impact: high. Two major jumps (v9, v10):
.eslintrc.*config format still supported but deprecated; flat config (eslint.config.*) is now default.eslintrc.cjsformat. v9/v10 will warn on every run. Full migration to flat config (eslint.config.mjs) is needed to silence warnings and stay supported..eslintrc.cjs→eslint.config.mjswith flat config syntax; also bumps typescript-eslint dependency since v8 of that package added ESLint v9 supportlint-staged: 15.x → 16.x
Impact: low. Breaking changes:
--shellflag (not used in this project's config)execatonano-spawn; bare JS scripts now need explicitnodeprefix on Windowseslintandprettier --write, no shell tricks or JS scripts@types/node: 20.x → 25.x
Impact: low. Type definitions only; no runtime effect. May expose new Node.js API types or change existing ones causing type errors.
npm run typecheckafter update and fix any new type errorsRecommended order
npm update chevrotain esbuild prettier@types/node(isolated): update + typechecklint-staged(isolated): update + testvitest+@vitest/coverage-v8together: update + full test run@typescript-eslint/*+eslinttogether (coupled): update + migrate.eslintrc.cjs→ flat config + fix lint errors + full test run