@salesforce/b2c-tooling-sdk 1.0.1 → 1.1.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/dist/cjs/cli/base-command.d.ts +33 -8
- package/dist/cjs/cli/base-command.js +92 -35
- package/dist/cjs/cli/base-command.js.map +1 -1
- package/dist/cjs/clients/middleware.d.ts +15 -10
- package/dist/cjs/clients/middleware.js +22 -15
- package/dist/cjs/clients/middleware.js.map +1 -1
- package/dist/cjs/clients/webdav.d.ts +22 -0
- package/dist/cjs/clients/webdav.js +46 -0
- package/dist/cjs/clients/webdav.js.map +1 -1
- package/dist/cjs/config/dw-json.d.ts +32 -0
- package/dist/cjs/config/dw-json.js.map +1 -1
- package/dist/cjs/config/mapping.js +55 -0
- package/dist/cjs/config/mapping.js.map +1 -1
- package/dist/cjs/config/sources/env-source.js +3 -1
- package/dist/cjs/config/sources/env-source.js.map +1 -1
- package/dist/cjs/config/types.d.ts +15 -0
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/safety/index.d.ts +7 -2
- package/dist/cjs/safety/index.js +5 -1
- package/dist/cjs/safety/index.js.map +1 -1
- package/dist/cjs/safety/safety-guard.d.ts +92 -0
- package/dist/cjs/safety/safety-guard.js +270 -0
- package/dist/cjs/safety/safety-guard.js.map +1 -0
- package/dist/cjs/safety/safety-middleware.d.ts +86 -1
- package/dist/cjs/safety/safety-middleware.js +165 -16
- package/dist/cjs/safety/safety-middleware.js.map +1 -1
- package/dist/cjs/safety/types.d.ts +81 -0
- package/dist/cjs/safety/types.js +16 -0
- package/dist/cjs/safety/types.js.map +1 -0
- package/dist/cjs/safety/with-confirmation.d.ts +58 -0
- package/dist/cjs/safety/with-confirmation.js +67 -0
- package/dist/cjs/safety/with-confirmation.js.map +1 -0
- package/dist/cjs/ux/confirm.d.ts +14 -0
- package/dist/cjs/ux/confirm.js +36 -0
- package/dist/cjs/ux/confirm.js.map +1 -0
- package/dist/esm/cli/base-command.d.ts +33 -8
- package/dist/esm/cli/base-command.js +92 -35
- package/dist/esm/cli/base-command.js.map +1 -1
- package/dist/esm/clients/middleware.d.ts +15 -10
- package/dist/esm/clients/middleware.js +22 -15
- package/dist/esm/clients/middleware.js.map +1 -1
- package/dist/esm/clients/webdav.d.ts +22 -0
- package/dist/esm/clients/webdav.js +46 -0
- package/dist/esm/clients/webdav.js.map +1 -1
- package/dist/esm/config/dw-json.d.ts +32 -0
- package/dist/esm/config/dw-json.js.map +1 -1
- package/dist/esm/config/mapping.js +55 -0
- package/dist/esm/config/mapping.js.map +1 -1
- package/dist/esm/config/sources/env-source.js +3 -1
- package/dist/esm/config/sources/env-source.js.map +1 -1
- package/dist/esm/config/types.d.ts +15 -0
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/safety/index.d.ts +7 -2
- package/dist/esm/safety/index.js +5 -1
- package/dist/esm/safety/index.js.map +1 -1
- package/dist/esm/safety/safety-guard.d.ts +92 -0
- package/dist/esm/safety/safety-guard.js +270 -0
- package/dist/esm/safety/safety-guard.js.map +1 -0
- package/dist/esm/safety/safety-middleware.d.ts +86 -1
- package/dist/esm/safety/safety-middleware.js +165 -16
- package/dist/esm/safety/safety-middleware.js.map +1 -1
- package/dist/esm/safety/types.d.ts +81 -0
- package/dist/esm/safety/types.js +16 -0
- package/dist/esm/safety/types.js.map +1 -0
- package/dist/esm/safety/with-confirmation.d.ts +58 -0
- package/dist/esm/safety/with-confirmation.js +67 -0
- package/dist/esm/safety/with-confirmation.js.map +1 -0
- package/dist/esm/ux/confirm.d.ts +14 -0
- package/dist/esm/ux/confirm.js +36 -0
- package/dist/esm/ux/confirm.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types for the safety evaluation system.
|
|
3
|
+
*
|
|
4
|
+
* @module safety/types
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Action that a safety evaluation can produce.
|
|
8
|
+
*
|
|
9
|
+
* - `allow`: Operation is permitted
|
|
10
|
+
* - `block`: Operation is refused
|
|
11
|
+
* - `confirm`: Operation requires interactive confirmation before proceeding
|
|
12
|
+
*/
|
|
13
|
+
export type SafetyAction = 'allow' | 'block' | 'confirm';
|
|
14
|
+
/**
|
|
15
|
+
* A safety rule that matches operations and specifies an action.
|
|
16
|
+
*
|
|
17
|
+
* Rules support three matcher types, all using glob patterns (via minimatch):
|
|
18
|
+
* - `method` + `path`: Matches HTTP requests by method and URL path
|
|
19
|
+
* - `job`: Matches job execution by job ID (extracted from OCAPI URLs)
|
|
20
|
+
* - `command`: Matches CLI commands by oclif command ID (e.g., "sandbox:delete")
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```json
|
|
24
|
+
* { "job": "sfcc-site-archive-export", "action": "allow" }
|
|
25
|
+
* { "command": "ecdn:cache:purge", "action": "confirm" }
|
|
26
|
+
* { "method": "DELETE", "path": "/code_versions/*", "action": "block" }
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export interface SafetyRule {
|
|
30
|
+
/** HTTP method pattern (e.g., "POST", "DELETE"). Omit to match any method. */
|
|
31
|
+
method?: string;
|
|
32
|
+
/** URL path glob pattern (e.g., "/jobs/*/executions"). Matched with minimatch. */
|
|
33
|
+
path?: string;
|
|
34
|
+
/** Job ID glob pattern. Matches OCAPI job execution URLs by job ID. */
|
|
35
|
+
job?: string;
|
|
36
|
+
/** CLI command ID glob pattern (e.g., "sandbox:*", "ecdn:cache:purge"). */
|
|
37
|
+
command?: string;
|
|
38
|
+
/** Action to take when this rule matches. */
|
|
39
|
+
action: SafetyAction;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* An operation being evaluated for safety.
|
|
43
|
+
*
|
|
44
|
+
* Constructed by the caller (HTTP middleware, CLI command, etc.) and passed
|
|
45
|
+
* to {@link SafetyGuard.evaluate} for rule matching.
|
|
46
|
+
*/
|
|
47
|
+
export interface SafetyOperation {
|
|
48
|
+
/** The type of operation being evaluated. */
|
|
49
|
+
type: 'http' | 'job' | 'command';
|
|
50
|
+
/** HTTP method (for http operations). */
|
|
51
|
+
method?: string;
|
|
52
|
+
/** Full request URL (for http operations). */
|
|
53
|
+
url?: string;
|
|
54
|
+
/** Parsed URL pathname (for http operations). */
|
|
55
|
+
path?: string;
|
|
56
|
+
/** Job identifier (for job operations, or extracted from http operation URLs). */
|
|
57
|
+
jobId?: string;
|
|
58
|
+
/** CLI command ID, e.g., "sandbox:delete" (for command operations). */
|
|
59
|
+
commandId?: string;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Result of evaluating an operation against safety rules.
|
|
63
|
+
*/
|
|
64
|
+
export interface SafetyEvaluation {
|
|
65
|
+
/** The action determined by evaluation. */
|
|
66
|
+
action: SafetyAction;
|
|
67
|
+
/** Human-readable explanation of why this action was chosen. */
|
|
68
|
+
reason: string;
|
|
69
|
+
/** The operation that was evaluated. */
|
|
70
|
+
operation: SafetyOperation;
|
|
71
|
+
/** The rule that matched, or undefined if the level default was used. */
|
|
72
|
+
rule?: SafetyRule;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Validated safety actions for use in rule parsing.
|
|
76
|
+
*/
|
|
77
|
+
export declare const VALID_SAFETY_ACTIONS: readonly SafetyAction[];
|
|
78
|
+
/**
|
|
79
|
+
* Check if a string is a valid SafetyAction.
|
|
80
|
+
*/
|
|
81
|
+
export declare function isValidSafetyAction(value: string): value is SafetyAction;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2
|
|
4
|
+
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Validated safety actions for use in rule parsing.
|
|
8
|
+
*/
|
|
9
|
+
export const VALID_SAFETY_ACTIONS = ['allow', 'block', 'confirm'];
|
|
10
|
+
/**
|
|
11
|
+
* Check if a string is a valid SafetyAction.
|
|
12
|
+
*/
|
|
13
|
+
export function isValidSafetyAction(value) {
|
|
14
|
+
return VALID_SAFETY_ACTIONS.includes(value);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/safety/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAgFH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA4B,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC;AAEpG;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,KAAqB,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Confirmation flow utility for safety-guarded operations.
|
|
3
|
+
*
|
|
4
|
+
* @module safety/with-confirmation
|
|
5
|
+
*/
|
|
6
|
+
import type { SafetyGuard } from './safety-guard.js';
|
|
7
|
+
import type { SafetyEvaluation } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Handler that prompts a user for confirmation.
|
|
10
|
+
*
|
|
11
|
+
* Implementations vary by context:
|
|
12
|
+
* - CLI: readline-based prompt
|
|
13
|
+
* - VS Code: `vscode.window.showWarningMessage({ modal: true })`
|
|
14
|
+
* - MCP/non-interactive: always returns `false`
|
|
15
|
+
*
|
|
16
|
+
* @param evaluation - The safety evaluation that triggered confirmation
|
|
17
|
+
* @returns true if the user confirmed, false to cancel
|
|
18
|
+
*/
|
|
19
|
+
export type ConfirmHandler = (evaluation: SafetyEvaluation) => Promise<boolean>;
|
|
20
|
+
/**
|
|
21
|
+
* Execute an operation with safety confirmation support.
|
|
22
|
+
*
|
|
23
|
+
* If the operation throws {@link SafetyConfirmationRequired}, the
|
|
24
|
+
* `confirmHandler` is called. If the user confirms, the operation
|
|
25
|
+
* is retried with a temporary exemption. If the user cancels (or
|
|
26
|
+
* the handler returns false), a {@link SafetyBlockedError} is thrown.
|
|
27
|
+
*
|
|
28
|
+
* Non-confirmation errors are re-thrown as-is.
|
|
29
|
+
*
|
|
30
|
+
* @param guard - The SafetyGuard instance
|
|
31
|
+
* @param operation - The operation to execute
|
|
32
|
+
* @param confirmHandler - Context-specific confirmation handler
|
|
33
|
+
* @returns The operation's return value
|
|
34
|
+
*
|
|
35
|
+
* @example
|
|
36
|
+
* ```typescript
|
|
37
|
+
* // CLI usage
|
|
38
|
+
* const result = await withSafetyConfirmation(
|
|
39
|
+
* guard,
|
|
40
|
+
* () => instance.ocapi.POST('/jobs/import/executions', ...),
|
|
41
|
+
* async (eval) => {
|
|
42
|
+
* if (!process.stdin.isTTY) return false;
|
|
43
|
+
* return confirm(`Safety: ${eval.reason}. Proceed?`);
|
|
44
|
+
* },
|
|
45
|
+
* );
|
|
46
|
+
*
|
|
47
|
+
* // VS Code usage
|
|
48
|
+
* const result = await withSafetyConfirmation(
|
|
49
|
+
* guard,
|
|
50
|
+
* () => runJobImport(),
|
|
51
|
+
* async (eval) => {
|
|
52
|
+
* const choice = await vscode.window.showWarningMessage(eval.reason, { modal: true }, 'Proceed');
|
|
53
|
+
* return choice === 'Proceed';
|
|
54
|
+
* },
|
|
55
|
+
* );
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export declare function withSafetyConfirmation<T>(guard: SafetyGuard, operation: () => Promise<T>, confirmHandler: ConfirmHandler): Promise<T>;
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2
|
|
4
|
+
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { SafetyBlockedError, SafetyConfirmationRequired } from './safety-middleware.js';
|
|
7
|
+
/**
|
|
8
|
+
* Execute an operation with safety confirmation support.
|
|
9
|
+
*
|
|
10
|
+
* If the operation throws {@link SafetyConfirmationRequired}, the
|
|
11
|
+
* `confirmHandler` is called. If the user confirms, the operation
|
|
12
|
+
* is retried with a temporary exemption. If the user cancels (or
|
|
13
|
+
* the handler returns false), a {@link SafetyBlockedError} is thrown.
|
|
14
|
+
*
|
|
15
|
+
* Non-confirmation errors are re-thrown as-is.
|
|
16
|
+
*
|
|
17
|
+
* @param guard - The SafetyGuard instance
|
|
18
|
+
* @param operation - The operation to execute
|
|
19
|
+
* @param confirmHandler - Context-specific confirmation handler
|
|
20
|
+
* @returns The operation's return value
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```typescript
|
|
24
|
+
* // CLI usage
|
|
25
|
+
* const result = await withSafetyConfirmation(
|
|
26
|
+
* guard,
|
|
27
|
+
* () => instance.ocapi.POST('/jobs/import/executions', ...),
|
|
28
|
+
* async (eval) => {
|
|
29
|
+
* if (!process.stdin.isTTY) return false;
|
|
30
|
+
* return confirm(`Safety: ${eval.reason}. Proceed?`);
|
|
31
|
+
* },
|
|
32
|
+
* );
|
|
33
|
+
*
|
|
34
|
+
* // VS Code usage
|
|
35
|
+
* const result = await withSafetyConfirmation(
|
|
36
|
+
* guard,
|
|
37
|
+
* () => runJobImport(),
|
|
38
|
+
* async (eval) => {
|
|
39
|
+
* const choice = await vscode.window.showWarningMessage(eval.reason, { modal: true }, 'Proceed');
|
|
40
|
+
* return choice === 'Proceed';
|
|
41
|
+
* },
|
|
42
|
+
* );
|
|
43
|
+
* ```
|
|
44
|
+
*/
|
|
45
|
+
export async function withSafetyConfirmation(guard, operation, confirmHandler) {
|
|
46
|
+
try {
|
|
47
|
+
return await operation();
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
if (err instanceof SafetyConfirmationRequired) {
|
|
51
|
+
const confirmed = await confirmHandler(err.evaluation);
|
|
52
|
+
if (!confirmed) {
|
|
53
|
+
throw new SafetyBlockedError(`Operation cancelled: ${err.evaluation.reason}`, err.evaluation.operation.method ?? '', err.evaluation.operation.url ?? '', guard.config.level);
|
|
54
|
+
}
|
|
55
|
+
// Temporarily allow this specific operation and retry
|
|
56
|
+
const cleanup = guard.temporarilyAllow(err.evaluation.operation);
|
|
57
|
+
try {
|
|
58
|
+
return await operation();
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
cleanup();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
throw err;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=with-confirmation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"with-confirmation.js","sourceRoot":"","sources":["../../../src/safety/with-confirmation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,OAAO,EAAC,kBAAkB,EAAE,0BAA0B,EAAC,MAAM,wBAAwB,CAAC;AAetF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,KAAkB,EAClB,SAA2B,EAC3B,cAA8B;IAE9B,IAAI,CAAC;QACH,OAAO,MAAM,SAAS,EAAE,CAAC;IAC3B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,IAAI,GAAG,YAAY,0BAA0B,EAAE,CAAC;YAC9C,MAAM,SAAS,GAAG,MAAM,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACvD,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,MAAM,IAAI,kBAAkB,CAC1B,wBAAwB,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,EAC/C,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,EACrC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,EAClC,KAAK,CAAC,MAAM,CAAC,KAAK,CACnB,CAAC;YACJ,CAAC;YAED,sDAAsD;YACtD,MAAM,OAAO,GAAG,KAAK,CAAC,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;YACjE,IAAI,CAAC;gBACH,OAAO,MAAM,SAAS,EAAE,CAAC;YAC3B,CAAC;oBAAS,CAAC;gBACT,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ConfirmOptions {
|
|
2
|
+
/** Default to yes when the user presses Enter without typing. Defaults to false (no). */
|
|
3
|
+
defaultYes?: boolean;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Simple yes/no confirmation prompt.
|
|
7
|
+
*
|
|
8
|
+
* Output goes to stderr so it doesn't interfere with structured stdout output.
|
|
9
|
+
*
|
|
10
|
+
* @param message - Prompt message (the hint is appended automatically)
|
|
11
|
+
* @param options - Options to control default behavior
|
|
12
|
+
* @returns true if user confirmed, false otherwise
|
|
13
|
+
*/
|
|
14
|
+
export declare function confirm(message: string, options?: ConfirmOptions): Promise<boolean>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2025, Salesforce, Inc.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2
|
|
4
|
+
* For full license text, see the license.txt file in the repo root or http://www.apache.org/licenses/LICENSE-2.0
|
|
5
|
+
*/
|
|
6
|
+
import * as readline from 'node:readline';
|
|
7
|
+
/**
|
|
8
|
+
* Simple yes/no confirmation prompt.
|
|
9
|
+
*
|
|
10
|
+
* Output goes to stderr so it doesn't interfere with structured stdout output.
|
|
11
|
+
*
|
|
12
|
+
* @param message - Prompt message (the hint is appended automatically)
|
|
13
|
+
* @param options - Options to control default behavior
|
|
14
|
+
* @returns true if user confirmed, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
export async function confirm(message, options) {
|
|
17
|
+
const defaultYes = options?.defaultYes ?? false;
|
|
18
|
+
const hint = defaultYes ? '(Y/n)' : '(y/N)';
|
|
19
|
+
const rl = readline.createInterface({
|
|
20
|
+
input: process.stdin,
|
|
21
|
+
output: process.stderr,
|
|
22
|
+
});
|
|
23
|
+
return new Promise((resolve) => {
|
|
24
|
+
rl.question(`${message} ${hint} `, (answer) => {
|
|
25
|
+
rl.close();
|
|
26
|
+
const normalized = answer.trim().toLowerCase();
|
|
27
|
+
if (normalized === '') {
|
|
28
|
+
resolve(defaultYes);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
resolve(normalized === 'y' || normalized === 'yes');
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=confirm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm.js","sourceRoot":"","sources":["../../../src/ux/confirm.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAC;AAO1C;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,OAAe,EAAE,OAAwB;IACrE,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,KAAK,CAAC;IAChD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAE5C,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC,CAAC;IAEH,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,EAAE,CAAC,QAAQ,CAAC,GAAG,OAAO,IAAI,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,EAAE;YAC5C,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,UAAU,KAAK,EAAE,EAAE,CAAC;gBACtB,OAAO,CAAC,UAAU,CAAC,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,UAAU,KAAK,GAAG,IAAI,UAAU,KAAK,KAAK,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -3,6 +3,8 @@ import type { LoadConfigOptions } from './config.js';
|
|
|
3
3
|
import type { ResolvedB2CConfig } from '../config/index.js';
|
|
4
4
|
import { type Logger } from '../logging/index.js';
|
|
5
5
|
import { type ExtraParamsConfig } from '../clients/middleware.js';
|
|
6
|
+
import { SafetyGuard } from '../safety/safety-guard.js';
|
|
7
|
+
import type { SafetyEvaluation } from '../safety/types.js';
|
|
6
8
|
import { Telemetry, type TelemetryAttributes } from '../telemetry/index.js';
|
|
7
9
|
export type Flags<T extends typeof Command> = Interfaces.InferredFlags<(typeof BaseCommand)['baseFlags'] & T['flags']>;
|
|
8
10
|
export type Args<T extends typeof Command> = Interfaces.InferredArgs<T['args']>;
|
|
@@ -39,6 +41,8 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
|
|
|
39
41
|
protected args: Args<T>;
|
|
40
42
|
protected resolvedConfig: ResolvedB2CConfig;
|
|
41
43
|
protected logger: Logger;
|
|
44
|
+
/** Safety guard for evaluating operations against safety rules and levels. */
|
|
45
|
+
protected safetyGuard: SafetyGuard;
|
|
42
46
|
/** Telemetry instance for tracking command events */
|
|
43
47
|
protected telemetry?: Telemetry;
|
|
44
48
|
/** Start time for command duration tracking */
|
|
@@ -188,17 +192,38 @@ export declare abstract class BaseCommand<T extends typeof Command> extends Comm
|
|
|
188
192
|
*/
|
|
189
193
|
protected getExtraParams(): ExtraParamsConfig | undefined;
|
|
190
194
|
/**
|
|
191
|
-
* Register safety middleware
|
|
192
|
-
* This provides unbypassable protection at the HTTP layer - cannot be circumvented
|
|
193
|
-
* by command-line flags since it operates on all HTTP requests.
|
|
195
|
+
* Register safety middleware that evaluates all HTTP requests against the SafetyGuard.
|
|
194
196
|
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
*
|
|
198
|
-
* - NO_UPDATE: Block DELETE + destructive operations (reset/stop/restart)
|
|
199
|
-
* - READ_ONLY: Block all writes (GET only)
|
|
197
|
+
* The middleware reads `this.safetyGuard` lazily (via arrow function closure), so it
|
|
198
|
+
* picks up the full config after `initializeSafetyGuard()` runs. This allows the
|
|
199
|
+
* middleware to be registered early in init() before config resolution completes.
|
|
200
200
|
*/
|
|
201
201
|
private registerSafetyMiddleware;
|
|
202
|
+
/**
|
|
203
|
+
* Update the safety guard with config-provided safety settings.
|
|
204
|
+
* Called after loadConfiguration() to merge env vars, global safety config,
|
|
205
|
+
* and per-instance dw.json config.
|
|
206
|
+
*/
|
|
207
|
+
private initializeSafetyGuard;
|
|
208
|
+
/**
|
|
209
|
+
* Evaluate command-level safety rules for the current command.
|
|
210
|
+
*
|
|
211
|
+
* This runs at the end of init() so every command is evaluated against
|
|
212
|
+
* command rules (e.g., `{ command: "code:deploy", action: "block" }`).
|
|
213
|
+
* If no command rule matches, this is a no-op — level-based blocking
|
|
214
|
+
* is handled by the HTTP middleware and assertDestructiveOperationAllowed().
|
|
215
|
+
*/
|
|
216
|
+
private evaluateCommandSafety;
|
|
217
|
+
/**
|
|
218
|
+
* Require interactive confirmation for a safety-guarded operation.
|
|
219
|
+
*
|
|
220
|
+
* If stdin is a TTY, prompts the user. Otherwise, blocks with an error message.
|
|
221
|
+
* The error message clearly indicates the block is from the user's own safety configuration.
|
|
222
|
+
*
|
|
223
|
+
* @param evaluation - The safety evaluation that triggered confirmation
|
|
224
|
+
* @throws Error if confirmation is denied or not possible
|
|
225
|
+
*/
|
|
226
|
+
protected confirmOrBlock(evaluation: SafetyEvaluation): Promise<void>;
|
|
202
227
|
/**
|
|
203
228
|
* Register extra params (query, body, headers) as global middleware.
|
|
204
229
|
* This applies to ALL HTTP clients created during command execution.
|
|
@@ -9,7 +9,9 @@ import { parseFriendlySandboxId } from '../operations/ods/sandbox-lookup.js';
|
|
|
9
9
|
import { setLanguage, t } from '../i18n/index.js';
|
|
10
10
|
import { configureLogger, getLogger } from '../logging/index.js';
|
|
11
11
|
import { createExtraParamsMiddleware, createSafetyMiddleware } from '../clients/middleware.js';
|
|
12
|
-
import { getSafetyLevel, describeSafetyLevel } from '../safety/index.js';
|
|
12
|
+
import { getSafetyLevel, describeSafetyLevel, resolveEffectiveSafetyConfig, loadGlobalSafetyConfig, } from '../safety/index.js';
|
|
13
|
+
import { SafetyGuard } from '../safety/safety-guard.js';
|
|
14
|
+
import { confirm as safetyConfirm } from '../ux/confirm.js';
|
|
13
15
|
import { globalConfigSourceRegistry } from '../config/config-source-registry.js';
|
|
14
16
|
import { globalMiddlewareRegistry } from '../clients/middleware-registry.js';
|
|
15
17
|
import { globalAuthMiddlewareRegistry } from '../auth/middleware.js';
|
|
@@ -105,6 +107,8 @@ export class BaseCommand extends Command {
|
|
|
105
107
|
args;
|
|
106
108
|
resolvedConfig;
|
|
107
109
|
logger;
|
|
110
|
+
/** Safety guard for evaluating operations against safety rules and levels. */
|
|
111
|
+
safetyGuard = new SafetyGuard({ level: 'NONE' });
|
|
108
112
|
/** Telemetry instance for tracking command events */
|
|
109
113
|
telemetry;
|
|
110
114
|
/** Start time for command duration tracking */
|
|
@@ -132,8 +136,12 @@ export class BaseCommand extends Command {
|
|
|
132
136
|
// Register extra params middleware (from --extra-query, --extra-body, --extra-headers flags)
|
|
133
137
|
// This must happen before any API clients are created
|
|
134
138
|
this.registerExtraParamsMiddleware();
|
|
139
|
+
// Initialize safety guard with env-var-only config (before config resolution).
|
|
140
|
+
// The guard is updated with the full config after loadConfiguration().
|
|
141
|
+
this.safetyGuard = new SafetyGuard({ level: getSafetyLevel('NONE') });
|
|
135
142
|
// Register safety middleware FIRST (before any other middleware)
|
|
136
|
-
//
|
|
143
|
+
// The middleware reads this.safetyGuard lazily via closure, so it picks up
|
|
144
|
+
// the full config after initializeSafetyGuard() runs.
|
|
137
145
|
this.registerSafetyMiddleware();
|
|
138
146
|
// Collect middleware from plugins before any API clients are created
|
|
139
147
|
await this.collectPluginHttpMiddleware();
|
|
@@ -144,6 +152,11 @@ export class BaseCommand extends Command {
|
|
|
144
152
|
// Auto-initialize telemetry from oclif pjson config
|
|
145
153
|
await this.initTelemetryFromConfig();
|
|
146
154
|
this.resolvedConfig = await this.loadConfiguration();
|
|
155
|
+
// Update safety guard with config-provided safety settings (merges env + config)
|
|
156
|
+
this.initializeSafetyGuard();
|
|
157
|
+
// Evaluate command-level safety rules for every command.
|
|
158
|
+
// This enforces rules like { command: "code:deploy", action: "block" } generically.
|
|
159
|
+
await this.evaluateCommandSafety();
|
|
147
160
|
this.addTelemetryContext();
|
|
148
161
|
}
|
|
149
162
|
/**
|
|
@@ -532,25 +545,22 @@ export class BaseCommand extends Command {
|
|
|
532
545
|
* ```
|
|
533
546
|
*/
|
|
534
547
|
assertDestructiveOperationAllowed(operationDescription) {
|
|
535
|
-
const
|
|
536
|
-
|
|
537
|
-
|
|
548
|
+
const evaluation = this.safetyGuard.evaluate({
|
|
549
|
+
type: 'command',
|
|
550
|
+
commandId: this.id,
|
|
551
|
+
});
|
|
552
|
+
if (evaluation.action === 'allow') {
|
|
553
|
+
return;
|
|
538
554
|
}
|
|
539
555
|
const operation = operationDescription || t('base.destructiveOperation', 'this destructive operation');
|
|
540
|
-
//
|
|
541
|
-
//
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
return this.error(t('base.safetyModeBlocked', 'Cannot {{operation}}: blocked by safety level {{safetyLevel}}.\n\n{{description}}\n\nTo allow this operation, unset or change the SFCC_SAFETY_LEVEL environment variable.\nSee: https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/security#operational-security-safety-mode', {
|
|
549
|
-
operation,
|
|
550
|
-
safetyLevel,
|
|
551
|
-
description: describeSafetyLevel(safetyLevel),
|
|
552
|
-
}), { exit: 1 });
|
|
553
|
-
}
|
|
556
|
+
// For both 'block' and 'confirm' at the assertion level, we block.
|
|
557
|
+
// Commands that want to support confirmation should call confirmOrBlock() separately.
|
|
558
|
+
const safetyLevel = this.safetyGuard.config.level;
|
|
559
|
+
return this.error(t('base.safetyModeBlocked', 'Cannot {{operation}}: blocked by your safety configuration (level: {{safetyLevel}}).\n\n{{description}}\n\nTo change this, update the "safety" section in your dw.json or the SFCC_SAFETY_LEVEL environment variable.\nSee: https://salesforcecommercecloud.github.io/b2c-developer-tooling/guide/safety', {
|
|
560
|
+
operation,
|
|
561
|
+
safetyLevel,
|
|
562
|
+
description: describeSafetyLevel(safetyLevel),
|
|
563
|
+
}), { exit: 1 });
|
|
554
564
|
}
|
|
555
565
|
/**
|
|
556
566
|
* Parse extra params from --extra-query, --extra-body, and --extra-headers flags.
|
|
@@ -593,30 +603,77 @@ export class BaseCommand extends Command {
|
|
|
593
603
|
return config;
|
|
594
604
|
}
|
|
595
605
|
/**
|
|
596
|
-
* Register safety middleware
|
|
597
|
-
* This provides unbypassable protection at the HTTP layer - cannot be circumvented
|
|
598
|
-
* by command-line flags since it operates on all HTTP requests.
|
|
606
|
+
* Register safety middleware that evaluates all HTTP requests against the SafetyGuard.
|
|
599
607
|
*
|
|
600
|
-
*
|
|
601
|
-
*
|
|
602
|
-
*
|
|
603
|
-
* - NO_UPDATE: Block DELETE + destructive operations (reset/stop/restart)
|
|
604
|
-
* - READ_ONLY: Block all writes (GET only)
|
|
608
|
+
* The middleware reads `this.safetyGuard` lazily (via arrow function closure), so it
|
|
609
|
+
* picks up the full config after `initializeSafetyGuard()` runs. This allows the
|
|
610
|
+
* middleware to be registered early in init() before config resolution completes.
|
|
605
611
|
*/
|
|
606
612
|
registerSafetyMiddleware() {
|
|
607
|
-
const safetyLevel = getSafetyLevel('NONE');
|
|
608
|
-
// Only register if safety is enabled
|
|
609
|
-
if (safetyLevel === 'NONE')
|
|
610
|
-
return;
|
|
611
|
-
// Safety mode is silent until it blocks something
|
|
612
|
-
// Error messages will be shown when operations are actually blocked
|
|
613
613
|
globalMiddlewareRegistry.register({
|
|
614
614
|
name: 'cli-safety-guard',
|
|
615
|
-
getMiddleware() {
|
|
616
|
-
|
|
615
|
+
getMiddleware: () => {
|
|
616
|
+
// Skip if no safety restrictions are configured
|
|
617
|
+
if (this.safetyGuard.config.level === 'NONE' && !this.safetyGuard.config.rules?.length) {
|
|
618
|
+
return undefined;
|
|
619
|
+
}
|
|
620
|
+
return createSafetyMiddleware(this.safetyGuard);
|
|
617
621
|
},
|
|
618
622
|
});
|
|
619
623
|
}
|
|
624
|
+
/**
|
|
625
|
+
* Update the safety guard with config-provided safety settings.
|
|
626
|
+
* Called after loadConfiguration() to merge env vars, global safety config,
|
|
627
|
+
* and per-instance dw.json config.
|
|
628
|
+
*/
|
|
629
|
+
initializeSafetyGuard() {
|
|
630
|
+
const globalSafety = loadGlobalSafetyConfig(this.config.configDir);
|
|
631
|
+
const config = resolveEffectiveSafetyConfig(this.resolvedConfig.values.safety, globalSafety);
|
|
632
|
+
this.safetyGuard = new SafetyGuard(config);
|
|
633
|
+
if (config.level !== 'NONE' || config.rules?.length || config.confirm) {
|
|
634
|
+
this.logger.debug({ level: config.level, confirm: config.confirm, ruleCount: config.rules?.length ?? 0 }, 'Safety mode active');
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
/**
|
|
638
|
+
* Evaluate command-level safety rules for the current command.
|
|
639
|
+
*
|
|
640
|
+
* This runs at the end of init() so every command is evaluated against
|
|
641
|
+
* command rules (e.g., `{ command: "code:deploy", action: "block" }`).
|
|
642
|
+
* If no command rule matches, this is a no-op — level-based blocking
|
|
643
|
+
* is handled by the HTTP middleware and assertDestructiveOperationAllowed().
|
|
644
|
+
*/
|
|
645
|
+
async evaluateCommandSafety() {
|
|
646
|
+
const evaluation = this.safetyGuard.evaluate({
|
|
647
|
+
type: 'command',
|
|
648
|
+
commandId: this.id,
|
|
649
|
+
});
|
|
650
|
+
if (evaluation.action === 'block' && evaluation.rule) {
|
|
651
|
+
this.error(evaluation.reason, { exit: 1 });
|
|
652
|
+
}
|
|
653
|
+
if (evaluation.action === 'confirm' && evaluation.rule) {
|
|
654
|
+
await this.confirmOrBlock(evaluation);
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
/**
|
|
658
|
+
* Require interactive confirmation for a safety-guarded operation.
|
|
659
|
+
*
|
|
660
|
+
* If stdin is a TTY, prompts the user. Otherwise, blocks with an error message.
|
|
661
|
+
* The error message clearly indicates the block is from the user's own safety configuration.
|
|
662
|
+
*
|
|
663
|
+
* @param evaluation - The safety evaluation that triggered confirmation
|
|
664
|
+
* @throws Error if confirmation is denied or not possible
|
|
665
|
+
*/
|
|
666
|
+
async confirmOrBlock(evaluation) {
|
|
667
|
+
if (!process.stdin.isTTY) {
|
|
668
|
+
this.error(`Your safety configuration requires confirmation for this operation, ` +
|
|
669
|
+
`but no interactive session is available.\n\n ${evaluation.reason}\n\n` +
|
|
670
|
+
`To change this, update the "safety" section in your dw.json or the SFCC_SAFETY_CONFIRM environment variable.`, { exit: 1 });
|
|
671
|
+
}
|
|
672
|
+
const confirmed = await safetyConfirm(`Your safety configuration requires confirmation for this operation:\n ${evaluation.reason}\n Proceed?`);
|
|
673
|
+
if (!confirmed) {
|
|
674
|
+
this.error('Operation cancelled.', { exit: 1 });
|
|
675
|
+
}
|
|
676
|
+
}
|
|
620
677
|
/**
|
|
621
678
|
* Register extra params (query, body, headers) as global middleware.
|
|
622
679
|
* This applies to ALL HTTP clients created during command execution.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/cli/base-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAC,OAAO,EAAE,KAAK,EAAkB,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AAGvC,OAAO,EAAC,sBAAsB,EAAC,MAAM,qCAAqC,CAAC;AAS3E,OAAO,EAAC,WAAW,EAAE,CAAC,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,eAAe,EAAE,SAAS,EAA6B,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAC,2BAA2B,EAAE,sBAAsB,EAAyB,MAAM,0BAA0B,CAAC;AACrH,OAAO,EAAC,cAAc,EAAE,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAC,0BAA0B,EAAC,MAAM,qCAAqC,CAAC;AAC/E,OAAO,EAAC,wBAAwB,EAAC,MAAM,mCAAmC,CAAC;AAC3E,OAAO,EAAC,4BAA4B,EAAC,MAAM,uBAAuB,CAAC;AACnE,OAAO,EAAC,uBAAuB,EAAC,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAC,YAAY,EAAC,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAC,eAAe,EAAE,SAAS,EAA2B,MAAM,uBAAuB,CAAC;AAK3F,MAAM,UAAU,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC;AASlF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAgB,WAAsC,SAAQ,OAAO;IACzE,MAAM,CAAC,SAAS,GAAG;QACjB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC;YACxB,WAAW,EAAE,6BAA6B;YAC1C,GAAG,EAAE,gBAAgB;YACrB,OAAO,EAAE,UAAU;YACnB,SAAS,EAAE,QAAQ;SACpB,CAAC,EAAE;QACJ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,wDAAwD;YACrE,GAAG,EAAE,YAAY;YACjB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC;YAClB,WAAW,EAAE,uBAAuB;YACpC,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC;YACnB,OAAO,EAAE,CAAC,WAAW,CAAC;YACtB,WAAW,EAAE,mCAAmC;YAChD,GAAG,EAAE,gBAAgB;YACrB,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,uEAAuE;YACpF,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;YACnB,WAAW,EAAE,gEAAgE;YAC7E,GAAG,EAAE,aAAa;YAClB,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,WAAW,EAAE,2DAA2D;YACxE,GAAG,EAAE,eAAe;YACpB,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,mBAAmB,EAAE,KAAK,CAAC,MAAM,CAAC;YAChC,OAAO,EAAE,CAAC,mBAAmB,CAAC;YAC9B,WAAW,EAAE,mBAAmB;YAChC,GAAG,EAAE,wBAAwB;YAC7B,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,SAAS;YACpE,SAAS,EAAE,QAAQ;SACpB,CAAC;QACF,aAAa,EAAE,KAAK,CAAC,MAAM,CAAC;YAC1B,WAAW,EAAE,6DAA6D;YAC1E,GAAG,EAAE,kBAAkB;YACvB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC;YACzB,WAAW,EAAE,mEAAmE;YAChF,GAAG,EAAE,iBAAiB;YACtB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI;SACb,CAAC;QACF,eAAe,EAAE,KAAK,CAAC,MAAM,CAAC;YAC5B,WAAW,EAAE,qEAAqE;YAClF,GAAG,EAAE,oBAAoB;YACzB,SAAS,EAAE,QAAQ;YACnB,MAAM,EAAE,IAAI;SACb,CAAC;KACH,CAAC;IAEQ,KAAK,CAAY;IACjB,IAAI,CAAW;IACf,cAAc,CAAqB;IACnC,MAAM,CAAU;IAE1B,qDAAqD;IAC3C,SAAS,CAAa;IAEhC,+CAA+C;IACvC,gBAAgB,CAAU;IAE3B,KAAK,CAAC,IAAI;QACf,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAEnB,MAAM,EAAC,IAAI,EAAE,KAAK,EAAC,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC;YACrC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK;YACtB,SAAS,EAAG,KAAK,CAAC,IAA2B,CAAC,SAAS;YACvD,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;YACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;SACzB,CAAC,CAAC;QAEH,IAAI,CAAC,KAAK,GAAG,KAAiB,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAe,CAAC;QAE5B,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;YACpB,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAExB,wEAAwE;QACxE,qGAAqG;QACrG,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAE7C,0EAA0E;QAC1E,sDAAsD;QACtD,YAAY,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAEzF,6FAA6F;QAC7F,sDAAsD;QACtD,IAAI,CAAC,6BAA6B,EAAE,CAAC;QAErC,iEAAiE;QACjE,0DAA0D;QAC1D,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAEhC,qEAAqE;QACrE,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,8EAA8E;QAC9E,MAAM,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEzC,mEAAmE;QACnE,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QAExC,oDAAoD;QACpD,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAErC,IAAI,CAAC,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAErD,IAAI,CAAC,mBAAmB,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,uBAAuB;QACnC,MAAM,cAAc,GAAI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAmD,EAAE,SAAS,CAAC;QACzG,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,CAAC,cAAc,EAAE,gBAAgB,CAAC,CAAC;QAEzF,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE9B,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;YAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACzB,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,iBAAiB,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAC;SACtC,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAE7B,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;IAChE,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,aAAa,CAAC,OAG7B;QACC,iFAAiF;QACjF,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,MAAM,gBAAgB,GAAG,SAAS,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC/E,IAAI,CAAC,gBAAgB;YAAE,OAAO,SAAS,CAAC;QAExC,IAAI,CAAC,SAAS,GAAG,eAAe,CAAC;YAC/B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;YACzB,cAAc,EAAE,gBAAgB;YAChC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;YAC5B,iBAAiB,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAC;SACpE,CAAC,CAAC;QACH,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAE7B,sBAAsB;QACtB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;QAE9D,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED;;;OAGG;IACK,cAAc;QACpB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YACvC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,uCAAuC;QACvC,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,KAAK,CAAC;IACvC,CAAC;IAES,gBAAgB;QACxB,IAAI,KAAK,GAAa,MAAM,CAAC;QAE7B,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC;YAC5B,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAa,CAAC;QAC9C,CAAC;aAAM,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5B,KAAK,GAAG,OAAO,CAAC;QAClB,CAAC;QAED,4DAA4D;QAC5D,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAElD,2CAA2C;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,OAAO,CAAC;QAE3D,eAAe,CAAC;YACd,KAAK;YACL,EAAE;YACF,WAAW,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACtB,QAAQ,EAAE,IAAI,CAAC,cAAc,EAAE;YAC/B,MAAM;SACP,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;IAC5B,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,OAAgB,EAAE,GAAG,IAAe;QACtC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;QAC/E,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,KAAqB;QACxB,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACO,oBAAoB;QAC5B,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;YACjD,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC;SAClD,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC/B,OAAO,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACO,mBAAmB;QAC3B,IAAI,CAAC,IAAI,CAAC,SAAS;YAAE,OAAO;QAE5B,IAAI,CAAC;YACH,MAAM,UAAU,GAAwB,EAAE,CAAC;YAC3C,MAAM,EAAC,MAAM,EAAE,OAAO,EAAC,GAAG,IAAI,CAAC,cAAc,CAAC;YAE9C,sEAAsE;YACtE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;gBACtC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;gBACvD,IAAI,MAAM,EAAE,CAAC;oBACX,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,2FAA2F;YAC3F,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACzC,MAAM,MAAM,GAAG,sBAAsB,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACrE,IAAI,MAAM,EAAE,CAAC;oBACX,UAAU,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;gBAClC,CAAC;YACH,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACxC,CAAC;YAED,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,UAAU,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;YACxC,CAAC;YAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACrB,UAAU,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;YAC1C,CAAC;YAED,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;gBACtB,UAAU,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;YAC5C,CAAC;YAED,0CAA0C;YAC1C,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvB,UAAU,CAAC,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACvC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,MAAM,EAAE,CAAC;oBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,UAAU,EAAC,EAAE,4BAA4B,CAAC,CAAC;gBAChE,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iFAAiF;QACnF,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACO,KAAK,CAAC,0BAA0B;QACxC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAAE,OAAO;QAE9C,iFAAiF;QACjF,MAAM,KAAK,GAAG,IAAI,CAAC,KAAgC,CAAC;QAEpD,MAAM,WAAW,GAA6B;YAC5C,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YAC7B,KAAK;YACL,cAAc,EAAE;gBACd,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;gBAC7B,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBAC7B,kBAAkB,EAAE,KAAK,CAAC,sBAAsB,CAAuB;aACxE;SACF,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,EAAE,WAAW,CAAC,CAAC;QAEhF,qEAAqE;QACrE,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAA6C,CAAC;YACrE,IAAI,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM;gBAAE,SAAS;YAEvC,4EAA4E;YAC5E,MAAM,eAAe,GACnB,MAAM,CAAC,QAAQ,KAAK,QAAQ;gBAC1B,CAAC,CAAC,CAAC,CAAC;gBACJ,CAAC,CAAC,MAAM,CAAC,QAAQ,KAAK,OAAO;oBAC3B,CAAC,CAAC,EAAE;oBACJ,CAAC,CAAC,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ;wBACnC,CAAC,CAAC,MAAM,CAAC,QAAQ;wBACjB,CAAC,CAAC,EAAE,CAAC,CAAC,kBAAkB;YAEhC,oFAAoF;YACpF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpC,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;oBACjC,MAA8B,CAAC,QAAQ,GAAG,eAAe,CAAC;gBAC7D,CAAC;gBACD,0BAA0B,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,oCAAoC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9G,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,2BAA2B;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAAE,OAAO;QAE9C,MAAM,WAAW,GAA8B;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAgC;SAC7C,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAEjF,sDAAsD;QACtD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAA8C,CAAC;YACtE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM;gBAAE,SAAS;YAEzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAC5C,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,wCAAwC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,qCAAqC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACO,KAAK,CAAC,2BAA2B;QACzC,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB;YAAE,OAAO;QAE9C,MAAM,WAAW,GAA8B;YAC7C,KAAK,EAAE,IAAI,CAAC,KAAgC;SAC7C,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,EAAE,WAAW,CAAC,CAAC;QAEjF,sDAAsD;QACtD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;YAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,MAA8C,CAAC;YACtE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM;gBAAE,SAAS;YAEzC,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;gBACxC,4BAA4B,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;gBAChD,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,wCAAwC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,CAAC;QACH,CAAC;QAED,uDAAuD;QACvD,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YAC1C,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,OAAO,CAAC,MAAM,CAAC,IAAI,qCAAqC,OAAO,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/G,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACO,KAAK,CAAC,KAAK,CAAC,GAAgC;QACpD,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;QAExF,4GAA4G;QAC5G,8EAA8E;QAC9E,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;YAC1E,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,EAAE;gBACxC,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,QAAQ;gBACR,QAAQ;gBACR,YAAY,EAAE,GAAG,CAAC,OAAO;gBACzB,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,UAAU,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;aACtD,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QAED,+DAA+D;QAC/D,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;QACtD,CAAC;QAED,2DAA2D;QAC3D,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACvB,MAAM,WAAW,GAAG;gBAClB,KAAK,EAAE;oBACL,OAAO,EAAE,GAAG,CAAC,OAAO;oBACpB,IAAI,EAAE,QAAQ;oBACd,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC;iBACjD;aACF,CAAC;YACF,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;QAED,uDAAuD;QACvD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,EAAC,IAAI,EAAE,QAAQ,EAAC,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,OAAO,CAAC,GAAsB;QAC5C,0CAA0C;QAC1C,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC;YACxF,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,EAAE,EAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAC,CAAC,CAAC;YAC1E,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACO,iCAAiC,CAAC,oBAA6B;QACvE,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,WAAW,KAAK,MAAM,EAAE,CAAC;YAC3B,OAAO,CAAC,kBAAkB;QAC5B,CAAC;QAED,MAAM,SAAS,GAAG,oBAAoB,IAAI,CAAC,CAAC,2BAA2B,EAAE,4BAA4B,CAAC,CAAC;QAEvG,gDAAgD;QAChD,oEAAoE;QACpE,wCAAwC;QACxC,iCAAiC;QACjC,4FAA4F;QAC5F,yCAAyC;QACzC,MAAM,WAAW,GAAG,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,IAAI,WAAW,KAAK,WAAW,CAAC;QAE9G,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC,KAAK,CACf,CAAC,CACC,wBAAwB,EACxB,iSAAiS,EACjS;gBACE,SAAS;gBACT,WAAW;gBACX,WAAW,EAAE,mBAAmB,CAAC,WAAW,CAAC;aAC9C,CACF,EACD,EAAC,IAAI,EAAE,CAAC,EAAC,CACV,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACO,cAAc;QACtB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAEjD,IAAI,CAAC,UAAU,IAAI,CAAC,SAAS,IAAI,CAAC,YAAY,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,MAAM,GAAsB,EAAE,CAAC;QAErC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAA0D,CAAC;YACjG,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,mCAAmC,UAAU,EAAE,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC;gBACH,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAA4B,CAAC;YACjE,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,kCAAkC,SAAS,EAAE,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAA2B,CAAC;YACtE,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,KAAK,CAAC,qCAAqC,YAAY,EAAE,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;OAUG;IACK,wBAAwB;QAC9B,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;QAE3C,qCAAqC;QACrC,IAAI,WAAW,KAAK,MAAM;YAAE,OAAO;QAEnC,kDAAkD;QAClD,oEAAoE;QAEpE,wBAAwB,CAAC,QAAQ,CAAC;YAChC,IAAI,EAAE,kBAAkB;YACxB,aAAa;gBACX,OAAO,sBAAsB,CAAC,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;YACtD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACK,6BAA6B;QACnC,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW;YAAE,OAAO;QAEzB,wBAAwB,CAAC,QAAQ,CAAC;YAChC,IAAI,EAAE,kBAAkB;YACxB,aAAa;gBACX,OAAO,2BAA2B,CAAC,WAAW,CAAC,CAAC;YAClD,CAAC;SACF,CAAC,CAAC;IACL,CAAC"}
|
|
1
|
+
{"version":3,"file":"base-command.js","sourceRoot":"","sources":["../../../src/cli/base-command.ts"],"names":[],"mappings":"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"}
|