@abaplint/transpiler-cli 2.0.67 → 2.0.70
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/build/bundle.js +6 -6
- package/package.json +2 -2
package/build/bundle.js
CHANGED
|
@@ -13194,7 +13194,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
13194
13194
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13195
13195
|
|
|
13196
13196
|
"use strict";
|
|
13197
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldLengthTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst field_symbol_1 = __webpack_require__(/*! ./field_symbol */ \"./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass FieldLengthTranspiler {\r\n transpile(node, traversal) {\r\n let ret = \"\";\r\n for (const c of node.getChildren()) {\r\n if (c instanceof core_1.Nodes.ExpressionNode) {\r\n if (c.get() instanceof core_1.Expressions.SourceField) {\r\n let sourceStr = c.getFirstToken().getStr();\r\n if (sourceStr === \"sy\") {\r\n sourceStr = \"abap.builtin.sy\";\r\n }\r\n ret += sourceStr;\r\n }\r\n else if (c.get() instanceof core_1.Expressions.SourceFieldSymbol) {\r\n ret += new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal).getCode();\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ArrowOrDash) {\r\n ret += \".get().\";\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n ret += c.getFirstToken().getStr();\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode) {\r\n if (c.get() instanceof core_1.Tokens.Identifier) {\r\n ret += c.getFirstToken().getStr();\r\n }\r\n }\r\n }\r\n
|
|
13197
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldLengthTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst field_symbol_1 = __webpack_require__(/*! ./field_symbol */ \"./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass FieldLengthTranspiler {\r\n transpile(node, traversal) {\r\n let ret = \"\";\r\n for (const c of node.getChildren()) {\r\n if (c instanceof core_1.Nodes.ExpressionNode) {\r\n if (c.get() instanceof core_1.Expressions.SourceField) {\r\n let sourceStr = c.getFirstToken().getStr();\r\n if (sourceStr === \"sy\") {\r\n sourceStr = \"abap.builtin.sy\";\r\n }\r\n ret += sourceStr;\r\n }\r\n else if (c.get() instanceof core_1.Expressions.SourceFieldSymbol) {\r\n ret += new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal).getCode();\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ArrowOrDash) {\r\n ret += \".get().\";\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n ret += c.getFirstToken().getStr();\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode) {\r\n if (c.get() instanceof core_1.Tokens.Identifier) {\r\n ret += c.getFirstToken().getStr();\r\n }\r\n }\r\n }\r\n return new chunk_1.Chunk(ret);\r\n }\r\n}\r\nexports.FieldLengthTranspiler = FieldLengthTranspiler;\r\n//# sourceMappingURL=field_length.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/field_length.js?");
|
|
13198
13198
|
|
|
13199
13199
|
/***/ }),
|
|
13200
13200
|
|
|
@@ -13205,7 +13205,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
13205
13205
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
13206
13206
|
|
|
13207
13207
|
"use strict";
|
|
13208
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldOffsetTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst field_symbol_1 = __webpack_require__(/*! ./field_symbol */ \"./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass FieldOffsetTranspiler {\r\n transpile(node, traversal) {\r\n let ret = \"\";\r\n for (const c of node.getChildren()) {\r\n if (c instanceof core_1.Nodes.ExpressionNode) {\r\n if (c.get() instanceof core_1.Expressions.SourceField) {\r\n let sourceStr = c.getFirstToken().getStr().toLowerCase();\r\n if (sourceStr === \"sy\") {\r\n sourceStr = \"abap.builtin.sy\";\r\n }\r\n ret += sourceStr;\r\n }\r\n else if (c.get() instanceof core_1.Expressions.SourceFieldSymbol) {\r\n ret += new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal).getCode();\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ArrowOrDash) {\r\n ret += \".get().\";\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n ret += c.getFirstToken().getStr().toLowerCase();\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode) {\r\n if (c.get() instanceof core_1.Tokens.Identifier) {\r\n ret += c.getFirstToken().getStr().toLowerCase();\r\n }\r\n }\r\n }\r\n
|
|
13208
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.FieldOffsetTranspiler = void 0;\r\nconst core_1 = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst field_symbol_1 = __webpack_require__(/*! ./field_symbol */ \"./node_modules/@abaplint/transpiler/build/src/expressions/field_symbol.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass FieldOffsetTranspiler {\r\n transpile(node, traversal) {\r\n let ret = \"\";\r\n for (const c of node.getChildren()) {\r\n if (c instanceof core_1.Nodes.ExpressionNode) {\r\n if (c.get() instanceof core_1.Expressions.SourceField) {\r\n let sourceStr = c.getFirstToken().getStr().toLowerCase();\r\n if (sourceStr === \"sy\") {\r\n sourceStr = \"abap.builtin.sy\";\r\n }\r\n ret += sourceStr;\r\n }\r\n else if (c.get() instanceof core_1.Expressions.SourceFieldSymbol) {\r\n ret += new field_symbol_1.FieldSymbolTranspiler().transpile(c, traversal).getCode();\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ArrowOrDash) {\r\n ret += \".get().\";\r\n }\r\n else if (c.get() instanceof core_1.Expressions.ComponentName) {\r\n ret += c.getFirstToken().getStr().toLowerCase();\r\n }\r\n }\r\n else if (c instanceof core_1.Nodes.TokenNode) {\r\n if (c.get() instanceof core_1.Tokens.Identifier) {\r\n ret += c.getFirstToken().getStr().toLowerCase();\r\n }\r\n }\r\n }\r\n return new chunk_1.Chunk(ret);\r\n }\r\n}\r\nexports.FieldOffsetTranspiler = FieldOffsetTranspiler;\r\n//# sourceMappingURL=field_offset.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/expressions/field_offset.js?");
|
|
13209
13209
|
|
|
13210
13210
|
/***/ }),
|
|
13211
13211
|
|
|
@@ -14151,7 +14151,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
14151
14151
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
14152
14152
|
|
|
14153
14153
|
"use strict";
|
|
14154
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.GetLocaleTranspiler = void 0;\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass GetLocaleTranspiler {\r\n transpile(
|
|
14154
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.GetLocaleTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass GetLocaleTranspiler {\r\n transpile(node, traversal) {\r\n const t = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Target));\r\n return new chunk_1.Chunk(`abap.statements.getLocale(${t.getCode()});`);\r\n }\r\n}\r\nexports.GetLocaleTranspiler = GetLocaleTranspiler;\r\n//# sourceMappingURL=get_locale.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/get_locale.js?");
|
|
14155
14155
|
|
|
14156
14156
|
/***/ }),
|
|
14157
14157
|
|
|
@@ -14360,7 +14360,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
14360
14360
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
14361
14361
|
|
|
14362
14362
|
"use strict";
|
|
14363
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PerformTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass PerformTranspiler {\r\n transpile(node, _traversal) {\r\n const formName = node.findDirectExpression(abaplint.Expressions.FormName);\r\n if (formName === undefined) {\r\n throw new Error(\"PerformTranspiler, FormName not found\");\r\n }\r\n // todo, parameters\r\n if (node.concatTokens().includes(\" IN PROGRAM \")) {\r\n return new chunk_1.Chunk(`throw new Error(\"PerformTranspiler IN PROGRAM, transpiler todo\");`);\r\n }\r\n return new chunk_1.Chunk(\"await \" + formName.concatTokens() + \"();\");\r\n }\r\n}\r\nexports.PerformTranspiler = PerformTranspiler;\r\n//# sourceMappingURL=perform.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/perform.js?");
|
|
14363
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.PerformTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass PerformTranspiler {\r\n transpile(node, _traversal) {\r\n const formName = node.findDirectExpression(abaplint.Expressions.FormName);\r\n if (formName === undefined) {\r\n throw new Error(\"PerformTranspiler, FormName not found: \" + node.concatTokens());\r\n }\r\n // todo, parameters\r\n if (node.concatTokens().includes(\" IN PROGRAM \")) {\r\n return new chunk_1.Chunk(`throw new Error(\"PerformTranspiler IN PROGRAM, transpiler todo\");`);\r\n }\r\n return new chunk_1.Chunk(\"await \" + formName.concatTokens() + \"();\");\r\n }\r\n}\r\nexports.PerformTranspiler = PerformTranspiler;\r\n//# sourceMappingURL=perform.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/perform.js?");
|
|
14364
14364
|
|
|
14365
14365
|
/***/ }),
|
|
14366
14366
|
|
|
@@ -14426,7 +14426,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
14426
14426
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
14427
14427
|
|
|
14428
14428
|
"use strict";
|
|
14429
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ReadTableTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ \"./node_modules/@abaplint/transpiler/build/src/unique_identifier.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass ReadTableTranspiler {\r\n transpile(node, traversal) {\r\n let prefix = \"\";\r\n const s = node.findDirectExpression(abaplint.Expressions.SimpleSource2);\r\n const ret = traversal.traverse(s).getCode();\r\n const extra = [];\r\n const index = node.findExpressionAfterToken(\"INDEX\");\r\n if (index) {\r\n const s = new expressions_1.SourceTranspiler().transpile(index, traversal).getCode();\r\n extra.push(\"index: \" + s);\r\n }\r\n const from = node.findExpressionAfterToken(\"FROM\");\r\n if (from) {\r\n const s = new expressions_1.SourceTranspiler().transpile(from, traversal).getCode();\r\n extra.push(\"from: \" + s);\r\n }\r\n const rt = node.findDirectExpression(abaplint.Expressions.ReadTableTarget);\r\n const target = rt === null || rt === void 0 ? void 0 : rt.findDirectExpression(abaplint.Expressions.Target);\r\n const fs = rt === null || rt === void 0 ? void 0 : rt.findDirectExpression(abaplint.Expressions.FSTarget);\r\n if (rt && fs) {\r\n const name = new expressions_1.FieldSymbolTranspiler().transpile(fs, traversal).getCode();\r\n extra.push(\"assigning: \" + name);\r\n }\r\n else if (target) {\r\n const name = traversal.traverse(target).getCode();\r\n if (rt === null || rt === void 0 ? void 0 : rt.findDirectTokenByText(\"REFERENCE\")) {\r\n extra.push(\"referenceInto: \" + name);\r\n }\r\n else {\r\n extra.push(\"into: \" + name);\r\n }\r\n }\r\n const compare = node.findDirectExpression(abaplint.Expressions.ComponentCompareSimple);\r\n if (compare) {\r\n const components = compare.findDirectExpressions(abaplint.Expressions.ComponentChainSimple);\r\n const sources = compare.findDirectExpressions(abaplint.Expressions.Source);\r\n if (components.length !== sources.length) {\r\n throw new Error(\"READ TABLE, transpiler unexpected lengths\");\r\n }\r\n const conds = [];\r\n for (let i = 0; i < components.length; i++) {\r\n const s = traversal.traverse(sources[i]).getCode();\r\n if (s.includes(\"await\")) {\r\n const id = unique_identifier_1.UniqueIdentifier.get();\r\n prefix += \"const \" + id + \" = \" + s + \";\\n\";\r\n conds.push(\"abap.compare.eq(i.\" +
|
|
14429
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.ReadTableTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst expressions_1 = __webpack_require__(/*! ../expressions */ \"./node_modules/@abaplint/transpiler/build/src/expressions/index.js\");\r\nconst unique_identifier_1 = __webpack_require__(/*! ../unique_identifier */ \"./node_modules/@abaplint/transpiler/build/src/unique_identifier.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass ReadTableTranspiler {\r\n transpile(node, traversal) {\r\n let prefix = \"\";\r\n const s = node.findDirectExpression(abaplint.Expressions.SimpleSource2);\r\n const ret = traversal.traverse(s).getCode();\r\n const extra = [];\r\n const index = node.findExpressionAfterToken(\"INDEX\");\r\n if (index) {\r\n const s = new expressions_1.SourceTranspiler().transpile(index, traversal).getCode();\r\n extra.push(\"index: \" + s);\r\n }\r\n const from = node.findExpressionAfterToken(\"FROM\");\r\n if (from) {\r\n const s = new expressions_1.SourceTranspiler().transpile(from, traversal).getCode();\r\n extra.push(\"from: \" + s);\r\n }\r\n const rt = node.findDirectExpression(abaplint.Expressions.ReadTableTarget);\r\n const target = rt === null || rt === void 0 ? void 0 : rt.findDirectExpression(abaplint.Expressions.Target);\r\n const fs = rt === null || rt === void 0 ? void 0 : rt.findDirectExpression(abaplint.Expressions.FSTarget);\r\n if (rt && fs) {\r\n const name = new expressions_1.FieldSymbolTranspiler().transpile(fs, traversal).getCode();\r\n extra.push(\"assigning: \" + name);\r\n }\r\n else if (target) {\r\n const name = traversal.traverse(target).getCode();\r\n if (rt === null || rt === void 0 ? void 0 : rt.findDirectTokenByText(\"REFERENCE\")) {\r\n extra.push(\"referenceInto: \" + name);\r\n }\r\n else {\r\n extra.push(\"into: \" + name);\r\n }\r\n }\r\n const compare = node.findDirectExpression(abaplint.Expressions.ComponentCompareSimple);\r\n if (compare) {\r\n const components = compare.findDirectExpressions(abaplint.Expressions.ComponentChainSimple);\r\n const sources = compare.findDirectExpressions(abaplint.Expressions.Source);\r\n if (components.length !== sources.length) {\r\n throw new Error(\"READ TABLE, transpiler unexpected lengths\");\r\n }\r\n const conds = [];\r\n for (let i = 0; i < components.length; i++) {\r\n const s = traversal.traverse(sources[i]).getCode();\r\n const field = components[i].concatTokens().toLowerCase().replace(\"-\", \".get().\");\r\n if (s.includes(\"await\")) {\r\n const id = unique_identifier_1.UniqueIdentifier.get();\r\n prefix += \"const \" + id + \" = \" + s + \";\\n\";\r\n conds.push(\"abap.compare.eq(i.\" + field + \", \" + id + \")\");\r\n }\r\n else {\r\n conds.push(\"abap.compare.eq(i.\" + field + \", \" + s + \")\");\r\n }\r\n }\r\n extra.push(\"withKey: (i) => {return \" + conds.join(\" && \") + \";}\");\r\n }\r\n let concat = \"\";\r\n if (extra.length > 0) {\r\n concat = \",{\" + extra.join(\",\") + \"}\";\r\n }\r\n return new chunk_1.Chunk()\r\n .append(prefix + \"abap.statements.readTable(\", node, traversal)\r\n .appendString(ret + concat)\r\n .append(\");\", node.getLastToken(), traversal);\r\n }\r\n}\r\nexports.ReadTableTranspiler = ReadTableTranspiler;\r\n//# sourceMappingURL=read_table.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/read_table.js?");
|
|
14430
14430
|
|
|
14431
14431
|
/***/ }),
|
|
14432
14432
|
|
|
@@ -14547,7 +14547,7 @@ eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\n
|
|
|
14547
14547
|
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
|
|
14548
14548
|
|
|
14549
14549
|
"use strict";
|
|
14550
|
-
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SetLocaleTranspiler = void 0;\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass SetLocaleTranspiler {\r\n transpile(
|
|
14550
|
+
eval("\r\nObject.defineProperty(exports, \"__esModule\", ({ value: true }));\r\nexports.SetLocaleTranspiler = void 0;\r\nconst abaplint = __webpack_require__(/*! @abaplint/core */ \"./node_modules/@abaplint/core/build/src/index.js\");\r\nconst chunk_1 = __webpack_require__(/*! ../chunk */ \"./node_modules/@abaplint/transpiler/build/src/chunk.js\");\r\nclass SetLocaleTranspiler {\r\n transpile(node, traversal) {\r\n const s = traversal.traverse(node.findFirstExpression(abaplint.Expressions.Source));\r\n return new chunk_1.Chunk(`abap.statements.setLocale(${s.getCode()});`);\r\n }\r\n}\r\nexports.SetLocaleTranspiler = SetLocaleTranspiler;\r\n//# sourceMappingURL=set_locale.js.map\n\n//# sourceURL=webpack://@abaplint/transpiler-cli/./node_modules/@abaplint/transpiler/build/src/statements/set_locale.js?");
|
|
14551
14551
|
|
|
14552
14552
|
/***/ }),
|
|
14553
14553
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abaplint/transpiler-cli",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.70",
|
|
4
4
|
"description": "Transpiler - Command Line Interface",
|
|
5
5
|
"bin": {
|
|
6
6
|
"abap_transpile": "./abap_transpile"
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"author": "abaplint",
|
|
26
26
|
"license": "MIT",
|
|
27
27
|
"devDependencies": {
|
|
28
|
-
"@abaplint/transpiler": "^2.0.
|
|
28
|
+
"@abaplint/transpiler": "^2.0.70",
|
|
29
29
|
"@types/glob": "^7.2.0",
|
|
30
30
|
"glob": "=7.2.0",
|
|
31
31
|
"@types/progress": "^2.0.5",
|