@depup/babel__eslint-parser 7.28.6-depup.0 → 8.0.5-depup.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -5
- package/changes.json +10 -6
- package/lib/configuration-shared.js +363 -0
- package/lib/configuration-shared.js.map +1 -0
- package/lib/index.d.ts +15 -0
- package/lib/{analyze-scope.cjs → index.js} +115 -56
- package/lib/index.js.map +1 -0
- package/lib/worker/index.js +88 -0
- package/lib/worker/index.js.map +1 -0
- package/package.json +30 -31
- package/lib/analyze-scope.cjs.map +0 -1
- package/lib/client.cjs +0 -104
- package/lib/client.cjs.map +0 -1
- package/lib/configuration.cjs +0 -23
- package/lib/configuration.cjs.map +0 -1
- package/lib/convert/convertAST.cjs +0 -134
- package/lib/convert/convertAST.cjs.map +0 -1
- package/lib/convert/convertComments.cjs +0 -10
- package/lib/convert/convertComments.cjs.map +0 -1
- package/lib/convert/convertTokens.cjs +0 -158
- package/lib/convert/convertTokens.cjs.map +0 -1
- package/lib/convert/index.cjs +0 -25
- package/lib/convert/index.cjs.map +0 -1
- package/lib/experimental-worker.cjs +0 -32
- package/lib/experimental-worker.cjs.map +0 -1
- package/lib/index.cjs +0 -32
- package/lib/index.cjs.map +0 -1
- package/lib/parse.cjs +0 -37
- package/lib/parse.cjs.map +0 -1
- package/lib/utils/eslint-version.cjs +0 -5
- package/lib/utils/eslint-version.cjs.map +0 -1
- package/lib/worker/ast-info.cjs +0 -38
- package/lib/worker/ast-info.cjs.map +0 -1
- package/lib/worker/babel-core.cjs +0 -19
- package/lib/worker/babel-core.cjs.map +0 -1
- package/lib/worker/configuration.cjs +0 -99
- package/lib/worker/configuration.cjs.map +0 -1
- package/lib/worker/extract-parser-options-plugin.cjs +0 -11
- package/lib/worker/extract-parser-options-plugin.cjs.map +0 -1
- package/lib/worker/handle-message.cjs +0 -31
- package/lib/worker/handle-message.cjs.map +0 -1
- package/lib/worker/index.cjs +0 -39
- package/lib/worker/index.cjs.map +0 -1
- package/lib/worker/maybeParse.cjs +0 -56
- package/lib/worker/maybeParse.cjs.map +0 -1
- package/lib/worker/maybeParseSync.cjs +0 -48
- package/lib/worker/maybeParseSync.cjs.map +0 -1
- package/types.d.cts +0 -9
|
@@ -1,29 +1,43 @@
|
|
|
1
|
-
|
|
1
|
+
import { types, version } from '@babel/core';
|
|
2
|
+
import * as eslintScope from 'eslint-scope';
|
|
3
|
+
import { getKeys } from 'eslint-visitor-keys';
|
|
4
|
+
import { satisfies } from 'verkit';
|
|
5
|
+
import { getParserPlugins, convertFile, getTokLabels, getVisitorKeys, convertError, WorkerClient } from './configuration-shared.js';
|
|
6
|
+
import { createRequire } from 'node:module';
|
|
7
|
+
|
|
8
|
+
function normalizeESLintConfig(options) {
|
|
9
|
+
const {
|
|
10
|
+
babelOptions = {},
|
|
11
|
+
ecmaVersion = "latest",
|
|
12
|
+
sourceType = "module",
|
|
13
|
+
requireConfigFile = true,
|
|
14
|
+
...otherOptions
|
|
15
|
+
} = options;
|
|
16
|
+
return {
|
|
17
|
+
babelOptions: {
|
|
18
|
+
cwd: process.cwd(),
|
|
19
|
+
...babelOptions,
|
|
20
|
+
browserslistConfigFile: false
|
|
21
|
+
},
|
|
22
|
+
ecmaVersion: ecmaVersion === "latest" ? 1e8 : ecmaVersion,
|
|
23
|
+
sourceType,
|
|
24
|
+
requireConfigFile,
|
|
25
|
+
...otherOptions
|
|
26
|
+
};
|
|
27
|
+
}
|
|
2
28
|
|
|
3
|
-
function _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }
|
|
4
|
-
function _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError("Cannot initialize the same private elements twice on an object"); }
|
|
5
|
-
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
6
|
-
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
7
|
-
function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
|
|
8
29
|
const {
|
|
9
30
|
Definition,
|
|
10
31
|
PatternVisitor: OriginalPatternVisitor,
|
|
11
32
|
Referencer: OriginalReferencer,
|
|
12
33
|
Scope,
|
|
13
34
|
ScopeManager
|
|
14
|
-
} =
|
|
15
|
-
const {
|
|
16
|
-
getKeys: fallback
|
|
17
|
-
} = require("eslint-visitor-keys");
|
|
35
|
+
} = eslintScope;
|
|
18
36
|
let visitorKeysMap;
|
|
19
|
-
function getVisitorValues(nodeType
|
|
37
|
+
function getVisitorValues(nodeType) {
|
|
20
38
|
if (visitorKeysMap) return visitorKeysMap[nodeType];
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
VISITOR_KEYS
|
|
24
|
-
} = client.getTypesInfo();
|
|
25
|
-
const flowFlippedAliasKeys = new Set(FLOW_FLIPPED_ALIAS_KEYS.concat(["ArrayPattern", "ClassDeclaration", "ClassExpression", "FunctionDeclaration", "FunctionExpression", "Identifier", "ObjectPattern", "RestElement"]));
|
|
26
|
-
visitorKeysMap = (Object.entries || (o => Object.keys(o).map(k => [k, o[k]])))(VISITOR_KEYS).reduce((acc, [key, value]) => {
|
|
39
|
+
const flowFlippedAliasKeys = new Set(types.FLIPPED_ALIAS_KEYS.Flow.concat(["ArrayPattern", "ClassDeclaration", "ClassExpression", "FunctionDeclaration", "FunctionExpression", "Identifier", "ObjectPattern", "RestElement"]));
|
|
40
|
+
visitorKeysMap = Object.entries(types.VISITOR_KEYS).reduce((acc, [key, value]) => {
|
|
27
41
|
if (!flowFlippedAliasKeys.has(value)) {
|
|
28
42
|
acc[key] = value;
|
|
29
43
|
}
|
|
@@ -83,12 +97,9 @@ class PatternVisitor extends OriginalPatternVisitor {
|
|
|
83
97
|
node.properties.forEach(this.visit, this);
|
|
84
98
|
}
|
|
85
99
|
}
|
|
86
|
-
var _client = new WeakMap();
|
|
87
100
|
class Referencer extends OriginalReferencer {
|
|
88
|
-
constructor(options, scopeManager
|
|
101
|
+
constructor(options, scopeManager) {
|
|
89
102
|
super(options, scopeManager);
|
|
90
|
-
_classPrivateFieldInitSpec(this, _client, void 0);
|
|
91
|
-
_classPrivateFieldSet(_client, this, client);
|
|
92
103
|
}
|
|
93
104
|
visitPattern(node, options, callback) {
|
|
94
105
|
if (!node) {
|
|
@@ -111,11 +122,10 @@ class Referencer extends OriginalReferencer {
|
|
|
111
122
|
}
|
|
112
123
|
}
|
|
113
124
|
visitClass(node) {
|
|
114
|
-
var _ref;
|
|
115
125
|
this._visitArray(node.decorators);
|
|
116
126
|
const typeParamScope = this._nestTypeParamScope(node);
|
|
117
127
|
this._visitTypeAnnotation(node.implements);
|
|
118
|
-
this._visitTypeAnnotation(
|
|
128
|
+
this._visitTypeAnnotation(node.superTypeArguments?.params);
|
|
119
129
|
super.visitClass(node);
|
|
120
130
|
if (typeParamScope) {
|
|
121
131
|
this.close(node);
|
|
@@ -130,8 +140,7 @@ class Referencer extends OriginalReferencer {
|
|
|
130
140
|
}
|
|
131
141
|
}
|
|
132
142
|
visitProperty(node) {
|
|
133
|
-
|
|
134
|
-
if (((_node$value = node.value) == null ? void 0 : _node$value.type) === "TypeCastExpression") {
|
|
143
|
+
if (node.value?.type === "TypeCastExpression") {
|
|
135
144
|
this._visitTypeAnnotation(node.value);
|
|
136
145
|
}
|
|
137
146
|
this._visitArray(node.decorators);
|
|
@@ -154,24 +163,12 @@ class Referencer extends OriginalReferencer {
|
|
|
154
163
|
this.close(node);
|
|
155
164
|
}
|
|
156
165
|
}
|
|
157
|
-
ClassProperty(node) {
|
|
158
|
-
this._visitClassProperty(node);
|
|
159
|
-
}
|
|
160
|
-
ClassPrivateProperty(node) {
|
|
161
|
-
this._visitClassProperty(node);
|
|
162
|
-
}
|
|
163
166
|
AccessorProperty(node) {
|
|
164
167
|
this._visitClassProperty(node);
|
|
165
168
|
}
|
|
166
|
-
ClassAccessorProperty(node) {
|
|
167
|
-
this._visitClassProperty(node);
|
|
168
|
-
}
|
|
169
169
|
PropertyDefinition(node) {
|
|
170
170
|
this._visitClassProperty(node);
|
|
171
171
|
}
|
|
172
|
-
ClassPrivateMethod(node) {
|
|
173
|
-
super.MethodDefinition(node);
|
|
174
|
-
}
|
|
175
172
|
DeclareModule(node) {
|
|
176
173
|
this._visitDeclareX(node);
|
|
177
174
|
}
|
|
@@ -184,9 +181,6 @@ class Referencer extends OriginalReferencer {
|
|
|
184
181
|
DeclareClass(node) {
|
|
185
182
|
this._visitDeclareX(node);
|
|
186
183
|
}
|
|
187
|
-
OptionalMemberExpression(node) {
|
|
188
|
-
super.MemberExpression(node);
|
|
189
|
-
}
|
|
190
184
|
_visitClassProperty(node) {
|
|
191
185
|
const {
|
|
192
186
|
computed,
|
|
@@ -199,11 +193,7 @@ class Referencer extends OriginalReferencer {
|
|
|
199
193
|
if (computed) this.visit(key);
|
|
200
194
|
this._visitTypeAnnotation(typeAnnotation);
|
|
201
195
|
if (value) {
|
|
202
|
-
|
|
203
|
-
this.scopeManager.__nestClassFieldInitializerScope(value);
|
|
204
|
-
} else {
|
|
205
|
-
this.scopeManager.__nestScope(new Scope(this.scopeManager, "function", this.scopeManager.__currentScope, value, true));
|
|
206
|
-
}
|
|
196
|
+
this.scopeManager.__nestClassFieldInitializerScope(value);
|
|
207
197
|
this.visit(value);
|
|
208
198
|
this.close(value);
|
|
209
199
|
}
|
|
@@ -218,7 +208,7 @@ class Referencer extends OriginalReferencer {
|
|
|
218
208
|
}
|
|
219
209
|
}
|
|
220
210
|
_createScopeVariable(node, name) {
|
|
221
|
-
this.currentScope().variableScope.__define(name, new Definition("Variable", name, node
|
|
211
|
+
this.currentScope().variableScope.__define(name, new Definition("Variable", name, node));
|
|
222
212
|
}
|
|
223
213
|
_nestTypeParamScope(node) {
|
|
224
214
|
if (!node.typeParameters) {
|
|
@@ -245,7 +235,7 @@ class Referencer extends OriginalReferencer {
|
|
|
245
235
|
node.forEach(this._visitTypeAnnotation, this);
|
|
246
236
|
return;
|
|
247
237
|
}
|
|
248
|
-
const visitorValues = getVisitorValues(node.type
|
|
238
|
+
const visitorValues = getVisitorValues(node.type);
|
|
249
239
|
if (!visitorValues) {
|
|
250
240
|
return;
|
|
251
241
|
}
|
|
@@ -287,9 +277,9 @@ class Referencer extends OriginalReferencer {
|
|
|
287
277
|
}
|
|
288
278
|
}
|
|
289
279
|
_checkIdentifierOrVisit(node) {
|
|
290
|
-
if (node
|
|
280
|
+
if (node?.typeAnnotation) {
|
|
291
281
|
this._visitTypeAnnotation(node.typeAnnotation);
|
|
292
|
-
} else if (
|
|
282
|
+
} else if (node?.type === "Identifier") {
|
|
293
283
|
this.visit(node);
|
|
294
284
|
} else {
|
|
295
285
|
this._visitTypeAnnotation(node);
|
|
@@ -303,23 +293,92 @@ class Referencer extends OriginalReferencer {
|
|
|
303
293
|
}
|
|
304
294
|
}
|
|
305
295
|
}
|
|
306
|
-
|
|
307
|
-
var _parserOptions$ecmaFe;
|
|
296
|
+
function analyzeScope(ast, parserOptions) {
|
|
308
297
|
const options = {
|
|
309
298
|
ignoreEval: true,
|
|
310
299
|
optimistic: false,
|
|
311
300
|
directive: false,
|
|
312
|
-
nodejsScope: ast.sourceType === "script" &&
|
|
301
|
+
nodejsScope: ast.sourceType === "script" && parserOptions.ecmaFeatures?.globalReturn === true,
|
|
313
302
|
impliedStrict: false,
|
|
314
303
|
sourceType: ast.sourceType,
|
|
315
304
|
ecmaVersion: parserOptions.ecmaVersion,
|
|
316
|
-
fallback,
|
|
317
|
-
childVisitorKeys:
|
|
305
|
+
fallback: getKeys,
|
|
306
|
+
childVisitorKeys: types.VISITOR_KEYS
|
|
318
307
|
};
|
|
319
308
|
const scopeManager = new ScopeManager(options);
|
|
320
|
-
const referencer = new Referencer(options, scopeManager
|
|
309
|
+
const referencer = new Referencer(options, scopeManager);
|
|
321
310
|
referencer.visit(ast);
|
|
322
311
|
return scopeManager;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
const require$1 = createRequire(import.meta.url);
|
|
315
|
+
const babelParser = require$1(require$1.resolve("@babel/parser", {
|
|
316
|
+
paths: [require$1.resolve("@babel/core/package.json")]
|
|
317
|
+
}));
|
|
318
|
+
let isRunningMinSupportedCoreVersion = null;
|
|
319
|
+
let client;
|
|
320
|
+
function parse$1(code, options) {
|
|
321
|
+
const minSupportedCoreVersion = "^7.2.0 || ^8.0.0";
|
|
322
|
+
if (typeof isRunningMinSupportedCoreVersion !== "boolean") {
|
|
323
|
+
isRunningMinSupportedCoreVersion = satisfies(version, minSupportedCoreVersion);
|
|
324
|
+
}
|
|
325
|
+
if (!isRunningMinSupportedCoreVersion) {
|
|
326
|
+
throw new Error(`@babel/eslint-parser@${"8.0.5"} does not support @babel/core@${version}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`);
|
|
327
|
+
}
|
|
328
|
+
if (options.babelOptions.babelrc === false && options.babelOptions.configFile === false) {
|
|
329
|
+
const parserOpts = {
|
|
330
|
+
sourceType: options.sourceType,
|
|
331
|
+
sourceFilename: options.filePath,
|
|
332
|
+
...(options.sourceType !== "commonjs" ? {
|
|
333
|
+
allowReturnOutsideFunction: options.ecmaFeatures?.globalReturn ?? false
|
|
334
|
+
} : {}),
|
|
335
|
+
...options.babelOptions.parserOpts,
|
|
336
|
+
plugins: getParserPlugins(options.babelOptions),
|
|
337
|
+
attachComment: false,
|
|
338
|
+
ranges: true,
|
|
339
|
+
tokens: true
|
|
340
|
+
};
|
|
341
|
+
try {
|
|
342
|
+
return convertFile(babelParser.parse(code, parserOpts), code, getTokLabels(), getVisitorKeys());
|
|
343
|
+
} catch (err) {
|
|
344
|
+
throw convertError(err);
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
client ??= new WorkerClient();
|
|
348
|
+
const {
|
|
349
|
+
ast,
|
|
350
|
+
parserOptions
|
|
351
|
+
} = client.maybeParse(code, options);
|
|
352
|
+
if (ast) return ast;
|
|
353
|
+
try {
|
|
354
|
+
return convertFile(babelParser.parse(code, parserOptions), code, getTokLabels(), getVisitorKeys());
|
|
355
|
+
} catch (err) {
|
|
356
|
+
throw convertError(err);
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
const meta = {
|
|
361
|
+
name: "@babel/eslint-parser",
|
|
362
|
+
version: "8.0.5"
|
|
363
|
+
};
|
|
364
|
+
function parse(code, options = {}) {
|
|
365
|
+
return parse$1(code, normalizeESLintConfig(options));
|
|
366
|
+
}
|
|
367
|
+
function parseForESLint(code, options = {}) {
|
|
368
|
+
const normalizedOptions = normalizeESLintConfig(options);
|
|
369
|
+
const ast = parse$1(code, normalizedOptions);
|
|
370
|
+
const scopeManager = analyzeScope(ast, normalizedOptions);
|
|
371
|
+
return {
|
|
372
|
+
ast,
|
|
373
|
+
scopeManager,
|
|
374
|
+
visitorKeys: getVisitorKeys()
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
const index = {
|
|
378
|
+
meta,
|
|
379
|
+
parse,
|
|
380
|
+
parseForESLint
|
|
323
381
|
};
|
|
324
382
|
|
|
325
|
-
|
|
383
|
+
export { index as default, meta, parse, parseForESLint };
|
|
384
|
+
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/configuration.ts","../src/analyze-scope.ts","../src/parse.ts","../src/index.ts"],"sourcesContent":["import type { Options } from \"./types\";\n\nexport default function normalizeESLintConfig(options: any) {\n const {\n babelOptions = {},\n // ESLint sets ecmaVersion: undefined when ecmaVersion is not set in the config.\n ecmaVersion = \"latest\",\n sourceType = \"module\",\n requireConfigFile = true,\n ...otherOptions\n } = options;\n\n return {\n babelOptions: {\n cwd: process.cwd(),\n ...babelOptions,\n browserslistConfigFile: false,\n },\n ecmaVersion: ecmaVersion === \"latest\" ? 1e8 : ecmaVersion,\n sourceType,\n requireConfigFile,\n ...otherOptions,\n } as Options;\n}\n","import { types as t } from \"@babel/core\";\nimport * as eslintScope from \"eslint-scope\";\n\nconst {\n Definition,\n PatternVisitor: OriginalPatternVisitor,\n Referencer: OriginalReferencer,\n Scope,\n ScopeManager,\n} = eslintScope as unknown as import(\"./types\").Scope;\n\nimport { getKeys as fallback } from \"eslint-visitor-keys\";\n\nlet visitorKeysMap: Record<string, string[]>;\nfunction getVisitorValues(nodeType: string) {\n if (visitorKeysMap) return visitorKeysMap[nodeType];\n\n const flowFlippedAliasKeys = new Set(\n t.FLIPPED_ALIAS_KEYS.Flow.concat([\n \"ArrayPattern\",\n \"ClassDeclaration\",\n \"ClassExpression\",\n \"FunctionDeclaration\",\n \"FunctionExpression\",\n \"Identifier\",\n \"ObjectPattern\",\n \"RestElement\",\n ]),\n );\n\n visitorKeysMap = Object.entries(t.VISITOR_KEYS).reduce(\n (acc, [key, value]) => {\n // @ts-expect-error FIXME: value is not assignable to type string[]\n if (!flowFlippedAliasKeys.has(value)) {\n // @ts-expect-error FIXME: value is not assignable to type string[]\n acc[key] = value;\n }\n return acc;\n },\n {},\n );\n\n return visitorKeysMap[nodeType];\n}\n\nconst propertyTypes = {\n // loops\n callProperties: { type: \"loop\", values: [\"value\"] },\n indexers: { type: \"loop\", values: [\"key\", \"value\"] },\n properties: { type: \"loop\", values: [\"argument\", \"value\"] },\n types: { type: \"loop\" },\n params: { type: \"loop\" },\n // single property\n argument: { type: \"single\" },\n elementType: { type: \"single\" },\n qualification: { type: \"single\" },\n rest: { type: \"single\" },\n returnType: { type: \"single\" },\n // others\n typeAnnotation: { type: \"typeAnnotation\" },\n typeParameters: { type: \"typeParameters\" },\n id: { type: \"id\" },\n};\n\nclass PatternVisitor extends OriginalPatternVisitor {\n ArrayPattern(node: any) {\n node.elements.forEach(this.visit, this);\n }\n\n ObjectPattern(node: any) {\n node.properties.forEach(this.visit, this);\n }\n}\n\nclass Referencer extends OriginalReferencer {\n constructor(options: any, scopeManager: any) {\n super(options, scopeManager);\n }\n\n // inherits.\n visitPattern(node: any, options: any, callback: any) {\n if (!node) {\n return;\n }\n\n // Visit type annotations.\n this._checkIdentifierOrVisit(node.typeAnnotation);\n if (node.type === \"AssignmentPattern\") {\n this._checkIdentifierOrVisit(node.left.typeAnnotation);\n }\n\n // Overwrite `super.visitPattern(node, options, callback)` in order to not visit `ArrayPattern#typeAnnotation` and `ObjectPattern#typeAnnotation`.\n if (typeof options === \"function\") {\n callback = options;\n options = { processRightHandNodes: false };\n }\n\n const visitor = new PatternVisitor(this.options, node, callback);\n visitor.visit(node);\n\n // Process the right hand nodes recursively.\n if (options.processRightHandNodes) {\n visitor.rightHandNodes.forEach(this.visit, this);\n }\n }\n\n // inherits.\n visitClass(node: any) {\n // Decorators.\n this._visitArray(node.decorators);\n\n // Flow type parameters.\n const typeParamScope = this._nestTypeParamScope(node);\n\n // Flow super types.\n this._visitTypeAnnotation(node.implements);\n this._visitTypeAnnotation(node.superTypeArguments?.params);\n\n // Basic.\n super.visitClass(node);\n\n // Close the type parameter scope.\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n // inherits.\n visitFunction(node: any) {\n const typeParamScope = this._nestTypeParamScope(node);\n\n // Flow return types.\n this._checkIdentifierOrVisit(node.returnType);\n\n // Basic.\n super.visitFunction(node);\n\n // Close the type parameter scope.\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n // inherits.\n visitProperty(node: any) {\n if (node.value?.type === \"TypeCastExpression\") {\n this._visitTypeAnnotation(node.value);\n }\n this._visitArray(node.decorators);\n super.visitProperty(node);\n }\n\n InterfaceDeclaration(node: any) {\n this._createScopeVariable(node, node.id);\n\n const typeParamScope = this._nestTypeParamScope(node);\n\n // TODO: Handle mixins\n this._visitArray(node.extends);\n this.visit(node.body);\n\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n TypeAlias(node: any) {\n this._createScopeVariable(node, node.id);\n\n const typeParamScope = this._nestTypeParamScope(node);\n\n this.visit(node.right);\n\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n AccessorProperty(node: any) {\n this._visitClassProperty(node);\n }\n\n PropertyDefinition(node: any) {\n this._visitClassProperty(node);\n }\n\n DeclareModule(node: any) {\n this._visitDeclareX(node);\n }\n\n DeclareFunction(node: any) {\n this._visitDeclareX(node);\n }\n\n DeclareVariable(node: any) {\n this._visitDeclareX(node);\n }\n\n DeclareClass(node: any) {\n this._visitDeclareX(node);\n }\n\n _visitClassProperty(node: any) {\n const { computed, key, typeAnnotation, decorators, value } = node;\n\n this._visitArray(decorators);\n if (computed) this.visit(key);\n this._visitTypeAnnotation(typeAnnotation);\n\n if (value) {\n this.scopeManager.__nestClassFieldInitializerScope(value);\n this.visit(value);\n this.close(value);\n }\n }\n\n _visitDeclareX(node: any) {\n if (node.id) {\n this._createScopeVariable(node, node.id);\n }\n\n const typeParamScope = this._nestTypeParamScope(node);\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n _createScopeVariable(node: any, name: any) {\n this.currentScope().variableScope.__define(\n name,\n new Definition(\"Variable\", name, node),\n );\n }\n\n _nestTypeParamScope(node: any) {\n if (!node.typeParameters) {\n return null;\n }\n\n const parentScope = this.scopeManager.__currentScope;\n const scope = new Scope(\n this.scopeManager,\n \"type-parameters\",\n parentScope,\n node,\n false,\n );\n\n this.scopeManager.__nestScope(scope);\n for (let j = 0; j < node.typeParameters.params.length; j++) {\n const name = node.typeParameters.params[j];\n scope.__define(name, new Definition(\"TypeParameter\", name, name));\n if (name.typeAnnotation) {\n this._checkIdentifierOrVisit(name);\n }\n }\n scope.__define = parentScope.__define.bind(parentScope);\n\n return scope;\n }\n\n _visitTypeAnnotation(node: any) {\n if (!node) {\n return;\n }\n if (Array.isArray(node)) {\n node.forEach(this._visitTypeAnnotation, this);\n return;\n }\n\n // get property to check (params, id, etc...)\n const visitorValues = getVisitorValues(node.type);\n if (!visitorValues) {\n return;\n }\n\n // can have multiple properties\n for (let i = 0; i < visitorValues.length; i++) {\n const visitorValue = visitorValues[i];\n const propertyType = (propertyTypes as Record<string, any>)[visitorValue];\n const nodeProperty = node[visitorValue];\n // check if property or type is defined\n if (propertyType == null || nodeProperty == null) {\n continue;\n }\n if (propertyType.type === \"loop\") {\n for (let j = 0; j < nodeProperty.length; j++) {\n if (Array.isArray(propertyType.values)) {\n for (let k = 0; k < propertyType.values.length; k++) {\n const loopPropertyNode = nodeProperty[j][propertyType.values[k]];\n if (loopPropertyNode) {\n this._checkIdentifierOrVisit(loopPropertyNode);\n }\n }\n } else {\n this._checkIdentifierOrVisit(nodeProperty[j]);\n }\n }\n } else if (propertyType.type === \"single\") {\n this._checkIdentifierOrVisit(nodeProperty);\n } else if (propertyType.type === \"typeAnnotation\") {\n this._visitTypeAnnotation(node.typeAnnotation);\n } else if (propertyType.type === \"typeParameters\") {\n for (let l = 0; l < node.typeParameters.params.length; l++) {\n this._checkIdentifierOrVisit(node.typeParameters.params[l]);\n }\n } else if (propertyType.type === \"id\") {\n if (node.id.type === \"Identifier\") {\n this._checkIdentifierOrVisit(node.id);\n } else {\n this._visitTypeAnnotation(node.id);\n }\n }\n }\n }\n\n _checkIdentifierOrVisit(node: any) {\n if (node?.typeAnnotation) {\n this._visitTypeAnnotation(node.typeAnnotation);\n } else if (node?.type === \"Identifier\") {\n this.visit(node);\n } else {\n this._visitTypeAnnotation(node);\n }\n }\n\n _visitArray(nodeList: any[]) {\n if (nodeList) {\n for (const node of nodeList) {\n this.visit(node);\n }\n }\n }\n}\n\nexport default function analyzeScope(ast: any, parserOptions: any) {\n const options = {\n ignoreEval: true,\n optimistic: false,\n directive: false,\n nodejsScope:\n ast.sourceType === \"script\" &&\n parserOptions.ecmaFeatures?.globalReturn === true,\n impliedStrict: false,\n sourceType: ast.sourceType,\n ecmaVersion: parserOptions.ecmaVersion,\n fallback,\n childVisitorKeys: t.VISITOR_KEYS,\n };\n\n // @ts-expect-error upstream typing issue in the `fallback` property: (node: estree.Node) => readonly string[] is not assignable to type (node: estree.Node) => string[]\n const scopeManager = new ScopeManager(options);\n const referencer = new Referencer(options, scopeManager);\n\n referencer.visit(ast);\n\n return scopeManager as any;\n}\n","import { satisfies } from \"verkit\";\nimport type { Options } from \"./types\";\nimport { version } from \"@babel/core\";\nimport { WorkerClient, type Client } from \"./client.ts\";\nimport { convertError, convertFile } from \"./convert/index.ts\";\nimport { createRequire } from \"node:module\";\nimport { getTokLabels, getVisitorKeys } from \"./ast-info.ts\";\nimport { getParserPlugins } from \"./worker/configuration.ts\";\n\nconst require = createRequire(import.meta.url);\n\nconst babelParser = require(\n require.resolve(\"@babel/parser\", {\n paths: [require.resolve(\"@babel/core/package.json\")],\n }),\n);\n\nlet isRunningMinSupportedCoreVersion: boolean | null = null;\n\nlet client: Client;\n\nexport default function parse(code: string, options: Options) {\n // Ensure we're using a version of `@babel/core` that includes `parse()` and `tokTypes`.\n const minSupportedCoreVersion = REQUIRED_VERSION(\"^7.2.0 || ^8.0.0\");\n\n if (typeof isRunningMinSupportedCoreVersion !== \"boolean\") {\n isRunningMinSupportedCoreVersion = satisfies(\n version,\n minSupportedCoreVersion,\n );\n }\n\n if (!isRunningMinSupportedCoreVersion) {\n throw new Error(\n `@babel/eslint-parser@${\n PACKAGE_JSON.version\n } does not support @babel/core@${version}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`,\n );\n }\n\n if (\n options.babelOptions.babelrc === false &&\n options.babelOptions.configFile === false\n ) {\n const parserOpts = {\n sourceType: options.sourceType,\n sourceFilename: options.filePath,\n ...(options.sourceType !== \"commonjs\"\n ? {\n allowReturnOutsideFunction:\n options.ecmaFeatures?.globalReturn ?? false,\n }\n : {}),\n ...options.babelOptions.parserOpts,\n plugins: getParserPlugins(options.babelOptions),\n // skip comment attaching for parsing performance\n attachComment: false,\n ranges: true,\n tokens: true,\n };\n try {\n return convertFile(\n babelParser.parse(code, parserOpts),\n code,\n getTokLabels(),\n getVisitorKeys(),\n );\n } catch (err) {\n throw convertError(err);\n }\n }\n\n client ??= new WorkerClient();\n const { ast, parserOptions } = client.maybeParse(code, options);\n if (ast) return ast;\n\n try {\n return convertFile(\n babelParser.parse(code, parserOptions),\n code,\n getTokLabels(),\n getVisitorKeys(),\n );\n } catch (err) {\n throw convertError(err);\n }\n}\n","import type { ESLint, Linter, AST } from \"eslint\";\nimport normalizeESLintConfig from \"./configuration.ts\";\nimport analyzeScope from \"./analyze-scope.ts\";\nimport baseParse from \"./parse.ts\";\n\nimport { getVisitorKeys } from \"./ast-info.ts\";\n\nexport const meta: ESLint.ObjectMetaProperties[\"meta\"] = {\n name: PACKAGE_JSON.name,\n version: PACKAGE_JSON.version,\n};\n\nexport function parse(\n code: string,\n options: Linter.ParserOptions = {},\n): AST.Program {\n return baseParse(code, normalizeESLintConfig(options));\n}\n\nexport function parseForESLint(\n code: string,\n options: Linter.ParserOptions = {},\n): Linter.ESLintParseResult {\n const normalizedOptions = normalizeESLintConfig(options);\n const ast = baseParse(code, normalizedOptions);\n const scopeManager = analyzeScope(ast, normalizedOptions);\n\n return { ast, scopeManager, visitorKeys: getVisitorKeys() };\n}\n\nexport default {\n meta,\n parse,\n parseForESLint,\n};\n"],"names":["t","fallback","require","parse","baseParse"],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { parentPort } from 'node:worker_threads';
|
|
2
|
+
import { createConfigItemAsync, parseAsync } from '@babel/core';
|
|
3
|
+
import { convertError, convertFile, getVisitorKeys, getTokLabels, ACTIONS, normalizeBabelParseConfig } from '../configuration-shared.js';
|
|
4
|
+
|
|
5
|
+
function extractParserOptionsPlugin() {
|
|
6
|
+
return {
|
|
7
|
+
parserOverride(code, opts) {
|
|
8
|
+
return opts;
|
|
9
|
+
}
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
const ref = {};
|
|
14
|
+
let extractParserOptionsConfigItem;
|
|
15
|
+
const MULTIPLE_OVERRIDES = /More than one plugin attempted to override parsing/;
|
|
16
|
+
async function maybeParse(code, options) {
|
|
17
|
+
if (!extractParserOptionsConfigItem) {
|
|
18
|
+
extractParserOptionsConfigItem = await createConfigItemAsync([extractParserOptionsPlugin, ref], {
|
|
19
|
+
dirname: import.meta.dirname,
|
|
20
|
+
type: "plugin"
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const {
|
|
24
|
+
plugins
|
|
25
|
+
} = options;
|
|
26
|
+
options.plugins = plugins.concat(extractParserOptionsConfigItem);
|
|
27
|
+
let ast;
|
|
28
|
+
try {
|
|
29
|
+
return {
|
|
30
|
+
parserOptions: await parseAsync(code, options),
|
|
31
|
+
ast: null
|
|
32
|
+
};
|
|
33
|
+
} catch (err) {
|
|
34
|
+
if (!MULTIPLE_OVERRIDES.test(err.message)) {
|
|
35
|
+
throw err;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
options.plugins = plugins;
|
|
39
|
+
try {
|
|
40
|
+
ast = await parseAsync(code, options);
|
|
41
|
+
} catch (err) {
|
|
42
|
+
throw convertError(err);
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
ast: convertFile(ast, code, getTokLabels(), getVisitorKeys()),
|
|
46
|
+
parserOptions: null
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
async function handleMessage(action, payload) {
|
|
51
|
+
switch (action) {
|
|
52
|
+
case ACTIONS.MAYBE_PARSE:
|
|
53
|
+
return await maybeParse(payload.code, await normalizeBabelParseConfig(payload.options));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
parentPort.addListener("message", async ({
|
|
58
|
+
signal,
|
|
59
|
+
port,
|
|
60
|
+
action,
|
|
61
|
+
payload
|
|
62
|
+
}) => {
|
|
63
|
+
let response;
|
|
64
|
+
try {
|
|
65
|
+
response = {
|
|
66
|
+
result: await handleMessage(action, payload)
|
|
67
|
+
};
|
|
68
|
+
} catch (error) {
|
|
69
|
+
response = {
|
|
70
|
+
error,
|
|
71
|
+
errorData: {
|
|
72
|
+
...error
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
try {
|
|
77
|
+
port.postMessage(response);
|
|
78
|
+
} catch {
|
|
79
|
+
port.postMessage({
|
|
80
|
+
error: new Error("Cannot serialize worker response")
|
|
81
|
+
});
|
|
82
|
+
} finally {
|
|
83
|
+
port.close();
|
|
84
|
+
Atomics.store(signal, 0, 1);
|
|
85
|
+
Atomics.notify(signal, 0);
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/worker/extract-parser-options-plugin.ts","../../src/worker/maybeParse.ts","../../src/worker/handle-message.ts","../../src/worker/index.ts"],"sourcesContent":["export default function extractParserOptionsPlugin() {\n return {\n parserOverride(code: string, opts: any) {\n return opts;\n },\n };\n}\n","import { createConfigItemAsync, parseAsync } from \"@babel/core\";\nimport { convertError, convertFile } from \"../convert/index.ts\";\nimport { getTokLabels, getVisitorKeys } from \"../ast-info.ts\";\nimport extractParserOptionsPlugin from \"./extract-parser-options-plugin.ts\";\n\nimport type { InputOptions, ConfigItem } from \"@babel/core\";\nimport type { AST, ParseResult } from \"../types\";\n\nconst ref = {};\nlet extractParserOptionsConfigItem: ConfigItem<any>;\n\nconst MULTIPLE_OVERRIDES = /More than one plugin attempted to override parsing/;\n\nexport default async function maybeParse(\n code: string,\n options: InputOptions,\n): Promise<{\n ast: AST.Program | null;\n parserOptions: ParseResult | null;\n}> {\n if (!extractParserOptionsConfigItem) {\n extractParserOptionsConfigItem = await createConfigItemAsync(\n [extractParserOptionsPlugin, ref],\n { dirname: import.meta.dirname, type: \"plugin\" },\n );\n }\n const { plugins } = options;\n options.plugins = plugins!.concat(extractParserOptionsConfigItem);\n\n let ast;\n\n try {\n return {\n parserOptions: await parseAsync(code, options),\n ast: null,\n };\n } catch (err) {\n if (!MULTIPLE_OVERRIDES.test(err.message)) {\n throw err;\n }\n }\n\n // There was already a parserOverride, so remove our plugin.\n options.plugins = plugins;\n\n try {\n ast = await parseAsync(code, options);\n } catch (err) {\n throw convertError(err);\n }\n\n return {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n ast: convertFile(ast!, code, getTokLabels(), getVisitorKeys()),\n parserOptions: null,\n };\n}\n","import maybeParse from \"./maybeParse.ts\";\nimport { normalizeBabelParseConfig } from \"./configuration.ts\";\nimport { ACTIONS } from \"../client.ts\";\n\nexport default async function handleMessage(action: ACTIONS, payload: any) {\n switch (action) {\n case ACTIONS.MAYBE_PARSE:\n return await maybeParse(\n payload.code,\n await normalizeBabelParseConfig(payload.options),\n );\n }\n}\n","import { parentPort } from \"node:worker_threads\";\n\nimport handleMessage from \"./handle-message.ts\";\n\nparentPort!.addListener(\n \"message\",\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n async ({ signal, port, action, payload }) => {\n let response;\n\n try {\n response = { result: await handleMessage(action, payload) };\n } catch (error) {\n response = { error, errorData: { ...error } };\n }\n\n try {\n port.postMessage(response);\n } catch {\n port.postMessage({\n error: new Error(\"Cannot serialize worker response\"),\n });\n } finally {\n port.close();\n Atomics.store(signal, 0, 1);\n Atomics.notify(signal, 0);\n }\n },\n);\n"],"names":[],"mappings":";;;;AAAe,SAAS,0BAA0B,GAAG;EACnD,OAAO;AACL,IAAA,cAAc,CAAC,IAAY,EAAE,IAAS,EAAE;AACtC,MAAA,OAAO,IAAI;AACb,IAAA;GACD;AACH;;ACEA,MAAM,GAAG,GAAG,EAAE;AACd,IAAI,8BAA+C;AAEnD,MAAM,kBAAkB,GAAG,oDAAoD;AAEhE,eAAe,UAAU,CACtC,IAAY,EACZ,OAAqB,EAIpB;EACD,IAAI,CAAC,8BAA8B,EAAE;IACnC,8BAA8B,GAAG,MAAM,qBAAqB,CAC1D,CAAC,0BAA0B,EAAE,GAAG,CAAC,EACjC;AAAE,MAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;AAAE,MAAA,IAAI,EAAE;AAAS,KACjD,CAAC;AACH,EAAA;EACA,MAAM;AAAE,IAAA;AAAQ,GAAC,GAAG,OAAO;EAC3B,OAAO,CAAC,OAAO,GAAG,OAAO,CAAE,MAAM,CAAC,8BAA8B,CAAC;AAEjE,EAAA,IAAI,GAAG;EAEP,IAAI;IACF,OAAO;AACL,MAAA,aAAa,EAAE,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;AAC9C,MAAA,GAAG,EAAE;KACN;EACH,CAAC,CAAC,OAAO,GAAG,EAAE;IACZ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;AACzC,MAAA,MAAM,GAAG;AACX,IAAA;AACF,EAAA;EAGA,OAAO,CAAC,OAAO,GAAG,OAAO;EAEzB,IAAI;AACF,IAAA,GAAG,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC;EACvC,CAAC,CAAC,OAAO,GAAG,EAAE;IACZ,MAAM,YAAY,CAAC,GAAG,CAAC;AACzB,EAAA;EAEA,OAAO;AAEL,IAAA,GAAG,EAAE,WAAW,CAAC,GAAG,EAAG,IAAI,EAAE,YAAY,EAAE,EAAE,cAAc,EAAE,CAAC;AAC9D,IAAA,aAAa,EAAE;GAChB;AACH;;ACpDe,eAAe,aAAa,CAAC,MAAe,EAAE,OAAY,EAAE;AACzE,EAAA,QAAQ,MAAM;IACZ,KAAK,OAAO,CAAC,WAAW;AACtB,MAAA,OAAO,MAAM,UAAU,CACrB,OAAO,CAAC,IAAI,EACZ,MAAM,yBAAyB,CAAC,OAAO,CAAC,OAAO,CACjD,CAAC;AACL;AACF;;ACRA,UAAU,CAAE,WAAW,CACrB,SAAS,EAET,OAAO;EAAE,MAAM;EAAE,IAAI;EAAE,MAAM;AAAE,EAAA;AAAQ,CAAC,KAAK;AAC3C,EAAA,IAAI,QAAQ;EAEZ,IAAI;AACF,IAAA,QAAQ,GAAG;AAAE,MAAA,MAAM,EAAE,MAAM,aAAa,CAAC,MAAM,EAAE,OAAO;KAAG;EAC7D,CAAC,CAAC,OAAO,KAAK,EAAE;AACd,IAAA,QAAQ,GAAG;MAAE,KAAK;AAAE,MAAA,SAAS,EAAE;QAAE,GAAG;AAAM;KAAG;AAC/C,EAAA;EAEA,IAAI;AACF,IAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;AAC5B,EAAA,CAAC,CAAC,MAAM;IACN,IAAI,CAAC,WAAW,CAAC;AACf,MAAA,KAAK,EAAE,IAAI,KAAK,CAAC,kCAAkC;AACrD,KAAC,CAAC;AACJ,EAAA,CAAC,SAAS;IACR,IAAI,CAAC,KAAK,EAAE;IACZ,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;AAC3B,IAAA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC3B,EAAA;AACF,CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@depup/babel__eslint-parser",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "8.0.5-depup.0",
|
|
4
|
+
"description": "ESLint parser that allows for linting of experimental syntax transformed by Babel (with updated dependencies)",
|
|
5
5
|
"author": "The Babel Team (https://babel.dev/team)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
@@ -14,62 +14,61 @@
|
|
|
14
14
|
},
|
|
15
15
|
"homepage": "https://babel.dev/",
|
|
16
16
|
"engines": {
|
|
17
|
-
"node": "^
|
|
17
|
+
"node": "^22.18.0 || >=24.11.0"
|
|
18
18
|
},
|
|
19
|
-
"main": "./lib/index.
|
|
19
|
+
"main": "./lib/index.js",
|
|
20
20
|
"type": "module",
|
|
21
|
-
"types": "./types.d.cts",
|
|
22
21
|
"exports": {
|
|
23
22
|
".": {
|
|
24
|
-
"
|
|
25
|
-
"
|
|
26
|
-
},
|
|
27
|
-
"./experimental-worker": {
|
|
28
|
-
"default": "./lib/experimental-worker.cjs",
|
|
29
|
-
"types": "./types.d.cts"
|
|
23
|
+
"types": "./lib/index.d.ts",
|
|
24
|
+
"default": "./lib/index.js"
|
|
30
25
|
},
|
|
31
26
|
"./package.json": "./package.json"
|
|
32
27
|
},
|
|
33
28
|
"peerDependencies": {
|
|
34
|
-
"@babel/core": "^
|
|
35
|
-
"eslint": "^
|
|
29
|
+
"@babel/core": "^8.0.0",
|
|
30
|
+
"eslint": "^9.0.0 || ^10.0.0"
|
|
36
31
|
},
|
|
37
32
|
"dependencies": {
|
|
38
|
-
"
|
|
33
|
+
"eslint-scope": "^9.1.2",
|
|
39
34
|
"eslint-visitor-keys": "^5.0.1",
|
|
40
|
-
"
|
|
35
|
+
"verkit": "^0.4.0"
|
|
41
36
|
},
|
|
42
37
|
"devDependencies": {
|
|
43
|
-
"@babel/core": "^
|
|
44
|
-
"@babel/helper-fixtures": "^
|
|
45
|
-
"@types/eslint": "^8.56.2",
|
|
38
|
+
"@babel/core": "^8.0.5",
|
|
39
|
+
"@babel/helper-fixtures": "^8.0.5",
|
|
46
40
|
"@types/estree": "^1.0.5",
|
|
47
|
-
"@typescript-eslint/scope-manager": "^6.19.0",
|
|
48
41
|
"dedent": "^1.5.3",
|
|
49
|
-
"eslint": "^
|
|
50
|
-
"typescript-eslint": "
|
|
42
|
+
"eslint": "^10.0.0",
|
|
43
|
+
"typescript-eslint": "8.60.0"
|
|
51
44
|
},
|
|
52
45
|
"keywords": [
|
|
46
|
+
"@babel/eslint-parser",
|
|
53
47
|
"depup",
|
|
54
|
-
"
|
|
55
|
-
"
|
|
56
|
-
"
|
|
48
|
+
"updated-dependencies",
|
|
49
|
+
"security",
|
|
50
|
+
"latest",
|
|
51
|
+
"patched"
|
|
57
52
|
],
|
|
58
53
|
"depup": {
|
|
59
54
|
"changes": {
|
|
55
|
+
"eslint-scope": {
|
|
56
|
+
"from": "^9.1.0",
|
|
57
|
+
"to": "^9.1.2"
|
|
58
|
+
},
|
|
60
59
|
"eslint-visitor-keys": {
|
|
61
|
-
"from": "^
|
|
60
|
+
"from": "^5.0.0",
|
|
62
61
|
"to": "^5.0.1"
|
|
63
62
|
},
|
|
64
|
-
"
|
|
65
|
-
"from": "^
|
|
66
|
-
"to": "^
|
|
63
|
+
"verkit": {
|
|
64
|
+
"from": "^0.3.2",
|
|
65
|
+
"to": "^0.4.0"
|
|
67
66
|
}
|
|
68
67
|
},
|
|
69
|
-
"depsUpdated":
|
|
68
|
+
"depsUpdated": 3,
|
|
70
69
|
"originalPackage": "@babel/eslint-parser",
|
|
71
|
-
"originalVersion": "
|
|
72
|
-
"processedAt": "2026-
|
|
70
|
+
"originalVersion": "8.0.5",
|
|
71
|
+
"processedAt": "2026-09-11T00:32:27.630Z",
|
|
73
72
|
"smokeTest": "passed"
|
|
74
73
|
}
|
|
75
74
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["Definition","PatternVisitor","OriginalPatternVisitor","Referencer","OriginalReferencer","Scope","ScopeManager","require","getKeys","fallback","visitorKeysMap","getVisitorValues","nodeType","client","FLOW_FLIPPED_ALIAS_KEYS","VISITOR_KEYS","getTypesInfo","flowFlippedAliasKeys","Set","concat","Object","entries","o","keys","map","k","reduce","acc","key","value","has","propertyTypes","callProperties","type","values","indexers","properties","types","params","argument","elementType","qualification","rest","returnType","typeAnnotation","typeParameters","id","ArrayPattern","node","elements","forEach","visit","ObjectPattern","_client","WeakMap","constructor","options","scopeManager","_classPrivateFieldInitSpec","_classPrivateFieldSet","visitPattern","callback","_checkIdentifierOrVisit","left","processRightHandNodes","visitor","rightHandNodes","visitClass","_ref","_visitArray","decorators","typeParamScope","_nestTypeParamScope","_visitTypeAnnotation","implements","superTypeParameters","close","visitFunction","visitProperty","_node$value","InterfaceDeclaration","_createScopeVariable","extends","body","TypeAlias","right","ClassProperty","_visitClassProperty","ClassPrivateProperty","AccessorProperty","ClassAccessorProperty","PropertyDefinition","ClassPrivateMethod","MethodDefinition","DeclareModule","_visitDeclareX","DeclareFunction","DeclareVariable","DeclareClass","OptionalMemberExpression","MemberExpression","computed","__nestClassFieldInitializerScope","__nestScope","__currentScope","name","currentScope","variableScope","__define","parentScope","scope","j","length","bind","Array","isArray","visitorValues","_classPrivateFieldGet","i","visitorValue","propertyType","nodeProperty","loopPropertyNode","l","nodeList","module","exports","analyzeScope","ast","parserOptions","_parserOptions$ecmaFe","ignoreEval","optimistic","directive","nodejsScope","sourceType","ecmaFeatures","globalReturn","impliedStrict","ecmaVersion","childVisitorKeys","getVisitorKeys","referencer"],"sources":["../src/analyze-scope.cts"],"sourcesContent":["import type { Client } from \"./client.cts\";\n\nconst {\n Definition,\n PatternVisitor: OriginalPatternVisitor,\n Referencer: OriginalReferencer,\n Scope,\n ScopeManager,\n} = (\n process.env.BABEL_8_BREAKING\n ? require(\"eslint-scope\")\n : require(\"@nicolo-ribaudo/eslint-scope-5-internals\")\n) as import(\"./types.cts\").Scope;\nconst { getKeys: fallback } = require(\"eslint-visitor-keys\");\n\nlet visitorKeysMap: Record<string, string[]>;\nfunction getVisitorValues(nodeType: string, client: Client) {\n if (visitorKeysMap) return visitorKeysMap[nodeType];\n\n const { FLOW_FLIPPED_ALIAS_KEYS, VISITOR_KEYS } = client.getTypesInfo();\n\n const flowFlippedAliasKeys = new Set(\n FLOW_FLIPPED_ALIAS_KEYS.concat([\n \"ArrayPattern\",\n \"ClassDeclaration\",\n \"ClassExpression\",\n \"FunctionDeclaration\",\n \"FunctionExpression\",\n \"Identifier\",\n \"ObjectPattern\",\n \"RestElement\",\n ]),\n );\n\n visitorKeysMap = Object.entries(VISITOR_KEYS).reduce((acc, [key, value]) => {\n if (!flowFlippedAliasKeys.has(value)) {\n // @ts-expect-error FIXME: value is not assignable to type string[]\n acc[key] = value;\n }\n return acc;\n }, {});\n\n return visitorKeysMap[nodeType];\n}\n\nconst propertyTypes = {\n // loops\n callProperties: { type: \"loop\", values: [\"value\"] },\n indexers: { type: \"loop\", values: [\"key\", \"value\"] },\n properties: { type: \"loop\", values: [\"argument\", \"value\"] },\n types: { type: \"loop\" },\n params: { type: \"loop\" },\n // single property\n argument: { type: \"single\" },\n elementType: { type: \"single\" },\n qualification: { type: \"single\" },\n rest: { type: \"single\" },\n returnType: { type: \"single\" },\n // others\n typeAnnotation: { type: \"typeAnnotation\" },\n typeParameters: { type: \"typeParameters\" },\n id: { type: \"id\" },\n};\n\nclass PatternVisitor extends OriginalPatternVisitor {\n ArrayPattern(node: any) {\n node.elements.forEach(this.visit, this);\n }\n\n ObjectPattern(node: any) {\n node.properties.forEach(this.visit, this);\n }\n}\n\nclass Referencer extends OriginalReferencer {\n #client;\n\n constructor(options: any, scopeManager: any, client: Client) {\n super(options, scopeManager);\n this.#client = client;\n }\n\n // inherits.\n visitPattern(node: any, options: any, callback: any) {\n if (!node) {\n return;\n }\n\n // Visit type annotations.\n this._checkIdentifierOrVisit(node.typeAnnotation);\n if (node.type === \"AssignmentPattern\") {\n this._checkIdentifierOrVisit(node.left.typeAnnotation);\n }\n\n // Overwrite `super.visitPattern(node, options, callback)` in order to not visit `ArrayPattern#typeAnnotation` and `ObjectPattern#typeAnnotation`.\n if (typeof options === \"function\") {\n callback = options;\n options = { processRightHandNodes: false };\n }\n\n const visitor = new PatternVisitor(this.options, node, callback);\n visitor.visit(node);\n\n // Process the right hand nodes recursively.\n if (options.processRightHandNodes) {\n visitor.rightHandNodes.forEach(this.visit, this);\n }\n }\n\n // inherits.\n visitClass(node: any) {\n // Decorators.\n this._visitArray(node.decorators);\n\n // Flow type parameters.\n const typeParamScope = this._nestTypeParamScope(node);\n\n // Flow super types.\n this._visitTypeAnnotation(node.implements);\n this._visitTypeAnnotation(\n (process.env.BABEL_8_BREAKING\n ? // @ts-ignore(Babel 7 vs Babel 8) Renamed\n node.superTypeArguments\n : // @ts-ignore(Babel 7 vs Babel 8) Renamed\n node.superTypeParameters\n )?.params,\n );\n\n // Basic.\n super.visitClass(node);\n\n // Close the type parameter scope.\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n // inherits.\n visitFunction(node: any) {\n const typeParamScope = this._nestTypeParamScope(node);\n\n // Flow return types.\n this._checkIdentifierOrVisit(node.returnType);\n\n // Basic.\n super.visitFunction(node);\n\n // Close the type parameter scope.\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n // inherits.\n visitProperty(node: any) {\n if (node.value?.type === \"TypeCastExpression\") {\n this._visitTypeAnnotation(node.value);\n }\n this._visitArray(node.decorators);\n super.visitProperty(node);\n }\n\n InterfaceDeclaration(node: any) {\n this._createScopeVariable(node, node.id);\n\n const typeParamScope = this._nestTypeParamScope(node);\n\n // TODO: Handle mixins\n this._visitArray(node.extends);\n this.visit(node.body);\n\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n TypeAlias(node: any) {\n this._createScopeVariable(node, node.id);\n\n const typeParamScope = this._nestTypeParamScope(node);\n\n this.visit(node.right);\n\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n ClassProperty(node: any) {\n this._visitClassProperty(node);\n }\n\n ClassPrivateProperty(node: any) {\n this._visitClassProperty(node);\n }\n\n AccessorProperty(node: any) {\n this._visitClassProperty(node);\n }\n\n ClassAccessorProperty(node: any) {\n this._visitClassProperty(node);\n }\n\n PropertyDefinition(node: any) {\n this._visitClassProperty(node);\n }\n\n // TODO: Update to visit type annotations when TypeScript/Flow support this syntax.\n ClassPrivateMethod(node: any) {\n super.MethodDefinition(node);\n }\n\n DeclareModule(node: any) {\n this._visitDeclareX(node);\n }\n\n DeclareFunction(node: any) {\n this._visitDeclareX(node);\n }\n\n DeclareVariable(node: any) {\n this._visitDeclareX(node);\n }\n\n DeclareClass(node: any) {\n this._visitDeclareX(node);\n }\n\n // visit OptionalMemberExpression as a MemberExpression.\n OptionalMemberExpression(node: any) {\n super.MemberExpression(node);\n }\n\n _visitClassProperty(node: any) {\n const { computed, key, typeAnnotation, decorators, value } = node;\n\n this._visitArray(decorators);\n if (computed) this.visit(key);\n this._visitTypeAnnotation(typeAnnotation);\n\n if (value) {\n if (this.scopeManager.__nestClassFieldInitializerScope) {\n this.scopeManager.__nestClassFieldInitializerScope(value);\n } else {\n // Given that ESLint 7 didn't have a \"class field initializer\" scope,\n // we create a plain method scope. Semantics are the same.\n this.scopeManager.__nestScope(\n new Scope(\n this.scopeManager,\n \"function\",\n this.scopeManager.__currentScope,\n value,\n true,\n ),\n );\n }\n this.visit(value);\n this.close(value);\n }\n }\n\n _visitDeclareX(node: any) {\n if (node.id) {\n this._createScopeVariable(node, node.id);\n }\n\n const typeParamScope = this._nestTypeParamScope(node);\n if (typeParamScope) {\n this.close(node);\n }\n }\n\n _createScopeVariable(node: any, name: any) {\n this.currentScope().variableScope.__define(\n name,\n new Definition(\"Variable\", name, node, null, null, null),\n );\n }\n\n _nestTypeParamScope(node: any) {\n if (!node.typeParameters) {\n return null;\n }\n\n const parentScope = this.scopeManager.__currentScope;\n const scope = new Scope(\n this.scopeManager,\n \"type-parameters\",\n parentScope,\n node,\n false,\n );\n\n this.scopeManager.__nestScope(scope);\n for (let j = 0; j < node.typeParameters.params.length; j++) {\n const name = node.typeParameters.params[j];\n scope.__define(name, new Definition(\"TypeParameter\", name, name));\n if (name.typeAnnotation) {\n this._checkIdentifierOrVisit(name);\n }\n }\n scope.__define = parentScope.__define.bind(parentScope);\n\n return scope;\n }\n\n _visitTypeAnnotation(node: any) {\n if (!node) {\n return;\n }\n if (Array.isArray(node)) {\n node.forEach(this._visitTypeAnnotation, this);\n return;\n }\n\n // get property to check (params, id, etc...)\n const visitorValues = getVisitorValues(node.type, this.#client);\n if (!visitorValues) {\n return;\n }\n\n // can have multiple properties\n for (let i = 0; i < visitorValues.length; i++) {\n const visitorValue = visitorValues[i];\n const propertyType = (propertyTypes as Record<string, any>)[visitorValue];\n const nodeProperty = node[visitorValue];\n // check if property or type is defined\n if (propertyType == null || nodeProperty == null) {\n continue;\n }\n if (propertyType.type === \"loop\") {\n for (let j = 0; j < nodeProperty.length; j++) {\n if (Array.isArray(propertyType.values)) {\n for (let k = 0; k < propertyType.values.length; k++) {\n const loopPropertyNode = nodeProperty[j][propertyType.values[k]];\n if (loopPropertyNode) {\n this._checkIdentifierOrVisit(loopPropertyNode);\n }\n }\n } else {\n this._checkIdentifierOrVisit(nodeProperty[j]);\n }\n }\n } else if (propertyType.type === \"single\") {\n this._checkIdentifierOrVisit(nodeProperty);\n } else if (propertyType.type === \"typeAnnotation\") {\n this._visitTypeAnnotation(node.typeAnnotation);\n } else if (propertyType.type === \"typeParameters\") {\n for (let l = 0; l < node.typeParameters.params.length; l++) {\n this._checkIdentifierOrVisit(node.typeParameters.params[l]);\n }\n } else if (propertyType.type === \"id\") {\n if (node.id.type === \"Identifier\") {\n this._checkIdentifierOrVisit(node.id);\n } else {\n this._visitTypeAnnotation(node.id);\n }\n }\n }\n }\n\n _checkIdentifierOrVisit(node: any) {\n if (node?.typeAnnotation) {\n this._visitTypeAnnotation(node.typeAnnotation);\n } else if (node?.type === \"Identifier\") {\n this.visit(node);\n } else {\n this._visitTypeAnnotation(node);\n }\n }\n\n _visitArray(nodeList: any[]) {\n if (nodeList) {\n for (const node of nodeList) {\n this.visit(node);\n }\n }\n }\n}\n\nexport = function analyzeScope(ast: any, parserOptions: any, client: Client) {\n const options = {\n ignoreEval: true,\n optimistic: false,\n directive: false,\n nodejsScope:\n ast.sourceType === \"script\" &&\n parserOptions.ecmaFeatures?.globalReturn === true,\n impliedStrict: false,\n sourceType: ast.sourceType,\n ecmaVersion: parserOptions.ecmaVersion,\n fallback,\n childVisitorKeys: client.getVisitorKeys(),\n };\n\n const scopeManager = new ScopeManager(options);\n const referencer = new Referencer(options, scopeManager, client);\n\n referencer.visit(ast);\n\n return scopeManager as any;\n};\n"],"mappings":"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","ignoreList":[]}
|