diff --git a/package-lock.json b/package-lock.json index 0888c0c..883a5a3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,8 +11,8 @@ "dependencies": { "@babel/parser": "^7.25.6", "@babel/types": "^7.25.6", - "tree-sitter": "^0.21.0", - "tree-sitter-python": "^0.21.0", + "tree-sitter": "^0.25.0", + "tree-sitter-python": "^0.25.0", "typescript": "^5.6.2", "web-tree-sitter": "^0.21.0", "yargs": "^18.0.0" @@ -8208,41 +8208,35 @@ } }, "node_modules/tree-sitter": { - "version": "0.21.1", - "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.21.1.tgz", - "integrity": "sha512-7dxoA6kYvtgWw80265MyqJlkRl4yawIjO7S5MigytjELkX43fV2WsAXzsNfO7sBpPPCF5Gp0+XzHk0DwLCq3xQ==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/tree-sitter/-/tree-sitter-0.25.0.tgz", + "integrity": "sha512-PGZZzFW63eElZJDe/b/R/LbsjDDYJa5UEjLZJB59RQsMX+fo0j54fqBPn1MGKav/QNa0JR0zBiVaikYDWCj5KQ==", "hasInstallScript": true, "license": "MIT", "dependencies": { - "node-addon-api": "^8.0.0", - "node-gyp-build": "^4.8.0" + "node-addon-api": "^8.3.0", + "node-gyp-build": "^4.8.4" } }, "node_modules/tree-sitter-python": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/tree-sitter-python/-/tree-sitter-python-0.21.0.tgz", - "integrity": "sha512-IUKx7JcTVbByUx1iHGFS/QsIjx7pqwTMHL9bl/NGyhyyydbfNrpruo2C7W6V4KZrbkkCOlX8QVrCoGOFW5qecg==", + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/tree-sitter-python/-/tree-sitter-python-0.25.0.tgz", + "integrity": "sha512-eCmJx6zQa35GxaCtQD+wXHOhYqBxEL+bp71W/s3fcDMu06MrtzkVXR437dRrCrbrDbyLuUDJpAgycs7ncngLXw==", "hasInstallScript": true, "license": "MIT", "dependencies": { - "node-addon-api": "^7.1.0", - "node-gyp-build": "^4.8.0" + "node-addon-api": "^8.5.0", + "node-gyp-build": "^4.8.4" }, "peerDependencies": { - "tree-sitter": "^0.21.0" + "tree-sitter": "^0.25.0" }, "peerDependenciesMeta": { - "tree_sitter": { + "tree-sitter": { "optional": true } } }, - "node_modules/tree-sitter-python/node_modules/node-addon-api": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz", - "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", - "license": "MIT" - }, "node_modules/trim-lines": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/trim-lines/-/trim-lines-3.0.1.tgz", diff --git a/package.json b/package.json index 76d5113..78a74e8 100644 --- a/package.json +++ b/package.json @@ -117,8 +117,8 @@ "dependencies": { "@babel/parser": "^7.25.6", "@babel/types": "^7.25.6", - "tree-sitter": "^0.21.0", - "tree-sitter-python": "^0.21.0", + "tree-sitter": "^0.25.0", + "tree-sitter-python": "^0.25.0", "typescript": "^5.6.2", "web-tree-sitter": "^0.21.0", "yargs": "^18.0.0" diff --git a/src/core/analyzer.ts b/src/core/analyzer.ts index 2556548..386c7d6 100644 --- a/src/core/analyzer.ts +++ b/src/core/analyzer.ts @@ -26,6 +26,8 @@ import { getComponentLogger } from '../utils/logger.js'; const log = getComponentLogger('Analyzer'); const UNKNOWN_TYPE: PythonType = { kind: 'custom', name: 'Any', module: 'typing' }; +// tree-sitter-python >=0.25 updates its typings, but Parser#setLanguage still expects the package export at runtime. +const PYTHON_LANGUAGE = Python as unknown as Parser.Language; export class PyAnalyzer { private parser: Parser; @@ -44,7 +46,7 @@ export class PyAnalyzer { } try { - await this.parser.setLanguage(Python); + await this.parser.setLanguage(PYTHON_LANGUAGE); this.initialized = true; } catch (error) { throw new Error(`Failed to initialize Python parser: ${error}`);