@kezh/my-custom-js-converter 1.0.0 → 1.0.1

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/core/util/ast.js CHANGED
@@ -278,7 +278,6 @@ function modifyObjectMethods(srcAst, entry, mod, methods, root = false) {
278
278
  if (core_1.types.isIdentifier(path.node.key)) {
279
279
  path.node.key.name = `${path.node.key.name}__${entry}`;
280
280
  }
281
- core_1.types.addComment(path.node.body, "inner", "auto-generated: Please do not modify the.");
282
281
  }
283
282
  });
284
283
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kezh/my-custom-js-converter",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "自定义代码转换器",
5
5
  "main": "index.js",
6
6
  "bin": {
package/core/decode.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/core/decode.js DELETED
@@ -1,122 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const fs_1 = __importDefault(require("fs"));
7
- const path_1 = __importDefault(require("path"));
8
- const prettier_1 = __importDefault(require("prettier"));
9
- const parser_1 = require("@babel/parser");
10
- const traverse_1 = __importDefault(require("@babel/traverse"));
11
- const generator_1 = __importDefault(require("@babel/generator"));
12
- const core_1 = require("@babel/core");
13
- const scanf_1 = require("./scanf");
14
- const config_1 = __importDefault(require("./config"));
15
- const TARGET_DIR = (0, scanf_1.scanfCodeDirs)(config_1.default.baseDir, config_1.default.target);
16
- const DECODE_FILE = config_1.default.decode.file;
17
- const OUTPUT_FILE = config_1.default.decode.output;
18
- const MOUNT = config_1.default.decode.mount;
19
- const WORK_DIR = config_1.default.workDir;
20
- const CUSTOM_CONFIG = config_1.default.customConfig;
21
- (function decoding(targetDirs = TARGET_DIR) {
22
- console.log("scanf dirs => ");
23
- console.log(targetDirs);
24
- const codeFiles = (0, scanf_1.scanfCodeFiles)(targetDirs, DECODE_FILE);
25
- codeFiles.forEach((file) => {
26
- console.log(`scanf file => ${file}`);
27
- const outPath = path_1.default.join(path_1.default.dirname(file), OUTPUT_FILE);
28
- decoding$0(file, outPath);
29
- console.log(`output => ${outPath}`);
30
- });
31
- })();
32
- /**
33
- * 解码
34
- * @param inPath - 源文件路径
35
- * @param outPath - 输入文件路径
36
- * @param mount - 方法挂载点
37
- */
38
- function decoding$0(inPath, outPath, mount = MOUNT) {
39
- const customConfig = loadCustomConfig(path_1.default.dirname(inPath));
40
- let src = fs_1.default.readFileSync(inPath, {
41
- encoding: "utf-8"
42
- });
43
- src = `const ${mount} = {${src}};`;
44
- const srcAst = (0, parser_1.parse)(src);
45
- importMods(path_1.default.dirname(outPath), customConfig.mod, srcAst);
46
- deleteModMethods(customConfig.mod, srcAst);
47
- let { code: dist } = (0, generator_1.default)(srcAst);
48
- dist = dist.replace(/},\n\n/g, "},\n");
49
- dist = prettier_1.default.format(dist, {
50
- parser: "babel",
51
- trailingComma: "none"
52
- });
53
- fs_1.default.writeFileSync(outPath, dist, "utf-8");
54
- }
55
- function importMods(outDir, mods, srcAst) {
56
- const importMods = mods.map((mod) => {
57
- const requireFrom = path_1.default
58
- .relative(outDir, mod.path.replace(/index\.js$/, ""))
59
- .replace(/[\\]+/g, "/");
60
- const variableDeclarator = core_1.types.variableDeclarator(core_1.types.identifier(mod.name), core_1.types.callExpression(core_1.types.identifier("require"), [
61
- core_1.types.stringLiteral(requireFrom)
62
- ]));
63
- return core_1.types.variableDeclaration("const", [variableDeclarator]);
64
- });
65
- (0, traverse_1.default)(srcAst, {
66
- Program(path) {
67
- path.node.body.unshift(...importMods);
68
- }
69
- });
70
- }
71
- /**
72
- * 去除第三方模块方法
73
- * @param srcAst - 源码AST
74
- */
75
- function deleteModMethods(mods, srcAst) {
76
- const modNames = mods.map((m) => m.name);
77
- (0, traverse_1.default)(srcAst, {
78
- ObjectMethod(path) {
79
- if (!core_1.types.isIdentifier(path.node.key)) {
80
- return;
81
- }
82
- const methodName = path.node.key.name;
83
- modNames
84
- .filter((name) => methodName.lastIndexOf(`__${name}`) !== -1)
85
- .forEach(() => {
86
- path.remove();
87
- });
88
- },
89
- Identifier(path) {
90
- const id = path.node.name;
91
- modNames
92
- .filter((name) => id.lastIndexOf(`__${name}`) !== -1)
93
- .forEach((name) => {
94
- path.node.name = id.replace(`__${name}`, "");
95
- const expression = path.findParent((path) => path.isMemberExpression());
96
- if (!core_1.types.isThisExpression(expression === null || expression === void 0 ? void 0 : expression.object)) {
97
- return;
98
- }
99
- expression.object = core_1.types.identifier(name);
100
- });
101
- }
102
- });
103
- }
104
- function loadCustomConfig(inPath, workDir = WORK_DIR, config = CUSTOM_CONFIG) {
105
- const configPath = path_1.default.join(inPath, workDir, config);
106
- let configObj = {
107
- mod: [],
108
- };
109
- try {
110
- fs_1.default.accessSync(configPath, fs_1.default.constants.F_OK);
111
- console.log(`load custom config => ${configPath}`);
112
- const data = fs_1.default.readFileSync(configPath, { encoding: "utf-8" });
113
- configObj = JSON.parse(data);
114
- configObj.mod.forEach((m) => {
115
- m.name = m.name.replace("\\", "\\\\");
116
- });
117
- }
118
- catch (err) {
119
- console.log(`not found custom config => ${configPath}`);
120
- }
121
- return configObj;
122
- }
package/core/encode.d.ts DELETED
@@ -1 +0,0 @@
1
- export {};
package/core/encode.js DELETED
@@ -1,376 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- const fs_1 = __importDefault(require("fs"));
30
- const path_1 = __importDefault(require("path"));
31
- const parser_1 = require("@babel/parser");
32
- const traverse_1 = __importDefault(require("@babel/traverse"));
33
- const generator_1 = __importDefault(require("@babel/generator"));
34
- const core_1 = require("@babel/core");
35
- const scanf_1 = require("./scanf");
36
- const config_1 = __importStar(require("./config"));
37
- const TARGET_DIR = (0, scanf_1.scanfCodeDirs)(config_1.default.baseDir, config_1.default.target);
38
- const ENCODE_FILE = config_1.default.encode.file;
39
- const OUTPUT_FILE = config_1.default.encode.output;
40
- const ENTRY = config_1.default.encode.entry;
41
- const IGNORE_MOD = config_1.default.encode.ignoreMod;
42
- const WORK_DIR = config_1.default.workDir;
43
- const CUSTOM_CONFIG = config_1.default.customConfig;
44
- (function encoding(targetDirs = TARGET_DIR) {
45
- console.log("scanf dirs => ");
46
- console.log(targetDirs);
47
- const codeFiles = (0, scanf_1.scanfCodeFiles)(targetDirs, ENCODE_FILE);
48
- codeFiles.forEach((file) => {
49
- console.log(`scanf file => ${file}`);
50
- const outPath = path_1.default.join(path_1.default.dirname(file), OUTPUT_FILE);
51
- encoding$0(file, outPath);
52
- console.log(`output => ${outPath}`);
53
- });
54
- })();
55
- /**
56
- * 编码
57
- * @param inPath - 源文件路径
58
- * @param outPath - 输入文件路径
59
- */
60
- function encoding$0(inPath, outPath) {
61
- const src = fs_1.default.readFileSync(inPath, {
62
- encoding: "utf-8"
63
- });
64
- const srcAst = (0, parser_1.parse)(src);
65
- const methods = [];
66
- const customMethodNames = getSrcMethodNames(ENTRY, srcAst);
67
- if (!customMethodNames.length) {
68
- console.log(`not found entry => ${ENTRY}`);
69
- return;
70
- }
71
- const importModPathByName = getImportModPaths(path_1.default.dirname(inPath), srcAst);
72
- const importMethodNamesByMod = getImportMethodNames([...importModPathByName.keys()], srcAst);
73
- const importMethods = getImportMethods(importModPathByName, importMethodNamesByMod);
74
- modifyCallObjectAndMethodNames(customMethodNames, [...importModPathByName.keys()], srcAst);
75
- const customMethods = getMethods(ENTRY, srcAst);
76
- methods.push(...customMethods, ...importMethods);
77
- const dist = methods
78
- .map((m) => {
79
- var _a;
80
- if ((_a = m.leadingComments) === null || _a === void 0 ? void 0 : _a.length) {
81
- m.leadingComments = undefined;
82
- }
83
- return m;
84
- })
85
- .map((m) => (0, generator_1.default)(m))
86
- .map((m) => m.code)
87
- .join(",\n");
88
- fs_1.default.writeFileSync(outPath, dist, "utf-8");
89
- refreshCustomConfig(importModPathByName, path_1.default.dirname(inPath));
90
- }
91
- /**
92
- * 获取所有依赖方法
93
- * @param modPathByName - 模块路径
94
- * @param methodNamesByMod - 依赖模块方法名
95
- * @returns
96
- */
97
- function getImportMethods(modPathByName, methodNamesByMod) {
98
- const importModNames = [...modPathByName.entries()].map(([name]) => name);
99
- if (!importModNames.length) {
100
- return [];
101
- }
102
- console.log(`import => ${importModNames}`);
103
- return [...modPathByName.entries()].flatMap(([name, modPath]) => {
104
- const mod = fs_1.default.readFileSync(modPath, { encoding: "utf-8" });
105
- const modAst = (0, parser_1.parse)(mod);
106
- const modMethods = getMethods(name, modAst);
107
- if (!methodNamesByMod.has(name)) {
108
- return [];
109
- }
110
- const modMethodNames = modMethods.map((m) => m.key.name);
111
- // console.log(`mod methods => ${modMethodNames}`);
112
- const useMethodNames = methodNamesByMod.get(name);
113
- // console.log(`use methods => ${useMethodNames}`);
114
- const inlineMethodNames = getInlineThisMethodNames(modMethodNames, useMethodNames, modAst);
115
- // console.log(`inline methods => ${inlineMethodNames}`);
116
- let mergeMethodNames = [
117
- ...new Set([...useMethodNames, ...inlineMethodNames])
118
- ];
119
- modifyModMethods(name, mergeMethodNames, modAst);
120
- // console.log(generate(modAst).code);
121
- const mergeMethods = mergeMethodNames
122
- .map((name) => {
123
- return modMethods.find((m) => core_1.types.isIdentifier(m.key) && m.key.name === name);
124
- })
125
- .filter((m) => m);
126
- // console.log(`inline methods size => ${inlineMethodNames.length}`);
127
- // console.log(`import methods size => ${mergeMethods.length}`);
128
- return mergeMethods.map((m) => {
129
- if (core_1.types.isIdentifier(m.key)) {
130
- const key = m.key;
131
- key.name = `${key.name}__${name}`;
132
- }
133
- m.body = core_1.types.addComment(m.body, "inner", "auto-generated: Please do not modify the.");
134
- return m;
135
- });
136
- });
137
- }
138
- /**
139
- * 获取调用的方法内的this方法
140
- * @param modMethodNames - 模块所有方法名
141
- * @param useMethodNames - 调用的方法名
142
- * @param modAst - 模块AST
143
- * @returns
144
- */
145
- function getInlineThisMethodNames(modMethodNames, useMethodNames, modAst) {
146
- if (!useMethodNames.length) {
147
- return [];
148
- }
149
- const thisMethodNames = new Set();
150
- (0, traverse_1.default)(modAst, {
151
- ThisExpression(path) {
152
- const objectMethod = path.findParent((path) => path.isObjectMethod());
153
- const id = objectMethod === null || objectMethod === void 0 ? void 0 : objectMethod.node.key;
154
- if (!core_1.types.isIdentifier(id)) {
155
- return;
156
- }
157
- if (useMethodNames.includes(id.name)) {
158
- const memberExpression = path.findParent((path) => path.isMemberExpression());
159
- const property = memberExpression === null || memberExpression === void 0 ? void 0 : memberExpression.node.property;
160
- if (!core_1.types.isIdentifier(property)) {
161
- return;
162
- }
163
- if (modMethodNames.includes(property.name)) {
164
- thisMethodNames.add(property.name);
165
- }
166
- }
167
- }
168
- });
169
- return [
170
- ...thisMethodNames,
171
- ...getInlineThisMethodNames(modMethodNames, [...thisMethodNames], modAst)
172
- ];
173
- }
174
- /**
175
- * 获取所有依赖第三方模块路径
176
- * @param curDir - 源码所在文件夹目录
177
- * @param srcAst - 源码AST
178
- * @param ignoreMod - 忽略模块
179
- * @returns
180
- */
181
- function getImportModPaths(curDir, srcAst, ignoreMod = IGNORE_MOD) {
182
- const modPathByName = new Map();
183
- (0, traverse_1.default)(srcAst, {
184
- Identifier(nodePath) {
185
- if (nodePath.node.name === "require") {
186
- const callExpression = nodePath.findParent((path) => path.isCallExpression());
187
- const args = callExpression === null || callExpression === void 0 ? void 0 : callExpression.node.arguments;
188
- if ((args === null || args === void 0 ? void 0 : args.length) != 1) {
189
- return;
190
- }
191
- let modPath = args[0].value;
192
- modPath = (0, scanf_1.scanfRequieMod)(curDir, modPath);
193
- const variableDeclarator = nodePath.findParent((path) => path.isVariableDeclarator());
194
- if (!variableDeclarator) {
195
- return;
196
- }
197
- const id = variableDeclarator.node.id;
198
- const ignore = ignoreMod.includes(id.name);
199
- ignore && console.log(`ignore => ${id.name}`);
200
- !ignore && modPathByName.set(id.name, modPath);
201
- }
202
- }
203
- });
204
- return modPathByName;
205
- }
206
- /**
207
- * 获取源码中第三方模块方法名
208
- * @param mod - 依赖模块
209
- * @param srcAst - 源码AST
210
- * @returns
211
- */
212
- function getImportMethodNames(mod, srcAst) {
213
- const methodsByMod = new Map();
214
- (0, traverse_1.default)(srcAst, {
215
- MemberExpression(path) {
216
- const invokeObj = path.node.object;
217
- if (!core_1.types.isIdentifier(invokeObj)) {
218
- return;
219
- }
220
- const invokeMethod = path.node.property;
221
- if (!core_1.types.isIdentifier(invokeMethod)) {
222
- return;
223
- }
224
- const key = invokeObj.name;
225
- if (!mod.includes(key)) {
226
- return;
227
- }
228
- let methods = [];
229
- if (methodsByMod.has(key)) {
230
- methods = methodsByMod.get(key);
231
- }
232
- !methods.includes(invokeMethod.name) && methods.push(invokeMethod.name);
233
- methodsByMod.set(key, methods);
234
- }
235
- });
236
- return methodsByMod;
237
- }
238
- /**
239
- * 获取源码入口对象所有方法名
240
- * @param entry - 入口对象
241
- * @param srcAst - 源码Ast
242
- * @returns
243
- */
244
- function getSrcMethodNames(entry, srcAst) {
245
- return getMethods(entry, srcAst)
246
- .filter((node) => core_1.types.isIdentifier(node.key))
247
- .map((node) => node.key)
248
- .map((key) => key.name);
249
- }
250
- /**
251
- * 获取源码入口对象所有方法
252
- * todo: 重复获取方法
253
- * @param entry - 入口对象
254
- * @param ast - AST
255
- * @returns
256
- */
257
- function getMethods(entry, ast) {
258
- const methods = [];
259
- (0, traverse_1.default)(ast, {
260
- Program(path) {
261
- path.node.body.forEach((statement) => {
262
- if (core_1.types.isVariableDeclaration(statement)) {
263
- const variableDeclaration = statement;
264
- variableDeclaration.declarations
265
- .filter((declaration) => {
266
- if (core_1.types.isIdentifier(declaration.id)) {
267
- const id = declaration.id;
268
- if (id.name === entry) {
269
- return true;
270
- }
271
- }
272
- return false;
273
- })
274
- .forEach((declaration) => {
275
- if (core_1.types.isObjectExpression(declaration.init)) {
276
- const init = declaration.init;
277
- const objectMethods = init.properties.filter((property) => core_1.types.isObjectMethod(property));
278
- methods.push(...objectMethods);
279
- }
280
- });
281
- }
282
- });
283
- }
284
- });
285
- return methods;
286
- }
287
- /**
288
- * 修改源码第三方模块调用方法名和指向
289
- * e.g. from util.func() to this.func__util()
290
- * @param methodNames - 需调用方法
291
- * @param importMod - 导入模块
292
- * @param srcAst - AST
293
- */
294
- function modifyCallObjectAndMethodNames(methodNames, importMod, srcAst) {
295
- (0, traverse_1.default)(srcAst, {
296
- MemberExpression(path) {
297
- const objectMethod = path.findParent((path) => path.isObjectMethod());
298
- if (!core_1.types.isIdentifier(objectMethod === null || objectMethod === void 0 ? void 0 : objectMethod.node.key)) {
299
- return;
300
- }
301
- if (!methodNames.includes((objectMethod === null || objectMethod === void 0 ? void 0 : objectMethod.node.key).name)) {
302
- return;
303
- }
304
- if (core_1.types.isThisExpression(path.node.object)) {
305
- return;
306
- }
307
- if (!core_1.types.isIdentifier(path.node.object)) {
308
- return;
309
- }
310
- const name = path.node.object.name;
311
- if (!importMod.includes(name)) {
312
- return;
313
- }
314
- path.node.object = core_1.types.thisExpression();
315
- if (!core_1.types.isIdentifier(path.node.property)) {
316
- return;
317
- }
318
- const property = path.node.property;
319
- property.name = `${property.name}__${name}`;
320
- }
321
- });
322
- }
323
- /**
324
- * 修改导入模块方法名
325
- * e.g. from util.func() to this.func__util()
326
- * @param mod - 模块名
327
- * @param methodNames - 需调用方法
328
- * @param modAst - AST
329
- */
330
- function modifyModMethods(mod, methodNames, modAst) {
331
- (0, traverse_1.default)(modAst, {
332
- MemberExpression(path) {
333
- if (core_1.types.isIdentifier(path.node.property)) {
334
- const property = path.node.property;
335
- if (methodNames.includes(property.name)) {
336
- if (core_1.types.isIdentifier(path.node.object) ||
337
- core_1.types.isThisExpression(path.node.object)) {
338
- if (core_1.types.isIdentifier(path.node.object)) {
339
- const object = path.node.object;
340
- if (object.name !== mod) {
341
- return;
342
- }
343
- }
344
- property.name = `${property.name}__${mod}`;
345
- }
346
- }
347
- }
348
- }
349
- });
350
- }
351
- function refreshCustomConfig(modPathByName, inPath, workDir = WORK_DIR, custConfig = CUSTOM_CONFIG) {
352
- const configPath = path_1.default.join(inPath, workDir, custConfig);
353
- let configObj = {
354
- mod: []
355
- };
356
- try {
357
- mkWorkDir(inPath);
358
- fs_1.default.accessSync(configPath, fs_1.default.constants.F_OK);
359
- const data = fs_1.default.readFileSync(configPath, { encoding: "utf-8" });
360
- configObj = JSON.parse(data);
361
- }
362
- catch (err) {
363
- console.log(`not found custom config => ${configPath}`);
364
- }
365
- configObj.mod = [...modPathByName.entries()].map(([key, value]) => new config_1.Config.Mod(key, value));
366
- fs_1.default.writeFileSync(configPath, JSON.stringify(configObj, null, 4), "utf-8");
367
- }
368
- function mkWorkDir(inPath, workDir = WORK_DIR) {
369
- const workDirPath = path_1.default.join(inPath, workDir);
370
- try {
371
- fs_1.default.accessSync(workDirPath);
372
- }
373
- catch (err) {
374
- fs_1.default.mkdirSync(workDirPath);
375
- }
376
- }
package/pnpm-lock.yaml DELETED
@@ -1,706 +0,0 @@
1
- lockfileVersion: 5.4
2
-
3
- specifiers:
4
- '@babel/cli': ^7.18.10
5
- '@babel/core': ^7.18.13
6
- '@babel/generator': ^7.18.13
7
- '@babel/parser': ^7.18.13
8
- '@babel/traverse': ^7.18.13
9
- '@babel/types': ^7.18.13
10
- '@types/babel__core': ^7.1.19
11
- '@types/babel__generator': ^7.6.4
12
- '@types/babel__traverse': ^7.18.1
13
- '@types/node': ^18.7.14
14
- '@types/prettier': ^2.7.0
15
- prettier: ^2.7.1
16
- typescript: ^4.8.2
17
-
18
- dependencies:
19
- '@babel/cli': 7.18.10_@babel+core@7.19.0
20
- '@babel/core': 7.19.0
21
- '@babel/generator': 7.19.0
22
- '@babel/parser': 7.19.0
23
- '@babel/traverse': 7.19.0
24
- '@babel/types': 7.19.0
25
- prettier: 2.7.1
26
-
27
- devDependencies:
28
- '@types/babel__core': 7.1.19
29
- '@types/babel__generator': 7.6.4
30
- '@types/babel__traverse': 7.18.1
31
- '@types/node': 18.7.18
32
- '@types/prettier': 2.7.0
33
- typescript: 4.8.3
34
-
35
- packages:
36
-
37
- /@ampproject/remapping/2.2.0:
38
- resolution: {integrity: sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==}
39
- engines: {node: '>=6.0.0'}
40
- dependencies:
41
- '@jridgewell/gen-mapping': 0.1.1
42
- '@jridgewell/trace-mapping': 0.3.15
43
- dev: false
44
-
45
- /@babel/cli/7.18.10_@babel+core@7.19.0:
46
- resolution: {integrity: sha512-dLvWH+ZDFAkd2jPBSghrsFBuXrREvFwjpDycXbmUoeochqKYe4zNSLEJYErpLg8dvxvZYe79/MkN461XCwpnGw==}
47
- engines: {node: '>=6.9.0'}
48
- hasBin: true
49
- peerDependencies:
50
- '@babel/core': ^7.0.0-0
51
- dependencies:
52
- '@babel/core': 7.19.0
53
- '@jridgewell/trace-mapping': 0.3.15
54
- commander: 4.1.1
55
- convert-source-map: 1.8.0
56
- fs-readdir-recursive: 1.1.0
57
- glob: 7.2.3
58
- make-dir: 2.1.0
59
- slash: 2.0.0
60
- optionalDependencies:
61
- '@nicolo-ribaudo/chokidar-2': 2.1.8-no-fsevents.3
62
- chokidar: 3.5.3
63
- dev: false
64
-
65
- /@babel/code-frame/7.18.6:
66
- resolution: {integrity: sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==}
67
- engines: {node: '>=6.9.0'}
68
- dependencies:
69
- '@babel/highlight': 7.18.6
70
- dev: false
71
-
72
- /@babel/compat-data/7.19.0:
73
- resolution: {integrity: sha512-y5rqgTTPTmaF5e2nVhOxw+Ur9HDJLsWb6U/KpgUzRZEdPfE6VOubXBKLdbcUTijzRptednSBDQbYZBOSqJxpJw==}
74
- engines: {node: '>=6.9.0'}
75
- dev: false
76
-
77
- /@babel/core/7.19.0:
78
- resolution: {integrity: sha512-reM4+U7B9ss148rh2n1Qs9ASS+w94irYXga7c2jaQv9RVzpS7Mv1a9rnYYwuDa45G+DkORt9g6An2k/V4d9LbQ==}
79
- engines: {node: '>=6.9.0'}
80
- dependencies:
81
- '@ampproject/remapping': 2.2.0
82
- '@babel/code-frame': 7.18.6
83
- '@babel/generator': 7.19.0
84
- '@babel/helper-compilation-targets': 7.19.0_@babel+core@7.19.0
85
- '@babel/helper-module-transforms': 7.19.0
86
- '@babel/helpers': 7.19.0
87
- '@babel/parser': 7.19.0
88
- '@babel/template': 7.18.10
89
- '@babel/traverse': 7.19.0
90
- '@babel/types': 7.19.0
91
- convert-source-map: 1.8.0
92
- debug: 4.3.4
93
- gensync: 1.0.0-beta.2
94
- json5: 2.2.1
95
- semver: 6.3.0
96
- transitivePeerDependencies:
97
- - supports-color
98
- dev: false
99
-
100
- /@babel/generator/7.19.0:
101
- resolution: {integrity: sha512-S1ahxf1gZ2dpoiFgA+ohK9DIpz50bJ0CWs7Zlzb54Z4sG8qmdIrGrVqmy1sAtTVRb+9CU6U8VqT9L0Zj7hxHVg==}
102
- engines: {node: '>=6.9.0'}
103
- dependencies:
104
- '@babel/types': 7.19.0
105
- '@jridgewell/gen-mapping': 0.3.2
106
- jsesc: 2.5.2
107
- dev: false
108
-
109
- /@babel/helper-compilation-targets/7.19.0_@babel+core@7.19.0:
110
- resolution: {integrity: sha512-Ai5bNWXIvwDvWM7njqsG3feMlL9hCVQsPYXodsZyLwshYkZVJt59Gftau4VrE8S9IT9asd2uSP1hG6wCNw+sXA==}
111
- engines: {node: '>=6.9.0'}
112
- peerDependencies:
113
- '@babel/core': ^7.0.0
114
- dependencies:
115
- '@babel/compat-data': 7.19.0
116
- '@babel/core': 7.19.0
117
- '@babel/helper-validator-option': 7.18.6
118
- browserslist: 4.21.3
119
- semver: 6.3.0
120
- dev: false
121
-
122
- /@babel/helper-environment-visitor/7.18.9:
123
- resolution: {integrity: sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==}
124
- engines: {node: '>=6.9.0'}
125
- dev: false
126
-
127
- /@babel/helper-function-name/7.19.0:
128
- resolution: {integrity: sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==}
129
- engines: {node: '>=6.9.0'}
130
- dependencies:
131
- '@babel/template': 7.18.10
132
- '@babel/types': 7.19.0
133
- dev: false
134
-
135
- /@babel/helper-hoist-variables/7.18.6:
136
- resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
137
- engines: {node: '>=6.9.0'}
138
- dependencies:
139
- '@babel/types': 7.19.0
140
- dev: false
141
-
142
- /@babel/helper-module-imports/7.18.6:
143
- resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
144
- engines: {node: '>=6.9.0'}
145
- dependencies:
146
- '@babel/types': 7.19.0
147
- dev: false
148
-
149
- /@babel/helper-module-transforms/7.19.0:
150
- resolution: {integrity: sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==}
151
- engines: {node: '>=6.9.0'}
152
- dependencies:
153
- '@babel/helper-environment-visitor': 7.18.9
154
- '@babel/helper-module-imports': 7.18.6
155
- '@babel/helper-simple-access': 7.18.6
156
- '@babel/helper-split-export-declaration': 7.18.6
157
- '@babel/helper-validator-identifier': 7.18.6
158
- '@babel/template': 7.18.10
159
- '@babel/traverse': 7.19.0
160
- '@babel/types': 7.19.0
161
- transitivePeerDependencies:
162
- - supports-color
163
- dev: false
164
-
165
- /@babel/helper-simple-access/7.18.6:
166
- resolution: {integrity: sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==}
167
- engines: {node: '>=6.9.0'}
168
- dependencies:
169
- '@babel/types': 7.19.0
170
- dev: false
171
-
172
- /@babel/helper-split-export-declaration/7.18.6:
173
- resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
174
- engines: {node: '>=6.9.0'}
175
- dependencies:
176
- '@babel/types': 7.19.0
177
- dev: false
178
-
179
- /@babel/helper-string-parser/7.18.10:
180
- resolution: {integrity: sha512-XtIfWmeNY3i4t7t4D2t02q50HvqHybPqW2ki1kosnvWCwuCMeo81Jf0gwr85jy/neUdg5XDdeFE/80DXiO+njw==}
181
- engines: {node: '>=6.9.0'}
182
-
183
- /@babel/helper-validator-identifier/7.18.6:
184
- resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
185
- engines: {node: '>=6.9.0'}
186
-
187
- /@babel/helper-validator-option/7.18.6:
188
- resolution: {integrity: sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==}
189
- engines: {node: '>=6.9.0'}
190
- dev: false
191
-
192
- /@babel/helpers/7.19.0:
193
- resolution: {integrity: sha512-DRBCKGwIEdqY3+rPJgG/dKfQy9+08rHIAJx8q2p+HSWP87s2HCrQmaAMMyMll2kIXKCW0cO1RdQskx15Xakftg==}
194
- engines: {node: '>=6.9.0'}
195
- dependencies:
196
- '@babel/template': 7.18.10
197
- '@babel/traverse': 7.19.0
198
- '@babel/types': 7.19.0
199
- transitivePeerDependencies:
200
- - supports-color
201
- dev: false
202
-
203
- /@babel/highlight/7.18.6:
204
- resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
205
- engines: {node: '>=6.9.0'}
206
- dependencies:
207
- '@babel/helper-validator-identifier': 7.18.6
208
- chalk: 2.4.2
209
- js-tokens: 4.0.0
210
- dev: false
211
-
212
- /@babel/parser/7.19.0:
213
- resolution: {integrity: sha512-74bEXKX2h+8rrfQUfsBfuZZHzsEs6Eql4pqy/T4Nn6Y9wNPggQOqD6z6pn5Bl8ZfysKouFZT/UXEH94ummEeQw==}
214
- engines: {node: '>=6.0.0'}
215
- hasBin: true
216
- dependencies:
217
- '@babel/types': 7.19.0
218
-
219
- /@babel/template/7.18.10:
220
- resolution: {integrity: sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==}
221
- engines: {node: '>=6.9.0'}
222
- dependencies:
223
- '@babel/code-frame': 7.18.6
224
- '@babel/parser': 7.19.0
225
- '@babel/types': 7.19.0
226
- dev: false
227
-
228
- /@babel/traverse/7.19.0:
229
- resolution: {integrity: sha512-4pKpFRDh+utd2mbRC8JLnlsMUii3PMHjpL6a0SZ4NMZy7YFP9aXORxEhdMVOc9CpWtDF09IkciQLEhK7Ml7gRA==}
230
- engines: {node: '>=6.9.0'}
231
- dependencies:
232
- '@babel/code-frame': 7.18.6
233
- '@babel/generator': 7.19.0
234
- '@babel/helper-environment-visitor': 7.18.9
235
- '@babel/helper-function-name': 7.19.0
236
- '@babel/helper-hoist-variables': 7.18.6
237
- '@babel/helper-split-export-declaration': 7.18.6
238
- '@babel/parser': 7.19.0
239
- '@babel/types': 7.19.0
240
- debug: 4.3.4
241
- globals: 11.12.0
242
- transitivePeerDependencies:
243
- - supports-color
244
- dev: false
245
-
246
- /@babel/types/7.19.0:
247
- resolution: {integrity: sha512-YuGopBq3ke25BVSiS6fgF49Ul9gH1x70Bcr6bqRLjWCkcX8Hre1/5+z+IiWOIerRMSSEfGZVB9z9kyq7wVs9YA==}
248
- engines: {node: '>=6.9.0'}
249
- dependencies:
250
- '@babel/helper-string-parser': 7.18.10
251
- '@babel/helper-validator-identifier': 7.18.6
252
- to-fast-properties: 2.0.0
253
-
254
- /@jridgewell/gen-mapping/0.1.1:
255
- resolution: {integrity: sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==}
256
- engines: {node: '>=6.0.0'}
257
- dependencies:
258
- '@jridgewell/set-array': 1.1.2
259
- '@jridgewell/sourcemap-codec': 1.4.14
260
- dev: false
261
-
262
- /@jridgewell/gen-mapping/0.3.2:
263
- resolution: {integrity: sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==}
264
- engines: {node: '>=6.0.0'}
265
- dependencies:
266
- '@jridgewell/set-array': 1.1.2
267
- '@jridgewell/sourcemap-codec': 1.4.14
268
- '@jridgewell/trace-mapping': 0.3.15
269
- dev: false
270
-
271
- /@jridgewell/resolve-uri/3.1.0:
272
- resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
273
- engines: {node: '>=6.0.0'}
274
- dev: false
275
-
276
- /@jridgewell/set-array/1.1.2:
277
- resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
278
- engines: {node: '>=6.0.0'}
279
- dev: false
280
-
281
- /@jridgewell/sourcemap-codec/1.4.14:
282
- resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
283
- dev: false
284
-
285
- /@jridgewell/trace-mapping/0.3.15:
286
- resolution: {integrity: sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==}
287
- dependencies:
288
- '@jridgewell/resolve-uri': 3.1.0
289
- '@jridgewell/sourcemap-codec': 1.4.14
290
- dev: false
291
-
292
- /@nicolo-ribaudo/chokidar-2/2.1.8-no-fsevents.3:
293
- resolution: {integrity: sha512-s88O1aVtXftvp5bCPB7WnmXc5IwOZZ7YPuwNPt+GtOOXpPvad1LfbmjYv+qII7zP6RU2QGnqve27dnLycEnyEQ==}
294
- requiresBuild: true
295
- dev: false
296
- optional: true
297
-
298
- /@types/babel__core/7.1.19:
299
- resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==}
300
- dependencies:
301
- '@babel/parser': 7.19.0
302
- '@babel/types': 7.19.0
303
- '@types/babel__generator': 7.6.4
304
- '@types/babel__template': 7.4.1
305
- '@types/babel__traverse': 7.18.1
306
- dev: true
307
-
308
- /@types/babel__generator/7.6.4:
309
- resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
310
- dependencies:
311
- '@babel/types': 7.19.0
312
- dev: true
313
-
314
- /@types/babel__template/7.4.1:
315
- resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
316
- dependencies:
317
- '@babel/parser': 7.19.0
318
- '@babel/types': 7.19.0
319
- dev: true
320
-
321
- /@types/babel__traverse/7.18.1:
322
- resolution: {integrity: sha512-FSdLaZh2UxaMuLp9lixWaHq/golWTRWOnRsAXzDTDSDOQLuZb1nsdCt6pJSPWSEQt2eFZ2YVk3oYhn+1kLMeMA==}
323
- dependencies:
324
- '@babel/types': 7.19.0
325
- dev: true
326
-
327
- /@types/node/18.7.18:
328
- resolution: {integrity: sha512-m+6nTEOadJZuTPkKR/SYK3A2d7FZrgElol9UP1Kae90VVU4a6mxnPuLiIW1m4Cq4gZ/nWb9GrdVXJCoCazDAbg==}
329
- dev: true
330
-
331
- /@types/prettier/2.7.0:
332
- resolution: {integrity: sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A==}
333
- dev: true
334
-
335
- /ansi-styles/3.2.1:
336
- resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
337
- engines: {node: '>=4'}
338
- dependencies:
339
- color-convert: 1.9.3
340
- dev: false
341
-
342
- /anymatch/3.1.2:
343
- resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==}
344
- engines: {node: '>= 8'}
345
- dependencies:
346
- normalize-path: 3.0.0
347
- picomatch: 2.3.1
348
- dev: false
349
- optional: true
350
-
351
- /balanced-match/1.0.2:
352
- resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
353
- dev: false
354
-
355
- /binary-extensions/2.2.0:
356
- resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
357
- engines: {node: '>=8'}
358
- dev: false
359
- optional: true
360
-
361
- /brace-expansion/1.1.11:
362
- resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
363
- dependencies:
364
- balanced-match: 1.0.2
365
- concat-map: 0.0.1
366
- dev: false
367
-
368
- /braces/3.0.2:
369
- resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
370
- engines: {node: '>=8'}
371
- dependencies:
372
- fill-range: 7.0.1
373
- dev: false
374
- optional: true
375
-
376
- /browserslist/4.21.3:
377
- resolution: {integrity: sha512-898rgRXLAyRkM1GryrrBHGkqA5hlpkV5MhtZwg9QXeiyLUYs2k00Un05aX5l2/yJIOObYKOpS2JNo8nJDE7fWQ==}
378
- engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
379
- hasBin: true
380
- dependencies:
381
- caniuse-lite: 1.0.30001399
382
- electron-to-chromium: 1.4.249
383
- node-releases: 2.0.6
384
- update-browserslist-db: 1.0.9_browserslist@4.21.3
385
- dev: false
386
-
387
- /caniuse-lite/1.0.30001399:
388
- resolution: {integrity: sha512-4vQ90tMKS+FkvuVWS5/QY1+d805ODxZiKFzsU8o/RsVJz49ZSRR8EjykLJbqhzdPgadbX6wB538wOzle3JniRA==}
389
- dev: false
390
-
391
- /chalk/2.4.2:
392
- resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
393
- engines: {node: '>=4'}
394
- dependencies:
395
- ansi-styles: 3.2.1
396
- escape-string-regexp: 1.0.5
397
- supports-color: 5.5.0
398
- dev: false
399
-
400
- /chokidar/3.5.3:
401
- resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
402
- engines: {node: '>= 8.10.0'}
403
- requiresBuild: true
404
- dependencies:
405
- anymatch: 3.1.2
406
- braces: 3.0.2
407
- glob-parent: 5.1.2
408
- is-binary-path: 2.1.0
409
- is-glob: 4.0.3
410
- normalize-path: 3.0.0
411
- readdirp: 3.6.0
412
- optionalDependencies:
413
- fsevents: 2.3.2
414
- dev: false
415
- optional: true
416
-
417
- /color-convert/1.9.3:
418
- resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
419
- dependencies:
420
- color-name: 1.1.3
421
- dev: false
422
-
423
- /color-name/1.1.3:
424
- resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
425
- dev: false
426
-
427
- /commander/4.1.1:
428
- resolution: {integrity: sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==}
429
- engines: {node: '>= 6'}
430
- dev: false
431
-
432
- /concat-map/0.0.1:
433
- resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
434
- dev: false
435
-
436
- /convert-source-map/1.8.0:
437
- resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==}
438
- dependencies:
439
- safe-buffer: 5.1.2
440
- dev: false
441
-
442
- /debug/4.3.4:
443
- resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
444
- engines: {node: '>=6.0'}
445
- peerDependencies:
446
- supports-color: '*'
447
- peerDependenciesMeta:
448
- supports-color:
449
- optional: true
450
- dependencies:
451
- ms: 2.1.2
452
- dev: false
453
-
454
- /electron-to-chromium/1.4.249:
455
- resolution: {integrity: sha512-GMCxR3p2HQvIw47A599crTKYZprqihoBL4lDSAUmr7IYekXFK5t/WgEBrGJDCa2HWIZFQEkGuMqPCi05ceYqPQ==}
456
- dev: false
457
-
458
- /escalade/3.1.1:
459
- resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
460
- engines: {node: '>=6'}
461
- dev: false
462
-
463
- /escape-string-regexp/1.0.5:
464
- resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
465
- engines: {node: '>=0.8.0'}
466
- dev: false
467
-
468
- /fill-range/7.0.1:
469
- resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
470
- engines: {node: '>=8'}
471
- dependencies:
472
- to-regex-range: 5.0.1
473
- dev: false
474
- optional: true
475
-
476
- /fs-readdir-recursive/1.1.0:
477
- resolution: {integrity: sha512-GNanXlVr2pf02+sPN40XN8HG+ePaNcvM0q5mZBd668Obwb0yD5GiUbZOFgwn8kGMY6I3mdyDJzieUy3PTYyTRA==}
478
- dev: false
479
-
480
- /fs.realpath/1.0.0:
481
- resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
482
- dev: false
483
-
484
- /fsevents/2.3.2:
485
- resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
486
- engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
487
- os: [darwin]
488
- requiresBuild: true
489
- dev: false
490
- optional: true
491
-
492
- /gensync/1.0.0-beta.2:
493
- resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
494
- engines: {node: '>=6.9.0'}
495
- dev: false
496
-
497
- /glob-parent/5.1.2:
498
- resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
499
- engines: {node: '>= 6'}
500
- dependencies:
501
- is-glob: 4.0.3
502
- dev: false
503
- optional: true
504
-
505
- /glob/7.2.3:
506
- resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
507
- dependencies:
508
- fs.realpath: 1.0.0
509
- inflight: 1.0.6
510
- inherits: 2.0.4
511
- minimatch: 3.1.2
512
- once: 1.4.0
513
- path-is-absolute: 1.0.1
514
- dev: false
515
-
516
- /globals/11.12.0:
517
- resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
518
- engines: {node: '>=4'}
519
- dev: false
520
-
521
- /has-flag/3.0.0:
522
- resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
523
- engines: {node: '>=4'}
524
- dev: false
525
-
526
- /inflight/1.0.6:
527
- resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
528
- dependencies:
529
- once: 1.4.0
530
- wrappy: 1.0.2
531
- dev: false
532
-
533
- /inherits/2.0.4:
534
- resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
535
- dev: false
536
-
537
- /is-binary-path/2.1.0:
538
- resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
539
- engines: {node: '>=8'}
540
- dependencies:
541
- binary-extensions: 2.2.0
542
- dev: false
543
- optional: true
544
-
545
- /is-extglob/2.1.1:
546
- resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
547
- engines: {node: '>=0.10.0'}
548
- dev: false
549
- optional: true
550
-
551
- /is-glob/4.0.3:
552
- resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
553
- engines: {node: '>=0.10.0'}
554
- dependencies:
555
- is-extglob: 2.1.1
556
- dev: false
557
- optional: true
558
-
559
- /is-number/7.0.0:
560
- resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
561
- engines: {node: '>=0.12.0'}
562
- dev: false
563
- optional: true
564
-
565
- /js-tokens/4.0.0:
566
- resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
567
- dev: false
568
-
569
- /jsesc/2.5.2:
570
- resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
571
- engines: {node: '>=4'}
572
- hasBin: true
573
- dev: false
574
-
575
- /json5/2.2.1:
576
- resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==}
577
- engines: {node: '>=6'}
578
- hasBin: true
579
- dev: false
580
-
581
- /make-dir/2.1.0:
582
- resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==}
583
- engines: {node: '>=6'}
584
- dependencies:
585
- pify: 4.0.1
586
- semver: 5.7.1
587
- dev: false
588
-
589
- /minimatch/3.1.2:
590
- resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
591
- dependencies:
592
- brace-expansion: 1.1.11
593
- dev: false
594
-
595
- /ms/2.1.2:
596
- resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
597
- dev: false
598
-
599
- /node-releases/2.0.6:
600
- resolution: {integrity: sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==}
601
- dev: false
602
-
603
- /normalize-path/3.0.0:
604
- resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
605
- engines: {node: '>=0.10.0'}
606
- dev: false
607
- optional: true
608
-
609
- /once/1.4.0:
610
- resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
611
- dependencies:
612
- wrappy: 1.0.2
613
- dev: false
614
-
615
- /path-is-absolute/1.0.1:
616
- resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
617
- engines: {node: '>=0.10.0'}
618
- dev: false
619
-
620
- /picocolors/1.0.0:
621
- resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
622
- dev: false
623
-
624
- /picomatch/2.3.1:
625
- resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
626
- engines: {node: '>=8.6'}
627
- dev: false
628
- optional: true
629
-
630
- /pify/4.0.1:
631
- resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
632
- engines: {node: '>=6'}
633
- dev: false
634
-
635
- /prettier/2.7.1:
636
- resolution: {integrity: sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==}
637
- engines: {node: '>=10.13.0'}
638
- hasBin: true
639
- dev: false
640
-
641
- /readdirp/3.6.0:
642
- resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
643
- engines: {node: '>=8.10.0'}
644
- dependencies:
645
- picomatch: 2.3.1
646
- dev: false
647
- optional: true
648
-
649
- /safe-buffer/5.1.2:
650
- resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==}
651
- dev: false
652
-
653
- /semver/5.7.1:
654
- resolution: {integrity: sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==}
655
- hasBin: true
656
- dev: false
657
-
658
- /semver/6.3.0:
659
- resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
660
- hasBin: true
661
- dev: false
662
-
663
- /slash/2.0.0:
664
- resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
665
- engines: {node: '>=6'}
666
- dev: false
667
-
668
- /supports-color/5.5.0:
669
- resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
670
- engines: {node: '>=4'}
671
- dependencies:
672
- has-flag: 3.0.0
673
- dev: false
674
-
675
- /to-fast-properties/2.0.0:
676
- resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
677
- engines: {node: '>=4'}
678
-
679
- /to-regex-range/5.0.1:
680
- resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
681
- engines: {node: '>=8.0'}
682
- dependencies:
683
- is-number: 7.0.0
684
- dev: false
685
- optional: true
686
-
687
- /typescript/4.8.3:
688
- resolution: {integrity: sha512-goMHfm00nWPa8UvR/CPSvykqf6dVV8x/dp0c5mFTMTIu0u0FlGWRioyy7Nn0PGAdHxpJZnuO/ut+PpQ8UiHAig==}
689
- engines: {node: '>=4.2.0'}
690
- hasBin: true
691
- dev: true
692
-
693
- /update-browserslist-db/1.0.9_browserslist@4.21.3:
694
- resolution: {integrity: sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==}
695
- hasBin: true
696
- peerDependencies:
697
- browserslist: '>= 4.21.0'
698
- dependencies:
699
- browserslist: 4.21.3
700
- escalade: 3.1.1
701
- picocolors: 1.0.0
702
- dev: false
703
-
704
- /wrappy/1.0.2:
705
- resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
706
- dev: false