@pipeline-builder/pipeline-manager 4.5.2 → 4.5.4
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 +62 -37
- package/dist/agent/post-steps.d.ts +5 -4
- package/dist/agent/post-steps.d.ts.map +1 -1
- package/dist/agent/post-steps.js +19 -7
- package/dist/agent/targets.d.ts +12 -2
- package/dist/agent/targets.d.ts.map +1 -1
- package/dist/agent/targets.js +20 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +16 -7
- package/dist/commands/audit-stacks.d.ts +42 -1
- package/dist/commands/audit-stacks.d.ts.map +1 -1
- package/dist/commands/audit-stacks.js +104 -23
- package/dist/commands/audit-tokens.d.ts.map +1 -1
- package/dist/commands/audit-tokens.js +3 -4
- package/dist/commands/create-pat.d.ts.map +1 -1
- package/dist/commands/create-pat.js +9 -6
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +15 -2
- package/dist/commands/login.d.ts +3 -2
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +19 -10
- package/dist/commands/logout.d.ts +24 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +105 -0
- package/dist/commands/new-plugin.js +5 -5
- package/dist/commands/org-export.js +2 -2
- package/dist/commands/pipeline-remove.d.ts +26 -0
- package/dist/commands/pipeline-remove.d.ts.map +1 -0
- package/dist/commands/pipeline-remove.js +84 -0
- package/dist/commands/provision-steps.d.ts.map +1 -1
- package/dist/commands/provision-steps.js +1 -2
- package/dist/commands/provision.d.ts.map +1 -1
- package/dist/commands/provision.js +6 -5
- package/dist/commands/register.d.ts.map +1 -1
- package/dist/commands/register.js +3 -4
- package/dist/commands/status.d.ts +5 -2
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +65 -25
- package/dist/commands/toolchain.d.ts +21 -0
- package/dist/commands/toolchain.d.ts.map +1 -0
- package/dist/commands/toolchain.js +70 -0
- package/dist/commands/validate-templates.d.ts.map +1 -1
- package/dist/commands/validate-templates.js +4 -5
- package/dist/config/cli.constants.d.ts +8 -0
- package/dist/config/cli.constants.d.ts.map +1 -1
- package/dist/config/cli.constants.js +21 -2
- package/dist/types/plugin.d.ts +0 -6
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/types/plugin.js +1 -1
- package/dist/utils/command-utils.d.ts +13 -0
- package/dist/utils/command-utils.d.ts.map +1 -1
- package/dist/utils/command-utils.js +31 -17
- package/dist/utils/config-loader.d.ts +2 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +14 -4
- package/dist/utils/credential-store.d.ts +9 -1
- package/dist/utils/credential-store.d.ts.map +1 -1
- package/dist/utils/credential-store.js +21 -2
- package/dist/utils/error-handler.d.ts +10 -1
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +20 -8
- package/dist/utils/pipeline-config.d.ts +5 -2
- package/dist/utils/pipeline-config.d.ts.map +1 -1
- package/dist/utils/pipeline-config.js +12 -3
- package/dist/utils/plugin-resolver.d.ts +21 -6
- package/dist/utils/plugin-resolver.d.ts.map +1 -1
- package/dist/utils/plugin-resolver.js +42 -9
- package/dist/utils/response-utils.d.ts +11 -0
- package/dist/utils/response-utils.d.ts.map +1 -1
- package/dist/utils/response-utils.js +23 -1
- package/dist/utils/toolchain.d.ts +78 -0
- package/dist/utils/toolchain.d.ts.map +1 -0
- package/dist/utils/toolchain.js +195 -0
- package/package.json +4 -4
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { errorMessage } from '@pipeline-builder/api-core';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { Command } from 'commander';
|
|
6
|
+
import { TIMEOUTS } from '../config/cli.constants.js';
|
|
7
|
+
import { assertCredentialTlsAllowed, credentialHttpsAgent } from '../utils/auth-utils.js';
|
|
8
|
+
import { printCommandHeader, refreshStoredSession, withSslOptions } from '../utils/command-utils.js';
|
|
9
|
+
import { getApiConfig } from '../utils/config-loader.js';
|
|
10
|
+
import { clearSession, isSessionUsable, loadSession } from '../utils/credential-store.js';
|
|
11
|
+
import { ERROR_CODES, handleError } from '../utils/error-handler.js';
|
|
12
|
+
import { printInfo, printSuccess, printWarning } from '../utils/output-utils.js';
|
|
13
|
+
import { requestCorrelationHeaders } from '../utils/request-context.js';
|
|
14
|
+
/**
|
|
15
|
+
* Registers the `logout` command with the CLI program.
|
|
16
|
+
*
|
|
17
|
+
* Signs this device out of a platform: revokes the stored session's refresh
|
|
18
|
+
* slot on the platform (`POST /api/auth/logout`) and deletes it from the
|
|
19
|
+
* credential store. The platform call is best effort — the local copy is always
|
|
20
|
+
* removed, and when the platform could not be told the command says so, since
|
|
21
|
+
* the refresh token then stays valid until it is revoked from the web UI.
|
|
22
|
+
*
|
|
23
|
+
* An expired access token is renewed first (logout needs a valid one), so a
|
|
24
|
+
* device idle for days can still sign itself out properly.
|
|
25
|
+
*
|
|
26
|
+
* `PLATFORM_TOKEN` is not touched: it is the caller's own environment variable,
|
|
27
|
+
* and an access key is revoked from the keys page, not by signing out.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```bash
|
|
31
|
+
* pipeline-manager auth logout
|
|
32
|
+
* pipeline-manager auth logout --url https://platform.example.com
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export function logout(program) {
|
|
36
|
+
withSslOptions(program
|
|
37
|
+
.command('logout')
|
|
38
|
+
.description('Sign this device out: revoke the stored session on the platform and delete it locally')
|
|
39
|
+
.option('--url <url>', 'Platform base URL (default: PLATFORM_BASE_URL, else the platform you last signed in to, else config.yml)'))
|
|
40
|
+
.action(async (options) => {
|
|
41
|
+
// The request carries a bearer credential (and a renewal spends the
|
|
42
|
+
// refresh token), so the same TLS refusal as login applies.
|
|
43
|
+
assertCredentialTlsAllowed(options.verifySsl);
|
|
44
|
+
const url = options.url ?? getApiConfig().api.baseUrl;
|
|
45
|
+
const executionId = printCommandHeader('Logout', 'Sign out of the platform');
|
|
46
|
+
try {
|
|
47
|
+
const stored = loadSession(url);
|
|
48
|
+
if (!stored) {
|
|
49
|
+
printInfo('No stored session for this platform — nothing to sign out', { platform: url });
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
// 'revoked' — the platform ended it now; 'dead' — the platform had already
|
|
53
|
+
// refused it (renewal rejected, or no refresh token left to renew with);
|
|
54
|
+
// 'unknown' — the platform could not be reached.
|
|
55
|
+
let outcome = 'unknown';
|
|
56
|
+
try {
|
|
57
|
+
const accessToken = isSessionUsable(stored)
|
|
58
|
+
? stored.accessToken
|
|
59
|
+
: await refreshStoredSession(url, stored);
|
|
60
|
+
if (accessToken) {
|
|
61
|
+
await axios.post(`${url}/api/auth/logout`, {}, {
|
|
62
|
+
headers: {
|
|
63
|
+
'Content-Type': 'application/json',
|
|
64
|
+
'Authorization': `Bearer ${accessToken}`,
|
|
65
|
+
// The CSRF gate on /auth/logout (see platform requireClientType).
|
|
66
|
+
'X-Pb-Client': 'cli',
|
|
67
|
+
...requestCorrelationHeaders(),
|
|
68
|
+
},
|
|
69
|
+
httpsAgent: credentialHttpsAgent(options.verifySsl),
|
|
70
|
+
timeout: TIMEOUTS.HTTP_REQUEST,
|
|
71
|
+
});
|
|
72
|
+
outcome = 'revoked';
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
outcome = 'dead';
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
const status = axios.isAxiosError(error) ? error.response?.status : undefined;
|
|
80
|
+
printWarning('Could not revoke the session on the platform', {
|
|
81
|
+
...(status !== undefined ? { status } : {}),
|
|
82
|
+
error: errorMessage(error),
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
clearSession(url);
|
|
86
|
+
if (outcome === 'revoked') {
|
|
87
|
+
printSuccess('Signed out — the session is revoked and removed from this device');
|
|
88
|
+
}
|
|
89
|
+
else if (outcome === 'dead') {
|
|
90
|
+
printSuccess('Removed the stored session from this device (the platform had already ended it)');
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
printSuccess('Removed the stored session from this device');
|
|
94
|
+
printWarning('The platform was not told: revoke this device under Settings → Sessions and devices');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
handleError(error, ERROR_CODES.AUTHENTICATION, {
|
|
99
|
+
exit: true,
|
|
100
|
+
context: { command: 'logout', executionId, url },
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb3V0LmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvbG9nb3V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFeEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JHO0FBQ0gsTUFBTSxVQUFVLE1BQU0sQ0FBQyxPQUFnQjtJQUNyQyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQyx1RkFBdUYsQ0FBQztTQUNwRyxNQUFNLENBQUMsYUFBYSxFQUFFLDBHQUEwRyxDQUFDLENBQUM7U0FDbEksTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4Qixv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Q0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgYXhpb3MgZnJvbSAnYXhpb3MnO1xuaW1wb3J0IHsgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgeyBUSU1FT1VUUyB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7IGFzc2VydENyZWRlbnRpYWxUbHNBbGxvd2VkLCBjcmVkZW50aWFsSHR0cHNBZ2VudCB9IGZyb20gJy4uL3V0aWxzL2F1dGgtdXRpbHMuanMnO1xuaW1wb3J0IHsgcHJpbnRDb21tYW5kSGVhZGVyLCByZWZyZXNoU3RvcmVkU2Vzc2lvbiwgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IGdldEFwaUNvbmZpZyB9IGZyb20gJy4uL3V0aWxzL2NvbmZpZy1sb2FkZXIuanMnO1xuaW1wb3J0IHsgY2xlYXJTZXNzaW9uLCBpc1Nlc3Npb25Vc2FibGUsIGxvYWRTZXNzaW9uIH0gZnJvbSAnLi4vdXRpbHMvY3JlZGVudGlhbC1zdG9yZS5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuLi91dGlscy9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcmVxdWVzdENvcnJlbGF0aW9uSGVhZGVycyB9IGZyb20gJy4uL3V0aWxzL3JlcXVlc3QtY29udGV4dC5qcyc7XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgbG9nb3V0YCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIFNpZ25zIHRoaXMgZGV2aWNlIG91dCBvZiBhIHBsYXRmb3JtOiByZXZva2VzIHRoZSBzdG9yZWQgc2Vzc2lvbidzIHJlZnJlc2hcbiAqIHNsb3Qgb24gdGhlIHBsYXRmb3JtIChgUE9TVCAvYXBpL2F1dGgvbG9nb3V0YCkgYW5kIGRlbGV0ZXMgaXQgZnJvbSB0aGVcbiAqIGNyZWRlbnRpYWwgc3RvcmUuIFRoZSBwbGF0Zm9ybSBjYWxsIGlzIGJlc3QgZWZmb3J0IOKAlCB0aGUgbG9jYWwgY29weSBpcyBhbHdheXNcbiAqIHJlbW92ZWQsIGFuZCB3aGVuIHRoZSBwbGF0Zm9ybSBjb3VsZCBub3QgYmUgdG9sZCB0aGUgY29tbWFuZCBzYXlzIHNvLCBzaW5jZVxuICogdGhlIHJlZnJlc2ggdG9rZW4gdGhlbiBzdGF5cyB2YWxpZCB1bnRpbCBpdCBpcyByZXZva2VkIGZyb20gdGhlIHdlYiBVSS5cbiAqXG4gKiBBbiBleHBpcmVkIGFjY2VzcyB0b2tlbiBpcyByZW5ld2VkIGZpcnN0IChsb2dvdXQgbmVlZHMgYSB2YWxpZCBvbmUpLCBzbyBhXG4gKiBkZXZpY2UgaWRsZSBmb3IgZGF5cyBjYW4gc3RpbGwgc2lnbiBpdHNlbGYgb3V0IHByb3Blcmx5LlxuICpcbiAqIGBQTEFURk9STV9UT0tFTmAgaXMgbm90IHRvdWNoZWQ6IGl0IGlzIHRoZSBjYWxsZXIncyBvd24gZW52aXJvbm1lbnQgdmFyaWFibGUsXG4gKiBhbmQgYW4gYWNjZXNzIGtleSBpcyByZXZva2VkIGZyb20gdGhlIGtleXMgcGFnZSwgbm90IGJ5IHNpZ25pbmcgb3V0LlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9nb3V0XG4gKiBwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9nb3V0IC0tdXJsIGh0dHBzOi8vcGxhdGZvcm0uZXhhbXBsZS5jb21cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9nb3V0KHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdsb2dvdXQnKVxuICAgIC5kZXNjcmlwdGlvbignU2lnbiB0aGlzIGRldmljZSBvdXQ6IHJldm9rZSB0aGUgc3RvcmVkIHNlc3Npb24gb24gdGhlIHBsYXRmb3JtIGFuZCBkZWxldGUgaXQgbG9jYWxseScpXG4gICAgLm9wdGlvbignLS11cmwgPHVybD4nLCAnUGxhdGZvcm0gYmFzZSBVUkwgKGRlZmF1bHQ6IFBMQVRGT1JNX0JBU0VfVVJMLCBlbHNlIHRoZSBwbGF0Zm9ybSB5b3UgbGFzdCBzaWduZWQgaW4gdG8sIGVsc2UgY29uZmlnLnltbCknKSlcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICAvLyBUaGUgcmVxdWVzdCBjYXJyaWVzIGEgYmVhcmVyIGNyZWRlbnRpYWwgKGFuZCBhIHJlbmV3YWwgc3BlbmRzIHRoZVxuICAgICAgLy8gcmVmcmVzaCB0b2tlbiksIHNvIHRoZSBzYW1lIFRMUyByZWZ1c2FsIGFzIGxvZ2luIGFwcGxpZXMuXG4gICAgICBhc3NlcnRDcmVkZW50aWFsVGxzQWxsb3dlZChvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgIGNvbnN0IHVybDogc3RyaW5nID0gb3B0aW9ucy51cmwgPz8gZ2V0QXBpQ29uZmlnKCkuYXBpLmJhc2VVcmw7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignTG9nb3V0JywgJ1NpZ24gb3V0IG9mIHRoZSBwbGF0Zm9ybScpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzdG9yZWQgPSBsb2FkU2Vzc2lvbih1cmwpO1xuICAgICAgICBpZiAoIXN0b3JlZCkge1xuICAgICAgICAgIHByaW50SW5mbygnTm8gc3RvcmVkIHNlc3Npb24gZm9yIHRoaXMgcGxhdGZvcm0g4oCUIG5vdGhpbmcgdG8gc2lnbiBvdXQnLCB7IHBsYXRmb3JtOiB1cmwgfSk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gJ3Jldm9rZWQnIOKAlCB0aGUgcGxhdGZvcm0gZW5kZWQgaXQgbm93OyAnZGVhZCcg4oCUIHRoZSBwbGF0Zm9ybSBoYWQgYWxyZWFkeVxuICAgICAgICAvLyByZWZ1c2VkIGl0IChyZW5ld2FsIHJlamVjdGVkLCBvciBubyByZWZyZXNoIHRva2VuIGxlZnQgdG8gcmVuZXcgd2l0aCk7XG4gICAgICAgIC8vICd1bmtub3duJyDigJQgdGhlIHBsYXRmb3JtIGNvdWxkIG5vdCBiZSByZWFjaGVkLlxuICAgICAgICBsZXQgb3V0Y29tZTogJ3Jldm9rZWQnIHwgJ2RlYWQnIHwgJ3Vua25vd24nID0gJ3Vua25vd24nO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gaXNTZXNzaW9uVXNhYmxlKHN0b3JlZClcbiAgICAgICAgICAgID8gc3RvcmVkLmFjY2Vzc1Rva2VuXG4gICAgICAgICAgICA6IGF3YWl0IHJlZnJlc2hTdG9yZWRTZXNzaW9uKHVybCwgc3RvcmVkKTtcbiAgICAgICAgICBpZiAoYWNjZXNzVG9rZW4pIHtcbiAgICAgICAgICAgIGF3YWl0IGF4aW9zLnBvc3QoYCR7dXJsfS9hcGkvYXV0aC9sb2dvdXRgLCB7fSwge1xuICAgICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6IGBCZWFyZXIgJHthY2Nlc3NUb2tlbn1gLFxuICAgICAgICAgICAgICAgIC8vIFRoZSBDU1JGIGdhdGUgb24gL2F1dGgvbG9nb3V0IChzZWUgcGxhdGZvcm0gcmVxdWlyZUNsaWVudFR5cGUpLlxuICAgICAgICAgICAgICAgICdYLVBiLUNsaWVudCc6ICdjbGknLFxuICAgICAgICAgICAgICAgIC4uLnJlcXVlc3RDb3JyZWxhdGlvbkhlYWRlcnMoKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaHR0cHNBZ2VudDogY3JlZGVudGlhbEh0dHBzQWdlbnQob3B0aW9ucy52ZXJpZnlTc2wpLFxuICAgICAgICAgICAgICB0aW1lb3V0OiBUSU1FT1VUUy5IVFRQX1JFUVVFU1QsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG91dGNvbWUgPSAncmV2b2tlZCc7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG91dGNvbWUgPSAnZGVhZCc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IGF4aW9zLmlzQXhpb3NFcnJvcihlcnJvcikgPyBlcnJvci5yZXNwb25zZT8uc3RhdHVzIDogdW5kZWZpbmVkO1xuICAgICAgICAgIHByaW50V2FybmluZygnQ291bGQgbm90IHJldm9rZSB0aGUgc2Vzc2lvbiBvbiB0aGUgcGxhdGZvcm0nLCB7XG4gICAgICAgICAgICAuLi4oc3RhdHVzICE9PSB1bmRlZmluZWQgPyB7IHN0YXR1cyB9IDoge30pLFxuICAgICAgICAgICAgZXJyb3I6IGVycm9yTWVzc2FnZShlcnJvciksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICBjbGVhclNlc3Npb24odXJsKTtcblxuICAgICAgICBpZiAob3V0Y29tZSA9PT0gJ3Jldm9rZWQnKSB7XG4gICAgICAgICAgcHJpbnRTdWNjZXNzKCdTaWduZWQgb3V0IOKAlCB0aGUgc2Vzc2lvbiBpcyByZXZva2VkIGFuZCByZW1vdmVkIGZyb20gdGhpcyBkZXZpY2UnKTtcbiAgICAgICAgfSBlbHNlIGlmIChvdXRjb21lID09PSAnZGVhZCcpIHtcbiAgICAgICAgICBwcmludFN1Y2Nlc3MoJ1JlbW92ZWQgdGhlIHN0b3JlZCBzZXNzaW9uIGZyb20gdGhpcyBkZXZpY2UgKHRoZSBwbGF0Zm9ybSBoYWQgYWxyZWFkeSBlbmRlZCBpdCknKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwcmludFN1Y2Nlc3MoJ1JlbW92ZWQgdGhlIHN0b3JlZCBzZXNzaW9uIGZyb20gdGhpcyBkZXZpY2UnKTtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ1RoZSBwbGF0Zm9ybSB3YXMgbm90IHRvbGQ6IHJldm9rZSB0aGlzIGRldmljZSB1bmRlciBTZXR0aW5ncyDihpIgU2Vzc2lvbnMgYW5kIGRldmljZXMnKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OLCB7XG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdsb2dvdXQnLCBleGVjdXRpb25JZCwgdXJsIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import fs from 'fs';
|
|
4
4
|
import path from 'path';
|
|
5
|
-
import { PLUGIN_BASE_IMAGES, PLUGIN_CATEGORIES, PLUGIN_COMPUTE_TYPES, PLUGIN_NAME_PATTERN, PLUGIN_SUMMARY_MAX,
|
|
5
|
+
import { PLUGIN_BASE_IMAGES, PLUGIN_CATEGORIES, PLUGIN_COMPUTE_TYPES, PLUGIN_NAME_PATTERN, PLUGIN_SUMMARY_MAX, STEP_PLUGIN_TYPES, isAllowedSpdxId, validateCatalogField, } from '@pipeline-builder/api-core';
|
|
6
6
|
import { Command } from 'commander';
|
|
7
7
|
import { CURATED_ICON_KEYS } from '../config/plugin-catalog-assets.js';
|
|
8
8
|
import { printCommandHeader } from '../utils/command-utils.js';
|
|
@@ -26,8 +26,8 @@ export function resolveScaffoldInput(options, now = new Date()) {
|
|
|
26
26
|
if (!base)
|
|
27
27
|
throw new ValidationError(`--base must be one of: ${PLUGIN_BASE_IMAGES.map(b => b.key).join(', ')} (see --list-bases)`, 'base', options.base);
|
|
28
28
|
const pluginType = options.type ?? 'CodeBuildStep';
|
|
29
|
-
if (!
|
|
30
|
-
throw new ValidationError(`--type must be one of: ${
|
|
29
|
+
if (!STEP_PLUGIN_TYPES.includes(pluginType))
|
|
30
|
+
throw new ValidationError(`--type must be one of: ${STEP_PLUGIN_TYPES.join(', ')}`, 'type', pluginType);
|
|
31
31
|
const computeType = options.compute ?? 'SMALL';
|
|
32
32
|
if (!PLUGIN_COMPUTE_TYPES.includes(computeType))
|
|
33
33
|
throw new ValidationError(`--compute must be one of: ${PLUGIN_COMPUTE_TYPES.join(', ')}`, 'compute', computeType);
|
|
@@ -255,7 +255,7 @@ export function newPlugin(program) {
|
|
|
255
255
|
.option('--license <spdx>', 'SPDX license id', 'Apache-2.0')
|
|
256
256
|
.option('--icon <key>', 'Curated icon key (Official/Verified listings only), or none', 'none')
|
|
257
257
|
.option('--author <name>', 'Copyright holder for LICENSE')
|
|
258
|
-
.option('--type <type>', `Plugin type: ${
|
|
258
|
+
.option('--type <type>', `Plugin type: ${STEP_PLUGIN_TYPES.join(' | ')}`, 'CodeBuildStep')
|
|
259
259
|
.option('--compute <compute>', `Compute type: ${PLUGIN_COMPUTE_TYPES.join(' | ')}`, 'SMALL')
|
|
260
260
|
.option('--dir <path>', 'Target directory (default ./<name>)')
|
|
261
261
|
.option('--force', 'Overwrite an existing directory', false)
|
|
@@ -292,4 +292,4 @@ export function newPlugin(program) {
|
|
|
292
292
|
}
|
|
293
293
|
});
|
|
294
294
|
}
|
|
295
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXBsdWdpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL25ldy1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFDTCxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLEVBQ2xILGVBQWUsRUFBRSxvQkFBb0IsR0FDdEMsTUFBTSw0QkFBNEIsQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFpQ2xJLGlDQUFpQztBQUNqQyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxJQUFZLEVBQVUsRUFBRSxDQUNwRCxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFFLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUV2RiwrREFBK0Q7QUFDL0QsTUFBTSxD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QU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxLQUFLO2dCQUMzQixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRTthQUNoRCxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBmcyBmcm9tICdmcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7XG4gIFBMVUdJTl9CQVNFX0lNQUdFUywgUExVR0lOX0NBVEVHT1JJRVMsIFBMVUdJTl9DT01QVVRFX1RZUEVTLCBQTFVHSU5fTkFNRV9QQVRURVJOLCBQTFVHSU5fU1VNTUFSWV9NQVgsIFBMVUdJTl9UWVBFUyxcbiAgaXNBbGxvd2VkU3BkeElkLCB2YWxpZGF0ZUNhdGFsb2dGaWVsZCwgdHlwZSBQbHVnaW5CYXNlSW1hZ2UsXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQ1VSQVRFRF9JQ09OX0tFWVMgfSBmcm9tICcuLi9jb25maWcvcGx1Z2luLWNhdGFsb2ctYXNzZXRzLmpzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZywgZmlsZUV4aXN0cywgZW5zdXJlT3V0cHV0RGlyZWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXdQbHVnaW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIGJhc2U/OiBzdHJpbmc7XG4gIHN1bW1hcnk/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsaWNlbnNlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBhdXRob3I/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGNvbXB1dGU/OiBzdHJpbmc7XG4gIGRpcj86IHN0cmluZztcbiAgZm9yY2U/OiBib29sZWFuO1xuICBsaXN0QmFzZXM/OiBib29sZWFuO1xufVxuXG4vKiogQSB2YWxpZGF0ZWQgc2NhZmZvbGQgcmVxdWVzdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NhZmZvbGRJbnB1dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgYmFzZTogUGx1Z2luQmFzZUltYWdlO1xuICBzdW1tYXJ5OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxpY2Vuc2U6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIHBsdWdpblR5cGU6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZztcbiAgeWVhcjogbnVtYmVyO1xufVxuXG4vKiogYG15LWxpbnRlcmAg4oaSIGBNeSBMaW50ZXJgLiAqL1xuZXhwb3J0IGNvbnN0IGRpc3BsYXlOYW1lT2YgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIG5hbWUuc3BsaXQoJy0nKS5maWx0ZXIoQm9vbGVhbikubWFwKHcgPT4gd1swXSEudG9VcHBlckNhc2UoKSArIHcuc2xpY2UoMSkpLmpvaW4oJyAnKTtcblxuLyoqIFlBTUwgZG91YmxlLXF1b3RlZCBzY2FsYXIgKEpTT04gc3RyaW5ncyBhcmUgdmFsaWQgWUFNTCkuICovXG5jb25zdCBxID0gKHM6IHN0cmluZyk6IHN0cmluZyA9PiBKU09OLnN0cmluZ2lmeShzKTtcblxuLyoqIFZhbGlkYXRlIHRoZSBmbGFncyBpbnRvIGEgc2NhZmZvbGQgcmVxdWVzdCAodGhyb3dzIFZhbGlkYXRpb25FcnJvcikuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNjYWZmb2xkSW5wdXQob3B0aW9uczogTmV3UGx1Z2luT3B0aW9ucywgbm93ID0gbmV3IERhdGUoKSk6IFNjYWZmb2xkSW5wdXQge1xuICBjb25zdCBuYW1lID0gb3B0aW9ucy5uYW1lID8/ICcnO1xuICBpZiAoIW5hbWUgfHwgIVBMVUdJTl9OQU1FX1BBVFRFUk4udGVzdChuYW1lKSB8fCBuYW1lLmxlbmd0aCA+IDY0KSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignLS1uYW1lIG11c3QgYmUgMS02NCBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBoeXBoZW5zJywgJ25hbWUnLCBuYW1lKTtcbiAgfVxuICBjb25zdCBjYXRlZ29yeSA9IG9wdGlvbnMuY2F0ZWdvcnkgPz8gJyc7XG4gIGlmICghKFBMVUdJTl9DQVRFR09SSUVTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhjYXRlZ29yeSkpIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGAtLWNhdGVnb3J5IG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9DQVRFR09SSUVTLmpvaW4oJywgJyl9YCwgJ2NhdGVnb3J5JywgY2F0ZWdvcnkpO1xuICB9XG4gIGNvbnN0IGJhc2UgPSBQTFVHSU5fQkFTRV9JTUFHRVMuZmluZChiID0+IGIua2V5ID09PSAob3B0aW9ucy5iYXNlID8/ICdwbHVnaW4nKSk7XG4gIGlmICghYmFzZSkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgLS1iYXNlIG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9CQVNFX0lNQUdFUy5tYXAoYiA9PiBiLmtleSkuam9pbignLCAnKX0gKHNlZSAtLWxpc3QtYmFzZXMpYCwgJ2Jhc2UnLCBvcHRpb25zLmJhc2UpO1xuICBjb25zdCBwbHVnaW5UeXBlID0gb3B0aW9ucy50eXBlID8/ICdDb2RlQnVpbGRTdGVwJztcbiAgaWYgKCEoUExVR0lOX1RZUEVTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhwbHVnaW5UeXBlKSkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgLS10eXBlIG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9UWVBFUy5qb2luKCcsICcpfWAsICd0eXBlJywgcGx1Z2luVHlwZSk7XG4gIGNvbnN0IGNvbXB1dGVUeXBlID0gb3B0aW9ucy5jb21wdXRlID8/ICdTTUFMTCc7XG4gIGlmICghKFBMVUdJTl9DT01QVVRFX1RZUEVTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhjb21wdXRlVHlwZSkpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYC0tY29tcHV0ZSBtdXN0IGJlIG9uZSBvZjogJHtQTFVHSU5fQ09NUFVURV9UWVBFUy5qb2luKCcsICcpfWAsICdjb21wdXRlJywgY29tcHV0ZVR5cGUpO1xuICBjb25zdCBsaWNlbnNlID0gb3B0aW9ucy5saWNlbnNlID8/ICdBcGFjaGUtMi4wJztcbiAgaWYgKCFpc0FsbG93ZWRTcGR4SWQobGljZW5zZSkpIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoJy0tbGljZW5zZSBtdXN0IGJlIGEgc3VwcG9ydGVkIFNQRFggaWRlbnRpZmllciAoZS5nLiBBcGFjaGUtMi4wLCBNSVQpJywgJ2xpY2Vuc2UnLCBsaWNlbnNlKTtcbiAgY29uc3QgaWNvbiA9IG9wdGlvbnMuaWNvbiAmJiBvcHRpb25zLmljb24gIT09ICdub25lJyA/IG9wdGlvbnMuaWNvbiA6IG51bGw7XG4gIGlmIChpY29uICE9PSBudWxsICYmICFDVVJBVEVEX0lDT05fS0VZUy5pbmNsdWRlcyhpY29uKSkge1xuICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYC0taWNvbiBtdXN0IGJlIGEgY3VyYXRlZCBrZXkgKCR7Q1VSQVRFRF9JQ09OX0tFWVMuam9pbignLCAnKX0pIG9yIG5vbmVgLCAnaWNvbicsIGljb24pO1xuICB9XG5cbiAgY29uc3QgZGlzcGxheSA9IGRpc3BsYXlOYW1lT2YobmFtZSk7XG4gIGNvbnN0IHN1bW1hcnkgPSBvcHRpb25zLnN1bW1hcnkgPz8gYCR7ZGlzcGxheX0gYXMgYSBwaXBlbGluZSBzdGVwLmA7XG4gIGNvbnN0IGRlc2NyaXB0aW9uID0gb3B0aW9ucy5kZXNjcmlwdGlvblxuICAgID8/IGAke2Rpc3BsYXl9IHJ1bnMgYXMgYSBDb2RlQnVpbGQgc3RlcCBpbiB5b3VyIHBpcGVsaW5lLiBSZXBsYWNlIHRoaXMgd2l0aCB3aGF0IHRoZSBwbHVnaW4gY2hlY2tzIG9yIGJ1aWxkcywgd2hhdCBpdCByZWFkcyBmcm9tIHRoZSB3b3Jrc3BhY2UgYW5kIHdoYXQgaXQgd3JpdGVzLmA7XG4gIGZvciAoY29uc3QgW2ZpZWxkLCB2YWx1ZV0gb2YgW1snc3VtbWFyeScsIHN1bW1hcnldLCBbJ2Rlc2NyaXB0aW9uJywgZGVzY3JpcHRpb25dXSBhcyBjb25zdCkge1xuICAgIGNvbnN0IGNoZWNrZWQgPSB2YWxpZGF0ZUNhdGFsb2dGaWVsZChmaWVsZCwgdmFsdWUpO1xuICAgIGlmICghY2hlY2tlZC5vaykgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgLS0ke2ZpZWxkfSAke2NoZWNrZWQuZXJyb3J9JHtmaWVsZCA9PT0gJ3N1bW1hcnknID8gYCAobWF4ICR7UExVR0lOX1NVTU1BUllfTUFYfSlgIDogJyd9YCwgZmllbGQsIHZhbHVlKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgY2F0ZWdvcnksXG4gICAgYmFzZSxcbiAgICBzdW1tYXJ5LFxuICAgIGRlc2NyaXB0aW9uLFxuICAgIGxpY2Vuc2UsXG4gICAgaWNvbixcbiAgICBwbHVnaW5UeXBlLFxuICAgIGNvbXB1dGVUeXBlLFxuICAgIGF1dGhvcjogb3B0aW9ucy5hdXRob3IgPz8gYFRoZSAke25hbWV9IGF1dGhvcnNgLFxuICAgIHllYXI6IG5vdy5nZXRVVENGdWxsWWVhcigpLFxuICB9O1xufVxuXG5jb25zdCBNSVRfVEVYVCA9ICh5ZWFyOiBudW1iZXIsIGF1dGhvcjogc3RyaW5nKTogc3RyaW5nID0+IGBNSVQgTGljZW5zZVxuXG5Db3B5cmlnaHQgKGMpICR7eWVhcn0gJHthdXRob3J9XG5cblBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbm9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbmluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbnRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbmNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcblxuVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4gYWxsXG5jb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuXG5USEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG5JTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbkZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbk9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFXG5TT0ZUV0FSRS5cbmA7XG5cbi8qKiBMSUNFTlNFOiB0aGUgTUlUIHRleHQgaW4gZnVsbCwgZWxzZSB0aGUgU1BEWCBub3RpY2UgKEFwYWNoZS0yLjAncyBvd24gcmVjb21tZW5kZWQgZm9ybSkuICovXG5leHBvcnQgZnVuY3Rpb24gbGljZW5zZVRleHQoaW5wdXQ6IFBpY2s8U2NhZmZvbGRJbnB1dCwgJ2xpY2Vuc2UnIHwgJ3llYXInIHwgJ2F1dGhvcic+KTogc3RyaW5nIHtcbiAgaWYgKGlucHV0LmxpY2Vuc2UgPT09ICdNSVQnKSByZXR1cm4gTUlUX1RFWFQoaW5wdXQueWVhciwgaW5wdXQuYXV0aG9yKTtcbiAgaWYgKGlucHV0LmxpY2Vuc2UgPT09ICdBcGFjaGUtMi4wJykge1xuICAgIHJldHVybiBgQ29weXJpZ2h0ICR7aW5wdXQueWVhcn0gJHtpbnB1dC5hdXRob3J9XG5cbkxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG55b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG5Zb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG5Vbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG5kaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG5XSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cblNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbmxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuYDtcbiAgfVxuICByZXR1cm4gYENvcHlyaWdodCAke2lucHV0LnllYXJ9ICR7aW5wdXQuYXV0aG9yfVxuXG5UaGlzIHBsdWdpbiBpcyBsaWNlbnNlZCB1bmRlciAke2lucHV0LmxpY2Vuc2V9LlxuRnVsbCB0ZXh0OiBodHRwczovL3NwZHgub3JnL2xpY2Vuc2VzLyR7aW5wdXQubGljZW5zZX0uaHRtbFxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogJHtpbnB1dC5saWNlbnNlfVxuYDtcbn1cblxuLyoqIEtleXdvcmRzOiB0aGUgY2F0ZWdvcnkgcGx1cyB0aGUgbmFtZSdzIHdvcmRzICjiiaQgMTAsIGVhY2gg4omkIDMyLCBubyBkdXBsaWNhdGVzKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY2FmZm9sZEtleXdvcmRzKG5hbWU6IHN0cmluZywgY2F0ZWdvcnk6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgcmV0dXJuIFsuLi5uZXcgU2V0KFtjYXRlZ29yeSwgLi4ubmFtZS5zcGxpdCgnLScpXS5maWx0ZXIodyA9PiB3Lmxlbmd0aCA+PSAyICYmIHcubGVuZ3RoIDw9IDMyKSldLnNsaWNlKDAsIDEwKTtcbn1cblxuZnVuY3Rpb24gZG9ja2VyZmlsZVRleHQoaW5wdXQ6IFNjYWZmb2xkSW5wdXQpOiBzdHJpbmcge1xuICBjb25zdCBkaXNwbGF5ID0gZGlzcGxheU5hbWVPZihpbnB1dC5uYW1lKTtcbiAgcmV0dXJuIGAjICR7ZGlzcGxheX0g4oCUICR7aW5wdXQuc3VtbWFyeX1cbiNcbiMgVGhpbiBsYXllciBvdmVyICR7aW5wdXQuYmFzZS5pbWFnZX0gKGRlcGxveS9wbHVnaW5zL19iYXNlLyR7aW5wdXQuYmFzZS5kaXJ9OlxuIyAke2lucHV0LmJhc2UucHJvdmlkZXN9KS4gQWRkIE9OTFkgdGhpcyBwbHVnaW4ncyBvd24gdG9vbCwgcGlubmVkLiBSdWxlc1xuIyAoZGVwbG95L3BsdWdpbnMvUkVBRE1FLm1kLCBlbmZvcmNlZCBieSB0ZXN0LXBsdWdpbnMuc2ggYW5kIFxcYHBsdWdpbiB2YWxpZGF0ZVxcYCk6XG4jICAgLSBldmVyeSBkb3dubG9hZCBnb2VzIHRocm91Z2ggZmV0Y2gtdmVyaWZpZWQgd2l0aCBhIHBpbm5lZCB2ZXJzaW9uIGFuZCBhXG4jICAgICBwaW5uZWQgcGVyLWFyY2hpdGVjdHVyZSBkaWdlc3Q7IG5ldmVyIGEgcm9sbGluZyBVUkwsIG5ldmVyIGN1cmwgfCBzaDtcbiMgICAtIHN3aXRjaCB0byByb290IG9ubHkgZm9yIHRoZSBzdGVwcyB0aGF0IG5lZWQgaXQsIGFuZCBlbmQgYXMgVVNFUiAxMDAwOjEwMDA7XG4jICAgLSBhIHRvb2wgdGhhdCBzaGlwcyBzZXZlcmFsIHZlcnNpb25zIHB1dHMgdGhlbSB1bmRlciAvb3B0Lzx0b29sPi92ZXJzaW9uc1xuIyAgICAgd2l0aCB0aGUgYWN0aXZlIG9uZSBzeW1saW5rZWQgZnJvbSBhIHVpZC0xMDAwLW93bmVkIC9vcHQvPHRvb2w+L2Jpbi5cblxuRlJPTSAke2lucHV0LmJhc2UuaW1hZ2V9XG5cbiMg4pSA4pSA4pSAIFRvb2wgaW5zdGFsbCAodW5jb21tZW50IGFuZCBmaWxsIGluKSDilIDilIDilIBcbiMgVGFrZSBlYWNoIGRpZ2VzdCBmcm9tIHRoZSB2ZW5kb3IncyBwdWJsaXNoZWQgY2hlY2tzdW0gZmlsZS5cbiMgVVNFUiByb290XG4jIEFSRyBUT09MX1ZFUlNJT049MS4yLjNcbiMgQVJHIFRPT0xfU0hBMjU2X0FNRDY0PTxzaGEyNTYgb2YgdGhlIGxpbnV4LWFtZDY0IGFzc2V0PlxuIyBBUkcgVE9PTF9TSEEyNTZfQVJNNjQ9PHNoYTI1NiBvZiB0aGUgbGludXgtYXJtNjQgYXNzZXQ+XG4jIFJVTiBzZXQgLWV1eDsgXFxcXFxuIyAgICAgY2FzZSBcIiQoZHBrZyAtLXByaW50LWFyY2hpdGVjdHVyZSlcIiBpbiBcXFxcXG4jICAgICAgIGFtZDY0KSBhcmNoPWFtZDY0OyBzdW09XCJcXCR7VE9PTF9TSEEyNTZfQU1ENjR9XCIgOzsgXFxcXFxuIyAgICAgICBhcm02NCkgYXJjaD1hcm02NDsgc3VtPVwiXFwke1RPT0xfU0hBMjU2X0FSTTY0fVwiIDs7IFxcXFxcbiMgICAgICAgKikgZWNobyBcInVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZTogJChkcGtnIC0tcHJpbnQtYXJjaGl0ZWN0dXJlKVwiID4mMjsgZXhpdCAxIDs7IFxcXFxcbiMgICAgIGVzYWM7IFxcXFxcbiMgICAgIGZldGNoLXZlcmlmaWVkIFwiaHR0cHM6Ly9leGFtcGxlLmNvbS90b29sL3ZcXCR7VE9PTF9WRVJTSU9OfS90b29sLWxpbnV4LVxcJHthcmNofS50YXIuZ3pcIiBcIiRzdW1cIiAvdG1wL3Rvb2wudGFyLmd6OyBcXFxcXG4jICAgICBpbnN0YWxsIC1kIC9vcHQvdG9vbC9iaW47IFxcXFxcbiMgICAgIHRhciAteHpmIC90bXAvdG9vbC50YXIuZ3ogLUMgL29wdC90b29sL2JpbjsgXFxcXFxuIyAgICAgcm0gLWYgL3RtcC90b29sLnRhci5nejsgXFxcXFxuIyAgICAgY2htb2QgLVIgYStyWCAvb3B0L3Rvb2xcbiMgRU5WIFBBVEg9XCIvb3B0L3Rvb2wvYmluOlxcJHtQQVRIfVwiXG5cbldPUktESVIgL2FwcFxuVVNFUiAxMDAwOjEwMDBcbkNNRCBbXCJiYXNoXCJdXG5gO1xufVxuXG5mdW5jdGlvbiBzcGVjVGV4dChpbnB1dDogU2NhZmZvbGRJbnB1dCk6IHN0cmluZyB7XG4gIGNvbnN0IG91dCA9IGAke2lucHV0Lm5hbWV9LXJlcG9ydHNgO1xuICBjb25zdCBpc0FwcHJvdmFsID0gaW5wdXQucGx1Z2luVHlwZSA9PT0gJ01hbnVhbEFwcHJvdmFsU3RlcCc7XG4gIGNvbnN0IGxpbmVzID0gW1xuICAgIGBuYW1lOiAke2lucHV0Lm5hbWV9YCxcbiAgICBgc3VtbWFyeTogJHtxKGlucHV0LnN1bW1hcnkpfWAsXG4gICAgYGRlc2NyaXB0aW9uOiAke3EoaW5wdXQuZGVzY3JpcHRpb24pfWAsXG4gICAgJ2tleXdvcmRzOicsXG4gICAgLi4uc2NhZmZvbGRLZXl3b3JkcyhpbnB1dC5uYW1lLCBpbnB1dC5jYXRlZ29yeSkubWFwKGsgPT4gYCAgLSAke2t9YCksXG4gICAgYGNhdGVnb3J5OiAke2lucHV0LmNhdGVnb3J5fWAsXG4gICAgJ3ZlcnNpb246IDAuMS4wJyxcbiAgICBgcGx1Z2luVHlwZTogJHtpbnB1dC5wbHVnaW5UeXBlfWAsXG4gICAgYGNvbXB1dGVUeXBlOiAke2lucHV0LmNvbXB1dGVUeXBlfWAsXG4gICAgYHRpbWVvdXQ6ICR7aXNBcHByb3ZhbCA/IDAgOiAxMH1gLFxuICAgICdmYWlsdXJlQmVoYXZpb3I6IGZhaWwnLFxuICAgICdzZWNyZXRzOiBbXScsXG4gIF07XG4gIGlmICghaXNBcHByb3ZhbCkge1xuICAgIGxpbmVzLnB1c2goXG4gICAgICBgcHJpbWFyeU91dHB1dERpcmVjdG9yeTogJHtvdXR9YCxcbiAgICAgICdkb2NrZXJmaWxlOiBEb2NrZXJmaWxlJyxcbiAgICAgICdpbnN0YWxsQ29tbWFuZHM6JyxcbiAgICAgIGAgIC0gbWtkaXIgLXAgJHtvdXR9YCxcbiAgICAgICdjb21tYW5kczonLFxuICAgICAgJyAgIyBSZXBsYWNlIHdpdGggdGhlIHJlYWwgdG9vbCBpbnZvY2F0aW9uLiBydW4tbG9nZ2VkIChmcm9tIHRoZSBiYXNlIGltYWdlKScsXG4gICAgICAnICAjIHN0cmVhbXMgb3V0cHV0IHRvIHRoZSBjb25zb2xlIEFORCB0aGUgbG9nLCBhbmQgZXhpdHMgd2l0aCB0aGUgY29tbWFuZFxcJ3MnLFxuICAgICAgJyAgIyBvd24gc3RhdHVzLCBzbyBhIGZhaWx1cmUgaXMgbmV2ZXIgbWFza2VkLicsXG4gICAgICAnICAtIHwnLFxuICAgICAgJyAgICBzZXQgLWUnLFxuICAgICAgYCAgICBlY2hvIFwiUnVubmluZyAke2lucHV0Lm5hbWV9IGluICQocHdkKVwiYCxcbiAgICAgIGAgICAgcnVuLWxvZ2dlZCAke291dH0vJHtpbnB1dC5uYW1lfS5sb2cgLS0gZWNobyBcIiR7aW5wdXQubmFtZX0gcmFuXCJgLFxuICAgICAgJyMgUnVuIGFnYWluc3QgdGhlIGJ1aWx0IGltYWdlIGJ5IHRlc3QtcGx1Z2lucy5zaCAtLWJ1aWxkIGFuZCBgcGx1Z2luIHRlc3RgLicsXG4gICAgICBgc21va2VUZXN0OiAke3EoaW5wdXQuYmFzZS5zbW9rZVRlc3QpfWAsXG4gICAgKTtcbiAgfVxuICBsaW5lcy5wdXNoKFxuICAgICcnLFxuICAgICcjIOKUgOKUgOKUgCBDYXRhbG9nIG1ldGFkYXRhIOKUgOKUgOKUgCcsXG4gICAgYGxpY2Vuc2U6ICR7aW5wdXQubGljZW5zZX1gLFxuICAgIGlucHV0Lmljb25cbiAgICAgID8gYGljb246ICR7aW5wdXQuaWNvbn0gICMgY3VyYXRlZCBrZXlzIGFyZSBmb3IgT2ZmaWNpYWwgYW5kIFZlcmlmaWVkIGxpc3RpbmdzOyBDb21tdW5pdHkgbGlzdGluZ3MgdXBsb2FkIGFuIGljb25gXG4gICAgICA6ICcjIGljb246IG5vbmUg4oCUIGEgQ29tbXVuaXR5IGxpc3RpbmcgdXBsb2FkcyBhIHJhc3RlciBpY29uIG9yIHNob3dzIGl0cyBtb25vZ3JhbScsXG4gICAgJ2NoYW5nZWxvZzogfCcsXG4gICAgJyAgMC4xLjA6IEluaXRpYWwgcmVsZWFzZS4nLFxuICAgICcnLFxuICApO1xuICByZXR1cm4gbGluZXMuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIHJlYWRtZVRleHQoaW5wdXQ6IFNjYWZmb2xkSW5wdXQsIHJlbERpcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgZGlzcGxheSA9IGRpc3BsYXlOYW1lT2YoaW5wdXQubmFtZSk7XG4gIHJldHVybiBgIyAke2Rpc3BsYXl9XG5cbiR7aW5wdXQuZGVzY3JpcHRpb259XG5cbiMjIFVzZSBpdCBpbiBhIHBpcGVsaW5lXG5cblxcYFxcYFxcYHlhbWxcbnN0ZXBzOlxuICAtIHBsdWdpbjogeyBuYW1lOiAke2lucHV0Lm5hbWV9IH1cblxcYFxcYFxcYFxuXG4ke2lucHV0LnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnID8gJycgOiBgVGhlIHN0ZXAgd3JpdGVzIGl0cyByZXN1bHRzIHRvIFxcYCR7aW5wdXQubmFtZX0tcmVwb3J0cy9cXGAgKGl0cyBwcmltYXJ5IG91dHB1dCkuXG5cbmB9IyMgRGV2ZWxvcFxuXG5cXGBcXGBcXGBiYXNoXG5waXBlbGluZS1tYW5hZ2VyIHBsdWdpbiB2YWxpZGF0ZSAtLWRpciAke3JlbERpcn0gICAjIHRoZSBzZXJ2ZXIncyBzY2hlbWEgKyBjYXRhbG9nIHJlcG9ydFxucGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdGVzdCAtLWRpciAke3JlbERpcn0gLS13b3Jrc3BhY2UgLi9zYW1wbGUtYXBwXG5waXBlbGluZS1tYW5hZ2VyIHBsdWdpbiBwdWJsaXNoIC0tZGlyICR7cmVsRGlyfSAgICAjIHByZS1mbGlnaHQsIGFjY2VwdCBvciBlZGl0IG1ldGFkYXRhLCBzdWJtaXRcblxcYFxcYFxcYFxuXG5UaGUgaW1hZ2UgYnVpbGRzIEZST00gXFxgJHtpbnB1dC5iYXNlLmltYWdlfVxcYDsgYnVpbGQgdGhlIGJhc2VzIGZpcnN0IHdpdGhcblxcYGRlcGxveS9iaW4vYnVpbGQtcGx1Z2luLWltYWdlcy5zaFxcYCwgb3IgcGFzcyBcXGAtLWltYWdlXFxgIHRvIFxcYHBsdWdpbiB0ZXN0XFxgLlxuXG4jIyBMaWNlbnNlXG5cbiR7aW5wdXQubGljZW5zZX0g4oCUIHNlZSBbTElDRU5TRV0oTElDRU5TRSkuXG5gO1xufVxuXG4vKiogRXZlcnkgZmlsZSBvZiBhIG5ldyBwbHVnaW4sIGtleWVkIGJ5IHBhdGggcmVsYXRpdmUgdG8gdGhlIHBsdWdpbiBkaXJlY3RvcnkuICovXG5leHBvcnQgZnVuY3Rpb24gc2NhZmZvbGRGaWxlcyhpbnB1dDogU2NhZmZvbGRJbnB1dCwgcmVsRGlyID0gYC4vJHtpbnB1dC5uYW1lfWApOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHtcbiAgY29uc3QgaXNBcHByb3ZhbCA9IGlucHV0LnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnO1xuICBjb25zdCBmaWxlczogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAnY29uZmlnLnlhbWwnOiBpc0FwcHJvdmFsXG4gICAgICA/ICdwbHVnaW5TcGVjOiBwbHVnaW4tc3BlYy55YW1sXFxuYnVpbGRUeXBlOiBtZXRhZGF0YV9vbmx5XFxuJ1xuICAgICAgOiAncGx1Z2luU3BlYzogcGx1Z2luLXNwZWMueWFtbFxcbmJ1aWxkVHlwZTogYnVpbGRfaW1hZ2VcXG5kb2NrZXJmaWxlOiBEb2NrZXJmaWxlXFxuJyxcbiAgICAncGx1Z2luLXNwZWMueWFtbCc6IHNwZWNUZXh0KGlucHV0KSxcbiAgICAnUkVBRE1FLm1kJzogcmVhZG1lVGV4dChpbnB1dCwgcmVsRGlyKSxcbiAgICAnTElDRU5TRSc6IGxpY2Vuc2VUZXh0KGlucHV0KSxcbiAgfTtcbiAgaWYgKCFpc0FwcHJvdmFsKSBmaWxlcy5Eb2NrZXJmaWxlID0gZG9ja2VyZmlsZVRleHQoaW5wdXQpO1xuICByZXR1cm4gZmlsZXM7XG59XG5cbi8qKiBQcmludCB0aGUgYXZhaWxhYmxlIHBsdWdpbiBiYXNlcy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludEJhc2VzKCk6IHZvaWQge1xuICBwcmludFNlY3Rpb24oJ1BsdWdpbiBiYXNlIGltYWdlcycsICdkZXBsb3kvcGx1Z2lucy9fYmFzZScpO1xuICBmb3IgKGNvbnN0IGIgb2YgUExVR0lOX0JBU0VfSU1BR0VTKSBjb25zb2xlLmxvZyhgICAke2Iua2V5LnBhZEVuZCg4KX0gJHtiLmltYWdlLnBhZEVuZCgyOCl9ICR7Yi5wcm92aWRlc31gKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBgcGx1Z2luIG5ld2Ag4oCUIHNjYWZmb2xkIGEgcGx1Z2luIEZST00gYSBgcGx1Z2luLTxlY28+LWJhc2VgIGltYWdlOlxuICogYSBEb2NrZXJmaWxlIHRoYXQgZm9sbG93cyB0aGUgY2F0YWxvZyBydWxlcywgYSBzcGVjIHdpdGggY2F0YWxvZyBtZXRhZGF0YSwgYVxuICogUkVBRE1FLCBhIGNoYW5nZWxvZyBlbnRyeSBhbmQgYSBMSUNFTlNFLiBJdCBwYXNzZXMgYHBsdWdpbiB2YWxpZGF0ZWAgYW5kXG4gKiB0ZXN0LXBsdWdpbnMuc2gncyBzdGF0aWMgY2hlY2tzIGFzIGdlbmVyYXRlZC5cbiAqXG4gKiBVc2FnZTpcbiAqICAgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gbmV3IC0tbGlzdC1iYXNlc1xuICogICBwaXBlbGluZS1tYW5hZ2VyIHBsdWdpbiBuZXcgLS1uYW1lIG15LWxpbnRlciAtLWNhdGVnb3J5IHF1YWxpdHkgLS1iYXNlIG5vZGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG5ld1BsdWdpbihwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHByb2dyYW1cbiAgICAuY29tbWFuZCgnbmV3JylcbiAgICAuZGVzY3JpcHRpb24oJ1NjYWZmb2xkIGEgcGx1Z2luIGZyb20gYSBwbHVnaW4tPGVjbz4tYmFzZSBpbWFnZSAoRG9ja2VyZmlsZSwgc3BlYywgUkVBRE1FLCBMSUNFTlNFKScpXG4gICAgLm9wdGlvbignLS1uYW1lIDxuYW1lPicsICdQbHVnaW4gbmFtZSAobG93ZXJjYXNlIGxldHRlcnMsIGRpZ2l0cywgaHlwaGVucyknKVxuICAgIC5vcHRpb24oJy0tY2F0ZWdvcnkgPGNhdGVnb3J5PicsIGBDYXRlZ29yeTogJHtQTFVHSU5fQ0FURUdPUklFUy5qb2luKCcgfCAnKX1gKVxuICAgIC5vcHRpb24oJy0tYmFzZSA8ZWNvPicsIGBCYXNlIGltYWdlOiAke1BMVUdJTl9CQVNFX0lNQUdFUy5tYXAoYiA9PiBiLmtleSkuam9pbignIHwgJyl9YCwgJ3BsdWdpbicpXG4gICAgLm9wdGlvbignLS1zdW1tYXJ5IDx0ZXh0PicsIGBDYXRhbG9nIG9uZS1saW5lciAo4omkICR7UExVR0lOX1NVTU1BUllfTUFYfSlgKVxuICAgIC5vcHRpb24oJy0tZGVzY3JpcHRpb24gPHRleHQ+JywgJ0NhdGFsb2cgZGVzY3JpcHRpb24nKVxuICAgIC5vcHRpb24oJy0tbGljZW5zZSA8c3BkeD4nLCAnU1BEWCBsaWNlbnNlIGlkJywgJ0FwYWNoZS0yLjAnKVxuICAgIC5vcHRpb24oJy0taWNvbiA8a2V5PicsICdDdXJhdGVkIGljb24ga2V5IChPZmZpY2lhbC9WZXJpZmllZCBsaXN0aW5ncyBvbmx5KSwgb3Igbm9uZScsICdub25lJylcbiAgICAub3B0aW9uKCctLWF1dGhvciA8bmFtZT4nLCAnQ29weXJpZ2h0IGhvbGRlciBmb3IgTElDRU5TRScpXG4gICAgLm9wdGlvbignLS10eXBlIDx0eXBlPicsIGBQbHVnaW4gdHlwZTogJHtQTFVHSU5fVFlQRVMuam9pbignIHwgJyl9YCwgJ0NvZGVCdWlsZFN0ZXAnKVxuICAgIC5vcHRpb24oJy0tY29tcHV0ZSA8Y29tcHV0ZT4nLCBgQ29tcHV0ZSB0eXBlOiAke1BMVUdJTl9DT01QVVRFX1RZUEVTLmpvaW4oJyB8ICcpfWAsICdTTUFMTCcpXG4gICAgLm9wdGlvbignLS1kaXIgPHBhdGg+JywgJ1RhcmdldCBkaXJlY3RvcnkgKGRlZmF1bHQgLi88bmFtZT4pJylcbiAgICAub3B0aW9uKCctLWZvcmNlJywgJ092ZXJ3cml0ZSBhbiBleGlzdGluZyBkaXJlY3RvcnknLCBmYWxzZSlcbiAgICAub3B0aW9uKCctLWxpc3QtYmFzZXMnLCAnTGlzdCB0aGUgYXZhaWxhYmxlIGJhc2UgaW1hZ2VzIGFuZCBleGl0JywgZmFsc2UpXG4gICAgLmFjdGlvbigob3B0aW9uczogTmV3UGx1Z2luT3B0aW9ucykgPT4ge1xuICAgICAgaWYgKG9wdGlvbnMubGlzdEJhc2VzKSB7XG4gICAgICAgIHByaW50QmFzZXMoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ05ldyBQbHVnaW4nKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gcmVzb2x2ZVNjYWZmb2xkSW5wdXQob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHJlbERpciA9IG9wdGlvbnMuZGlyID8/IGAuLyR7aW5wdXQubmFtZX1gO1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLnJlc29sdmUocmVsRGlyKTtcbiAgICAgICAgaWYgKGZpbGVFeGlzdHModGFyZ2V0RGlyKSAmJiAhb3B0aW9ucy5mb3JjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYERpcmVjdG9yeSBhbHJlYWR5IGV4aXN0czogJHt0YXJnZXREaXJ9ICh1c2UgLS1mb3JjZSB0byBvdmVyd3JpdGUpYCk7XG4gICAgICAgIH1cbiAgICAgICAgZW5zdXJlT3V0cHV0RGlyZWN0b3J5KHRhcmdldERpcik7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gc2NhZmZvbGRGaWxlcyhpbnB1dCwgcmVsRGlyKTtcbiAgICAgICAgZm9yIChjb25zdCBbZmlsZSwgY29udGVudF0gb2YgT2JqZWN0LmVudHJpZXMoZmlsZXMpKSBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbih0YXJnZXREaXIsIGZpbGUpLCBjb250ZW50LCAndXRmLTgnKTtcblxuICAgICAgICBpZiAoaW5wdXQuaWNvbikgcHJpbnRXYXJuaW5nKCdDdXJhdGVkIGljb25zIGFyZSByZXNlcnZlZCBmb3IgT2ZmaWNpYWwgbGlzdGluZ3MgYW5kIFZlcmlmaWVkIHB1Ymxpc2hlcnMgd2hvIG93biB0aGUgbWFyazsgYSBDb21tdW5pdHkgbGlzdGluZyB3aXRoIG9uZSBpcyByZWZ1c2VkIGF0IHN1Ym1pdCcpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ1NjYWZmb2xkZWQgcGx1Z2luJywgdGFyZ2V0RGlyKTtcbiAgICAgICAgcHJpbnRJbmZvKCdDcmVhdGVkIGZpbGVzJywgeyBmaWxlczogT2JqZWN0LmtleXMoZmlsZXMpLCBiYXNlOiBpbnB1dC5iYXNlLmltYWdlIH0pO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ1BsdWdpbiBzY2FmZm9sZCBjcmVhdGVkIOKAlCBuZXh0OiBwbHVnaW4gdmFsaWRhdGUsIHBsdWdpbiB0ZXN0LCBwbHVnaW4gcHVibGlzaCcsIHsgZXhlY3V0aW9uSWQsIGRpcjogdGFyZ2V0RGlyIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVyciwgZXJyIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yID8gRVJST1JfQ09ERVMuVkFMSURBVElPTiA6IEVSUk9SX0NPREVTLkdFTkVSQUwsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdwbHVnaW4gbmV3JywgZXhlY3V0aW9uSWQgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXBsdWdpbi5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL25ldy1wbHVnaW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFDTCxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxpQkFBaUIsRUFDdkgsZUFBZSxFQUFFLG9CQUFvQixHQUN0QyxNQUFNLDRCQUE0QixDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDcEMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQWlDbEksaUNBQWlDO0FBQ2pDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLElBQVksRUFBVSxFQUFFLENBQ3BELElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUUsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBRXZGLCtEQUErRDtBQUMvRCxNQUFN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RUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSztnQkFDM0IsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUU7YUFDaEQsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQge1xuICBQTFVHSU5fQkFTRV9JTUFHRVMsIFBMVUdJTl9DQVRFR09SSUVTLCBQTFVHSU5fQ09NUFVURV9UWVBFUywgUExVR0lOX05BTUVfUEFUVEVSTiwgUExVR0lOX1NVTU1BUllfTUFYLCBTVEVQX1BMVUdJTl9UWVBFUyxcbiAgaXNBbGxvd2VkU3BkeElkLCB2YWxpZGF0ZUNhdGFsb2dGaWVsZCwgdHlwZSBQbHVnaW5CYXNlSW1hZ2UsXG59IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgQ1VSQVRFRF9JQ09OX0tFWVMgfSBmcm9tICcuLi9jb25maWcvcGx1Z2luLWNhdGFsb2ctYXNzZXRzLmpzJztcbmltcG9ydCB7IHByaW50Q29tbWFuZEhlYWRlciB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yLCBWYWxpZGF0aW9uRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZywgZmlsZUV4aXN0cywgZW5zdXJlT3V0cHV0RGlyZWN0b3J5IH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuZXhwb3J0IGludGVyZmFjZSBOZXdQbHVnaW5PcHRpb25zIHtcbiAgbmFtZT86IHN0cmluZztcbiAgY2F0ZWdvcnk/OiBzdHJpbmc7XG4gIGJhc2U/OiBzdHJpbmc7XG4gIHN1bW1hcnk/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBsaWNlbnNlPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBhdXRob3I/OiBzdHJpbmc7XG4gIHR5cGU/OiBzdHJpbmc7XG4gIGNvbXB1dGU/OiBzdHJpbmc7XG4gIGRpcj86IHN0cmluZztcbiAgZm9yY2U/OiBib29sZWFuO1xuICBsaXN0QmFzZXM/OiBib29sZWFuO1xufVxuXG4vKiogQSB2YWxpZGF0ZWQgc2NhZmZvbGQgcmVxdWVzdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NhZmZvbGRJbnB1dCB7XG4gIG5hbWU6IHN0cmluZztcbiAgY2F0ZWdvcnk6IHN0cmluZztcbiAgYmFzZTogUGx1Z2luQmFzZUltYWdlO1xuICBzdW1tYXJ5OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGxpY2Vuc2U6IHN0cmluZztcbiAgaWNvbjogc3RyaW5nIHwgbnVsbDtcbiAgYXV0aG9yOiBzdHJpbmc7XG4gIHBsdWdpblR5cGU6IHN0cmluZztcbiAgY29tcHV0ZVR5cGU6IHN0cmluZztcbiAgeWVhcjogbnVtYmVyO1xufVxuXG4vKiogYG15LWxpbnRlcmAg4oaSIGBNeSBMaW50ZXJgLiAqL1xuZXhwb3J0IGNvbnN0IGRpc3BsYXlOYW1lT2YgPSAobmFtZTogc3RyaW5nKTogc3RyaW5nID0+XG4gIG5hbWUuc3BsaXQoJy0nKS5maWx0ZXIoQm9vbGVhbikubWFwKHcgPT4gd1swXSEudG9VcHBlckNhc2UoKSArIHcuc2xpY2UoMSkpLmpvaW4oJyAnKTtcblxuLyoqIFlBTUwgZG91YmxlLXF1b3RlZCBzY2FsYXIgKEpTT04gc3RyaW5ncyBhcmUgdmFsaWQgWUFNTCkuICovXG5jb25zdCBxID0gKHM6IHN0cmluZyk6IHN0cmluZyA9PiBKU09OLnN0cmluZ2lmeShzKTtcblxuLyoqIFZhbGlkYXRlIHRoZSBmbGFncyBpbnRvIGEgc2NhZmZvbGQgcmVxdWVzdCAodGhyb3dzIFZhbGlkYXRpb25FcnJvcikuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZVNjYWZmb2xkSW5wdXQob3B0aW9uczogTmV3UGx1Z2luT3B0aW9ucywgbm93ID0gbmV3IERhdGUoKSk6IFNjYWZmb2xkSW5wdXQge1xuICBjb25zdCBuYW1lID0gb3B0aW9ucy5uYW1lID8/ICcnO1xuICBpZiAoIW5hbWUgfHwgIVBMVUdJTl9OQU1FX1BBVFRFUk4udGVzdChuYW1lKSB8fCBuYW1lLmxlbmd0aCA+IDY0KSB7XG4gICAgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcignLS1uYW1lIG11c3QgYmUgMS02NCBsb3dlcmNhc2UgbGV0dGVycywgZGlnaXRzIGFuZCBoeXBoZW5zJywgJ25hbWUnLCBuYW1lKTtcbiAgfVxuICBjb25zdCBjYXRlZ29yeSA9IG9wdGlvbnMuY2F0ZWdvcnkgPz8gJyc7XG4gIGlmICghKFBMVUdJTl9DQVRFR09SSUVTIGFzIHJlYWRvbmx5IHN0cmluZ1tdKS5pbmNsdWRlcyhjYXRlZ29yeSkpIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGAtLWNhdGVnb3J5IG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9DQVRFR09SSUVTLmpvaW4oJywgJyl9YCwgJ2NhdGVnb3J5JywgY2F0ZWdvcnkpO1xuICB9XG4gIGNvbnN0IGJhc2UgPSBQTFVHSU5fQkFTRV9JTUFHRVMuZmluZChiID0+IGIua2V5ID09PSAob3B0aW9ucy5iYXNlID8/ICdwbHVnaW4nKSk7XG4gIGlmICghYmFzZSkgdGhyb3cgbmV3IFZhbGlkYXRpb25FcnJvcihgLS1iYXNlIG11c3QgYmUgb25lIG9mOiAke1BMVUdJTl9CQVNFX0lNQUdFUy5tYXAoYiA9PiBiLmtleSkuam9pbignLCAnKX0gKHNlZSAtLWxpc3QtYmFzZXMpYCwgJ2Jhc2UnLCBvcHRpb25zLmJhc2UpO1xuICBjb25zdCBwbHVnaW5UeXBlID0gb3B0aW9ucy50eXBlID8/ICdDb2RlQnVpbGRTdGVwJztcbiAgaWYgKCEoU1RFUF9QTFVHSU5fVFlQRVMgYXMgcmVhZG9ubHkgc3RyaW5nW10pLmluY2x1ZGVzKHBsdWdpblR5cGUpKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGAtLXR5cGUgbXVzdCBiZSBvbmUgb2Y6ICR7U1RFUF9QTFVHSU5fVFlQRVMuam9pbignLCAnKX1gLCAndHlwZScsIHBsdWdpblR5cGUpO1xuICBjb25zdCBjb21wdXRlVHlwZSA9IG9wdGlvbnMuY29tcHV0ZSA/PyAnU01BTEwnO1xuICBpZiAoIShQTFVHSU5fQ09NUFVURV9UWVBFUyBhcyByZWFkb25seSBzdHJpbmdbXSkuaW5jbHVkZXMoY29tcHV0ZVR5cGUpKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGAtLWNvbXB1dGUgbXVzdCBiZSBvbmUgb2Y6ICR7UExVR0lOX0NPTVBVVEVfVFlQRVMuam9pbignLCAnKX1gLCAnY29tcHV0ZScsIGNvbXB1dGVUeXBlKTtcbiAgY29uc3QgbGljZW5zZSA9IG9wdGlvbnMubGljZW5zZSA/PyAnQXBhY2hlLTIuMCc7XG4gIGlmICghaXNBbGxvd2VkU3BkeElkKGxpY2Vuc2UpKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKCctLWxpY2Vuc2UgbXVzdCBiZSBhIHN1cHBvcnRlZCBTUERYIGlkZW50aWZpZXIgKGUuZy4gQXBhY2hlLTIuMCwgTUlUKScsICdsaWNlbnNlJywgbGljZW5zZSk7XG4gIGNvbnN0IGljb24gPSBvcHRpb25zLmljb24gJiYgb3B0aW9ucy5pY29uICE9PSAnbm9uZScgPyBvcHRpb25zLmljb24gOiBudWxsO1xuICBpZiAoaWNvbiAhPT0gbnVsbCAmJiAhQ1VSQVRFRF9JQ09OX0tFWVMuaW5jbHVkZXMoaWNvbikpIHtcbiAgICB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGAtLWljb24gbXVzdCBiZSBhIGN1cmF0ZWQga2V5ICgke0NVUkFURURfSUNPTl9LRVlTLmpvaW4oJywgJyl9KSBvciBub25lYCwgJ2ljb24nLCBpY29uKTtcbiAgfVxuXG4gIGNvbnN0IGRpc3BsYXkgPSBkaXNwbGF5TmFtZU9mKG5hbWUpO1xuICBjb25zdCBzdW1tYXJ5ID0gb3B0aW9ucy5zdW1tYXJ5ID8/IGAke2Rpc3BsYXl9IGFzIGEgcGlwZWxpbmUgc3RlcC5gO1xuICBjb25zdCBkZXNjcmlwdGlvbiA9IG9wdGlvbnMuZGVzY3JpcHRpb25cbiAgICA/PyBgJHtkaXNwbGF5fSBydW5zIGFzIGEgQ29kZUJ1aWxkIHN0ZXAgaW4geW91ciBwaXBlbGluZS4gUmVwbGFjZSB0aGlzIHdpdGggd2hhdCB0aGUgcGx1Z2luIGNoZWNrcyBvciBidWlsZHMsIHdoYXQgaXQgcmVhZHMgZnJvbSB0aGUgd29ya3NwYWNlIGFuZCB3aGF0IGl0IHdyaXRlcy5gO1xuICBmb3IgKGNvbnN0IFtmaWVsZCwgdmFsdWVdIG9mIFtbJ3N1bW1hcnknLCBzdW1tYXJ5XSwgWydkZXNjcmlwdGlvbicsIGRlc2NyaXB0aW9uXV0gYXMgY29uc3QpIHtcbiAgICBjb25zdCBjaGVja2VkID0gdmFsaWRhdGVDYXRhbG9nRmllbGQoZmllbGQsIHZhbHVlKTtcbiAgICBpZiAoIWNoZWNrZWQub2spIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYC0tJHtmaWVsZH0gJHtjaGVja2VkLmVycm9yfSR7ZmllbGQgPT09ICdzdW1tYXJ5JyA/IGAgKG1heCAke1BMVUdJTl9TVU1NQVJZX01BWH0pYCA6ICcnfWAsIGZpZWxkLCB2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICBuYW1lLFxuICAgIGNhdGVnb3J5LFxuICAgIGJhc2UsXG4gICAgc3VtbWFyeSxcbiAgICBkZXNjcmlwdGlvbixcbiAgICBsaWNlbnNlLFxuICAgIGljb24sXG4gICAgcGx1Z2luVHlwZSxcbiAgICBjb21wdXRlVHlwZSxcbiAgICBhdXRob3I6IG9wdGlvbnMuYXV0aG9yID8/IGBUaGUgJHtuYW1lfSBhdXRob3JzYCxcbiAgICB5ZWFyOiBub3cuZ2V0VVRDRnVsbFllYXIoKSxcbiAgfTtcbn1cblxuY29uc3QgTUlUX1RFWFQgPSAoeWVhcjogbnVtYmVyLCBhdXRob3I6IHN0cmluZyk6IHN0cmluZyA9PiBgTUlUIExpY2Vuc2VcblxuQ29weXJpZ2h0IChjKSAke3llYXJ9ICR7YXV0aG9yfVxuXG5QZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG5vZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG5pbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG50byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG5jb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbmZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG5cblRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbFxuY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cblxuVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG5GSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbkFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbkxJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG5PVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOIFRIRVxuU09GVFdBUkUuXG5gO1xuXG4vKiogTElDRU5TRTogdGhlIE1JVCB0ZXh0IGluIGZ1bGwsIGVsc2UgdGhlIFNQRFggbm90aWNlIChBcGFjaGUtMi4wJ3Mgb3duIHJlY29tbWVuZGVkIGZvcm0pLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGxpY2Vuc2VUZXh0KGlucHV0OiBQaWNrPFNjYWZmb2xkSW5wdXQsICdsaWNlbnNlJyB8ICd5ZWFyJyB8ICdhdXRob3InPik6IHN0cmluZyB7XG4gIGlmIChpbnB1dC5saWNlbnNlID09PSAnTUlUJykgcmV0dXJuIE1JVF9URVhUKGlucHV0LnllYXIsIGlucHV0LmF1dGhvcik7XG4gIGlmIChpbnB1dC5saWNlbnNlID09PSAnQXBhY2hlLTIuMCcpIHtcbiAgICByZXR1cm4gYENvcHlyaWdodCAke2lucHV0LnllYXJ9ICR7aW5wdXQuYXV0aG9yfVxuXG5MaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xueW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG5TZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG5saW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcbmA7XG4gIH1cbiAgcmV0dXJuIGBDb3B5cmlnaHQgJHtpbnB1dC55ZWFyfSAke2lucHV0LmF1dGhvcn1cblxuVGhpcyBwbHVnaW4gaXMgbGljZW5zZWQgdW5kZXIgJHtpbnB1dC5saWNlbnNlfS5cbkZ1bGwgdGV4dDogaHR0cHM6Ly9zcGR4Lm9yZy9saWNlbnNlcy8ke2lucHV0LmxpY2Vuc2V9Lmh0bWxcblxuU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6ICR7aW5wdXQubGljZW5zZX1cbmA7XG59XG5cbi8qKiBLZXl3b3JkczogdGhlIGNhdGVnb3J5IHBsdXMgdGhlIG5hbWUncyB3b3JkcyAo4omkIDEwLCBlYWNoIOKJpCAzMiwgbm8gZHVwbGljYXRlcykuICovXG5leHBvcnQgZnVuY3Rpb24gc2NhZmZvbGRLZXl3b3JkcyhuYW1lOiBzdHJpbmcsIGNhdGVnb3J5OiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gIHJldHVybiBbLi4ubmV3IFNldChbY2F0ZWdvcnksIC4uLm5hbWUuc3BsaXQoJy0nKV0uZmlsdGVyKHcgPT4gdy5sZW5ndGggPj0gMiAmJiB3Lmxlbmd0aCA8PSAzMikpXS5zbGljZSgwLCAxMCk7XG59XG5cbmZ1bmN0aW9uIGRvY2tlcmZpbGVUZXh0KGlucHV0OiBTY2FmZm9sZElucHV0KTogc3RyaW5nIHtcbiAgY29uc3QgZGlzcGxheSA9IGRpc3BsYXlOYW1lT2YoaW5wdXQubmFtZSk7XG4gIHJldHVybiBgIyAke2Rpc3BsYXl9IOKAlCAke2lucHV0LnN1bW1hcnl9XG4jXG4jIFRoaW4gbGF5ZXIgb3ZlciAke2lucHV0LmJhc2UuaW1hZ2V9IChkZXBsb3kvcGx1Z2lucy9fYmFzZS8ke2lucHV0LmJhc2UuZGlyfTpcbiMgJHtpbnB1dC5iYXNlLnByb3ZpZGVzfSkuIEFkZCBPTkxZIHRoaXMgcGx1Z2luJ3Mgb3duIHRvb2wsIHBpbm5lZC4gUnVsZXNcbiMgKGRlcGxveS9wbHVnaW5zL1JFQURNRS5tZCwgZW5mb3JjZWQgYnkgdGVzdC1wbHVnaW5zLnNoIGFuZCBcXGBwbHVnaW4gdmFsaWRhdGVcXGApOlxuIyAgIC0gZXZlcnkgZG93bmxvYWQgZ29lcyB0aHJvdWdoIGZldGNoLXZlcmlmaWVkIHdpdGggYSBwaW5uZWQgdmVyc2lvbiBhbmQgYVxuIyAgICAgcGlubmVkIHBlci1hcmNoaXRlY3R1cmUgZGlnZXN0OyBuZXZlciBhIHJvbGxpbmcgVVJMLCBuZXZlciBjdXJsIHwgc2g7XG4jICAgLSBzd2l0Y2ggdG8gcm9vdCBvbmx5IGZvciB0aGUgc3RlcHMgdGhhdCBuZWVkIGl0LCBhbmQgZW5kIGFzIFVTRVIgMTAwMDoxMDAwO1xuIyAgIC0gYSB0b29sIHRoYXQgc2hpcHMgc2V2ZXJhbCB2ZXJzaW9ucyBwdXRzIHRoZW0gdW5kZXIgL29wdC88dG9vbD4vdmVyc2lvbnNcbiMgICAgIHdpdGggdGhlIGFjdGl2ZSBvbmUgc3ltbGlua2VkIGZyb20gYSB1aWQtMTAwMC1vd25lZCAvb3B0Lzx0b29sPi9iaW4uXG5cbkZST00gJHtpbnB1dC5iYXNlLmltYWdlfVxuXG4jIOKUgOKUgOKUgCBUb29sIGluc3RhbGwgKHVuY29tbWVudCBhbmQgZmlsbCBpbikg4pSA4pSA4pSAXG4jIFRha2UgZWFjaCBkaWdlc3QgZnJvbSB0aGUgdmVuZG9yJ3MgcHVibGlzaGVkIGNoZWNrc3VtIGZpbGUuXG4jIFVTRVIgcm9vdFxuIyBBUkcgVE9PTF9WRVJTSU9OPTEuMi4zXG4jIEFSRyBUT09MX1NIQTI1Nl9BTUQ2ND08c2hhMjU2IG9mIHRoZSBsaW51eC1hbWQ2NCBhc3NldD5cbiMgQVJHIFRPT0xfU0hBMjU2X0FSTTY0PTxzaGEyNTYgb2YgdGhlIGxpbnV4LWFybTY0IGFzc2V0PlxuIyBSVU4gc2V0IC1ldXg7IFxcXFxcbiMgICAgIGNhc2UgXCIkKGRwa2cgLS1wcmludC1hcmNoaXRlY3R1cmUpXCIgaW4gXFxcXFxuIyAgICAgICBhbWQ2NCkgYXJjaD1hbWQ2NDsgc3VtPVwiXFwke1RPT0xfU0hBMjU2X0FNRDY0fVwiIDs7IFxcXFxcbiMgICAgICAgYXJtNjQpIGFyY2g9YXJtNjQ7IHN1bT1cIlxcJHtUT09MX1NIQTI1Nl9BUk02NH1cIiA7OyBcXFxcXG4jICAgICAgICopIGVjaG8gXCJ1bnN1cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICQoZHBrZyAtLXByaW50LWFyY2hpdGVjdHVyZSlcIiA+JjI7IGV4aXQgMSA7OyBcXFxcXG4jICAgICBlc2FjOyBcXFxcXG4jICAgICBmZXRjaC12ZXJpZmllZCBcImh0dHBzOi8vZXhhbXBsZS5jb20vdG9vbC92XFwke1RPT0xfVkVSU0lPTn0vdG9vbC1saW51eC1cXCR7YXJjaH0udGFyLmd6XCIgXCIkc3VtXCIgL3RtcC90b29sLnRhci5nejsgXFxcXFxuIyAgICAgaW5zdGFsbCAtZCAvb3B0L3Rvb2wvYmluOyBcXFxcXG4jICAgICB0YXIgLXh6ZiAvdG1wL3Rvb2wudGFyLmd6IC1DIC9vcHQvdG9vbC9iaW47IFxcXFxcbiMgICAgIHJtIC1mIC90bXAvdG9vbC50YXIuZ3o7IFxcXFxcbiMgICAgIGNobW9kIC1SIGErclggL29wdC90b29sXG4jIEVOViBQQVRIPVwiL29wdC90b29sL2JpbjpcXCR7UEFUSH1cIlxuXG5XT1JLRElSIC9hcHBcblVTRVIgMTAwMDoxMDAwXG5DTUQgW1wiYmFzaFwiXVxuYDtcbn1cblxuZnVuY3Rpb24gc3BlY1RleHQoaW5wdXQ6IFNjYWZmb2xkSW5wdXQpOiBzdHJpbmcge1xuICBjb25zdCBvdXQgPSBgJHtpbnB1dC5uYW1lfS1yZXBvcnRzYDtcbiAgY29uc3QgaXNBcHByb3ZhbCA9IGlucHV0LnBsdWdpblR5cGUgPT09ICdNYW51YWxBcHByb3ZhbFN0ZXAnO1xuICBjb25zdCBsaW5lcyA9IFtcbiAgICBgbmFtZTogJHtpbnB1dC5uYW1lfWAsXG4gICAgYHN1bW1hcnk6ICR7cShpbnB1dC5zdW1tYXJ5KX1gLFxuICAgIGBkZXNjcmlwdGlvbjogJHtxKGlucHV0LmRlc2NyaXB0aW9uKX1gLFxuICAgICdrZXl3b3JkczonLFxuICAgIC4uLnNjYWZmb2xkS2V5d29yZHMoaW5wdXQubmFtZSwgaW5wdXQuY2F0ZWdvcnkpLm1hcChrID0+IGAgIC0gJHtrfWApLFxuICAgIGBjYXRlZ29yeTogJHtpbnB1dC5jYXRlZ29yeX1gLFxuICAgICd2ZXJzaW9uOiAwLjEuMCcsXG4gICAgYHBsdWdpblR5cGU6ICR7aW5wdXQucGx1Z2luVHlwZX1gLFxuICAgIGBjb21wdXRlVHlwZTogJHtpbnB1dC5jb21wdXRlVHlwZX1gLFxuICAgIGB0aW1lb3V0OiAke2lzQXBwcm92YWwgPyAwIDogMTB9YCxcbiAgICAnZmFpbHVyZUJlaGF2aW9yOiBmYWlsJyxcbiAgICAnc2VjcmV0czogW10nLFxuICBdO1xuICBpZiAoIWlzQXBwcm92YWwpIHtcbiAgICBsaW5lcy5wdXNoKFxuICAgICAgYHByaW1hcnlPdXRwdXREaXJlY3Rvcnk6ICR7b3V0fWAsXG4gICAgICAnZG9ja2VyZmlsZTogRG9ja2VyZmlsZScsXG4gICAgICAnaW5zdGFsbENvbW1hbmRzOicsXG4gICAgICBgICAtIG1rZGlyIC1wICR7b3V0fWAsXG4gICAgICAnY29tbWFuZHM6JyxcbiAgICAgICcgICMgUmVwbGFjZSB3aXRoIHRoZSByZWFsIHRvb2wgaW52b2NhdGlvbi4gcnVuLWxvZ2dlZCAoZnJvbSB0aGUgYmFzZSBpbWFnZSknLFxuICAgICAgJyAgIyBzdHJlYW1zIG91dHB1dCB0byB0aGUgY29uc29sZSBBTkQgdGhlIGxvZywgYW5kIGV4aXRzIHdpdGggdGhlIGNvbW1hbmRcXCdzJyxcbiAgICAgICcgICMgb3duIHN0YXR1cywgc28gYSBmYWlsdXJlIGlzIG5ldmVyIG1hc2tlZC4nLFxuICAgICAgJyAgLSB8JyxcbiAgICAgICcgICAgc2V0IC1lJyxcbiAgICAgIGAgICAgZWNobyBcIlJ1bm5pbmcgJHtpbnB1dC5uYW1lfSBpbiAkKHB3ZClcImAsXG4gICAgICBgICAgIHJ1bi1sb2dnZWQgJHtvdXR9LyR7aW5wdXQubmFtZX0ubG9nIC0tIGVjaG8gXCIke2lucHV0Lm5hbWV9IHJhblwiYCxcbiAgICAgICcjIFJ1biBhZ2FpbnN0IHRoZSBidWlsdCBpbWFnZSBieSB0ZXN0LXBsdWdpbnMuc2ggLS1idWlsZCBhbmQgYHBsdWdpbiB0ZXN0YC4nLFxuICAgICAgYHNtb2tlVGVzdDogJHtxKGlucHV0LmJhc2Uuc21va2VUZXN0KX1gLFxuICAgICk7XG4gIH1cbiAgbGluZXMucHVzaChcbiAgICAnJyxcbiAgICAnIyDilIDilIDilIAgQ2F0YWxvZyBtZXRhZGF0YSDilIDilIDilIAnLFxuICAgIGBsaWNlbnNlOiAke2lucHV0LmxpY2Vuc2V9YCxcbiAgICBpbnB1dC5pY29uXG4gICAgICA/IGBpY29uOiAke2lucHV0Lmljb259ICAjIGN1cmF0ZWQga2V5cyBhcmUgZm9yIE9mZmljaWFsIGFuZCBWZXJpZmllZCBsaXN0aW5nczsgQ29tbXVuaXR5IGxpc3RpbmdzIHVwbG9hZCBhbiBpY29uYFxuICAgICAgOiAnIyBpY29uOiBub25lIOKAlCBhIENvbW11bml0eSBsaXN0aW5nIHVwbG9hZHMgYSByYXN0ZXIgaWNvbiBvciBzaG93cyBpdHMgbW9ub2dyYW0nLFxuICAgICdjaGFuZ2Vsb2c6IHwnLFxuICAgICcgIDAuMS4wOiBJbml0aWFsIHJlbGVhc2UuJyxcbiAgICAnJyxcbiAgKTtcbiAgcmV0dXJuIGxpbmVzLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiByZWFkbWVUZXh0KGlucHV0OiBTY2FmZm9sZElucHV0LCByZWxEaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGRpc3BsYXkgPSBkaXNwbGF5TmFtZU9mKGlucHV0Lm5hbWUpO1xuICByZXR1cm4gYCMgJHtkaXNwbGF5fVxuXG4ke2lucHV0LmRlc2NyaXB0aW9ufVxuXG4jIyBVc2UgaXQgaW4gYSBwaXBlbGluZVxuXG5cXGBcXGBcXGB5YW1sXG5zdGVwczpcbiAgLSBwbHVnaW46IHsgbmFtZTogJHtpbnB1dC5uYW1lfSB9XG5cXGBcXGBcXGBcblxuJHtpbnB1dC5wbHVnaW5UeXBlID09PSAnTWFudWFsQXBwcm92YWxTdGVwJyA/ICcnIDogYFRoZSBzdGVwIHdyaXRlcyBpdHMgcmVzdWx0cyB0byBcXGAke2lucHV0Lm5hbWV9LXJlcG9ydHMvXFxgIChpdHMgcHJpbWFyeSBvdXRwdXQpLlxuXG5gfSMjIERldmVsb3BcblxuXFxgXFxgXFxgYmFzaFxucGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gdmFsaWRhdGUgLS1kaXIgJHtyZWxEaXJ9ICAgIyB0aGUgc2VydmVyJ3Mgc2NoZW1hICsgY2F0YWxvZyByZXBvcnRcbnBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIHRlc3QgLS1kaXIgJHtyZWxEaXJ9IC0td29ya3NwYWNlIC4vc2FtcGxlLWFwcFxucGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gcHVibGlzaCAtLWRpciAke3JlbERpcn0gICAgIyBwcmUtZmxpZ2h0LCBhY2NlcHQgb3IgZWRpdCBtZXRhZGF0YSwgc3VibWl0XG5cXGBcXGBcXGBcblxuVGhlIGltYWdlIGJ1aWxkcyBGUk9NIFxcYCR7aW5wdXQuYmFzZS5pbWFnZX1cXGA7IGJ1aWxkIHRoZSBiYXNlcyBmaXJzdCB3aXRoXG5cXGBkZXBsb3kvYmluL2J1aWxkLXBsdWdpbi1pbWFnZXMuc2hcXGAsIG9yIHBhc3MgXFxgLS1pbWFnZVxcYCB0byBcXGBwbHVnaW4gdGVzdFxcYC5cblxuIyMgTGljZW5zZVxuXG4ke2lucHV0LmxpY2Vuc2V9IOKAlCBzZWUgW0xJQ0VOU0VdKExJQ0VOU0UpLlxuYDtcbn1cblxuLyoqIEV2ZXJ5IGZpbGUgb2YgYSBuZXcgcGx1Z2luLCBrZXllZCBieSBwYXRoIHJlbGF0aXZlIHRvIHRoZSBwbHVnaW4gZGlyZWN0b3J5LiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNjYWZmb2xkRmlsZXMoaW5wdXQ6IFNjYWZmb2xkSW5wdXQsIHJlbERpciA9IGAuLyR7aW5wdXQubmFtZX1gKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gIGNvbnN0IGlzQXBwcm92YWwgPSBpbnB1dC5wbHVnaW5UeXBlID09PSAnTWFudWFsQXBwcm92YWxTdGVwJztcbiAgY29uc3QgZmlsZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gICAgJ2NvbmZpZy55YW1sJzogaXNBcHByb3ZhbFxuICAgICAgPyAncGx1Z2luU3BlYzogcGx1Z2luLXNwZWMueWFtbFxcbmJ1aWxkVHlwZTogbWV0YWRhdGFfb25seVxcbidcbiAgICAgIDogJ3BsdWdpblNwZWM6IHBsdWdpbi1zcGVjLnlhbWxcXG5idWlsZFR5cGU6IGJ1aWxkX2ltYWdlXFxuZG9ja2VyZmlsZTogRG9ja2VyZmlsZVxcbicsXG4gICAgJ3BsdWdpbi1zcGVjLnlhbWwnOiBzcGVjVGV4dChpbnB1dCksXG4gICAgJ1JFQURNRS5tZCc6IHJlYWRtZVRleHQoaW5wdXQsIHJlbERpciksXG4gICAgJ0xJQ0VOU0UnOiBsaWNlbnNlVGV4dChpbnB1dCksXG4gIH07XG4gIGlmICghaXNBcHByb3ZhbCkgZmlsZXMuRG9ja2VyZmlsZSA9IGRvY2tlcmZpbGVUZXh0KGlucHV0KTtcbiAgcmV0dXJuIGZpbGVzO1xufVxuXG4vKiogUHJpbnQgdGhlIGF2YWlsYWJsZSBwbHVnaW4gYmFzZXMuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRCYXNlcygpOiB2b2lkIHtcbiAgcHJpbnRTZWN0aW9uKCdQbHVnaW4gYmFzZSBpbWFnZXMnLCAnZGVwbG95L3BsdWdpbnMvX2Jhc2UnKTtcbiAgZm9yIChjb25zdCBiIG9mIFBMVUdJTl9CQVNFX0lNQUdFUykgY29uc29sZS5sb2coYCAgJHtiLmtleS5wYWRFbmQoOCl9ICR7Yi5pbWFnZS5wYWRFbmQoMjgpfSAke2IucHJvdmlkZXN9YCk7XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYHBsdWdpbiBuZXdgIOKAlCBzY2FmZm9sZCBhIHBsdWdpbiBGUk9NIGEgYHBsdWdpbi08ZWNvPi1iYXNlYCBpbWFnZTpcbiAqIGEgRG9ja2VyZmlsZSB0aGF0IGZvbGxvd3MgdGhlIGNhdGFsb2cgcnVsZXMsIGEgc3BlYyB3aXRoIGNhdGFsb2cgbWV0YWRhdGEsIGFcbiAqIFJFQURNRSwgYSBjaGFuZ2Vsb2cgZW50cnkgYW5kIGEgTElDRU5TRS4gSXQgcGFzc2VzIGBwbHVnaW4gdmFsaWRhdGVgIGFuZFxuICogdGVzdC1wbHVnaW5zLnNoJ3Mgc3RhdGljIGNoZWNrcyBhcyBnZW5lcmF0ZWQuXG4gKlxuICogVXNhZ2U6XG4gKiAgIHBpcGVsaW5lLW1hbmFnZXIgcGx1Z2luIG5ldyAtLWxpc3QtYmFzZXNcbiAqICAgcGlwZWxpbmUtbWFuYWdlciBwbHVnaW4gbmV3IC0tbmFtZSBteS1saW50ZXIgLS1jYXRlZ29yeSBxdWFsaXR5IC0tYmFzZSBub2RlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBuZXdQbHVnaW4ocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ25ldycpXG4gICAgLmRlc2NyaXB0aW9uKCdTY2FmZm9sZCBhIHBsdWdpbiBmcm9tIGEgcGx1Z2luLTxlY28+LWJhc2UgaW1hZ2UgKERvY2tlcmZpbGUsIHNwZWMsIFJFQURNRSwgTElDRU5TRSknKVxuICAgIC5vcHRpb24oJy0tbmFtZSA8bmFtZT4nLCAnUGx1Z2luIG5hbWUgKGxvd2VyY2FzZSBsZXR0ZXJzLCBkaWdpdHMsIGh5cGhlbnMpJylcbiAgICAub3B0aW9uKCctLWNhdGVnb3J5IDxjYXRlZ29yeT4nLCBgQ2F0ZWdvcnk6ICR7UExVR0lOX0NBVEVHT1JJRVMuam9pbignIHwgJyl9YClcbiAgICAub3B0aW9uKCctLWJhc2UgPGVjbz4nLCBgQmFzZSBpbWFnZTogJHtQTFVHSU5fQkFTRV9JTUFHRVMubWFwKGIgPT4gYi5rZXkpLmpvaW4oJyB8ICcpfWAsICdwbHVnaW4nKVxuICAgIC5vcHRpb24oJy0tc3VtbWFyeSA8dGV4dD4nLCBgQ2F0YWxvZyBvbmUtbGluZXIgKOKJpCAke1BMVUdJTl9TVU1NQVJZX01BWH0pYClcbiAgICAub3B0aW9uKCctLWRlc2NyaXB0aW9uIDx0ZXh0PicsICdDYXRhbG9nIGRlc2NyaXB0aW9uJylcbiAgICAub3B0aW9uKCctLWxpY2Vuc2UgPHNwZHg+JywgJ1NQRFggbGljZW5zZSBpZCcsICdBcGFjaGUtMi4wJylcbiAgICAub3B0aW9uKCctLWljb24gPGtleT4nLCAnQ3VyYXRlZCBpY29uIGtleSAoT2ZmaWNpYWwvVmVyaWZpZWQgbGlzdGluZ3Mgb25seSksIG9yIG5vbmUnLCAnbm9uZScpXG4gICAgLm9wdGlvbignLS1hdXRob3IgPG5hbWU+JywgJ0NvcHlyaWdodCBob2xkZXIgZm9yIExJQ0VOU0UnKVxuICAgIC5vcHRpb24oJy0tdHlwZSA8dHlwZT4nLCBgUGx1Z2luIHR5cGU6ICR7U1RFUF9QTFVHSU5fVFlQRVMuam9pbignIHwgJyl9YCwgJ0NvZGVCdWlsZFN0ZXAnKVxuICAgIC5vcHRpb24oJy0tY29tcHV0ZSA8Y29tcHV0ZT4nLCBgQ29tcHV0ZSB0eXBlOiAke1BMVUdJTl9DT01QVVRFX1RZUEVTLmpvaW4oJyB8ICcpfWAsICdTTUFMTCcpXG4gICAgLm9wdGlvbignLS1kaXIgPHBhdGg+JywgJ1RhcmdldCBkaXJlY3RvcnkgKGRlZmF1bHQgLi88bmFtZT4pJylcbiAgICAub3B0aW9uKCctLWZvcmNlJywgJ092ZXJ3cml0ZSBhbiBleGlzdGluZyBkaXJlY3RvcnknLCBmYWxzZSlcbiAgICAub3B0aW9uKCctLWxpc3QtYmFzZXMnLCAnTGlzdCB0aGUgYXZhaWxhYmxlIGJhc2UgaW1hZ2VzIGFuZCBleGl0JywgZmFsc2UpXG4gICAgLmFjdGlvbigob3B0aW9uczogTmV3UGx1Z2luT3B0aW9ucykgPT4ge1xuICAgICAgaWYgKG9wdGlvbnMubGlzdEJhc2VzKSB7XG4gICAgICAgIHByaW50QmFzZXMoKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ05ldyBQbHVnaW4nKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGlucHV0ID0gcmVzb2x2ZVNjYWZmb2xkSW5wdXQob3B0aW9ucyk7XG4gICAgICAgIGNvbnN0IHJlbERpciA9IG9wdGlvbnMuZGlyID8/IGAuLyR7aW5wdXQubmFtZX1gO1xuICAgICAgICBjb25zdCB0YXJnZXREaXIgPSBwYXRoLnJlc29sdmUocmVsRGlyKTtcbiAgICAgICAgaWYgKGZpbGVFeGlzdHModGFyZ2V0RGlyKSAmJiAhb3B0aW9ucy5mb3JjZSkge1xuICAgICAgICAgIHRocm93IG5ldyBWYWxpZGF0aW9uRXJyb3IoYERpcmVjdG9yeSBhbHJlYWR5IGV4aXN0czogJHt0YXJnZXREaXJ9ICh1c2UgLS1mb3JjZSB0byBvdmVyd3JpdGUpYCk7XG4gICAgICAgIH1cbiAgICAgICAgZW5zdXJlT3V0cHV0RGlyZWN0b3J5KHRhcmdldERpcik7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gc2NhZmZvbGRGaWxlcyhpbnB1dCwgcmVsRGlyKTtcbiAgICAgICAgZm9yIChjb25zdCBbZmlsZSwgY29udGVudF0gb2YgT2JqZWN0LmVudHJpZXMoZmlsZXMpKSBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbih0YXJnZXREaXIsIGZpbGUpLCBjb250ZW50LCAndXRmLTgnKTtcblxuICAgICAgICBpZiAoaW5wdXQuaWNvbikgcHJpbnRXYXJuaW5nKCdDdXJhdGVkIGljb25zIGFyZSByZXNlcnZlZCBmb3IgT2ZmaWNpYWwgbGlzdGluZ3MgYW5kIFZlcmlmaWVkIHB1Ymxpc2hlcnMgd2hvIG93biB0aGUgbWFyazsgYSBDb21tdW5pdHkgbGlzdGluZyB3aXRoIG9uZSBpcyByZWZ1c2VkIGF0IHN1Ym1pdCcpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ1NjYWZmb2xkZWQgcGx1Z2luJywgdGFyZ2V0RGlyKTtcbiAgICAgICAgcHJpbnRJbmZvKCdDcmVhdGVkIGZpbGVzJywgeyBmaWxlczogT2JqZWN0LmtleXMoZmlsZXMpLCBiYXNlOiBpbnB1dC5iYXNlLmltYWdlIH0pO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ1BsdWdpbiBzY2FmZm9sZCBjcmVhdGVkIOKAlCBuZXh0OiBwbHVnaW4gdmFsaWRhdGUsIHBsdWdpbiB0ZXN0LCBwbHVnaW4gcHVibGlzaCcsIHsgZXhlY3V0aW9uSWQsIGRpcjogdGFyZ2V0RGlyIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVyciwgZXJyIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yID8gRVJST1JfQ09ERVMuVkFMSURBVElPTiA6IEVSUk9SX0NPREVTLkdFTkVSQUwsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdwbHVnaW4gbmV3JywgZXhlY3V0aW9uSWQgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -33,7 +33,7 @@ const { bold, green } = pico;
|
|
|
33
33
|
export function orgExport(program) {
|
|
34
34
|
withSslOptions(program
|
|
35
35
|
.command('export')
|
|
36
|
-
.description('Export an organization\'s data as JSON (GDPR portability, )
|
|
36
|
+
.description('Export an organization\'s data as JSON (GDPR portability: sysadmins any org, org admins their own)')
|
|
37
37
|
.requiredOption('-i, --id <id>', 'Organization ID to export')
|
|
38
38
|
.option('-o, --output <file>', 'Output file path (default: org-<id>-export.json in CWD)'))
|
|
39
39
|
.action(async (options) => {
|
|
@@ -97,4 +97,4 @@ export function orgExport(program) {
|
|
|
97
97
|
}
|
|
98
98
|
});
|
|
99
99
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWV4cG9ydC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL29yZy1leHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUM5QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BLLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnQjtJQUN4QyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQyw4REFBOEQsQ0FBQztTQUMzRSxjQUFjLENBQUMsZUFBZSxFQUFFLDJCQUEyQixDQUFDO1NBQzVELE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ3pGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxD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LFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2FBQ25FLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50LCBwcmludENvbW1hbmRIZWFkZXIsIHByaW50RXhlY3V0aW9uU3VtbWFyeSwgcHJpbnRTc2xXYXJuaW5nLCB2YWxpZGF0ZUVudGl0eUlkLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuY29uc3QgeyBib2xkLCBncmVlbiB9ID0gcGljbztcblxuLyoqXG4gKiBDTEkgIGBwaXBlbGluZS1tYW5hZ2VyIG9yZyBleHBvcnQgLS1pZCA8b3JnSWQ+IC0tb3V0cHV0IDxmaWxlPmAuXG4gKlxuICogRmV0Y2hlcyB0aGUgR0RQUiBwb3J0YWJpbGl0eSBkdW1wIGZyb20gYEdFVCAvYXBpL29yZ2FuaXphdGlvbi86aWQvZXhwb3J0YFxuICogb24gdGhlIHBsYXRmb3JtIHNlcnZpY2UgYW5kIHdyaXRlcyBpdCB0byBkaXNrIChvciBzdGRvdXQpLiBUaGUgZW5kcG9pbnRcbiAqIGlzIGdhdGVkIHNlcnZlci1zaWRlICog4oCiIFN5c3RlbSBhZG1pbnMgKGFkbWluL293bmVyIGluIHRoZSBgc3lzdGVtYCBvcmcpIG1heSBleHBvcnQgYW55IG9yZy5cbiAqIOKAoiBPcmcgYWRtaW5zIC8gb3duZXJzIG1heSBleHBvcnQgT05MWSB0aGVpciBvd24gb3JnLlxuICog4oCiIEV2ZXJ5dGhpbmcgZWxzZSBnZXRzIDQwMy5cbiAqXG4gKiBUaGUgQ0xJIGl0c2VsZiBkb2VzIG5vIHJvbGUgY2hlY2tpbmcgIHRoZSBjYWxsZXIncyBQTEFURk9STV9UT0tFTiBkcml2ZXNcbiAqIHdoYXQgdGhlIHNlcnZlciBhY2NlcHRzLiBSdW4gYHBpcGVsaW5lLW1hbmFnZXIgc3RhdHVzYCBmaXJzdCB0byBjb25maXJtXG4gKiB0aGUgdG9rZW4ncyByb2xlICsgb3JnLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiAjIFN5c2FkbWluOiBhbnkgb3JnXG4gKiBwaXBlbGluZS1tYW5hZ2VyIG9yZyBleHBvcnQgLS1pZCBvcmctYWNtZSAtLW91dHB1dCBhY21lLmpzb25cbiAqXG4gKiAjIE9yZyBhZG1pbjogb3duIG9yZyBvbmx5IChzZXJ2ZXIgcmVqZWN0cyBvdGhlciBpZHMgd2l0aCA0MDMpXG4gKiBwaXBlbGluZS1tYW5hZ2VyIG9yZyBleHBvcnQgLS1pZCBvcmctYWNtZSAtLW91dHB1dCBhY21lLmpzb25cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gb3JnRXhwb3J0KHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdleHBvcnQnKVxuICAgIC5kZXNjcmlwdGlvbignRXhwb3J0IGFuIG9yZ2FuaXphdGlvblxcJ3MgZGF0YSBhcyBKU09OIChHRFBSIHBvcnRhYmlsaXR5LCApLicpXG4gICAgLnJlcXVpcmVkT3B0aW9uKCctaSwgLS1pZCA8aWQ+JywgJ09yZ2FuaXphdGlvbiBJRCB0byBleHBvcnQnKVxuICAgIC5vcHRpb24oJy1vLCAtLW91dHB1dCA8ZmlsZT4nLCAnT3V0cHV0IGZpbGUgcGF0aCAoZGVmYXVsdDogb3JnLTxpZD4tZXhwb3J0Lmpzb24gaW4gQ1dEKScpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdPcmcgRXhwb3J0Jyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG5cbiAgICAgICAgY29uc3Qgb3JnSWQgPSB2YWxpZGF0ZUVudGl0eUlkKG9wdGlvbnMuaWQsICdPcmdhbml6YXRpb24nKTtcbiAgICAgICAgY29uc3Qgb3V0cHV0UGF0aCA9IG9wdGlvbnMub3V0cHV0XG4gICAgICAgICAgPyBwYXRoLnJlc29sdmUob3B0aW9ucy5vdXRwdXQpXG4gICAgICAgICAgOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgYG9yZy0ke29yZ0lkfS1leHBvcnQuanNvbmApO1xuXG4gICAgICAgIHByaW50SW5mbygnUmVxdWVzdCBwYXJhbWV0ZXJzJywge1xuICAgICAgICAgIG9yZ0lkLFxuICAgICAgICAgIG91dHB1dDogb3V0cHV0UGF0aCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3QgY2xpZW50ID0gY3JlYXRlQXV0aGVudGljYXRlZENsaWVudChvcHRpb25zKTtcblxuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG4gICAgICAgIHByaW50U2VjdGlvbignRmV0Y2hpbmcgRXhwb3J0Jyk7XG5cbiAgICAgICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICAgICAgLy8gVGhlIGVuZHBvaW50IHN0cmVhbXMgYSBsYXJnZSBKU09OIGF0dGFjaG1lbnQgZm9yIG9yZ3Mgd2l0aCBsb25nXG4gICAgICAgIC8vIGhpc3Rvcmllcy4gVGhlIEFwaUNsaWVudCByZXR1cm5zIHRoZSBwYXJzZWQgYm9keSBkaXJlY3RseSwgd2hpY2hcbiAgICAgICAgLy8gZm9yIGBhcHBsaWNhdGlvbi9qc29uYCBpcyBhIEpTIG9iamVjdCB3ZSByZS1zZXJpYWxpemUgdG8gZGlzay5cbiAgICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFJlY29yZDxzdHJpbmcsIHVua25vd24+PiggYCR7Y2xpZW50LmdldENvbmZpZygpLmFwaS5iYXNlVXJsfS9hcGkvb3JnYW5pemF0aW9uLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG9yZ0lkKX0vZXhwb3J0YCxcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgZHVyYXRpb24gPSBEYXRlLm5vdygpIC0gc3RhcnRUaW1lO1xuXG4gICAgICAgIGlmICghcmVzcG9uc2UgfHwgdHlwZW9mIHJlc3BvbnNlICE9PSAnb2JqZWN0Jykge1xuICAgICAgICAgIHByaW50RXJyb3IoJ0VtcHR5IC8gdW5wYXJzZWFibGUgZXhwb3J0IHBheWxvYWQnKTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEV4cG9ydCByZXR1cm5lZCBubyBkYXRhIGZvciBvcmcgJHtvcmdJZH1gKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFJlLXNlcmlhbGl6ZSBzbyB3ZSBrZWVwIHRoZSBzYW1lIHByZXR0eS1wcmludGVkIHNoYXBlIHRoZSBzZXJ2ZXJcbiAgICAgICAgLy8gcHJvZHVjZWQgKDItc3BhY2UgaW5kZW50IG1hdGNoZXMgdGhlIHBsYXRmb3JtJ3MgaGFuZGxlcikgYW5kIHNvXG4gICAgICAgIC8vIHdlIGRvbid0IGxvc2UgRGF0ZSBwcmVjaXNpb24gb24gYSByb3VuZC10cmlwIHRocm91Z2ggSlNPTi5wYXJzZS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gR1VBUkQ6IHRoaXMgd3JpdGVzIHRoZSByYXcgc2VydmVyIHBheWxvYWQgc3RyYWlnaHQgdG8gZGlzay4gVGhlIGV4cG9ydFxuICAgICAgICAvLyBwYXlsb2FkIG11c3QgTkVWRVIgY29udGFpbiBhbiBBV1MgYWNjb3VudCBpZCDigJQgb3JnSWQgaXMgdGhlIHBsYXRmb3JtIG9yZ1xuICAgICAgICAvLyBpZCwgbmV2ZXIgYW4gQVdTIGFjY291bnQgaWQuIEl0IGlzIGFjY291bnQtaWQtZnJlZSB0b2RheTtcbiAgICAgICAgLy8gaWYgYSBmdXR1cmUgc2VydmVyIGNoYW5nZSBldmVyIGFkZHMgb25lLCBpdCBtdXN0IGJlIHN0cmlwcGVkL3JlZGFjdGVkXG4gICAgICAgIC8vIGhlcmUgQkVGT1JFIHRoaXMgd3JpdGUsIG5vdCBwZXJzaXN0ZWQgdGhyb3VnaCB0aGUgQ0xJLlxuICAgICAgICBjb25zdCBqc29uID0gSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UsIG51bGwsIDIpO1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKG91dHB1dFBhdGgsIGpzb24sICd1dGY4Jyk7XG5cbiAgICAgICAgY29uc3Qgc2l6ZUtiID0gKGpzb24ubGVuZ3RoIC8gMTAyNCkudG9GaXhlZCgxKTtcbiAgICAgICAgY29uc3QgcG9zdGdyZXNUYWJsZXMgPSByZXNwb25zZS5wb3N0Z3JlcyAmJiB0eXBlb2YgcmVzcG9uc2UucG9zdGdyZXMgPT09ICdvYmplY3QnXG4gICAgICAgICAgPyBPYmplY3Qua2V5cyhyZXNwb25zZS5wb3N0Z3JlcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikubGVuZ3RoXG4gICAgICAgICAgOiAwO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdFeHBvcnQgU2F2ZWQnKTtcbiAgICAgICAgcHJpbnRLZXlWYWx1ZSh7XG4gICAgICAgICAgJ09yZyBJRCc6IGdyZWVuKGJvbGQob3JnSWQpKSxcbiAgICAgICAgICAnT3V0cHV0Jzogb3V0cHV0UGF0aCxcbiAgICAgICAgICAnU2l6ZSc6IGAke3NpemVLYn0gS0JgLFxuICAgICAgICAgICdQb3N0Z3JlcyB0YWJsZXMnOiBTdHJpbmcocG9zdGdyZXNUYWJsZXMpLFxuICAgICAgICAgICdFeHBvcnRlZCBhdCc6IHR5cGVvZiByZXNwb25zZS5leHBvcnRlZEF0ID09PSAnc3RyaW5nJyA/IHJlc3BvbnNlLmV4cG9ydGVkQXQ6ICcobm90IHNldCknLFxuICAgICAgICB9KTtcblxuICAgICAgICBwcmludEV4ZWN1dGlvblN1bW1hcnkoZXhlY3V0aW9uSWQsIGR1cmF0aW9uKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdPcmdhbml6YXRpb24gZXhwb3J0IGNvbXBsZXRlJywgeyBwYXRoOiBvdXRwdXRQYXRoIH0pO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAnb3JnLWV4cG9ydCcsIGV4ZWN1dGlvbklkLCBvcmdJZDogb3B0aW9ucy5pZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cbiJdfQ==
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnLWV4cG9ydC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1hbmRzL29yZy1leHBvcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sSUFBSSxNQUFNLFlBQVksQ0FBQztBQUM5QixPQUFPLEVBQUUseUJBQXlCLEVBQUUsa0JBQWtCLEVBQUUscUJBQXFCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3BLLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDckUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU1RyxNQUFNLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxHQUFHLElBQUksQ0FBQztBQUU3Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBQ0gsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFnQjtJQUN4QyxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsUUFBUSxDQUFDO1NBQ2pCLFdBQVcsQ0FBQyxvR0FBb0csQ0FBQztTQUNqSCxjQUFjLENBQUMsZUFBZSxFQUFFLDJCQUEyQixDQUFDO1NBQzVELE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSx5REFBeUQsQ0FBQyxDQUFDO1NBQ3pGLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDeEIsTUFBTSxXQUFXLEdBQUcsa0JBQWtCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFckQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxD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LFlBQVksQ0FBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2FBQ25FLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50LCBwcmludENvbW1hbmRIZWFkZXIsIHByaW50RXhlY3V0aW9uU3VtbWFyeSwgcHJpbnRTc2xXYXJuaW5nLCB2YWxpZGF0ZUVudGl0eUlkLCB3aXRoU3NsT3B0aW9ucyB9IGZyb20gJy4uL3V0aWxzL2NvbW1hbmQtdXRpbHMuanMnO1xuaW1wb3J0IHsgRVJST1JfQ09ERVMsIGhhbmRsZUVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEVycm9yLCBwcmludEluZm8sIHByaW50S2V5VmFsdWUsIHByaW50U2VjdGlvbiwgcHJpbnRTdWNjZXNzIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuY29uc3QgeyBib2xkLCBncmVlbiB9ID0gcGljbztcblxuLyoqXG4gKiBDTEkgIGBwaXBlbGluZS1tYW5hZ2VyIG9yZyBleHBvcnQgLS1pZCA8b3JnSWQ+IC0tb3V0cHV0IDxmaWxlPmAuXG4gKlxuICogRmV0Y2hlcyB0aGUgR0RQUiBwb3J0YWJpbGl0eSBkdW1wIGZyb20gYEdFVCAvYXBpL29yZ2FuaXphdGlvbi86aWQvZXhwb3J0YFxuICogb24gdGhlIHBsYXRmb3JtIHNlcnZpY2UgYW5kIHdyaXRlcyBpdCB0byBkaXNrIChvciBzdGRvdXQpLiBUaGUgZW5kcG9pbnRcbiAqIGlzIGdhdGVkIHNlcnZlci1zaWRlICog4oCiIFN5c3RlbSBhZG1pbnMgKGFkbWluL293bmVyIGluIHRoZSBgc3lzdGVtYCBvcmcpIG1heSBleHBvcnQgYW55IG9yZy5cbiAqIOKAoiBPcmcgYWRtaW5zIC8gb3duZXJzIG1heSBleHBvcnQgT05MWSB0aGVpciBvd24gb3JnLlxuICog4oCiIEV2ZXJ5dGhpbmcgZWxzZSBnZXRzIDQwMy5cbiAqXG4gKiBUaGUgQ0xJIGl0c2VsZiBkb2VzIG5vIHJvbGUgY2hlY2tpbmcgIHRoZSBjYWxsZXIncyBQTEFURk9STV9UT0tFTiBkcml2ZXNcbiAqIHdoYXQgdGhlIHNlcnZlciBhY2NlcHRzLiBSdW4gYHBpcGVsaW5lLW1hbmFnZXIgc3RhdHVzYCBmaXJzdCB0byBjb25maXJtXG4gKiB0aGUgdG9rZW4ncyByb2xlICsgb3JnLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiAjIFN5c2FkbWluOiBhbnkgb3JnXG4gKiBwaXBlbGluZS1tYW5hZ2VyIG9yZyBleHBvcnQgLS1pZCBvcmctYWNtZSAtLW91dHB1dCBhY21lLmpzb25cbiAqXG4gKiAjIE9yZyBhZG1pbjogb3duIG9yZyBvbmx5IChzZXJ2ZXIgcmVqZWN0cyBvdGhlciBpZHMgd2l0aCA0MDMpXG4gKiBwaXBlbGluZS1tYW5hZ2VyIG9yZyBleHBvcnQgLS1pZCBvcmctYWNtZSAtLW91dHB1dCBhY21lLmpzb25cbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gb3JnRXhwb3J0KHByb2dyYW06IENvbW1hbmQpOiB2b2lkIHtcbiAgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbVxuICAgIC5jb21tYW5kKCdleHBvcnQnKVxuICAgIC5kZXNjcmlwdGlvbignRXhwb3J0IGFuIG9yZ2FuaXphdGlvblxcJ3MgZGF0YSBhcyBKU09OIChHRFBSIHBvcnRhYmlsaXR5OiBzeXNhZG1pbnMgYW55IG9yZywgb3JnIGFkbWlucyB0aGVpciBvd24pJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1pLCAtLWlkIDxpZD4nLCAnT3JnYW5pemF0aW9uIElEIHRvIGV4cG9ydCcpXG4gICAgLm9wdGlvbignLW8sIC0tb3V0cHV0IDxmaWxlPicsICdPdXRwdXQgZmlsZSBwYXRoIChkZWZhdWx0OiBvcmctPGlkPi1leHBvcnQuanNvbiBpbiBDV0QpJykpXG4gICAgLmFjdGlvbihhc3luYyAob3B0aW9ucykgPT4ge1xuICAgICAgY29uc3QgZXhlY3V0aW9uSWQgPSBwcmludENvbW1hbmRIZWFkZXIoJ09yZyBFeHBvcnQnKTtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICBjb25zdCBvcmdJZCA9IHZhbGlkYXRlRW50aXR5SWQob3B0aW9ucy5pZCwgJ09yZ2FuaXphdGlvbicpO1xuICAgICAgICBjb25zdCBvdXRwdXRQYXRoID0gb3B0aW9ucy5vdXRwdXRcbiAgICAgICAgICA/IHBhdGgucmVzb2x2ZShvcHRpb25zLm91dHB1dClcbiAgICAgICAgICA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBgb3JnLSR7b3JnSWR9LWV4cG9ydC5qc29uYCk7XG5cbiAgICAgICAgcHJpbnRJbmZvKCdSZXF1ZXN0IHBhcmFtZXRlcnMnLCB7XG4gICAgICAgICAgb3JnSWQsXG4gICAgICAgICAgb3V0cHV0OiBvdXRwdXRQYXRoLFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBjbGllbnQgPSBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50KG9wdGlvbnMpO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdGZXRjaGluZyBFeHBvcnQnKTtcblxuICAgICAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xuICAgICAgICAvLyBUaGUgZW5kcG9pbnQgc3RyZWFtcyBhIGxhcmdlIEpTT04gYXR0YWNobWVudCBmb3Igb3JncyB3aXRoIGxvbmdcbiAgICAgICAgLy8gaGlzdG9yaWVzLiBUaGUgQXBpQ2xpZW50IHJldHVybnMgdGhlIHBhcnNlZCBib2R5IGRpcmVjdGx5LCB3aGljaFxuICAgICAgICAvLyBmb3IgYGFwcGxpY2F0aW9uL2pzb25gIGlzIGEgSlMgb2JqZWN0IHdlIHJlLXNlcmlhbGl6ZSB0byBkaXNrLlxuICAgICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGNsaWVudC5nZXQ8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+KCBgJHtjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLmJhc2VVcmx9L2FwaS9vcmdhbml6YXRpb24vJHtlbmNvZGVVUklDb21wb25lbnQob3JnSWQpfS9leHBvcnRgLFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IERhdGUubm93KCkgLSBzdGFydFRpbWU7XG5cbiAgICAgICAgaWYgKCFyZXNwb25zZSB8fCB0eXBlb2YgcmVzcG9uc2UgIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcHJpbnRFcnJvcignRW1wdHkgLyB1bnBhcnNlYWJsZSBleHBvcnQgcGF5bG9hZCcpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRXhwb3J0IHJldHVybmVkIG5vIGRhdGEgZm9yIG9yZyAke29yZ0lkfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gUmUtc2VyaWFsaXplIHNvIHdlIGtlZXAgdGhlIHNhbWUgcHJldHR5LXByaW50ZWQgc2hhcGUgdGhlIHNlcnZlclxuICAgICAgICAvLyBwcm9kdWNlZCAoMi1zcGFjZSBpbmRlbnQgbWF0Y2hlcyB0aGUgcGxhdGZvcm0ncyBoYW5kbGVyKSBhbmQgc29cbiAgICAgICAgLy8gd2UgZG9uJ3QgbG9zZSBEYXRlIHByZWNpc2lvbiBvbiBhIHJvdW5kLXRyaXAgdGhyb3VnaCBKU09OLnBhcnNlLlxuICAgICAgICAvL1xuICAgICAgICAvLyBHVUFSRDogdGhpcyB3cml0ZXMgdGhlIHJhdyBzZXJ2ZXIgcGF5bG9hZCBzdHJhaWdodCB0byBkaXNrLiBUaGUgZXhwb3J0XG4gICAgICAgIC8vIHBheWxvYWQgbXVzdCBORVZFUiBjb250YWluIGFuIEFXUyBhY2NvdW50IGlkIOKAlCBvcmdJZCBpcyB0aGUgcGxhdGZvcm0gb3JnXG4gICAgICAgIC8vIGlkLCBuZXZlciBhbiBBV1MgYWNjb3VudCBpZC4gSXQgaXMgYWNjb3VudC1pZC1mcmVlIHRvZGF5O1xuICAgICAgICAvLyBpZiBhIGZ1dHVyZSBzZXJ2ZXIgY2hhbmdlIGV2ZXIgYWRkcyBvbmUsIGl0IG11c3QgYmUgc3RyaXBwZWQvcmVkYWN0ZWRcbiAgICAgICAgLy8gaGVyZSBCRUZPUkUgdGhpcyB3cml0ZSwgbm90IHBlcnNpc3RlZCB0aHJvdWdoIHRoZSBDTEkuXG4gICAgICAgIGNvbnN0IGpzb24gPSBKU09OLnN0cmluZ2lmeShyZXNwb25zZSwgbnVsbCwgMik7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMob3V0cHV0UGF0aCwganNvbiwgJ3V0ZjgnKTtcblxuICAgICAgICBjb25zdCBzaXplS2IgPSAoanNvbi5sZW5ndGggLyAxMDI0KS50b0ZpeGVkKDEpO1xuICAgICAgICBjb25zdCBwb3N0Z3Jlc1RhYmxlcyA9IHJlc3BvbnNlLnBvc3RncmVzICYmIHR5cGVvZiByZXNwb25zZS5wb3N0Z3JlcyA9PT0gJ29iamVjdCdcbiAgICAgICAgICA/IE9iamVjdC5rZXlzKHJlc3BvbnNlLnBvc3RncmVzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KS5sZW5ndGhcbiAgICAgICAgICA6IDA7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ0V4cG9ydCBTYXZlZCcpO1xuICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAnT3JnIElEJzogZ3JlZW4oYm9sZChvcmdJZCkpLFxuICAgICAgICAgICdPdXRwdXQnOiBvdXRwdXRQYXRoLFxuICAgICAgICAgICdTaXplJzogYCR7c2l6ZUtifSBLQmAsXG4gICAgICAgICAgJ1Bvc3RncmVzIHRhYmxlcyc6IFN0cmluZyhwb3N0Z3Jlc1RhYmxlcyksXG4gICAgICAgICAgJ0V4cG9ydGVkIGF0JzogdHlwZW9mIHJlc3BvbnNlLmV4cG9ydGVkQXQgPT09ICdzdHJpbmcnID8gcmVzcG9uc2UuZXhwb3J0ZWRBdDogJyhub3Qgc2V0KScsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHByaW50RXhlY3V0aW9uU3VtbWFyeShleGVjdXRpb25JZCwgZHVyYXRpb24pO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ09yZ2FuaXphdGlvbiBleHBvcnQgY29tcGxldGUnLCB7IHBhdGg6IG91dHB1dFBhdGggfSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBoYW5kbGVFcnJvcihlcnJvciwgRVJST1JfQ09ERVMuQVBJX1JFUVVFU1QsIHtcbiAgICAgICAgICBkZWJ1ZzogcHJvZ3JhbS5vcHRzKCkuZGVidWcsXG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdvcmctZXhwb3J0JywgZXhlY3V0aW9uSWQsIG9yZ0lkOiBvcHRpb25zLmlkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Registers `pipeline delete`: delete a pipeline configuration
|
|
4
|
+
* (`DELETE /api/pipelines/:id`). It does NOT touch AWS — a deployed stack keeps
|
|
5
|
+
* running until it is destroyed, and the stack then shows up in `audit stacks`
|
|
6
|
+
* as orphaned.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```bash
|
|
10
|
+
* pipeline-manager pipeline delete --id <pipelineId> --yes
|
|
11
|
+
* ```
|
|
12
|
+
*/
|
|
13
|
+
export declare function deletePipeline(program: Command): void;
|
|
14
|
+
/**
|
|
15
|
+
* Registers `pipeline deregister`: remove one pipeline_registry row
|
|
16
|
+
* (`DELETE /api/pipelines/registry/:id`, by the row's UUID — the `registryId`
|
|
17
|
+
* an `audit stacks` missing-stack finding prints). The supported way to clear a
|
|
18
|
+
* row whose CloudFormation stack was deleted out of band.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```bash
|
|
22
|
+
* pipeline-manager pipeline deregister --id <registryId> --yes
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export declare function deregisterPipeline(program: Command): void;
|
|
26
|
+
//# sourceMappingURL=pipeline-remove.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pipeline-remove.d.ts","sources":["../../src/commands/pipeline-remove.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAUpC;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBrD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAuBzD"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
// Copyright 2026 Pipeline Builder Contributors
|
|
2
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { Command } from 'commander';
|
|
4
|
+
import { createAuthenticatedClientAsync, printCommandHeader, printSslWarning, validateEntityId, withSslOptions } from '../utils/command-utils.js';
|
|
5
|
+
import { ERROR_CODES, handleError, ValidationError } from '../utils/error-handler.js';
|
|
6
|
+
import { printInfo, printSuccess, printWarning } from '../utils/output-utils.js';
|
|
7
|
+
/** `--yes` is required: both verbs are destructive and the CLI never prompts. */
|
|
8
|
+
function requireYes(yes, what) {
|
|
9
|
+
if (!yes)
|
|
10
|
+
throw new ValidationError(`Refusing to ${what} without --yes`, 'yes');
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Registers `pipeline delete`: delete a pipeline configuration
|
|
14
|
+
* (`DELETE /api/pipelines/:id`). It does NOT touch AWS — a deployed stack keeps
|
|
15
|
+
* running until it is destroyed, and the stack then shows up in `audit stacks`
|
|
16
|
+
* as orphaned.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```bash
|
|
20
|
+
* pipeline-manager pipeline delete --id <pipelineId> --yes
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export function deletePipeline(program) {
|
|
24
|
+
withSslOptions(program
|
|
25
|
+
.command('delete')
|
|
26
|
+
.description('Delete a pipeline configuration from the platform (the deployed stack, if any, is left in AWS)')
|
|
27
|
+
.requiredOption('-i, --id <id>', 'Pipeline ID')
|
|
28
|
+
.option('-y, --yes', 'Confirm the deletion (required)', false))
|
|
29
|
+
.action(async (options) => {
|
|
30
|
+
const executionId = printCommandHeader('Delete Pipeline');
|
|
31
|
+
try {
|
|
32
|
+
printSslWarning(options.verifySsl);
|
|
33
|
+
const id = validateEntityId(options.id, 'Pipeline');
|
|
34
|
+
requireYes(options.yes, 'delete a pipeline');
|
|
35
|
+
const client = await createAuthenticatedClientAsync(options);
|
|
36
|
+
await client.delete(`${client.getConfig().api.pipelineUrl}/${encodeURIComponent(id)}`);
|
|
37
|
+
printSuccess('Pipeline deleted', { id });
|
|
38
|
+
printWarning('A deployed stack is not removed — destroy it in AWS, or it will be reported by "audit stacks" as orphaned');
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
handleError(error, ERROR_CODES.API_REQUEST, {
|
|
42
|
+
exit: true,
|
|
43
|
+
context: { command: 'pipeline-delete', executionId, pipelineId: options.id },
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Registers `pipeline deregister`: remove one pipeline_registry row
|
|
50
|
+
* (`DELETE /api/pipelines/registry/:id`, by the row's UUID — the `registryId`
|
|
51
|
+
* an `audit stacks` missing-stack finding prints). The supported way to clear a
|
|
52
|
+
* row whose CloudFormation stack was deleted out of band.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```bash
|
|
56
|
+
* pipeline-manager pipeline deregister --id <registryId> --yes
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export function deregisterPipeline(program) {
|
|
60
|
+
withSslOptions(program
|
|
61
|
+
.command('deregister')
|
|
62
|
+
.description('Remove a pipeline_registry row (by registry id) — reconciles an "audit stacks" missing-stack finding')
|
|
63
|
+
.requiredOption('-i, --id <registryId>', 'Registry row ID (the registryId "audit stacks" prints)')
|
|
64
|
+
.option('-y, --yes', 'Confirm the removal (required)', false))
|
|
65
|
+
.action(async (options) => {
|
|
66
|
+
const executionId = printCommandHeader('Deregister Pipeline');
|
|
67
|
+
try {
|
|
68
|
+
printSslWarning(options.verifySsl);
|
|
69
|
+
const id = validateEntityId(options.id, 'Registry');
|
|
70
|
+
requireYes(options.yes, 'remove a registry row');
|
|
71
|
+
const client = await createAuthenticatedClientAsync(options);
|
|
72
|
+
await client.delete(`${client.getConfig().api.pipelineUrl}/registry/${encodeURIComponent(id)}`);
|
|
73
|
+
printSuccess('Registry row removed', { id });
|
|
74
|
+
printInfo('Event reporting for that deployment stops; "pipeline register" adds it back');
|
|
75
|
+
}
|
|
76
|
+
catch (error) {
|
|
77
|
+
handleError(error, ERROR_CODES.API_REQUEST, {
|
|
78
|
+
exit: true,
|
|
79
|
+
context: { command: 'pipeline-deregister', executionId, registryId: options.id },
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtcmVtb3ZlLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvcGlwZWxpbmUtcmVtb3ZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsOEJBQThCLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xKLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWpGLGlGQUFpRjtBQUNqRixTQUFTLFVBQVUsQ0FBQyxHQUF3QixFQUFFLElBQVk7SUFDeEQsSUFBSSxDQUFDLEdBQUc7UUFBRSxNQUFNLElBQUksZUFBZSxDQUFDLGVBQWUsSUFBSSxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsQ0FBQztBQUNsRixDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0I7SUFDN0MsY0FBYyxDQUFDLE9BQU87U0FDbkIsT0FBTyxDQUFDLFFBQVEsQ0FBQztTQUNqQixXQUFXLENBQUMsZ0dBQWdHLENBQUM7U0FDN0csY0FBYyxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUM7U0FDOUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM5RCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDMUQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDLENBQUM7WUFDN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDdkYsWUFBWSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6QyxZQUFZLENBQUMsMkdBQTJHLENBQUMsQ0FBQztRQUM1SCxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTthQUM3RSxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQjtJQUNqRCxjQUFjLENBQUMsT0FBTztTQUNuQixPQUFPLENBQUMsWUFBWSxDQUFDO1NBQ3JCLFdBQVcsQ0FBQyxzR0FBc0csQ0FBQztTQUNuSCxjQUFjLENBQUMsdUJBQXVCLEVBQUUsd0RBQXdELENBQUM7U0FDakcsTUFBTSxDQUFDLFdBQVcsRUFBRSxnQ0FBZ0MsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUM3RCxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sV0FBVyxHQUFHLGtCQUFrQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDO1lBQ0gsZUFBZSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUNuQyxNQUFNLEVBQUUsR0FBRyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3BELFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLHVCQUF1QixDQUFDLENBQUM7WUFDakQsTUFBTSxNQUFNLEdBQUcsTUFBTSw4QkFBOEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3RCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsYUFBYSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDaEcsWUFBWSxDQUFDLHNCQUFzQixFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUM3QyxTQUFTLENBQUMsNkVBQTZFLENBQUMsQ0FBQztRQUMzRixDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLFdBQVcsQ0FBQyxLQUFLLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBRTtnQkFDMUMsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTthQUNqRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jLCBwcmludENvbW1hbmRIZWFkZXIsIHByaW50U3NsV2FybmluZywgdmFsaWRhdGVFbnRpdHlJZCwgd2l0aFNzbE9wdGlvbnMgfSBmcm9tICcuLi91dGlscy9jb21tYW5kLXV0aWxzLmpzJztcbmltcG9ydCB7IEVSUk9SX0NPREVTLCBoYW5kbGVFcnJvciwgVmFsaWRhdGlvbkVycm9yIH0gZnJvbSAnLi4vdXRpbHMvZXJyb3ItaGFuZGxlci5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcblxuLyoqIGAtLXllc2AgaXMgcmVxdWlyZWQ6IGJvdGggdmVyYnMgYXJlIGRlc3RydWN0aXZlIGFuZCB0aGUgQ0xJIG5ldmVyIHByb21wdHMuICovXG5mdW5jdGlvbiByZXF1aXJlWWVzKHllczogYm9vbGVhbiB8IHVuZGVmaW5lZCwgd2hhdDogc3RyaW5nKTogdm9pZCB7XG4gIGlmICgheWVzKSB0aHJvdyBuZXcgVmFsaWRhdGlvbkVycm9yKGBSZWZ1c2luZyB0byAke3doYXR9IHdpdGhvdXQgLS15ZXNgLCAneWVzJyk7XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIGBwaXBlbGluZSBkZWxldGVgOiBkZWxldGUgYSBwaXBlbGluZSBjb25maWd1cmF0aW9uXG4gKiAoYERFTEVURSAvYXBpL3BpcGVsaW5lcy86aWRgKS4gSXQgZG9lcyBOT1QgdG91Y2ggQVdTIOKAlCBhIGRlcGxveWVkIHN0YWNrIGtlZXBzXG4gKiBydW5uaW5nIHVudGlsIGl0IGlzIGRlc3Ryb3llZCwgYW5kIHRoZSBzdGFjayB0aGVuIHNob3dzIHVwIGluIGBhdWRpdCBzdGFja3NgXG4gKiBhcyBvcnBoYW5lZC5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBwaXBlbGluZSBkZWxldGUgLS1pZCA8cGlwZWxpbmVJZD4gLS15ZXNcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVsZXRlUGlwZWxpbmUocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2RlbGV0ZScpXG4gICAgLmRlc2NyaXB0aW9uKCdEZWxldGUgYSBwaXBlbGluZSBjb25maWd1cmF0aW9uIGZyb20gdGhlIHBsYXRmb3JtICh0aGUgZGVwbG95ZWQgc3RhY2ssIGlmIGFueSwgaXMgbGVmdCBpbiBBV1MpJylcbiAgICAucmVxdWlyZWRPcHRpb24oJy1pLCAtLWlkIDxpZD4nLCAnUGlwZWxpbmUgSUQnKVxuICAgIC5vcHRpb24oJy15LCAtLXllcycsICdDb25maXJtIHRoZSBkZWxldGlvbiAocmVxdWlyZWQpJywgZmFsc2UpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdEZWxldGUgUGlwZWxpbmUnKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHByaW50U3NsV2FybmluZyhvcHRpb25zLnZlcmlmeVNzbCk7XG4gICAgICAgIGNvbnN0IGlkID0gdmFsaWRhdGVFbnRpdHlJZChvcHRpb25zLmlkLCAnUGlwZWxpbmUnKTtcbiAgICAgICAgcmVxdWlyZVllcyhvcHRpb25zLnllcywgJ2RlbGV0ZSBhIHBpcGVsaW5lJyk7XG4gICAgICAgIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgICAgICAgYXdhaXQgY2xpZW50LmRlbGV0ZShgJHtjbGllbnQuZ2V0Q29uZmlnKCkuYXBpLnBpcGVsaW5lVXJsfS8ke2VuY29kZVVSSUNvbXBvbmVudChpZCl9YCk7XG4gICAgICAgIHByaW50U3VjY2VzcygnUGlwZWxpbmUgZGVsZXRlZCcsIHsgaWQgfSk7XG4gICAgICAgIHByaW50V2FybmluZygnQSBkZXBsb3llZCBzdGFjayBpcyBub3QgcmVtb3ZlZCDigJQgZGVzdHJveSBpdCBpbiBBV1MsIG9yIGl0IHdpbGwgYmUgcmVwb3J0ZWQgYnkgXCJhdWRpdCBzdGFja3NcIiBhcyBvcnBoYW5lZCcpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZXhpdDogdHJ1ZSxcbiAgICAgICAgICBjb250ZXh0OiB7IGNvbW1hbmQ6ICdwaXBlbGluZS1kZWxldGUnLCBleGVjdXRpb25JZCwgcGlwZWxpbmVJZDogb3B0aW9ucy5pZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlcnMgYHBpcGVsaW5lIGRlcmVnaXN0ZXJgOiByZW1vdmUgb25lIHBpcGVsaW5lX3JlZ2lzdHJ5IHJvd1xuICogKGBERUxFVEUgL2FwaS9waXBlbGluZXMvcmVnaXN0cnkvOmlkYCwgYnkgdGhlIHJvdydzIFVVSUQg4oCUIHRoZSBgcmVnaXN0cnlJZGBcbiAqIGFuIGBhdWRpdCBzdGFja3NgIG1pc3Npbmctc3RhY2sgZmluZGluZyBwcmludHMpLiBUaGUgc3VwcG9ydGVkIHdheSB0byBjbGVhciBhXG4gKiByb3cgd2hvc2UgQ2xvdWRGb3JtYXRpb24gc3RhY2sgd2FzIGRlbGV0ZWQgb3V0IG9mIGJhbmQuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGJhc2hcbiAqIHBpcGVsaW5lLW1hbmFnZXIgcGlwZWxpbmUgZGVyZWdpc3RlciAtLWlkIDxyZWdpc3RyeUlkPiAtLXllc1xuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXJlZ2lzdGVyUGlwZWxpbmUocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ2RlcmVnaXN0ZXInKVxuICAgIC5kZXNjcmlwdGlvbignUmVtb3ZlIGEgcGlwZWxpbmVfcmVnaXN0cnkgcm93IChieSByZWdpc3RyeSBpZCkg4oCUIHJlY29uY2lsZXMgYW4gXCJhdWRpdCBzdGFja3NcIiBtaXNzaW5nLXN0YWNrIGZpbmRpbmcnKVxuICAgIC5yZXF1aXJlZE9wdGlvbignLWksIC0taWQgPHJlZ2lzdHJ5SWQ+JywgJ1JlZ2lzdHJ5IHJvdyBJRCAodGhlIHJlZ2lzdHJ5SWQgXCJhdWRpdCBzdGFja3NcIiBwcmludHMpJylcbiAgICAub3B0aW9uKCcteSwgLS15ZXMnLCAnQ29uZmlybSB0aGUgcmVtb3ZhbCAocmVxdWlyZWQpJywgZmFsc2UpKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdEZXJlZ2lzdGVyIFBpcGVsaW5lJyk7XG4gICAgICB0cnkge1xuICAgICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuICAgICAgICBjb25zdCBpZCA9IHZhbGlkYXRlRW50aXR5SWQob3B0aW9ucy5pZCwgJ1JlZ2lzdHJ5Jyk7XG4gICAgICAgIHJlcXVpcmVZZXMob3B0aW9ucy55ZXMsICdyZW1vdmUgYSByZWdpc3RyeSByb3cnKTtcbiAgICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICAgICAgICBhd2FpdCBjbGllbnQuZGVsZXRlKGAke2NsaWVudC5nZXRDb25maWcoKS5hcGkucGlwZWxpbmVVcmx9L3JlZ2lzdHJ5LyR7ZW5jb2RlVVJJQ29tcG9uZW50KGlkKX1gKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdSZWdpc3RyeSByb3cgcmVtb3ZlZCcsIHsgaWQgfSk7XG4gICAgICAgIHByaW50SW5mbygnRXZlbnQgcmVwb3J0aW5nIGZvciB0aGF0IGRlcGxveW1lbnQgc3RvcHM7IFwicGlwZWxpbmUgcmVnaXN0ZXJcIiBhZGRzIGl0IGJhY2snKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAncGlwZWxpbmUtZGVyZWdpc3RlcicsIGV4ZWN1dGlvbklkLCByZWdpc3RyeUlkOiBvcHRpb25zLmlkIH0sXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provision-steps.d.ts","sources":["../../src/commands/provision-steps.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"provision-steps.d.ts","sources":["../../src/commands/provision-steps.ts"],"names":[],"mappings":"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"}
|