Skip to content

chore(deps): combine 9 dependabot npm upgrades (TS 6, Vitest 4, Storybook 10, jsdom 29, @types/node 25, unicorn 64, minor/patch)#36

Merged
dionmcm merged 4 commits into
mainfrom
chore/combine-dependabot-npm-upgrades
Jun 16, 2026
Merged

chore(deps): combine 9 dependabot npm upgrades (TS 6, Vitest 4, Storybook 10, jsdom 29, @types/node 25, unicorn 64, minor/patch)#36
dionmcm merged 4 commits into
mainfrom
chore/combine-dependabot-npm-upgrades

Conversation

@dionmcm

@dionmcm dionmcm commented Jun 15, 2026

Copy link
Copy Markdown
Member

Summary

Combines 9 open dependabot npm PRs into one verified upgrade, with the TypeScript 6 migration they require. Excludes only the Vite bump (#28), which is a genuine runtime regression — see below.

Supersedes (close on merge): #34, #27, #26, #25, #24, #23, #22, #21, #19

TypeScript 5 → 6 (#27)

  • ignoreDeprecations: "6.0" on the 4 tsconfigs using moduleResolution: node (node10 now errors as deprecated).
  • Explicit types: ["node"] on those tsconfigs — TS6 no longer auto-discovers @types/node, which otherwise breaks every console / require / node:test reference.
  • VSCode client lib/target → ES2022 (code already uses Array.prototype.at; @types/node@20 incidentally supplied the lib, @types/node@25 does not).
  • Removed type assertions TS6 proves unnecessary (eslint --fix) + the imports they orphaned.

Also in this PR

Excluded: Vite 6 → 8 (#28) — kept at ^6

Vite ≥7 writes bundle output as UTF-8, which re-encodes the lone UTF-16 surrogates in the generated ANTLR serialized-ATN string to U+FFFD and corrupts the lexer at runtime (The specified lexer action type undefined is not valid). This breaks every consumer of the ecl-core bundle (LSP server, Slack bot, editors). Confirmed on both Vite 7.3.5 and 8.0.3; only Vite 6 emits the ATN as \uXXXX escapes. Standard charset/escape fixes don't engage in Vite's lib pipeline (the corruption happens before they can act). #28 stays open pending dedicated investigation / upstream fix.

Test plan

  • npm run compile — clean
  • npm run lint — 0 errors (4 pre-existing no-non-null-assertion warnings, unrelated)
  • npm run format:check — clean
  • npm testall pass: ecl-core 1640, ecl-lsp-server 81, ecl-editor-core 74, ecl-editor-react 33, ecl-editor 34, ecl-slack-bot 226

🤖 Generated with Claude Code

dionmcm and others added 4 commits June 16, 2026 13:42
…4, Storybook 10, jsdom 29, @types/node 25, unicorn 64, minor/patch group)

Combines dependabot PRs #34, #27, #26, #25, #24, #23, #22, #21, #19 into one
verified upgrade. Excludes #28 (Vite 6→8) — see below.

TypeScript 5→6 migration (#27):
- Add `ignoreDeprecations: "6.0"` to the 4 tsconfigs using `moduleResolution: node`
  (node10 errors as deprecated in TS6).
- Add explicit `types: ["node"]` to those tsconfigs — TS6 no longer auto-discovers
  @types/node, which otherwise breaks every `console`/`require`/`node:test` reference.
- Bump the VSCode client's lib/target to ES2022 (it already uses Array.prototype.at;
  @types/node@20 incidentally supplied the lib, @types/node@25 does not).
- Remove type assertions TS6 now proves unnecessary (eslint --fix) and the imports
  they orphaned.

Other fixes surfaced by the bumps:
- EclEditor.tsx: annotate the @monaco-editor/react OnMount params explicitly;
  monaco-editor 0.55 makes them resolve to `error` under typed-linting.

EXCLUDED — Vite (#28), kept at ^6: Vite ≥7 writes bundle output as UTF-8, which
re-encodes the lone UTF-16 surrogates in the generated ANTLR serialized-ATN string
to U+FFFD and corrupts the lexer at runtime ("The specified lexer action type
undefined is not valid"). This breaks every consumer of the ecl-core bundle (LSP
server, slack bot, editors). Confirmed on both Vite 7.3.5 and 8.0.3; only Vite 6
emits the ATN as \uXXXX escapes. Needs dedicated investigation/upstream fix.

Verified: compile clean, lint 0 errors, npm test all pass
(ecl-core 1640, ecl-lsp-server 81, editor-core 74, editor-react 33, editor 34,
slack-bot 226).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…NSES

Two CI fixes for the combined upgrade:
- @types/vscode: revert ^1.120.0 -> ^1.75.0. vsce rejects @types/vscode newer
  than engines.vscode (^1.75.0), and @types/vscode should track the *minimum*
  supported VSCode anyway — dependabot bumping it ahead of engines was wrong.
- Regenerate THIRD-PARTY-LICENSES.txt for the updated dependency set so
  `licenses:check` passes.

(The `security` job's axios advisories are pre-existing on main and unrelated
to this upgrade.)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Storybook 10 evaluates .storybook/main.ts as an ESM module, where __dirname
is undefined — the workspace alias resolution (path.resolve(__dirname, ...))
threw "ReferenceError: __dirname is not defined", so `storybook dev` failed
to start and the e2e-tests job (Playwright webServer) errored.

Add an import.meta.url-based __dirname shim to both the react-vite and
web-components-vite storybook configs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
After rebasing onto main (which merged #35, removing the lint-suppression
block), two findings surfaced under TypeScript 6 that #35's TS5 run did not:

- extension.ts: restore the inline no-unnecessary-condition disable on the
  `selectedItems[0]` guard (dropped during the auto-merge; the value is
  non-nullable by type but undefined at runtime).
- concept-extractor.ts: make `visitNode` tolerate null/undefined and drop the
  always-truthy `if (node.expression)` guard. The field is required by type but
  can be absent in partial/error-recovery parse trees (kept the runtime guard
  via an early return — restores 3 error-recovery tests).

lint 0 errors, compile clean, full test suite green.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@dionmcm dionmcm force-pushed the chore/combine-dependabot-npm-upgrades branch from 742caec to aac661e Compare June 16, 2026 04:14
@dionmcm dionmcm merged commit 0f0c2a8 into main Jun 16, 2026
7 checks passed
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.

1 participant