@pipeline-builder/pipeline-manager 3.4.69 → 3.4.71
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -2
- package/dist/agent/ai.d.ts +55 -0
- package/dist/agent/ai.d.ts.map +1 -0
- package/dist/agent/ai.js +130 -0
- package/dist/agent/executor.d.ts +24 -0
- package/dist/agent/executor.d.ts.map +1 -0
- package/dist/agent/executor.js +54 -0
- package/dist/agent/health.d.ts +22 -0
- package/dist/agent/health.d.ts.map +1 -0
- package/dist/agent/health.js +55 -0
- package/dist/agent/prereqs.d.ts +16 -0
- package/dist/agent/prereqs.d.ts.map +1 -0
- package/dist/agent/prereqs.js +73 -0
- package/dist/agent/targets.d.ts +83 -0
- package/dist/agent/targets.d.ts.map +1 -0
- package/dist/agent/targets.js +142 -0
- package/dist/agent/troubleshoot.d.ts +30 -0
- package/dist/agent/troubleshoot.d.ts.map +1 -0
- package/dist/agent/troubleshoot.js +87 -0
- package/dist/boilerplate.js +8 -13
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +114 -116
- package/dist/commands/audit-stacks.js +22 -24
- package/dist/commands/audit-tokens.js +25 -27
- package/dist/commands/bootstrap.js +29 -37
- package/dist/commands/create-pipeline.js +55 -92
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +58 -62
- package/dist/commands/get-pipeline.js +24 -28
- package/dist/commands/get-plugin.js +24 -28
- package/dist/commands/list-pipelines.js +30 -31
- package/dist/commands/list-plugins.js +32 -33
- package/dist/commands/login.js +44 -49
- package/dist/commands/org-export.js +22 -60
- package/dist/commands/provision.d.ts +12 -0
- package/dist/commands/provision.d.ts.map +1 -0
- package/dist/commands/provision.js +362 -0
- package/dist/commands/register.js +29 -30
- package/dist/commands/setup-events.d.ts.map +1 -1
- package/dist/commands/setup-events.js +42 -77
- package/dist/commands/status.js +20 -25
- package/dist/commands/store-token.js +44 -82
- package/dist/commands/synth.d.ts.map +1 -1
- package/dist/commands/synth.js +36 -35
- package/dist/commands/upload-plugin.js +59 -96
- package/dist/commands/validate-templates.d.ts.map +1 -1
- package/dist/commands/validate-templates.js +23 -29
- package/dist/commands/version.js +42 -47
- package/dist/config/cli.constants.d.ts.map +1 -1
- package/dist/config/cli.constants.js +24 -31
- package/dist/types/config.js +2 -3
- package/dist/types/error.js +3 -7
- package/dist/types/index.d.ts +4 -4
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +5 -21
- package/dist/types/pipeline.js +2 -3
- package/dist/types/plugin.js +2 -3
- package/dist/utils/api-client.d.ts +1 -1
- package/dist/utils/api-client.d.ts.map +1 -1
- package/dist/utils/api-client.js +23 -28
- package/dist/utils/audit-log.js +16 -22
- package/dist/utils/auth-guard.js +2 -5
- package/dist/utils/aws-secrets.js +17 -23
- package/dist/utils/banner.js +16 -23
- package/dist/utils/cdk-utils.js +14 -24
- package/dist/utils/command-utils.d.ts +1 -1
- package/dist/utils/command-utils.d.ts.map +1 -1
- package/dist/utils/command-utils.js +32 -44
- package/dist/utils/config-loader.d.ts +1 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +24 -58
- package/dist/utils/error-handler.d.ts +1 -1
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +16 -24
- package/dist/utils/list-command-utils.js +15 -20
- package/dist/utils/output-utils.d.ts +1 -1
- package/dist/utils/output-utils.d.ts.map +1 -1
- package/dist/utils/output-utils.js +35 -55
- package/dist/utils/plugin-resolver.d.ts +1 -1
- package/dist/utils/plugin-resolver.d.ts.map +1 -1
- package/dist/utils/plugin-resolver.js +6 -8
- package/dist/utils/rate-limiter.js +11 -19
- package/dist/utils/registry.js +16 -22
- package/package.json +26 -17
package/dist/utils/audit-log.js
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.auditLog = auditLog;
|
|
9
|
-
const fs_1 = __importDefault(require("fs"));
|
|
10
|
-
const os_1 = __importDefault(require("os"));
|
|
11
|
-
const path_1 = __importDefault(require("path"));
|
|
3
|
+
import fs from 'fs';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import path from 'path';
|
|
12
6
|
/**
|
|
13
7
|
* Local audit logger for sensitive CLI operations.
|
|
14
8
|
* Writes timestamped entries to ~/.pipeline-manager/audit.log.
|
|
15
9
|
* Never logs credentials or tokens — only operation metadata.
|
|
16
10
|
*/
|
|
17
|
-
const AUDIT_DIR =
|
|
18
|
-
const AUDIT_FILE =
|
|
11
|
+
const AUDIT_DIR = path.join(os.homedir(), '.pipeline-manager');
|
|
12
|
+
const AUDIT_FILE = path.join(AUDIT_DIR, 'audit.log');
|
|
19
13
|
const MAX_AUDIT_SIZE = 1024 * 1024; // 1MB — rotate when exceeded
|
|
20
14
|
/**
|
|
21
15
|
* Log a sensitive operation to the local audit file.
|
|
@@ -23,31 +17,31 @@ const MAX_AUDIT_SIZE = 1024 * 1024; // 1MB — rotate when exceeded
|
|
|
23
17
|
* @param command - The command name (e.g., 'store-token', 'deploy', 'bootstrap')
|
|
24
18
|
* @param details - Non-sensitive metadata about the operation
|
|
25
19
|
*/
|
|
26
|
-
function auditLog(command, details) {
|
|
20
|
+
export function auditLog(command, details) {
|
|
27
21
|
try {
|
|
28
|
-
if (!
|
|
29
|
-
|
|
22
|
+
if (!fs.existsSync(AUDIT_DIR)) {
|
|
23
|
+
fs.mkdirSync(AUDIT_DIR, { recursive: true, mode: 0o700 });
|
|
30
24
|
}
|
|
31
25
|
// Rotate if file is too large
|
|
32
|
-
if (
|
|
33
|
-
const stats =
|
|
26
|
+
if (fs.existsSync(AUDIT_FILE)) {
|
|
27
|
+
const stats = fs.statSync(AUDIT_FILE);
|
|
34
28
|
if (stats.size > MAX_AUDIT_SIZE) {
|
|
35
29
|
const rotated = `${AUDIT_FILE}.1`;
|
|
36
|
-
if (
|
|
37
|
-
|
|
38
|
-
|
|
30
|
+
if (fs.existsSync(rotated))
|
|
31
|
+
fs.unlinkSync(rotated);
|
|
32
|
+
fs.renameSync(AUDIT_FILE, rotated);
|
|
39
33
|
}
|
|
40
34
|
}
|
|
41
35
|
const entry = {
|
|
42
36
|
timestamp: new Date().toISOString(),
|
|
43
37
|
command,
|
|
44
|
-
user:
|
|
38
|
+
user: os.userInfo().username,
|
|
45
39
|
details,
|
|
46
40
|
};
|
|
47
|
-
|
|
41
|
+
fs.appendFileSync(AUDIT_FILE, JSON.stringify(entry) + '\n', { mode: 0o600 });
|
|
48
42
|
}
|
|
49
43
|
catch {
|
|
50
44
|
// Audit logging is best-effort — never block the CLI
|
|
51
45
|
}
|
|
52
46
|
}
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQtbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2F1ZGl0LWxvZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQixPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCOzs7O0dBSUc7QUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBQy9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3JELE1BQU0sY0FBYyxHQUFHLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyw2QkFBNkI7QUFTakU7Ozs7O0dBS0c7QUFDSCxNQUFNLFVBQVUsUUFBUSxDQUFDLE9BQWUsRUFBRSxPQUFpQztJQUN6RSxJQUFJLENBQUM7UUFDSCxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQzlCLEVBQUUsQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RCxDQUFDO1FBRUQsOEJBQThCO1FBQzlCLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDdEMsSUFBSSxLQUFLLENBQUMsSUFBSSxHQUFHLGNBQWMsRUFBRSxDQUFDO2dCQUNoQyxNQUFNLE9BQU8sR0FBRyxHQUFHLFVBQVUsSUFBSSxDQUFDO2dCQUNsQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDO29CQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ25ELEVBQUUsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQ3JDLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxLQUFLLEdBQWU7WUFDeEIsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFO1lBQ25DLE9BQU87WUFDUCxJQUFJLEVBQUUsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLFFBQVE7WUFDNUIsT0FBTztTQUNSLENBQUM7UUFFRixFQUFFLENBQUMsY0FBYyxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksRUFBRSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxxREFBcUQ7SUFDdkQsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IGZzIGZyb20gJ2ZzJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcblxuLyoqXG4gKiBMb2NhbCBhdWRpdCBsb2dnZXIgZm9yIHNlbnNpdGl2ZSBDTEkgb3BlcmF0aW9ucy5cbiAqIFdyaXRlcyB0aW1lc3RhbXBlZCBlbnRyaWVzIHRvIH4vLnBpcGVsaW5lLW1hbmFnZXIvYXVkaXQubG9nLlxuICogTmV2ZXIgbG9ncyBjcmVkZW50aWFscyBvciB0b2tlbnMg4oCUIG9ubHkgb3BlcmF0aW9uIG1ldGFkYXRhLlxuICovXG5cbmNvbnN0IEFVRElUX0RJUiA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcucGlwZWxpbmUtbWFuYWdlcicpO1xuY29uc3QgQVVESVRfRklMRSA9IHBhdGguam9pbihBVURJVF9ESVIsICdhdWRpdC5sb2cnKTtcbmNvbnN0IE1BWF9BVURJVF9TSVpFID0gMTAyNCAqIDEwMjQ7IC8vIDFNQiDigJQgcm90YXRlIHdoZW4gZXhjZWVkZWRcblxuaW50ZXJmYWNlIEF1ZGl0RW50cnkge1xuICB0aW1lc3RhbXA6IHN0cmluZztcbiAgY29tbWFuZDogc3RyaW5nO1xuICB1c2VyPzogc3RyaW5nO1xuICBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59XG5cbi8qKlxuICogTG9nIGEgc2Vuc2l0aXZlIG9wZXJhdGlvbiB0byB0aGUgbG9jYWwgYXVkaXQgZmlsZS5cbiAqXG4gKiBAcGFyYW0gY29tbWFuZCAtIFRoZSBjb21tYW5kIG5hbWUgKGUuZy4sICdzdG9yZS10b2tlbicsICdkZXBsb3knLCAnYm9vdHN0cmFwJylcbiAqIEBwYXJhbSBkZXRhaWxzIC0gTm9uLXNlbnNpdGl2ZSBtZXRhZGF0YSBhYm91dCB0aGUgb3BlcmF0aW9uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdWRpdExvZyhjb21tYW5kOiBzdHJpbmcsIGRldGFpbHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICB0cnkge1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhBVURJVF9ESVIpKSB7XG4gICAgICBmcy5ta2RpclN5bmMoQVVESVRfRElSLCB7IHJlY3Vyc2l2ZTogdHJ1ZSwgbW9kZTogMG83MDAgfSk7XG4gICAgfVxuXG4gICAgLy8gUm90YXRlIGlmIGZpbGUgaXMgdG9vIGxhcmdlXG4gICAgaWYgKGZzLmV4aXN0c1N5bmMoQVVESVRfRklMRSkpIHtcbiAgICAgIGNvbnN0IHN0YXRzID0gZnMuc3RhdFN5bmMoQVVESVRfRklMRSk7XG4gICAgICBpZiAoc3RhdHMuc2l6ZSA+IE1BWF9BVURJVF9TSVpFKSB7XG4gICAgICAgIGNvbnN0IHJvdGF0ZWQgPSBgJHtBVURJVF9GSUxFfS4xYDtcbiAgICAgICAgaWYgKGZzLmV4aXN0c1N5bmMocm90YXRlZCkpIGZzLnVubGlua1N5bmMocm90YXRlZCk7XG4gICAgICAgIGZzLnJlbmFtZVN5bmMoQVVESVRfRklMRSwgcm90YXRlZCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZW50cnk6IEF1ZGl0RW50cnkgPSB7XG4gICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKCkudG9JU09TdHJpbmcoKSxcbiAgICAgIGNvbW1hbmQsXG4gICAgICB1c2VyOiBvcy51c2VySW5mbygpLnVzZXJuYW1lLFxuICAgICAgZGV0YWlscyxcbiAgICB9O1xuXG4gICAgZnMuYXBwZW5kRmlsZVN5bmMoQVVESVRfRklMRSwgSlNPTi5zdHJpbmdpZnkoZW50cnkpICsgJ1xcbicsIHsgbW9kZTogMG82MDAgfSk7XG4gIH0gY2F0Y2gge1xuICAgIC8vIEF1ZGl0IGxvZ2dpbmcgaXMgYmVzdC1lZmZvcnQg4oCUIG5ldmVyIGJsb2NrIHRoZSBDTElcbiAgfVxufVxuIl19
|
package/dist/utils/auth-guard.js
CHANGED
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
-
exports.decodeTokenPayload = decodeTokenPayload;
|
|
6
3
|
/**
|
|
7
4
|
* Decode a JWT token payload without signature verification.
|
|
8
5
|
*
|
|
@@ -10,7 +7,7 @@ exports.decodeTokenPayload = decodeTokenPayload;
|
|
|
10
7
|
* for authorization decisions — the server validates the token on every API
|
|
11
8
|
* call. Use only for advisory UX hints.
|
|
12
9
|
*/
|
|
13
|
-
function decodeTokenPayload(token) {
|
|
10
|
+
export function decodeTokenPayload(token) {
|
|
14
11
|
try {
|
|
15
12
|
const parts = token.split('.');
|
|
16
13
|
if (parts.length !== 3 || !parts[1])
|
|
@@ -22,4 +19,4 @@ function decodeTokenPayload(token) {
|
|
|
22
19
|
return null;
|
|
23
20
|
}
|
|
24
21
|
}
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9hdXRoLWd1YXJkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFhdEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEtBQWE7SUFDOUMsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2pELE1BQU0sT0FBTyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFpQixDQUFDO0lBQzdDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmludGVyZmFjZSBUb2tlblBheWxvYWQge1xuICByb2xlPzogc3RyaW5nO1xuICBpc0FkbWluPzogYm9vbGVhbjtcbiAgc3ViPzogc3RyaW5nO1xuICBvcmdhbml6YXRpb25JZD86IHN0cmluZztcbiAgLyoqIFN0YW5kYXJkIEpXVCBleHBpcnkgY2xhaW0sIGluIHNlY29uZHMgc2luY2UgZXBvY2guICovXG4gIGV4cD86IG51bWJlcjtcbiAgLyoqIFN0YW5kYXJkIEpXVCBpc3N1ZWQtYXQgY2xhaW0sIGluIHNlY29uZHMgc2luY2UgZXBvY2guICovXG4gIGlhdD86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBEZWNvZGUgYSBKV1QgdG9rZW4gcGF5bG9hZCB3aXRob3V0IHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uXG4gKlxuICogU0VDVVJJVFk6IE5PIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uIFRoZSBkZWNvZGVkIHBheWxvYWQgTVVTVCBOT1QgYmUgdXNlZFxuICogZm9yIGF1dGhvcml6YXRpb24gZGVjaXNpb25zIOKAlCB0aGUgc2VydmVyIHZhbGlkYXRlcyB0aGUgdG9rZW4gb24gZXZlcnkgQVBJXG4gKiBjYWxsLiBVc2Ugb25seSBmb3IgYWR2aXNvcnkgVVggaGludHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZWNvZGVUb2tlblBheWxvYWQodG9rZW46IHN0cmluZyk6IFRva2VuUGF5bG9hZCB8IG51bGwge1xuICB0cnkge1xuICAgIGNvbnN0IHBhcnRzID0gdG9rZW4uc3BsaXQoJy4nKTtcbiAgICBpZiAocGFydHMubGVuZ3RoICE9PSAzIHx8ICFwYXJ0c1sxXSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgcGF5bG9hZCA9IEJ1ZmZlci5mcm9tKHBhcnRzWzFdLCAnYmFzZTY0dXJsJykudG9TdHJpbmcoJ3V0Zi04Jyk7XG4gICAgcmV0dXJuIEpTT04ucGFyc2UocGF5bG9hZCkgYXMgVG9rZW5QYXlsb2FkO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
exports.getSecretArn = getSecretArn;
|
|
7
|
-
exports.getSecretValue = getSecretValue;
|
|
8
|
-
exports.listSecrets = listSecrets;
|
|
9
|
-
const client_secrets_manager_1 = require("@aws-sdk/client-secrets-manager");
|
|
10
|
-
const output_utils_1 = require("./output-utils");
|
|
3
|
+
import { SecretsManagerClient, CreateSecretCommand, PutSecretValueCommand, UpdateSecretCommand, DescribeSecretCommand, GetSecretValueCommand, ListSecretsCommand, } from '@aws-sdk/client-secrets-manager';
|
|
4
|
+
import { printInfo, printSuccess } from './output-utils.js';
|
|
11
5
|
function createClient(options) {
|
|
12
|
-
return new
|
|
6
|
+
return new SecretsManagerClient({
|
|
13
7
|
region: options.region || process.env.AWS_REGION || process.env.CDK_DEFAULT_REGION,
|
|
14
8
|
...(options.profile && {
|
|
15
9
|
credentials: undefined, // profile is handled by AWS SDK credential chain
|
|
@@ -20,29 +14,29 @@ function createClient(options) {
|
|
|
20
14
|
* Create or update a secret in AWS Secrets Manager.
|
|
21
15
|
* Tries create first; if it exists, updates the value and description.
|
|
22
16
|
*/
|
|
23
|
-
async function upsertSecret(secretName, secretValue, description, options) {
|
|
17
|
+
export async function upsertSecret(secretName, secretValue, description, options) {
|
|
24
18
|
const client = createClient(options);
|
|
25
19
|
try {
|
|
26
|
-
await client.send(new
|
|
20
|
+
await client.send(new CreateSecretCommand({
|
|
27
21
|
Name: secretName,
|
|
28
22
|
Description: description,
|
|
29
23
|
SecretString: secretValue,
|
|
30
24
|
}));
|
|
31
|
-
|
|
25
|
+
printSuccess('Secret created in Secrets Manager');
|
|
32
26
|
}
|
|
33
27
|
catch (error) {
|
|
34
28
|
const errMsg = error instanceof Error ? error.message : '';
|
|
35
29
|
if (errMsg.includes('ResourceExistsException') || errMsg.includes('already exists')) {
|
|
36
|
-
|
|
37
|
-
await client.send(new
|
|
30
|
+
printInfo('Secret already exists, updating...');
|
|
31
|
+
await client.send(new PutSecretValueCommand({
|
|
38
32
|
SecretId: secretName,
|
|
39
33
|
SecretString: secretValue,
|
|
40
34
|
}));
|
|
41
|
-
await client.send(new
|
|
35
|
+
await client.send(new UpdateSecretCommand({
|
|
42
36
|
SecretId: secretName,
|
|
43
37
|
Description: description,
|
|
44
38
|
}));
|
|
45
|
-
|
|
39
|
+
printSuccess('Secret updated in Secrets Manager');
|
|
46
40
|
}
|
|
47
41
|
else {
|
|
48
42
|
throw error;
|
|
@@ -52,9 +46,9 @@ async function upsertSecret(secretName, secretValue, description, options) {
|
|
|
52
46
|
/**
|
|
53
47
|
* Get the ARN of a secret.
|
|
54
48
|
*/
|
|
55
|
-
async function getSecretArn(secretName, options) {
|
|
49
|
+
export async function getSecretArn(secretName, options) {
|
|
56
50
|
const client = createClient(options);
|
|
57
|
-
const response = await client.send(new
|
|
51
|
+
const response = await client.send(new DescribeSecretCommand({
|
|
58
52
|
SecretId: secretName,
|
|
59
53
|
}));
|
|
60
54
|
return response.ARN ?? '(unknown)';
|
|
@@ -62,9 +56,9 @@ async function getSecretArn(secretName, options) {
|
|
|
62
56
|
/**
|
|
63
57
|
* Get the value of a secret.
|
|
64
58
|
*/
|
|
65
|
-
async function getSecretValue(secretName, options) {
|
|
59
|
+
export async function getSecretValue(secretName, options) {
|
|
66
60
|
const client = createClient(options);
|
|
67
|
-
const response = await client.send(new
|
|
61
|
+
const response = await client.send(new GetSecretValueCommand({
|
|
68
62
|
SecretId: secretName,
|
|
69
63
|
}));
|
|
70
64
|
if (!response.SecretString) {
|
|
@@ -78,13 +72,13 @@ async function getSecretValue(secretName, options) {
|
|
|
78
72
|
* @param namePrefix - Filter by `Name` prefix (case-sensitive). Falls back to
|
|
79
73
|
* listing all secrets when omitted (use sparingly).
|
|
80
74
|
*/
|
|
81
|
-
async function listSecrets(namePrefix, options, maxPages = 10) {
|
|
75
|
+
export async function listSecrets(namePrefix, options, maxPages = 10) {
|
|
82
76
|
const client = createClient(options);
|
|
83
77
|
const out = [];
|
|
84
78
|
let nextToken;
|
|
85
79
|
let page = 0;
|
|
86
80
|
do {
|
|
87
|
-
const response = await client.send(new
|
|
81
|
+
const response = await client.send(new ListSecretsCommand({
|
|
88
82
|
MaxResults: 100,
|
|
89
83
|
NextToken: nextToken,
|
|
90
84
|
...(namePrefix && {
|
|
@@ -106,4 +100,4 @@ async function listSecrets(namePrefix, options, maxPages = 10) {
|
|
|
106
100
|
} while (nextToken && page < maxPages);
|
|
107
101
|
return out;
|
|
108
102
|
}
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNlY3JldHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvYXdzLXNlY3JldHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixxQkFBcUIsRUFDckIsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsa0JBQWtCLEdBQ25CLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVU1RCxTQUFTLFlBQVksQ0FBQyxPQUF1QjtJQUMzQyxPQUFPLElBQUksb0JBQW9CLENBQUM7UUFDOUIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0I7UUFDbEYsR0FBRyxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUk7WUFDckIsV0FBVyxFQUFFLFNBQVMsRUFBRSxpREFBaUQ7U0FDMUUsQ0FBQztLQUNILENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLFlBQVksQ0FDaEMsVUFBa0IsRUFDbEIsV0FBbUIsRUFDbkIsV0FBbUIsRUFDbkIsT0FBdUI7SUFFdkIsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXJDLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLG1CQUFtQixDQUFDO1lBQ3hDLElBQUksRUFBRSxVQUFVO1lBQ2hCLFdBQVcsRUFBRSxXQUFXO1lBQ3hCLFlBQVksRUFBRSxXQUFXO1NBQzFCLENBQUMsQ0FBQyxDQUFDO1FBQ0osWUFBWSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDcEQsQ0FB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aEMsR0FBRyxDQUFDLElBQUksQ0FBQztnQkFDUCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUk7Z0JBQ1osR0FBRyxFQUFFLENBQUMsQ0FBQyxHQUFHO2dCQUNWLFdBQVcsRUFBRSxDQUFDLENBQUMsV0FBVztnQkFDMUIsZUFBZSxFQUFFLENBQUMsQ0FBQyxlQUFlO2FBQ25DLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxTQUFTLEdBQUcsUUFBUSxDQUFDLFNBQVMsQ0FBQztRQUMvQixJQUFJLEVBQUUsQ0FBQztJQUNULENBQUMsUUFBUSxTQUFTLElBQUksSUFBSSxHQUFHLFFBQVEsRUFBRTtJQUN2QyxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHtcbiAgU2VjcmV0c01hbmFnZXJDbGllbnQsXG4gIENyZWF0ZVNlY3JldENvbW1hbmQsXG4gIFB1dFNlY3JldFZhbHVlQ29tbWFuZCxcbiAgVXBkYXRlU2VjcmV0Q29tbWFuZCxcbiAgRGVzY3JpYmVTZWNyZXRDb21tYW5kLFxuICBHZXRTZWNyZXRWYWx1ZUNvbW1hbmQsXG4gIExpc3RTZWNyZXRzQ29tbWFuZCxcbn0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LXNlY3JldHMtbWFuYWdlcic7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50U3VjY2VzcyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcblxuLyoqXG4gKiBPcHRpb25zIGZvciBTZWNyZXRzIE1hbmFnZXIgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRzT3B0aW9ucyB7XG4gIHJlZ2lvbj86IHN0cmluZztcbiAgcHJvZmlsZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gY3JlYXRlQ2xpZW50KG9wdGlvbnM6IFNlY3JldHNPcHRpb25zKTogU2VjcmV0c01hbmFnZXJDbGllbnQge1xuICByZXR1cm4gbmV3IFNlY3JldHNNYW5hZ2VyQ2xpZW50KHtcbiAgICByZWdpb246IG9wdGlvbnMucmVnaW9uIHx8IHByb2Nlc3MuZW52LkFXU19SRUdJT04gfHwgcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfUkVHSU9OLFxuICAgIC4uLihvcHRpb25zLnByb2ZpbGUgJiYge1xuICAgICAgY3JlZGVudGlhbHM6IHVuZGVmaW5lZCwgLy8gcHJvZmlsZSBpcyBoYW5kbGVkIGJ5IEFXUyBTREsgY3JlZGVudGlhbCBjaGFpblxuICAgIH0pLFxuICB9KTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgb3IgdXBkYXRlIGEgc2VjcmV0IGluIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKiBUcmllcyBjcmVhdGUgZmlyc3Q7IGlmIGl0IGV4aXN0cywgdXBkYXRlcyB0aGUgdmFsdWUgYW5kIGRlc2NyaXB0aW9uLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gdXBzZXJ0U2VjcmV0KFxuICBzZWNyZXROYW1lOiBzdHJpbmcsXG4gIHNlY3JldFZhbHVlOiBzdHJpbmcsXG4gIGRlc2NyaXB0aW9uOiBzdHJpbmcsXG4gIG9wdGlvbnM6IFNlY3JldHNPcHRpb25zLFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNsaWVudCA9IGNyZWF0ZUNsaWVudChvcHRpb25zKTtcblxuICB0cnkge1xuICAgIGF3YWl0IGNsaWVudC5zZW5kKG5ldyBDcmVhdGVTZWNyZXRDb21tYW5kKHtcbiAgICAgIE5hbWU6IHNlY3JldE5hbWUsXG4gICAgICBEZXNjcmlwdGlvbjogZGVzY3JpcHRpb24sXG4gICAgICBTZWNyZXRTdHJpbmc6IHNlY3JldFZhbHVlLFxuICAgIH0pKTtcbiAgICBwcmludFN1Y2Nlc3MoJ1NlY3JldCBjcmVhdGVkIGluIFNlY3JldHMgTWFuYWdlcicpO1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IGVyck1zZyA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogJyc7XG4gICAgaWYgKGVyck1zZy5pbmNsdWRlcygnUmVzb3VyY2VFeGlzdHNFeGNlcHRpb24nKSB8fCBlcnJNc2cuaW5jbHVkZXMoJ2FscmVhZHkgZXhpc3RzJykpIHtcbiAgICAgIHByaW50SW5mbygnU2VjcmV0IGFscmVhZHkgZXhpc3RzLCB1cGRhdGluZy4uLicpO1xuICAgICAgYXdhaXQgY2xpZW50LnNlbmQobmV3IFB1dFNlY3JldFZhbHVlQ29tbWFuZCh7XG4gICAgICAgIFNlY3JldElkOiBzZWNyZXROYW1lLFxuICAgICAgICBTZWNyZXRTdHJpbmc6IHNlY3JldFZhbHVlLFxuICAgICAgfSkpO1xuICAgICAgYXdhaXQgY2xpZW50LnNlbmQobmV3IFVwZGF0ZVNlY3JldENvbW1hbmQoe1xuICAgICAgICBTZWNyZXRJZDogc2VjcmV0TmFtZSxcbiAgICAgICAgRGVzY3JpcHRpb246IGRlc2NyaXB0aW9uLFxuICAgICAgfSkpO1xuICAgICAgcHJpbnRTdWNjZXNzKCdTZWNyZXQgdXBkYXRlZCBpbiBTZWNyZXRzIE1hbmFnZXInKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogR2V0IHRoZSBBUk4gb2YgYSBzZWNyZXQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTZWNyZXRBcm4oXG4gIHNlY3JldE5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogU2VjcmV0c09wdGlvbnMsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjbGllbnQgPSBjcmVhdGVDbGllbnQob3B0aW9ucyk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IERlc2NyaWJlU2VjcmV0Q29tbWFuZCh7XG4gICAgU2VjcmV0SWQ6IHNlY3JldE5hbWUsXG4gIH0pKTtcbiAgcmV0dXJuIHJlc3BvbnNlLkFSTiA/PyAnKHVua25vd24pJztcbn1cblxuLyoqXG4gKiBHZXQgdGhlIHZhbHVlIG9mIGEgc2VjcmV0LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZ2V0U2VjcmV0VmFsdWUoXG4gIHNlY3JldE5hbWU6IHN0cmluZyxcbiAgb3B0aW9uczogU2VjcmV0c09wdGlvbnMsXG4pOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBjbGllbnQgPSBjcmVhdGVDbGllbnQob3B0aW9ucyk7XG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LnNlbmQobmV3IEdldFNlY3JldFZhbHVlQ29tbWFuZCh7XG4gICAgU2VjcmV0SWQ6IHNlY3JldE5hbWUsXG4gIH0pKTtcbiAgaWYgKCFyZXNwb25zZS5TZWNyZXRTdHJpbmcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNlY3JldCBcIiR7c2VjcmV0TmFtZX1cIiBpcyBlbXB0eWApO1xuICB9XG4gIHJldHVybiByZXNwb25zZS5TZWNyZXRTdHJpbmc7XG59XG5cbi8qKiBNaW5pbWFsIHNlY3JldCBzdW1tYXJ5IHJldHVybmVkIGJ5IGxpc3RTZWNyZXRzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRTdW1tYXJ5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhcm46IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGxhc3RDaGFuZ2VkRGF0ZT86IERhdGU7XG59XG5cbi8qKlxuICogTGlzdCBzZWNyZXRzIG1hdGNoaW5nIGEgbmFtZSBwcmVmaXguIFBhZ2VzIGludGVybmFsbHkgdXAgdG8gYG1heFBhZ2VzYCAoZGVmYXVsdCAxMCkuXG4gKlxuICogQHBhcmFtIG5hbWVQcmVmaXggLSBGaWx0ZXIgYnkgYE5hbWVgIHByZWZpeCAoY2FzZS1zZW5zaXRpdmUpLiBGYWxscyBiYWNrIHRvXG4gKiAgICAgICAgICAgICAgICAgICAgbGlzdGluZyBhbGwgc2VjcmV0cyB3aGVuIG9taXR0ZWQgKHVzZSBzcGFyaW5nbHkpLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gbGlzdFNlY3JldHMoXG4gIG5hbWVQcmVmaXg6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uczogU2VjcmV0c09wdGlvbnMsXG4gIG1heFBhZ2VzID0gMTAsXG4pOiBQcm9taXNlPFNlY3JldFN1bW1hcnlbXT4ge1xuICBjb25zdCBjbGllbnQgPSBjcmVhdGVDbGllbnQob3B0aW9ucyk7XG4gIGNvbnN0IG91dDogU2VjcmV0U3VtbWFyeVtdID0gW107XG4gIGxldCBuZXh0VG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgbGV0IHBhZ2UgPSAwO1xuICBkbyB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuc2VuZChuZXcgTGlzdFNlY3JldHNDb21tYW5kKHtcbiAgICAgIE1heFJlc3VsdHM6IDEwMCxcbiAgICAgIE5leHRUb2tlbjogbmV4dFRva2VuLFxuICAgICAgLi4uKG5hbWVQcmVmaXggJiYge1xuICAgICAgICBGaWx0ZXJzOiBbeyBLZXk6ICduYW1lJywgVmFsdWVzOiBbbmFtZVByZWZpeF0gfV0sXG4gICAgICB9KSxcbiAgICB9KSk7XG4gICAgZm9yIChjb25zdCBzIG9mIHJlc3BvbnNlLlNlY3JldExpc3QgPz8gW10pIHtcbiAgICAgIGlmICghcy5OYW1lIHx8ICFzLkFSTikgY29udGludWU7XG4gICAgICBvdXQucHVzaCh7XG4gICAgICAgIG5hbWU6IHMuTmFtZSxcbiAgICAgICAgYXJuOiBzLkFSTixcbiAgICAgICAgZGVzY3JpcHRpb246IHMuRGVzY3JpcHRpb24sXG4gICAgICAgIGxhc3RDaGFuZ2VkRGF0ZTogcy5MYXN0Q2hhbmdlZERhdGUsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbmV4dFRva2VuID0gcmVzcG9uc2UuTmV4dFRva2VuO1xuICAgIHBhZ2UrKztcbiAgfSB3aGlsZSAobmV4dFRva2VuICYmIHBhZ2UgPCBtYXhQYWdlcyk7XG4gIHJldHVybiBvdXQ7XG59XG4iXX0=
|
package/dist/utils/banner.js
CHANGED
|
@@ -1,50 +1,43 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
|
|
8
|
-
exports.banner = banner;
|
|
9
|
-
exports.miniBanner = miniBanner;
|
|
10
|
-
const figlet_1 = __importDefault(require("figlet"));
|
|
11
|
-
const picocolors_1 = __importDefault(require("picocolors"));
|
|
12
|
-
const cli_constants_1 = require("../config/cli.constants");
|
|
13
|
-
const { bold, green, cyan, dim } = picocolors_1.default;
|
|
3
|
+
import figlet from 'figlet';
|
|
4
|
+
import pico from 'picocolors';
|
|
5
|
+
import { APP_DESCRIPTION, APP_NAME, APP_VERSION, BANNER_OPTIONS, generateExecutionId, } from '../config/cli.constants.js';
|
|
6
|
+
const { bold, green, cyan, dim } = pico;
|
|
14
7
|
/**
|
|
15
8
|
* Display CLI banner with application info
|
|
16
9
|
*/
|
|
17
|
-
function banner(options = {}) {
|
|
10
|
+
export function banner(options = {}) {
|
|
18
11
|
const { showDescription = true, minimal = false, message, showTimestamp = false, showExecutionId = false, } = options;
|
|
19
12
|
if (minimal) {
|
|
20
|
-
console.log(green(bold(`[${
|
|
13
|
+
console.log(green(bold(`[${APP_NAME.toUpperCase()}]`)), cyan(`v${APP_VERSION}`));
|
|
21
14
|
if (message)
|
|
22
15
|
console.log(dim(message));
|
|
23
16
|
if (showExecutionId)
|
|
24
|
-
console.log(dim(`Execution ID: ${
|
|
17
|
+
console.log(dim(`Execution ID: ${generateExecutionId()}`));
|
|
25
18
|
console.log('');
|
|
26
19
|
return;
|
|
27
20
|
}
|
|
28
21
|
// Full banner with ASCII art
|
|
29
22
|
try {
|
|
30
|
-
const asciiArt =
|
|
23
|
+
const asciiArt = figlet.textSync('Pipeline Manager', BANNER_OPTIONS);
|
|
31
24
|
console.log(green(asciiArt));
|
|
32
25
|
}
|
|
33
26
|
catch {
|
|
34
|
-
const width =
|
|
27
|
+
const width = BANNER_OPTIONS.getWidth();
|
|
35
28
|
console.log(green(bold('═'.repeat(width))));
|
|
36
|
-
console.log(green(bold(` ${
|
|
29
|
+
console.log(green(bold(` ${APP_NAME.toUpperCase()}`)));
|
|
37
30
|
console.log(green(bold('═'.repeat(width))));
|
|
38
31
|
}
|
|
39
|
-
console.log(green(bold(`[${
|
|
32
|
+
console.log(green(bold(`[${APP_NAME.toUpperCase()}]`)), cyan(`v${APP_VERSION}`));
|
|
40
33
|
if (message) {
|
|
41
34
|
console.log(dim(message));
|
|
42
35
|
}
|
|
43
36
|
else if (showDescription) {
|
|
44
|
-
console.log(dim(
|
|
37
|
+
console.log(dim(APP_DESCRIPTION));
|
|
45
38
|
}
|
|
46
39
|
if (showExecutionId)
|
|
47
|
-
console.log(dim(`Execution ID: ${
|
|
40
|
+
console.log(dim(`Execution ID: ${generateExecutionId()}`));
|
|
48
41
|
if (showTimestamp)
|
|
49
42
|
console.log(dim(`Started: ${new Date().toLocaleString()}`));
|
|
50
43
|
console.log('');
|
|
@@ -52,8 +45,8 @@ function banner(options = {}) {
|
|
|
52
45
|
/**
|
|
53
46
|
* Display a minimal banner (name and version only)
|
|
54
47
|
*/
|
|
55
|
-
function miniBanner() {
|
|
56
|
-
console.log(green(bold(`[${
|
|
48
|
+
export function miniBanner() {
|
|
49
|
+
console.log(green(bold(`[${APP_NAME.toUpperCase()}]`)), cyan(`v${APP_VERSION}`));
|
|
57
50
|
console.log('');
|
|
58
51
|
}
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Jhbm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUNMLGVBQWUsRUFDZixRQUFRLEVBQ1IsV0FBVyxFQUNYLGNBQWMsRUFDZCxtQkFBbUIsR0FDcEIsTUFBTSw0QkFBNEIsQ0FBQztBQUVwQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBYXhDOztHQUVHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxVQUF5QixFQUFFO0lBQ2hELE1BQU0sRUFDSixlQUFlLEdBQUcsSUFBSSxFQUN0QixPQUFPLEdBQUcsS0FBSyxFQUNmLE9BQU8sRUFDUCxhQUFhLEdBQUcsS0FBSyxFQUNyQixlQUFlLEdBQUcsS0FBSyxHQUN4QixHQUFHLE9BQU8sQ0FBQztJQUVaLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixPQUFPLENBQUMsR0FBRyxDQUNULEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxRQUFRLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEVBQzFDLElBQUksQ0FBQyxJQUFJLFdBQVcsRUFBRSxDQUFDLENBQ3hCLENBQUM7UUFDRixJQUFJLE9BQU87WUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLElBQUksZUFBZTtZQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGlCQUFpQixtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDaEIsT0FBTztJQUNULENBQUM7SUFFRCw2QkFBNkI7SUFDN0IsSUFBSSxDQUFDO1FBQ0gsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNyRSxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDeEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDNUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssUUFBUSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDMUMsSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FDeEIsQ0FBQztJQUVGLElBQUksT0FBTyxFQUFFLENBQUM7UUFDWixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7U0FBTSxJQUFJLGVBQWUsRUFBRSxDQUFDO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksZUFBZTtRQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLGlCQUFpQixtQkFBbUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLElBQUksYUFBYTtRQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUUvRSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFFRDs7R0FFRztBQUNILE1BQU0sVUFBVSxVQUFVO0lBQ3hCLE9BQU8sQ0FBQyxHQUFHLENBQ1QsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFDMUMsSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUMsQ0FDeEIsQ0FBQztJQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgZmlnbGV0IGZyb20gJ2ZpZ2xldCc7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB7XG4gIEFQUF9ERVNDUklQVElPTixcbiAgQVBQX05BTUUsXG4gIEFQUF9WRVJTSU9OLFxuICBCQU5ORVJfT1BUSU9OUyxcbiAgZ2VuZXJhdGVFeGVjdXRpb25JZCxcbn0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGdyZWVuLCBjeWFuLCBkaW0gfSA9IHBpY287XG5cbi8qKlxuICogQmFubmVyIGRpc3BsYXkgb3B0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhbm5lck9wdGlvbnMge1xuICBzaG93RGVzY3JpcHRpb24/OiBib29sZWFuO1xuICBtaW5pbWFsPzogYm9vbGVhbjtcbiAgbWVzc2FnZT86IHN0cmluZztcbiAgc2hvd1RpbWVzdGFtcD86IGJvb2xlYW47XG4gIHNob3dFeGVjdXRpb25JZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRGlzcGxheSBDTEkgYmFubmVyIHdpdGggYXBwbGljYXRpb24gaW5mb1xuICovXG5leHBvcnQgZnVuY3Rpb24gYmFubmVyKG9wdGlvbnM6IEJhbm5lck9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICBjb25zdCB7XG4gICAgc2hvd0Rlc2NyaXB0aW9uID0gdHJ1ZSxcbiAgICBtaW5pbWFsID0gZmFsc2UsXG4gICAgbWVzc2FnZSxcbiAgICBzaG93VGltZXN0YW1wID0gZmFsc2UsXG4gICAgc2hvd0V4ZWN1dGlvbklkID0gZmFsc2UsXG4gIH0gPSBvcHRpb25zO1xuXG4gIGlmIChtaW5pbWFsKSB7XG4gICAgY29uc29sZS5sb2coXG4gICAgICBncmVlbihib2xkKGBbJHtBUFBfTkFNRS50b1VwcGVyQ2FzZSgpfV1gKSksXG4gICAgICBjeWFuKGB2JHtBUFBfVkVSU0lPTn1gKSxcbiAgICApO1xuICAgIGlmIChtZXNzYWdlKSBjb25zb2xlLmxvZyhkaW0obWVzc2FnZSkpO1xuICAgIGlmIChzaG93RXhlY3V0aW9uSWQpIGNvbnNvbGUubG9nKGRpbShgRXhlY3V0aW9uIElEOiAke2dlbmVyYXRlRXhlY3V0aW9uSWQoKX1gKSk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIC8vIEZ1bGwgYmFubmVyIHdpdGggQVNDSUkgYXJ0XG4gIHRyeSB7XG4gICAgY29uc3QgYXNjaWlBcnQgPSBmaWdsZXQudGV4dFN5bmMoJ1BpcGVsaW5lIE1hbmFnZXInLCBCQU5ORVJfT1BUSU9OUyk7XG4gICAgY29uc29sZS5sb2coZ3JlZW4oYXNjaWlBcnQpKTtcbiAgfSBjYXRjaCB7XG4gICAgY29uc3Qgd2lkdGggPSBCQU5ORVJfT1BUSU9OUy5nZXRXaWR0aCgpO1xuICAgIGNvbnNvbGUubG9nKGdyZWVuKGJvbGQoJ+KVkCcucmVwZWF0KHdpZHRoKSkpKTtcbiAgICBjb25zb2xlLmxvZyhncmVlbihib2xkKGAgICR7QVBQX05BTUUudG9VcHBlckNhc2UoKX1gKSkpO1xuICAgIGNvbnNvbGUubG9nKGdyZWVuKGJvbGQoJ+KVkCcucmVwZWF0KHdpZHRoKSkpKTtcbiAgfVxuXG4gIGNvbnNvbGUubG9nKFxuICAgIGdyZWVuKGJvbGQoYFske0FQUF9OQU1FLnRvVXBwZXJDYXNlKCl9XWApKSxcbiAgICBjeWFuKGB2JHtBUFBfVkVSU0lPTn1gKSxcbiAgKTtcblxuICBpZiAobWVzc2FnZSkge1xuICAgIGNvbnNvbGUubG9nKGRpbShtZXNzYWdlKSk7XG4gIH0gZWxzZSBpZiAoc2hvd0Rlc2NyaXB0aW9uKSB7XG4gICAgY29uc29sZS5sb2coZGltKEFQUF9ERVNDUklQVElPTikpO1xuICB9XG5cbiAgaWYgKHNob3dFeGVjdXRpb25JZCkgY29uc29sZS5sb2coZGltKGBFeGVjdXRpb24gSUQ6ICR7Z2VuZXJhdGVFeGVjdXRpb25JZCgpfWApKTtcbiAgaWYgKHNob3dUaW1lc3RhbXApIGNvbnNvbGUubG9nKGRpbShgU3RhcnRlZDogJHtuZXcgRGF0ZSgpLnRvTG9jYWxlU3RyaW5nKCl9YCkpO1xuXG4gIGNvbnNvbGUubG9nKCcnKTtcbn1cblxuLyoqXG4gKiBEaXNwbGF5IGEgbWluaW1hbCBiYW5uZXIgKG5hbWUgYW5kIHZlcnNpb24gb25seSlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1pbmlCYW5uZXIoKTogdm9pZCB7XG4gIGNvbnNvbGUubG9nKFxuICAgIGdyZWVuKGJvbGQoYFske0FQUF9OQU1FLnRvVXBwZXJDYXNlKCl9XWApKSxcbiAgICBjeWFuKGB2JHtBUFBfVkVSU0lPTn1gKSxcbiAgKTtcbiAgY29uc29sZS5sb2coJycpO1xufVxuIl19
|
package/dist/utils/cdk-utils.js
CHANGED
|
@@ -1,24 +1,14 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
3
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
};
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.resolveBoilerplatePath = resolveBoilerplatePath;
|
|
9
|
-
exports.getCdkInfo = getCdkInfo;
|
|
10
|
-
exports.checkCdkAvailable = checkCdkAvailable;
|
|
11
|
-
exports.ensureCdkAvailable = ensureCdkAvailable;
|
|
12
|
-
exports.executeCdkShellCommand = executeCdkShellCommand;
|
|
13
|
-
const child_process_1 = require("child_process");
|
|
14
|
-
const path_1 = __importDefault(require("path"));
|
|
15
|
-
const output_utils_1 = require("./output-utils");
|
|
3
|
+
import { execSync } from 'child_process';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { printError } from './output-utils.js';
|
|
16
6
|
/**
|
|
17
7
|
* Path to dist/boilerplate.js. tsc emits commands at dist/commands/, so
|
|
18
8
|
* boilerplate is one level up.
|
|
19
9
|
*/
|
|
20
|
-
function resolveBoilerplatePath(callerDir) {
|
|
21
|
-
return
|
|
10
|
+
export function resolveBoilerplatePath(callerDir) {
|
|
11
|
+
return path.join(callerDir, '..', 'boilerplate.js');
|
|
22
12
|
}
|
|
23
13
|
/**
|
|
24
14
|
* Checks whether the AWS CDK CLI is installed and returns its version.
|
|
@@ -29,9 +19,9 @@ function resolveBoilerplatePath(callerDir) {
|
|
|
29
19
|
* (`$SHELL -i -c`) so node version managers like nvm/asdf and homebrew paths
|
|
30
20
|
* become visible.
|
|
31
21
|
*/
|
|
32
|
-
function getCdkInfo() {
|
|
22
|
+
export function getCdkInfo() {
|
|
33
23
|
try {
|
|
34
|
-
const output =
|
|
24
|
+
const output = execSync('cdk --version', { encoding: 'utf-8', stdio: 'pipe' });
|
|
35
25
|
return { available: true, version: output.trim() };
|
|
36
26
|
}
|
|
37
27
|
catch (firstError) {
|
|
@@ -41,7 +31,7 @@ function getCdkInfo() {
|
|
|
41
31
|
const userShell = process.env.SHELL;
|
|
42
32
|
if (userShell && !userShell.endsWith('/sh')) {
|
|
43
33
|
try {
|
|
44
|
-
const output =
|
|
34
|
+
const output = execSync('cdk --version', {
|
|
45
35
|
encoding: 'utf-8',
|
|
46
36
|
stdio: 'pipe',
|
|
47
37
|
shell: userShell,
|
|
@@ -62,7 +52,7 @@ function getCdkInfo() {
|
|
|
62
52
|
/**
|
|
63
53
|
* Checks whether the AWS CDK CLI is installed and accessible on the PATH.
|
|
64
54
|
*/
|
|
65
|
-
function checkCdkAvailable() {
|
|
55
|
+
export function checkCdkAvailable() {
|
|
66
56
|
return getCdkInfo().available;
|
|
67
57
|
}
|
|
68
58
|
/**
|
|
@@ -70,10 +60,10 @@ function checkCdkAvailable() {
|
|
|
70
60
|
* message + install hint when it isn't. Use at the top of any command that
|
|
71
61
|
* shells out to `cdk`.
|
|
72
62
|
*/
|
|
73
|
-
function ensureCdkAvailable() {
|
|
63
|
+
export function ensureCdkAvailable() {
|
|
74
64
|
if (checkCdkAvailable())
|
|
75
65
|
return;
|
|
76
|
-
|
|
66
|
+
printError('AWS CDK is not installed or not accessible');
|
|
77
67
|
console.log('Install CDK with: npm install -g aws-cdk');
|
|
78
68
|
throw new Error('AWS CDK not found');
|
|
79
69
|
}
|
|
@@ -84,7 +74,7 @@ function ensureCdkAvailable() {
|
|
|
84
74
|
* @param options - Optional execution settings.
|
|
85
75
|
* @returns An object with `success` and `duration` in ms.
|
|
86
76
|
*/
|
|
87
|
-
function executeCdkShellCommand(command, options = {}) {
|
|
77
|
+
export function executeCdkShellCommand(command, options = {}) {
|
|
88
78
|
const { debug = false, showOutput = true, env: extraEnv } = options;
|
|
89
79
|
const startTime = Date.now();
|
|
90
80
|
try {
|
|
@@ -92,7 +82,7 @@ function executeCdkShellCommand(command, options = {}) {
|
|
|
92
82
|
...process.env,
|
|
93
83
|
...extraEnv,
|
|
94
84
|
};
|
|
95
|
-
|
|
85
|
+
execSync(command, {
|
|
96
86
|
stdio: showOutput ? ['inherit', 'inherit', 'pipe'] : 'pipe',
|
|
97
87
|
env,
|
|
98
88
|
});
|
|
@@ -125,4 +115,4 @@ function executeCdkShellCommand(command, options = {}) {
|
|
|
125
115
|
throw error;
|
|
126
116
|
}
|
|
127
117
|
}
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Nkay11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsK0NBQStDO0FBQy9DLHNDQUFzQzs7Ozs7QUFVdEMsd0RBRUM7QUFpQkQsZ0NBMkJDO0FBS0QsOENBRUM7QUFPRCxnREFLQztBQTZCRCx3REE4Q0M7QUFwSkQsaURBQXlDO0FBQ3pDLGdEQUF3QjtBQUN4QixpREFBNEM7QUFFNUM7OztHQUdHO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsU0FBaUI7SUFDdEQsT0FBTyxjQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBUUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQixVQUFVO0lBQ3hCLElBQUksQ0FBQztRQUNILE1BQU0sTUFBTSxHQUFHLElBQUEsd0JBQVEsRUFBQyxlQUFlLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBQUMsT0FBTyxVQUFVLEVBQUUsQ0FBQztRQUNwQix3RUFBd0U7UUFDeEUsd0VBQXdFO1FBQ3hFLHdCQUF3QjtRQUN4QixNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQztRQUNwQyxJQUFJLFNBQVMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QyxJQUFJLENBQUM7Z0JBQ0gsTUFBTSxNQUFNLEdBQUcsSUFBQSx3QkFBUSxFQUFDLGVBQWUsRUFBRTtvQkFDdkMsUUFBUSxFQUFFLE9BQU87b0JBQ2pCLEtBQUssRUFBRSxNQUFNO29CQUNiLEtB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LENBQUM7WUFDeEUsQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsdUJBQXVCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELE1BQU0sS0FBSyxDQUFDO0lBQ2QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgZXhlY1N5bmMgfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciB9IGZyb20gJy4vb3V0cHV0LXV0aWxzJztcblxuLyoqXG4gKiBQYXRoIHRvIGRpc3QvYm9pbGVycGxhdGUuanMuIHRzYyBlbWl0cyBjb21tYW5kcyBhdCBkaXN0L2NvbW1hbmRzLywgc29cbiAqIGJvaWxlcnBsYXRlIGlzIG9uZSBsZXZlbCB1cC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVCb2lsZXJwbGF0ZVBhdGgoY2FsbGVyRGlyOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gcGF0aC5qb2luKGNhbGxlckRpciwgJy4uJywgJ2JvaWxlcnBsYXRlLmpzJyk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrSW5mbyB7XG4gIGF2YWlsYWJsZTogYm9vbGVhbjtcbiAgdmVyc2lvbjogc3RyaW5nIHwgbnVsbDtcbiAgZXJyb3I/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIEFXUyBDREsgQ0xJIGlzIGluc3RhbGxlZCBhbmQgcmV0dXJucyBpdHMgdmVyc2lvbi5cbiAqXG4gKiBUcmllcyBgY2RrIC0tdmVyc2lvbmAgZmlyc3QuIElmIHRoYXQgZmFpbHMgKHR5cGljYWxseSBiZWNhdXNlIHRoZSB1c2VyIGhhc1xuICogY2RrIG9uIFBBVEggdmlhIHRoZWlyIHNoZWxsIHJjIGJ1dCBleGVjU3luYydzIGRlZmF1bHQgYC9iaW4vc2hgIGRvZXNuJ3RcbiAqIHNvdXJjZSBpdCksIGZhbGxzIGJhY2sgdG8gcnVubmluZyB0aHJvdWdoIHRoZSB1c2VyJ3MgaW50ZXJhY3RpdmUgc2hlbGxcbiAqIChgJFNIRUxMIC1pIC1jYCkgc28gbm9kZSB2ZXJzaW9uIG1hbmFnZXJzIGxpa2UgbnZtL2FzZGYgYW5kIGhvbWVicmV3IHBhdGhzXG4gKiBiZWNvbWUgdmlzaWJsZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENka0luZm8oKTogQ2RrSW5mbyB7XG4gIHRyeSB7XG4gICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoJ2NkayAtLXZlcnNpb24nLCB7IGVuY29kaW5nOiAndXRmLTgnLCBzdGRpbzogJ3BpcGUnIH0pO1xuICAgIHJldHVybiB7IGF2YWlsYWJsZTogdHJ1ZSwgdmVyc2lvbjogb3V0cHV0LnRyaW0oKSB9O1xuICB9IGNhdGNoIChmaXJzdEVycm9yKSB7XG4gICAgLy8gRmFsbGJhY2s6IGludm9rZSB0aHJvdWdoIHRoZSB1c2VyJ3MgbG9naW4gc2hlbGwgc28gUEFUSCBmcm9tIHRoZWlyIHJjXG4gICAgLy8gZmlsZSBpcyBzb3VyY2VkLiBTa2lwIHdoZW4gU0hFTEwgaXNuJ3Qgc2V0IG9yIGlzIC9iaW4vc2ggKHdoaWNoIHdvdWxkXG4gICAgLy8gYmUgdGhlIHNhbWUgZGVmYXVsdCkuXG4gICAgY29uc3QgdXNlclNoZWxsID0gcHJvY2Vzcy5lbnYuU0hFTEw7XG4gICAgaWYgKHVzZXJTaGVsbCAmJiAhdXNlclNoZWxsLmVuZHNXaXRoKCcvc2gnKSkge1xuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3Qgb3V0cHV0ID0gZXhlY1N5bmMoJ2NkayAtLXZlcnNpb24nLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgICAgICAgc3RkaW86ICdwaXBlJyxcbiAgICAgICAgICBzaGVsbDogdXNlclNoZWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHsgYXZhaWxhYmxlOiB0cnVlLCB2ZXJzaW9uOiBvdXRwdXQudHJpbSgpIH07XG4gICAgICB9IGNhdGNoIHtcbiAgICAgICAgLy8gZmFsbCB0aHJvdWdoIHRvIHRoZSBvcmlnaW5hbCBlcnJvclxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgYXZhaWxhYmxlOiBmYWxzZSxcbiAgICAgIHZlcnNpb246IG51bGwsXG4gICAgICBlcnJvcjogZmlyc3RFcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZmlyc3RFcnJvci5tZXNzYWdlIDogJ1Vua25vd24gZXJyb3InLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgQVdTIENESyBDTEkgaXMgaW5zdGFsbGVkIGFuZCBhY2Nlc3NpYmxlIG9uIHRoZSBQQVRILlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tDZGtBdmFpbGFibGUoKTogYm9vbGVhbiB7XG4gIHJldHVybiBnZXRDZGtJbmZvKCkuYXZhaWxhYmxlO1xufVxuXG4vKipcbiAqIEFzc2VydHMgdGhhdCB0aGUgQVdTIENESyBDTEkgaXMgaW5zdGFsbGVkOyB0aHJvd3Mgd2l0aCBhIHVzZXItZnJpZW5kbHlcbiAqIG1lc3NhZ2UgKyBpbnN0YWxsIGhpbnQgd2hlbiBpdCBpc24ndC4gVXNlIGF0IHRoZSB0b3Agb2YgYW55IGNvbW1hbmQgdGhhdFxuICogc2hlbGxzIG91dCB0byBgY2RrYC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVuc3VyZUNka0F2YWlsYWJsZSgpOiB2b2lkIHtcbiAgaWYgKGNoZWNrQ2RrQXZhaWxhYmxlKCkpIHJldHVybjtcbiAgcHJpbnRFcnJvcignQVdTIENESyBpcyBub3QgaW5zdGFsbGVkIG9yIG5vdCBhY2Nlc3NpYmxlJyk7XG4gIGNvbnNvbGUubG9nKCdJbnN0YWxsIENESyB3aXRoOiBucG0gaW5zdGFsbCAtZyBhd3MtY2RrJyk7XG4gIHRocm93IG5ldyBFcnJvcignQVdTIENESyBub3QgZm91bmQnKTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBleGVjdXRpbmcgYSBDREsgc2hlbGwgY29tbWFuZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtTaGVsbE9wdGlvbnMge1xuICAvKiogV2hlbiBgdHJ1ZWAsIHByaW50cyB0aGUgZXJyb3IgdG8gc3RkZXJyIG9uIGZhaWx1cmUuICovXG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgLyoqIFdoZW4gYHRydWVgLCBpbmhlcml0cyBzdGRpbyBzbyBvdXRwdXQgc3RyZWFtcyB0byB0aGUgdGVybWluYWwuIERlZmF1bHRzIHRvIGB0cnVlYC4gKi9cbiAgc2hvd091dHB1dD86IGJvb2xlYW47XG4gIC8qKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBpbmplY3QuICovXG4gIGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogUmVzdWx0IG9mIGEgQ0RLIHNoZWxsIGNvbW1hbmQgZXhlY3V0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENka1NoZWxsUmVzdWx0IHtcbiAgc3VjY2VzczogYm9vbGVhbjtcbiAgZHVyYXRpb246IG51bWJlcjtcbn1cblxuLyoqXG4gKiBFeGVjdXRlcyBhIENESyBDTEkgY29tbWFuZCBhcyBhIGNoaWxkIHByb2Nlc3MuXG4gKlxuICogQHBhcmFtIGNvbW1hbmQgLSBUaGUgZnVsbCBDREsgQ0xJIGNvbW1hbmQgc3RyaW5nIChlLmcuLCBgY2RrIGJvb3RzdHJhcCAuLi5gKS5cbiAqIEBwYXJhbSBvcHRpb25zIC0gT3B0aW9uYWwgZXhlY3V0aW9uIHNldHRpbmdzLlxuICogQHJldHVybnMgQW4gb2JqZWN0IHdpdGggYHN1Y2Nlc3NgIGFuZCBgZHVyYXRpb25gIGluIG1zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZXhlY3V0ZUNka1NoZWxsQ29tbWFuZChcbiAgY29tbWFuZDogc3RyaW5nLFxuICBvcHRpb25zOiBDZGtTaGVsbE9wdGlvbnMgPSB7fSxcbik6IENka1NoZWxsUmVzdWx0IHtcbiAgY29uc3QgeyBkZWJ1ZyA9IGZhbHNlLCBzaG93T3V0cHV0ID0gdHJ1ZSwgZW52OiBleHRyYUVudiB9ID0gb3B0aW9ucztcbiAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcblxuICB0cnkge1xuICAgIGNvbnN0IGVudiA9IHtcbiAgICAgIC4uLnByb2Nlc3MuZW52LFxuICAgICAgLi4uZXh0cmFFbnYsXG4gICAgfTtcblxuICAgIGV4ZWNTeW5jKGNvbW1hbmQsIHtcbiAgICAgIHN0ZGlvOiBzaG93T3V0cHV0ID8gWydpbmhlcml0JywgJ2luaGVyaXQnLCAncGlwZSddIDogJ3BpcGUnLFxuICAgICAgZW52LFxuICAgIH0pO1xuXG4gICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICBkdXJhdGlvbixcbiAgICB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcblxuICAgIC8vIEV4dHJhY3Qgc3RkZXJyL3N0ZG91dCBmcm9tIGV4ZWNTeW5jIGVycm9yIHdoZW4gYXZhaWxhYmxlXG4gICAgaWYgKGVycm9yICYmIHR5cGVvZiBlcnJvciA9PT0gJ29iamVjdCcgJiYgJ3N0ZGVycicgaW4gZXJyb3IpIHtcbiAgICAgIGNvbnN0IGV4ZWNFcnJvciA9IGVycm9yIGFzIHsgc3RkZXJyPzogQnVmZmVyIHwgc3RyaW5nOyBzdGRvdXQ/OiBCdWZmZXIgfCBzdHJpbmc7IHN0YXR1cz86IG51bWJlciB9O1xuICAgICAgY29uc3Qgc3RkZXJyID0gZXhlY0Vycm9yLnN0ZGVycj8udG9TdHJpbmcoKS50cmltKCk7XG4gICAgICBjb25zdCBzdGRvdXQgPSBleGVjRXJyb3Iuc3Rkb3V0Py50b1N0cmluZygpLnRyaW0oKTtcblxuICAgICAgY29uc29sZS5lcnJvcignJyk7XG4gICAgICBjb25zb2xlLmVycm9yKCdDREsgZGVwbG95bWVudCBmYWlsZWQ6Jyk7XG4gICAgICBpZiAoc3RkZXJyKSBjb25zb2xlLmVycm9yKHN0ZGVycik7XG4gICAgICBpZiAoc3Rkb3V0KSBjb25zb2xlLmVycm9yKHN0ZG91dCk7XG4gICAgICBpZiAoZXhlY0Vycm9yLnN0YXR1cyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYEV4aXQgY29kZTogJHtleGVjRXJyb3Iuc3RhdHVzfSAoYWZ0ZXIgJHtkdXJhdGlvbn1tcylgKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGRlYnVnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdDREsgZXhlY3V0aW9uIGZhaWxlZDonLCBlcnJvcik7XG4gICAgfVxuXG4gICAgdGhyb3cgZXJyb3I7XG4gIH1cbn1cbiJdfQ==
|
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2Nkay11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQzs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsU0FBaUI7SUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUN0RCxDQUFDO0FBUUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsVUFBVTtJQUN4QixJQUFJLENBQUM7UUFDSCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsZUFBZSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMvRSxPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUFDLE9BQU8sVUFBVSxFQUFFLENBQUM7UUFDcEIsd0VBQXdFO1FBQ3hFLHdFQUF3RTtRQUN4RSx3QkFBd0I7UUFDeEIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxTQUFTLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDNUMsSUFBSSxDQUFDO2dCQUNILE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxlQUFlLEVBQUU7b0JBQ3ZDLFFBQVEsRUFBRSxPQUFPO29CQUNqQixLQUFLLEVBQUUsTUFBTTtv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QUssQ0FBQyxDQUFDO1lBQ3hFLENBQUM7UUFDSCxDQUFDO2FBQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNqQixPQUFPLENBQUMsS0FBSyxDQUFDLHVCQUF1QixFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELENBQUM7UUFFRCxNQUFNLEtBQUssQ0FBQztJQUNkLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGV4ZWNTeW5jIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IHByaW50RXJyb3IgfSBmcm9tICcuL291dHB1dC11dGlscy5qcyc7XG5cbi8qKlxuICogUGF0aCB0byBkaXN0L2JvaWxlcnBsYXRlLmpzLiB0c2MgZW1pdHMgY29tbWFuZHMgYXQgZGlzdC9jb21tYW5kcy8sIHNvXG4gKiBib2lsZXJwbGF0ZSBpcyBvbmUgbGV2ZWwgdXAuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlQm9pbGVycGxhdGVQYXRoKGNhbGxlckRpcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHBhdGguam9pbihjYWxsZXJEaXIsICcuLicsICdib2lsZXJwbGF0ZS5qcycpO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0luZm8ge1xuICBhdmFpbGFibGU6IGJvb2xlYW47XG4gIHZlcnNpb246IHN0cmluZyB8IG51bGw7XG4gIGVycm9yPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBBV1MgQ0RLIENMSSBpcyBpbnN0YWxsZWQgYW5kIHJldHVybnMgaXRzIHZlcnNpb24uXG4gKlxuICogVHJpZXMgYGNkayAtLXZlcnNpb25gIGZpcnN0LiBJZiB0aGF0IGZhaWxzICh0eXBpY2FsbHkgYmVjYXVzZSB0aGUgdXNlciBoYXNcbiAqIGNkayBvbiBQQVRIIHZpYSB0aGVpciBzaGVsbCByYyBidXQgZXhlY1N5bmMncyBkZWZhdWx0IGAvYmluL3NoYCBkb2Vzbid0XG4gKiBzb3VyY2UgaXQpLCBmYWxscyBiYWNrIHRvIHJ1bm5pbmcgdGhyb3VnaCB0aGUgdXNlcidzIGludGVyYWN0aXZlIHNoZWxsXG4gKiAoYCRTSEVMTCAtaSAtY2ApIHNvIG5vZGUgdmVyc2lvbiBtYW5hZ2VycyBsaWtlIG52bS9hc2RmIGFuZCBob21lYnJldyBwYXRoc1xuICogYmVjb21lIHZpc2libGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRDZGtJbmZvKCk6IENka0luZm8ge1xuICB0cnkge1xuICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKCdjZGsgLS12ZXJzaW9uJywgeyBlbmNvZGluZzogJ3V0Zi04Jywgc3RkaW86ICdwaXBlJyB9KTtcbiAgICByZXR1cm4geyBhdmFpbGFibGU6IHRydWUsIHZlcnNpb246IG91dHB1dC50cmltKCkgfTtcbiAgfSBjYXRjaCAoZmlyc3RFcnJvcikge1xuICAgIC8vIEZhbGxiYWNrOiBpbnZva2UgdGhyb3VnaCB0aGUgdXNlcidzIGxvZ2luIHNoZWxsIHNvIFBBVEggZnJvbSB0aGVpciByY1xuICAgIC8vIGZpbGUgaXMgc291cmNlZC4gU2tpcCB3aGVuIFNIRUxMIGlzbid0IHNldCBvciBpcyAvYmluL3NoICh3aGljaCB3b3VsZFxuICAgIC8vIGJlIHRoZSBzYW1lIGRlZmF1bHQpLlxuICAgIGNvbnN0IHVzZXJTaGVsbCA9IHByb2Nlc3MuZW52LlNIRUxMO1xuICAgIGlmICh1c2VyU2hlbGwgJiYgIXVzZXJTaGVsbC5lbmRzV2l0aCgnL3NoJykpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IG91dHB1dCA9IGV4ZWNTeW5jKCdjZGsgLS12ZXJzaW9uJywge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICAgIHN0ZGlvOiAncGlwZScsXG4gICAgICAgICAgc2hlbGw6IHVzZXJTaGVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7IGF2YWlsYWJsZTogdHJ1ZSwgdmVyc2lvbjogb3V0cHV0LnRyaW0oKSB9O1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8vIGZhbGwgdGhyb3VnaCB0byB0aGUgb3JpZ2luYWwgZXJyb3JcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIGF2YWlsYWJsZTogZmFsc2UsXG4gICAgICB2ZXJzaW9uOiBudWxsLFxuICAgICAgZXJyb3I6IGZpcnN0RXJyb3IgaW5zdGFuY2VvZiBFcnJvciA/IGZpcnN0RXJyb3IubWVzc2FnZSA6ICdVbmtub3duIGVycm9yJyxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIEFXUyBDREsgQ0xJIGlzIGluc3RhbGxlZCBhbmQgYWNjZXNzaWJsZSBvbiB0aGUgUEFUSC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrQ2RrQXZhaWxhYmxlKCk6IGJvb2xlYW4ge1xuICByZXR1cm4gZ2V0Q2RrSW5mbygpLmF2YWlsYWJsZTtcbn1cblxuLyoqXG4gKiBBc3NlcnRzIHRoYXQgdGhlIEFXUyBDREsgQ0xJIGlzIGluc3RhbGxlZDsgdGhyb3dzIHdpdGggYSB1c2VyLWZyaWVuZGx5XG4gKiBtZXNzYWdlICsgaW5zdGFsbCBoaW50IHdoZW4gaXQgaXNuJ3QuIFVzZSBhdCB0aGUgdG9wIG9mIGFueSBjb21tYW5kIHRoYXRcbiAqIHNoZWxscyBvdXQgdG8gYGNka2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnN1cmVDZGtBdmFpbGFibGUoKTogdm9pZCB7XG4gIGlmIChjaGVja0Nka0F2YWlsYWJsZSgpKSByZXR1cm47XG4gIHByaW50RXJyb3IoJ0FXUyBDREsgaXMgbm90IGluc3RhbGxlZCBvciBub3QgYWNjZXNzaWJsZScpO1xuICBjb25zb2xlLmxvZygnSW5zdGFsbCBDREsgd2l0aDogbnBtIGluc3RhbGwgLWcgYXdzLWNkaycpO1xuICB0aHJvdyBuZXcgRXJyb3IoJ0FXUyBDREsgbm90IGZvdW5kJyk7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgZXhlY3V0aW5nIGEgQ0RLIHNoZWxsIGNvbW1hbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrU2hlbGxPcHRpb25zIHtcbiAgLyoqIFdoZW4gYHRydWVgLCBwcmludHMgdGhlIGVycm9yIHRvIHN0ZGVyciBvbiBmYWlsdXJlLiAqL1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIC8qKiBXaGVuIGB0cnVlYCwgaW5oZXJpdHMgc3RkaW8gc28gb3V0cHV0IHN0cmVhbXMgdG8gdGhlIHRlcm1pbmFsLiBEZWZhdWx0cyB0byBgdHJ1ZWAuICovXG4gIHNob3dPdXRwdXQ/OiBib29sZWFuO1xuICAvKiogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gaW5qZWN0LiAqL1xuICBlbnY/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xufVxuXG4vKipcbiAqIFJlc3VsdCBvZiBhIENESyBzaGVsbCBjb21tYW5kIGV4ZWN1dGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDZGtTaGVsbFJlc3VsdCB7XG4gIHN1Y2Nlc3M6IGJvb2xlYW47XG4gIGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogRXhlY3V0ZXMgYSBDREsgQ0xJIGNvbW1hbmQgYXMgYSBjaGlsZCBwcm9jZXNzLlxuICpcbiAqIEBwYXJhbSBjb21tYW5kIC0gVGhlIGZ1bGwgQ0RLIENMSSBjb21tYW5kIHN0cmluZyAoZS5nLiwgYGNkayBib290c3RyYXAgLi4uYCkuXG4gKiBAcGFyYW0gb3B0aW9ucyAtIE9wdGlvbmFsIGV4ZWN1dGlvbiBzZXR0aW5ncy5cbiAqIEByZXR1cm5zIEFuIG9iamVjdCB3aXRoIGBzdWNjZXNzYCBhbmQgYGR1cmF0aW9uYCBpbiBtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGV4ZWN1dGVDZGtTaGVsbENvbW1hbmQoXG4gIGNvbW1hbmQ6IHN0cmluZyxcbiAgb3B0aW9uczogQ2RrU2hlbGxPcHRpb25zID0ge30sXG4pOiBDZGtTaGVsbFJlc3VsdCB7XG4gIGNvbnN0IHsgZGVidWcgPSBmYWxzZSwgc2hvd091dHB1dCA9IHRydWUsIGVudjogZXh0cmFFbnYgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XG5cbiAgdHJ5IHtcbiAgICBjb25zdCBlbnYgPSB7XG4gICAgICAuLi5wcm9jZXNzLmVudixcbiAgICAgIC4uLmV4dHJhRW52LFxuICAgIH07XG5cbiAgICBleGVjU3luYyhjb21tYW5kLCB7XG4gICAgICBzdGRpbzogc2hvd091dHB1dCA/IFsnaW5oZXJpdCcsICdpbmhlcml0JywgJ3BpcGUnXSA6ICdwaXBlJyxcbiAgICAgIGVudixcbiAgICB9KTtcblxuICAgIGNvbnN0IGR1cmF0aW9uID0gRGF0ZS5ub3coKSAtIHN0YXJ0VGltZTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgZHVyYXRpb24sXG4gICAgfTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAvLyBFeHRyYWN0IHN0ZGVyci9zdGRvdXQgZnJvbSBleGVjU3luYyBlcnJvciB3aGVuIGF2YWlsYWJsZVxuICAgIGlmIChlcnJvciAmJiB0eXBlb2YgZXJyb3IgPT09ICdvYmplY3QnICYmICdzdGRlcnInIGluIGVycm9yKSB7XG4gICAgICBjb25zdCBleGVjRXJyb3IgPSBlcnJvciBhcyB7IHN0ZGVycj86IEJ1ZmZlciB8IHN0cmluZzsgc3Rkb3V0PzogQnVmZmVyIHwgc3RyaW5nOyBzdGF0dXM/OiBudW1iZXIgfTtcbiAgICAgIGNvbnN0IHN0ZGVyciA9IGV4ZWNFcnJvci5zdGRlcnI/LnRvU3RyaW5nKCkudHJpbSgpO1xuICAgICAgY29uc3Qgc3Rkb3V0ID0gZXhlY0Vycm9yLnN0ZG91dD8udG9TdHJpbmcoKS50cmltKCk7XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IoJycpO1xuICAgICAgY29uc29sZS5lcnJvcignQ0RLIGRlcGxveW1lbnQgZmFpbGVkOicpO1xuICAgICAgaWYgKHN0ZGVycikgY29uc29sZS5lcnJvcihzdGRlcnIpO1xuICAgICAgaWYgKHN0ZG91dCkgY29uc29sZS5lcnJvcihzdGRvdXQpO1xuICAgICAgaWYgKGV4ZWNFcnJvci5zdGF0dXMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKGBFeGl0IGNvZGU6ICR7ZXhlY0Vycm9yLnN0YXR1c30gKGFmdGVyICR7ZHVyYXRpb259bXMpYCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChkZWJ1Zykge1xuICAgICAgY29uc29sZS5lcnJvcignQ0RLIGV4ZWN1dGlvbiBmYWlsZWQ6JywgZXJyb3IpO1xuICAgIH1cblxuICAgIHRocm93IGVycm9yO1xuICB9XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-utils.d.ts","sourceRoot":"","sources":["../../src/utils/command-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"command-utils.d.ts","sourceRoot":"","sources":["../../src/utils/command-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAQ5C;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAM3E;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAKzD;AAED;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAiClB;AAED;;;;;;GAMG;AACH,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,SAAS,CAAC,CAQrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAYrF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBnF"}
|