@teamscale/javascript-instrumenter 0.0.1-beta.52 → 0.0.1-beta.54
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/dist/package.json +14 -14
- package/dist/src/instrumenter/Postprocessor.d.ts.map +1 -1
- package/dist/src/instrumenter/Postprocessor.js +79 -54
- package/dist/src/instrumenter/Task.js +2 -3
- package/dist/src/instrumenter/TaskBuilder.d.ts +1 -1
- package/dist/src/instrumenter/TaskBuilder.d.ts.map +1 -1
- package/package.json +14 -14
package/dist/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teamscale/javascript-instrumenter",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.54",
|
|
4
4
|
"description": "JavaScript coverage instrumenter with coverage forwarding to a collector process",
|
|
5
5
|
"main": "dist/src/main.js",
|
|
6
6
|
"bin": "dist/src/main.js",
|
|
@@ -23,35 +23,35 @@
|
|
|
23
23
|
"dist/**/*"
|
|
24
24
|
],
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@babel/core": "^7.
|
|
27
|
-
"@babel/plugin-transform-modules-commonjs": "^7.
|
|
28
|
-
"@babel/preset-env": "^7.
|
|
26
|
+
"@babel/core": "^7.22.5",
|
|
27
|
+
"@babel/plugin-transform-modules-commonjs": "^7.22.5",
|
|
28
|
+
"@babel/preset-env": "^7.22.5",
|
|
29
29
|
"@types/async": "^3.2.6",
|
|
30
30
|
"@types/bunyan": "^1.8.8",
|
|
31
31
|
"@types/convert-source-map": "^1.5.1",
|
|
32
32
|
"@types/glob": "^7.1.3",
|
|
33
33
|
"@types/istanbul-lib-instrument": "^1.7.4",
|
|
34
|
-
"@types/jest": "^
|
|
34
|
+
"@types/jest": "^29.5.1",
|
|
35
35
|
"@types/mkdirp": "^1.0.2",
|
|
36
36
|
"@types/node": "^15.0.1",
|
|
37
37
|
"@types/source-map": "^0.5.7",
|
|
38
38
|
"@types/ws": "^7.4.4",
|
|
39
|
-
"babel-jest": "^
|
|
39
|
+
"babel-jest": "^29.5.0",
|
|
40
40
|
"esbuild": "^0.13.3",
|
|
41
41
|
"esbuild-plugin-inline-worker": "^0.1.1",
|
|
42
|
-
"jest": "^
|
|
42
|
+
"jest": "^29.5.0",
|
|
43
43
|
"rimraf": "^3.0.2",
|
|
44
|
-
"ts-jest": "^
|
|
44
|
+
"ts-jest": "^29.1.0",
|
|
45
45
|
"ts-node": "^10.2.1",
|
|
46
46
|
"tslib": "^2.2.0",
|
|
47
47
|
"typescript": "^4.4.3"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@babel/generator": "^7.
|
|
51
|
-
"@babel/parser": "^7.
|
|
52
|
-
"@babel/traverse": "^7.
|
|
53
|
-
"@babel/types": "^7.
|
|
54
|
-
"@cqse/commons": "
|
|
50
|
+
"@babel/generator": "^7.22.5",
|
|
51
|
+
"@babel/parser": "^7.22.5",
|
|
52
|
+
"@babel/traverse": "^7.22.5",
|
|
53
|
+
"@babel/types": "^7.22.5",
|
|
54
|
+
"@cqse/commons": "0.0.1-beta.52",
|
|
55
55
|
"@types/micromatch": "^4.0.2",
|
|
56
56
|
"argparse": "^2.0.1",
|
|
57
57
|
"async": "^3.2.4",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"convert-source-map": "^1.7.0",
|
|
60
60
|
"foreground-child": "^2.0.0",
|
|
61
61
|
"glob": "^7.1.7",
|
|
62
|
-
"istanbul-lib-instrument": "^5.2.
|
|
62
|
+
"istanbul-lib-instrument": "^5.2.1",
|
|
63
63
|
"micromatch": "4.0.4",
|
|
64
64
|
"mkdirp": "^1.0.4",
|
|
65
65
|
"source-map": "0.7.4",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Postprocessor.d.ts","sourceRoot":"","sources":["../../../src/instrumenter/Postprocessor.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"Postprocessor.d.ts","sourceRoot":"","sources":["../../../src/instrumenter/Postprocessor.ts"],"names":[],"mappings":"AAGA,OAAO,EAON,cAAc,EAUd,MAAM,cAAc,CAAC;AA4LtB;;;;;GAKG;AACH,wBAAgB,eAAe,CAC9B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,OAAO,EAClB,aAAa,EAAE,CAAC,QAAQ,EAAE,cAAc,KAAK,OAAO,GAClD,MAAM,CAkBR"}
|
|
@@ -38,6 +38,9 @@ const fileIdSeqGenerator = (() => {
|
|
|
38
38
|
}
|
|
39
39
|
};
|
|
40
40
|
})();
|
|
41
|
+
function isCoverageFunctionDefinition(path) {
|
|
42
|
+
return (0, types_1.isFunctionDeclaration)(path.node) && getIstanbulCoverageFunctionDeclarationName(path.node) !== undefined;
|
|
43
|
+
}
|
|
41
44
|
function getIstanbulCoverageFunctionDeclarationName(node) {
|
|
42
45
|
var _a;
|
|
43
46
|
if (!(0, types_1.isFunctionDeclaration)(node)) {
|
|
@@ -55,25 +58,34 @@ function createFileIdMappingHandler() {
|
|
|
55
58
|
const fileIdMap = new Map();
|
|
56
59
|
return {
|
|
57
60
|
enterPath(path) {
|
|
58
|
-
|
|
59
|
-
|
|
61
|
+
if (!(0, types_1.isFunctionDeclaration)(path.node)) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
const coverageFunctionName = getIstanbulCoverageFunctionDeclarationName(path.node);
|
|
65
|
+
if (!coverageFunctionName) {
|
|
60
66
|
return;
|
|
61
67
|
}
|
|
62
|
-
|
|
63
|
-
const
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (
|
|
67
|
-
const
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
// From here onwards, we know that the path.node is a FunctionDeclaration
|
|
69
|
+
const body = path.node.body;
|
|
70
|
+
// Traverse the body of the function for VariableDeclarations
|
|
71
|
+
for (const statement of body.body) {
|
|
72
|
+
if ((0, types_1.isVariableDeclaration)(statement)) {
|
|
73
|
+
const declaration = statement;
|
|
74
|
+
if (declaration.declarations.length === 1) {
|
|
75
|
+
const declarator = declaration.declarations[0];
|
|
76
|
+
if ((0, types_1.isIdentifier)(declarator.id) && declarator.id.name === 'hash') {
|
|
77
|
+
// We take note of the hash that is stored within the `cov_*' function.
|
|
78
|
+
const fileIdVarName = `_$f${fileIdSeqGenerator.next()}`;
|
|
79
|
+
const fileId = declarator.init.value;
|
|
80
|
+
fileIdMap.set(coverageFunctionName, fileIdVarName);
|
|
81
|
+
const variableDeclaration = newStringConstDeclarationNode(fileIdVarName, fileId);
|
|
82
|
+
path.insertBefore(variableDeclaration);
|
|
83
|
+
}
|
|
74
84
|
}
|
|
75
85
|
}
|
|
76
86
|
}
|
|
87
|
+
// Do not travers into the childs of this path.
|
|
88
|
+
path.skip();
|
|
77
89
|
},
|
|
78
90
|
getFileHashForCoverageObjectId(coverageObjectId) {
|
|
79
91
|
return fileIdMap.get(coverageObjectId);
|
|
@@ -83,9 +95,6 @@ function createFileIdMappingHandler() {
|
|
|
83
95
|
function createPartialInstrumentationHandler(fileIdMappingHandler) {
|
|
84
96
|
return {
|
|
85
97
|
enterPath(path, makeCoverable) {
|
|
86
|
-
if (!(0, types_1.isUpdateExpression)(path.node)) {
|
|
87
|
-
return;
|
|
88
|
-
}
|
|
89
98
|
const increment = extractCoverageIncrement(path.node);
|
|
90
99
|
if (!increment) {
|
|
91
100
|
return;
|
|
@@ -118,7 +127,13 @@ function cleanSourceCode(code, esModules, makeCoverable) {
|
|
|
118
127
|
(0, traverse_1.default)(ast, {
|
|
119
128
|
enter(path) {
|
|
120
129
|
fileIdMappingHandler.enterPath(path);
|
|
121
|
-
|
|
130
|
+
if (isCoverageFunctionDefinition(path)) {
|
|
131
|
+
// Do try to instrument the coverage function (and save some time).
|
|
132
|
+
path.skip();
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
partialInstrumentationHandler.enterPath(path, makeCoverable);
|
|
136
|
+
}
|
|
122
137
|
}
|
|
123
138
|
});
|
|
124
139
|
return (0, generator_1.default)(ast, {}, code).code;
|
|
@@ -214,61 +229,71 @@ function newStatementCoverageIncrementExpression(fileIdVarName, increment) {
|
|
|
214
229
|
* the given UpdateExpression is a branch coverage update expression.
|
|
215
230
|
*/
|
|
216
231
|
function extractBranchCoverageIncrement(expr) {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
isCoverageObjectCall(expr.argument.object.object.object)) {
|
|
223
|
-
const coverageObjectId = expr.argument.object.object.object.callee.name;
|
|
224
|
-
const branchId = expr.argument.object.property.value;
|
|
225
|
-
const locationId = expr.argument.property.value;
|
|
226
|
-
return { type: 'branch', branchId, locationId, coverageObjectId };
|
|
232
|
+
const firstMemberExpr = expr.argument;
|
|
233
|
+
const secondMemberExpr = firstMemberExpr.object;
|
|
234
|
+
const thirdMemberExpr = secondMemberExpr.object;
|
|
235
|
+
if (!(0, types_1.isMemberExpression)(thirdMemberExpr)) {
|
|
236
|
+
return null;
|
|
227
237
|
}
|
|
228
|
-
|
|
238
|
+
const callExpr = thirdMemberExpr.object;
|
|
239
|
+
if (!(0, types_1.isCallExpression)(callExpr) || !isCoverageObjectCall(callExpr)) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
const coverageObjectId = callExpr.callee.name;
|
|
243
|
+
const branchId = secondMemberExpr.property.value;
|
|
244
|
+
const locationId = firstMemberExpr.property.value;
|
|
245
|
+
return { type: 'branch', branchId, locationId, coverageObjectId };
|
|
229
246
|
}
|
|
230
247
|
/**
|
|
231
248
|
* Returns the call expression from `cov_104fq7oo4i().s[0]++;` if
|
|
232
249
|
* the given UpdateExpression is a statement coverage update expression.
|
|
233
250
|
*/
|
|
234
251
|
function extractStatementCoverageIncrement(expr) {
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
return { type: 'statement', statementId, coverageObjectId };
|
|
252
|
+
const firstMemberExpr = expr.argument;
|
|
253
|
+
const secondMemberExpr = firstMemberExpr.object;
|
|
254
|
+
const callExpr = secondMemberExpr.object;
|
|
255
|
+
const argObjProp = secondMemberExpr.property;
|
|
256
|
+
if (!(0, types_1.isCallExpression)(callExpr) ||
|
|
257
|
+
!(0, types_1.isIdentifier)(argObjProp) ||
|
|
258
|
+
argObjProp.name !== 's' ||
|
|
259
|
+
!isCoverageObjectCall(callExpr)) {
|
|
260
|
+
return null;
|
|
245
261
|
}
|
|
246
|
-
|
|
262
|
+
const coverageObjectId = callExpr.callee.name;
|
|
263
|
+
const statementId = firstMemberExpr.property.value;
|
|
264
|
+
return { type: 'statement', statementId, coverageObjectId };
|
|
247
265
|
}
|
|
248
266
|
/**
|
|
249
267
|
* Returns the call expression from `cov_104fq7oo4i().f[0]++;` if
|
|
250
268
|
* the given UpdateExpression is a function coverage update expression.
|
|
251
269
|
*/
|
|
252
270
|
function extractFunctionCoverageIncrement(expr) {
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
return { type: 'function', functionId, coverageObjectId };
|
|
271
|
+
const firstMemberExpr = expr.argument;
|
|
272
|
+
const secondMemberExpr = firstMemberExpr.object;
|
|
273
|
+
const callExpr = secondMemberExpr.object;
|
|
274
|
+
const argObjProp = secondMemberExpr.property;
|
|
275
|
+
if (!(0, types_1.isCallExpression)(callExpr) ||
|
|
276
|
+
!(0, types_1.isIdentifier)(argObjProp) ||
|
|
277
|
+
argObjProp.name !== 'f' ||
|
|
278
|
+
!isCoverageObjectCall(callExpr)) {
|
|
279
|
+
return null;
|
|
263
280
|
}
|
|
264
|
-
|
|
281
|
+
const coverageObjectId = callExpr.callee.name;
|
|
282
|
+
const functionId = firstMemberExpr.property.value;
|
|
283
|
+
return { type: 'function', functionId, coverageObjectId };
|
|
265
284
|
}
|
|
266
285
|
/**
|
|
267
|
-
* Given an `
|
|
286
|
+
* Given an `IncrementExpression` extract the call expression returning the coverage object.
|
|
268
287
|
*/
|
|
269
|
-
function extractCoverageIncrement(
|
|
288
|
+
function extractCoverageIncrement(node) {
|
|
270
289
|
var _a, _b;
|
|
271
|
-
|
|
290
|
+
if ((0, types_1.isUpdateExpression)(node) &&
|
|
291
|
+
node.operator === '++' &&
|
|
292
|
+
(0, types_1.isMemberExpression)(node.argument) &&
|
|
293
|
+
(0, types_1.isMemberExpression)(node.argument.object)) {
|
|
294
|
+
return ((_b = (_a = extractBranchCoverageIncrement(node)) !== null && _a !== void 0 ? _a : extractStatementCoverageIncrement(node)) !== null && _b !== void 0 ? _b : extractFunctionCoverageIncrement(node));
|
|
295
|
+
}
|
|
296
|
+
return null;
|
|
272
297
|
}
|
|
273
298
|
/**
|
|
274
299
|
* Check if the given call expression is a coverage call expression.
|
|
@@ -7,7 +7,6 @@ exports.SourceMapFileReference = exports.TaskResult = exports.InstrumentationTas
|
|
|
7
7
|
const typescript_optional_1 = require("typescript-optional");
|
|
8
8
|
const commons_1 = require("@cqse/commons");
|
|
9
9
|
const micromatch_1 = __importDefault(require("micromatch"));
|
|
10
|
-
const path_1 = __importDefault(require("path"));
|
|
11
10
|
/**
|
|
12
11
|
* An abstract source map type.
|
|
13
12
|
*/
|
|
@@ -135,10 +134,10 @@ function normalizeGlobPattern(pattern) {
|
|
|
135
134
|
return removeTrailingCurrentWorkingDir(pattern);
|
|
136
135
|
}
|
|
137
136
|
function normalizePath(toNormalize) {
|
|
138
|
-
return removeTrailingCurrentWorkingDir(toNormalize);
|
|
137
|
+
return removeTrailingCurrentWorkingDir(toNormalize.replace(/\\/g, '/'));
|
|
139
138
|
}
|
|
140
139
|
function removeTrailingCurrentWorkingDir(removeFrom) {
|
|
141
|
-
return removePrefix('webpack:///', removePrefix('
|
|
140
|
+
return removePrefix('webpack:///', removePrefix('./', removeFrom));
|
|
142
141
|
}
|
|
143
142
|
function removePrefix(prefix, removeFrom) {
|
|
144
143
|
if (removeFrom.startsWith(prefix)) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InstrumentationTask, SourceMapReference } from './Task';
|
|
2
2
|
/** The parameters the instrumenter can be configured by */
|
|
3
|
-
export
|
|
3
|
+
export type ConfigurationParameters = {
|
|
4
4
|
inputs?: string[];
|
|
5
5
|
in_place?: boolean;
|
|
6
6
|
debug?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TaskBuilder.d.ts","sourceRoot":"","sources":["../../../src/instrumenter/TaskBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,mBAAmB,EAGnB,kBAAkB,EAElB,MAAM,QAAQ,CAAC;AAMhB,2DAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"TaskBuilder.d.ts","sourceRoot":"","sources":["../../../src/instrumenter/TaskBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,mBAAmB,EAGnB,kBAAkB,EAElB,MAAM,QAAQ,CAAC;AAMhB,2DAA2D;AAC3D,MAAM,MAAM,uBAAuB,GAAG;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,EAAE,CAAC,EAAE,MAAM,CAAC;IAEZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAElB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B,eAAe,CAAC,EAAE,MAAM,CAAC;CACzB,CAAC;AAkBF;;GAEG;AACH,qBAAa,WAAW;IACvB,gDAAgD;IAChD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IAEzC,6CAA6C;IAC7C,OAAO,CAAC,SAAS,CAA4B;IAE7C,+BAA+B;IAC/B,OAAO,CAAC,2BAA2B,CAAuB;IAE1D,8BAA8B;IAC9B,OAAO,CAAC,2BAA2B,CAAuB;IAE1D,8BAA8B;IAC9B,OAAO,CAAC,yBAAyB,CAAuB;IAExD,mIAAmI;IACnI,OAAO,CAAC,eAAe,CAAqB;;IAO5C,0EAA0E;IAC1E,sBAAsB,CAAC,sBAAsB,EAAE,MAAM,GAAG,IAAI;IAM5D,gHAAgH;IAChH,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAKpE,kHAAkH;IAClH,8BAA8B,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAKpE,qHAAqH;IACrH,wBAAwB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAK9D,yBAAyB;IACzB,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAKlG;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,uBAAuB,GAAG,IAAI;IAoCpD;;;;;;;OAOG;IACH,OAAO,CAAC,4CAA4C;IAgCpD;;;;;;OAMG;IACH,OAAO,CAAC,0BAA0B;IASlC;;OAEG;IACI,KAAK,IAAI,mBAAmB;CASnC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@teamscale/javascript-instrumenter",
|
|
3
|
-
"version": "0.0.1-beta.
|
|
3
|
+
"version": "0.0.1-beta.54",
|
|
4
4
|
"description": "JavaScript coverage instrumenter with coverage forwarding to a collector process",
|
|
5
5
|
"main": "dist/src/main.js",
|
|
6
6
|
"bin": "dist/src/main.js",
|
|
@@ -23,35 +23,35 @@
|
|
|
23
23
|
"dist/**/*"
|
|
24
24
|
],
|
|
25
25
|
"devDependencies": {
|
|
26
|
-
"@babel/core": "^7.
|
|
27
|
-
"@babel/plugin-transform-modules-commonjs": "^7.
|
|
28
|
-
"@babel/preset-env": "^7.
|
|
26
|
+
"@babel/core": "^7.22.5",
|
|
27
|
+
"@babel/plugin-transform-modules-commonjs": "^7.22.5",
|
|
28
|
+
"@babel/preset-env": "^7.22.5",
|
|
29
29
|
"@types/async": "^3.2.6",
|
|
30
30
|
"@types/bunyan": "^1.8.8",
|
|
31
31
|
"@types/convert-source-map": "^1.5.1",
|
|
32
32
|
"@types/glob": "^7.1.3",
|
|
33
33
|
"@types/istanbul-lib-instrument": "^1.7.4",
|
|
34
|
-
"@types/jest": "^
|
|
34
|
+
"@types/jest": "^29.5.1",
|
|
35
35
|
"@types/mkdirp": "^1.0.2",
|
|
36
36
|
"@types/node": "^15.0.1",
|
|
37
37
|
"@types/source-map": "^0.5.7",
|
|
38
38
|
"@types/ws": "^7.4.4",
|
|
39
|
-
"babel-jest": "^
|
|
39
|
+
"babel-jest": "^29.5.0",
|
|
40
40
|
"esbuild": "^0.13.3",
|
|
41
41
|
"esbuild-plugin-inline-worker": "^0.1.1",
|
|
42
|
-
"jest": "^
|
|
42
|
+
"jest": "^29.5.0",
|
|
43
43
|
"rimraf": "^3.0.2",
|
|
44
|
-
"ts-jest": "^
|
|
44
|
+
"ts-jest": "^29.1.0",
|
|
45
45
|
"ts-node": "^10.2.1",
|
|
46
46
|
"tslib": "^2.2.0",
|
|
47
47
|
"typescript": "^4.4.3"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@babel/generator": "^7.
|
|
51
|
-
"@babel/parser": "^7.
|
|
52
|
-
"@babel/traverse": "^7.
|
|
53
|
-
"@babel/types": "^7.
|
|
54
|
-
"@cqse/commons": "
|
|
50
|
+
"@babel/generator": "^7.22.5",
|
|
51
|
+
"@babel/parser": "^7.22.5",
|
|
52
|
+
"@babel/traverse": "^7.22.5",
|
|
53
|
+
"@babel/types": "^7.22.5",
|
|
54
|
+
"@cqse/commons": "0.0.1-beta.52",
|
|
55
55
|
"@types/micromatch": "^4.0.2",
|
|
56
56
|
"argparse": "^2.0.1",
|
|
57
57
|
"async": "^3.2.4",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"convert-source-map": "^1.7.0",
|
|
60
60
|
"foreground-child": "^2.0.0",
|
|
61
61
|
"glob": "^7.1.7",
|
|
62
|
-
"istanbul-lib-instrument": "^5.2.
|
|
62
|
+
"istanbul-lib-instrument": "^5.2.1",
|
|
63
63
|
"micromatch": "4.0.4",
|
|
64
64
|
"mkdirp": "^1.0.4",
|
|
65
65
|
"source-map": "0.7.4",
|