Update npm dependencies and fix breaking API changes - #40
Merged
Merged
Conversation
- Bump all npm packages to latest versions: TypeScript 5→6, ESLint
8→10, mocha 10→11, web-tree-sitter 0.20→0.26, vscode-languageclient
8→9, esbuild 0.20→0.28, @types/node 20→25, and others
- Update softprops/action-gh-release from v2 to v3
web-tree-sitter v0.26 API changes:
- Rename SyntaxNode→Node, add named imports for Tree, Language, Edit,
Point throughout the codebase
- Use new Edit class constructor for tree.edit() calls
- Replace callback-based incremental parse with byte-index approach to
correctly handle newlines
- Update tree-sitter-modelica.wasm to v0.2.2 (dylink.0 format required
by v0.26 runtime)
esbuild bundling fix:
- Alias web-tree-sitter to its CJS build in esbuild config; the ESM
build uses import.meta.url which esbuild shims as undefined, causing
the server to fail at startup
Other fixes:
- Remove unused native tree-sitter dependency (only web-tree-sitter
is used)
- Replace @nodelib/fs.walk with fs.readdir({recursive:true})
- Switch test runner from ts-node/register to tsx/cjs for mocha v11
compatibility with Node.js 24 native TypeScript support
- Migrate ESLint config from .eslintrc.js to flat eslint.config.js
- Fix stale no-redeclare, unused expressions, and comma-expression
lint issues surfaced by ESLint 10
- Add skipLibCheck and es2022 lib/target to tsconfig files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Alias web-tree-sitter to its CJS build (same fix as root esbuild.config.js) - Fix WASM filename: tree-sitter.wasm → web-tree-sitter.wasm (v0.26 name) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add overrides to force patched transitive deps pulled in by mocha: - diff >=9.0.0 (was 7.0.0, GHSA-73rr-hh4g-fpgx DoS) - serialize-javascript >=7.0.5 (was 6.0.2, GHSA-5c6j-r48x-rmvq RCE / GHSA-qj8w-gfj5-8c6v DoS) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
AnHeuermann
marked this pull request as ready for review
June 5, 2026 11:23
Replaces deprecated "moduleResolution": "node" (and removes ignoreDeprecations: "6.0") with the modern Node16 mode. No import paths required updating. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
Summary
Breaking changes fixed
web-tree-sitter v0.26 API changes:
SyntaxNode→Node, add named imports forTree,Language,Edit,Pointthroughout the codebaseEditclass constructor fortree.edit()callstree-sitter-modelica.wasmto v0.2.2 (dylink.0format required by v0.26 runtime)esbuild bundling fix:
web-tree-sitterto its CJS build inesbuild.config.js; the ESM build usesimport.meta.urlwhich esbuild shims asundefinedin CJS output, causingcreateRequire(undefined)to throw at startupESLint 9+ flat config migration:
.eslintrc.js+.eslintignorewitheslint.config.jsusing the new flat config format@eslint/jsandglobalspackagesMocha v11 + Node.js 24 test runner fix:
process.features.typescript === 'strip'), which causes mocha to bypassts-node/registerfor.tsfilests-node/registertotsx/cjsas the mocha require hookTypeScript 6 fixes:
ignoreDeprecations: "6.0"formoduleResolution: nodedeprecationskipLibCheck: trueand updatelib/targettoes2022no-redeclare, unused expressions, comma-expressions)Other fixes:
tree-sitteraddon (onlyweb-tree-sitteris used at runtime)@nodelib/fs.walkwithfs.readdir({ recursive: true, withFileTypes: true })Test plan
npm run lint— cleannpm run esbuild— builds successfully, noimport_metareferences in bundlenpm run test:server— 20/20 unit tests passnpm run test:e2e— 3/3 integration tests pass (requires display / WSLg)