@workflow/cli 5.0.0-beta.46 → 5.0.0-beta.48
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/commands/cancel.d.ts +10 -1
- package/dist/commands/cancel.d.ts.map +1 -1
- package/dist/commands/cancel.js +20 -7
- package/dist/commands/inspect-flag-forwarding.test.d.ts +2 -0
- package/dist/commands/inspect-flag-forwarding.test.d.ts.map +1 -0
- package/dist/commands/inspect-flag-forwarding.test.js +121 -0
- package/dist/commands/inspect-flag-scope.test.d.ts +2 -0
- package/dist/commands/inspect-flag-scope.test.d.ts.map +1 -0
- package/dist/commands/inspect-flag-scope.test.js +161 -0
- package/dist/commands/inspect.d.ts +13 -1
- package/dist/commands/inspect.d.ts.map +1 -1
- package/dist/commands/inspect.js +70 -10
- package/dist/commands/start.d.ts +1 -1
- package/dist/commands/web.d.ts +1 -1
- package/dist/lib/bulk-cancel.d.ts +15 -2
- package/dist/lib/bulk-cancel.d.ts.map +1 -1
- package/dist/lib/bulk-cancel.js +49 -18
- package/dist/lib/bulk-cancel.test.js +80 -8
- package/dist/lib/config/types.d.ts +6 -1
- package/dist/lib/config/types.d.ts.map +1 -1
- package/dist/lib/config/types.js +1 -1
- package/dist/lib/inspect/attribute-filter.d.ts +15 -0
- package/dist/lib/inspect/attribute-filter.d.ts.map +1 -0
- package/dist/lib/inspect/attribute-filter.js +51 -0
- package/dist/lib/inspect/attribute-filter.test.d.ts +2 -0
- package/dist/lib/inspect/attribute-filter.test.d.ts.map +1 -0
- package/dist/lib/inspect/attribute-filter.test.js +65 -0
- package/dist/lib/inspect/errors.d.ts +28 -0
- package/dist/lib/inspect/errors.d.ts.map +1 -1
- package/dist/lib/inspect/errors.js +59 -1
- package/dist/lib/inspect/errors.test.d.ts +2 -0
- package/dist/lib/inspect/errors.test.d.ts.map +1 -0
- package/dist/lib/inspect/errors.test.js +48 -0
- package/dist/lib/inspect/flag-bounds.d.ts +57 -0
- package/dist/lib/inspect/flag-bounds.d.ts.map +1 -0
- package/dist/lib/inspect/flag-bounds.js +112 -0
- package/dist/lib/inspect/flag-bounds.test.d.ts +2 -0
- package/dist/lib/inspect/flag-bounds.test.d.ts.map +1 -0
- package/dist/lib/inspect/flag-bounds.test.js +126 -0
- package/dist/lib/inspect/flags.d.ts +1 -1
- package/dist/lib/inspect/flags.d.ts.map +1 -1
- package/dist/lib/inspect/flags.js +5 -2
- package/dist/lib/inspect/hydration.d.ts.map +1 -1
- package/dist/lib/inspect/hydration.js +2 -1
- package/dist/lib/inspect/output.d.ts +10 -0
- package/dist/lib/inspect/output.d.ts.map +1 -1
- package/dist/lib/inspect/output.js +138 -24
- package/dist/lib/inspect/output.test.js +223 -2
- package/package.json +13 -13
|
@@ -3,6 +3,15 @@ export default class Cancel extends BaseCommand {
|
|
|
3
3
|
static description: string;
|
|
4
4
|
static aliases: string[];
|
|
5
5
|
static examples: string[];
|
|
6
|
+
/**
|
|
7
|
+
* Recorded in `run()` so `catch()` can tell a Vercel 403 from any other
|
|
8
|
+
* one. oclif hands `catch` the error alone, with no parsed flags.
|
|
9
|
+
*
|
|
10
|
+
* Assigned after `this.parse()`, so a `catch` reached by a parse failure
|
|
11
|
+
* sees `undefined`. That costs nothing: a parse failure is not an API
|
|
12
|
+
* error, so there is no 403 to classify.
|
|
13
|
+
*/
|
|
14
|
+
private backend?;
|
|
6
15
|
catch(error: any): Promise<void>;
|
|
7
16
|
static args: {
|
|
8
17
|
readonly runId: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
@@ -25,7 +34,7 @@ export default class Cancel extends BaseCommand {
|
|
|
25
34
|
noBrowser: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
26
35
|
localUi: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
27
36
|
standalone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
28
|
-
sort: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
37
|
+
sort: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
29
38
|
interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
30
39
|
};
|
|
31
40
|
run(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"cancel.d.ts","sourceRoot":"","sources":["../../src/commands/cancel.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAczC,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,WAAW;IAC7C,MAAM,CAAC,WAAW,SAC4C;IAE9D,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAKb;IAEF;;;;;;;OAOG;IACH,OAAO,CAAC,OAAO,CAAC,CAAS;IAEnB,KAAK,CAAC,KAAK,EAAE,GAAG;IActB,MAAM,CAAC,IAAI;;MAKA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;MAmCV;IAEW,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAyDlC"}
|
package/dist/commands/cancel.js
CHANGED
|
@@ -4,9 +4,9 @@ import { cancelRun } from '@workflow/core/runtime';
|
|
|
4
4
|
import { WorkflowRunStatusSchema } from '@workflow/world';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
6
|
import { BaseCommand } from '../base.js';
|
|
7
|
-
import { CANCELLABLE_STATUSES, CLI_CANCEL_REASON, performBulkCancel, validateBulkCancelLimit, } from '../lib/bulk-cancel.js';
|
|
7
|
+
import { BULK_CANCEL_MAX_LIMIT, BULK_CANCEL_MIN_LIMIT, CANCELLABLE_STATUSES, CLI_CANCEL_REASON, performBulkCancel, validateBulkCancelLimit, } from '../lib/bulk-cancel.js';
|
|
8
8
|
import { LOGGING_CONFIG, logger } from '../lib/config/log.js';
|
|
9
|
-
import {
|
|
9
|
+
import { reportActionableApiError } from '../lib/inspect/errors.js';
|
|
10
10
|
import { cliFlags } from '../lib/inspect/flags.js';
|
|
11
11
|
import { setupCliWorld } from '../lib/inspect/setup.js';
|
|
12
12
|
export default class Cancel extends BaseCommand {
|
|
@@ -18,12 +18,24 @@ export default class Cancel extends BaseCommand {
|
|
|
18
18
|
'$ workflow cancel --status=running --workflowName=myWorkflow',
|
|
19
19
|
'$ workflow cancel --status=running -y',
|
|
20
20
|
];
|
|
21
|
+
/**
|
|
22
|
+
* Recorded in `run()` so `catch()` can tell a Vercel 403 from any other
|
|
23
|
+
* one. oclif hands `catch` the error alone, with no parsed flags.
|
|
24
|
+
*
|
|
25
|
+
* Assigned after `this.parse()`, so a `catch` reached by a parse failure
|
|
26
|
+
* sees `undefined`. That costs nothing: a parse failure is not an API
|
|
27
|
+
* error, so there is no 403 to classify.
|
|
28
|
+
*/
|
|
29
|
+
backend;
|
|
21
30
|
async catch(error) {
|
|
22
|
-
|
|
23
|
-
|
|
31
|
+
// Print the errors that name something the caller can fix. Only the plan
|
|
32
|
+
// gate was handled before, so an argument the World rejected locally —
|
|
33
|
+
// `--limit` above the listing cap, say — reached oclif's default handler
|
|
34
|
+
// and exited 1 with nothing on screen unless -v was set.
|
|
35
|
+
if (reportActionableApiError(error, this.backend)) {
|
|
24
36
|
process.exit(1);
|
|
25
37
|
}
|
|
26
|
-
|
|
38
|
+
if (LOGGING_CONFIG.VERBOSE_MODE) {
|
|
27
39
|
console.error(error);
|
|
28
40
|
}
|
|
29
41
|
throw error;
|
|
@@ -54,7 +66,7 @@ export default class Cancel extends BaseCommand {
|
|
|
54
66
|
helpLabel: '-n, --workflowName',
|
|
55
67
|
}),
|
|
56
68
|
limit: Flags.integer({
|
|
57
|
-
description:
|
|
69
|
+
description: `Max runs to cancel in bulk mode (${BULK_CANCEL_MIN_LIMIT}-${BULK_CANCEL_MAX_LIMIT})`,
|
|
58
70
|
required: false,
|
|
59
71
|
default: 50,
|
|
60
72
|
helpGroup: 'Bulk Cancel',
|
|
@@ -72,6 +84,7 @@ export default class Cancel extends BaseCommand {
|
|
|
72
84
|
};
|
|
73
85
|
async run() {
|
|
74
86
|
const { flags, args } = await this.parse(Cancel);
|
|
87
|
+
this.backend = flags.backend;
|
|
75
88
|
const world = await setupCliWorld(flags, this.config.version);
|
|
76
89
|
if (!world) {
|
|
77
90
|
throw new Error('Failed to connect to backend. Check your configuration.');
|
|
@@ -132,4 +145,4 @@ async function promptConfirm(message) {
|
|
|
132
145
|
});
|
|
133
146
|
});
|
|
134
147
|
}
|
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2NhbmNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsaUJBQWlCLEVBQ2pCLGlCQUFpQixFQUNqQix1QkFBdUIsR0FDeEIsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlELE9BQU8sRUFDTCxzQ0FBc0MsRUFDdEMsbUNBQW1DLEdBQ3BDLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLDJEQUEyRCxDQUFDO0lBRTlELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRCQUE0QjtRQUM1QixvQ0FBb0M7UUFDcEMsOERBQThEO1FBQzlELHVDQUF1QztLQUN4QyxDQUFDO0lBRUYsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFVO1FBQ3BCLElBQUksbUNBQW1D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Q0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVhZGxpbmUgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gJ0BvY2xpZi9jb3JlJztcbmltcG9ydCB7IGNhbmNlbFJ1biB9IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3J1bnRpbWUnO1xuaW1wb3J0IHsgV29ya2Zsb3dSdW5TdGF0dXNTY2hlbWEgfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IEJhc2VDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS5qcyc7XG5pbXBvcnQge1xuICBDQU5DRUxMQUJMRV9TVEFUVVNFUyxcbiAgQ0xJX0NBTkNFTF9SRUFTT04sXG4gIHBlcmZvcm1CdWxrQ2FuY2VsLFxuICB2YWxpZGF0ZUJ1bGtDYW5jZWxMaW1pdCxcbn0gZnJvbSAnLi4vbGliL2J1bGstY2FuY2VsLmpzJztcbmltcG9ydCB7IExPR0dJTkdfQ09ORklHLCBsb2dnZXIgfSBmcm9tICcuLi9saWIvY29uZmlnL2xvZy5qcyc7XG5pbXBvcnQge1xuICBnZXRPYnNlcnZhYmlsaXR5VXBncmFkZVJlcXVpcmVkTWVzc2FnZSxcbiAgaXNPYnNlcnZhYmlsaXR5VXBncmFkZVJlcXVpcmVkRXJyb3IsXG59IGZyb20gJy4uL2xpYi9pbnNwZWN0L2Vycm9ycy5qcyc7XG5pbXBvcnQgeyBjbGlGbGFncyB9IGZyb20gJy4uL2xpYi9pbnNwZWN0L2ZsYWdzLmpzJztcbmltcG9ydCB7IHNldHVwQ2xpV29ybGQgfSBmcm9tICcuLi9saWIvaW5zcGVjdC9zZXR1cC5qcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIENhbmNlbCBleHRlbmRzIEJhc2VDb21tYW5kIHtcbiAgc3RhdGljIGRlc2NyaXB0aW9uID1cbiAgICAnQ2FuY2VsIGEgd29ya2Zsb3cgcnVuLCBvciBidWxrLWNhbmNlbCBydW5zIGJ5IHN0YXR1cy9uYW1lJztcblxuICBzdGF0aWMgYWxpYXNlcyA9IFsnYyddO1xuXG4gIHN0YXRpYyBleGFtcGxlcyA9IFtcbiAgICAnJCB3b3JrZmxvdyBjYW5jZWwgPHJ1bi1pZD4nLFxuICAgICckIHdvcmtmbG93IGNhbmNlbCAtLXN0YXR1cz1ydW5uaW5nJyxcbiAgICAnJCB3b3JrZmxvdyBjYW5jZWwgLS1zdGF0dXM9cnVubmluZyAtLXdvcmtmbG93TmFtZT1teVdvcmtmbG93JyxcbiAgICAnJCB3b3JrZmxvdyBjYW5jZWwgLS1zdGF0dXM9cnVubmluZyAteScsXG4gIF07XG5cbiAgYXN5bmMgY2F0Y2goZXJyb3I6IGFueSkge1xuICAgIGlmIChpc09ic2VydmFiaWxpdHlVcGdyYWRlUmVxdWlyZWRFcnJvcihlcnJvcikpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihnZXRPYnNlcnZhYmlsaXR5VXBncmFkZVJlcXVpcmVkTWVzc2FnZSgpKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9IGVsc2UgaWYgKExPR0dJTkdfQ09ORklHLlZFUkJPU0VfTU9ERSkge1xuICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgfVxuICAgIHRocm93IGVycm9yO1xuICB9XG5cbiAgc3RhdGljIGFyZ3MgPSB7XG4gICAgcnVuSWQ6IEFyZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnSUQgb2YgdGhlIHJ1biB0byBjYW5jZWwgKG9taXQgZm9yIGJ1bGsgbW9kZSB3aXRoIGZpbHRlcnMpJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICB9KSxcbiAgfSBhcyBjb25zdDtcblxuICBzdGF0aWMgZmxhZ3MgPSB7XG4gICAgLi4uY2xpRmxhZ3MsXG4gICAgc3RhdHVzOiBGbGFncy5zdHJpbmcoe1xuICAgICAgLy8gT25seSBjYW5jZWxsYWJsZSBzdGF0dXNlcyBhcmUgb2ZmZXJlZDogY2FuY2VsbGluZyBhIHRlcm1pbmFsIHJ1blxuICAgICAgLy8gKGNvbXBsZXRlZCAvIGZhaWxlZCAvIGNhbmNlbGxlZCkgaXMgYSBuby1vcCwgc28gcGlubmluZyBvbmUgd291bGQgbGlzdFxuICAgICAgLy8gdGhlIHNhbWUgcGFnZSBvbiBldmVyeSByZXJ1biBhbmQgbmV2ZXIgYWR2YW5jZS5cbiAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVyIHJ1bnMgYnkgc3RhdHVzIGZvciBidWxrIGNhbmNlbCAocGVuZGluZyBvciBydW5uaW5nKScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBvcHRpb25zOiBbLi4uQ0FOQ0VMTEFCTEVfU1RBVFVTRVNdLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLS1zdGF0dXMnLFxuICAgIH0pLFxuICAgIHdvcmtmbG93TmFtZTogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRmlsdGVyIHJ1bnMgYnkgd29ya2Zsb3cgbmFtZSBmb3IgYnVsayBjYW5jZWwnLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgY2hhcjogJ24nLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLW4sIC0td29ya2Zsb3dOYW1lJyxcbiAgICB9KSxcbiAgICBsaW1pdDogRmxhZ3MuaW50ZWdlcih7XG4gICAgICBkZXNjcmlwdGlvbjogJ01heCBydW5zIHRvIGNhbmNlbCBpbiBidWxrIG1vZGUgKDEtNTAwKScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiA1MCxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy0tbGltaXQnLFxuICAgICAgaGVscFZhbHVlOiAnTlVNQkVSJyxcbiAgICB9KSxcbiAgICBjb25maXJtOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2tpcCBpbnRlcmFjdGl2ZSBjb25maXJtYXRpb24gcHJvbXB0JyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICd5JyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLXksIC0tY29uZmlybScsXG4gICAgfSksXG4gIH07XG5cbiAgcHVibGljIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzLCBhcmdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENhbmNlbCk7XG5cbiAgICBjb25zdCB3b3JsZCA9IGF3YWl0IHNldHVwQ2xpV29ybGQoZmxhZ3MsIHRoaXMuY29uZmlnLnZlcnNpb24pO1xuICAgIGlmICghd29ybGQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0ZhaWxlZCB0byBjb25uZWN0IHRvIGJhY2tlbmQuIENoZWNrIHlvdXIgY29uZmlndXJhdGlvbi4nXG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIFNpbmdsZS1ydW4gY2FuY2VsIChleGlzdGluZyBiZWhhdmlvcilcbiAgICBpZiAoYXJncy5ydW5JZCkge1xuICAgICAgYXdhaXQgY2FuY2VsUnVuKHdvcmxkLCBhcmdzLnJ1bklkLCB7XG4gICAgICAgIGNhbmNlbFJlYXNvbjogQ0xJX0NBTkNFTF9SRUFTT04sXG4gICAgICB9KTtcbiAgICAgIGxvZ2dlci5sb2coY2hhbGsuZ3JlZW4oYENhbmNlbGxlZCBydW4gJHthcmdzLnJ1bklkfWApKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBCdWxrIG1vZGUgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGZpbHRlclxuICAgIGlmICghZmxhZ3Muc3RhdHVzICYmICFmbGFncy53b3JrZmxvd05hbWUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgJ1Byb3ZpZGUgYSBydW4gSUQgb3IgdXNlIC0tc3RhdHVzLy0td29ya2Zsb3dOYW1lIHRvIGJ1bGsgY2FuY2VsLlxcbicgK1xuICAgICAgICAgICdFeGFtcGxlczpcXG4nICtcbiAgICAgICAgICAnICB3b3JrZmxvdyBjYW5jZWwgPHJ1bi1pZD5cXG4nICtcbiAgICAgICAgICAnICB3b3JrZmxvdyBjYW5jZWwgLS1zdGF0dXM9cnVubmluZ1xcbicgK1xuICAgICAgICAgICcgIHdvcmtmbG93IGNhbmNlbCAtLXN0YXR1cz1ydW5uaW5nIC0td29ya2Zsb3dOYW1lPW15V29ya2Zsb3cnXG4gICAgICApO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpbWl0ID0gZmxhZ3MubGltaXQgPz8gNTA7XG4gICAgY29uc3QgbGltaXRFcnJvciA9IHZhbGlkYXRlQnVsa0NhbmNlbExpbWl0KGxpbWl0KTtcbiAgICBpZiAobGltaXRFcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKGxpbWl0RXJyb3IpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIGNvbnN0IHN0YXR1cyA9IGZsYWdzLnN0YXR1c1xuICAgICAgPyBXb3JrZmxvd1J1blN0YXR1c1NjaGVtYS5wYXJzZShmbGFncy5zdGF0dXMpXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHsgZXhpdENvZGUgfSA9IGF3YWl0IHBlcmZvcm1CdWxrQ2FuY2VsKHtcbiAgICAgIHdvcmxkLFxuICAgICAgc3RhdHVzLFxuICAgICAgd29ya2Zsb3dOYW1lOiBmbGFncy53b3JrZmxvd05hbWUsXG4gICAgICBsaW1pdCxcbiAgICAgIGNvbmZpcm06IGZsYWdzLmNvbmZpcm0sXG4gICAgICBsb2dnZXIsXG4gICAgICBwcm9tcHRDb25maXJtLFxuICAgIH0pO1xuXG4gICAgaWYgKGV4aXRDb2RlICE9PSAwKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoZXhpdENvZGUpO1xuICAgIH1cbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBwcm9tcHRDb25maXJtKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAvLyBOb24tVFRZOiBhYm9ydCBzaW5jZSB1c2VyIGNhbm5vdCBjb25maXJtIGludGVyYWN0aXZlbHkgKHVzZSAteS8tLWNvbmZpcm0gdG8gc2tpcCBwcm9tcHQpXG4gIGlmICghcHJvY2Vzcy5zdGRpbi5pc1RUWSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIGNvbnN0IHJsID0gcmVhZGxpbmUuY3JlYXRlSW50ZXJmYWNlKHtcbiAgICBpbnB1dDogcHJvY2Vzcy5zdGRpbixcbiAgICBvdXRwdXQ6IHByb2Nlc3Muc3Rkb3V0LFxuICB9KTtcblxuICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcbiAgICBybC5xdWVzdGlvbihgJHttZXNzYWdlfSBbeS9OXSBgLCAoYW5zd2VyKSA9PiB7XG4gICAgICBybC5jbG9zZSgpO1xuICAgICAgcmVzb2x2ZShhbnN3ZXIudHJpbSgpLnRvTG93ZXJDYXNlKCkgPT09ICd5Jyk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FuY2VsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL2NhbmNlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxlQUFlLENBQUM7QUFDckMsT0FBTyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFDTCxxQkFBcUIsRUFDckIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLHVCQUF1QixHQUN4QixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxNQUFNLENBQUMsT0FBTyxPQUFPLE1BQU8sU0FBUSxXQUFXO0lBQzdDLE1BQU0sQ0FBQyxXQUFXLEdBQ2hCLDJEQUEyRCxDQUFDO0lBRTlELE1BQU0sQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUV2QixNQUFNLENBQUMsUUFBUSxHQUFHO1FBQ2hCLDRCQUE0QjtRQUM1QixvQ0FBb0M7UUFDcEMsOERBQThEO1FBQzlELHVDQUF1QztLQUN4QyxDQUFDO0lBRUY7Ozs7Ozs7T0FPRztJQUNLLE9BQU8sQ0FBVTtJQUV6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QUN6QixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFRCxNQUFNLEVBQUUsR0FBRyxRQUFRLENBQUMsZUFBZSxDQUFDO1FBQ2xDLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSztRQUNwQixNQUFNLEVBQUUsT0FBTyxDQUFDLE1BQU07S0FDdkIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLE9BQU8sQ0FBVSxDQUFDLE9BQU8sRUFBRSxFQUFFO1FBQ3RDLEVBQUUsQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQzFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgcmVhZGxpbmUgZnJvbSAnbm9kZTpyZWFkbGluZSc7XG5pbXBvcnQgeyBBcmdzLCBGbGFncyB9IGZyb20gJ0BvY2xpZi9jb3JlJztcbmltcG9ydCB7IGNhbmNlbFJ1biB9IGZyb20gJ0B3b3JrZmxvdy9jb3JlL3J1bnRpbWUnO1xuaW1wb3J0IHsgV29ya2Zsb3dSdW5TdGF0dXNTY2hlbWEgfSBmcm9tICdAd29ya2Zsb3cvd29ybGQnO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB7IEJhc2VDb21tYW5kIH0gZnJvbSAnLi4vYmFzZS5qcyc7XG5pbXBvcnQge1xuICBCVUxLX0NBTkNFTF9NQVhfTElNSVQsXG4gIEJVTEtfQ0FOQ0VMX01JTl9MSU1JVCxcbiAgQ0FOQ0VMTEFCTEVfU1RBVFVTRVMsXG4gIENMSV9DQU5DRUxfUkVBU09OLFxuICBwZXJmb3JtQnVsa0NhbmNlbCxcbiAgdmFsaWRhdGVCdWxrQ2FuY2VsTGltaXQsXG59IGZyb20gJy4uL2xpYi9idWxrLWNhbmNlbC5qcyc7XG5pbXBvcnQgeyBMT0dHSU5HX0NPTkZJRywgbG9nZ2VyIH0gZnJvbSAnLi4vbGliL2NvbmZpZy9sb2cuanMnO1xuaW1wb3J0IHsgcmVwb3J0QWN0aW9uYWJsZUFwaUVycm9yIH0gZnJvbSAnLi4vbGliL2luc3BlY3QvZXJyb3JzLmpzJztcbmltcG9ydCB7IGNsaUZsYWdzIH0gZnJvbSAnLi4vbGliL2luc3BlY3QvZmxhZ3MuanMnO1xuaW1wb3J0IHsgc2V0dXBDbGlXb3JsZCB9IGZyb20gJy4uL2xpYi9pbnNwZWN0L3NldHVwLmpzJztcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQ2FuY2VsIGV4dGVuZHMgQmFzZUNvbW1hbmQge1xuICBzdGF0aWMgZGVzY3JpcHRpb24gPVxuICAgICdDYW5jZWwgYSB3b3JrZmxvdyBydW4sIG9yIGJ1bGstY2FuY2VsIHJ1bnMgYnkgc3RhdHVzL25hbWUnO1xuXG4gIHN0YXRpYyBhbGlhc2VzID0gWydjJ107XG5cbiAgc3RhdGljIGV4YW1wbGVzID0gW1xuICAgICckIHdvcmtmbG93IGNhbmNlbCA8cnVuLWlkPicsXG4gICAgJyQgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcnLFxuICAgICckIHdvcmtmbG93IGNhbmNlbCAtLXN0YXR1cz1ydW5uaW5nIC0td29ya2Zsb3dOYW1lPW15V29ya2Zsb3cnLFxuICAgICckIHdvcmtmbG93IGNhbmNlbCAtLXN0YXR1cz1ydW5uaW5nIC15JyxcbiAgXTtcblxuICAvKipcbiAgICogUmVjb3JkZWQgaW4gYHJ1bigpYCBzbyBgY2F0Y2goKWAgY2FuIHRlbGwgYSBWZXJjZWwgNDAzIGZyb20gYW55IG90aGVyXG4gICAqIG9uZS4gb2NsaWYgaGFuZHMgYGNhdGNoYCB0aGUgZXJyb3IgYWxvbmUsIHdpdGggbm8gcGFyc2VkIGZsYWdzLlxuICAgKlxuICAgKiBBc3NpZ25lZCBhZnRlciBgdGhpcy5wYXJzZSgpYCwgc28gYSBgY2F0Y2hgIHJlYWNoZWQgYnkgYSBwYXJzZSBmYWlsdXJlXG4gICAqIHNlZXMgYHVuZGVmaW5lZGAuIFRoYXQgY29zdHMgbm90aGluZzogYSBwYXJzZSBmYWlsdXJlIGlzIG5vdCBhbiBBUElcbiAgICogZXJyb3IsIHNvIHRoZXJlIGlzIG5vIDQwMyB0byBjbGFzc2lmeS5cbiAgICovXG4gIHByaXZhdGUgYmFja2VuZD86IHN0cmluZztcblxuICBhc3luYyBjYXRjaChlcnJvcjogYW55KSB7XG4gICAgLy8gUHJpbnQgdGhlIGVycm9ycyB0aGF0IG5hbWUgc29tZXRoaW5nIHRoZSBjYWxsZXIgY2FuIGZpeC4gT25seSB0aGUgcGxhblxuICAgIC8vIGdhdGUgd2FzIGhhbmRsZWQgYmVmb3JlLCBzbyBhbiBhcmd1bWVudCB0aGUgV29ybGQgcmVqZWN0ZWQgbG9jYWxseSDigJRcbiAgICAvLyBgLS1saW1pdGAgYWJvdmUgdGhlIGxpc3RpbmcgY2FwLCBzYXkg4oCUIHJlYWNoZWQgb2NsaWYncyBkZWZhdWx0IGhhbmRsZXJcbiAgICAvLyBhbmQgZXhpdGVkIDEgd2l0aCBub3RoaW5nIG9uIHNjcmVlbiB1bmxlc3MgLXYgd2FzIHNldC5cbiAgICBpZiAocmVwb3J0QWN0aW9uYWJsZUFwaUVycm9yKGVycm9yLCB0aGlzLmJhY2tlbmQpKSB7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuICAgIGlmIChMT0dHSU5HX0NPTkZJRy5WRVJCT1NFX01PREUpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuXG4gIHN0YXRpYyBhcmdzID0ge1xuICAgIHJ1bklkOiBBcmdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0lEIG9mIHRoZSBydW4gdG8gY2FuY2VsIChvbWl0IGZvciBidWxrIG1vZGUgd2l0aCBmaWx0ZXJzKScsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgfSksXG4gIH0gYXMgY29uc3Q7XG5cbiAgc3RhdGljIGZsYWdzID0ge1xuICAgIC4uLmNsaUZsYWdzLFxuICAgIHN0YXR1czogRmxhZ3Muc3RyaW5nKHtcbiAgICAgIC8vIE9ubHkgY2FuY2VsbGFibGUgc3RhdHVzZXMgYXJlIG9mZmVyZWQ6IGNhbmNlbGxpbmcgYSB0ZXJtaW5hbCBydW5cbiAgICAgIC8vIChjb21wbGV0ZWQgLyBmYWlsZWQgLyBjYW5jZWxsZWQpIGlzIGEgbm8tb3AsIHNvIHBpbm5pbmcgb25lIHdvdWxkIGxpc3RcbiAgICAgIC8vIHRoZSBzYW1lIHBhZ2Ugb24gZXZlcnkgcmVydW4gYW5kIG5ldmVyIGFkdmFuY2UuXG4gICAgICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBydW5zIGJ5IHN0YXR1cyBmb3IgYnVsayBjYW5jZWwgKHBlbmRpbmcgb3IgcnVubmluZyknLFxuICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgb3B0aW9uczogWy4uLkNBTkNFTExBQkxFX1NUQVRVU0VTXSxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy0tc3RhdHVzJyxcbiAgICB9KSxcbiAgICB3b3JrZmxvd05hbWU6IEZsYWdzLnN0cmluZyh7XG4gICAgICBkZXNjcmlwdGlvbjogJ0ZpbHRlciBydW5zIGJ5IHdvcmtmbG93IG5hbWUgZm9yIGJ1bGsgY2FuY2VsJyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICduJyxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy1uLCAtLXdvcmtmbG93TmFtZScsXG4gICAgfSksXG4gICAgbGltaXQ6IEZsYWdzLmludGVnZXIoe1xuICAgICAgZGVzY3JpcHRpb246IGBNYXggcnVucyB0byBjYW5jZWwgaW4gYnVsayBtb2RlICgke0JVTEtfQ0FOQ0VMX01JTl9MSU1JVH0tJHtCVUxLX0NBTkNFTF9NQVhfTElNSVR9KWAsXG4gICAgICByZXF1aXJlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiA1MCxcbiAgICAgIGhlbHBHcm91cDogJ0J1bGsgQ2FuY2VsJyxcbiAgICAgIGhlbHBMYWJlbDogJy0tbGltaXQnLFxuICAgICAgaGVscFZhbHVlOiAnTlVNQkVSJyxcbiAgICB9KSxcbiAgICBjb25maXJtOiBGbGFncy5ib29sZWFuKHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnU2tpcCBpbnRlcmFjdGl2ZSBjb25maXJtYXRpb24gcHJvbXB0JyxcbiAgICAgIHJlcXVpcmVkOiBmYWxzZSxcbiAgICAgIGNoYXI6ICd5JyxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgaGVscEdyb3VwOiAnQnVsayBDYW5jZWwnLFxuICAgICAgaGVscExhYmVsOiAnLXksIC0tY29uZmlybScsXG4gICAgfSksXG4gIH07XG5cbiAgcHVibGljIGFzeW5jIHJ1bigpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCB7IGZsYWdzLCBhcmdzIH0gPSBhd2FpdCB0aGlzLnBhcnNlKENhbmNlbCk7XG4gICAgdGhpcy5iYWNrZW5kID0gZmxhZ3MuYmFja2VuZDtcblxuICAgIGNvbnN0IHdvcmxkID0gYXdhaXQgc2V0dXBDbGlXb3JsZChmbGFncywgdGhpcy5jb25maWcudmVyc2lvbik7XG4gICAgaWYgKCF3b3JsZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnRmFpbGVkIHRvIGNvbm5lY3QgdG8gYmFja2VuZC4gQ2hlY2sgeW91ciBjb25maWd1cmF0aW9uLidcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gU2luZ2xlLXJ1biBjYW5jZWwgKGV4aXN0aW5nIGJlaGF2aW9yKVxuICAgIGlmIChhcmdzLnJ1bklkKSB7XG4gICAgICBhd2FpdCBjYW5jZWxSdW4od29ybGQsIGFyZ3MucnVuSWQsIHtcbiAgICAgICAgY2FuY2VsUmVhc29uOiBDTElfQ0FOQ0VMX1JFQVNPTixcbiAgICAgIH0pO1xuICAgICAgbG9nZ2VyLmxvZyhjaGFsay5ncmVlbihgQ2FuY2VsbGVkIHJ1biAke2FyZ3MucnVuSWR9YCkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEJ1bGsgbW9kZSByZXF1aXJlcyBhdCBsZWFzdCBvbmUgZmlsdGVyXG4gICAgaWYgKCFmbGFncy5zdGF0dXMgJiYgIWZsYWdzLndvcmtmbG93TmFtZSkge1xuICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAnUHJvdmlkZSBhIHJ1biBJRCBvciB1c2UgLS1zdGF0dXMvLS13b3JrZmxvd05hbWUgdG8gYnVsayBjYW5jZWwuXFxuJyArXG4gICAgICAgICAgJ0V4YW1wbGVzOlxcbicgK1xuICAgICAgICAgICcgIHdvcmtmbG93IGNhbmNlbCA8cnVuLWlkPlxcbicgK1xuICAgICAgICAgICcgIHdvcmtmbG93IGNhbmNlbCAtLXN0YXR1cz1ydW5uaW5nXFxuJyArXG4gICAgICAgICAgJyAgd29ya2Zsb3cgY2FuY2VsIC0tc3RhdHVzPXJ1bm5pbmcgLS13b3JrZmxvd05hbWU9bXlXb3JrZmxvdydcbiAgICAgICk7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgY29uc3QgbGltaXQgPSBmbGFncy5saW1pdCA/PyA1MDtcbiAgICBjb25zdCBsaW1pdEVycm9yID0gdmFsaWRhdGVCdWxrQ2FuY2VsTGltaXQobGltaXQpO1xuICAgIGlmIChsaW1pdEVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IobGltaXRFcnJvcik7XG4gICAgICBwcm9jZXNzLmV4aXQoMSk7XG4gICAgfVxuXG4gICAgY29uc3Qgc3RhdHVzID0gZmxhZ3Muc3RhdHVzXG4gICAgICA/IFdvcmtmbG93UnVuU3RhdHVzU2NoZW1hLnBhcnNlKGZsYWdzLnN0YXR1cylcbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgeyBleGl0Q29kZSB9ID0gYXdhaXQgcGVyZm9ybUJ1bGtDYW5jZWwoe1xuICAgICAgd29ybGQsXG4gICAgICBzdGF0dXMsXG4gICAgICB3b3JrZmxvd05hbWU6IGZsYWdzLndvcmtmbG93TmFtZSxcbiAgICAgIGxpbWl0LFxuICAgICAgY29uZmlybTogZmxhZ3MuY29uZmlybSxcbiAgICAgIGxvZ2dlcixcbiAgICAgIHByb21wdENvbmZpcm0sXG4gICAgfSk7XG5cbiAgICBpZiAoZXhpdENvZGUgIT09IDApIHtcbiAgICAgIHByb2Nlc3MuZXhpdChleGl0Q29kZSk7XG4gICAgfVxuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHByb21wdENvbmZpcm0obWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIC8vIE5vbi1UVFk6IGFib3J0IHNpbmNlIHVzZXIgY2Fubm90IGNvbmZpcm0gaW50ZXJhY3RpdmVseSAodXNlIC15Ly0tY29uZmlybSB0byBza2lwIHByb21wdClcbiAgaWYgKCFwcm9jZXNzLnN0ZGluLmlzVFRZKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgcmwgPSByZWFkbGluZS5jcmVhdGVJbnRlcmZhY2Uoe1xuICAgIGlucHV0OiBwcm9jZXNzLnN0ZGluLFxuICAgIG91dHB1dDogcHJvY2Vzcy5zdGRvdXQsXG4gIH0pO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xuICAgIHJsLnF1ZXN0aW9uKGAke21lc3NhZ2V9IFt5L05dIGAsIChhbnN3ZXIpID0+IHtcbiAgICAgIHJsLmNsb3NlKCk7XG4gICAgICByZXNvbHZlKGFuc3dlci50cmltKCkudG9Mb3dlckNhc2UoKSA9PT0gJ3knKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect-flag-forwarding.test.d.ts","sourceRoot":"","sources":["../../src/commands/inspect-flag-forwarding.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { Config } from '@oclif/core';
|
|
3
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
import { toInspectOptions } from './inspect.js';
|
|
5
|
+
const state = vi.hoisted(() => ({
|
|
6
|
+
setupCliWorld: vi.fn(),
|
|
7
|
+
listEvents: vi.fn(),
|
|
8
|
+
listAttributes: vi.fn(),
|
|
9
|
+
}));
|
|
10
|
+
vi.mock('../lib/inspect/setup.js', () => ({
|
|
11
|
+
setupCliWorld: state.setupCliWorld,
|
|
12
|
+
}));
|
|
13
|
+
// Only the two listings these cases dispatch to are replaced; the rest of the
|
|
14
|
+
// module is kept so the command's imports still resolve.
|
|
15
|
+
vi.mock('../lib/inspect/output.js', async (importOriginal) => ({
|
|
16
|
+
...(await importOriginal()),
|
|
17
|
+
listEvents: state.listEvents,
|
|
18
|
+
listAttributes: state.listAttributes,
|
|
19
|
+
}));
|
|
20
|
+
const { default: Inspect } = await import('./inspect.js');
|
|
21
|
+
const VALID_RUN = 'wrun_01K4BZQ5T2J8HXFM6WD3PNAVCE';
|
|
22
|
+
const VALID_HOOK = 'hook_01K4BZQ5T2J8HXFM6WD3PNAVCE';
|
|
23
|
+
const runInspect = async (argv) => {
|
|
24
|
+
const config = await Config.load(fileURLToPath(new URL('../..', import.meta.url)));
|
|
25
|
+
const exit = vi
|
|
26
|
+
.spyOn(process, 'exit')
|
|
27
|
+
.mockImplementation((() => undefined));
|
|
28
|
+
try {
|
|
29
|
+
await Inspect.run(argv, config).catch(() => undefined);
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
exit.mockRestore();
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
beforeEach(() => {
|
|
36
|
+
state.setupCliWorld.mockReset().mockResolvedValue({});
|
|
37
|
+
state.listEvents.mockReset().mockResolvedValue(undefined);
|
|
38
|
+
state.listAttributes.mockReset().mockResolvedValue(undefined);
|
|
39
|
+
process.exitCode = 0;
|
|
40
|
+
});
|
|
41
|
+
/**
|
|
42
|
+
* A flag that parses, clears validation, and is then dropped before any
|
|
43
|
+
* listing reads it is indistinguishable from a successful unfiltered answer.
|
|
44
|
+
* Unit tests on the listings cannot see it: they pass options directly and so
|
|
45
|
+
* skip the projection where the drop happens. These go through `Inspect.run`.
|
|
46
|
+
*/
|
|
47
|
+
describe('flag forwarding through the command', () => {
|
|
48
|
+
it('forwards --hookId to the events listing', async () => {
|
|
49
|
+
await runInspect(['events', '--runId', VALID_RUN, '--hookId', VALID_HOOK]);
|
|
50
|
+
expect(state.listEvents).toHaveBeenCalled();
|
|
51
|
+
expect(state.listEvents.mock.calls[0][1]).toMatchObject({
|
|
52
|
+
hookId: VALID_HOOK,
|
|
53
|
+
runId: VALID_RUN,
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
it('forwards --stepId to the events listing', async () => {
|
|
57
|
+
await runInspect([
|
|
58
|
+
'events',
|
|
59
|
+
'--runId',
|
|
60
|
+
VALID_RUN,
|
|
61
|
+
'--stepId',
|
|
62
|
+
'step_01K4BZQ5T2J8HXFM6WD3PNAVCE',
|
|
63
|
+
]);
|
|
64
|
+
expect(state.listEvents.mock.calls[0][1]).toMatchObject({
|
|
65
|
+
stepId: 'step_01K4BZQ5T2J8HXFM6WD3PNAVCE',
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
// The warning `listAttributes` prints for this flag was unreachable from
|
|
69
|
+
// the CLI while the projection dropped it.
|
|
70
|
+
it('forwards --hookId far enough for the attributes listing to warn', async () => {
|
|
71
|
+
await runInspect(['attributes', '--hookId', VALID_HOOK]);
|
|
72
|
+
expect(state.listAttributes.mock.calls[0][1]).toMatchObject({
|
|
73
|
+
hookId: VALID_HOOK,
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
/**
|
|
78
|
+
* The projection itself, pinned key by key. Every filtering flag the listings
|
|
79
|
+
* read has to appear here; `--hookId` was declared as a flag and read by
|
|
80
|
+
* `listEvents` but never copied across.
|
|
81
|
+
*/
|
|
82
|
+
describe('toInspectOptions', () => {
|
|
83
|
+
it('copies every filtering flag through', () => {
|
|
84
|
+
const options = toInspectOptions({
|
|
85
|
+
json: true,
|
|
86
|
+
runId: VALID_RUN,
|
|
87
|
+
stepId: 'step_x',
|
|
88
|
+
hookId: 'hook_x',
|
|
89
|
+
cursor: 'c',
|
|
90
|
+
sort: 'asc',
|
|
91
|
+
limit: 25,
|
|
92
|
+
workflowName: 'orderWorkflow',
|
|
93
|
+
status: 'failed',
|
|
94
|
+
since: '7d',
|
|
95
|
+
until: '1h',
|
|
96
|
+
withData: true,
|
|
97
|
+
decrypt: true,
|
|
98
|
+
backend: 'vercel',
|
|
99
|
+
interactive: true,
|
|
100
|
+
}, { tenant: 'acme' });
|
|
101
|
+
expect(options).toEqual({
|
|
102
|
+
json: true,
|
|
103
|
+
runId: VALID_RUN,
|
|
104
|
+
stepId: 'step_x',
|
|
105
|
+
hookId: 'hook_x',
|
|
106
|
+
cursor: 'c',
|
|
107
|
+
sort: 'asc',
|
|
108
|
+
limit: 25,
|
|
109
|
+
workflowName: 'orderWorkflow',
|
|
110
|
+
attributes: { tenant: 'acme' },
|
|
111
|
+
status: 'failed',
|
|
112
|
+
since: '7d',
|
|
113
|
+
until: '1h',
|
|
114
|
+
withData: true,
|
|
115
|
+
decrypt: true,
|
|
116
|
+
backend: 'vercel',
|
|
117
|
+
interactive: true,
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdC1mbGFnLWZvcndhcmRpbmcudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tYW5kcy9pbnNwZWN0LWZsYWctZm9yd2FyZGluZy50ZXN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFaEQsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLGFBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ3RCLFVBQVUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0lBQ25CLGNBQWMsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFO0NBQ3hCLENBQUMsQ0FBQyxDQUFDO0FBRUosRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtDQUNuQyxDQUFDLENBQUMsQ0FBQztBQUVKLDhFQUE4RTtBQUM5RSx5REFBeUQ7QUFDekQsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzdELEdBQUcsQ0FBQyxNQUFNLGNBQWMsRUFBNkMsQ0FBQztJQUN0RSxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7SUFDNUIsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjO0NBQ3JDLENBQUMsQ0FBQyxDQUFDO0FBRUosTUFBTSxFQUFFLE9BQU8s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QUk7WUFDZCxPQUFPLEVBQUUsSUFBSTtZQUNiLE9BQU8sRUFBRSxRQUFRO1lBQ2pCLFdBQVcsRUFBRSxJQUFJO1NBQ2xCLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQG9jbGlmL2NvcmUnO1xuaW1wb3J0IHsgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcbmltcG9ydCB7IHRvSW5zcGVjdE9wdGlvbnMgfSBmcm9tICcuL2luc3BlY3QuanMnO1xuXG5jb25zdCBzdGF0ZSA9IHZpLmhvaXN0ZWQoKCkgPT4gKHtcbiAgc2V0dXBDbGlXb3JsZDogdmkuZm4oKSxcbiAgbGlzdEV2ZW50czogdmkuZm4oKSxcbiAgbGlzdEF0dHJpYnV0ZXM6IHZpLmZuKCksXG59KSk7XG5cbnZpLm1vY2soJy4uL2xpYi9pbnNwZWN0L3NldHVwLmpzJywgKCkgPT4gKHtcbiAgc2V0dXBDbGlXb3JsZDogc3RhdGUuc2V0dXBDbGlXb3JsZCxcbn0pKTtcblxuLy8gT25seSB0aGUgdHdvIGxpc3RpbmdzIHRoZXNlIGNhc2VzIGRpc3BhdGNoIHRvIGFyZSByZXBsYWNlZDsgdGhlIHJlc3Qgb2YgdGhlXG4vLyBtb2R1bGUgaXMga2VwdCBzbyB0aGUgY29tbWFuZCdzIGltcG9ydHMgc3RpbGwgcmVzb2x2ZS5cbnZpLm1vY2soJy4uL2xpYi9pbnNwZWN0L291dHB1dC5qcycsIGFzeW5jIChpbXBvcnRPcmlnaW5hbCkgPT4gKHtcbiAgLi4uKGF3YWl0IGltcG9ydE9yaWdpbmFsPHR5cGVvZiBpbXBvcnQoJy4uL2xpYi9pbnNwZWN0L291dHB1dC5qcycpPigpKSxcbiAgbGlzdEV2ZW50czogc3RhdGUubGlzdEV2ZW50cyxcbiAgbGlzdEF0dHJpYnV0ZXM6IHN0YXRlLmxpc3RBdHRyaWJ1dGVzLFxufSkpO1xuXG5jb25zdCB7IGRlZmF1bHQ6IEluc3BlY3QgfSA9IGF3YWl0IGltcG9ydCgnLi9pbnNwZWN0LmpzJyk7XG5cbmNvbnN0IFZBTElEX1JVTiA9ICd3cnVuXzAxSzRCWlE1VDJKOEhYRk02V0QzUE5BVkNFJztcbmNvbnN0IFZBTElEX0hPT0sgPSAnaG9va18wMUs0QlpRNVQySjhIWEZNNldEM1BOQVZDRSc7XG5cbmNvbnN0IHJ1bkluc3BlY3QgPSBhc3luYyAoYXJndjogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgY29uc3QgY29uZmlnID0gYXdhaXQgQ29uZmlnLmxvYWQoXG4gICAgZmlsZVVSTFRvUGF0aChuZXcgVVJMKCcuLi8uLicsIGltcG9ydC5tZXRhLnVybCkpXG4gICk7XG4gIGNvbnN0IGV4aXQgPSB2aVxuICAgIC5zcHlPbihwcm9jZXNzLCAnZXhpdCcpXG4gICAgLm1vY2tJbXBsZW1lbnRhdGlvbigoKCkgPT4gdW5kZWZpbmVkKSBhcyBuZXZlcik7XG4gIHRyeSB7XG4gICAgYXdhaXQgSW5zcGVjdC5ydW4oYXJndiwgY29uZmlnKS5jYXRjaCgoKSA9PiB1bmRlZmluZWQpO1xuICB9IGZpbmFsbHkge1xuICAgIGV4aXQubW9ja1Jlc3RvcmUoKTtcbiAgfVxufTtcblxuYmVmb3JlRWFjaCgoKSA9PiB7XG4gIHN0YXRlLnNldHVwQ2xpV29ybGQubW9ja1Jlc2V0KCkubW9ja1Jlc29sdmVkVmFsdWUoe30pO1xuICBzdGF0ZS5saXN0RXZlbnRzLm1vY2tSZXNldCgpLm1vY2tSZXNvbHZlZFZhbHVlKHVuZGVmaW5lZCk7XG4gIHN0YXRlLmxpc3RBdHRyaWJ1dGVzLm1vY2tSZXNldCgpLm1vY2tSZXNvbHZlZFZhbHVlKHVuZGVmaW5lZCk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAwO1xufSk7XG5cbi8qKlxuICogQSBmbGFnIHRoYXQgcGFyc2VzLCBjbGVhcnMgdmFsaWRhdGlvbiwgYW5kIGlzIHRoZW4gZHJvcHBlZCBiZWZvcmUgYW55XG4gKiBsaXN0aW5nIHJlYWRzIGl0IGlzIGluZGlzdGluZ3Vpc2hhYmxlIGZyb20gYSBzdWNjZXNzZnVsIHVuZmlsdGVyZWQgYW5zd2VyLlxuICogVW5pdCB0ZXN0cyBvbiB0aGUgbGlzdGluZ3MgY2Fubm90IHNlZSBpdDogdGhleSBwYXNzIG9wdGlvbnMgZGlyZWN0bHkgYW5kIHNvXG4gKiBza2lwIHRoZSBwcm9qZWN0aW9uIHdoZXJlIHRoZSBkcm9wIGhhcHBlbnMuIFRoZXNlIGdvIHRocm91Z2ggYEluc3BlY3QucnVuYC5cbiAqL1xuZGVzY3JpYmUoJ2ZsYWcgZm9yd2FyZGluZyB0aHJvdWdoIHRoZSBjb21tYW5kJywgKCkgPT4ge1xuICBpdCgnZm9yd2FyZHMgLS1ob29rSWQgdG8gdGhlIGV2ZW50cyBsaXN0aW5nJywgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IHJ1bkluc3BlY3QoWydldmVudHMnLCAnLS1ydW5JZCcsIFZBTElEX1JVTiwgJy0taG9va0lkJywgVkFMSURfSE9PS10pO1xuXG4gICAgZXhwZWN0KHN0YXRlLmxpc3RFdmVudHMpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgICBleHBlY3Qoc3RhdGUubGlzdEV2ZW50cy5tb2NrLmNhbGxzWzBdWzFdKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIGhvb2tJZDogVkFMSURfSE9PSyxcbiAgICAgIHJ1bklkOiBWQUxJRF9SVU4sXG4gICAgfSk7XG4gIH0pO1xuXG4gIGl0KCdmb3J3YXJkcyAtLXN0ZXBJZCB0byB0aGUgZXZlbnRzIGxpc3RpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgYXdhaXQgcnVuSW5zcGVjdChbXG4gICAgICAnZXZlbnRzJyxcbiAgICAgICctLXJ1bklkJyxcbiAgICAgIFZBTElEX1JVTixcbiAgICAgICctLXN0ZXBJZCcsXG4gICAgICAnc3RlcF8wMUs0QlpRNVQySjhIWEZNNldEM1BOQVZDRScsXG4gICAgXSk7XG5cbiAgICBleHBlY3Qoc3RhdGUubGlzdEV2ZW50cy5tb2NrLmNhbGxzWzBdWzFdKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIHN0ZXBJZDogJ3N0ZXBfMDFLNEJaUTVUMko4SFhGTTZXRDNQTkFWQ0UnLFxuICAgIH0pO1xuICB9KTtcblxuICAvLyBUaGUgd2FybmluZyBgbGlzdEF0dHJpYnV0ZXNgIHByaW50cyBmb3IgdGhpcyBmbGFnIHdhcyB1bnJlYWNoYWJsZSBmcm9tXG4gIC8vIHRoZSBDTEkgd2hpbGUgdGhlIHByb2plY3Rpb24gZHJvcHBlZCBpdC5cbiAgaXQoJ2ZvcndhcmRzIC0taG9va0lkIGZhciBlbm91Z2ggZm9yIHRoZSBhdHRyaWJ1dGVzIGxpc3RpbmcgdG8gd2FybicsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBydW5JbnNwZWN0KFsnYXR0cmlidXRlcycsICctLWhvb2tJZCcsIFZBTElEX0hPT0tdKTtcblxuICAgIGV4cGVjdChzdGF0ZS5saXN0QXR0cmlidXRlcy5tb2NrLmNhbGxzWzBdWzFdKS50b01hdGNoT2JqZWN0KHtcbiAgICAgIGhvb2tJZDogVkFMSURfSE9PSyxcbiAgICB9KTtcbiAgfSk7XG59KTtcblxuLyoqXG4gKiBUaGUgcHJvamVjdGlvbiBpdHNlbGYsIHBpbm5lZCBrZXkgYnkga2V5LiBFdmVyeSBmaWx0ZXJpbmcgZmxhZyB0aGUgbGlzdGluZ3NcbiAqIHJlYWQgaGFzIHRvIGFwcGVhciBoZXJlOyBgLS1ob29rSWRgIHdhcyBkZWNsYXJlZCBhcyBhIGZsYWcgYW5kIHJlYWQgYnlcbiAqIGBsaXN0RXZlbnRzYCBidXQgbmV2ZXIgY29waWVkIGFjcm9zcy5cbiAqL1xuZGVzY3JpYmUoJ3RvSW5zcGVjdE9wdGlvbnMnLCAoKSA9PiB7XG4gIGl0KCdjb3BpZXMgZXZlcnkgZmlsdGVyaW5nIGZsYWcgdGhyb3VnaCcsICgpID0+IHtcbiAgICBjb25zdCBvcHRpb25zID0gdG9JbnNwZWN0T3B0aW9ucyhcbiAgICAgIHtcbiAgICAgICAganNvbjogdHJ1ZSxcbiAgICAgICAgcnVuSWQ6IFZBTElEX1JVTixcbiAgICAgICAgc3RlcElkOiAnc3RlcF94JyxcbiAgICAgICAgaG9va0lkOiAnaG9va194JyxcbiAgICAgICAgY3Vyc29yOiAnYycsXG4gICAgICAgIHNvcnQ6ICdhc2MnLFxuICAgICAgICBsaW1pdDogMjUsXG4gICAgICAgIHdvcmtmbG93TmFtZTogJ29yZGVyV29ya2Zsb3cnLFxuICAgICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgICAgICBzaW5jZTogJzdkJyxcbiAgICAgICAgdW50aWw6ICcxaCcsXG4gICAgICAgIHdpdGhEYXRhOiB0cnVlLFxuICAgICAgICBkZWNyeXB0OiB0cnVlLFxuICAgICAgICBiYWNrZW5kOiAndmVyY2VsJyxcbiAgICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgICB9LFxuICAgICAgeyB0ZW5hbnQ6ICdhY21lJyB9XG4gICAgKTtcblxuICAgIGV4cGVjdChvcHRpb25zKS50b0VxdWFsKHtcbiAgICAgIGpzb246IHRydWUsXG4gICAgICBydW5JZDogVkFMSURfUlVOLFxuICAgICAgc3RlcElkOiAnc3RlcF94JyxcbiAgICAgIGhvb2tJZDogJ2hvb2tfeCcsXG4gICAgICBjdXJzb3I6ICdjJyxcbiAgICAgIHNvcnQ6ICdhc2MnLFxuICAgICAgbGltaXQ6IDI1LFxuICAgICAgd29ya2Zsb3dOYW1lOiAnb3JkZXJXb3JrZmxvdycsXG4gICAgICBhdHRyaWJ1dGVzOiB7IHRlbmFudDogJ2FjbWUnIH0sXG4gICAgICBzdGF0dXM6ICdmYWlsZWQnLFxuICAgICAgc2luY2U6ICc3ZCcsXG4gICAgICB1bnRpbDogJzFoJyxcbiAgICAgIHdpdGhEYXRhOiB0cnVlLFxuICAgICAgZGVjcnlwdDogdHJ1ZSxcbiAgICAgIGJhY2tlbmQ6ICd2ZXJjZWwnLFxuICAgICAgaW50ZXJhY3RpdmU6IHRydWUsXG4gICAgfSk7XG4gIH0pO1xufSk7XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inspect-flag-scope.test.d.ts","sourceRoot":"","sources":["../../src/commands/inspect-flag-scope.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import { Config } from '@oclif/core';
|
|
3
|
+
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
|
+
const state = vi.hoisted(() => ({ setupCliWorld: vi.fn() }));
|
|
5
|
+
// The property under test is that these checks run *before* any backend work,
|
|
6
|
+
// so the setup module is replaced rather than exercised. A call to it means
|
|
7
|
+
// validation let the arguments through.
|
|
8
|
+
vi.mock('../lib/inspect/setup.js', () => ({
|
|
9
|
+
setupCliWorld: state.setupCliWorld,
|
|
10
|
+
}));
|
|
11
|
+
const { default: Inspect } = await import('./inspect.js');
|
|
12
|
+
/**
|
|
13
|
+
* Run the command and return the message it rejected with.
|
|
14
|
+
*
|
|
15
|
+
* `logError` delegates to oclif's `this.error`, which throws; that rejection
|
|
16
|
+
* is captured here. `process.exit` is stubbed because `BaseCommand.finally`
|
|
17
|
+
* calls it. Note that stubbing `process.stderr.write` to read the message
|
|
18
|
+
* instead deadlocks vitest's reporter — hence spying on the command.
|
|
19
|
+
*/
|
|
20
|
+
const runInspect = async (argv) => {
|
|
21
|
+
// `fileURLToPath`, not `.pathname`: on Windows the latter yields
|
|
22
|
+
// `/D:/a/...` — a leading slash before the drive letter — which
|
|
23
|
+
// `Config.load` cannot resolve, so it reports a missing package.json.
|
|
24
|
+
const config = await Config.load(fileURLToPath(new URL('../..', import.meta.url)));
|
|
25
|
+
const messages = [];
|
|
26
|
+
const logError = vi
|
|
27
|
+
// `logError` is protected; the cast reaches it without widening the
|
|
28
|
+
// public surface.
|
|
29
|
+
.spyOn(Inspect.prototype, 'logError')
|
|
30
|
+
.mockImplementation((message) => {
|
|
31
|
+
messages.push(message);
|
|
32
|
+
});
|
|
33
|
+
const exit = vi
|
|
34
|
+
.spyOn(process, 'exit')
|
|
35
|
+
.mockImplementation((() => undefined));
|
|
36
|
+
try {
|
|
37
|
+
await Inspect.run(argv, config).catch(() => undefined);
|
|
38
|
+
return messages.join('\n');
|
|
39
|
+
}
|
|
40
|
+
finally {
|
|
41
|
+
exit.mockRestore();
|
|
42
|
+
logError.mockRestore();
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
const VALID_RUN = 'wrun_01K4BZQ5T2J8HXFM6WD3PNAVCE';
|
|
46
|
+
beforeEach(() => {
|
|
47
|
+
state.setupCliWorld.mockReset();
|
|
48
|
+
process.exitCode = 0;
|
|
49
|
+
});
|
|
50
|
+
describe('inspect flag validation runs before any backend setup', () => {
|
|
51
|
+
// --attribute was parsed on every resource but consumed only by the runs
|
|
52
|
+
// listing, so these returned a normal, unfiltered answer.
|
|
53
|
+
it.each([
|
|
54
|
+
['steps', ['steps', '--runId', VALID_RUN]],
|
|
55
|
+
['events', ['events', '--runId', VALID_RUN]],
|
|
56
|
+
['hooks', ['hooks']],
|
|
57
|
+
['attributes', ['attributes']],
|
|
58
|
+
])('rejects --attribute on %s without reaching a backend', async (_label, argv) => {
|
|
59
|
+
const message = await runInspect([...argv, '--attribute', 'tenant=acme']);
|
|
60
|
+
expect(message).toContain('--attribute filters run listings only');
|
|
61
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
62
|
+
});
|
|
63
|
+
it('rejects --attribute alongside a run ID', async () => {
|
|
64
|
+
const message = await runInspect([
|
|
65
|
+
'run',
|
|
66
|
+
VALID_RUN,
|
|
67
|
+
'--attribute',
|
|
68
|
+
'tenant=acme',
|
|
69
|
+
]);
|
|
70
|
+
expect(message).toContain('already names one run');
|
|
71
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
72
|
+
});
|
|
73
|
+
it.each([
|
|
74
|
+
['an out-of-range limit', ['runs', '--limit', '5000'], '--limit must be'],
|
|
75
|
+
['a malformed runId', ['steps', '--runId', 'nope'], '--runId must be'],
|
|
76
|
+
])('rejects %s', async (_label, argv, expected) => {
|
|
77
|
+
expect(await runInspect(argv)).toContain(expected);
|
|
78
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
79
|
+
});
|
|
80
|
+
it('lets --attribute through on the runs listing', async () => {
|
|
81
|
+
const message = await runInspect([
|
|
82
|
+
'runs',
|
|
83
|
+
'--attribute',
|
|
84
|
+
'tenant=acme',
|
|
85
|
+
'--backend',
|
|
86
|
+
'local',
|
|
87
|
+
]);
|
|
88
|
+
expect(message).not.toContain('--attribute');
|
|
89
|
+
expect(state.setupCliWorld).toHaveBeenCalled();
|
|
90
|
+
});
|
|
91
|
+
});
|
|
92
|
+
describe('inspect --attribute cannot reach the web UI', () => {
|
|
93
|
+
// Both of these return before `toInspectOptions` parses the filter, so the
|
|
94
|
+
// flag used to be accepted, never validated, and the view opened unfiltered.
|
|
95
|
+
it.each([
|
|
96
|
+
['--url', ['runs', '--attribute', 'tenant=acme', '--url']],
|
|
97
|
+
['--web', ['runs', '--attribute', 'tenant=acme', '--web']],
|
|
98
|
+
['the web resource', ['web', '--attribute', 'tenant=acme']],
|
|
99
|
+
])('rejects --attribute with %s', async (_label, argv) => {
|
|
100
|
+
const message = await runInspect(argv);
|
|
101
|
+
expect(message).toContain('cannot be forwarded to the web UI');
|
|
102
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
103
|
+
});
|
|
104
|
+
// Previously bypassed validation entirely on this path.
|
|
105
|
+
it('rejects a malformed pair even with --url', async () => {
|
|
106
|
+
const message = await runInspect([
|
|
107
|
+
'runs',
|
|
108
|
+
'--attribute',
|
|
109
|
+
'tenant',
|
|
110
|
+
'--url',
|
|
111
|
+
]);
|
|
112
|
+
expect(message).toContain('cannot be forwarded to the web UI');
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe('inspect --attribute conflicts and syntax', () => {
|
|
116
|
+
it('rejects --attribute with --withData', async () => {
|
|
117
|
+
const message = await runInspect([
|
|
118
|
+
'runs',
|
|
119
|
+
'--attribute',
|
|
120
|
+
'tenant=acme',
|
|
121
|
+
'--withData',
|
|
122
|
+
]);
|
|
123
|
+
expect(message).toContain('cannot be combined with --withData');
|
|
124
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
125
|
+
});
|
|
126
|
+
// Previously parsed inside toInspectOptions, after setupCliWorld, so a
|
|
127
|
+
// syntax error cost a full auth and project lookup first.
|
|
128
|
+
it.each([
|
|
129
|
+
['a missing separator', ['runs', '--attribute', 'tenant']],
|
|
130
|
+
['an empty key', ['runs', '--attribute', '=acme']],
|
|
131
|
+
])('rejects %s before backend setup', async (_label, argv) => {
|
|
132
|
+
const message = await runInspect(argv);
|
|
133
|
+
expect(message).toContain('--attribute must be key=value');
|
|
134
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
135
|
+
});
|
|
136
|
+
it('rejects more than the allowed pairs before backend setup', async () => {
|
|
137
|
+
const argv = ['runs'];
|
|
138
|
+
for (let i = 0; i < 9; i += 1)
|
|
139
|
+
argv.push('--attribute', `k${i}=v`);
|
|
140
|
+
const message = await runInspect(argv);
|
|
141
|
+
expect(message).toContain('--attribute may be given at most 8 times');
|
|
142
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
143
|
+
});
|
|
144
|
+
it('rejects a duplicate key before backend setup', async () => {
|
|
145
|
+
const message = await runInspect([
|
|
146
|
+
'runs',
|
|
147
|
+
'--attribute',
|
|
148
|
+
'tenant=a',
|
|
149
|
+
'--attribute',
|
|
150
|
+
'tenant=b',
|
|
151
|
+
]);
|
|
152
|
+
expect(message).toContain('was given more than once');
|
|
153
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
154
|
+
});
|
|
155
|
+
it('rejects a limit above the smallest listing cap', async () => {
|
|
156
|
+
const message = await runInspect(['runs', '--limit', '500']);
|
|
157
|
+
expect(message).toContain('--limit must be an integer between 1 and 100');
|
|
158
|
+
expect(state.setupCliWorld).not.toHaveBeenCalled();
|
|
159
|
+
});
|
|
160
|
+
});
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zcGVjdC1mbGFnLXNjb3BlLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvaW5zcGVjdC1mbGFnLXNjb3BlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRTlELE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFFN0QsOEVBQThFO0FBQzlFLDRFQUE0RTtBQUM1RSx3Q0FBd0M7QUFDeEMsRUFBRSxDQUFDLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxHQUFHLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLGFBQWEsRUFBRSxLQUFLLENBQUMsYUFBYTtDQUNuQyxDQUFDLENBQUMsQ0FBQztBQUVKLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFFMUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sVUFBVSxHQUFHLEtBQUssRUFBRSxJQUFjLEVBQW1CLEVBQUU7SUFDM0QsaUVBQWlFO0lBQ2pFLGdFQUFnRTtJQUNoRSxzRUFBc0U7SUFDdEUsTUFBTSxNQUFNLEdBQUcsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUM5QixhQUFhLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FDakQsQ0FBQztJQUNGLE1BQU0sUUFBUSxHQUFhLEVBQUUs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QUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0lBRUgsRUFBRSxDQUFDLGdEQUFnRCxFQUFFLEtBQUssSUFBSSxFQUFFO1FBQzlELE1BQU0sT0FBTyxHQUFHLE1BQU0sVUFBVSxDQUFDLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdELE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsOENBQThDLENBQUMsQ0FBQztRQUMxRSxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQ3JELENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmaWxlVVJMVG9QYXRoIH0gZnJvbSAnbm9kZTp1cmwnO1xuaW1wb3J0IHsgQ29uZmlnIH0gZnJvbSAnQG9jbGlmL2NvcmUnO1xuaW1wb3J0IHsgYmVmb3JlRWFjaCwgZGVzY3JpYmUsIGV4cGVjdCwgaXQsIHZpIH0gZnJvbSAndml0ZXN0JztcblxuY29uc3Qgc3RhdGUgPSB2aS5ob2lzdGVkKCgpID0+ICh7IHNldHVwQ2xpV29ybGQ6IHZpLmZuKCkgfSkpO1xuXG4vLyBUaGUgcHJvcGVydHkgdW5kZXIgdGVzdCBpcyB0aGF0IHRoZXNlIGNoZWNrcyBydW4gKmJlZm9yZSogYW55IGJhY2tlbmQgd29yayxcbi8vIHNvIHRoZSBzZXR1cCBtb2R1bGUgaXMgcmVwbGFjZWQgcmF0aGVyIHRoYW4gZXhlcmNpc2VkLiBBIGNhbGwgdG8gaXQgbWVhbnNcbi8vIHZhbGlkYXRpb24gbGV0IHRoZSBhcmd1bWVudHMgdGhyb3VnaC5cbnZpLm1vY2soJy4uL2xpYi9pbnNwZWN0L3NldHVwLmpzJywgKCkgPT4gKHtcbiAgc2V0dXBDbGlXb3JsZDogc3RhdGUuc2V0dXBDbGlXb3JsZCxcbn0pKTtcblxuY29uc3QgeyBkZWZhdWx0OiBJbnNwZWN0IH0gPSBhd2FpdCBpbXBvcnQoJy4vaW5zcGVjdC5qcycpO1xuXG4vKipcbiAqIFJ1biB0aGUgY29tbWFuZCBhbmQgcmV0dXJuIHRoZSBtZXNzYWdlIGl0IHJlamVjdGVkIHdpdGguXG4gKlxuICogYGxvZ0Vycm9yYCBkZWxlZ2F0ZXMgdG8gb2NsaWYncyBgdGhpcy5lcnJvcmAsIHdoaWNoIHRocm93czsgdGhhdCByZWplY3Rpb25cbiAqIGlzIGNhcHR1cmVkIGhlcmUuIGBwcm9jZXNzLmV4aXRgIGlzIHN0dWJiZWQgYmVjYXVzZSBgQmFzZUNvbW1hbmQuZmluYWxseWBcbiAqIGNhbGxzIGl0LiBOb3RlIHRoYXQgc3R1YmJpbmcgYHByb2Nlc3Muc3RkZXJyLndyaXRlYCB0byByZWFkIHRoZSBtZXNzYWdlXG4gKiBpbnN0ZWFkIGRlYWRsb2NrcyB2aXRlc3QncyByZXBvcnRlciDigJQgaGVuY2Ugc3B5aW5nIG9uIHRoZSBjb21tYW5kLlxuICovXG5jb25zdCBydW5JbnNwZWN0ID0gYXN5bmMgKGFyZ3Y6IHN0cmluZ1tdKTogUHJvbWlzZTxzdHJpbmc+ID0+IHtcbiAgLy8gYGZpbGVVUkxUb1BhdGhgLCBub3QgYC5wYXRobmFtZWA6IG9uIFdpbmRvd3MgdGhlIGxhdHRlciB5aWVsZHNcbiAgLy8gYC9EOi9hLy4uLmAg4oCUIGEgbGVhZGluZyBzbGFzaCBiZWZvcmUgdGhlIGRyaXZlIGxldHRlciDigJQgd2hpY2hcbiAgLy8gYENvbmZpZy5sb2FkYCBjYW5ub3QgcmVzb2x2ZSwgc28gaXQgcmVwb3J0cyBhIG1pc3NpbmcgcGFja2FnZS5qc29uLlxuICBjb25zdCBjb25maWcgPSBhd2FpdCBDb25maWcubG9hZChcbiAgICBmaWxlVVJMVG9QYXRoKG5ldyBVUkwoJy4uLy4uJywgaW1wb3J0Lm1ldGEudXJsKSlcbiAgKTtcbiAgY29uc3QgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XG4gIGNvbnN0IGxvZ0Vycm9yID0gdmlcbiAgICAvLyBgbG9nRXJyb3JgIGlzIHByb3RlY3RlZDsgdGhlIGNhc3QgcmVhY2hlcyBpdCB3aXRob3V0IHdpZGVuaW5nIHRoZVxuICAgIC8vIHB1YmxpYyBzdXJmYWNlLlxuICAgIC5zcHlPbihcbiAgICAgIEluc3BlY3QucHJvdG90eXBlIGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgKG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZD4sXG4gICAgICAnbG9nRXJyb3InXG4gICAgKVxuICAgIC5tb2NrSW1wbGVtZW50YXRpb24oKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgbWVzc2FnZXMucHVzaChtZXNzYWdlKTtcbiAgICB9KTtcbiAgY29uc3QgZXhpdCA9IHZpXG4gICAgLnNweU9uKHByb2Nlc3MsICdleGl0JylcbiAgICAubW9ja0ltcGxlbWVudGF0aW9uKCgoKSA9PiB1bmRlZmluZWQpIGFzIG5ldmVyKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBJbnNwZWN0LnJ1bihhcmd2LCBjb25maWcpLmNhdGNoKCgpID0+IHVuZGVmaW5lZCk7XG4gICAgcmV0dXJuIG1lc3NhZ2VzLmpvaW4oJ1xcbicpO1xuICB9IGZpbmFsbHkge1xuICAgIGV4aXQubW9ja1Jlc3RvcmUoKTtcbiAgICBsb2dFcnJvci5tb2NrUmVzdG9yZSgpO1xuICB9XG59O1xuXG5jb25zdCBWQUxJRF9SVU4gPSAnd3J1bl8wMUs0QlpRNVQySjhIWEZNNldEM1BOQVZDRSc7XG5cbmJlZm9yZUVhY2goKCkgPT4ge1xuICBzdGF0ZS5zZXR1cENsaVdvcmxkLm1vY2tSZXNldCgpO1xuICBwcm9jZXNzLmV4aXRDb2RlID0gMDtcbn0pO1xuXG5kZXNjcmliZSgnaW5zcGVjdCBmbGFnIHZhbGlkYXRpb24gcnVucyBiZWZvcmUgYW55IGJhY2tlbmQgc2V0dXAnLCAoKSA9PiB7XG4gIC8vIC0tYXR0cmlidXRlIHdhcyBwYXJzZWQgb24gZXZlcnkgcmVzb3VyY2UgYnV0IGNvbnN1bWVkIG9ubHkgYnkgdGhlIHJ1bnNcbiAgLy8gbGlzdGluZywgc28gdGhlc2UgcmV0dXJuZWQgYSBub3JtYWwsIHVuZmlsdGVyZWQgYW5zd2VyLlxuICBpdC5lYWNoKFtcbiAgICBbJ3N0ZXBzJywgWydzdGVwcycsICctLXJ1bklkJywgVkFMSURfUlVOXV0sXG4gICAgWydldmVudHMnLCBbJ2V2ZW50cycsICctLXJ1bklkJywgVkFMSURfUlVOXV0sXG4gICAgWydob29rcycsIFsnaG9va3MnXV0sXG4gICAgWydhdHRyaWJ1dGVzJywgWydhdHRyaWJ1dGVzJ11dLFxuICBdKSgncmVqZWN0cyAtLWF0dHJpYnV0ZSBvbiAlcyB3aXRob3V0IHJlYWNoaW5nIGEgYmFja2VuZCcsIGFzeW5jIChfbGFiZWwsIGFyZ3YpID0+IHtcbiAgICBjb25zdCBtZXNzYWdlID0gYXdhaXQgcnVuSW5zcGVjdChbLi4uYXJndiwgJy0tYXR0cmlidXRlJywgJ3RlbmFudD1hY21lJ10pO1xuICAgIGV4cGVjdChtZXNzYWdlKS50b0NvbnRhaW4oJy0tYXR0cmlidXRlIGZpbHRlcnMgcnVuIGxpc3RpbmdzIG9ubHknKTtcbiAgICBleHBlY3Qoc3RhdGUuc2V0dXBDbGlXb3JsZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlamVjdHMgLS1hdHRyaWJ1dGUgYWxvbmdzaWRlIGEgcnVuIElEJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBydW5JbnNwZWN0KFtcbiAgICAgICdydW4nLFxuICAgICAgVkFMSURfUlVOLFxuICAgICAgJy0tYXR0cmlidXRlJyxcbiAgICAgICd0ZW5hbnQ9YWNtZScsXG4gICAgXSk7XG4gICAgZXhwZWN0KG1lc3NhZ2UpLnRvQ29udGFpbignYWxyZWFkeSBuYW1lcyBvbmUgcnVuJyk7XG4gICAgZXhwZWN0KHN0YXRlLnNldHVwQ2xpV29ybGQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0LmVhY2goW1xuICAgIFsnYW4gb3V0LW9mLXJhbmdlIGxpbWl0JywgWydydW5zJywgJy0tbGltaXQnLCAnNTAwMCddLCAnLS1saW1pdCBtdXN0IGJlJ10sXG4gICAgWydhIG1hbGZvcm1lZCBydW5JZCcsIFsnc3RlcHMnLCAnLS1ydW5JZCcsICdub3BlJ10sICctLXJ1bklkIG11c3QgYmUnXSxcbiAgXSkoJ3JlamVjdHMgJXMnLCBhc3luYyAoX2xhYmVsLCBhcmd2LCBleHBlY3RlZCkgPT4ge1xuICAgIGV4cGVjdChhd2FpdCBydW5JbnNwZWN0KGFyZ3YpKS50b0NvbnRhaW4oZXhwZWN0ZWQpO1xuICAgIGV4cGVjdChzdGF0ZS5zZXR1cENsaVdvcmxkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICBpdCgnbGV0cyAtLWF0dHJpYnV0ZSB0aHJvdWdoIG9uIHRoZSBydW5zIGxpc3RpbmcnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHJ1bkluc3BlY3QoW1xuICAgICAgJ3J1bnMnLFxuICAgICAgJy0tYXR0cmlidXRlJyxcbiAgICAgICd0ZW5hbnQ9YWNtZScsXG4gICAgICAnLS1iYWNrZW5kJyxcbiAgICAgICdsb2NhbCcsXG4gICAgXSk7XG4gICAgZXhwZWN0KG1lc3NhZ2UpLm5vdC50b0NvbnRhaW4oJy0tYXR0cmlidXRlJyk7XG4gICAgZXhwZWN0KHN0YXRlLnNldHVwQ2xpV29ybGQpLnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG59KTtcblxuZGVzY3JpYmUoJ2luc3BlY3QgLS1hdHRyaWJ1dGUgY2Fubm90IHJlYWNoIHRoZSB3ZWIgVUknLCAoKSA9PiB7XG4gIC8vIEJvdGggb2YgdGhlc2UgcmV0dXJuIGJlZm9yZSBgdG9JbnNwZWN0T3B0aW9uc2AgcGFyc2VzIHRoZSBmaWx0ZXIsIHNvIHRoZVxuICAvLyBmbGFnIHVzZWQgdG8gYmUgYWNjZXB0ZWQsIG5ldmVyIHZhbGlkYXRlZCwgYW5kIHRoZSB2aWV3IG9wZW5lZCB1bmZpbHRlcmVkLlxuICBpdC5lYWNoKFtcbiAgICBbJy0tdXJsJywgWydydW5zJywgJy0tYXR0cmlidXRlJywgJ3RlbmFudD1hY21lJywgJy0tdXJsJ11dLFxuICAgIFsnLS13ZWInLCBbJ3J1bnMnLCAnLS1hdHRyaWJ1dGUnLCAndGVuYW50PWFjbWUnLCAnLS13ZWInXV0sXG4gICAgWyd0aGUgd2ViIHJlc291cmNlJywgWyd3ZWInLCAnLS1hdHRyaWJ1dGUnLCAndGVuYW50PWFjbWUnXV0sXG4gIF0pKCdyZWplY3RzIC0tYXR0cmlidXRlIHdpdGggJXMnLCBhc3luYyAoX2xhYmVsLCBhcmd2KSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHJ1bkluc3BlY3QoYXJndik7XG4gICAgZXhwZWN0KG1lc3NhZ2UpLnRvQ29udGFpbignY2Fubm90IGJlIGZvcndhcmRlZCB0byB0aGUgd2ViIFVJJyk7XG4gICAgZXhwZWN0KHN0YXRlLnNldHVwQ2xpV29ybGQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIC8vIFByZXZpb3VzbHkgYnlwYXNzZWQgdmFsaWRhdGlvbiBlbnRpcmVseSBvbiB0aGlzIHBhdGguXG4gIGl0KCdyZWplY3RzIGEgbWFsZm9ybWVkIHBhaXIgZXZlbiB3aXRoIC0tdXJsJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBydW5JbnNwZWN0KFtcbiAgICAgICdydW5zJyxcbiAgICAgICctLWF0dHJpYnV0ZScsXG4gICAgICAndGVuYW50JyxcbiAgICAgICctLXVybCcsXG4gICAgXSk7XG4gICAgZXhwZWN0KG1lc3NhZ2UpLnRvQ29udGFpbignY2Fubm90IGJlIGZvcndhcmRlZCB0byB0aGUgd2ViIFVJJyk7XG4gIH0pO1xufSk7XG5cbmRlc2NyaWJlKCdpbnNwZWN0IC0tYXR0cmlidXRlIGNvbmZsaWN0cyBhbmQgc3ludGF4JywgKCkgPT4ge1xuICBpdCgncmVqZWN0cyAtLWF0dHJpYnV0ZSB3aXRoIC0td2l0aERhdGEnLCBhc3luYyAoKSA9PiB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGF3YWl0IHJ1bkluc3BlY3QoW1xuICAgICAgJ3J1bnMnLFxuICAgICAgJy0tYXR0cmlidXRlJyxcbiAgICAgICd0ZW5hbnQ9YWNtZScsXG4gICAgICAnLS13aXRoRGF0YScsXG4gICAgXSk7XG4gICAgZXhwZWN0KG1lc3NhZ2UpLnRvQ29udGFpbignY2Fubm90IGJlIGNvbWJpbmVkIHdpdGggLS13aXRoRGF0YScpO1xuICAgIGV4cGVjdChzdGF0ZS5zZXR1cENsaVdvcmxkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcblxuICAvLyBQcmV2aW91c2x5IHBhcnNlZCBpbnNpZGUgdG9JbnNwZWN0T3B0aW9ucywgYWZ0ZXIgc2V0dXBDbGlXb3JsZCwgc28gYVxuICAvLyBzeW50YXggZXJyb3IgY29zdCBhIGZ1bGwgYXV0aCBhbmQgcHJvamVjdCBsb29rdXAgZmlyc3QuXG4gIGl0LmVhY2goW1xuICAgIFsnYSBtaXNzaW5nIHNlcGFyYXRvcicsIFsncnVucycsICctLWF0dHJpYnV0ZScsICd0ZW5hbnQnXV0sXG4gICAgWydhbiBlbXB0eSBrZXknLCBbJ3J1bnMnLCAnLS1hdHRyaWJ1dGUnLCAnPWFjbWUnXV0sXG4gIF0pKCdyZWplY3RzICVzIGJlZm9yZSBiYWNrZW5kIHNldHVwJywgYXN5bmMgKF9sYWJlbCwgYXJndikgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBydW5JbnNwZWN0KGFyZ3YpO1xuICAgIGV4cGVjdChtZXNzYWdlKS50b0NvbnRhaW4oJy0tYXR0cmlidXRlIG11c3QgYmUga2V5PXZhbHVlJyk7XG4gICAgZXhwZWN0KHN0YXRlLnNldHVwQ2xpV29ybGQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdyZWplY3RzIG1vcmUgdGhhbiB0aGUgYWxsb3dlZCBwYWlycyBiZWZvcmUgYmFja2VuZCBzZXR1cCcsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBhcmd2ID0gWydydW5zJ107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA5OyBpICs9IDEpIGFyZ3YucHVzaCgnLS1hdHRyaWJ1dGUnLCBgayR7aX09dmApO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBydW5JbnNwZWN0KGFyZ3YpO1xuICAgIGV4cGVjdChtZXNzYWdlKS50b0NvbnRhaW4oJy0tYXR0cmlidXRlIG1heSBiZSBnaXZlbiBhdCBtb3N0IDggdGltZXMnKTtcbiAgICBleHBlY3Qoc3RhdGUuc2V0dXBDbGlXb3JsZCkubm90LnRvSGF2ZUJlZW5DYWxsZWQoKTtcbiAgfSk7XG5cbiAgaXQoJ3JlamVjdHMgYSBkdXBsaWNhdGUga2V5IGJlZm9yZSBiYWNrZW5kIHNldHVwJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBydW5JbnNwZWN0KFtcbiAgICAgICdydW5zJyxcbiAgICAgICctLWF0dHJpYnV0ZScsXG4gICAgICAndGVuYW50PWEnLFxuICAgICAgJy0tYXR0cmlidXRlJyxcbiAgICAgICd0ZW5hbnQ9YicsXG4gICAgXSk7XG4gICAgZXhwZWN0KG1lc3NhZ2UpLnRvQ29udGFpbignd2FzIGdpdmVuIG1vcmUgdGhhbiBvbmNlJyk7XG4gICAgZXhwZWN0KHN0YXRlLnNldHVwQ2xpV29ybGQpLm5vdC50b0hhdmVCZWVuQ2FsbGVkKCk7XG4gIH0pO1xuXG4gIGl0KCdyZWplY3RzIGEgbGltaXQgYWJvdmUgdGhlIHNtYWxsZXN0IGxpc3RpbmcgY2FwJywgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBhd2FpdCBydW5JbnNwZWN0KFsncnVucycsICctLWxpbWl0JywgJzUwMCddKTtcbiAgICBleHBlY3QobWVzc2FnZSkudG9Db250YWluKCctLWxpbWl0IG11c3QgYmUgYW4gaW50ZWdlciBiZXR3ZWVuIDEgYW5kIDEwMCcpO1xuICAgIGV4cGVjdChzdGF0ZS5zZXR1cENsaVdvcmxkKS5ub3QudG9IYXZlQmVlbkNhbGxlZCgpO1xuICB9KTtcbn0pO1xuIl19
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { BaseCommand } from '../base.js';
|
|
2
|
+
import type { InspectCLIOptions } from '../lib/config/types.js';
|
|
2
3
|
export default class Inspect extends BaseCommand {
|
|
3
4
|
static description: string;
|
|
4
5
|
static aliases: string[];
|
|
@@ -23,12 +24,13 @@ export default class Inspect extends BaseCommand {
|
|
|
23
24
|
readonly noBrowser: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
24
25
|
readonly localUi: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
25
26
|
readonly standalone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
26
|
-
readonly sort: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
|
+
readonly sort: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
27
28
|
readonly limit: import("@oclif/core/interfaces").OptionFlag<number, import("@oclif/core/interfaces").CustomOptions>;
|
|
28
29
|
readonly interactive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
29
30
|
readonly runId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
30
31
|
readonly stepId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
31
32
|
readonly hookId: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
|
+
readonly attribute: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
32
34
|
readonly workflowName: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
33
35
|
readonly status: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
34
36
|
readonly since: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
@@ -38,4 +40,14 @@ export default class Inspect extends BaseCommand {
|
|
|
38
40
|
};
|
|
39
41
|
run(): Promise<void>;
|
|
40
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Project parsed flags onto the options the listings read.
|
|
45
|
+
*
|
|
46
|
+
* Every filtering flag must be copied through: a flag missing here parses,
|
|
47
|
+
* clears validation, and is then dropped silently, which reads as a
|
|
48
|
+
* successful unfiltered answer. `inspect-flag-forwarding.test.ts` pins the
|
|
49
|
+
* mapping, and checks it through `Inspect.run` as well as directly: a listing's
|
|
50
|
+
* own unit tests pass options in, so they cannot see a drop that happens here.
|
|
51
|
+
*/
|
|
52
|
+
export declare function toInspectOptions(flags: any, attributes: Record<string, string> | undefined): InspectCLIOptions;
|
|
41
53
|
//# sourceMappingURL=inspect.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../src/commands/inspect.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAEzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAuBhE,MAAM,CAAC,OAAO,OAAO,OAAQ,SAAQ,WAAW;IAC9C,MAAM,CAAC,WAAW,SAA6C;IAE/D,MAAM,CAAC,OAAO,WAAS;IAEvB,MAAM,CAAC,QAAQ,WAQb;IAEI,KAAK,CAAC,KAAK,EAAE,GAAG;IAgBtB,MAAM,CAAC,IAAI;;;MAmCA;IAEX,MAAM,CAAC,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAuFD;IAEE,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA2JlC;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,EACV,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAC7C,iBAAiB,CAwBnB"}
|