@datadog/datadog-ci 3.14.0 → 3.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/dist/commands/aas/common.d.ts +3 -1
- package/dist/commands/aas/common.js +27 -8
- package/dist/commands/aas/common.js.map +1 -1
- package/dist/commands/aas/instrument.d.ts +4 -2
- package/dist/commands/aas/instrument.js +28 -9
- package/dist/commands/aas/instrument.js.map +1 -1
- package/dist/commands/aas/interfaces.d.ts +18 -15
- package/dist/commands/aas/uninstrument.js +3 -2
- package/dist/commands/aas/uninstrument.js.map +1 -1
- package/dist/commands/cloud-run/cli.js +3 -2
- package/dist/commands/cloud-run/cli.js.map +1 -1
- package/dist/commands/cloud-run/instrument.js +11 -22
- package/dist/commands/cloud-run/instrument.js.map +1 -1
- package/dist/commands/cloud-run/uninstrument.js +0 -1
- package/dist/commands/cloud-run/uninstrument.js.map +1 -1
- package/dist/commands/coverage/api.js +6 -2
- package/dist/commands/coverage/api.js.map +1 -1
- package/dist/commands/coverage/upload.js +0 -1
- package/dist/commands/coverage/upload.js.map +1 -1
- package/dist/commands/coverage/utils.js +1 -1
- package/dist/commands/coverage/utils.js.map +1 -1
- package/dist/commands/deployment/api.d.ts +2 -0
- package/dist/commands/deployment/api.js +44 -0
- package/dist/commands/deployment/api.js.map +1 -0
- package/dist/commands/deployment/gate.d.ts +30 -0
- package/dist/commands/deployment/gate.js +291 -0
- package/dist/commands/deployment/gate.js.map +1 -0
- package/dist/commands/deployment/interfaces.d.ts +42 -0
- package/dist/commands/deployment/interfaces.js +3 -0
- package/dist/commands/deployment/interfaces.js.map +1 -0
- package/dist/commands/lambda/constants.d.ts +2 -0
- package/dist/commands/lambda/constants.js +4 -1
- package/dist/commands/lambda/constants.js.map +1 -1
- package/dist/commands/lambda/functions/commons.js +3 -0
- package/dist/commands/lambda/functions/commons.js.map +1 -1
- package/dist/commands/lambda/functions/instrument.js +6 -0
- package/dist/commands/lambda/functions/instrument.js.map +1 -1
- package/dist/commands/lambda/functions/uninstrument.js +1 -0
- package/dist/commands/lambda/functions/uninstrument.js.map +1 -1
- package/dist/commands/lambda/instrument.d.ts +1 -0
- package/dist/commands/lambda/instrument.js +3 -20
- package/dist/commands/lambda/instrument.js.map +1 -1
- package/dist/commands/lambda/interfaces.d.ts +1 -0
- package/dist/commands/synthetics/batch.js +1 -1
- package/dist/commands/synthetics/batch.js.map +1 -1
- package/dist/commands/synthetics/interfaces.d.ts +89 -4
- package/dist/commands/synthetics/interfaces.js.map +1 -1
- package/dist/commands/synthetics/tunnel/tunnel.d.ts +4 -0
- package/dist/commands/synthetics/tunnel/tunnel.js +43 -17
- package/dist/commands/synthetics/tunnel/tunnel.js.map +1 -1
- package/dist/helpers/git/instrument-helpers.d.ts +1 -4
- package/dist/helpers/git/instrument-helpers.js +21 -2
- package/dist/helpers/git/instrument-helpers.js.map +1 -1
- package/package.json +4 -2
|
@@ -17,6 +17,11 @@ const ssh2_1 = require("ssh2");
|
|
|
17
17
|
const yamux_js_1 = require("yamux-js");
|
|
18
18
|
const crypto_2 = require("./crypto");
|
|
19
19
|
const websocket_1 = require("./websocket");
|
|
20
|
+
/**
|
|
21
|
+
* Use `DEBUG=synthetics:tunnel` to enable debug logs.
|
|
22
|
+
*/
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-call
|
|
24
|
+
const debug = require('debug')('synthetics:tunnel');
|
|
20
25
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires -- SW-1310
|
|
21
26
|
const SSH_CONSTANTS = require('ssh2/lib/protocol/constants');
|
|
22
27
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-var-requires -- SW-1310
|
|
@@ -27,8 +32,24 @@ class Tunnel {
|
|
|
27
32
|
this.testIDs = testIDs;
|
|
28
33
|
this.reporter = reporter;
|
|
29
34
|
this.FORWARDING_TIMEOUT = 40000;
|
|
35
|
+
/** Used to catch SIGINT only once. */
|
|
36
|
+
this.started = false;
|
|
37
|
+
/** Used to log "Successfully connected" only once. */
|
|
30
38
|
this.connected = false;
|
|
31
39
|
this.forwardedSockets = new Set();
|
|
40
|
+
this.handleSIGINT = () => {
|
|
41
|
+
var _a;
|
|
42
|
+
if (this.started) {
|
|
43
|
+
// The tunnel is connected, so we stop it gracefully – all tests will be aborted.
|
|
44
|
+
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.log('Closing tunnel and waiting for results... (press Ctrl+C again to force quit)');
|
|
45
|
+
void this.stop();
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// The tunnel was already closed and we received a second Ctrl+C.
|
|
49
|
+
// Removing the listener automatically stops the process.
|
|
50
|
+
process.removeListener('SIGINT', this.handleSIGINT);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
32
53
|
// Setup SSH
|
|
33
54
|
const { privateKey: hostPrivateKey } = (0, crypto_2.generateOpenSSHKeys)();
|
|
34
55
|
const parsedHostPrivateKey = (0, crypto_2.parseSSHKey)(hostPrivateKey);
|
|
@@ -65,6 +86,8 @@ class Tunnel {
|
|
|
65
86
|
start() {
|
|
66
87
|
var _a, _b, _c;
|
|
67
88
|
return __awaiter(this, void 0, void 0, function* () {
|
|
89
|
+
this.started = true;
|
|
90
|
+
process.addListener('SIGINT', this.handleSIGINT);
|
|
68
91
|
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.log(`Opening tunnel for ${this.testIDs.length} tests…`);
|
|
69
92
|
(_b = this.reporter) === null || _b === void 0 ? void 0 : _b.log('Generating encryption key, setting up SSH and opening WebSocket connection…');
|
|
70
93
|
try {
|
|
@@ -87,13 +110,17 @@ class Tunnel {
|
|
|
87
110
|
stop() {
|
|
88
111
|
var _a;
|
|
89
112
|
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
|
|
113
|
+
this.connected = false;
|
|
91
114
|
this.forwardedSockets.forEach((socket) => {
|
|
92
115
|
if (!!socket) {
|
|
93
116
|
socket.destroy();
|
|
94
117
|
}
|
|
95
118
|
});
|
|
96
119
|
yield this.ws.close();
|
|
120
|
+
if (this.started) {
|
|
121
|
+
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.log('Tunnel closed.');
|
|
122
|
+
this.started = false;
|
|
123
|
+
}
|
|
97
124
|
});
|
|
98
125
|
}
|
|
99
126
|
// Authenticate SSH with key authentication - username should be the test ID
|
|
@@ -144,8 +171,7 @@ class Tunnel {
|
|
|
144
171
|
dest.setTimeout(this.FORWARDING_TIMEOUT);
|
|
145
172
|
this.forwardedSockets.add(dest);
|
|
146
173
|
dest.on('timeout', () => {
|
|
147
|
-
|
|
148
|
-
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.warn(`Connection timeout (${destIP})`);
|
|
174
|
+
debug(`Connection timeout (${destIP})`);
|
|
149
175
|
if (src) {
|
|
150
176
|
src.destroy();
|
|
151
177
|
}
|
|
@@ -169,19 +195,19 @@ class Tunnel {
|
|
|
169
195
|
});
|
|
170
196
|
});
|
|
171
197
|
dest.on('error', (error) => {
|
|
172
|
-
var _a, _b
|
|
198
|
+
var _a, _b;
|
|
173
199
|
if (src) {
|
|
174
200
|
if (error.code !== 'ERR_STREAM_PREMATURE_CLOSE') {
|
|
175
|
-
(
|
|
201
|
+
debug(`Error on opened connection (${destIP}): ${error.code}`);
|
|
176
202
|
}
|
|
177
203
|
src.close();
|
|
178
204
|
}
|
|
179
205
|
else {
|
|
180
206
|
if ('code' in error && error.code === 'ENOTFOUND') {
|
|
181
|
-
(
|
|
207
|
+
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.warn(`Unable to resolve host (${destIP})`);
|
|
182
208
|
}
|
|
183
209
|
else {
|
|
184
|
-
(
|
|
210
|
+
(_b = this.reporter) === null || _b === void 0 ? void 0 : _b.warn(`Connection error (${destIP}): ${error.code}`);
|
|
185
211
|
}
|
|
186
212
|
reject();
|
|
187
213
|
this.forwardedSockets.delete(dest);
|
|
@@ -224,25 +250,26 @@ class Tunnel {
|
|
|
224
250
|
};
|
|
225
251
|
this.multiplexer = new yamux_js_1.Server((stream) => {
|
|
226
252
|
stream.on('error', (error) => {
|
|
227
|
-
|
|
228
|
-
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.warn(`Error in multiplexing: ${error}`);
|
|
253
|
+
debug(`Error in multiplexing: ${error}`);
|
|
229
254
|
});
|
|
230
255
|
void this.processSSHStream(stream);
|
|
231
256
|
}, multiplexerConfig);
|
|
232
257
|
// Pipe WebSocket to multiplexing
|
|
233
258
|
const duplex = this.ws.duplex();
|
|
234
|
-
this.multiplexer.on('error', (error) => {
|
|
235
|
-
|
|
259
|
+
this.multiplexer.on('error', (error) => {
|
|
260
|
+
debug(`Multiplexer error: ${error.message}`);
|
|
261
|
+
});
|
|
262
|
+
duplex.on('error', (error) => {
|
|
263
|
+
debug(`Websocket error: ${error.message}`);
|
|
264
|
+
});
|
|
236
265
|
(0, stream_1.pipeline)(duplex, this.multiplexer, (err) => {
|
|
237
|
-
var _a;
|
|
238
266
|
if (err) {
|
|
239
|
-
(
|
|
267
|
+
debug(`Error on duplex connection close: ${err}`);
|
|
240
268
|
}
|
|
241
269
|
});
|
|
242
270
|
(0, stream_1.pipeline)(this.multiplexer, duplex, (err) => {
|
|
243
|
-
var _a;
|
|
244
271
|
if (err) {
|
|
245
|
-
(
|
|
272
|
+
debug(`Error on Multiplexer connection close: ${err}`);
|
|
246
273
|
}
|
|
247
274
|
});
|
|
248
275
|
return connectionInfo;
|
|
@@ -293,8 +320,7 @@ class Tunnel {
|
|
|
293
320
|
server.close();
|
|
294
321
|
})
|
|
295
322
|
.on('error', (err) => {
|
|
296
|
-
|
|
297
|
-
(_a = this.reporter) === null || _a === void 0 ? void 0 : _a.warn(`SSH error in proxy: ${err.message}`);
|
|
323
|
+
debug(`SSH error in proxy: ${err.message}`);
|
|
298
324
|
});
|
|
299
325
|
});
|
|
300
326
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../../src/commands/synthetics/tunnel/tunnel.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,mCAAsC;AACtC,6BAA0B;AAC1B,mCAAuC;AAIvC,+BAOa;AACb,uCAA2E;AAE3E,qCAAyD;AACzD,2CAAqC;AAErC,kHAAkH;AAClH,MAAM,aAAa,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAA;AAC5D,kHAAkH;AAClH,MAAM,EAAC,OAAO,EAAC,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAAA;AAclD,MAAa,MAAM;
|
|
1
|
+
{"version":3,"file":"tunnel.js","sourceRoot":"","sources":["../../../../src/commands/synthetics/tunnel/tunnel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { BaseContext } from 'clipanion';
|
|
2
|
-
export declare const getGitData: () => Promise<{
|
|
3
|
-
commitSha: string;
|
|
4
|
-
gitRemote: string | undefined;
|
|
5
|
-
}>;
|
|
6
2
|
export declare const getCurrentGitStatus: () => Promise<{
|
|
7
3
|
isClean: boolean;
|
|
8
4
|
ahead: number;
|
|
@@ -11,3 +7,4 @@ export declare const getCurrentGitStatus: () => Promise<{
|
|
|
11
7
|
remote: string;
|
|
12
8
|
}>;
|
|
13
9
|
export declare const uploadGitData: (context: BaseContext) => Promise<void>;
|
|
10
|
+
export declare const handleSourceCodeIntegration: (context: BaseContext, uploadGitMetadata: boolean, extraTags: string | undefined) => Promise<string | undefined>;
|
|
@@ -9,10 +9,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
});
|
|
10
10
|
};
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.
|
|
12
|
+
exports.handleSourceCodeIntegration = exports.uploadGitData = exports.getCurrentGitStatus = void 0;
|
|
13
13
|
const clipanion_1 = require("clipanion");
|
|
14
14
|
const git_1 = require("../../commands/git-metadata/git");
|
|
15
15
|
const upload_1 = require("../../commands/git-metadata/upload");
|
|
16
|
+
const renderer_1 = require("../renderer");
|
|
16
17
|
const utils_1 = require("../utils");
|
|
17
18
|
const getGitData = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
18
19
|
let currentStatus;
|
|
@@ -31,7 +32,6 @@ const getGitData = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
|
31
32
|
const gitRemote = (0, utils_1.filterAndFormatGithubRemote)(currentStatus.remote);
|
|
32
33
|
return { commitSha: currentStatus.hash, gitRemote };
|
|
33
34
|
});
|
|
34
|
-
exports.getGitData = getGitData;
|
|
35
35
|
const getCurrentGitStatus = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
36
36
|
const simpleGit = yield (0, git_1.newSimpleGit)();
|
|
37
37
|
const gitCommitInfo = yield (0, git_1.getCommitInfo)(simpleGit);
|
|
@@ -57,4 +57,23 @@ const uploadGitData = (context) => __awaiter(void 0, void 0, void 0, function* (
|
|
|
57
57
|
return;
|
|
58
58
|
});
|
|
59
59
|
exports.uploadGitData = uploadGitData;
|
|
60
|
+
const handleSourceCodeIntegration = (context, uploadGitMetadata, extraTags) => __awaiter(void 0, void 0, void 0, function* () {
|
|
61
|
+
try {
|
|
62
|
+
const gitData = yield getGitData();
|
|
63
|
+
if (uploadGitMetadata) {
|
|
64
|
+
yield (0, exports.uploadGitData)(context);
|
|
65
|
+
}
|
|
66
|
+
if (extraTags) {
|
|
67
|
+
extraTags += `,git.commit.sha:${gitData.commitSha},git.repository_url:${gitData.gitRemote}`;
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
extraTags = `git.commit.sha:${gitData.commitSha},git.repository_url:${gitData.gitRemote}`;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (err) {
|
|
74
|
+
context.stdout.write((0, renderer_1.renderSoftWarning)(`Couldn't add source code integration, continuing without it. ${err}`));
|
|
75
|
+
}
|
|
76
|
+
return extraTags;
|
|
77
|
+
});
|
|
78
|
+
exports.handleSourceCodeIntegration = handleSourceCodeIntegration;
|
|
60
79
|
//# sourceMappingURL=instrument-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instrument-helpers.js","sourceRoot":"","sources":["../../../src/helpers/git/instrument-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAA0C;AAE1C,yDAA2E;AAC3E,+DAAgE;AAEhE,oCAAoD;
|
|
1
|
+
{"version":3,"file":"instrument-helpers.js","sourceRoot":"","sources":["../../../src/helpers/git/instrument-helpers.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAA0C;AAE1C,yDAA2E;AAC3E,+DAAgE;AAEhE,0CAA6C;AAC7C,oCAAoD;AAEpD,MAAM,UAAU,GAAG,GAAS,EAAE;IAC5B,IAAI,aAAa,CAAA;IAEjB,IAAI;QACF,aAAa,GAAG,MAAM,IAAA,2BAAmB,GAAE,CAAA;KAC5C;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAA;KAC7C;IAED,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;QAC1B,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAA;KAC7C;IAED,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE;QAC3B,MAAM,KAAK,CAAC,yEAAyE,CAAC,CAAA;KACvF;IAED,MAAM,SAAS,GAAG,IAAA,mCAA2B,EAAC,aAAa,CAAC,MAAM,CAAC,CAAA;IAEnE,OAAO,EAAC,SAAS,EAAE,aAAa,CAAC,IAAI,EAAE,SAAS,EAAC,CAAA;AACnD,CAAC,CAAA,CAAA;AAEM,MAAM,mBAAmB,GAAG,GAAS,EAAE;IAC5C,MAAM,SAAS,GAAG,MAAM,IAAA,kBAAY,GAAE,CAAA;IACtC,MAAM,aAAa,GAAG,MAAM,IAAA,mBAAa,EAAC,SAAS,CAAC,CAAA;IACpD,IAAI,aAAa,KAAK,SAAS,EAAE;QAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;KAClD;IACD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAA;IAEvC,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE;QACzB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,KAAK,EAAE,MAAM,CAAC,KAAK;QACnB,IAAI,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI;QACzB,MAAM,EAAE,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,MAAM;KAC9B,CAAA;AACH,CAAC,CAAA,CAAA;AAfY,QAAA,mBAAmB,uBAe/B;AAEM,MAAM,aAAa,GAAG,CAAO,OAAoB,EAAE,EAAE;IAC1D,MAAM,GAAG,GAAG,IAAI,eAAG,EAAE,CAAA;IACrB,GAAG,CAAC,QAAQ,CAAC,sBAAa,CAAC,CAAA;IAC3B,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE;QAC9D,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAA;KAC5C;IAED,OAAM;AACR,CAAC,CAAA,CAAA;AARY,QAAA,aAAa,iBAQzB;AAEM,MAAM,2BAA2B,GAAG,CACzC,OAAoB,EACpB,iBAA0B,EAC1B,SAA6B,EAC7B,EAAE;IACF,IAAI;QACF,MAAM,OAAO,GAAG,MAAM,UAAU,EAAE,CAAA;QAClC,IAAI,iBAAiB,EAAE;YACrB,MAAM,IAAA,qBAAa,EAAC,OAAO,CAAC,CAAA;SAC7B;QACD,IAAI,SAAS,EAAE;YACb,SAAS,IAAI,mBAAmB,OAAO,CAAC,SAAS,uBAAuB,OAAO,CAAC,SAAS,EAAE,CAAA;SAC5F;aAAM;YACL,SAAS,GAAG,kBAAkB,OAAO,CAAC,SAAS,uBAAuB,OAAO,CAAC,SAAS,EAAE,CAAA;SAC1F;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAA,4BAAiB,EAAC,gEAAgE,GAAG,EAAE,CAAC,CAAC,CAAA;KAC/G;IAED,OAAO,SAAS,CAAA;AAClB,CAAC,CAAA,CAAA;AApBY,QAAA,2BAA2B,+BAoBvC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@datadog/datadog-ci",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.16.0",
|
|
4
4
|
"description": "Run datadog actions from the CI.",
|
|
5
5
|
"repository": "https://github.com/DataDog/datadog-ci",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -43,13 +43,13 @@
|
|
|
43
43
|
"dist-standalone": "pkg --compress GZip .",
|
|
44
44
|
"dist-standalone:test": "jest --config ./jest.config-standalone.js --colors",
|
|
45
45
|
"format": "yarn eslint --fix",
|
|
46
|
+
"generate-json-schemas:synthetics": "ts-json-schema-generator --markdown-description --no-type-check --no-top-ref --additional-properties --path src/commands/synthetics/interfaces.ts --type TestConfig > src/commands/synthetics/test-config.schema.json && prettier --write src/commands/synthetics/test-config.schema.json",
|
|
46
47
|
"launch": "ts-node --transpile-only src/cli.ts",
|
|
47
48
|
"launch:debug": "node -r ts-node/register/transpile-only --inspect-brk src/cli.ts",
|
|
48
49
|
"lint": "yarn eslint || (echo \"\nYou can fix this by running ==> yarn format <==\n\" && false)",
|
|
49
50
|
"lint:ci": "yarn eslint -f @microsoft/sarif -o 'sarif-datadog-ci.sarif'",
|
|
50
51
|
"no-only-in-tests": "grep -R \"\\.only[(\\.]\" $(find src -name '*.ts' | grep '__tests__'); test $? -eq 1 || (echo '.only was found in the tests, please remove it.' && false)",
|
|
51
52
|
"prepack": "yarn build && node ./bin/make-it-executable.js && rimraf --glob 'dist/**/__tests__'",
|
|
52
|
-
"prettier": "prettier \"src/**/*.{ts,js,json,yml}\" --ignore-path .gitignore",
|
|
53
53
|
"test": "jest --colors",
|
|
54
54
|
"test:windows": "jest --config ./jest.config-windows.js --colors",
|
|
55
55
|
"test:debug": "node --inspect-brk node_modules/jest/bin/jest --runInBand",
|
|
@@ -84,6 +84,7 @@
|
|
|
84
84
|
"chalk": "3.0.0",
|
|
85
85
|
"clipanion": "^3.2.1",
|
|
86
86
|
"datadog-metrics": "0.9.3",
|
|
87
|
+
"debug": "^4.3.4",
|
|
87
88
|
"deep-extend": "0.6.0",
|
|
88
89
|
"deep-object-diff": "^1.1.9",
|
|
89
90
|
"fast-deep-equal": "^3.1.3",
|
|
@@ -159,6 +160,7 @@
|
|
|
159
160
|
"proxy": "^2.1.1",
|
|
160
161
|
"rimraf": "^5.0.0",
|
|
161
162
|
"ts-jest": "29.1.1",
|
|
163
|
+
"ts-json-schema-generator": "^2.4.0",
|
|
162
164
|
"ts-node": "8.8.1",
|
|
163
165
|
"typescript": "5.1.6"
|
|
164
166
|
}
|