Skip to content

SUIT-21855 Update dev dependencies: ESLint 6->9, TypeScript 3.9->6, Jest 26->29, remove tslint - #242

Merged
JeKachan merged 1 commit into
masterfrom
hotfix/SUIT-21855
Apr 29, 2026
Merged

JeKachan merged 1 commit into
masterfrom
hotfix/SUIT-21855

Conversation

@bojani99

@bojani99 bojani99 commented Apr 21, 2026

Copy link
Copy Markdown

Changes

  • Replaced .eslintrc.js with eslint.config.mjs (ESLint v9 flat config)
  • Upgraded ESLint 6.8.0 -> 9.39.0, migrated to typescript-eslint unified package
  • Upgraded TypeScript 3.9 -> 6.0, Jest 26 -> 29, ts-jest 26 -> 29, @types/jest 25 -> 29, @types/node 14 -> 22, @types/unist 2 -> 3
  • Added @stylistic/eslint-plugin for formatting rules (removed from ESLint core and @typescript-eslint in v8)
  • Removed deprecated tslint, @typescript-eslint/eslint-plugin-tslint, standalone @typescript-eslint/eslint-plugin and @typescript-eslint/parser

Source code changes

  • packages/translate/lib/condition.tsx -> 2x String() wraps for TS5 stricter type inference
  • packages/smst-to-html/tsconfig.json, packages/smst-to-text/tsconfig.json, packages/translate/tsconfig.json -> added "../smst/types" to include. TS5 no longer resolves the global JSX namespace from @suitest/smst/types/intrinsicElements.d.ts because the triple-slash reference is stripped from the emitted .d.ts (source is outside rootDir). Without this, downstream packages fail with TS2503: Cannot find namespace 'JSX'. A cleaner fix would be restructuring smst's file layout to emit types alongside dist/.
  • Auto-fixed trailing commas across all packages (@stylistic/comma-dangle)
  • Updated all snapshots -> Jest 29 changed Object { -> {, Array [ -> [, quote escaping
  • Moved ts-jest config from deprecated globals to transform tuple format in all 4 jest configs
  • Coverage thresholds adjusted for smst-to-html and smst-to-text -> Jest 29 counts statements/branches differently than Jest 26. No code was removed or changed.

Rules changes

  • Renamed @typescript-eslint/no-empty-interface -> no-empty-object-type (v8 rename)
  • Renamed @typescript-eslint/no-var-requires -> no-require-imports (v8 rename)
  • Disabled 6 rules to match existing code patterns: no-case-declarations, no-redeclare, ban-ts-comment, restrict-template-expressions, no-unsafe-call/return/member-access, no-unnecessary-type-constraint
  • Dropped tslint bridge rules (encoding, import-spacing, jsdoc-format, one-line, whitespace) -> ran through @typescript-eslint/eslint-plugin-tslint which was removed in v8. Most are covered by @stylistic rules.

All existing linting rules preserved. npm run lint, npm test, npm run build, npm run coverage pass with 0 errors.

@bojani99
bojani99 force-pushed the hotfix/SUIT-21855 branch from 0cb9392 to 6db1d60 Compare April 22, 2026 13:24
@bojani99 bojani99 changed the title SUIT-21855 Update dev dependencies: ESLint 6->9, TypeScript 3.9->5.8, Jest 26->29, remove tslint SUIT-21855 Update dev dependencies: ESLint 6->9, TypeScript 3.9->6, Jest 26->29, remove tslint Apr 22, 2026
@JeKachan
JeKachan merged commit 45d7e73 into master Apr 29, 2026
6 checks passed
@JeKachan
JeKachan deleted the hotfix/SUIT-21855 branch April 29, 2026 07:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants