playwright-slack-report 1.1.58 → 1.1.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/README.md +95 -3
- package/dist/cli.js +43 -2
- package/dist/src/ResultsParser.js.map +1 -1
- package/dist/src/SlackReporter.d.ts +2 -1
- package/dist/src/SlackReporter.js +27 -8
- package/dist/src/SlackReporter.js.map +1 -1
- package/dist/src/cli/cli_pre_checks.js +6 -0
- package/dist/src/cli/cli_pre_checks.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -157,9 +157,94 @@ Next, you will need to configure the cli. See example below:
|
|
|
157
157
|
|
|
158
158
|
The config file also supports the follow extra options:
|
|
159
159
|
* `proxy` - String representation of your proxy server.
|
|
160
|
-
* `sendUsingWebhook` - Object containing the webhook url to send the results to
|
|
160
|
+
* `sendUsingWebhook` - Object containing the webhook url to send the results to (see example below)
|
|
161
|
+
* `customLayout` - Object specifying the custom layout relative path and function name:
|
|
162
|
+
```
|
|
163
|
+
"customLayout": {
|
|
164
|
+
"source": "./custom_block/cli_block_with_meta.ts",
|
|
165
|
+
"functionName": "generateCustomLayoutSimpleMeta"
|
|
166
|
+
}
|
|
167
|
+
```
|
|
168
|
+
* `customLayoutAsync` - Similar to `customLayout`, except this key requires an async function:
|
|
169
|
+
```
|
|
170
|
+
"customLayoutAsync": {
|
|
171
|
+
"source": "./custom_block/cli_block_with_meta.ts",
|
|
172
|
+
"functionName": "generateCustomAsyncLayoutSimpleMeta"
|
|
173
|
+
}
|
|
174
|
+
```
|
|
161
175
|
|
|
162
176
|
|
|
177
|
+
The customLayout typescript file must export a function name using the `exports` syntax e.g. `exports.generateCustomLayoutSimpleMeta = generateCustomLayoutSimpleMeta;`
|
|
178
|
+
This file should not contain any `import` statements otherwise it will complain. See example below:
|
|
179
|
+
<details>
|
|
180
|
+
<summary>Example custom layout for CLI</summary>
|
|
181
|
+
|
|
182
|
+
```js
|
|
183
|
+
function generateCustomLayoutSimpleMeta(summaryResults) {
|
|
184
|
+
const meta = [];
|
|
185
|
+
if (summaryResults.meta) {
|
|
186
|
+
for (let i = 0; i < summaryResults.meta.length; i += 1) {
|
|
187
|
+
const { key, value } = summaryResults.meta[i];
|
|
188
|
+
meta.push({
|
|
189
|
+
type: 'section',
|
|
190
|
+
text: {
|
|
191
|
+
type: 'mrkdwn',
|
|
192
|
+
text: `\n*${key}* :🙌\t${value}`,
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
return [
|
|
198
|
+
{
|
|
199
|
+
type: 'section',
|
|
200
|
+
text: {
|
|
201
|
+
type: 'mrkdwn',
|
|
202
|
+
text:
|
|
203
|
+
summaryResults.failed === 0
|
|
204
|
+
? ':tada: All tests passed!'
|
|
205
|
+
: `😭${summaryResults.failed} failure(s) out of ${summaryResults.tests.length} tests`,
|
|
206
|
+
},
|
|
207
|
+
},
|
|
208
|
+
...meta,
|
|
209
|
+
];
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
async function generateCustomAsyncLayoutSimpleMeta(summaryResults) {
|
|
213
|
+
const meta = [];
|
|
214
|
+
// do some async stuff here
|
|
215
|
+
if (summaryResults.meta) {
|
|
216
|
+
for (let i = 0; i < summaryResults.meta.length; i += 1) {
|
|
217
|
+
const { key, value } = summaryResults.meta[i];
|
|
218
|
+
meta.push({
|
|
219
|
+
type: 'section',
|
|
220
|
+
text: {
|
|
221
|
+
type: 'mrkdwn',
|
|
222
|
+
text: `\n*${key}* :😍\t${value}`,
|
|
223
|
+
},
|
|
224
|
+
});
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
return [
|
|
228
|
+
{
|
|
229
|
+
type: 'section',
|
|
230
|
+
text: {
|
|
231
|
+
type: 'mrkdwn',
|
|
232
|
+
text:
|
|
233
|
+
summaryResults.failed === 0
|
|
234
|
+
? ':tada: All tests passed!'
|
|
235
|
+
: `😭${summaryResults.failed} failure(s) out of ${summaryResults.tests.length} tests`,
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
...meta,
|
|
239
|
+
];
|
|
240
|
+
}
|
|
241
|
+
exports.generateCustomLayoutSimpleMeta = generateCustomLayoutSimpleMeta;
|
|
242
|
+
exports.generateCustomAsyncLayoutSimpleMeta = generateCustomAsyncLayoutSimpleMeta;
|
|
243
|
+
```
|
|
244
|
+
</details>
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
*Config with extra options*
|
|
163
248
|
|
|
164
249
|
```json
|
|
165
250
|
{
|
|
@@ -177,7 +262,11 @@ The config file also supports the follow extra options:
|
|
|
177
262
|
{ "key": "results", "value" : "https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png"}
|
|
178
263
|
],
|
|
179
264
|
"maxNumberOfFailures": 4,
|
|
180
|
-
"disableUnfurl": true
|
|
265
|
+
"disableUnfurl": true,
|
|
266
|
+
"customLayout": {
|
|
267
|
+
"source": "./custom_block/cli_block_with_meta.ts",
|
|
268
|
+
"functionName": "generateCustomLayoutSimpleMeta"
|
|
269
|
+
}
|
|
181
270
|
}
|
|
182
271
|
```
|
|
183
272
|
|
|
@@ -188,7 +277,6 @@ Once you have generated the JSON report and defined your config file, you can se
|
|
|
188
277
|
Both the `-c` and `-j` options are required. The `-c` option is the path to your config file and the `-j` option is the path to your merged JSON report. You will also need to pipe the output to a json file, using the `>` operator.
|
|
189
278
|
|
|
190
279
|
### Additional notes
|
|
191
|
-
* The CLI currently does not support custom layouts 👎🥺
|
|
192
280
|
* The config file for the cli app is stand-alone, which means you no longer need to define the Playwright slack reporter in your `playwright.config.ts` file
|
|
193
281
|
* In order to handle dynamic meta data e.g. environment variables storing your build id, branch name etc, you can use the `meta` option in the config file and use the format: `__ENV_VARIABLE_NAME` as its value. This will be replaced with the actual value of the environment variable at runtime. See example below:
|
|
194
282
|
|
|
@@ -306,6 +394,10 @@ An example advanced configuration is shown below:
|
|
|
306
394
|
|
|
307
395
|
### **channels**
|
|
308
396
|
An array of Slack channels to post to, at least one channel is required
|
|
397
|
+
### **onSuccessChannels**
|
|
398
|
+
(Optional) An array of Slack channels to post to when tests have passed. Value from `channels` is used if not defined here
|
|
399
|
+
### **onFailureChannels**
|
|
400
|
+
(Optional) An array of Slack channels to post to when tests have failed. Value from `channels` is used if not defined here
|
|
309
401
|
### **sendResults**
|
|
310
402
|
Can either be *"always"*, *"on-failure"* or *"off"*, this configuration is required:
|
|
311
403
|
* **always** - will send the results to Slack at completion of the test run
|
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,28 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
8
|
+
}
|
|
9
|
+
Object.defineProperty(o, k2, desc);
|
|
10
|
+
}) : (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
o[k2] = m[k];
|
|
13
|
+
}));
|
|
14
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
15
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
16
|
+
}) : function(o, v) {
|
|
17
|
+
o["default"] = v;
|
|
18
|
+
});
|
|
19
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
20
|
+
if (mod && mod.__esModule) return mod;
|
|
21
|
+
var result = {};
|
|
22
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
23
|
+
__setModuleDefault(result, mod);
|
|
24
|
+
return result;
|
|
25
|
+
};
|
|
3
26
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
27
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
28
|
};
|
|
@@ -9,6 +32,7 @@ const commander_1 = require("commander");
|
|
|
9
32
|
const web_api_1 = require("@slack/web-api");
|
|
10
33
|
const https_proxy_agent_1 = require("https-proxy-agent");
|
|
11
34
|
const webhook_1 = require("@slack/webhook");
|
|
35
|
+
const path_1 = __importDefault(require("path"));
|
|
12
36
|
const ResultsParser_1 = __importDefault(require("./src/ResultsParser"));
|
|
13
37
|
const SlackClient_1 = __importDefault(require("./src/SlackClient"));
|
|
14
38
|
const cli_pre_checks_1 = __importDefault(require("./src/cli/cli_pre_checks"));
|
|
@@ -87,8 +111,8 @@ async function sendResultsUsingBot({ resultSummary, slackClient, config, }) {
|
|
|
87
111
|
const result = await slackClient.sendMessage({
|
|
88
112
|
options: {
|
|
89
113
|
channelIds: config.sendUsingBot.channels,
|
|
90
|
-
customLayout:
|
|
91
|
-
customLayoutAsync:
|
|
114
|
+
customLayout: await attemptToImportLayout(config.customLayout?.source, config.customLayout?.functionName),
|
|
115
|
+
customLayoutAsync: await attemptToImportLayout(config.customLayoutAsync?.source, config.customLayoutAsync?.functionName),
|
|
92
116
|
maxNumberOfFailures: config.maxNumberOfFailures,
|
|
93
117
|
disableUnfurl: config.disableUnfurl,
|
|
94
118
|
summaryResults,
|
|
@@ -114,6 +138,23 @@ async function sendResultsUsingBot({ resultSummary, slackClient, config, }) {
|
|
|
114
138
|
}
|
|
115
139
|
throw new Error('sendUsingBot config is not set');
|
|
116
140
|
}
|
|
141
|
+
async function attemptToImportLayout(source, functionName) {
|
|
142
|
+
var _a;
|
|
143
|
+
if (source && functionName) {
|
|
144
|
+
try {
|
|
145
|
+
const importPath = path_1.default.resolve(source);
|
|
146
|
+
const layout = await (_a = importPath, Promise.resolve().then(() => __importStar(require(_a))));
|
|
147
|
+
if (layout.default[functionName]) {
|
|
148
|
+
return layout.default[functionName];
|
|
149
|
+
}
|
|
150
|
+
console.error(`Function [${functionName}] was not found in [${source}]`);
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
console.error(error);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
return undefined;
|
|
157
|
+
}
|
|
117
158
|
function replaceEnvVars(originalMeta) {
|
|
118
159
|
const newMeta = [];
|
|
119
160
|
// eslint-disable-next-line no-restricted-syntax
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ResultsParser.js","sourceRoot":"","sources":["../../src/ResultsParser.ts"],"names":[],"mappings":";AAAA,8BAA8B;AAC9B,yCAAyC;AACzC,sCAAsC;AACtC,qCAAqC;AACrC,2CAA2C;AAC3C,sCAAsC;;;;;;;;;;;;;;;;;;;;;;;;;AAEtC,uCAAyB;AAkCzB,MAAqB,aAAa;IACxB,MAAM,CAAc;IAE5B;QACE,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAAgB;QACtC,MAAM,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,UAAU,GAAe,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAEhD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,IAAI,CAAC,CAAC;QAC5D,KAAK,MAAM,KAAK,IAAI,UAAU,CAAC,MAAM,EAAE;YACrC,4CAA4C;YAC5C,MAAM,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;SAC3C;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QAC1C,MAAM,OAAO,GAAmB;YAC9B,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,QAAQ;YACjC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,UAAU;YACnC,KAAK,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK;YAC7B,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,OAAO;YACjC,QAAQ;YACR,KAAK,EAAE,EAAE;SACV,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE;YAC/B,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;SAC7D;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,MAAW,EAAE,OAAe;QAC/C,IAAI,WAAW,GAAG,EAAE,CAAC;QAErB,yBAAyB;QACzB,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE;YAC5B,WAAW,GAAG,MAAM,IAAI,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"ResultsParser.js","sourceRoot":"","sources":["../../src/ResultsParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ declare class SlackReporter implements Reporter {
|
|
|
7
7
|
private meta;
|
|
8
8
|
private resultsParser;
|
|
9
9
|
private sendResults;
|
|
10
|
-
private
|
|
10
|
+
private onSuccessSlackChannels;
|
|
11
|
+
private onFailureSlackChannels;
|
|
11
12
|
private slackLogLevel;
|
|
12
13
|
private slackOAuthToken;
|
|
13
14
|
private slackWebHookUrl;
|
|
@@ -17,7 +17,8 @@ class SlackReporter {
|
|
|
17
17
|
meta = [];
|
|
18
18
|
resultsParser;
|
|
19
19
|
sendResults = 'on-failure';
|
|
20
|
-
|
|
20
|
+
onSuccessSlackChannels = [];
|
|
21
|
+
onFailureSlackChannels = [];
|
|
21
22
|
slackLogLevel;
|
|
22
23
|
slackOAuthToken;
|
|
23
24
|
slackWebHookUrl;
|
|
@@ -47,7 +48,10 @@ class SlackReporter {
|
|
|
47
48
|
this.sendResults = slackReporterConfig.sendResults || 'always';
|
|
48
49
|
this.customLayout = slackReporterConfig.layout;
|
|
49
50
|
this.customLayoutAsync = slackReporterConfig.layoutAsync;
|
|
50
|
-
this.
|
|
51
|
+
this.onSuccessSlackChannels
|
|
52
|
+
= slackReporterConfig.onSuccessChannels || slackReporterConfig.channels;
|
|
53
|
+
this.onFailureSlackChannels
|
|
54
|
+
= slackReporterConfig.onFailureChannels || slackReporterConfig.channels;
|
|
51
55
|
this.maxNumberOfFailuresToShow
|
|
52
56
|
= slackReporterConfig.maxNumberOfFailuresToShow || 10;
|
|
53
57
|
this.slackOAuthToken = slackReporterConfig.slackOAuthToken || undefined;
|
|
@@ -72,9 +76,9 @@ class SlackReporter {
|
|
|
72
76
|
const resultSummary = await this.resultsParser.getParsedResults(this.suite.allTests());
|
|
73
77
|
resultSummary.meta = this.meta;
|
|
74
78
|
const maxRetry = Math.max(...resultSummary.tests.map((o) => o.retry));
|
|
75
|
-
|
|
76
|
-
&&
|
|
77
|
-
|
|
79
|
+
const testsFailed = resultSummary.tests.some((z) => (z.status === 'failed' || z.status === 'timedOut')
|
|
80
|
+
&& z.retry === maxRetry);
|
|
81
|
+
if (this.sendResults === 'on-failure' && !testsFailed) {
|
|
78
82
|
this.log('⏩ Slack reporter - no failures found');
|
|
79
83
|
return;
|
|
80
84
|
}
|
|
@@ -97,9 +101,12 @@ class SlackReporter {
|
|
|
97
101
|
logLevel: this.slackLogLevel || web_api_1.LogLevel.DEBUG,
|
|
98
102
|
agent,
|
|
99
103
|
}));
|
|
104
|
+
const slackChannels = testsFailed
|
|
105
|
+
? this.onFailureSlackChannels
|
|
106
|
+
: this.onSuccessSlackChannels;
|
|
100
107
|
const result = await slackClient.sendMessage({
|
|
101
108
|
options: {
|
|
102
|
-
channelIds:
|
|
109
|
+
channelIds: slackChannels,
|
|
103
110
|
customLayout: this.customLayout,
|
|
104
111
|
customLayoutAsync: this.customLayoutAsync,
|
|
105
112
|
maxNumberOfFailures: this.maxNumberOfFailuresToShow,
|
|
@@ -155,10 +162,22 @@ class SlackReporter {
|
|
|
155
162
|
message: "❌ \"sendResults\" is not valid. Expecting one of ['always', 'on-failure', 'off'].",
|
|
156
163
|
};
|
|
157
164
|
}
|
|
158
|
-
|
|
165
|
+
const noSuccessChannelsProvided = this.sendResults === 'always'
|
|
166
|
+
&& (!this.onSuccessSlackChannels
|
|
167
|
+
|| this.onSuccessSlackChannels.length === 0);
|
|
168
|
+
const noFailureChannelsProvided = ['always', 'on-failure'].includes(this.sendResults)
|
|
169
|
+
&& (!this.onFailureSlackChannels
|
|
170
|
+
|| this.onFailureSlackChannels.length === 0);
|
|
171
|
+
if (noSuccessChannelsProvided) {
|
|
159
172
|
return {
|
|
160
173
|
okToProceed: false,
|
|
161
|
-
message: '❌ Slack channel(s) was not provided in the config',
|
|
174
|
+
message: '❌ Slack channel(s) for successful tests notifications was not provided in the config',
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
if (noFailureChannelsProvided) {
|
|
178
|
+
return {
|
|
179
|
+
okToProceed: false,
|
|
180
|
+
message: '❌ Slack channel(s) for failed tests notifications was not provided in the config',
|
|
162
181
|
};
|
|
163
182
|
}
|
|
164
183
|
if (this.customLayout && typeof this.customLayout !== 'function') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SlackReporter.js","sourceRoot":"","sources":["../../src/SlackReporter.ts"],"names":[],"mappings":";;;;;AASA,4CAAqD;AACrD,yDAAoD;AACpD,4CAAiD;AACjD,oEAA4C;AAC5C,gEAAwC;AACxC,8EAAsD;AAEtD,MAAM,aAAa;IACT,YAAY,CAAuB;IAEnC,iBAAiB,CAAuB;IAExC,yBAAyB,CAAS;IAElC,YAAY,CAAU;IAEtB,IAAI,GAA0C,EAAE,CAAC;IAEjD,aAAa,CAAgB;IAE7B,WAAW,GAAoC,YAAY,CAAC;IAE5D,
|
|
1
|
+
{"version":3,"file":"SlackReporter.js","sourceRoot":"","sources":["../../src/SlackReporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -38,6 +38,12 @@ const doPreChecks = async (jsonResultsPath, configFile) => {
|
|
|
38
38
|
message: `Config file is not valid: ${parseResult.error.message ?? JSON.stringify(parseResult.error, null, 2)}`,
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
|
+
if (config.customLayout?.source && !fileExists(config.customLayout?.source)) {
|
|
42
|
+
return {
|
|
43
|
+
status: 'error',
|
|
44
|
+
message: `Custom layout was not found in path: ${config.customLayout.source}`,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
41
47
|
if (config.sendUsingWebhook && config.sendUsingBot) {
|
|
42
48
|
return {
|
|
43
49
|
status: 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli_pre_checks.js","sourceRoot":"","sources":["../../../src/cli/cli_pre_checks.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAwD;AACxD,gDAAwB;AACxB,6CAAwD;AAEjD,MAAM,WAAW,GAAG,KAAK,EAC9B,eAAuB,EACvB,UAAkB,EAOjB,EAAE;IACH,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;QAChC,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,qCAAqC,eAAe;qEACE;SAChE,CAAC;KACH;IAED,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;QAC3B,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,+BAA+B,UAAU,EAAE;SACrD,CAAC;KACH;IAED,MAAM,WAAW,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC1E,IAAI,MAAkB,CAAC;IACvB,IAAI;QACF,MAAM,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC;QAC/B,WAAW,CAAC,IAAI,GAAG,yBAAY,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC9C,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;KAC5B;IAAC,OAAO,KAAK,EAAE;QACd,WAAW,CAAC,OAAO,GAAG,KAAK,CAAC;QAC5B,WAAW,CAAC,KAAK,GAAG,KAAK,CAAC;KAC3B;IAED,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE;QACxB,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,6BACP,WAAW,CAAC,KAAK,CAAC,OAAO,IAAI,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CACxE,EAAE;SACH,CAAC;KACH;IAED,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY,EAAE;QAClD,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EACL,0FAA0F;SAC7F,CAAC;KACH;IAED,IAAI,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,YAAY,EAAE;QAClD,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EACL,kFAAkF;SACrF,CAAC;KACH;IAED,IAAI,CAAC,MAAM,CAAC,gBAAgB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;QACpD,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EACL,6EAA6E;SAChF,CAAC;KACH;IAED,IAAI,MAAM,CAAC,YAAY,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE;QAClE,OAAO;YACL,MAAM,EAAE,OAAO;YACf,OAAO,EAAE,qDAAqD;SAC/D,CAAC;KACH;IAED,OAAO;QACL,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,cAAI,CAAC,OAAO,CAAC,eAAe,CAAC;QACvC,UAAU,EAAE,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC;QACpC,MAAM,EAAE,WAAW,CAAC,IAAI;KACzB,CAAC;AACJ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cli_pre_checks.js","sourceRoot":"","sources":["../../../src/cli/cli_pre_checks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED