@depup/babel__eslint-parser 7.28.6-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/LICENSE +22 -0
- package/README.md +32 -0
- package/changes.json +14 -0
- package/lib/analyze-scope.cjs +325 -0
- package/lib/analyze-scope.cjs.map +1 -0
- package/lib/client.cjs +104 -0
- package/lib/client.cjs.map +1 -0
- package/lib/configuration.cjs +23 -0
- package/lib/configuration.cjs.map +1 -0
- package/lib/convert/convertAST.cjs +134 -0
- package/lib/convert/convertAST.cjs.map +1 -0
- package/lib/convert/convertComments.cjs +10 -0
- package/lib/convert/convertComments.cjs.map +1 -0
- package/lib/convert/convertTokens.cjs +158 -0
- package/lib/convert/convertTokens.cjs.map +1 -0
- package/lib/convert/index.cjs +25 -0
- package/lib/convert/index.cjs.map +1 -0
- package/lib/experimental-worker.cjs +32 -0
- package/lib/experimental-worker.cjs.map +1 -0
- package/lib/index.cjs +32 -0
- package/lib/index.cjs.map +1 -0
- package/lib/parse.cjs +37 -0
- package/lib/parse.cjs.map +1 -0
- package/lib/utils/eslint-version.cjs +5 -0
- package/lib/utils/eslint-version.cjs.map +1 -0
- package/lib/worker/ast-info.cjs +38 -0
- package/lib/worker/ast-info.cjs.map +1 -0
- package/lib/worker/babel-core.cjs +19 -0
- package/lib/worker/babel-core.cjs.map +1 -0
- package/lib/worker/configuration.cjs +99 -0
- package/lib/worker/configuration.cjs.map +1 -0
- package/lib/worker/extract-parser-options-plugin.cjs +11 -0
- package/lib/worker/extract-parser-options-plugin.cjs.map +1 -0
- package/lib/worker/handle-message.cjs +31 -0
- package/lib/worker/handle-message.cjs.map +1 -0
- package/lib/worker/index.cjs +39 -0
- package/lib/worker/index.cjs.map +1 -0
- package/lib/worker/maybeParse.cjs +56 -0
- package/lib/worker/maybeParse.cjs.map +1 -0
- package/lib/worker/maybeParseSync.cjs +48 -0
- package/lib/worker/maybeParseSync.cjs.map +1 -0
- package/package.json +75 -0
- package/types.d.cts +9 -0
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const ESLINT_VERSION = require("../utils/eslint-version.cjs");
|
|
4
|
+
function* it(children) {
|
|
5
|
+
if (Array.isArray(children)) yield* children;else yield children;
|
|
6
|
+
}
|
|
7
|
+
function traverse(node, visitorKeys, visitor) {
|
|
8
|
+
const {
|
|
9
|
+
type
|
|
10
|
+
} = node;
|
|
11
|
+
if (!type) return;
|
|
12
|
+
const keys = visitorKeys[type];
|
|
13
|
+
if (!keys) return;
|
|
14
|
+
for (const key of keys) {
|
|
15
|
+
for (const child of it(node[key])) {
|
|
16
|
+
if (child && typeof child === "object") {
|
|
17
|
+
visitor.enter(child);
|
|
18
|
+
traverse(child, visitorKeys, visitor);
|
|
19
|
+
visitor.exit(child);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
const convertNodesVisitor = {
|
|
25
|
+
enter(node) {
|
|
26
|
+
if (node.innerComments) {
|
|
27
|
+
delete node.innerComments;
|
|
28
|
+
}
|
|
29
|
+
if (node.trailingComments) {
|
|
30
|
+
delete node.trailingComments;
|
|
31
|
+
}
|
|
32
|
+
if (node.leadingComments) {
|
|
33
|
+
delete node.leadingComments;
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
exit(node) {
|
|
37
|
+
if (node.extra) {
|
|
38
|
+
delete node.extra;
|
|
39
|
+
}
|
|
40
|
+
if (node.loc.identifierName) {
|
|
41
|
+
delete node.loc.identifierName;
|
|
42
|
+
}
|
|
43
|
+
if (node.type === "TypeParameter") {
|
|
44
|
+
node.type = "Identifier";
|
|
45
|
+
node.typeAnnotation = node.bound;
|
|
46
|
+
delete node.bound;
|
|
47
|
+
}
|
|
48
|
+
if (node.type === "QualifiedTypeIdentifier") {
|
|
49
|
+
delete node.id;
|
|
50
|
+
}
|
|
51
|
+
if (node.type === "ObjectTypeProperty") {
|
|
52
|
+
delete node.key;
|
|
53
|
+
}
|
|
54
|
+
if (node.type === "ObjectTypeIndexer") {
|
|
55
|
+
delete node.id;
|
|
56
|
+
}
|
|
57
|
+
if (node.type === "FunctionTypeParam") {
|
|
58
|
+
delete node.name;
|
|
59
|
+
}
|
|
60
|
+
if (node.type === "ImportDeclaration") {
|
|
61
|
+
delete node.isType;
|
|
62
|
+
}
|
|
63
|
+
if (node.type === "TemplateLiteral" || node.type === "TSTemplateLiteralType") {
|
|
64
|
+
for (let i = 0; i < node.quasis.length; i++) {
|
|
65
|
+
const q = node.quasis[i];
|
|
66
|
+
q.range[0] -= 1;
|
|
67
|
+
if (q.tail) {
|
|
68
|
+
q.range[1] += 1;
|
|
69
|
+
} else {
|
|
70
|
+
q.range[1] += 2;
|
|
71
|
+
}
|
|
72
|
+
q.loc.start.column -= 1;
|
|
73
|
+
if (q.tail) {
|
|
74
|
+
q.loc.end.column += 1;
|
|
75
|
+
} else {
|
|
76
|
+
q.loc.end.column += 2;
|
|
77
|
+
}
|
|
78
|
+
if (ESLINT_VERSION >= 8) {
|
|
79
|
+
q.start -= 1;
|
|
80
|
+
if (q.tail) {
|
|
81
|
+
q.end += 1;
|
|
82
|
+
} else {
|
|
83
|
+
q.end += 2;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
function convertNodes(ast, visitorKeys) {
|
|
91
|
+
traverse(ast, visitorKeys, convertNodesVisitor);
|
|
92
|
+
}
|
|
93
|
+
function convertProgramNode(ast) {
|
|
94
|
+
const body = ast.program.body;
|
|
95
|
+
Object.assign(ast, {
|
|
96
|
+
type: "Program",
|
|
97
|
+
sourceType: ast.program.sourceType,
|
|
98
|
+
body
|
|
99
|
+
});
|
|
100
|
+
delete ast.program;
|
|
101
|
+
delete ast.errors;
|
|
102
|
+
if (ast.comments.length) {
|
|
103
|
+
const lastComment = ast.comments[ast.comments.length - 1];
|
|
104
|
+
if (ast.tokens.length) {
|
|
105
|
+
const lastToken = ast.tokens[ast.tokens.length - 1];
|
|
106
|
+
if (lastComment.end > lastToken.end) {
|
|
107
|
+
ast.range[1] = lastToken.end;
|
|
108
|
+
ast.loc.end.line = lastToken.loc.end.line;
|
|
109
|
+
ast.loc.end.column = lastToken.loc.end.column;
|
|
110
|
+
if (ESLINT_VERSION >= 8) {
|
|
111
|
+
ast.end = lastToken.end;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
} else {
|
|
116
|
+
if (!ast.tokens.length) {
|
|
117
|
+
ast.loc.start.line = 1;
|
|
118
|
+
ast.loc.end.line = 1;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (body != null && body.length) {
|
|
122
|
+
ast.loc.start.line = body[0].loc.start.line;
|
|
123
|
+
ast.range[0] = body[0].start;
|
|
124
|
+
if (ESLINT_VERSION >= 8) {
|
|
125
|
+
ast.start = body[0].start;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
module.exports = function convertAST(ast, visitorKeys) {
|
|
130
|
+
convertNodes(ast, visitorKeys);
|
|
131
|
+
convertProgramNode(ast);
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
//# sourceMappingURL=convertAST.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ESLINT_VERSION","require","it","children","Array","isArray","traverse","node","visitorKeys","visitor","type","keys","key","child","enter","exit","convertNodesVisitor","innerComments","trailingComments","leadingComments","extra","loc","identifierName","typeAnnotation","bound","id","name","isType","i","quasis","length","q","range","tail","start","column","end","convertNodes","ast","convertProgramNode","body","program","Object","assign","sourceType","errors","comments","lastComment","tokens","lastToken","line","module","exports","convertAST"],"sources":["../../src/convert/convertAST.cts"],"sourcesContent":["import type * as t from \"@babel/types\";\nimport ESLINT_VERSION = require(\"../utils/eslint-version.cts\");\nimport type { ParseResult } from \"../types.d.cts\";\n\nfunction* it<T>(children: T | T[]) {\n if (Array.isArray(children)) yield* children;\n else yield children;\n}\n\nfunction traverse(\n node: t.Node,\n visitorKeys: Record<string, string[]>,\n visitor: typeof convertNodesVisitor,\n) {\n const { type } = node;\n if (!type) return;\n const keys = visitorKeys[type];\n if (!keys) return;\n\n for (const key of keys) {\n for (const child of it(\n node[key as keyof t.Node] as unknown as t.Node | t.Node[],\n )) {\n if (child && typeof child === \"object\") {\n visitor.enter(child);\n traverse(child, visitorKeys, visitor);\n visitor.exit(child);\n }\n }\n }\n}\n\nconst convertNodesVisitor = {\n enter(node: t.Node) {\n if (node.innerComments) {\n delete node.innerComments;\n }\n\n if (node.trailingComments) {\n delete node.trailingComments;\n }\n\n if (node.leadingComments) {\n delete node.leadingComments;\n }\n },\n exit(node: t.Node) {\n // Used internally by @babel/parser.\n if (node.extra) {\n delete node.extra;\n }\n\n if (process.env.IS_PUBLISH) {\n if (node.loc.identifierName) {\n delete node.loc.identifierName;\n }\n } else {\n // To minimize the jest-diff noise comparing Babel AST and third-party AST,\n // here we generate a deep copy of loc without identifierName and index\n if (node.loc) {\n node.loc = {\n end: {\n column: node.loc.end.column,\n line: node.loc.end.line,\n },\n start: {\n column: node.loc.start.column,\n line: node.loc.start.line,\n },\n } as any;\n }\n }\n\n if (node.type === \"TypeParameter\") {\n // @ts-expect-error eslint\n node.type = \"Identifier\";\n // @ts-expect-error eslint\n node.typeAnnotation = node.bound;\n delete node.bound;\n }\n\n // flow: prevent \"no-undef\"\n // for \"Component\" in: \"let x: React.Component\"\n if (node.type === \"QualifiedTypeIdentifier\") {\n delete node.id;\n }\n // for \"b\" in: \"var a: { b: Foo }\"\n if (node.type === \"ObjectTypeProperty\") {\n delete node.key;\n }\n // for \"indexer\" in: \"var a: {[indexer: string]: number}\"\n if (node.type === \"ObjectTypeIndexer\") {\n delete node.id;\n }\n // for \"param\" in: \"var a: { func(param: Foo): Bar };\"\n if (node.type === \"FunctionTypeParam\") {\n delete node.name;\n }\n\n // modules\n if (node.type === \"ImportDeclaration\") {\n // @ts-expect-error legacy?\n delete node.isType;\n }\n\n // template string range fixes\n if (\n node.type === \"TemplateLiteral\" ||\n node.type === \"TSTemplateLiteralType\"\n ) {\n for (let i = 0; i < node.quasis.length; i++) {\n const q = node.quasis[i];\n q.range[0] -= 1;\n if (q.tail) {\n q.range[1] += 1;\n } else {\n q.range[1] += 2;\n }\n q.loc.start.column -= 1;\n if (q.tail) {\n q.loc.end.column += 1;\n } else {\n q.loc.end.column += 2;\n }\n\n if (ESLINT_VERSION >= 8) {\n q.start -= 1;\n if (q.tail) {\n q.end += 1;\n } else {\n q.end += 2;\n }\n }\n }\n }\n },\n};\n\nfunction convertNodes(ast: ParseResult, visitorKeys: Record<string, string[]>) {\n traverse(ast as unknown as t.Program, visitorKeys, convertNodesVisitor);\n}\n\nfunction convertProgramNode(ast: ParseResult) {\n const body = ast.program.body;\n Object.assign(ast, {\n type: \"Program\",\n sourceType: ast.program.sourceType,\n body,\n });\n delete ast.program;\n delete ast.errors;\n\n if (ast.comments.length) {\n const lastComment = ast.comments[ast.comments.length - 1];\n\n if (ast.tokens.length) {\n const lastToken = ast.tokens[ast.tokens.length - 1];\n\n if (lastComment.end > lastToken.end) {\n // If there is a comment after the last token, the program ends at the\n // last token and not the comment\n ast.range[1] = lastToken.end;\n ast.loc.end.line = lastToken.loc.end.line;\n ast.loc.end.column = lastToken.loc.end.column;\n\n if (ESLINT_VERSION >= 8) {\n ast.end = lastToken.end;\n }\n }\n }\n } else {\n if (!ast.tokens.length) {\n ast.loc.start.line = 1;\n ast.loc.end.line = 1;\n }\n }\n\n if (body?.length) {\n ast.loc.start.line = body[0].loc.start.line;\n ast.range[0] = body[0].start;\n\n if (ESLINT_VERSION >= 8) {\n ast.start = body[0].start;\n }\n }\n}\n\nexport = function convertAST(\n ast: ParseResult,\n visitorKeys: Record<string, string[]>,\n) {\n convertNodes(ast, visitorKeys);\n convertProgramNode(ast);\n};\n"],"mappings":";;MACOA,cAAc,GAAAC,OAAA,CAAW,6BAA6B;AAG7D,UAAUC,EAAEA,CAAIC,QAAiB,EAAE;EACjC,IAAIC,KAAK,CAACC,OAAO,CAACF,QAAQ,CAAC,EAAE,OAAOA,QAAQ,CAAC,KACxC,MAAMA,QAAQ;AACrB;AAEA,SAASG,QAAQA,CACfC,IAAY,EACZC,WAAqC,EACrCC,OAAmC,EACnC;EACA,MAAM;IAAEC;EAAK,CAAC,GAAGH,IAAI;EACrB,IAAI,CAACG,IAAI,EAAE;EACX,MAAMC,IAAI,GAAGH,WAAW,CAACE,IAAI,CAAC;EAC9B,IAAI,CAACC,IAAI,EAAE;EAEX,KAAK,MAAMC,GAAG,IAAID,IAAI,EAAE;IACtB,KAAK,MAAME,KAAK,IAAIX,EAAE,CACpBK,IAAI,CAACK,GAAG,CACV,CAAC,EAAE;MACD,IAAIC,KAAK,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;QACtCJ,OAAO,CAACK,KAAK,CAACD,KAAK,CAAC;QACpBP,QAAQ,CAACO,KAAK,EAAEL,WAAW,EAAEC,OAAO,CAAC;QACrCA,OAAO,CAACM,IAAI,CAACF,KAAK,CAAC;MACrB;IACF;EACF;AACF;AAEA,MAAMG,mBAAmB,GAAG;EAC1BF,KAAKA,CAACP,IAAY,EAAE;IAClB,IAAIA,IAAI,CAACU,aAAa,EAAE;MACtB,OAAOV,IAAI,CAACU,aAAa;IAC3B;IAEA,IAAIV,IAAI,CAACW,gBAAgB,EAAE;MACzB,OAAOX,IAAI,CAACW,gBAAgB;IAC9B;IAEA,IAAIX,IAAI,CAACY,eAAe,EAAE;MACxB,OAAOZ,IAAI,CAACY,eAAe;IAC7B;EACF,CAAC;EACDJ,IAAIA,CAACR,IAAY,EAAE;IAEjB,IAAIA,IAAI,CAACa,KAAK,EAAE;MACd,OAAOb,IAAI,CAACa,KAAK;IACnB;IAGE,IAAIb,IAAI,CAACc,GAAG,CAACC,cAAc,EAAE;MAC3B,OAAOf,IAAI,CAACc,GAAG,CAACC,cAAc;IAChC;IAkBF,IAAIf,IAAI,CAACG,IAAI,KAAK,eAAe,EAAE;MAEjCH,IAAI,CAACG,IAAI,GAAG,YAAY;MAExBH,IAAI,CAACgB,cAAc,GAAGhB,IAAI,CAACiB,KAAK;MAChC,OAAOjB,IAAI,CAACiB,KAAK;IACnB;IAIA,IAAIjB,IAAI,CAACG,IAAI,KAAK,yBAAyB,EAAE;MAC3C,OAAOH,IAAI,CAACkB,EAAE;IAChB;IAEA,IAAIlB,IAAI,CAACG,IAAI,KAAK,oBAAoB,EAAE;MACtC,OAAOH,IAAI,CAACK,GAAG;IACjB;IAEA,IAAIL,IAAI,CAACG,IAAI,KAAK,mBAAmB,EAAE;MACrC,OAAOH,IAAI,CAACkB,EAAE;IAChB;IAEA,IAAIlB,IAAI,CAACG,IAAI,KAAK,mBAAmB,EAAE;MACrC,OAAOH,IAAI,CAACmB,IAAI;IAClB;IAGA,IAAInB,IAAI,CAACG,IAAI,KAAK,mBAAmB,EAAE;MAErC,OAAOH,IAAI,CAACoB,MAAM;IACpB;IAGA,IACEpB,IAAI,CAACG,IAAI,KAAK,iBAAiB,IAC/BH,IAAI,CAACG,IAAI,KAAK,uBAAuB,EACrC;MACA,KAAK,IAAIkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGrB,IAAI,CAACsB,MAAM,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;QAC3C,MAAMG,CAAC,GAAGxB,IAAI,CAACsB,MAAM,CAACD,CAAC,CAAC;QACxBG,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACf,IAAID,CAAC,CAACE,IAAI,EAAE;UACVF,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjB,CAAC,MAAM;UACLD,CAAC,CAACC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;QACjB;QACAD,CAAC,CAACV,GAAG,CAACa,KAAK,CAACC,MAAM,IAAI,CAAC;QACvB,IAAIJ,CAAC,CAACE,IAAI,EAAE;UACVF,CAAC,CAACV,GAAG,CAACe,GAAG,CAACD,MAAM,IAAI,CAAC;QACvB,CAAC,MAAM;UACLJ,CAAC,CAACV,GAAG,CAACe,GAAG,CAACD,MAAM,IAAI,CAAC;QACvB;QAEA,IAAInC,cAAc,IAAI,CAAC,EAAE;UACvB+B,CAAC,CAACG,KAAK,IAAI,CAAC;UACZ,IAAIH,CAAC,CAACE,IAAI,EAAE;YACVF,CAAC,CAACK,GAAG,IAAI,CAAC;UACZ,CAAC,MAAM;YACLL,CAAC,CAACK,GAAG,IAAI,CAAC;UACZ;QACF;MACF;IACF;EACF;AACF,CAAC;AAED,SAASC,YAAYA,CAACC,GAAgB,EAAE9B,WAAqC,EAAE;EAC7EF,QAAQ,CAACgC,GAAG,EAA0B9B,WAAW,EAAEQ,mBAAmB,CAAC;AACzE;AAEA,SAASuB,kBAAkBA,CAACD,GAAgB,EAAE;EAC5C,MAAME,IAAI,GAAGF,GAAG,CAACG,OAAO,CAACD,IAAI;EAC7BE,MAAM,CAACC,MAAM,CAACL,GAAG,EAAE;IACjB5B,IAAI,EAAE,SAAS;IACfkC,UAAU,EAAEN,GAAG,CAACG,OAAO,CAACG,UAAU;IAClCJ;EACF,CAAC,CAAC;EACF,OAAOF,GAAG,CAACG,OAAO;EAClB,OAAOH,GAAG,CAACO,MAAM;EAEjB,IAAIP,GAAG,CAACQ,QAAQ,CAAChB,MAAM,EAAE;IACvB,MAAMiB,WAAW,GAAGT,GAAG,CAACQ,QAAQ,CAACR,GAAG,CAACQ,QAAQ,CAAChB,MAAM,GAAG,CAAC,CAAC;IAEzD,IAAIQ,GAAG,CAACU,MAAM,CAAClB,MAAM,EAAE;MACrB,MAAMmB,SAAS,GAAGX,GAAG,CAACU,MAAM,CAACV,GAAG,CAACU,MAAM,CAAClB,MAAM,GAAG,CAAC,CAAC;MAEnD,IAAIiB,WAAW,CAACX,GAAG,GAAGa,SAAS,CAACb,GAAG,EAAE;QAGnCE,GAAG,CAACN,KAAK,CAAC,CAAC,CAAC,GAAGiB,SAAS,CAACb,GAAG;QAC5BE,GAAG,CAACjB,GAAG,CAACe,GAAG,CAACc,IAAI,GAAGD,SAAS,CAAC5B,GAAG,CAACe,GAAG,CAACc,IAAI;QACzCZ,GAAG,CAACjB,GAAG,CAACe,GAAG,CAACD,MAAM,GAAGc,SAAS,CAAC5B,GAAG,CAACe,GAAG,CAACD,MAAM;QAE7C,IAAInC,cAAc,IAAI,CAAC,EAAE;UACvBsC,GAAG,CAACF,GAAG,GAAGa,SAAS,CAACb,GAAG;QACzB;MACF;IACF;EACF,CAAC,MAAM;IACL,IAAI,CAACE,GAAG,CAACU,MAAM,CAAClB,MAAM,EAAE;MACtBQ,GAAG,CAACjB,GAAG,CAACa,KAAK,CAACgB,IAAI,GAAG,CAAC;MACtBZ,GAAG,CAACjB,GAAG,CAACe,GAAG,CAACc,IAAI,GAAG,CAAC;IACtB;EACF;EAEA,IAAIV,IAAI,YAAJA,IAAI,CAAEV,MAAM,EAAE;IAChBQ,GAAG,CAACjB,GAAG,CAACa,KAAK,CAACgB,IAAI,GAAGV,IAAI,CAAC,CAAC,CAAC,CAACnB,GAAG,CAACa,KAAK,CAACgB,IAAI;IAC3CZ,GAAG,CAACN,KAAK,CAAC,CAAC,CAAC,GAAGQ,IAAI,CAAC,CAAC,CAAC,CAACN,KAAK;IAE5B,IAAIlC,cAAc,IAAI,CAAC,EAAE;MACvBsC,GAAG,CAACJ,KAAK,GAAGM,IAAI,CAAC,CAAC,CAAC,CAACN,KAAK;IAC3B;EACF;AACF;AAACiB,MAAA,CAAAC,OAAA,GAEQ,SAASC,UAAUA,CAC1Bf,GAAgB,EAChB9B,WAAqC,EACrC;EACA6B,YAAY,CAACC,GAAG,EAAE9B,WAAW,CAAC;EAC9B+B,kBAAkB,CAACD,GAAG,CAAC;AACzB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
module.exports = function convertComments(comments) {
|
|
4
|
+
for (const comment of comments) {
|
|
5
|
+
comment.type = comment.type === "CommentBlock" ? "Block" : "Line";
|
|
6
|
+
comment.range || (comment.range = [comment.start, comment.end]);
|
|
7
|
+
}
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=convertComments.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["convertComments","comments","comment","type","range","start","end"],"sources":["../../src/convert/convertComments.cts"],"sourcesContent":["import type { Comment } from \"@babel/types\";\n\nexport = function convertComments(comments: Comment[]) {\n for (const comment of comments) {\n // @ts-expect-error eslint\n comment.type = comment.type === \"CommentBlock\" ? \"Block\" : \"Line\";\n\n // sometimes comments don't get ranges computed,\n // even with options.ranges === true\n\n // @ts-expect-error eslint\n comment.range ||= [comment.start, comment.end];\n }\n};\n"],"mappings":";;iBAES,SAASA,eAAeA,CAACC,QAAmB,EAAE;EACrD,KAAK,MAAMC,OAAO,IAAID,QAAQ,EAAE;IAE9BC,OAAO,CAACC,IAAI,GAAGD,OAAO,CAACC,IAAI,KAAK,cAAc,GAAG,OAAO,GAAG,MAAM;IAMjED,OAAO,CAACE,KAAK,KAAbF,OAAO,CAACE,KAAK,GAAK,CAACF,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACI,GAAG,CAAC;EAChD;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const ESLINT_VERSION = require("../utils/eslint-version.cjs");
|
|
4
|
+
function convertTemplateType(tokens, tl) {
|
|
5
|
+
let curlyBrace = null;
|
|
6
|
+
let templateTokens = [];
|
|
7
|
+
const result = [];
|
|
8
|
+
function addTemplateType() {
|
|
9
|
+
const start = templateTokens[0];
|
|
10
|
+
const end = templateTokens[templateTokens.length - 1];
|
|
11
|
+
const value = templateTokens.reduce((result, token) => {
|
|
12
|
+
if (token.value) {
|
|
13
|
+
result += token.value;
|
|
14
|
+
} else if (token.type.label !== tl.template) {
|
|
15
|
+
result += token.type.label;
|
|
16
|
+
}
|
|
17
|
+
return result;
|
|
18
|
+
}, "");
|
|
19
|
+
result.push({
|
|
20
|
+
type: "Template",
|
|
21
|
+
value: value,
|
|
22
|
+
start: start.start,
|
|
23
|
+
end: end.end,
|
|
24
|
+
loc: {
|
|
25
|
+
start: start.loc.start,
|
|
26
|
+
end: end.loc.end
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
templateTokens = [];
|
|
30
|
+
}
|
|
31
|
+
tokens.forEach(token => {
|
|
32
|
+
switch (token.type.label) {
|
|
33
|
+
case tl.backQuote:
|
|
34
|
+
if (curlyBrace) {
|
|
35
|
+
result.push(curlyBrace);
|
|
36
|
+
curlyBrace = null;
|
|
37
|
+
}
|
|
38
|
+
templateTokens.push(token);
|
|
39
|
+
if (templateTokens.length > 1) {
|
|
40
|
+
addTemplateType();
|
|
41
|
+
}
|
|
42
|
+
break;
|
|
43
|
+
case tl.dollarBraceL:
|
|
44
|
+
templateTokens.push(token);
|
|
45
|
+
addTemplateType();
|
|
46
|
+
break;
|
|
47
|
+
case tl.braceR:
|
|
48
|
+
if (curlyBrace) {
|
|
49
|
+
result.push(curlyBrace);
|
|
50
|
+
}
|
|
51
|
+
curlyBrace = token;
|
|
52
|
+
break;
|
|
53
|
+
case tl.template:
|
|
54
|
+
if (curlyBrace) {
|
|
55
|
+
templateTokens.push(curlyBrace);
|
|
56
|
+
curlyBrace = null;
|
|
57
|
+
}
|
|
58
|
+
templateTokens.push(token);
|
|
59
|
+
break;
|
|
60
|
+
default:
|
|
61
|
+
if (curlyBrace) {
|
|
62
|
+
result.push(curlyBrace);
|
|
63
|
+
curlyBrace = null;
|
|
64
|
+
}
|
|
65
|
+
result.push(token);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
return result;
|
|
69
|
+
}
|
|
70
|
+
function convertToken(token, source, tl) {
|
|
71
|
+
const {
|
|
72
|
+
type
|
|
73
|
+
} = token;
|
|
74
|
+
const {
|
|
75
|
+
label
|
|
76
|
+
} = type;
|
|
77
|
+
const newToken = token;
|
|
78
|
+
newToken.range = [token.start, token.end];
|
|
79
|
+
if (label === tl.name) {
|
|
80
|
+
const tokenValue = token.value;
|
|
81
|
+
if (tokenValue === "let" || tokenValue === "static" || tokenValue === "yield") {
|
|
82
|
+
newToken.type = "Keyword";
|
|
83
|
+
} else {
|
|
84
|
+
newToken.type = "Identifier";
|
|
85
|
+
}
|
|
86
|
+
} else if (label === tl.semi || label === tl.comma || label === tl.parenL || label === tl.parenR || label === tl.braceL || label === tl.braceR || label === tl.slash || label === tl.dot || label === tl.bracketL || label === tl.bracketR || label === tl.ellipsis || label === tl.arrow || label === tl.pipeline || label === tl.star || label === tl.incDec || label === tl.colon || label === tl.question || label === tl.template || label === tl.backQuote || label === tl.dollarBraceL || label === tl.at || label === tl.logicalOR || label === tl.logicalAND || label === tl.nullishCoalescing || label === tl.bitwiseOR || label === tl.bitwiseXOR || label === tl.bitwiseAND || label === tl.equality || label === tl.relational || label === tl.bitShift || label === tl.plusMin || label === tl.modulo || label === tl.exponent || label === tl.bang || label === tl.tilde || label === tl.doubleColon || label === tl.hash || label === tl.questionDot || label === tl.braceHashL || label === tl.braceBarL || label === tl.braceBarR || label === tl.bracketHashL || label === tl.bracketBarL || label === tl.bracketBarR || label === tl.doubleCaret || label === tl.doubleAt || type.isAssign) {
|
|
87
|
+
var _newToken$value;
|
|
88
|
+
newToken.type = "Punctuator";
|
|
89
|
+
(_newToken$value = newToken.value) != null ? _newToken$value : newToken.value = label;
|
|
90
|
+
} else if (label === tl.jsxTagStart) {
|
|
91
|
+
newToken.type = "Punctuator";
|
|
92
|
+
newToken.value = "<";
|
|
93
|
+
} else if (label === tl.jsxTagEnd) {
|
|
94
|
+
newToken.type = "Punctuator";
|
|
95
|
+
newToken.value = ">";
|
|
96
|
+
} else if (label === tl.jsxName) {
|
|
97
|
+
newToken.type = "JSXIdentifier";
|
|
98
|
+
} else if (label === tl.jsxText) {
|
|
99
|
+
newToken.type = "JSXText";
|
|
100
|
+
} else if (type.keyword === "null") {
|
|
101
|
+
newToken.type = "Null";
|
|
102
|
+
} else if (type.keyword === "false" || type.keyword === "true") {
|
|
103
|
+
newToken.type = "Boolean";
|
|
104
|
+
} else if (type.keyword) {
|
|
105
|
+
newToken.type = "Keyword";
|
|
106
|
+
} else if (label === tl.num) {
|
|
107
|
+
newToken.type = "Numeric";
|
|
108
|
+
newToken.value = source.slice(token.start, token.end);
|
|
109
|
+
} else if (label === tl.string) {
|
|
110
|
+
newToken.type = "String";
|
|
111
|
+
newToken.value = source.slice(token.start, token.end);
|
|
112
|
+
} else if (label === tl.regexp) {
|
|
113
|
+
newToken.type = "RegularExpression";
|
|
114
|
+
const value = token.value;
|
|
115
|
+
newToken.regex = {
|
|
116
|
+
pattern: value.pattern,
|
|
117
|
+
flags: value.flags
|
|
118
|
+
};
|
|
119
|
+
newToken.value = `/${value.pattern}/${value.flags}`;
|
|
120
|
+
} else if (label === tl.bigint) {
|
|
121
|
+
newToken.type = "Numeric";
|
|
122
|
+
newToken.value = `${token.value}n`;
|
|
123
|
+
} else if (label === tl.privateName) {
|
|
124
|
+
newToken.type = "PrivateIdentifier";
|
|
125
|
+
} else if (label === tl.templateNonTail || label === tl.templateTail || label === tl.Template) {
|
|
126
|
+
newToken.type = "Template";
|
|
127
|
+
}
|
|
128
|
+
return newToken;
|
|
129
|
+
}
|
|
130
|
+
module.exports = function convertTokens(tokens, code, tokLabels) {
|
|
131
|
+
const result = [];
|
|
132
|
+
const templateTypeMergedTokens = convertTemplateType(tokens, tokLabels);
|
|
133
|
+
for (let i = 0, {
|
|
134
|
+
length
|
|
135
|
+
} = templateTypeMergedTokens; i < length - 1; i++) {
|
|
136
|
+
const token = templateTypeMergedTokens[i];
|
|
137
|
+
const tokenType = token.type;
|
|
138
|
+
if (tokenType === "CommentLine" || tokenType === "CommentBlock") {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (ESLINT_VERSION >= 8 && i + 1 < length && tokenType.label === tokLabels.hash) {
|
|
142
|
+
const nextToken = templateTypeMergedTokens[i + 1];
|
|
143
|
+
if (nextToken.type.label === tokLabels.name && token.end === nextToken.start) {
|
|
144
|
+
i++;
|
|
145
|
+
nextToken.type = "PrivateIdentifier";
|
|
146
|
+
nextToken.start -= 1;
|
|
147
|
+
nextToken.loc.start.column -= 1;
|
|
148
|
+
nextToken.range = [nextToken.start, nextToken.end];
|
|
149
|
+
result.push(nextToken);
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
result.push(convertToken(token, code, tokLabels));
|
|
154
|
+
}
|
|
155
|
+
return result;
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
//# sourceMappingURL=convertTokens.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ESLINT_VERSION","require","convertTemplateType","tokens","tl","curlyBrace","templateTokens","result","addTemplateType","start","end","length","value","reduce","token","type","label","template","push","loc","forEach","backQuote","dollarBraceL","braceR","convertToken","source","newToken","range","name","tokenValue","semi","comma","parenL","parenR","braceL","slash","dot","bracketL","bracketR","ellipsis","arrow","pipeline","star","incDec","colon","question","at","logicalOR","logicalAND","nullishCoalescing","bitwiseOR","bitwiseXOR","bitwiseAND","equality","relational","bitShift","plusMin","modulo","exponent","bang","tilde","doubleColon","hash","questionDot","braceHashL","braceBarL","braceBarR","bracketHashL","bracketBarL","bracketBarR","doubleCaret","doubleAt","isAssign","_newToken$value","jsxTagStart","jsxTagEnd","jsxName","jsxText","keyword","num","slice","string","regexp","regex","pattern","flags","bigint","privateName","templateNonTail","templateTail","Template","module","exports","convertTokens","code","tokLabels","templateTypeMergedTokens","i","tokenType","nextToken","column"],"sources":["../../src/convert/convertTokens.cts"],"sourcesContent":["import type { BabelToken } from \"../types.cts\";\nimport type * as t from \"@babel/types\";\nimport ESLINT_VERSION = require(\"../utils/eslint-version.cjs\");\n\nfunction convertTemplateType(tokens: BabelToken[], tl: Record<string, any>) {\n let curlyBrace: BabelToken = null;\n let templateTokens: BabelToken[] = [];\n const result: any[] = [];\n\n function addTemplateType() {\n const start = templateTokens[0];\n const end = templateTokens[templateTokens.length - 1];\n\n const value = templateTokens.reduce((result, token) => {\n if (token.value) {\n result += token.value;\n } else if (token.type.label !== tl.template) {\n result += token.type.label;\n }\n\n return result;\n }, \"\");\n\n result.push({\n type: \"Template\",\n value: value,\n start: start.start,\n end: end.end,\n loc: {\n start: start.loc.start,\n end: end.loc.end,\n },\n });\n\n templateTokens = [];\n }\n\n tokens.forEach(token => {\n switch (token.type.label) {\n case tl.backQuote:\n if (curlyBrace) {\n result.push(curlyBrace);\n curlyBrace = null;\n }\n\n templateTokens.push(token);\n\n if (templateTokens.length > 1) {\n addTemplateType();\n }\n\n break;\n\n case tl.dollarBraceL:\n templateTokens.push(token);\n addTemplateType();\n break;\n\n case tl.braceR:\n if (curlyBrace) {\n result.push(curlyBrace);\n }\n\n curlyBrace = token;\n break;\n\n case tl.template:\n if (curlyBrace) {\n templateTokens.push(curlyBrace);\n curlyBrace = null;\n }\n\n templateTokens.push(token);\n break;\n\n default:\n if (curlyBrace) {\n result.push(curlyBrace);\n curlyBrace = null;\n }\n\n result.push(token);\n }\n });\n\n return result;\n}\n\nfunction convertToken(\n token: BabelToken,\n source: string,\n tl: Record<string, any>,\n) {\n const { type } = token;\n const { label } = type;\n\n const newToken: {\n type: string;\n range?: [number, number];\n value?: string;\n regex?: {\n pattern: string;\n flags: string;\n };\n loc?: t.SourceLocation | null;\n } = token as any;\n newToken.range = [token.start, token.end];\n\n if (label === tl.name) {\n const tokenValue = token.value;\n if (\n tokenValue === \"let\" ||\n tokenValue === \"static\" ||\n tokenValue === \"yield\"\n ) {\n newToken.type = \"Keyword\";\n } else {\n newToken.type = \"Identifier\";\n }\n } else if (\n label === tl.semi ||\n label === tl.comma ||\n label === tl.parenL ||\n label === tl.parenR ||\n label === tl.braceL ||\n label === tl.braceR ||\n label === tl.slash ||\n label === tl.dot ||\n label === tl.bracketL ||\n label === tl.bracketR ||\n label === tl.ellipsis ||\n label === tl.arrow ||\n label === tl.pipeline ||\n label === tl.star ||\n label === tl.incDec ||\n label === tl.colon ||\n label === tl.question ||\n label === tl.template ||\n label === tl.backQuote ||\n label === tl.dollarBraceL ||\n label === tl.at ||\n label === tl.logicalOR ||\n label === tl.logicalAND ||\n label === tl.nullishCoalescing ||\n label === tl.bitwiseOR ||\n label === tl.bitwiseXOR ||\n label === tl.bitwiseAND ||\n label === tl.equality ||\n label === tl.relational ||\n label === tl.bitShift ||\n label === tl.plusMin ||\n label === tl.modulo ||\n label === tl.exponent ||\n label === tl.bang ||\n label === tl.tilde ||\n label === tl.doubleColon ||\n label === tl.hash ||\n label === tl.questionDot ||\n label === tl.braceHashL ||\n label === tl.braceBarL ||\n label === tl.braceBarR ||\n label === tl.bracketHashL ||\n label === tl.bracketBarL ||\n label === tl.bracketBarR ||\n label === tl.doubleCaret ||\n label === tl.doubleAt ||\n type.isAssign\n ) {\n newToken.type = \"Punctuator\";\n newToken.value ??= label;\n } else if (label === tl.jsxTagStart) {\n newToken.type = \"Punctuator\";\n newToken.value = \"<\";\n } else if (label === tl.jsxTagEnd) {\n newToken.type = \"Punctuator\";\n newToken.value = \">\";\n } else if (label === tl.jsxName) {\n newToken.type = \"JSXIdentifier\";\n } else if (label === tl.jsxText) {\n newToken.type = \"JSXText\";\n } else if (type.keyword === \"null\") {\n newToken.type = \"Null\";\n } else if (type.keyword === \"false\" || type.keyword === \"true\") {\n newToken.type = \"Boolean\";\n } else if (type.keyword) {\n newToken.type = \"Keyword\";\n } else if (label === tl.num) {\n newToken.type = \"Numeric\";\n newToken.value = source.slice(token.start, token.end);\n } else if (label === tl.string) {\n newToken.type = \"String\";\n newToken.value = source.slice(token.start, token.end);\n } else if (label === tl.regexp) {\n newToken.type = \"RegularExpression\";\n const value = token.value;\n newToken.regex = {\n pattern: value.pattern,\n flags: value.flags,\n };\n newToken.value = `/${value.pattern}/${value.flags}`;\n } else if (label === tl.bigint) {\n newToken.type = \"Numeric\";\n newToken.value = `${token.value}n`;\n } else if (label === tl.privateName) {\n newToken.type = \"PrivateIdentifier\";\n } else if (\n label === tl.templateNonTail ||\n label === tl.templateTail ||\n label === tl.Template\n ) {\n newToken.type = \"Template\";\n }\n if (!process.env.IS_PUBLISH) {\n // To minimize the jest-diff noise comparing Babel AST and third-party AST,\n // here we generate a deep copy of loc without identifierName and index\n newToken.loc = {\n end: {\n column: newToken.loc.end.column,\n line: newToken.loc.end.line,\n },\n start: {\n column: newToken.loc.start.column,\n line: newToken.loc.start.line,\n },\n } as any;\n }\n return newToken;\n}\n\nexport = function convertTokens(\n tokens: BabelToken[],\n code: string,\n tokLabels: Record<string, any>,\n) {\n const result = [];\n const templateTypeMergedTokens = process.env.BABEL_8_BREAKING\n ? tokens\n : convertTemplateType(tokens, tokLabels);\n // The last token is always tt.eof and should be skipped\n for (let i = 0, { length } = templateTypeMergedTokens; i < length - 1; i++) {\n const token = templateTypeMergedTokens[i];\n const tokenType = token.type;\n if (tokenType === \"CommentLine\" || tokenType === \"CommentBlock\") {\n continue;\n }\n\n if (!process.env.BABEL_8_BREAKING) {\n // Babel 8 already produces a single token\n\n if (\n ESLINT_VERSION >= 8 &&\n i + 1 < length &&\n tokenType.label === tokLabels.hash\n ) {\n const nextToken = templateTypeMergedTokens[i + 1];\n\n // We must disambiguate private identifier from the hack pipes topic token\n if (\n nextToken.type.label === tokLabels.name &&\n token.end === nextToken.start\n ) {\n i++;\n\n nextToken.type = \"PrivateIdentifier\";\n nextToken.start -= 1;\n nextToken.loc.start.column -= 1;\n nextToken.range = [nextToken.start, nextToken.end];\n\n result.push(nextToken);\n continue;\n }\n }\n }\n\n result.push(convertToken(token, code, tokLabels));\n }\n\n return result;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.convertError = convertError;
|
|
7
|
+
exports.convertFile = convertFile;
|
|
8
|
+
const convertTokens = require("./convertTokens.cjs");
|
|
9
|
+
const convertComments = require("./convertComments.cjs");
|
|
10
|
+
const convertAST = require("./convertAST.cjs");
|
|
11
|
+
function convertFile(ast, code, tokLabels, visitorKeys) {
|
|
12
|
+
ast.tokens = convertTokens(ast.tokens, code, tokLabels);
|
|
13
|
+
convertComments(ast.comments);
|
|
14
|
+
convertAST(ast, visitorKeys);
|
|
15
|
+
return ast;
|
|
16
|
+
}
|
|
17
|
+
function convertError(err) {
|
|
18
|
+
if (err instanceof SyntaxError) {
|
|
19
|
+
err.lineNumber = err.loc.line;
|
|
20
|
+
err.column = err.loc.column;
|
|
21
|
+
}
|
|
22
|
+
return err;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["convertTokens","require","convertComments","convertAST","convertFile","ast","code","tokLabels","visitorKeys","tokens","comments","convertError","err","SyntaxError","lineNumber","loc","line","column"],"sources":["../../src/convert/index.cts"],"sourcesContent":["import convertTokens = require(\"./convertTokens.cts\");\nimport convertComments = require(\"./convertComments.cts\");\nimport convertAST = require(\"./convertAST.cts\");\nimport type { AST, ParseResult } from \"../types.cts\";\n\nexport function convertFile(\n ast: ParseResult,\n code: string,\n tokLabels: Record<string, any>,\n visitorKeys: Record<string, string[]>,\n) {\n ast.tokens = convertTokens(ast.tokens as any, code, tokLabels);\n convertComments(ast.comments);\n convertAST(ast, visitorKeys);\n return ast as unknown as AST.Program;\n}\n\nexport function convertError(err: Error) {\n if (err instanceof SyntaxError) {\n // @ts-expect-error eslint\n err.lineNumber = err.loc.line;\n // @ts-expect-error eslint\n err.column = err.loc.column;\n }\n return err;\n}\n"],"mappings":";;;;;;;MAAOA,aAAa,GAAAC,OAAA,CAAW,qBAAqB;AAAA,MAC7CC,eAAe,GAAAD,OAAA,CAAW,uBAAuB;AAAA,MACjDE,UAAU,GAAAF,OAAA,CAAW,kBAAkB;AAGvC,SAASG,WAAWA,CACzBC,GAAgB,EAChBC,IAAY,EACZC,SAA8B,EAC9BC,WAAqC,EACrC;EACAH,GAAG,CAACI,MAAM,GAAGT,aAAa,CAACK,GAAG,CAACI,MAAM,EAASH,IAAI,EAAEC,SAAS,CAAC;EAC9DL,eAAe,CAACG,GAAG,CAACK,QAAQ,CAAC;EAC7BP,UAAU,CAACE,GAAG,EAAEG,WAAW,CAAC;EAC5B,OAAOH,GAAG;AACZ;AAEO,SAASM,YAAYA,CAACC,GAAU,EAAE;EACvC,IAAIA,GAAG,YAAYC,WAAW,EAAE;IAE9BD,GAAG,CAACE,UAAU,GAAGF,GAAG,CAACG,GAAG,CAACC,IAAI;IAE7BJ,GAAG,CAACK,MAAM,GAAGL,GAAG,CAACG,GAAG,CAACE,MAAM;EAC7B;EACA,OAAOL,GAAG;AACZ","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.meta = void 0;
|
|
7
|
+
exports.parseForESLint = parseForESLint;
|
|
8
|
+
const [major, minor] = process.versions.node.split(".").map(Number);
|
|
9
|
+
if (major < 12 || major === 12 && minor < 3) {
|
|
10
|
+
throw new Error("@babel/eslint-parser/experimental-worker requires Node.js >= 12.3.0");
|
|
11
|
+
}
|
|
12
|
+
const normalizeESLintConfig = require("./configuration.cjs");
|
|
13
|
+
const analyzeScope = require("./analyze-scope.cjs");
|
|
14
|
+
const baseParse = require("./parse.cjs");
|
|
15
|
+
const Clients = require("./client.cjs");
|
|
16
|
+
const client = new Clients.WorkerClient();
|
|
17
|
+
const meta = exports.meta = {
|
|
18
|
+
name: "@babel/eslint-parser/experimental-worker",
|
|
19
|
+
version: "7.28.6"
|
|
20
|
+
};
|
|
21
|
+
function parseForESLint(code, options = {}) {
|
|
22
|
+
const normalizedOptions = normalizeESLintConfig(options);
|
|
23
|
+
const ast = baseParse(code, normalizedOptions, client);
|
|
24
|
+
const scopeManager = analyzeScope(ast, normalizedOptions, client);
|
|
25
|
+
return {
|
|
26
|
+
ast,
|
|
27
|
+
scopeManager,
|
|
28
|
+
visitorKeys: client.getVisitorKeys()
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=experimental-worker.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["major","minor","process","versions","node","split","map","Number","Error","normalizeESLintConfig","require","analyzeScope","baseParse","Clients","client","WorkerClient","meta","exports","name","version","parseForESLint","code","options","normalizedOptions","ast","scopeManager","visitorKeys","getVisitorKeys"],"sources":["../src/experimental-worker.cts"],"sourcesContent":["const [major, minor] = process.versions.node.split(\".\").map(Number);\n\nif (major < 12 || (major === 12 && minor < 3)) {\n throw new Error(\n \"@babel/eslint-parser/experimental-worker requires Node.js >= 12.3.0\",\n );\n}\n\nimport normalizeESLintConfig = require(\"./configuration.cts\");\nimport analyzeScope = require(\"./analyze-scope.cts\");\nimport baseParse = require(\"./parse.cts\");\n\nimport Clients = require(\"./client.cts\");\n\nconst client = new Clients.WorkerClient();\n\nexport const meta = {\n name: \"@babel/eslint-parser/experimental-worker\",\n version: PACKAGE_JSON.version,\n};\n\nexport function parseForESLint(code: string, options = {}) {\n const normalizedOptions = normalizeESLintConfig(options);\n const ast = baseParse(code, normalizedOptions, client);\n const scopeManager = analyzeScope(ast, normalizedOptions, client);\n\n return { ast, scopeManager, visitorKeys: client.getVisitorKeys() };\n}\n"],"mappings":";;;;;;;AAAA,MAAM,CAACA,KAAK,EAAEC,KAAK,CAAC,GAAGC,OAAO,CAACC,QAAQ,CAACC,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC;AAEnE,IAAIP,KAAK,GAAG,EAAE,IAAKA,KAAK,KAAK,EAAE,IAAIC,KAAK,GAAG,CAAE,EAAE;EAC7C,MAAM,IAAIO,KAAK,CACb,qEACF,CAAC;AACH;AAAC,MAEMC,qBAAqB,GAAAC,OAAA,CAAW,qBAAqB;AAAA,MACrDC,YAAY,GAAAD,OAAA,CAAW,qBAAqB;AAAA,MAC5CE,SAAS,GAAAF,OAAA,CAAW,aAAa;AAAA,MAEjCG,OAAO,GAAAH,OAAA,CAAW,cAAc;AAEvC,MAAMI,MAAM,GAAG,IAAID,OAAO,CAACE,YAAY,CAAC,CAAC;AAElC,MAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,IAAI,EAAE,0CAA0C;EAChDC,OAAO;AACT,CAAC;AAEM,SAASC,cAAcA,CAACC,IAAY,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EACzD,MAAMC,iBAAiB,GAAGd,qBAAqB,CAACa,OAAO,CAAC;EACxD,MAAME,GAAG,GAAGZ,SAAS,CAACS,IAAI,EAAEE,iBAAiB,EAAET,MAAM,CAAC;EACtD,MAAMW,YAAY,GAAGd,YAAY,CAACa,GAAG,EAAED,iBAAiB,EAAET,MAAM,CAAC;EAEjE,OAAO;IAAEU,GAAG;IAAEC,YAAY;IAAEC,WAAW,EAAEZ,MAAM,CAACa,cAAc,CAAC;EAAE,CAAC;AACpE","ignoreList":[]}
|
package/lib/index.cjs
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.meta = void 0;
|
|
7
|
+
exports.parse = parse;
|
|
8
|
+
exports.parseForESLint = parseForESLint;
|
|
9
|
+
var _client = require("./client.cjs");
|
|
10
|
+
const normalizeESLintConfig = require("./configuration.cjs");
|
|
11
|
+
const analyzeScope = require("./analyze-scope.cjs");
|
|
12
|
+
const baseParse = require("./parse.cjs");
|
|
13
|
+
const client = new _client.LocalClient();
|
|
14
|
+
const meta = exports.meta = {
|
|
15
|
+
name: "@babel/eslint-parser",
|
|
16
|
+
version: "7.28.6"
|
|
17
|
+
};
|
|
18
|
+
function parse(code, options = {}) {
|
|
19
|
+
return baseParse(code, normalizeESLintConfig(options), client);
|
|
20
|
+
}
|
|
21
|
+
function parseForESLint(code, options = {}) {
|
|
22
|
+
const normalizedOptions = normalizeESLintConfig(options);
|
|
23
|
+
const ast = baseParse(code, normalizedOptions, client);
|
|
24
|
+
const scopeManager = analyzeScope(ast, normalizedOptions, client);
|
|
25
|
+
return {
|
|
26
|
+
ast,
|
|
27
|
+
scopeManager,
|
|
28
|
+
visitorKeys: client.getVisitorKeys()
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_client","require","normalizeESLintConfig","analyzeScope","baseParse","client","LocalClient","meta","exports","name","version","parse","code","options","parseForESLint","normalizedOptions","ast","scopeManager","visitorKeys","getVisitorKeys"],"sources":["../src/index.cts"],"sourcesContent":["import normalizeESLintConfig = require(\"./configuration.cts\");\nimport analyzeScope = require(\"./analyze-scope.cts\");\nimport baseParse = require(\"./parse.cts\");\n\n// @ts-expect-error LocalClient only exists in the cjs build\nimport { LocalClient, WorkerClient } from \"./client.cts\";\nconst client = new (USE_ESM ? WorkerClient : LocalClient)();\n\nexport const meta = {\n name: PACKAGE_JSON.name,\n version: PACKAGE_JSON.version,\n};\n\nexport function parse(code: string, options = {}) {\n return baseParse(code, normalizeESLintConfig(options), client);\n}\n\nexport function parseForESLint(code: string, options = {}) {\n const normalizedOptions = normalizeESLintConfig(options);\n const ast = baseParse(code, normalizedOptions, client);\n const scopeManager = analyzeScope(ast, normalizedOptions, client);\n\n return { ast, scopeManager, visitorKeys: client.getVisitorKeys() };\n}\n"],"mappings":";;;;;;;;AAKA,IAAAA,OAAA,GAAAC,OAAA;AAAyD,MALlDC,qBAAqB,GAAAD,OAAA,CAAW,qBAAqB;AAAA,MACrDE,YAAY,GAAAF,OAAA,CAAW,qBAAqB;AAAA,MAC5CG,SAAS,GAAAH,OAAA,CAAW,aAAa;AAIxC,MAAMI,MAAM,GAAG,IAA8BC,mBAAW,CAAE,CAAC;AAEpD,MAAMC,IAAI,GAAAC,OAAA,CAAAD,IAAA,GAAG;EAClBE,IAAI,wBAAmB;EACvBC,OAAO;AACT,CAAC;AAEM,SAASC,KAAKA,CAACC,IAAY,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EAChD,OAAOT,SAAS,CAACQ,IAAI,EAAEV,qBAAqB,CAACW,OAAO,CAAC,EAAER,MAAM,CAAC;AAChE;AAEO,SAASS,cAAcA,CAACF,IAAY,EAAEC,OAAO,GAAG,CAAC,CAAC,EAAE;EACzD,MAAME,iBAAiB,GAAGb,qBAAqB,CAACW,OAAO,CAAC;EACxD,MAAMG,GAAG,GAAGZ,SAAS,CAACQ,IAAI,EAAEG,iBAAiB,EAAEV,MAAM,CAAC;EACtD,MAAMY,YAAY,GAAGd,YAAY,CAACa,GAAG,EAAED,iBAAiB,EAAEV,MAAM,CAAC;EAEjE,OAAO;IAAEW,GAAG;IAAEC,YAAY;IAAEC,WAAW,EAAEb,MAAM,CAACc,cAAc,CAAC;EAAE,CAAC;AACpE","ignoreList":[]}
|
package/lib/parse.cjs
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const semver = require("semver");
|
|
4
|
+
const convert = require("./convert/index.cjs");
|
|
5
|
+
const babelParser = require((((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, {
|
|
6
|
+
paths: [b]
|
|
7
|
+
}, M = require("module")) => {
|
|
8
|
+
let f = M._findPath(r, M._nodeModulePaths(b).concat(b));
|
|
9
|
+
if (f) return f;
|
|
10
|
+
f = new Error(`Cannot resolve module '${r}'`);
|
|
11
|
+
f.code = "MODULE_NOT_FOUND";
|
|
12
|
+
throw f;
|
|
13
|
+
})("@babel/parser", {
|
|
14
|
+
paths: [require.resolve("@babel/core/package.json")]
|
|
15
|
+
}));
|
|
16
|
+
let isRunningMinSupportedCoreVersion = null;
|
|
17
|
+
module.exports = function parse(code, options, client) {
|
|
18
|
+
const minSupportedCoreVersion = ">=7.2.0";
|
|
19
|
+
if (typeof isRunningMinSupportedCoreVersion !== "boolean") {
|
|
20
|
+
isRunningMinSupportedCoreVersion = semver.satisfies(client.getVersion(), minSupportedCoreVersion);
|
|
21
|
+
}
|
|
22
|
+
if (!isRunningMinSupportedCoreVersion) {
|
|
23
|
+
throw new Error(`@babel/eslint-parser@${"7.28.6"} does not support @babel/core@${client.getVersion()}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`);
|
|
24
|
+
}
|
|
25
|
+
const {
|
|
26
|
+
ast,
|
|
27
|
+
parserOptions
|
|
28
|
+
} = client.maybeParse(code, options);
|
|
29
|
+
if (ast) return ast;
|
|
30
|
+
try {
|
|
31
|
+
return convert.convertFile(babelParser.parse(code, parserOptions), code, client.getTokLabels(), client.getVisitorKeys());
|
|
32
|
+
} catch (err) {
|
|
33
|
+
throw convert.convertError(err);
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
//# sourceMappingURL=parse.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["semver","require","convert","babelParser","v","w","split","process","versions","node","resolve","r","paths","b","M","f","_findPath","_nodeModulePaths","concat","Error","code","isRunningMinSupportedCoreVersion","module","exports","parse","options","client","minSupportedCoreVersion","satisfies","getVersion","ast","parserOptions","maybeParse","convertFile","getTokLabels","getVisitorKeys","err","convertError"],"sources":["../src/parse.cts"],"sourcesContent":["\"use strict\";\n\nimport semver = require(\"semver\");\nimport convert = require(\"./convert/index.cts\");\nimport type { Options } from \"./types.cts\";\nimport type { Client } from \"./client.cts\";\n\nconst babelParser = require(\n require.resolve(\"@babel/parser\", {\n paths: [require.resolve(\"@babel/core/package.json\")],\n }),\n);\n\nlet isRunningMinSupportedCoreVersion: boolean = null;\n\nexport = function parse(code: string, options: Options, client: Client) {\n // Ensure we're using a version of `@babel/core` that includes `parse()` and `tokTypes`.\n const minSupportedCoreVersion = REQUIRED_VERSION(\">=7.2.0\");\n\n if (typeof isRunningMinSupportedCoreVersion !== \"boolean\") {\n isRunningMinSupportedCoreVersion = semver.satisfies(\n client.getVersion(),\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@${client.getVersion()}. Please upgrade to @babel/core@${minSupportedCoreVersion}.`,\n );\n }\n\n const { ast, parserOptions } = client.maybeParse(code, options);\n\n if (ast) return ast;\n\n try {\n return convert.convertFile(\n babelParser.parse(code, parserOptions),\n code,\n client.getTokLabels(),\n client.getVisitorKeys(),\n );\n } catch (err) {\n throw convert.convertError(err);\n }\n};\n"],"mappings":"AAAA,YAAY;;AAAC,MAENA,MAAM,GAAAC,OAAA,CAAW,QAAQ;AAAA,MACzBC,OAAO,GAAAD,OAAA,CAAW,qBAAqB;AAI9C,MAAME,WAAW,GAAGF,OAAO,CACzB,GAAAG,CAAA,EAAAC,CAAA,MAAAD,CAAA,GAAAA,CAAA,CAAAE,KAAA,OAAAD,CAAA,GAAAA,CAAA,CAAAC,KAAA,QAAAF,CAAA,OAAAC,CAAA,OAAAD,CAAA,OAAAC,CAAA,QAAAD,CAAA,QAAAC,CAAA,MAAAE,OAAA,CAAAC,QAAA,CAAAC,IAAA,WAAAR,OAAA,CAAAS,OAAA,IAAAC,CAAA;EAAAC,KAAA,GAAAC,CAAA;AAAA,GAAAC,CAAA,GAAAb,OAAA;EAAA,IAAAc,CAAA,GAAAD,CAAA,CAAAE,SAAA,CAAAL,CAAA,EAAAG,CAAA,CAAAG,gBAAA,CAAAJ,CAAA,EAAAK,MAAA,CAAAL,CAAA;EAAA,IAAAE,CAAA,SAAAA,CAAA;EAAAA,CAAA,OAAAI,KAAA,2BAAAR,CAAA;EAAAI,CAAA,CAAAK,IAAA;EAAA,MAAAL,CAAA;AAAA,GAAgB,eAAe,EAAE;EAC/BH,KAAK,EAAE,CAACX,OAAO,CAACS,OAAO,CAAC,0BAA0B,CAAC;AACrD,CAAC,CACH,CAAC;AAED,IAAIW,gCAAyC,GAAG,IAAI;AAACC,MAAA,CAAAC,OAAA,GAE5C,SAASC,KAAKA,CAACJ,IAAY,EAAEK,OAAgB,EAAEC,MAAc,EAAE;EAEtE,MAAMC,uBAAuB,GAAoB,SAAU;EAE3D,IAAI,OAAON,gCAAgC,KAAK,SAAS,EAAE;IACzDA,gCAAgC,GAAGrB,MAAM,CAAC4B,SAAS,CACjDF,MAAM,CAACG,UAAU,CAAC,CAAC,EACnBF,uBACF,CAAC;EACH;EAEA,IAAI,CAACN,gCAAgC,EAAE;IACrC,MAAM,IAAIF,KAAK,CACb,iEAEiCO,MAAM,CAACG,UAAU,CAAC,CAAC,mCAAmCF,uBAAuB,GAChH,CAAC;EACH;EAEA,MAAM;IAAEG,GAAG;IAAEC;EAAc,CAAC,GAAGL,MAAM,CAACM,UAAU,CAACZ,IAAI,EAAEK,OAAO,CAAC;EAE/D,IAAIK,GAAG,EAAE,OAAOA,GAAG;EAEnB,IAAI;IACF,OAAO5B,OAAO,CAAC+B,WAAW,CACxB9B,WAAW,CAACqB,KAAK,CAACJ,IAAI,EAAEW,aAAa,CAAC,EACtCX,IAAI,EACJM,MAAM,CAACQ,YAAY,CAAC,CAAC,EACrBR,MAAM,CAACS,cAAc,CAAC,CACxB,CAAC;EACH,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZ,MAAMlC,OAAO,CAACmC,YAAY,CAACD,GAAG,CAAC;EACjC;AACF,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["parseInt","require","version"],"sources":["../../src/utils/eslint-version.cts"],"sourcesContent":["export = parseInt(require(\"eslint/package.json\").version, 10);\n"],"mappings":";;iBAASA,QAAQ,CAACC,OAAO,CAAC,qBAAqB,CAAC,CAACC,OAAO,EAAE,EAAE,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getTokLabels = getTokLabels;
|
|
7
|
+
exports.getVisitorKeys = getVisitorKeys;
|
|
8
|
+
const _ESLINT_VISITOR_KEYS = require("eslint-visitor-keys");
|
|
9
|
+
const babel = require("./babel-core.cjs");
|
|
10
|
+
const ESLINT_VISITOR_KEYS = _ESLINT_VISITOR_KEYS.KEYS;
|
|
11
|
+
let visitorKeys;
|
|
12
|
+
function getVisitorKeys() {
|
|
13
|
+
if (!visitorKeys) {
|
|
14
|
+
const newTypes = {
|
|
15
|
+
ChainExpression: ESLINT_VISITOR_KEYS.ChainExpression,
|
|
16
|
+
ImportExpression: ESLINT_VISITOR_KEYS.ImportExpression,
|
|
17
|
+
Literal: ESLINT_VISITOR_KEYS.Literal,
|
|
18
|
+
MethodDefinition: ["decorators"].concat(ESLINT_VISITOR_KEYS.MethodDefinition),
|
|
19
|
+
Property: ["decorators"].concat(ESLINT_VISITOR_KEYS.Property),
|
|
20
|
+
PropertyDefinition: ["decorators", "typeAnnotation"].concat(ESLINT_VISITOR_KEYS.PropertyDefinition)
|
|
21
|
+
};
|
|
22
|
+
const conflictTypes = {
|
|
23
|
+
ExportAllDeclaration: ESLINT_VISITOR_KEYS.ExportAllDeclaration
|
|
24
|
+
};
|
|
25
|
+
visitorKeys = Object.assign({}, newTypes, babel.types.VISITOR_KEYS, conflictTypes, {
|
|
26
|
+
ClassPrivateMethod: ["decorators"].concat(ESLINT_VISITOR_KEYS.MethodDefinition)
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
return visitorKeys;
|
|
30
|
+
}
|
|
31
|
+
let tokLabels;
|
|
32
|
+
function getTokLabels() {
|
|
33
|
+
return tokLabels || (tokLabels = (p => p.reduce((o, [k, v]) => Object.assign({}, o, {
|
|
34
|
+
[k]: v
|
|
35
|
+
}), {}))((Object.entries || (o => Object.keys(o).map(k => [k, o[k]])))(babel.tokTypes).map(([key, tok]) => [key, tok.label])));
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=ast-info.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_ESLINT_VISITOR_KEYS","require","babel","ESLINT_VISITOR_KEYS","KEYS","visitorKeys","getVisitorKeys","newTypes","ChainExpression","ImportExpression","Literal","MethodDefinition","concat","Property","PropertyDefinition","conflictTypes","ExportAllDeclaration","Object","assign","types","VISITOR_KEYS","ClassPrivateMethod","tokLabels","getTokLabels","p","reduce","o","k","v","entries","keys","map","tokTypes","key","tok","label"],"sources":["../../src/worker/ast-info.cts"],"sourcesContent":["// @ts-expect-error no types\nimport _ESLINT_VISITOR_KEYS = require(\"eslint-visitor-keys\");\nimport babel = require(\"./babel-core.cts\");\n\nconst ESLINT_VISITOR_KEYS = _ESLINT_VISITOR_KEYS.KEYS;\n\nlet visitorKeys: Record<string, string[]>;\nexport function getVisitorKeys() {\n if (!visitorKeys) {\n // AST Types that are not presented in Babel AST\n const newTypes = {\n ChainExpression: ESLINT_VISITOR_KEYS.ChainExpression,\n ImportExpression: ESLINT_VISITOR_KEYS.ImportExpression,\n Literal: ESLINT_VISITOR_KEYS.Literal,\n MethodDefinition: [\"decorators\"].concat(\n ESLINT_VISITOR_KEYS.MethodDefinition,\n ),\n Property: [\"decorators\"].concat(ESLINT_VISITOR_KEYS.Property),\n PropertyDefinition: [\"decorators\", \"typeAnnotation\"].concat(\n ESLINT_VISITOR_KEYS.PropertyDefinition,\n ),\n };\n\n // AST Types that shares `\"type\"` property with Babel but have different shape\n const conflictTypes = {\n ExportAllDeclaration: ESLINT_VISITOR_KEYS.ExportAllDeclaration,\n };\n\n visitorKeys = {\n ...newTypes,\n ...babel.types.VISITOR_KEYS,\n ...conflictTypes,\n ...(process.env.BABEL_8_BREAKING\n ? {}\n : {\n ClassPrivateMethod: [\"decorators\"].concat(\n ESLINT_VISITOR_KEYS.MethodDefinition,\n ),\n }),\n };\n }\n return visitorKeys;\n}\n\nlet tokLabels;\nexport function getTokLabels() {\n return (tokLabels ||= (\n process.env.BABEL_8_BREAKING\n ? Object.fromEntries\n : (p: any[]) => p.reduce((o, [k, v]) => ({ ...o, [k]: v }), {})\n )(Object.entries(babel.tokTypes).map(([key, tok]) => [key, tok.label])));\n}\n"],"mappings":";;;;;;;MACOA,oBAAoB,GAAAC,OAAA,CAAW,qBAAqB;AAAA,MACpDC,KAAK,GAAAD,OAAA,CAAW,kBAAkB;AAEzC,MAAME,mBAAmB,GAAGH,oBAAoB,CAACI,IAAI;AAErD,IAAIC,WAAqC;AAClC,SAASC,cAAcA,CAAA,EAAG;EAC/B,IAAI,CAACD,WAAW,EAAE;IAEhB,MAAME,QAAQ,GAAG;MACfC,eAAe,EAAEL,mBAAmB,CAACK,eAAe;MACpDC,gBAAgB,EAAEN,mBAAmB,CAACM,gBAAgB;MACtDC,OAAO,EAAEP,mBAAmB,CAACO,OAAO;MACpCC,gBAAgB,EAAE,CAAC,YAAY,CAAC,CAACC,MAAM,CACrCT,mBAAmB,CAACQ,gBACtB,CAAC;MACDE,QAAQ,EAAE,CAAC,YAAY,CAAC,CAACD,MAAM,CAACT,mBAAmB,CAACU,QAAQ,CAAC;MAC7DC,kBAAkB,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAACF,MAAM,CACzDT,mBAAmB,CAACW,kBACtB;IACF,CAAC;IAGD,MAAMC,aAAa,GAAG;MACpBC,oBAAoB,EAAEb,mBAAmB,CAACa;IAC5C,CAAC;IAEDX,WAAW,GAAAY,MAAA,CAAAC,MAAA,KACNX,QAAQ,EACRL,KAAK,CAACiB,KAAK,CAACC,YAAY,EACxBL,aAAa,EAGZ;MACEM,kBAAkB,EAAE,CAAC,YAAY,CAAC,CAACT,MAAM,CACvCT,mBAAmB,CAACQ,gBACtB;IACF,CAAC,CACN;EACH;EACA,OAAON,WAAW;AACpB;AAEA,IAAIiB,SAAS;AACN,SAASC,YAAYA,CAAA,EAAG;EAC7B,OAAQD,SAAS,KAATA,SAAS,GAAK,CAGfE,CAAQ,IAAKA,CAAC,CAACC,MAAM,CAAC,CAACC,CAAC,EAAE,CAACC,CAAC,EAAEC,CAAC,CAAC,KAAAX,MAAA,CAAAC,MAAA,KAAWQ,CAAC;IAAE,CAACC,CAAC,GAAGC;EAAC,EAAG,EAAE,CAAC,CAAC,CAAC,EACjE,CAAAX,MAAA,CAAAY,OAAA,KAAAH,CAAA,IAAAT,MAAA,CAAAa,IAAA,CAAAJ,CAAA,EAAAK,GAAA,CAAAJ,CAAA,KAAAA,CAAA,EAAAD,CAAA,CAAAC,CAAA,MAAezB,KAAK,CAAC8B,QAAQ,CAAC,CAACD,GAAG,CAAC,CAAC,CAACE,GAAG,EAAEC,GAAG,CAAC,KAAK,CAACD,GAAG,EAAEC,GAAG,CAACC,KAAK,CAAC,CAAC,CAAC;AACzE","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
module.exports = exports;
|
|
4
|
+
function initialize(babel) {
|
|
5
|
+
exports.init = null;
|
|
6
|
+
exports.version = babel.version;
|
|
7
|
+
exports.traverse = babel.traverse;
|
|
8
|
+
exports.types = babel.types;
|
|
9
|
+
exports.tokTypes = babel.tokTypes;
|
|
10
|
+
exports.parseSync = babel.parseSync;
|
|
11
|
+
exports.parseAsync = babel.parseAsync;
|
|
12
|
+
exports.loadPartialConfigSync = babel.loadPartialConfigSync;
|
|
13
|
+
exports.loadPartialConfigAsync = babel.loadPartialConfigAsync;
|
|
14
|
+
exports.createConfigItemAsync = babel.createConfigItemAsync;
|
|
15
|
+
exports.createConfigItemSync = babel.createConfigItemSync || babel.createConfigItem;
|
|
16
|
+
}
|
|
17
|
+
initialize(require("@babel/core"));
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=babel-core.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["exports","initialize","babel","init","version","traverse","types","tokTypes","parseSync","parseAsync","loadPartialConfigSync","loadPartialConfigAsync","createConfigItemAsync","createConfigItemSync","createConfigItem","require"],"sources":["../../src/worker/babel-core.cts"],"sourcesContent":["export = exports as typeof import(\"@babel/core\") & {\n init: Promise<void> | null;\n};\n\nfunction initialize(babel: typeof import(\"@babel/core\")) {\n exports.init = null;\n exports.version = babel.version;\n exports.traverse = babel.traverse;\n exports.types = babel.types;\n exports.tokTypes = babel.tokTypes;\n exports.parseSync = babel.parseSync;\n exports.parseAsync = babel.parseAsync;\n exports.loadPartialConfigSync = babel.loadPartialConfigSync;\n exports.loadPartialConfigAsync = babel.loadPartialConfigAsync;\n exports.createConfigItemAsync = babel.createConfigItemAsync;\n\n if (process.env.BABEL_8_BREAKING) {\n exports.createConfigItemSync = babel.createConfigItemSync;\n } else {\n // babel.createConfigItemSync is available on 7.13+\n // we support Babel 7.11+\n exports.createConfigItemSync =\n babel.createConfigItemSync || babel.createConfigItem;\n }\n}\n\nif (USE_ESM) {\n exports.init = import(\"@babel/core\").then(initialize);\n} else {\n initialize(require(\"@babel/core\"));\n}\n"],"mappings":";;iBAASA,OAAO;AAIhB,SAASC,UAAUA,CAACC,KAAmC,EAAE;EACvDF,OAAO,CAACG,IAAI,GAAG,IAAI;EACnBH,OAAO,CAACI,OAAO,GAAGF,KAAK,CAACE,OAAO;EAC/BJ,OAAO,CAACK,QAAQ,GAAGH,KAAK,CAACG,QAAQ;EACjCL,OAAO,CAACM,KAAK,GAAGJ,KAAK,CAACI,KAAK;EAC3BN,OAAO,CAACO,QAAQ,GAAGL,KAAK,CAACK,QAAQ;EACjCP,OAAO,CAACQ,SAAS,GAAGN,KAAK,CAACM,SAAS;EACnCR,OAAO,CAACS,UAAU,GAAGP,KAAK,CAACO,UAAU;EACrCT,OAAO,CAACU,qBAAqB,GAAGR,KAAK,CAACQ,qBAAqB;EAC3DV,OAAO,CAACW,sBAAsB,GAAGT,KAAK,CAACS,sBAAsB;EAC7DX,OAAO,CAACY,qBAAqB,GAAGV,KAAK,CAACU,qBAAqB;EAOzDZ,OAAO,CAACa,oBAAoB,GAC1BX,KAAK,CAACW,oBAAoB,IAAIX,KAAK,CAACY,gBAAgB;AAE1D;AAKEb,UAAU,CAACc,OAAO,CAAC,aAAa,CAAC,CAAC","ignoreList":[]}
|