@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
|
@@ -5,7 +5,26 @@ import { readFileSync } from 'node:fs';
|
|
|
5
5
|
// ESM has no synchronous named JSON import (Node only exposes a default export,
|
|
6
6
|
// and importing `../../package.json` would also fall outside `rootDir: src`), so
|
|
7
7
|
// read the version from package.json at load time relative to this module.
|
|
8
|
-
const { version } = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
|
|
8
|
+
const { version, engines } = JSON.parse(readFileSync(new URL('../../package.json', import.meta.url), 'utf-8'));
|
|
9
|
+
/**
|
|
10
|
+
* The lowest Node.js version the CLI supports, read from package.json
|
|
11
|
+
* `engines.node` (a `>= x.y.z` floor) so the start-up warning can never name a
|
|
12
|
+
* different floor than the one npm enforces.
|
|
13
|
+
*/
|
|
14
|
+
export const NODE_VERSION_FLOOR = /(\d+(?:\.\d+){0,2})/.exec(engines?.node ?? '')?.[1] ?? '0';
|
|
15
|
+
/** Whether `nodeVersion` (`v26.13.1` or `26.13.1`) is at or above `floor` (`26.13.1`). */
|
|
16
|
+
export function meetsNodeVersionFloor(nodeVersion, floor = NODE_VERSION_FLOOR) {
|
|
17
|
+
const parse = (v) => v.replace(/^v/, '').split('.').map((n) => parseInt(n, 10) || 0);
|
|
18
|
+
const have = parse(nodeVersion);
|
|
19
|
+
const need = parse(floor);
|
|
20
|
+
for (let i = 0; i < Math.max(have.length, need.length); i++) {
|
|
21
|
+
const a = have[i] ?? 0;
|
|
22
|
+
const b = need[i] ?? 0;
|
|
23
|
+
if (a !== b)
|
|
24
|
+
return a > b;
|
|
25
|
+
}
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
9
28
|
/**
|
|
10
29
|
* Application metadata
|
|
11
30
|
*/
|
|
@@ -191,4 +210,4 @@ export function defaultPipelineName(organization, project) {
|
|
|
191
210
|
* can never drift apart.
|
|
192
211
|
*/
|
|
193
212
|
export const EVENTS_STACK_NAME = 'pipeline-builder-events';
|
|
194
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNvbnN0YW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jbGkuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZDLGdGQUFnRjtBQUNoRixpRkFBaUY7QUFDakYsMkVBQTJFO0FBQzNFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUM1QixZQUFZLENBQUMsSUFBSSxHQUFHLENBQUMsb0JBQW9CLEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQy9DLENBQUM7QUFFekI7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsa0JBQWtCLENBQUM7QUFDM0MsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQztBQUNuQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsNENBQTRDLENBQUM7QUFFNUU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDNUIsSUFBSSxFQUFFLE1BQWU7SUFDckIsZ0JBQWdCLEVBQUUsUUFBaUI7SUFDbkMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEVBQUU7Q0FDcEMsQ0FBQztBQU9YOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3RCLFlBQVksRUFBRSxLQUFLO0lBQ25CLFlBQVksRUFBRSxJQUFJO0NBQ1YsQ0FBQztBQUVYOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDOUIsTUFBTSxFQUFFLENBQUMsR0FBRyxJQUFJLEdBQUcsSUFBSSxHQUFHLElBQUksRUFBRSxNQUFNO0lBQ3RD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QyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQztRQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsU0FBUyw4QkFBOEIsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUN0RSxDQUFDO0FBQ0gsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQWE7SUFDdEMsT0FBTyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDN0MsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxZQUFvQixFQUFFLE9BQWU7SUFDdkUsTUFBTSxRQUFRLEdBQUcsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzlFLE9BQU8sR0FBRyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUM7QUFDbkUsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyByYW5kb21CeXRlcyB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyByZWFkRmlsZVN5bmMgfSBmcm9tICdub2RlOmZzJztcblxuLy8gRVNNIGhhcyBubyBzeW5jaHJvbm91cyBuYW1lZCBKU09OIGltcG9ydCAoTm9kZSBvbmx5IGV4cG9zZXMgYSBkZWZhdWx0IGV4cG9ydCxcbi8vIGFuZCBpbXBvcnRpbmcgYC4uLy4uL3BhY2thZ2UuanNvbmAgd291bGQgYWxzbyBmYWxsIG91dHNpZGUgYHJvb3REaXI6IHNyY2ApLCBzb1xuLy8gcmVhZCB0aGUgdmVyc2lvbiBmcm9tIHBhY2thZ2UuanNvbiBhdCBsb2FkIHRpbWUgcmVsYXRpdmUgdG8gdGhpcyBtb2R1bGUuXG5jb25zdCB7IHZlcnNpb24gfSA9IEpTT04ucGFyc2UoXG4gIHJlYWRGaWxlU3luYyhuZXcgVVJMKCcuLi8uLi9wYWNrYWdlLmpzb24nLCBpbXBvcnQubWV0YS51cmwpLCAndXRmLTgnKSxcbikgYXMgeyB2ZXJzaW9uOiBzdHJpbmcgfTtcblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBtZXRhZGF0YVxuICovXG5leHBvcnQgY29uc3QgQVBQX05BTUUgPSAncGlwZWxpbmUtbWFuYWdlcic7XG5leHBvcnQgY29uc3QgQVBQX1ZFUlNJT04gPSB2ZXJzaW9uO1xuZXhwb3J0IGNvbnN0IEFQUF9ERVNDUklQVElPTiA9ICdBIENMSSB0b29sIHRvIG1hbmFnZSBwaXBlbGluZXMgYW5kIHBsdWdpbnMnO1xuXG4vKipcbiAqIEJhbm5lciBjb25maWd1cmF0aW9uIGZvciBDTEkgc3RhcnR1cFxuICovXG5leHBvcnQgY29uc3QgQkFOTkVSX09QVElPTlMgPSB7XG4gIGZvbnQ6ICdEb29tJyBhcyBjb25zdCxcbiAgaG9yaXpvbnRhbExheW91dDogJ2ZpdHRlZCcgYXMgY29uc3QsXG4gIGdldFdpZHRoOiAoKSA9PiBwcm9jZXNzLnN0ZG91dC5jb2x1bW5zID8/IDgwLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBPdXRwdXQgZm9ybWF0IHR5cGVzXG4gKi9cbmV4cG9ydCB0eXBlIE91dHB1dEZvcm1hdCA9ICd0YWJsZScgfCAnanNvbicgfCAneWFtbCcgfCAnY3N2JztcblxuLyoqXG4gKiBEZWZhdWx0IHRpbWVvdXRzIChpbiBtaWxsaXNlY29uZHMpXG4gKi9cbmV4cG9ydCBjb25zdCBUSU1FT1VUUyA9IHtcbiAgSFRUUF9SRVFVRVNUOiAzMDAwMCxcbiAgSEVBTFRIX0NIRUNLOiA1MDAwLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBGaWxlIHNpemUgbGltaXRzIChpbiBieXRlcylcbiAqL1xuZXhwb3J0IGNvbnN0IEZJTEVfU0laRV9MSU1JVFMgPSB7XG4gIFBMVUdJTjogNCAqIDEwMjQgKiAxMDI0ICogMTAyNCwgLy8gNEdCXG4gIFBJUEVMSU5FX1BST1BTOiAxMCAqIDEwMjQgKiAxMDI0LCAvLyAxME1CXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVzXG4gKi9cbmV4cG9ydCBjb25zdCBFTlZfVkFSUyA9IHtcbiAgUExBVEZPUk1fVE9LRU46ICdQTEFURk9STV9UT0tFTicsXG4gIFBMQVRGT1JNX0JBU0VfVVJMOiAnUExBVEZPUk1fQkFTRV9VUkwnLFxuICBDTElfQ09ORklHX1BBVEg6ICdDTElfQ09ORklHX1BBVEgnLFxuICBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRDogJ1RMU19SRUpFQ1RfVU5BVVRIT1JJWkVEJyxcbiAgQVdTX1JFR0lPTjogJ0FXU19SRUdJT04nLFxuICBERUJVRzogJ0RFQlVHJyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ2hlY2sgaWYgZGVidWcgbW9kZSBpcyBlbmFibGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RlYnVnTW9kZShvcHRpb25zPzogeyBkZWJ1Zz86IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3B0aW9ucz8uZGVidWcgPz8gcHJvY2Vzcy5lbnYuREVCVUcgPT09ICd0cnVlJztcbn1cblxuLyoqXG4gKiBGb3JtYXQgZmlsZSBzaXplIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQic7XG4gIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XG4gIGNvbnN0IGsgPSAxMDI0O1xuICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gIHJldHVybiBgJHsoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKX0gJHt1bml0c1tpXX1gO1xufVxuXG4vKipcbiAqIEZvcm1hdCBkdXJhdGlvbiBmb3IgZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24obXM6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChtcyA8IDEwMDApIHJldHVybiBgJHttc31tc2A7XG4gIGlmIChtcyA8IDYwMDAwKSByZXR1cm4gYCR7KG1zIC8gMTAwMCkudG9GaXhlZCgyKX1zYDtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IobXMgLyA2MDAwMCk7XG4gIGNvbnN0IHJlbWFpbmluZ1NlY29uZHMgPSAoKG1zICUgNjAwMDApIC8gMTAwMCkudG9GaXhlZCgwKTtcbiAgcmV0dXJuIGAke21pbnV0ZXN9bSAke3JlbWFpbmluZ1NlY29uZHN9c2A7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgY3J5cHRvZ3JhcGhpY2FsbHkgcmFuZG9tIGV4ZWN1dGlvbiBJRCBmb3IgcmVxdWVzdCB0cmFjaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVFeGVjdXRpb25JZCgpOiBzdHJpbmcge1xuICByZXR1cm4gcmFuZG9tQnl0ZXMoNCkudG9TdHJpbmcoJ2hleCcpLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8qKlxuICogVGFibGUgZGlzcGxheSBvcHRpb25zIChib3gtZHJhd2luZyBjaGFyYWN0ZXJzKVxuICovXG5leHBvcnQgY29uc3QgVEFCTEVfT1BUSU9OUyA9IHtcbiAgYm9yZGVyOiB7XG4gICAgdG9wQm9keTogJ+KUgCcsXG4gICAgdG9wSm9pbjogJ+KUrCcsXG4gICAgdG9wTGVmdDogJ+KUjCcsXG4gICAgdG9wUmlnaHQ6ICfilJAnLFxuICAgIGJvdHRvbUJvZHk6ICfilIAnLFxuICAgIGJvdHRvbUpvaW46ICfilLQnLFxuICAgIGJvdHRvbUxlZnQ6ICfilJQnLFxuICAgIGJvdHRvbVJpZ2h0OiAn4pSYJyxcbiAgICBib2R5TGVmdDogJ+KUgicsXG4gICAgYm9keVJpZ2h0OiAn4pSCJyxcbiAgICBib2R5Sm9pbjogJ+KUgicsXG4gICAgam9pbkJvZHk6ICfilIAnLFxuICAgIGpvaW5MZWZ0OiAn4pScJyxcbiAgICBqb2luUmlnaHQ6ICfilKQnLFxuICAgIGpvaW5Kb2luOiAn4pS8JyxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogVmFsaWRhdGUgYm9vbGVhbiBzdHJpbmcgZnJvbSBDTEkgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQm9vbGVhbih2YWx1ZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkID0gdmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gIGlmIChbJ3RydWUnLCAnMScsICd5ZXMnLCAneSddLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFsnZmFsc2UnLCAnMCcsICdubycsICduJ10uaW5jbHVkZXMobm9ybWFsaXplZCkpIHJldHVybiBmYWxzZTtcbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gdmFsdWUgZm9yICR7ZmllbGROYW1lfTogXCIke3ZhbHVlfVwiLiBVc2UgdHJ1ZS9mYWxzZSwgeWVzL25vLCBvciAxLzAuYCk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHBhcnNlIGEgbnVtZXJpYyBDTEkgcGFyYW1ldGVyIHdpdGhpbiBvcHRpb25hbCBib3VuZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU51bWJlcih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgZmllbGROYW1lOiBzdHJpbmcsIG1pbj86IG51bWJlciwgbWF4PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgLy8gQSBtaXNzaW5nIHZhbHVlIChlLmcuIGEgbGlzdCBjb21tYW5kIHRoYXQgZm9yZ290IGl0cyBjb21tYW5kZXIgZGVmYXVsdClcbiAgLy8gd291bGQgb3RoZXJ3aXNlIHRocm93IGEgY3J5cHRpYyBgdW5kZWZpbmVkLnRyaW0oKWAgVHlwZUVycm9yIOKAlCBmYWlsIHdpdGggYVxuICAvLyBjbGVhciB2YWxpZGF0aW9uIG1lc3NhZ2UgaW5zdGVhZC5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZmllbGROYW1lfTogYSB2YWx1ZSBpcyByZXF1aXJlZGApO1xuICB9XG4gIC8vIFJlamVjdCBwYXJ0aWFsIHBhcnNlcyAoXCIxMmFiY1wiIC0+IDEyKSBhbmQgbm9uLWludGVnZXJzIChcIjUuOVwiIC0+IDUpIHRoYXRcbiAgLy8gYHBhcnNlSW50YCB3b3VsZCBvdGhlcndpc2UgYWNjZXB0IHNpbGVudGx5LlxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhL14tP1xcZCskLy50ZXN0KHZhbHVlLnRyaW0oKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9OiBtdXN0IGJlIGEgd2hvbGUgbnVtYmVyYCk7XG4gIH1cbiAgY29uc3QgbnVtID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogcGFyc2VJbnQodmFsdWUudHJpbSgpLCAxMCk7XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihudW0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZmllbGROYW1lfTogbXVzdCBiZSBhIHdob2xlIG51bWJlcmApO1xuICB9XG4gIGlmIChtaW4gIT09IHVuZGVmaW5lZCAmJiBudW0gPCBtaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9OiBtdXN0IGJlID49ICR7bWlufWApO1xuICB9XG4gIGlmIChtYXggIT09IHVuZGVmaW5lZCAmJiBudW0gPiBtYXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9OiBtdXN0IGJlIDw9ICR7bWF4fWApO1xuICB9XG4gIHJldHVybiBudW07XG59XG5cbi8qKlxuICogVmFsaWRhdGUgc29ydCBwYXJhbWV0ZXIgZm9ybWF0IChlLmcuLCBcImNyZWF0ZWRBdDpkZXNjXCIpLlxuICogUmV0dXJucyB0aGUgdmFsaWRhdGVkIHNvcnQgc3RyaW5nLCBvciB0aGUgZGVmYXVsdCBpZiBpbnZhbGlkLlxuICovXG5jb25zdCBTT1JUX1BBVFRFUk4gPSAvXlthLXpBLVpfXVthLXpBLVowLTlfXSo6KGFzY3xkZXNjKSQvO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTb3J0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAoIVNPUlRfUEFUVEVSTi50ZXN0KHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzb3J0IGZvcm1hdDogXCIke3ZhbHVlfVwiLiBFeHBlY3RlZCBcImZpZWxkOmFzY1wiIG9yIFwiZmllbGQ6ZGVzY1wiLmApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSZWplY3Qgc3RyaW5ncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLlxuICogVXNlZCB0byBzYW5pdGl6ZSBDTEkgaW5wdXRzIGJlZm9yZSBwYXNzaW5nIHRvIHNoZWxsIGNvbW1hbmRzLlxuICovXG5jb25zdCBTSEVMTF9VTlNBRkUgPSAvWzsmfGAkKCl7fVtcXF08PiEjfio/XFxcXFxcblxccl0vO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U2hlbGxTYWZlKFxuICB2YWx1ZTogc3RyaW5nLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgb3B0czogeyByZWRhY3RWYWx1ZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogdm9pZCB7XG4gIGlmIChTSEVMTF9VTlNBRkUudGVzdCh2YWx1ZSkpIHtcbiAgICAvLyBgcmVkYWN0VmFsdWVgIGlzIGZvciBzZWNyZXRzICh0b2tlbnMsIHBhc3N3b3Jkcykg4oCUIG5ldmVyIGVjaG8gdGhlIG9mZmVuZGluZ1xuICAgIC8vIHZhbHVlIGludG8gYW4gZXJyb3IvbG9nIGxpbmUgd2hlbiB0aGUgZmllbGQgaXMgc2Vuc2l0aXZlLlxuICAgIGNvbnN0IGRldGFpbCA9IG9wdHMucmVkYWN0VmFsdWUgPyAnJyA6IGA6IFwiJHt2YWx1ZX1cImA7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2ZpZWxkTmFtZX0gY29udGFpbnMgdW5zYWZlIGNoYXJhY3RlcnMke2RldGFpbH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIFBPU0lYIHNpbmdsZS1xdW90ZSBhIHZhbHVlIChlc2NhcGluZyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzKSBmb3Igc2FmZSBzaGVsbFxuICogaW50ZXJwb2xhdGlvbi4gU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCDigJQgZHJpZnQgaW4gYSBzaGVsbC1xdW90aW5nIGhlbHBlciBpc1xuICogc2VjdXJpdHktcmVsZXZhbnQsIHNvIGJvdGggYWdlbnQgbW9kdWxlcyBpbXBvcnQgdGhpcyByYXRoZXIgdGhhbiByZS1kZWNsYXJpbmcgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGVsbFF1b3RlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCcke3ZhbHVlLnJlcGxhY2UoLycvZywgXCInXFxcXCcnXCIpfSdgO1xufVxuXG4vKipcbiAqIENhbm9uaWNhbCBkZWZhdWx0IHBpcGVsaW5lIG5hbWUgd2hlbiBub25lIGlzIGdpdmVuIOKAlCBNVVNUIG1pcnJvciBwaXBlbGluZS1jb3JlJ3NcbiAqIHBpcGVsaW5lLWNvbmZpZ3VyYXRpb24udHMgKGAke3Nhbml0aXplKG9yZyl9LSR7c2FuaXRpemUocHJvamVjdCl9LXBpcGVsaW5lYCxcbiAqIG5vbi1hbHBoYW51bWVyaWMg4oaSICdfJywgbG93ZXJjYXNlZCksIHNvIHRoZSBDTEkncyBjcmVhdGUgYW5kIHJlZ2lzdHJ5IHBhdGhzXG4gKiBkZXJpdmUgdGhlIFNBTUUgbmFtZSB0aGUgQ0RLIGJ1aWxkZXIgYWN0dWFsbHkgZGVwbG95cyAoYSBtaXNtYXRjaCBicmVha3NcbiAqIFN0YXJ0UGlwZWxpbmVFeGVjdXRpb24gYWdhaW5zdCB0aGUgcmVnaXN0ZXJlZCBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQaXBlbGluZU5hbWUob3JnYW5pemF0aW9uOiBzdHJpbmcsIHByb2plY3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNhbml0aXplID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJ18nKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gYCR7c2FuaXRpemUob3JnYW5pemF0aW9uKX0tJHtzYW5pdGl6ZShwcm9qZWN0KX0tcGlwZWxpbmVgO1xufVxuXG4vKipcbiAqIENsb3VkRm9ybWF0aW9uIHN0YWNrIG5hbWUgZm9yIHRoZSBldmVudC1pbmdlc3Rpb24gaW5mcmEuIFNoYXJlZCBzbyBgc2V0dXAtZXZlbnRzYFxuICogKHdoaWNoIGRlcGxveXMgaXQpIGFuZCBgcmVkcml2ZS1ldmVudHNgICh3aGljaCByZXNvbHZlcyB0aGUgRExRL3F1ZXVlIGZyb20gaXQpXG4gKiBjYW4gbmV2ZXIgZHJpZnQgYXBhcnQuXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVFNfU1RBQ0tfTkFNRSA9ICdwaXBlbGluZS1idWlsZGVyLWV2ZW50cyc7XG4iXX0=
|
|
213
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmNvbnN0YW50cy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbmZpZy9jbGkuY29uc3RhbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXZDLGdGQUFnRjtBQUNoRixpRkFBaUY7QUFDakYsMkVBQTJFO0FBQzNFLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDckMsWUFBWSxDQUFDLElBQUksR0FBRyxDQUFDLG9CQUFvQixFQUFFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUNsQixDQUFDO0FBRXREOzs7O0dBSUc7QUFDSCxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQztBQUU5RiwwRkFBMEY7QUFDMUYsTUFBTSxVQUFVLHFCQUFxQixDQUFDLFdBQW1CLEVBQUUsS0FBSyxHQUFXLGtCQUFrQjtJQUMzRixNQUFNLEtBQUssR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM3RixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFD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TSxJQUFJLEtBQUssQ0FBQyxHQUFHLFNBQVMsOEJBQThCLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDdEUsQ0FBQztBQUNILENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFhO0lBQ3RDLE9BQU8sSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQzdDLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsWUFBb0IsRUFBRSxPQUFlO0lBQ3ZFLE1BQU0sUUFBUSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUM5RSxPQUFPLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO0FBQ25FLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgcmFuZG9tQnl0ZXMgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSAnbm9kZTpmcyc7XG5cbi8vIEVTTSBoYXMgbm8gc3luY2hyb25vdXMgbmFtZWQgSlNPTiBpbXBvcnQgKE5vZGUgb25seSBleHBvc2VzIGEgZGVmYXVsdCBleHBvcnQsXG4vLyBhbmQgaW1wb3J0aW5nIGAuLi8uLi9wYWNrYWdlLmpzb25gIHdvdWxkIGFsc28gZmFsbCBvdXRzaWRlIGByb290RGlyOiBzcmNgKSwgc29cbi8vIHJlYWQgdGhlIHZlcnNpb24gZnJvbSBwYWNrYWdlLmpzb24gYXQgbG9hZCB0aW1lIHJlbGF0aXZlIHRvIHRoaXMgbW9kdWxlLlxuY29uc3QgeyB2ZXJzaW9uLCBlbmdpbmVzIH0gPSBKU09OLnBhcnNlKFxuICByZWFkRmlsZVN5bmMobmV3IFVSTCgnLi4vLi4vcGFja2FnZS5qc29uJywgaW1wb3J0Lm1ldGEudXJsKSwgJ3V0Zi04JyksXG4pIGFzIHsgdmVyc2lvbjogc3RyaW5nOyBlbmdpbmVzPzogeyBub2RlPzogc3RyaW5nIH0gfTtcblxuLyoqXG4gKiBUaGUgbG93ZXN0IE5vZGUuanMgdmVyc2lvbiB0aGUgQ0xJIHN1cHBvcnRzLCByZWFkIGZyb20gcGFja2FnZS5qc29uXG4gKiBgZW5naW5lcy5ub2RlYCAoYSBgPj0geC55LnpgIGZsb29yKSBzbyB0aGUgc3RhcnQtdXAgd2FybmluZyBjYW4gbmV2ZXIgbmFtZSBhXG4gKiBkaWZmZXJlbnQgZmxvb3IgdGhhbiB0aGUgb25lIG5wbSBlbmZvcmNlcy5cbiAqL1xuZXhwb3J0IGNvbnN0IE5PREVfVkVSU0lPTl9GTE9PUiA9IC8oXFxkKyg/OlxcLlxcZCspezAsMn0pLy5leGVjKGVuZ2luZXM/Lm5vZGUgPz8gJycpPy5bMV0gPz8gJzAnO1xuXG4vKiogV2hldGhlciBgbm9kZVZlcnNpb25gIChgdjI2LjEzLjFgIG9yIGAyNi4xMy4xYCkgaXMgYXQgb3IgYWJvdmUgYGZsb29yYCAoYDI2LjEzLjFgKS4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtZWV0c05vZGVWZXJzaW9uRmxvb3Iobm9kZVZlcnNpb246IHN0cmluZywgZmxvb3I6IHN0cmluZyA9IE5PREVfVkVSU0lPTl9GTE9PUik6IGJvb2xlYW4ge1xuICBjb25zdCBwYXJzZSA9ICh2OiBzdHJpbmcpID0+IHYucmVwbGFjZSgvXnYvLCAnJykuc3BsaXQoJy4nKS5tYXAoKG4pID0+IHBhcnNlSW50KG4sIDEwKSB8fCAwKTtcbiAgY29uc3QgaGF2ZSA9IHBhcnNlKG5vZGVWZXJzaW9uKTtcbiAgY29uc3QgbmVlZCA9IHBhcnNlKGZsb29yKTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBNYXRoLm1heChoYXZlLmxlbmd0aCwgbmVlZC5sZW5ndGgpOyBpKyspIHtcbiAgICBjb25zdCBhID0gaGF2ZVtpXSA/PyAwO1xuICAgIGNvbnN0IGIgPSBuZWVkW2ldID8/IDA7XG4gICAgaWYgKGEgIT09IGIpIHJldHVybiBhID4gYjtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBtZXRhZGF0YVxuICovXG5leHBvcnQgY29uc3QgQVBQX05BTUUgPSAncGlwZWxpbmUtbWFuYWdlcic7XG5leHBvcnQgY29uc3QgQVBQX1ZFUlNJT04gPSB2ZXJzaW9uO1xuZXhwb3J0IGNvbnN0IEFQUF9ERVNDUklQVElPTiA9ICdBIENMSSB0b29sIHRvIG1hbmFnZSBwaXBlbGluZXMgYW5kIHBsdWdpbnMnO1xuXG4vKipcbiAqIEJhbm5lciBjb25maWd1cmF0aW9uIGZvciBDTEkgc3RhcnR1cFxuICovXG5leHBvcnQgY29uc3QgQkFOTkVSX09QVElPTlMgPSB7XG4gIGZvbnQ6ICdEb29tJyBhcyBjb25zdCxcbiAgaG9yaXpvbnRhbExheW91dDogJ2ZpdHRlZCcgYXMgY29uc3QsXG4gIGdldFdpZHRoOiAoKSA9PiBwcm9jZXNzLnN0ZG91dC5jb2x1bW5zID8/IDgwLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBPdXRwdXQgZm9ybWF0IHR5cGVzXG4gKi9cbmV4cG9ydCB0eXBlIE91dHB1dEZvcm1hdCA9ICd0YWJsZScgfCAnanNvbicgfCAneWFtbCcgfCAnY3N2JztcblxuLyoqXG4gKiBEZWZhdWx0IHRpbWVvdXRzIChpbiBtaWxsaXNlY29uZHMpXG4gKi9cbmV4cG9ydCBjb25zdCBUSU1FT1VUUyA9IHtcbiAgSFRUUF9SRVFVRVNUOiAzMDAwMCxcbiAgSEVBTFRIX0NIRUNLOiA1MDAwLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBGaWxlIHNpemUgbGltaXRzIChpbiBieXRlcylcbiAqL1xuZXhwb3J0IGNvbnN0IEZJTEVfU0laRV9MSU1JVFMgPSB7XG4gIFBMVUdJTjogNCAqIDEwMjQgKiAxMDI0ICogMTAyNCwgLy8gNEdCXG4gIFBJUEVMSU5FX1BST1BTOiAxMCAqIDEwMjQgKiAxMDI0LCAvLyAxME1CXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEVudmlyb25tZW50IHZhcmlhYmxlIG5hbWVzXG4gKi9cbmV4cG9ydCBjb25zdCBFTlZfVkFSUyA9IHtcbiAgUExBVEZPUk1fVE9LRU46ICdQTEFURk9STV9UT0tFTicsXG4gIFBMQVRGT1JNX0JBU0VfVVJMOiAnUExBVEZPUk1fQkFTRV9VUkwnLFxuICBDTElfQ09ORklHX1BBVEg6ICdDTElfQ09ORklHX1BBVEgnLFxuICBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRDogJ1RMU19SRUpFQ1RfVU5BVVRIT1JJWkVEJyxcbiAgQVdTX1JFR0lPTjogJ0FXU19SRUdJT04nLFxuICBERUJVRzogJ0RFQlVHJyxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogQ2hlY2sgaWYgZGVidWcgbW9kZSBpcyBlbmFibGVkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0RlYnVnTW9kZShvcHRpb25zPzogeyBkZWJ1Zz86IGJvb2xlYW4gfSk6IGJvb2xlYW4ge1xuICByZXR1cm4gb3B0aW9ucz8uZGVidWcgPz8gcHJvY2Vzcy5lbnYuREVCVUcgPT09ICd0cnVlJztcbn1cblxuLyoqXG4gKiBGb3JtYXQgZmlsZSBzaXplIGZvciBkaXNwbGF5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRGaWxlU2l6ZShieXRlczogbnVtYmVyKTogc3RyaW5nIHtcbiAgaWYgKGJ5dGVzID09PSAwKSByZXR1cm4gJzAgQic7XG4gIGNvbnN0IHVuaXRzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJ107XG4gIGNvbnN0IGsgPSAxMDI0O1xuICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSk7XG4gIHJldHVybiBgJHsoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZCgyKX0gJHt1bml0c1tpXX1gO1xufVxuXG4vKipcbiAqIEZvcm1hdCBkdXJhdGlvbiBmb3IgZGlzcGxheVxuICovXG5leHBvcnQgZnVuY3Rpb24gZm9ybWF0RHVyYXRpb24obXM6IG51bWJlcik6IHN0cmluZyB7XG4gIGlmIChtcyA8IDEwMDApIHJldHVybiBgJHttc31tc2A7XG4gIGlmIChtcyA8IDYwMDAwKSByZXR1cm4gYCR7KG1zIC8gMTAwMCkudG9GaXhlZCgyKX1zYDtcbiAgY29uc3QgbWludXRlcyA9IE1hdGguZmxvb3IobXMgLyA2MDAwMCk7XG4gIGNvbnN0IHJlbWFpbmluZ1NlY29uZHMgPSAoKG1zICUgNjAwMDApIC8gMTAwMCkudG9GaXhlZCgwKTtcbiAgcmV0dXJuIGAke21pbnV0ZXN9bSAke3JlbWFpbmluZ1NlY29uZHN9c2A7XG59XG5cbi8qKlxuICogR2VuZXJhdGUgY3J5cHRvZ3JhcGhpY2FsbHkgcmFuZG9tIGV4ZWN1dGlvbiBJRCBmb3IgcmVxdWVzdCB0cmFjaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVFeGVjdXRpb25JZCgpOiBzdHJpbmcge1xuICByZXR1cm4gcmFuZG9tQnl0ZXMoNCkudG9TdHJpbmcoJ2hleCcpLnRvVXBwZXJDYXNlKCk7XG59XG5cbi8qKlxuICogVGFibGUgZGlzcGxheSBvcHRpb25zIChib3gtZHJhd2luZyBjaGFyYWN0ZXJzKVxuICovXG5leHBvcnQgY29uc3QgVEFCTEVfT1BUSU9OUyA9IHtcbiAgYm9yZGVyOiB7XG4gICAgdG9wQm9keTogJ+KUgCcsXG4gICAgdG9wSm9pbjogJ+KUrCcsXG4gICAgdG9wTGVmdDogJ+KUjCcsXG4gICAgdG9wUmlnaHQ6ICfilJAnLFxuICAgIGJvdHRvbUJvZHk6ICfilIAnLFxuICAgIGJvdHRvbUpvaW46ICfilLQnLFxuICAgIGJvdHRvbUxlZnQ6ICfilJQnLFxuICAgIGJvdHRvbVJpZ2h0OiAn4pSYJyxcbiAgICBib2R5TGVmdDogJ+KUgicsXG4gICAgYm9keVJpZ2h0OiAn4pSCJyxcbiAgICBib2R5Sm9pbjogJ+KUgicsXG4gICAgam9pbkJvZHk6ICfilIAnLFxuICAgIGpvaW5MZWZ0OiAn4pScJyxcbiAgICBqb2luUmlnaHQ6ICfilKQnLFxuICAgIGpvaW5Kb2luOiAn4pS8JyxcbiAgfSxcbn0gYXMgY29uc3Q7XG5cbi8qKlxuICogVmFsaWRhdGUgYm9vbGVhbiBzdHJpbmcgZnJvbSBDTEkgaW5wdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZhbGlkYXRlQm9vbGVhbih2YWx1ZTogc3RyaW5nLCBmaWVsZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBjb25zdCBub3JtYWxpemVkID0gdmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gIGlmIChbJ3RydWUnLCAnMScsICd5ZXMnLCAneSddLmluY2x1ZGVzKG5vcm1hbGl6ZWQpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKFsnZmFsc2UnLCAnMCcsICdubycsICduJ10uaW5jbHVkZXMobm9ybWFsaXplZCkpIHJldHVybiBmYWxzZTtcbiAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIGJvb2xlYW4gdmFsdWUgZm9yICR7ZmllbGROYW1lfTogXCIke3ZhbHVlfVwiLiBVc2UgdHJ1ZS9mYWxzZSwgeWVzL25vLCBvciAxLzAuYCk7XG59XG5cbi8qKlxuICogVmFsaWRhdGUgYW5kIHBhcnNlIGEgbnVtZXJpYyBDTEkgcGFyYW1ldGVyIHdpdGhpbiBvcHRpb25hbCBib3VuZHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB2YWxpZGF0ZU51bWJlcih2YWx1ZTogc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkIHwgbnVsbCwgZmllbGROYW1lOiBzdHJpbmcsIG1pbj86IG51bWJlciwgbWF4PzogbnVtYmVyKTogbnVtYmVyIHtcbiAgLy8gQSBtaXNzaW5nIHZhbHVlIChlLmcuIGEgbGlzdCBjb21tYW5kIHRoYXQgZm9yZ290IGl0cyBjb21tYW5kZXIgZGVmYXVsdClcbiAgLy8gd291bGQgb3RoZXJ3aXNlIHRocm93IGEgY3J5cHRpYyBgdW5kZWZpbmVkLnRyaW0oKWAgVHlwZUVycm9yIOKAlCBmYWlsIHdpdGggYVxuICAvLyBjbGVhciB2YWxpZGF0aW9uIG1lc3NhZ2UgaW5zdGVhZC5cbiAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09IG51bGwgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZmllbGROYW1lfTogYSB2YWx1ZSBpcyByZXF1aXJlZGApO1xuICB9XG4gIC8vIFJlamVjdCBwYXJ0aWFsIHBhcnNlcyAoXCIxMmFiY1wiIC0+IDEyKSBhbmQgbm9uLWludGVnZXJzIChcIjUuOVwiIC0+IDUpIHRoYXRcbiAgLy8gYHBhcnNlSW50YCB3b3VsZCBvdGhlcndpc2UgYWNjZXB0IHNpbGVudGx5LlxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhL14tP1xcZCskLy50ZXN0KHZhbHVlLnRyaW0oKSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9OiBtdXN0IGJlIGEgd2hvbGUgbnVtYmVyYCk7XG4gIH1cbiAgY29uc3QgbnVtID0gdHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJyA/IHZhbHVlIDogcGFyc2VJbnQodmFsdWUudHJpbSgpLCAxMCk7XG4gIGlmICghTnVtYmVyLmlzSW50ZWdlcihudW0pKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkICR7ZmllbGROYW1lfTogbXVzdCBiZSBhIHdob2xlIG51bWJlcmApO1xuICB9XG4gIGlmIChtaW4gIT09IHVuZGVmaW5lZCAmJiBudW0gPCBtaW4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9OiBtdXN0IGJlID49ICR7bWlufWApO1xuICB9XG4gIGlmIChtYXggIT09IHVuZGVmaW5lZCAmJiBudW0gPiBtYXgpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgJHtmaWVsZE5hbWV9OiBtdXN0IGJlIDw9ICR7bWF4fWApO1xuICB9XG4gIHJldHVybiBudW07XG59XG5cbi8qKlxuICogVmFsaWRhdGUgc29ydCBwYXJhbWV0ZXIgZm9ybWF0IChlLmcuLCBcImNyZWF0ZWRBdDpkZXNjXCIpLlxuICogUmV0dXJucyB0aGUgdmFsaWRhdGVkIHNvcnQgc3RyaW5nLCBvciB0aGUgZGVmYXVsdCBpZiBpbnZhbGlkLlxuICovXG5jb25zdCBTT1JUX1BBVFRFUk4gPSAvXlthLXpBLVpfXVthLXpBLVowLTlfXSo6KGFzY3xkZXNjKSQvO1xuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVTb3J0KHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gdW5kZWZpbmVkO1xuICBpZiAoIVNPUlRfUEFUVEVSTi50ZXN0KHZhbHVlKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzb3J0IGZvcm1hdDogXCIke3ZhbHVlfVwiLiBFeHBlY3RlZCBcImZpZWxkOmFzY1wiIG9yIFwiZmllbGQ6ZGVzY1wiLmApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuLyoqXG4gKiBSZWplY3Qgc3RyaW5ncyBjb250YWluaW5nIHNoZWxsIG1ldGFjaGFyYWN0ZXJzLlxuICogVXNlZCB0byBzYW5pdGl6ZSBDTEkgaW5wdXRzIGJlZm9yZSBwYXNzaW5nIHRvIHNoZWxsIGNvbW1hbmRzLlxuICovXG5jb25zdCBTSEVMTF9VTlNBRkUgPSAvWzsmfGAkKCl7fVtcXF08PiEjfio/XFxcXFxcblxccl0vO1xuXG5leHBvcnQgZnVuY3Rpb24gYXNzZXJ0U2hlbGxTYWZlKFxuICB2YWx1ZTogc3RyaW5nLFxuICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgb3B0czogeyByZWRhY3RWYWx1ZT86IGJvb2xlYW4gfSA9IHt9LFxuKTogdm9pZCB7XG4gIGlmIChTSEVMTF9VTlNBRkUudGVzdCh2YWx1ZSkpIHtcbiAgICAvLyBgcmVkYWN0VmFsdWVgIGlzIGZvciBzZWNyZXRzICh0b2tlbnMsIHBhc3N3b3Jkcykg4oCUIG5ldmVyIGVjaG8gdGhlIG9mZmVuZGluZ1xuICAgIC8vIHZhbHVlIGludG8gYW4gZXJyb3IvbG9nIGxpbmUgd2hlbiB0aGUgZmllbGQgaXMgc2Vuc2l0aXZlLlxuICAgIGNvbnN0IGRldGFpbCA9IG9wdHMucmVkYWN0VmFsdWUgPyAnJyA6IGA6IFwiJHt2YWx1ZX1cImA7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2ZpZWxkTmFtZX0gY29udGFpbnMgdW5zYWZlIGNoYXJhY3RlcnMke2RldGFpbH1gKTtcbiAgfVxufVxuXG4vKipcbiAqIFBPU0lYIHNpbmdsZS1xdW90ZSBhIHZhbHVlIChlc2NhcGluZyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzKSBmb3Igc2FmZSBzaGVsbFxuICogaW50ZXJwb2xhdGlvbi4gU2luZ2xlIHNvdXJjZSBvZiB0cnV0aCDigJQgZHJpZnQgaW4gYSBzaGVsbC1xdW90aW5nIGhlbHBlciBpc1xuICogc2VjdXJpdHktcmVsZXZhbnQsIHNvIGJvdGggYWdlbnQgbW9kdWxlcyBpbXBvcnQgdGhpcyByYXRoZXIgdGhhbiByZS1kZWNsYXJpbmcgaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzaGVsbFF1b3RlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYCcke3ZhbHVlLnJlcGxhY2UoLycvZywgXCInXFxcXCcnXCIpfSdgO1xufVxuXG4vKipcbiAqIENhbm9uaWNhbCBkZWZhdWx0IHBpcGVsaW5lIG5hbWUgd2hlbiBub25lIGlzIGdpdmVuIOKAlCBNVVNUIG1pcnJvciBwaXBlbGluZS1jb3JlJ3NcbiAqIHBpcGVsaW5lLWNvbmZpZ3VyYXRpb24udHMgKGAke3Nhbml0aXplKG9yZyl9LSR7c2FuaXRpemUocHJvamVjdCl9LXBpcGVsaW5lYCxcbiAqIG5vbi1hbHBoYW51bWVyaWMg4oaSICdfJywgbG93ZXJjYXNlZCksIHNvIHRoZSBDTEkncyBjcmVhdGUgYW5kIHJlZ2lzdHJ5IHBhdGhzXG4gKiBkZXJpdmUgdGhlIFNBTUUgbmFtZSB0aGUgQ0RLIGJ1aWxkZXIgYWN0dWFsbHkgZGVwbG95cyAoYSBtaXNtYXRjaCBicmVha3NcbiAqIFN0YXJ0UGlwZWxpbmVFeGVjdXRpb24gYWdhaW5zdCB0aGUgcmVnaXN0ZXJlZCBuYW1lKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQaXBlbGluZU5hbWUob3JnYW5pemF0aW9uOiBzdHJpbmcsIHByb2plY3Q6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHNhbml0aXplID0gKHM6IHN0cmluZykgPT4gcy5yZXBsYWNlKC9bXmEtekEtWjAtOV0vZywgJ18nKS50b0xvd2VyQ2FzZSgpO1xuICByZXR1cm4gYCR7c2FuaXRpemUob3JnYW5pemF0aW9uKX0tJHtzYW5pdGl6ZShwcm9qZWN0KX0tcGlwZWxpbmVgO1xufVxuXG4vKipcbiAqIENsb3VkRm9ybWF0aW9uIHN0YWNrIG5hbWUgZm9yIHRoZSBldmVudC1pbmdlc3Rpb24gaW5mcmEuIFNoYXJlZCBzbyBgc2V0dXAtZXZlbnRzYFxuICogKHdoaWNoIGRlcGxveXMgaXQpIGFuZCBgcmVkcml2ZS1ldmVudHNgICh3aGljaCByZXNvbHZlcyB0aGUgRExRL3F1ZXVlIGZyb20gaXQpXG4gKiBjYW4gbmV2ZXIgZHJpZnQgYXBhcnQuXG4gKi9cbmV4cG9ydCBjb25zdCBFVkVOVFNfU1RBQ0tfTkFNRSA9ICdwaXBlbGluZS1idWlsZGVyLWV2ZW50cyc7XG4iXX0=
|
package/dist/types/plugin.d.ts
CHANGED
|
@@ -147,10 +147,4 @@ export interface PluginYankResponse {
|
|
|
147
147
|
version: string;
|
|
148
148
|
};
|
|
149
149
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Response returned by single-plugin API endpoints (get, upload).
|
|
152
|
-
*/
|
|
153
|
-
export interface PluginResponse {
|
|
154
|
-
plugin: Plugin;
|
|
155
|
-
}
|
|
156
150
|
//# sourceMappingURL=plugin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sources":["../../src/types/plugin.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,MAAO,SAAQ,UAAU;IACxC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,YAAY,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B,2CAA2C;IAC3C,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzB,kCAAkC;IAClC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CACnD"}
|
package/dist/types/plugin.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
export {};
|
|
4
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQYWNrYWdlLWxldmVsIG1ldGFkYXRhIGV4dHJhY3RlZCBmcm9tIHRoZSBwbHVnaW4gYXJjaGl2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5NZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBQbHVnaW4gbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gdmVyc2lvblxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gYXV0aG9yXG4gICAqL1xuICBhdXRob3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBsaWNlbnNlXG4gICAqL1xuICBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gaG9tZXBhZ2UgVVJMXG4gICAqL1xuICBob21lcGFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIHJlcG9zaXRvcnkgVVJMXG4gICAqL1xuICByZXBvc2l0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4ga2V5d29yZHMvdGFnc1xuICAgKi9cbiAga2V5d29yZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGx1Z2luIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSdW50aW1lIGNvbmZpZ3VyYXRpb24gZm9yIGEgcGx1Z2luLCBpbmNsdWRpbmcgaXRzIGVudHJ5IHBvaW50IGFuZCBzY2hlbWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luQ29uZmlnIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBlbnRyeSBwb2ludFxuICAgKi9cbiAgbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGNvbmZpZ3VyYXRpb24gc2NoZW1hXG4gICAqL1xuICBzY2hlbWE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKipcbiAgICogUGx1Z2luIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgZGVmYXVsdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBDb3JlIHBsdWdpbiBmaWVsZHMgcmVxdWlyZWQgb24gZXZlcnkgcGx1Z2luIHJlY29yZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5CYXNlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBwbHVnaW4gaWRlbnRpZmllclxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIG5hbWVcbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIHZlcnNpb25cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIHRoYXQgb3ducyB0aGUgcGx1Z2luXG4gICAqL1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSBwbHVnaW4gZW50aXR5IGNvbWJpbmluZyBjb3JlIGZpZWxkcyB3aXRoIG9wdGlvbmFsIGRldGFpbCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZSB7XG4gIC8qKlxuICAgKiBQbHVnaW4gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gbWV0YWRhdGFcbiAgICovXG4gIG1ldGFkYXRhPzogUGx1Z2luTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBjb25maWc/OiBQbHVnaW5Db25maWc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBmaWxlIFVSTFxuICAgKi9cbiAgZmlsZVVybD86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGZpbGUgc2l6ZSBpbiBieXRlc1xuICAgKi9cbiAgZmlsZVNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjaGVja3N1bSAoU0hBMjU2KVxuICAgKi9cbiAgY2hlY2tzdW0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBsdWdpbiBpcyBhY3RpdmVcbiAgICovXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGx1Z2luIGlzIHB1YmxpY1xuICAgKi9cbiAgaXNQdWJsaWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gY3JlYXRpb24gdGltZXN0YW1wXG4gICAqL1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBsYXN0IHVwZGF0ZSB0aW1lc3RhbXBcbiAgICovXG4gIHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciB3aG8gdXBsb2FkZWQgdGhlIHBsdWdpblxuICAgKi9cbiAgdXBsb2FkZWRCeT86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGlzIHZlcnNpb24gaXMgdGhlIGRlZmF1bHQgZm9yIGl0cyBuYW1lLiAqL1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xuXG4gIC8qKiBXaGVuIHRoZSB2ZXJzaW9uIHdhcyBkZXByZWNhdGVkIChzdGlsbCByZXNvbHZlcywgd2l0aCBhIHdhcm5pbmcpLiAqL1xuICBkZXByZWNhdGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBUaGUgcHVibGlzaGVyJ3MgZGVwcmVjYXRpb24gbWVzc2FnZS4gKi9cbiAgZGVwcmVjYXRpb25NZXNzYWdlPzogc3RyaW5nIHwgbnVsbDtcblxuICAvKiogV2hlbiB0aGUgdmVyc2lvbiB3YXMgeWFua2VkIChyYW5nZXMsIGBsYXRlc3RgIGFuZCB0aGUgZGVmYXVsdCBza2lwIGl0KS4gKi9cbiAgeWFua2VkQXQ/
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLmpzIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHlwZXMvcGx1Z2luLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQYWNrYWdlLWxldmVsIG1ldGFkYXRhIGV4dHJhY3RlZCBmcm9tIHRoZSBwbHVnaW4gYXJjaGl2ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5NZXRhZGF0YSB7XG4gIC8qKlxuICAgKiBQbHVnaW4gbmFtZVxuICAgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gdmVyc2lvblxuICAgKi9cbiAgdmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gYXV0aG9yXG4gICAqL1xuICBhdXRob3I/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBsaWNlbnNlXG4gICAqL1xuICBsaWNlbnNlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gaG9tZXBhZ2UgVVJMXG4gICAqL1xuICBob21lcGFnZT86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIHJlcG9zaXRvcnkgVVJMXG4gICAqL1xuICByZXBvc2l0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4ga2V5d29yZHMvdGFnc1xuICAgKi9cbiAga2V5d29yZHM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUGx1Z2luIGRlcGVuZGVuY2llc1xuICAgKi9cbiAgZGVwZW5kZW5jaWVzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBSdW50aW1lIGNvbmZpZ3VyYXRpb24gZm9yIGEgcGx1Z2luLCBpbmNsdWRpbmcgaXRzIGVudHJ5IHBvaW50IGFuZCBzY2hlbWEuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luQ29uZmlnIHtcbiAgLyoqXG4gICAqIFBsdWdpbiBlbnRyeSBwb2ludFxuICAgKi9cbiAgbWFpbj86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGNvbmZpZ3VyYXRpb24gc2NoZW1hXG4gICAqL1xuICBzY2hlbWE/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblxuICAvKipcbiAgICogUGx1Z2luIGRlZmF1bHQgY29uZmlndXJhdGlvblxuICAgKi9cbiAgZGVmYXVsdHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBDb3JlIHBsdWdpbiBmaWVsZHMgcmVxdWlyZWQgb24gZXZlcnkgcGx1Z2luIHJlY29yZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbHVnaW5CYXNlIHtcbiAgLyoqXG4gICAqIFVuaXF1ZSBwbHVnaW4gaWRlbnRpZmllclxuICAgKi9cbiAgaWQ6IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIG5hbWVcbiAgICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIHZlcnNpb25cbiAgICovXG4gIHZlcnNpb246IHN0cmluZztcblxuICAvKipcbiAgICogT3JnYW5pemF0aW9uIHRoYXQgb3ducyB0aGUgcGx1Z2luXG4gICAqL1xuICBvcmdhbml6YXRpb246IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21wbGV0ZSBwbHVnaW4gZW50aXR5IGNvbWJpbmluZyBjb3JlIGZpZWxkcyB3aXRoIG9wdGlvbmFsIGRldGFpbCBmaWVsZHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luIGV4dGVuZHMgUGx1Z2luQmFzZSB7XG4gIC8qKlxuICAgKiBQbHVnaW4gZGVzY3JpcHRpb25cbiAgICovXG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gbWV0YWRhdGFcbiAgICovXG4gIG1ldGFkYXRhPzogUGx1Z2luTWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjb25maWd1cmF0aW9uXG4gICAqL1xuICBjb25maWc/OiBQbHVnaW5Db25maWc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBmaWxlIFVSTFxuICAgKi9cbiAgZmlsZVVybD86IHN0cmluZztcblxuICAvKipcbiAgICogUGx1Z2luIGZpbGUgc2l6ZSBpbiBieXRlc1xuICAgKi9cbiAgZmlsZVNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBjaGVja3N1bSAoU0hBMjU2KVxuICAgKi9cbiAgY2hlY2tzdW0/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHBsdWdpbiBpcyBhY3RpdmVcbiAgICovXG4gIGlzQWN0aXZlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcGx1Z2luIGlzIHB1YmxpY1xuICAgKi9cbiAgaXNQdWJsaWM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBQbHVnaW4gY3JlYXRpb24gdGltZXN0YW1wXG4gICAqL1xuICBjcmVhdGVkQXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBsdWdpbiBsYXN0IHVwZGF0ZSB0aW1lc3RhbXBcbiAgICovXG4gIHVwZGF0ZWRBdD86IHN0cmluZztcblxuICAvKipcbiAgICogVXNlciB3aG8gdXBsb2FkZWQgdGhlIHBsdWdpblxuICAgKi9cbiAgdXBsb2FkZWRCeT86IHN0cmluZztcblxuICAvKiogV2hldGhlciB0aGlzIHZlcnNpb24gaXMgdGhlIGRlZmF1bHQgZm9yIGl0cyBuYW1lLiAqL1xuICBpc0RlZmF1bHQ/OiBib29sZWFuO1xuXG4gIC8qKiBXaGVuIHRoZSB2ZXJzaW9uIHdhcyBkZXByZWNhdGVkIChzdGlsbCByZXNvbHZlcywgd2l0aCBhIHdhcm5pbmcpLiAqL1xuICBkZXByZWNhdGVkQXQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBUaGUgcHVibGlzaGVyJ3MgZGVwcmVjYXRpb24gbWVzc2FnZS4gKi9cbiAgZGVwcmVjYXRpb25NZXNzYWdlPzogc3RyaW5nIHwgbnVsbDtcblxuICAvKiogV2hlbiB0aGUgdmVyc2lvbiB3YXMgeWFua2VkIChyYW5nZXMsIGBsYXRlc3RgIGFuZCB0aGUgZGVmYXVsdCBza2lwIGl0KS4gKi9cbiAgeWFua2VkQXQ/OiBzdHJpbmcgfCBudWxsO1xuXG4gIC8qKiBXaHkgdGhlIHZlcnNpb24gd2FzIHlhbmtlZC4gKi9cbiAgeWFua1JlYXNvbj86IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKlxuICogUmVzcG9uc2Ugb2YgYFBPU1QgL3BsdWdpbnMvOmlkL3lhbmtgOiB0aGUgeWFua2VkIHZlcnNpb24sIHBsdXMgdGhlIHZlcnNpb25cbiAqIHByb21vdGVkIHRvIGRlZmF1bHQgd2hlbiB0aGUgeWFua2VkIG9uZSB3YXMgdGhlIGRlZmF1bHQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGx1Z2luWWFua1Jlc3BvbnNlIHtcbiAgcGx1Z2luOiBQbHVnaW47XG4gIHByb21vdGVkRGVmYXVsdD86IHsgaWQ6IHN0cmluZzsgdmVyc2lvbjogc3RyaW5nIH07XG59XG4iXX0=
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Command } from 'commander';
|
|
2
2
|
import { ApiClient } from './api-client.js';
|
|
3
|
+
import { type StoredSession } from './credential-store.js';
|
|
3
4
|
/**
|
|
4
5
|
* Print command header with section title and execution ID.
|
|
5
6
|
* Returns the execution ID for use in error handlers and summaries.
|
|
@@ -31,6 +32,18 @@ export declare function printExecutionSummary(executionId: string, duration: num
|
|
|
31
32
|
* Warn if SSL verification is disabled.
|
|
32
33
|
*/
|
|
33
34
|
export declare function printSslWarning(verifySsl?: boolean): void;
|
|
35
|
+
/**
|
|
36
|
+
* Renew a stored session with its refresh token, persist the rotated pair, and
|
|
37
|
+
* return the new access token. Returns undefined (and forgets the session) only
|
|
38
|
+
* when the platform REFUSES it (400/401) — a rotated-away or revoked token is
|
|
39
|
+
* dead, and keeping it would make every later command fail the same way. A
|
|
40
|
+
* network failure or a 5xx says nothing about the session, so it is kept and the
|
|
41
|
+
* error is rethrown: one blip must not force a fresh browser sign-in.
|
|
42
|
+
*
|
|
43
|
+
* `X-Pb-Client` is mandatory on /auth/refresh (the CSRF gate) and its value also
|
|
44
|
+
* picks the transport: anything but `web` keeps the body flow the CLI uses.
|
|
45
|
+
*/
|
|
46
|
+
export declare function refreshStoredSession(baseUrl: string, stale: StoredSession): Promise<string | undefined>;
|
|
34
47
|
/**
|
|
35
48
|
* Resolve a platform credential using three methods (in priority order):
|
|
36
49
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-utils.d.ts","sources":["../../src/utils/command-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"command-utils.d.ts","sources":["../../src/utils/command-utils.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAA4E,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAOrI;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAUvG;AAED;;mFAEmF;AACnF,wBAAgB,cAAc,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAI3D;AAED;;gCAEgC;AAChC,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE7D;AAED;;8EAE8E;AAC9E,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAE9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAOjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,IAAI,CAKzD;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAS7G;AAuCD;;;;;;;;GAQG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,MAAM,CAAC,CAyDlB;AAED;;;;;;;GAOG;AACH,wBAAsB,8BAA8B,CAAC,OAAO,EAAE;IAC5D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GAAG,OAAO,CAAC,SAAS,CAAC,CAQrB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAYrF;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAiBnF"}
|
|
@@ -72,14 +72,16 @@ export function printSslWarning(verifySsl) {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Renew a stored session with its refresh token, persist the rotated pair, and
|
|
75
|
-
* return the new access token. Returns undefined (and forgets the session)
|
|
76
|
-
* the platform
|
|
77
|
-
* it would make every later command fail the same way.
|
|
75
|
+
* return the new access token. Returns undefined (and forgets the session) only
|
|
76
|
+
* when the platform REFUSES it (400/401) — a rotated-away or revoked token is
|
|
77
|
+
* dead, and keeping it would make every later command fail the same way. A
|
|
78
|
+
* network failure or a 5xx says nothing about the session, so it is kept and the
|
|
79
|
+
* error is rethrown: one blip must not force a fresh browser sign-in.
|
|
78
80
|
*
|
|
79
81
|
* `X-Pb-Client` is mandatory on /auth/refresh (the CSRF gate) and its value also
|
|
80
82
|
* picks the transport: anything but `web` keeps the body flow the CLI uses.
|
|
81
83
|
*/
|
|
82
|
-
async function refreshStoredSession(baseUrl, stale) {
|
|
84
|
+
export async function refreshStoredSession(baseUrl, stale) {
|
|
83
85
|
// One refresh at a time per machine (see `withRefreshLock`): a second process
|
|
84
86
|
// re-reads the store under the lock and uses the pair the first one saved,
|
|
85
87
|
// rather than spending the same single-use refresh token again.
|
|
@@ -90,27 +92,39 @@ async function refreshStoredSession(baseUrl, stale) {
|
|
|
90
92
|
return renewSession(baseUrl, current ?? stale);
|
|
91
93
|
});
|
|
92
94
|
}
|
|
95
|
+
/** The statuses with which /auth/refresh rejects the refresh token itself. */
|
|
96
|
+
const REFRESH_REJECTED_STATUSES = new Set([400, 401]);
|
|
93
97
|
async function renewSession(baseUrl, session) {
|
|
94
98
|
if (!session.refreshToken)
|
|
95
99
|
return undefined;
|
|
100
|
+
let renewed;
|
|
96
101
|
try {
|
|
97
102
|
const response = await axios.post(`${baseUrl}/api/auth/refresh`, { refreshToken: session.refreshToken }, { headers: { 'Content-Type': 'application/json', 'X-Pb-Client': 'cli', ...requestCorrelationHeaders() }, timeout: 30_000 });
|
|
98
|
-
|
|
99
|
-
|
|
103
|
+
renewed = response.data?.data;
|
|
104
|
+
}
|
|
105
|
+
catch (error) {
|
|
106
|
+
const status = axios.isAxiosError(error) ? error.response?.status : undefined;
|
|
107
|
+
if (status !== undefined && REFRESH_REJECTED_STATUSES.has(status)) {
|
|
108
|
+
clearSession(baseUrl);
|
|
109
|
+
printWarning('The stored session could not be renewed — run "pipeline-manager auth login" again');
|
|
100
110
|
return undefined;
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
...(
|
|
111
|
+
}
|
|
112
|
+
// Unreachable, timed out or a server error: the session may be perfectly
|
|
113
|
+
// good. Keep it and surface the real failure.
|
|
114
|
+
printWarning('Could not reach the platform to renew the stored session — it is kept; try again', {
|
|
115
|
+
...(status !== undefined ? { status } : {}),
|
|
106
116
|
});
|
|
107
|
-
|
|
117
|
+
throw error;
|
|
108
118
|
}
|
|
109
|
-
|
|
110
|
-
clearSession(baseUrl);
|
|
111
|
-
printWarning('The stored session could not be renewed — run "pipeline-manager auth login" again');
|
|
119
|
+
if (!renewed?.accessToken)
|
|
112
120
|
return undefined;
|
|
113
|
-
|
|
121
|
+
saveSession(baseUrl, {
|
|
122
|
+
accessToken: renewed.accessToken,
|
|
123
|
+
...(renewed.refreshToken ? { refreshToken: renewed.refreshToken } : {}),
|
|
124
|
+
expiresAt: Date.now() + (renewed.expiresIn ?? 900) * 1000,
|
|
125
|
+
...(session.organizationId ? { organizationId: session.organizationId } : {}),
|
|
126
|
+
});
|
|
127
|
+
return renewed.accessToken;
|
|
114
128
|
}
|
|
115
129
|
/**
|
|
116
130
|
* Resolve a platform credential using three methods (in priority order):
|
|
@@ -222,4 +236,4 @@ export function validateEntityId(id, entityName) {
|
|
|
222
236
|
}
|
|
223
237
|
return trimmed;
|
|
224
238
|
}
|
|
225
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC11dGlscy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbW1hbmQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFnQixNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQWUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQXNCLE1BQU0sdUJBQXVCLENBQUM7QUFDckksT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRixNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRTVDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBYSxFQUFFLFFBQWlCLEVBQUUsSUFBMEI7SUFDN0YsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUMxQywrRUFBK0U7SUFDL0UsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQyxJQUFJ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QVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ3ZDLE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxFQUFzQixFQUFFLFVBQWtCO0lBQ3pFLElBQUksQ0FBQyxFQUFFLElBQUksT0FBTyxFQUFFLEtBQUssUUFBUSxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDNUQsVUFBVSxDQUFDLFdBQVcsVUFBVSxLQUFLLEVBQUUsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsVUFBVSxnQ0FBZ0MsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxNQUFNLE9BQU8sR0FBRyxFQUFFLENBQUMsSUFBSSxFQUFFLENBQUM7SUFFMUIsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEVBQUUsRUFBRSxDQUFDO1FBQ25ELFlBQVksQ0FBQyxHQUFHLFVBQVUsMkJBQTJCLEVBQUU7WUFDckQsUUFBUSxFQUFFLE9BQU87WUFDakIsY0FBYyxFQUFFLDhDQUE4QztZQUM5RCxZQUFZLEVBQUUsT0FBTyxDQUFDLE1BQU07U0FDN0IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFDO0FBQ2pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IHR5cGUgQ29tbWFuZCB9IGZyb20gJ2NvbW1hbmRlcic7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB7IEFwaUNsaWVudCB9IGZyb20gJy4vYXBpLWNsaWVudC5qcyc7XG5pbXBvcnQgeyBnZXRTZWNyZXRWYWx1ZSB9IGZyb20gJy4vYXdzLXNlY3JldHMuanMnO1xuaW1wb3J0IHsgdHlwZSBDb25maWcsIGdldEFwaUNvbmZpZywgZ2V0Q29uZmlnV2l0aE9wdGlvbnMgfSBmcm9tICcuL2NvbmZpZy1sb2FkZXIuanMnO1xuaW1wb3J0IHsgY2xlYXJTZXNzaW9uLCBpc1Nlc3Npb25Vc2FibGUsIGxvYWRTZXNzaW9uLCBzYXZlU2Vzc2lvbiwgd2l0aFJlZnJlc2hMb2NrLCB0eXBlIFN0b3JlZFNlc3Npb24gfSBmcm9tICcuL2NyZWRlbnRpYWwtc3RvcmUuanMnO1xuaW1wb3J0IHsgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcmVxdWVzdENvcnJlbGF0aW9uSGVhZGVycywgc2V0SW52b2NhdGlvbklkIH0gZnJvbSAnLi9yZXF1ZXN0LWNvbnRleHQuanMnO1xuaW1wb3J0IHsgZm9ybWF0RHVyYXRpb24sIGdlbmVyYXRlRXhlY3V0aW9uSWQgfSBmcm9tICcuLi9jb25maWcvY2xpLmNvbnN0YW50cy5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgY3lhbiwgZ3JlZW4sIG1hZ2VudGEgfSA9IHBpY287XG5cbi8qKlxuICogUHJpbnQgY29tbWFuZCBoZWFkZXIgd2l0aCBzZWN0aW9uIHRpdGxlIGFuZCBleGVjdXRpb24gSUQuXG4gKiBSZXR1cm5zIHRoZSBleGVjdXRpb24gSUQgZm9yIHVzZSBpbiBlcnJvciBoYW5kbGVycyBhbmQgc3VtbWFyaWVzLlxuICpcbiAqIFBhc3MgYHsgcXVpZXQ6IHRydWUgfWAgdG8gc3VwcHJlc3MgdGhlIGRlY29yYXRpdmUgb3V0cHV0IHdoaWxlIHN0aWxsIGdldHRpbmcgdGhlXG4gKiBpZCDigJQgdXNlZCBib3RoIGJ5IGAtLXF1aWV0YCBjYWxsZXJzIGFuZCBieSBgLS1qc29uYCBjb21tYW5kcyAoc28gdGhlIGJhbm5lclxuICogZG9lc24ndCBsYW5kIG9uIHN0ZG91dCBhaGVhZCBvZiB0aGUgSlNPTiBwYXlsb2FkIGFuZCBicmVhayBg4oCmIC0tanNvbiB8IGpxYCkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludENvbW1hbmRIZWFkZXIodGl0bGU6IHN0cmluZywgc3VidGl0bGU/OiBzdHJpbmcsIG9wdHM/OiB7IHF1aWV0PzogYm9vbGVhbiB9KTogc3RyaW5nIHtcbiAgY29uc3QgZXhlY3V0aW9uSWQgPSBnZW5lcmF0ZUV4ZWN1dGlvbklkKCk7XG4gIC8vIFRoZSBzYW1lIGlkIHJpZGVzIGV2ZXJ5IHBsYXRmb3JtIGNhbGwgYXMgWC1SZXF1ZXN0LUlkIChzZWUgcmVxdWVzdC1jb250ZXh0KS5cbiAgc2V0SW52b2NhdGlvbklkKGV4ZWN1dGlvbklkKTtcbiAgaWYgKCFvcHRzPy5xdWlldCkge1xuICAgIHByaW50U2VjdGlvbih0aXRsZSk7XG4gICAgY29uc29sZS5sb2coYCR7bWFnZW50YShgW0VYRS0ke2V4ZWN1dGlvbklkfV1gKX0gJHtjeWFuKGJvbGQoc3VidGl0bGUgfHwgdGl0bGUpKX1gKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gIH1cbiAgcmV0dXJuIGV4ZWN1dGlvbklkO1xufVxuXG4vKiogQXR0YWNoIHRoZSBzdGFuZGFyZCBgLS12ZXJpZnktc3NsYCAvIGAtLW5vLXZlcmlmeS1zc2xgIHBhaXIuIFRoZSB0d28gdG9nZXRoZXJcbiAqICBnaXZlIENvbW1hbmRlciBhbiBleHBsaWNpdCB0cmktc3RhdGUgYG9wdGlvbnMudmVyaWZ5U3NsYCAodHJ1ZS9mYWxzZS91bmRlZmluZWQpLlxuICogIFJldHVybnMgdGhlIGNvbW1hbmQgc28gaXQgY29tcG9zZXM6IGB3aXRoU3NsT3B0aW9ucyhwcm9ncmFtLmNvbW1hbmQoJ3gnKSnigKZgLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhTc2xPcHRpb25zPFQgZXh0ZW5kcyBDb21tYW5kPihjbWQ6IFQpOiBUIHtcbiAgcmV0dXJuIGNtZFxuICAgIC5vcHRpb24oJy0tdmVyaWZ5LXNzbCcsICdFbmFibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG4gICAgLm9wdGlvbignLS1uby12ZXJpZnktc3NsJywgJ0Rpc2FibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpIGFzIFQ7XG59XG5cbi8qKiBBdHRhY2ggdGhlIHN0YW5kYXJkIGAtLXJlZ2lvbiA8cmVnaW9uPmAgb3B0aW9uIChvbmUgY2Fub25pY2FsIGRlc2NyaXB0aW9uKS5cbiAqICBSZWdpb24gcmVzb2x1dGlvbiAoZmxhZyDihpIgQVdTX1JFR0lPTiDihpIgQ0RLX0RFRkFVTFRfUkVHSU9OIOKGkiB1cy1lYXN0LTEpIGxpdmVzIGluXG4gKiAgYXdzLWVudi5yZXNvbHZlQXdzUmVnaW9uLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdpdGhSZWdpb25PcHRpb248VCBleHRlbmRzIENvbW1hbmQ+KGNtZDogVCk6IFQge1xuICByZXR1cm4gY21kLm9wdGlvbignLS1yZWdpb24gPHJlZ2lvbj4nLCAnQVdTIHJlZ2lvbiAoZGVmYXVsdHMgdG8gQVdTX1JFR0lPTiAvIENES19ERUZBVUxUX1JFR0lPTiAvIHVzLWVhc3QtMSknKSBhcyBUO1xufVxuXG4vKiogQXR0YWNoIHRoZSBzdGFuZGFyZCBgLS1wcm9maWxlIDxwcm9maWxlPmAgb3B0aW9uIChvbmUgY2Fub25pY2FsIGRlc2NyaXB0aW9uKS5cbiAqICBObyBkZWZhdWx0IGlzIHBpbm5lZCBzbyB0aGUgQVdTIGRlZmF1bHQgY3JlZGVudGlhbCBjaGFpbiAoZW52IHZhcnMsIFNTTywgcm9sZXMpXG4gKiAgd29ya3Mgb3V0IG9mIHRoZSBib3g7IC0tcHJvZmlsZSBvbmx5IHNlbGVjdHMgYSBzaGFyZWQgcHJvZmlsZSB3aGVuIHNldC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUHJvZmlsZU9wdGlvbjxUIGV4dGVuZHMgQ29tbWFuZD4oY21kOiBUKTogVCB7XG4gIHJldHVybiBjbWQub3B0aW9uKCctLXByb2ZpbGUgPHByb2ZpbGU+JywgJ0FXUyBDTEkgcHJvZmlsZSAoZGVmYXVsdHMgdG8gdGhlIHN0YW5kYXJkIEFXUyBjcmVkZW50aWFsIGNoYWluKScpIGFzIFQ7XG59XG5cbi8qKlxuICogUHJpbnQgZXhlY3V0aW9uIHN1bW1hcnkgd2l0aCBJRCwgZHVyYXRpb24sIGFuZCBzdGF0dXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludEV4ZWN1dGlvblN1bW1hcnkoZXhlY3V0aW9uSWQ6IHN0cmluZywgZHVyYXRpb246IG51bWJlcik6IHZvaWQge1xuICBjb25zb2xlLmxvZygnJyk7XG4gIHByaW50S2V5VmFsdWUoe1xuICAgICdFeGVjdXRpb24gSUQnOiBleGVjdXRpb25JZCxcbiAgICAnRHVyYXRpb24nOiBmb3JtYXREdXJhdGlvbihkdXJhdGlvbiksXG4gICAgJ1N0YXR1cyc6IGdyZWVuKCfinJMgU3VjY2VzcycpLFxuICB9KTtcbn1cblxuLyoqXG4gKiBXYXJuIGlmIFNTTCB2ZXJpZmljYXRpb24gaXMgZGlzYWJsZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcmludFNzbFdhcm5pbmcodmVyaWZ5U3NsPzogYm9vbGVhbik6IHZvaWQge1xuICBpZiAodmVyaWZ5U3NsID09PSBmYWxzZSkge1xuICAgIHByaW50V2FybmluZygnU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbiBpcyBESVNBQkxFRCcpO1xuICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlbmV3IGEgc3RvcmVkIHNlc3Npb24gd2l0aCBpdHMgcmVmcmVzaCB0b2tlbiwgcGVyc2lzdCB0aGUgcm90YXRlZCBwYWlyLCBhbmRcbiAqIHJldHVybiB0aGUgbmV3IGFjY2VzcyB0b2tlbi4gUmV0dXJucyB1bmRlZmluZWQgKGFuZCBmb3JnZXRzIHRoZSBzZXNzaW9uKSB3aGVuXG4gKiB0aGUgcGxhdGZvcm0gcmVmdXNlcyBpdCDigJQgYSByb3RhdGVkLWF3YXkgb3IgcmV2b2tlZCB0b2tlbiBpcyBkZWFkLCBhbmQga2VlcGluZ1xuICogaXQgd291bGQgbWFrZSBldmVyeSBsYXRlciBjb21tYW5kIGZhaWwgdGhlIHNhbWUgd2F5LlxuICpcbiAqIGBYLVBiLUNsaWVudGAgaXMgbWFuZGF0b3J5IG9uIC9hdXRoL3JlZnJlc2ggKHRoZSBDU1JGIGdhdGUpIGFuZCBpdHMgdmFsdWUgYWxzb1xuICogcGlja3MgdGhlIHRyYW5zcG9ydDogYW55dGhpbmcgYnV0IGB3ZWJgIGtlZXBzIHRoZSBib2R5IGZsb3cgdGhlIENMSSB1c2VzLlxuICovXG5hc3luYyBmdW5jdGlvbiByZWZyZXNoU3RvcmVkU2Vzc2lvbihiYXNlVXJsOiBzdHJpbmcsIHN0YWxlOiBTdG9yZWRTZXNzaW9uKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgLy8gT25lIHJlZnJlc2ggYXQgYSB0aW1lIHBlciBtYWNoaW5lIChzZWUgYHdpdGhSZWZyZXNoTG9ja2ApOiBhIHNlY29uZCBwcm9jZXNzXG4gIC8vIHJlLXJlYWRzIHRoZSBzdG9yZSB1bmRlciB0aGUgbG9jayBhbmQgdXNlcyB0aGUgcGFpciB0aGUgZmlyc3Qgb25lIHNhdmVkLFxuICAvLyByYXRoZXIgdGhhbiBzcGVuZGluZyB0aGUgc2FtZSBzaW5nbGUtdXNlIHJlZnJlc2ggdG9rZW4gYWdhaW4uXG4gIHJldHVybiB3aXRoUmVmcmVzaExvY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBsb2FkU2Vzc2lvbihiYXNlVXJsKTtcbiAgICBpZiAoaXNTZXNzaW9uVXNhYmxlKGN1cnJlbnQpKSByZXR1cm4gY3VycmVudC5hY2Nlc3NUb2tlbjtcbiAgICByZXR1cm4gcmVuZXdTZXNzaW9uKGJhc2VVcmwsIGN1cnJlbnQgPz8gc3RhbGUpO1xuICB9KTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVuZXdTZXNzaW9uKGJhc2VVcmw6IHN0cmluZywgc2Vzc2lvbjogU3RvcmVkU2Vzc2lvbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmICghc2Vzc2lvbi5yZWZyZXNoVG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PHsgZGF0YT86IHsgYWNjZXNzVG9rZW4/OiBzdHJpbmc7IHJlZnJlc2hUb2tlbj86IHN0cmluZzsgZXhwaXJlc0luPzogbnVtYmVyIH0gfT4oXG4gICAgICBgJHtiYXNlVXJsfS9hcGkvYXV0aC9yZWZyZXNoYCxcbiAgICAgIHsgcmVmcmVzaFRva2VuOiBzZXNzaW9uLnJlZnJlc2hUb2tlbiB9LFxuICAgICAgeyBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdYLVBiLUNsaWVudCc6ICdjbGknLCAuLi5yZXF1ZXN0Q29ycmVsYXRpb25IZWFkZXJzKCkgfSwgdGltZW91dDogMzBfMDAwIH0sXG4gICAgKTtcbiAgICBjb25zdCByZW5ld2VkID0gcmVzcG9uc2UuZGF0YT8uZGF0YTtcbiAgICBpZiAoIXJlbmV3ZWQ/LmFjY2Vzc1Rva2VuKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIHNhdmVTZXNzaW9uKGJhc2VVcmwsIHtcbiAgICAgIGFjY2Vzc1Rva2VuOiByZW5ld2VkLmFjY2Vzc1Rva2VuLFxuICAgICAgLi4uKHJlbmV3ZWQucmVmcmVzaFRva2VuID8geyByZWZyZXNoVG9rZW46IHJlbmV3ZWQucmVmcmVzaFRva2VuIH0gOiB7fSksXG4gICAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyAocmVuZXdlZC5leHBpcmVzSW4gPz8gOTAwKSAqIDEwMDAsXG4gICAgICAuLi4oc2Vzc2lvbi5vcmdhbml6YXRpb25JZCA/IHsgb3JnYW5pemF0aW9uSWQ6IHNlc3Npb24ub3JnYW5pemF0aW9uSWQgfSA6IHt9KSxcbiAgICB9KTtcbiAgICByZXR1cm4gcmVuZXdlZC5hY2Nlc3NUb2tlbjtcbiAgfSBjYXRjaCB7XG4gICAgY2xlYXJTZXNzaW9uKGJhc2VVcmwpO1xuICAgIHByaW50V2FybmluZygnVGhlIHN0b3JlZCBzZXNzaW9uIGNvdWxkIG5vdCBiZSByZW5ld2VkIOKAlCBydW4gXCJwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW5cIiBhZ2FpbicpO1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgcGxhdGZvcm0gY3JlZGVudGlhbCB1c2luZyB0aHJlZSBtZXRob2RzIChpbiBwcmlvcml0eSBvcmRlcik6XG4gKlxuICogMS4gUExBVEZPUk1fVE9LRU4gZW52IHZhciAoYSBKV1QsIG9yIGFuIG9wYXF1ZSBgcGJfcGF0X+KApmAvYHBiX3NhX+KApmAga2V5KVxuICogMi4gdGhlIHNlc3Npb24gYGF1dGggbG9naW5gIHN0b3JlZCBmb3IgdGhpcyBwbGF0Zm9ybSAocmVuZXdlZCBpZiBpdCBoYXMgZXhwaXJlZClcbiAqIDMuIC0tc3RvcmUtdG9rZW5zIGZsYWcg4oaSIHRoZSBzZXJ2aWNlLWFjY291bnQga2V5IGluIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqXG4gKiBAcmV0dXJucyB0aGUgYmVhcmVyIGNyZWRlbnRpYWwgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlVG9rZW4ob3B0aW9uczoge1xuICBzdG9yZVRva2Vucz86IGJvb2xlYW47XG4gIHZlcmlmeVNzbD86IGJvb2xlYW47XG4gIHJlZ2lvbj86IHN0cmluZztcbiAgcHJvZmlsZT86IHN0cmluZztcbn0pOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBQYXRoIDE6IFBMQVRGT1JNX1RPS0VOIGVudiB2YXJcbiAgaWYgKHByb2Nlc3MuZW52LlBMQVRGT1JNX1RPS0VOKSB7XG4gICAgcHJpbnRJbmZvKCdVc2luZyBQTEFURk9STV9UT0tFTiBmcm9tIGVudmlyb25tZW50Jyk7XG4gICAgcmV0dXJuIHByb2Nlc3MuZW52LlBMQVRGT1JNX1RPS0VOO1xuICB9XG5cbiAgLy8gUGF0aCAyOiB0aGUgc3RvcmVkIGJyb3dzZXIgc2lnbi1pbi4gU2tpcHBlZCBlbnRpcmVseSB3aGVuIC0tc3RvcmUtdG9rZW5zXG4gIC8vIG5hbWVzIGEgbWFjaGluZSBjcmVkZW50aWFsLCBzbyBhbiBvcGVyYXRvcidzIGxhcHRvcCBzZXNzaW9uIGNhbiBuZXZlciBiZVxuICAvLyB1c2VkIHdoZXJlIHRoZSBhdXRvbWF0aW9uIGNyZWRlbnRpYWwgd2FzIGFza2VkIGZvci5cbiAgaWYgKCFvcHRpb25zLnN0b3JlVG9rZW5zKSB7XG4gICAgY29uc3QgYmFzZVVybCA9IGdldEFwaUNvbmZpZygpLmFwaS5iYXNlVXJsO1xuICAgIGNvbnN0IHN0b3JlZCA9IGxvYWRTZXNzaW9uKGJhc2VVcmwpO1xuICAgIGlmIChpc1Nlc3Npb25Vc2FibGUoc3RvcmVkKSkge1xuICAgICAgcHJpbnRJbmZvKCdVc2luZyB0aGUgc3RvcmVkIHNlc3Npb24gZnJvbSBcImF1dGggbG9naW5cIicpO1xuICAgICAgcmV0dXJuIHN0b3JlZC5hY2Nlc3NUb2tlbjtcbiAgICB9XG4gICAgaWYgKHN0b3JlZCkge1xuICAgICAgY29uc3QgcmVuZXdlZCA9IGF3YWl0IHJlZnJlc2hTdG9yZWRTZXNzaW9uKGJhc2VVcmwsIHN0b3JlZCk7XG4gICAgICBpZiAocmVuZXdlZCkge1xuICAgICAgICBwcmludEluZm8oJ1JlbmV3ZWQgdGhlIHN0b3JlZCBzZXNzaW9uIGZyb20gXCJhdXRoIGxvZ2luXCInKTtcbiAgICAgICAgcmV0dXJuIHJlbmV3ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGF0aCAzOiAtLXN0b3JlLXRva2VucyDihpIgcmVhZCBQTEFURk9STV9TRUNSRVRfTkFNRSBmcm9tIFNlY3JldHMgTWFuYWdlclxuICBpZiAob3B0aW9ucy5zdG9yZVRva2Vucykge1xuICAgIGNvbnN0IHNlY3JldE5hbWUgPSBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRTtcbiAgICBpZiAoIXNlY3JldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUExBVEZPUk1fU0VDUkVUX05BTUUgZW52IHZhciBpcyByZXF1aXJlZCB3aXRoIC0tc3RvcmUtdG9rZW5zJyk7XG4gICAgfVxuXG4gICAgcHJpbnRJbmZvKCdGZXRjaGluZyBzZWNyZXQgZnJvbSBTZWNyZXRzIE1hbmFnZXInLCB7IHNlY3JldDogc2VjcmV0TmFtZSB9KTtcblxuICAgIGNvbnN0IHNlY3JldEpzb24gPSBhd2FpdCBnZXRTZWNyZXRWYWx1ZShzZWNyZXROYW1lLCB7IHJlZ2lvbjogb3B0aW9ucy5yZWdpb24sIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSB9KTtcbiAgICBjb25zdCBzZWNyZXQgPSBKU09OLnBhcnNlKHNlY3JldEpzb24pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpbnRTdWNjZXNzKCdTZWNyZXQgcmV0cmlldmVkIGZyb20gU2VjcmV0cyBNYW5hZ2VyJyk7XG5cbiAgICAvLyBzdG9yZS10b2tlbiB3cml0ZXMgdGhlIHNlcnZpY2UtYWNjb3VudCBLRVkgdG8gdGhlIGBwYXNzd29yZGAgZmllbGQgKHNjaGVtYTpcbiAgICAvLyB7IHVzZXJuYW1lOiBvcmdJZCwgcGFzc3dvcmQ6IHBiX3NhX+KApiB9IOKAlCBzYXRpc2ZpZXMgQ29kZUJ1aWxkJ3NcbiAgICAvLyBzZWNyZXRzTWFuYWdlckNyZWRlbnRpYWxzKSwgbm90IGBhY2Nlc3NUb2tlbmAuIFRoZSBrZXkgaXMgcHJlc2VudGVkIGFzIGFcbiAgICAvLyBiZWFyZXIgY3JlZGVudGlhbCBhbmQgZXhjaGFuZ2VkIHNlcnZlci1zaWRlLCBzbyBub3RoaW5nIGhlcmUgZGVjb2RlcyBpdC5cbiAgICBpZiAoIXNlY3JldC5wYXNzd29yZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWNyZXQgbWlzc2luZyBwYXNzd29yZCAoc2VydmljZS1hY2NvdW50IGtleSkg4oCUIHJ1biBcInBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW5cIiB0byBwcm92aXNpb24gb25lJyk7XG4gICAgfVxuXG4gICAgcHJpbnRJbmZvKCdVc2luZyB0aGUgc3RvcmVkIHNlcnZpY2UtYWNjb3VudCBrZXknKTtcbiAgICByZXR1cm4gc2VjcmV0LnBhc3N3b3JkO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdBdXRoZW50aWNhdGlvbiByZXF1aXJlZC4gVXNlIG9uZSBvZjpcXG4nICtcbiAgICAnICAtIFJ1biBcInBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpblwiIChicm93c2VyIHNpZ24taW4sIHN0b3JlZCBmb3IgdGhpcyBwbGF0Zm9ybSlcXG4nICtcbiAgICAnICAtIFNldCBQTEFURk9STV9UT0tFTiB0byBhbiBhY2Nlc3Mga2V5IGZyb20gXCJwaXBlbGluZS1tYW5hZ2VyIGF1dGggcGF0XCJcXG4nICtcbiAgICAnICAtIFBhc3MgLS1zdG9yZS10b2tlbnMgd2l0aCBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyJyxcbiAgKTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplIGFuZCByZXR1cm4gYW4gYXV0aGVudGljYXRlZCBBUEkgY2xpZW50LlxuICpcbiAqIFN1cHBvcnRzIHRocmVlIGF1dGggbWV0aG9kczpcbiAqIDEuIFBMQVRGT1JNX1RPS0VOIGVudiB2YXJcbiAqIDIuIHRoZSBzdG9yZWQgYGF1dGggbG9naW5gIHNlc3Npb24gZm9yIHRoaXMgcGxhdGZvcm0gKHJlbmV3ZWQgb24gZXhwaXJ5KVxuICogMy4gLS1zdG9yZS10b2tlbnMgKyBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyIOKGkiBmZXRjaCB0b2tlbiBmcm9tIFNlY3JldHMgTWFuYWdlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnM6IHtcbiAgc3RvcmVUb2tlbnM/OiBib29sZWFuO1xuICB2ZXJpZnlTc2w/OiBib29sZWFuO1xuICByZWdpb24/OiBzdHJpbmc7XG4gIHByb2ZpbGU/OiBzdHJpbmc7XG59KTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgLy8gUmVzb2x2ZSB0b2tlbiBhbmQgc2V0IGl0IGluIGVudiBzbyBBcGlDbGllbnQvZ2V0Q29uZmlnIGNhbiBmaW5kIGl0XG4gIGlmICghcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4pIHtcbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHJlc29sdmVUb2tlbihvcHRpb25zKTtcbiAgICBwcm9jZXNzLmVudi5QTEFURk9STV9UT0tFTiA9IHRva2VuO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQob3B0aW9ucyk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhbmQgcmV0dXJuIGFuIGF1dGhlbnRpY2F0ZWQgQVBJIGNsaWVudCAoc3luYyDigJQgcmVxdWlyZXMgUExBVEZPUk1fVE9LRU4pLlxuICogVXNlIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyBmb3IgLS1zdG9yZS10b2tlbnMgc3VwcG9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQob3B0aW9uczogeyB2ZXJpZnlTc2w/OiBib29sZWFuIH0pOiBBcGlDbGllbnQge1xuICBjb25zdCBjb25maWc6IENvbmZpZyA9IGdldENvbmZpZ1dpdGhPcHRpb25zKG9wdGlvbnMpO1xuICBwcmludEluZm8oJ0luaXRpYWxpemluZyBBUEkgY2xpZW50JywgeyBiYXNlVXJsOiBjb25maWcuYXBpLmJhc2VVcmwgfSk7XG4gIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnKTtcblxuICBpZiAoIWNsaWVudC5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgIHByaW50RXJyb3IoJ05vdCBhdXRoZW50aWNhdGVkJywgeyBoaW50OiAnUnVuIFwicGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luXCIsIHNldCBQTEFURk9STV9UT0tFTiwgb3IgdXNlIC0tc3RvcmUtdG9rZW5zJyB9KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F1dGhlbnRpY2F0aW9uIHJlcXVpcmVkJyk7XG4gIH1cblxuICBwcmludFN1Y2Nlc3MoJ0FQSSBjbGllbnQgaW5pdGlhbGl6ZWQnKTtcbiAgcmV0dXJuIGNsaWVudDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIHJlcXVpcmVkIGVudGl0eSBJRCAoVUxJRCBvciBVVUlEIGZvcm1hdCkuXG4gKiBSZXR1cm5zIHRyaW1tZWQgSUQuXG4gKlxuICogQHRocm93cyBFcnJvciBpZiBJRCBpcyBlbXB0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVFbnRpdHlJZChpZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWlkIHx8IHR5cGVvZiBpZCAhPT0gJ3N0cmluZycgfHwgaWQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHByaW50RXJyb3IoYEludmFsaWQgJHtlbnRpdHlOYW1lfSBJRGAsIHsgcHJvdmlkZWQ6IGlkIH0pO1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtlbnRpdHlOYW1lfSBJRCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZ2ApO1xuICB9XG5cbiAgY29uc3QgdHJpbW1lZCA9IGlkLnRyaW0oKTtcblxuICBpZiAodHJpbW1lZC5sZW5ndGggIT09IDI2ICYmIHRyaW1tZWQubGVuZ3RoICE9PSAzNikge1xuICAgIHByaW50V2FybmluZyhgJHtlbnRpdHlOYW1lfSBJRCBmb3JtYXQgbWF5IGJlIGludmFsaWRgLCB7XG4gICAgICBwcm92aWRlZDogdHJpbW1lZCxcbiAgICAgIGV4cGVjdGVkTGVuZ3RoOiAnMjYgY2hhcmFjdGVycyAoVUxJRCkgb3IgMzYgY2hhcmFjdGVycyAoVVVJRCknLFxuICAgICAgYWN0dWFsTGVuZ3RoOiB0cmltbWVkLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0cmltbWVkO1xufVxuXG4iXX0=
|
|
239
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC11dGlscy5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbW1hbmQtdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxFQUFnQixNQUFNLFdBQVcsQ0FBQztBQUN6QyxPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQWUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckYsT0FBTyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQXNCLE1BQU0sdUJBQXVCLENBQUM7QUFDckksT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVqRixNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBRTVDOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsS0FBYSxFQUFFLFFBQWlCLEVBQUUsSUFBMEI7SUFDN0YsTUFBTSxXQUFXLEdBQUcsbUJBQW1CLEVBQUUsQ0FBQztJQUMxQywrRUFBK0U7SUFDL0UsZUFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzdCLElBQUksQ0FBQyxJQUFJ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LElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLElBQUksT0FBTyxDQUFDLE1BQU0sS0FBSyxFQUFFLEVBQUUsQ0FBQztRQUNuRCxZQUFZLENBQUMsR0FBRyxVQUFVLDJCQUEyQixFQUFFO1lBQ3JELFFBQVEsRUFBRSxPQUFPO1lBQ2pCLGNBQWMsRUFBRSw4Q0FBOEM7WUFDOUQsWUFBWSxFQUFFLE9BQU8sQ0FBQyxNQUFNO1NBQzdCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyB0eXBlIENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBBcGlDbGllbnQgfSBmcm9tICcuL2FwaS1jbGllbnQuanMnO1xuaW1wb3J0IHsgZ2V0U2VjcmV0VmFsdWUgfSBmcm9tICcuL2F3cy1zZWNyZXRzLmpzJztcbmltcG9ydCB7IHR5cGUgQ29uZmlnLCBnZXRBcGlDb25maWcsIGdldENvbmZpZ1dpdGhPcHRpb25zIH0gZnJvbSAnLi9jb25maWctbG9hZGVyLmpzJztcbmltcG9ydCB7IGNsZWFyU2Vzc2lvbiwgaXNTZXNzaW9uVXNhYmxlLCBsb2FkU2Vzc2lvbiwgc2F2ZVNlc3Npb24sIHdpdGhSZWZyZXNoTG9jaywgdHlwZSBTdG9yZWRTZXNzaW9uIH0gZnJvbSAnLi9jcmVkZW50aWFsLXN0b3JlLmpzJztcbmltcG9ydCB7IHByaW50RXJyb3IsIHByaW50SW5mbywgcHJpbnRLZXlWYWx1ZSwgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHJlcXVlc3RDb3JyZWxhdGlvbkhlYWRlcnMsIHNldEludm9jYXRpb25JZCB9IGZyb20gJy4vcmVxdWVzdC1jb250ZXh0LmpzJztcbmltcG9ydCB7IGZvcm1hdER1cmF0aW9uLCBnZW5lcmF0ZUV4ZWN1dGlvbklkIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuXG5jb25zdCB7IGJvbGQsIGN5YW4sIGdyZWVuLCBtYWdlbnRhIH0gPSBwaWNvO1xuXG4vKipcbiAqIFByaW50IGNvbW1hbmQgaGVhZGVyIHdpdGggc2VjdGlvbiB0aXRsZSBhbmQgZXhlY3V0aW9uIElELlxuICogUmV0dXJucyB0aGUgZXhlY3V0aW9uIElEIGZvciB1c2UgaW4gZXJyb3IgaGFuZGxlcnMgYW5kIHN1bW1hcmllcy5cbiAqXG4gKiBQYXNzIGB7IHF1aWV0OiB0cnVlIH1gIHRvIHN1cHByZXNzIHRoZSBkZWNvcmF0aXZlIG91dHB1dCB3aGlsZSBzdGlsbCBnZXR0aW5nIHRoZVxuICogaWQg4oCUIHVzZWQgYm90aCBieSBgLS1xdWlldGAgY2FsbGVycyBhbmQgYnkgYC0tanNvbmAgY29tbWFuZHMgKHNvIHRoZSBiYW5uZXJcbiAqIGRvZXNuJ3QgbGFuZCBvbiBzdGRvdXQgYWhlYWQgb2YgdGhlIEpTT04gcGF5bG9hZCBhbmQgYnJlYWsgYOKApiAtLWpzb24gfCBqcWApLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRDb21tYW5kSGVhZGVyKHRpdGxlOiBzdHJpbmcsIHN1YnRpdGxlPzogc3RyaW5nLCBvcHRzPzogeyBxdWlldD86IGJvb2xlYW4gfSk6IHN0cmluZyB7XG4gIGNvbnN0IGV4ZWN1dGlvbklkID0gZ2VuZXJhdGVFeGVjdXRpb25JZCgpO1xuICAvLyBUaGUgc2FtZSBpZCByaWRlcyBldmVyeSBwbGF0Zm9ybSBjYWxsIGFzIFgtUmVxdWVzdC1JZCAoc2VlIHJlcXVlc3QtY29udGV4dCkuXG4gIHNldEludm9jYXRpb25JZChleGVjdXRpb25JZCk7XG4gIGlmICghb3B0cz8ucXVpZXQpIHtcbiAgICBwcmludFNlY3Rpb24odGl0bGUpO1xuICAgIGNvbnNvbGUubG9nKGAke21hZ2VudGEoYFtFWEUtJHtleGVjdXRpb25JZH1dYCl9ICR7Y3lhbihib2xkKHN1YnRpdGxlIHx8IHRpdGxlKSl9YCk7XG4gICAgY29uc29sZS5sb2coJycpO1xuICB9XG4gIHJldHVybiBleGVjdXRpb25JZDtcbn1cblxuLyoqIEF0dGFjaCB0aGUgc3RhbmRhcmQgYC0tdmVyaWZ5LXNzbGAgLyBgLS1uby12ZXJpZnktc3NsYCBwYWlyLiBUaGUgdHdvIHRvZ2V0aGVyXG4gKiAgZ2l2ZSBDb21tYW5kZXIgYW4gZXhwbGljaXQgdHJpLXN0YXRlIGBvcHRpb25zLnZlcmlmeVNzbGAgKHRydWUvZmFsc2UvdW5kZWZpbmVkKS5cbiAqICBSZXR1cm5zIHRoZSBjb21tYW5kIHNvIGl0IGNvbXBvc2VzOiBgd2l0aFNzbE9wdGlvbnMocHJvZ3JhbS5jb21tYW5kKCd4Jykp4oCmYC4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoU3NsT3B0aW9uczxUIGV4dGVuZHMgQ29tbWFuZD4oY21kOiBUKTogVCB7XG4gIHJldHVybiBjbWRcbiAgICAub3B0aW9uKCctLXZlcmlmeS1zc2wnLCAnRW5hYmxlIFNTTCBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24nKVxuICAgIC5vcHRpb24oJy0tbm8tdmVyaWZ5LXNzbCcsICdEaXNhYmxlIFNTTCBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24nKSBhcyBUO1xufVxuXG4vKiogQXR0YWNoIHRoZSBzdGFuZGFyZCBgLS1yZWdpb24gPHJlZ2lvbj5gIG9wdGlvbiAob25lIGNhbm9uaWNhbCBkZXNjcmlwdGlvbikuXG4gKiAgUmVnaW9uIHJlc29sdXRpb24gKGZsYWcg4oaSIEFXU19SRUdJT04g4oaSIENES19ERUZBVUxUX1JFR0lPTiDihpIgdXMtZWFzdC0xKSBsaXZlcyBpblxuICogIGF3cy1lbnYucmVzb2x2ZUF3c1JlZ2lvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiB3aXRoUmVnaW9uT3B0aW9uPFQgZXh0ZW5kcyBDb21tYW5kPihjbWQ6IFQpOiBUIHtcbiAgcmV0dXJuIGNtZC5vcHRpb24oJy0tcmVnaW9uIDxyZWdpb24+JywgJ0FXUyByZWdpb24gKGRlZmF1bHRzIHRvIEFXU19SRUdJT04gLyBDREtfREVGQVVMVF9SRUdJT04gLyB1cy1lYXN0LTEpJykgYXMgVDtcbn1cblxuLyoqIEF0dGFjaCB0aGUgc3RhbmRhcmQgYC0tcHJvZmlsZSA8cHJvZmlsZT5gIG9wdGlvbiAob25lIGNhbm9uaWNhbCBkZXNjcmlwdGlvbikuXG4gKiAgTm8gZGVmYXVsdCBpcyBwaW5uZWQgc28gdGhlIEFXUyBkZWZhdWx0IGNyZWRlbnRpYWwgY2hhaW4gKGVudiB2YXJzLCBTU08sIHJvbGVzKVxuICogIHdvcmtzIG91dCBvZiB0aGUgYm94OyAtLXByb2ZpbGUgb25seSBzZWxlY3RzIGEgc2hhcmVkIHByb2ZpbGUgd2hlbiBzZXQuICovXG5leHBvcnQgZnVuY3Rpb24gd2l0aFByb2ZpbGVPcHRpb248VCBleHRlbmRzIENvbW1hbmQ+KGNtZDogVCk6IFQge1xuICByZXR1cm4gY21kLm9wdGlvbignLS1wcm9maWxlIDxwcm9maWxlPicsICdBV1MgQ0xJIHByb2ZpbGUgKGRlZmF1bHRzIHRvIHRoZSBzdGFuZGFyZCBBV1MgY3JlZGVudGlhbCBjaGFpbiknKSBhcyBUO1xufVxuXG4vKipcbiAqIFByaW50IGV4ZWN1dGlvbiBzdW1tYXJ5IHdpdGggSUQsIGR1cmF0aW9uLCBhbmQgc3RhdHVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRFeGVjdXRpb25TdW1tYXJ5KGV4ZWN1dGlvbklkOiBzdHJpbmcsIGR1cmF0aW9uOiBudW1iZXIpOiB2b2lkIHtcbiAgY29uc29sZS5sb2coJycpO1xuICBwcmludEtleVZhbHVlKHtcbiAgICAnRXhlY3V0aW9uIElEJzogZXhlY3V0aW9uSWQsXG4gICAgJ0R1cmF0aW9uJzogZm9ybWF0RHVyYXRpb24oZHVyYXRpb24pLFxuICAgICdTdGF0dXMnOiBncmVlbign4pyTIFN1Y2Nlc3MnKSxcbiAgfSk7XG59XG5cbi8qKlxuICogV2FybiBpZiBTU0wgdmVyaWZpY2F0aW9uIGlzIGRpc2FibGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJpbnRTc2xXYXJuaW5nKHZlcmlmeVNzbD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgaWYgKHZlcmlmeVNzbCA9PT0gZmFsc2UpIHtcbiAgICBwcmludFdhcm5pbmcoJ1NTTCBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24gaXMgRElTQUJMRUQnKTtcbiAgICBjb25zb2xlLmxvZygnJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZW5ldyBhIHN0b3JlZCBzZXNzaW9uIHdpdGggaXRzIHJlZnJlc2ggdG9rZW4sIHBlcnNpc3QgdGhlIHJvdGF0ZWQgcGFpciwgYW5kXG4gKiByZXR1cm4gdGhlIG5ldyBhY2Nlc3MgdG9rZW4uIFJldHVybnMgdW5kZWZpbmVkIChhbmQgZm9yZ2V0cyB0aGUgc2Vzc2lvbikgb25seVxuICogd2hlbiB0aGUgcGxhdGZvcm0gUkVGVVNFUyBpdCAoNDAwLzQwMSkg4oCUIGEgcm90YXRlZC1hd2F5IG9yIHJldm9rZWQgdG9rZW4gaXNcbiAqIGRlYWQsIGFuZCBrZWVwaW5nIGl0IHdvdWxkIG1ha2UgZXZlcnkgbGF0ZXIgY29tbWFuZCBmYWlsIHRoZSBzYW1lIHdheS4gQVxuICogbmV0d29yayBmYWlsdXJlIG9yIGEgNXh4IHNheXMgbm90aGluZyBhYm91dCB0aGUgc2Vzc2lvbiwgc28gaXQgaXMga2VwdCBhbmQgdGhlXG4gKiBlcnJvciBpcyByZXRocm93bjogb25lIGJsaXAgbXVzdCBub3QgZm9yY2UgYSBmcmVzaCBicm93c2VyIHNpZ24taW4uXG4gKlxuICogYFgtUGItQ2xpZW50YCBpcyBtYW5kYXRvcnkgb24gL2F1dGgvcmVmcmVzaCAodGhlIENTUkYgZ2F0ZSkgYW5kIGl0cyB2YWx1ZSBhbHNvXG4gKiBwaWNrcyB0aGUgdHJhbnNwb3J0OiBhbnl0aGluZyBidXQgYHdlYmAga2VlcHMgdGhlIGJvZHkgZmxvdyB0aGUgQ0xJIHVzZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWZyZXNoU3RvcmVkU2Vzc2lvbihiYXNlVXJsOiBzdHJpbmcsIHN0YWxlOiBTdG9yZWRTZXNzaW9uKTogUHJvbWlzZTxzdHJpbmcgfCB1bmRlZmluZWQ+IHtcbiAgLy8gT25lIHJlZnJlc2ggYXQgYSB0aW1lIHBlciBtYWNoaW5lIChzZWUgYHdpdGhSZWZyZXNoTG9ja2ApOiBhIHNlY29uZCBwcm9jZXNzXG4gIC8vIHJlLXJlYWRzIHRoZSBzdG9yZSB1bmRlciB0aGUgbG9jayBhbmQgdXNlcyB0aGUgcGFpciB0aGUgZmlyc3Qgb25lIHNhdmVkLFxuICAvLyByYXRoZXIgdGhhbiBzcGVuZGluZyB0aGUgc2FtZSBzaW5nbGUtdXNlIHJlZnJlc2ggdG9rZW4gYWdhaW4uXG4gIHJldHVybiB3aXRoUmVmcmVzaExvY2soYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGN1cnJlbnQgPSBsb2FkU2Vzc2lvbihiYXNlVXJsKTtcbiAgICBpZiAoaXNTZXNzaW9uVXNhYmxlKGN1cnJlbnQpKSByZXR1cm4gY3VycmVudC5hY2Nlc3NUb2tlbjtcbiAgICByZXR1cm4gcmVuZXdTZXNzaW9uKGJhc2VVcmwsIGN1cnJlbnQgPz8gc3RhbGUpO1xuICB9KTtcbn1cblxuLyoqIFRoZSBzdGF0dXNlcyB3aXRoIHdoaWNoIC9hdXRoL3JlZnJlc2ggcmVqZWN0cyB0aGUgcmVmcmVzaCB0b2tlbiBpdHNlbGYuICovXG5jb25zdCBSRUZSRVNIX1JFSkVDVEVEX1NUQVRVU0VTID0gbmV3IFNldChbNDAwLCA0MDFdKTtcblxuYXN5bmMgZnVuY3Rpb24gcmVuZXdTZXNzaW9uKGJhc2VVcmw6IHN0cmluZywgc2Vzc2lvbjogU3RvcmVkU2Vzc2lvbik6IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmICghc2Vzc2lvbi5yZWZyZXNoVG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gIGxldCByZW5ld2VkOiB7IGFjY2Vzc1Rva2VuPzogc3RyaW5nOyByZWZyZXNoVG9rZW4/OiBzdHJpbmc7IGV4cGlyZXNJbj86IG51bWJlciB9IHwgdW5kZWZpbmVkO1xuICB0cnkge1xuICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdDx7IGRhdGE/OiB7IGFjY2Vzc1Rva2VuPzogc3RyaW5nOyByZWZyZXNoVG9rZW4/OiBzdHJpbmc7IGV4cGlyZXNJbj86IG51bWJlciB9IH0+KFxuICAgICAgYCR7YmFzZVVybH0vYXBpL2F1dGgvcmVmcmVzaGAsXG4gICAgICB7IHJlZnJlc2hUb2tlbjogc2Vzc2lvbi5yZWZyZXNoVG9rZW4gfSxcbiAgICAgIHsgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLCAnWC1QYi1DbGllbnQnOiAnY2xpJywgLi4ucmVxdWVzdENvcnJlbGF0aW9uSGVhZGVycygpIH0sIHRpbWVvdXQ6IDMwXzAwMCB9LFxuICAgICk7XG4gICAgcmVuZXdlZCA9IHJlc3BvbnNlLmRhdGE/LmRhdGE7XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gYXhpb3MuaXNBeGlvc0Vycm9yKGVycm9yKSA/IGVycm9yLnJlc3BvbnNlPy5zdGF0dXMgOiB1bmRlZmluZWQ7XG4gICAgaWYgKHN0YXR1cyAhPT0gdW5kZWZpbmVkICYmIFJFRlJFU0hfUkVKRUNURURfU1RBVFVTRVMuaGFzKHN0YXR1cykpIHtcbiAgICAgIGNsZWFyU2Vzc2lvbihiYXNlVXJsKTtcbiAgICAgIHByaW50V2FybmluZygnVGhlIHN0b3JlZCBzZXNzaW9uIGNvdWxkIG5vdCBiZSByZW5ld2VkIOKAlCBydW4gXCJwaXBlbGluZS1tYW5hZ2VyIGF1dGggbG9naW5cIiBhZ2FpbicpO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gICAgLy8gVW5yZWFjaGFibGUsIHRpbWVkIG91dCBvciBhIHNlcnZlciBlcnJvcjogdGhlIHNlc3Npb24gbWF5IGJlIHBlcmZlY3RseVxuICAgIC8vIGdvb2QuIEtlZXAgaXQgYW5kIHN1cmZhY2UgdGhlIHJlYWwgZmFpbHVyZS5cbiAgICBwcmludFdhcm5pbmcoJ0NvdWxkIG5vdCByZWFjaCB0aGUgcGxhdGZvcm0gdG8gcmVuZXcgdGhlIHN0b3JlZCBzZXNzaW9uIOKAlCBpdCBpcyBrZXB0OyB0cnkgYWdhaW4nLCB7XG4gICAgICAuLi4oc3RhdHVzICE9PSB1bmRlZmluZWQgPyB7IHN0YXR1cyB9IDoge30pLFxuICAgIH0pO1xuICAgIHRocm93IGVycm9yO1xuICB9XG4gIGlmICghcmVuZXdlZD8uYWNjZXNzVG9rZW4pIHJldHVybiB1bmRlZmluZWQ7XG4gIHNhdmVTZXNzaW9uKGJhc2VVcmwsIHtcbiAgICBhY2Nlc3NUb2tlbjogcmVuZXdlZC5hY2Nlc3NUb2tlbixcbiAgICAuLi4ocmVuZXdlZC5yZWZyZXNoVG9rZW4gPyB7IHJlZnJlc2hUb2tlbjogcmVuZXdlZC5yZWZyZXNoVG9rZW4gfSA6IHt9KSxcbiAgICBleHBpcmVzQXQ6IERhdGUubm93KCkgKyAocmVuZXdlZC5leHBpcmVzSW4gPz8gOTAwKSAqIDEwMDAsXG4gICAgLi4uKHNlc3Npb24ub3JnYW5pemF0aW9uSWQgPyB7IG9yZ2FuaXphdGlvbklkOiBzZXNzaW9uLm9yZ2FuaXphdGlvbklkIH0gOiB7fSksXG4gIH0pO1xuICByZXR1cm4gcmVuZXdlZC5hY2Nlc3NUb2tlbjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgcGxhdGZvcm0gY3JlZGVudGlhbCB1c2luZyB0aHJlZSBtZXRob2RzIChpbiBwcmlvcml0eSBvcmRlcik6XG4gKlxuICogMS4gUExBVEZPUk1fVE9LRU4gZW52IHZhciAoYSBKV1QsIG9yIGFuIG9wYXF1ZSBgcGJfcGF0X+KApmAvYHBiX3NhX+KApmAga2V5KVxuICogMi4gdGhlIHNlc3Npb24gYGF1dGggbG9naW5gIHN0b3JlZCBmb3IgdGhpcyBwbGF0Zm9ybSAocmVuZXdlZCBpZiBpdCBoYXMgZXhwaXJlZClcbiAqIDMuIC0tc3RvcmUtdG9rZW5zIGZsYWcg4oaSIHRoZSBzZXJ2aWNlLWFjY291bnQga2V5IGluIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqXG4gKiBAcmV0dXJucyB0aGUgYmVhcmVyIGNyZWRlbnRpYWwgc3RyaW5nXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlVG9rZW4ob3B0aW9uczoge1xuICBzdG9yZVRva2Vucz86IGJvb2xlYW47XG4gIHZlcmlmeVNzbD86IGJvb2xlYW47XG4gIHJlZ2lvbj86IHN0cmluZztcbiAgcHJvZmlsZT86IHN0cmluZztcbn0pOiBQcm9taXNlPHN0cmluZz4ge1xuICAvLyBQYXRoIDE6IFBMQVRGT1JNX1RPS0VOIGVudiB2YXJcbiAgaWYgKHByb2Nlc3MuZW52LlBMQVRGT1JNX1RPS0VOKSB7XG4gICAgcHJpbnRJbmZvKCdVc2luZyBQTEFURk9STV9UT0tFTiBmcm9tIGVudmlyb25tZW50Jyk7XG4gICAgcmV0dXJuIHByb2Nlc3MuZW52LlBMQVRGT1JNX1RPS0VOO1xuICB9XG5cbiAgLy8gUGF0aCAyOiB0aGUgc3RvcmVkIGJyb3dzZXIgc2lnbi1pbi4gU2tpcHBlZCBlbnRpcmVseSB3aGVuIC0tc3RvcmUtdG9rZW5zXG4gIC8vIG5hbWVzIGEgbWFjaGluZSBjcmVkZW50aWFsLCBzbyBhbiBvcGVyYXRvcidzIGxhcHRvcCBzZXNzaW9uIGNhbiBuZXZlciBiZVxuICAvLyB1c2VkIHdoZXJlIHRoZSBhdXRvbWF0aW9uIGNyZWRlbnRpYWwgd2FzIGFza2VkIGZvci5cbiAgaWYgKCFvcHRpb25zLnN0b3JlVG9rZW5zKSB7XG4gICAgY29uc3QgYmFzZVVybCA9IGdldEFwaUNvbmZpZygpLmFwaS5iYXNlVXJsO1xuICAgIGNvbnN0IHN0b3JlZCA9IGxvYWRTZXNzaW9uKGJhc2VVcmwpO1xuICAgIGlmIChpc1Nlc3Npb25Vc2FibGUoc3RvcmVkKSkge1xuICAgICAgcHJpbnRJbmZvKCdVc2luZyB0aGUgc3RvcmVkIHNlc3Npb24gZnJvbSBcImF1dGggbG9naW5cIicpO1xuICAgICAgcmV0dXJuIHN0b3JlZC5hY2Nlc3NUb2tlbjtcbiAgICB9XG4gICAgaWYgKHN0b3JlZCkge1xuICAgICAgY29uc3QgcmVuZXdlZCA9IGF3YWl0IHJlZnJlc2hTdG9yZWRTZXNzaW9uKGJhc2VVcmwsIHN0b3JlZCk7XG4gICAgICBpZiAocmVuZXdlZCkge1xuICAgICAgICBwcmludEluZm8oJ1JlbmV3ZWQgdGhlIHN0b3JlZCBzZXNzaW9uIGZyb20gXCJhdXRoIGxvZ2luXCInKTtcbiAgICAgICAgcmV0dXJuIHJlbmV3ZWQ7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gUGF0aCAzOiAtLXN0b3JlLXRva2VucyDihpIgcmVhZCBQTEFURk9STV9TRUNSRVRfTkFNRSBmcm9tIFNlY3JldHMgTWFuYWdlclxuICBpZiAob3B0aW9ucy5zdG9yZVRva2Vucykge1xuICAgIGNvbnN0IHNlY3JldE5hbWUgPSBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRTtcbiAgICBpZiAoIXNlY3JldE5hbWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUExBVEZPUk1fU0VDUkVUX05BTUUgZW52IHZhciBpcyByZXF1aXJlZCB3aXRoIC0tc3RvcmUtdG9rZW5zJyk7XG4gICAgfVxuXG4gICAgcHJpbnRJbmZvKCdGZXRjaGluZyBzZWNyZXQgZnJvbSBTZWNyZXRzIE1hbmFnZXInLCB7IHNlY3JldDogc2VjcmV0TmFtZSB9KTtcblxuICAgIGNvbnN0IHNlY3JldEpzb24gPSBhd2FpdCBnZXRTZWNyZXRWYWx1ZShzZWNyZXROYW1lLCB7IHJlZ2lvbjogb3B0aW9ucy5yZWdpb24sIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSB9KTtcbiAgICBjb25zdCBzZWNyZXQgPSBKU09OLnBhcnNlKHNlY3JldEpzb24pIGFzIFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gICAgcHJpbnRTdWNjZXNzKCdTZWNyZXQgcmV0cmlldmVkIGZyb20gU2VjcmV0cyBNYW5hZ2VyJyk7XG5cbiAgICAvLyBzdG9yZS10b2tlbiB3cml0ZXMgdGhlIHNlcnZpY2UtYWNjb3VudCBLRVkgdG8gdGhlIGBwYXNzd29yZGAgZmllbGQgKHNjaGVtYTpcbiAgICAvLyB7IHVzZXJuYW1lOiBvcmdJZCwgcGFzc3dvcmQ6IHBiX3NhX+KApiB9IOKAlCBzYXRpc2ZpZXMgQ29kZUJ1aWxkJ3NcbiAgICAvLyBzZWNyZXRzTWFuYWdlckNyZWRlbnRpYWxzKSwgbm90IGBhY2Nlc3NUb2tlbmAuIFRoZSBrZXkgaXMgcHJlc2VudGVkIGFzIGFcbiAgICAvLyBiZWFyZXIgY3JlZGVudGlhbCBhbmQgZXhjaGFuZ2VkIHNlcnZlci1zaWRlLCBzbyBub3RoaW5nIGhlcmUgZGVjb2RlcyBpdC5cbiAgICBpZiAoIXNlY3JldC5wYXNzd29yZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdTZWNyZXQgbWlzc2luZyBwYXNzd29yZCAoc2VydmljZS1hY2NvdW50IGtleSkg4oCUIHJ1biBcInBpcGVsaW5lLW1hbmFnZXIgaW5mcmEgc3RvcmUtdG9rZW5cIiB0byBwcm92aXNpb24gb25lJyk7XG4gICAgfVxuXG4gICAgcHJpbnRJbmZvKCdVc2luZyB0aGUgc3RvcmVkIHNlcnZpY2UtYWNjb3VudCBrZXknKTtcbiAgICByZXR1cm4gc2VjcmV0LnBhc3N3b3JkO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKFxuICAgICdBdXRoZW50aWNhdGlvbiByZXF1aXJlZC4gVXNlIG9uZSBvZjpcXG4nICtcbiAgICAnICAtIFJ1biBcInBpcGVsaW5lLW1hbmFnZXIgYXV0aCBsb2dpblwiIChicm93c2VyIHNpZ24taW4sIHN0b3JlZCBmb3IgdGhpcyBwbGF0Zm9ybSlcXG4nICtcbiAgICAnICAtIFNldCBQTEFURk9STV9UT0tFTiB0byBhbiBhY2Nlc3Mga2V5IGZyb20gXCJwaXBlbGluZS1tYW5hZ2VyIGF1dGggcGF0XCJcXG4nICtcbiAgICAnICAtIFBhc3MgLS1zdG9yZS10b2tlbnMgd2l0aCBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyJyxcbiAgKTtcbn1cblxuLyoqXG4gKiBJbml0aWFsaXplIGFuZCByZXR1cm4gYW4gYXV0aGVudGljYXRlZCBBUEkgY2xpZW50LlxuICpcbiAqIFN1cHBvcnRzIHRocmVlIGF1dGggbWV0aG9kczpcbiAqIDEuIFBMQVRGT1JNX1RPS0VOIGVudiB2YXJcbiAqIDIuIHRoZSBzdG9yZWQgYGF1dGggbG9naW5gIHNlc3Npb24gZm9yIHRoaXMgcGxhdGZvcm0gKHJlbmV3ZWQgb24gZXhwaXJ5KVxuICogMy4gLS1zdG9yZS10b2tlbnMgKyBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyIOKGkiBmZXRjaCB0b2tlbiBmcm9tIFNlY3JldHMgTWFuYWdlclxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnM6IHtcbiAgc3RvcmVUb2tlbnM/OiBib29sZWFuO1xuICB2ZXJpZnlTc2w/OiBib29sZWFuO1xuICByZWdpb24/OiBzdHJpbmc7XG4gIHByb2ZpbGU/OiBzdHJpbmc7XG59KTogUHJvbWlzZTxBcGlDbGllbnQ+IHtcbiAgLy8gUmVzb2x2ZSB0b2tlbiBhbmQgc2V0IGl0IGluIGVudiBzbyBBcGlDbGllbnQvZ2V0Q29uZmlnIGNhbiBmaW5kIGl0XG4gIGlmICghcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4pIHtcbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IHJlc29sdmVUb2tlbihvcHRpb25zKTtcbiAgICBwcm9jZXNzLmVudi5QTEFURk9STV9UT0tFTiA9IHRva2VuO1xuICB9XG5cbiAgcmV0dXJuIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQob3B0aW9ucyk7XG59XG5cbi8qKlxuICogSW5pdGlhbGl6ZSBhbmQgcmV0dXJuIGFuIGF1dGhlbnRpY2F0ZWQgQVBJIGNsaWVudCAoc3luYyDigJQgcmVxdWlyZXMgUExBVEZPUk1fVE9LRU4pLlxuICogVXNlIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyBmb3IgLS1zdG9yZS10b2tlbnMgc3VwcG9ydC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnQob3B0aW9uczogeyB2ZXJpZnlTc2w/OiBib29sZWFuIH0pOiBBcGlDbGllbnQge1xuICBjb25zdCBjb25maWc6IENvbmZpZyA9IGdldENvbmZpZ1dpdGhPcHRpb25zKG9wdGlvbnMpO1xuICBwcmludEluZm8oJ0luaXRpYWxpemluZyBBUEkgY2xpZW50JywgeyBiYXNlVXJsOiBjb25maWcuYXBpLmJhc2VVcmwgfSk7XG4gIGNvbnN0IGNsaWVudCA9IG5ldyBBcGlDbGllbnQoY29uZmlnKTtcblxuICBpZiAoIWNsaWVudC5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgIHByaW50RXJyb3IoJ05vdCBhdXRoZW50aWNhdGVkJywgeyBoaW50OiAnUnVuIFwicGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luXCIsIHNldCBQTEFURk9STV9UT0tFTiwgb3IgdXNlIC0tc3RvcmUtdG9rZW5zJyB9KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0F1dGhlbnRpY2F0aW9uIHJlcXVpcmVkJyk7XG4gIH1cblxuICBwcmludFN1Y2Nlc3MoJ0FQSSBjbGllbnQgaW5pdGlhbGl6ZWQnKTtcbiAgcmV0dXJuIGNsaWVudDtcbn1cblxuLyoqXG4gKiBWYWxpZGF0ZSBhIHJlcXVpcmVkIGVudGl0eSBJRCAoVUxJRCBvciBVVUlEIGZvcm1hdCkuXG4gKiBSZXR1cm5zIHRyaW1tZWQgSUQuXG4gKlxuICogQHRocm93cyBFcnJvciBpZiBJRCBpcyBlbXB0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGVFbnRpdHlJZChpZDogc3RyaW5nIHwgdW5kZWZpbmVkLCBlbnRpdHlOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoIWlkIHx8IHR5cGVvZiBpZCAhPT0gJ3N0cmluZycgfHwgaWQudHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHByaW50RXJyb3IoYEludmFsaWQgJHtlbnRpdHlOYW1lfSBJRGAsIHsgcHJvdmlkZWQ6IGlkIH0pO1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtlbnRpdHlOYW1lfSBJRCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZ2ApO1xuICB9XG5cbiAgY29uc3QgdHJpbW1lZCA9IGlkLnRyaW0oKTtcblxuICBpZiAodHJpbW1lZC5sZW5ndGggIT09IDI2ICYmIHRyaW1tZWQubGVuZ3RoICE9PSAzNikge1xuICAgIHByaW50V2FybmluZyhgJHtlbnRpdHlOYW1lfSBJRCBmb3JtYXQgbWF5IGJlIGludmFsaWRgLCB7XG4gICAgICBwcm92aWRlZDogdHJpbW1lZCxcbiAgICAgIGV4cGVjdGVkTGVuZ3RoOiAnMjYgY2hhcmFjdGVycyAoVUxJRCkgb3IgMzYgY2hhcmFjdGVycyAoVVVJRCknLFxuICAgICAgYWN0dWFsTGVuZ3RoOiB0cmltbWVkLmxlbmd0aCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0cmltbWVkO1xufVxuXG4iXX0=
|
|
@@ -7,7 +7,8 @@ export type { Config };
|
|
|
7
7
|
* 1. Built-in defaults
|
|
8
8
|
* 2. User config file: ~/.pipeline-manager/config.yml
|
|
9
9
|
* 3. Project config file: CLI_CONFIG_PATH or ./config.yml
|
|
10
|
-
* 4.
|
|
10
|
+
* 4. The platform the last `auth login` signed in to (base URL only)
|
|
11
|
+
* 5. Environment variables
|
|
11
12
|
*
|
|
12
13
|
* Auth token comes from PLATFORM_TOKEN, else the stored `auth login` session —
|
|
13
14
|
* never from a config file.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-loader.d.ts","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,YAAY,EAAE,MAAM,EAAE,CAAC;AA2CvB
|
|
1
|
+
{"version":3,"file":"config-loader.d.ts","sources":["../../src/utils/config-loader.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAKhD,YAAY,EAAE,MAAM,EAAE,CAAC;AA2CvB;;;;;;;;;;;;GAYG;AACH;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAsDnD;AAED,wBAAgB,SAAS,IAAI,MAAM,CA8BlC;AAaD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,SAAS,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,MAAM,CAU7E"}
|
|
@@ -6,7 +6,7 @@ import * as os from 'os';
|
|
|
6
6
|
import * as path from 'path';
|
|
7
7
|
import { errorMessage } from '@pipeline-builder/api-core';
|
|
8
8
|
import * as yaml from 'yaml';
|
|
9
|
-
import { isSessionUsable, loadSession } from './credential-store.js';
|
|
9
|
+
import { activePlatform, isSessionUsable, loadSession } from './credential-store.js';
|
|
10
10
|
import { printDebug, printError, printWarning } from './output-utils.js';
|
|
11
11
|
import { assertSslDisableAllowed, isProductionEnv } from './tls.js';
|
|
12
12
|
import {} from '../types/index.js';
|
|
@@ -58,7 +58,8 @@ function loadConfigFile(filePath, config) {
|
|
|
58
58
|
* 1. Built-in defaults
|
|
59
59
|
* 2. User config file: ~/.pipeline-manager/config.yml
|
|
60
60
|
* 3. Project config file: CLI_CONFIG_PATH or ./config.yml
|
|
61
|
-
* 4.
|
|
61
|
+
* 4. The platform the last `auth login` signed in to (base URL only)
|
|
62
|
+
* 5. Environment variables
|
|
62
63
|
*
|
|
63
64
|
* Auth token comes from PLATFORM_TOKEN, else the stored `auth login` session —
|
|
64
65
|
* never from a config file.
|
|
@@ -80,7 +81,16 @@ export function getApiConfig() {
|
|
|
80
81
|
// defaults and leaked one caller's base URL into every later resolution.
|
|
81
82
|
let config = loadConfigFile(USER_CONFIG_PATH, { api: { ...defaultConfig.api } });
|
|
82
83
|
config = loadConfigFile(projectConfigPath, config);
|
|
83
|
-
// Layer 4:
|
|
84
|
+
// Layer 4: the platform the last `auth login` signed in to. `auth login --url X`
|
|
85
|
+
// stores its session under X, so the commands after it must talk to X — had the
|
|
86
|
+
// config files won here, every command would look for the session under a
|
|
87
|
+
// different URL and report "Not signed in" right after a successful sign-in.
|
|
88
|
+
const signedInTo = activePlatform();
|
|
89
|
+
if (signedInTo) {
|
|
90
|
+
config.api.baseUrl = signedInTo;
|
|
91
|
+
printDebug('Using the platform from "auth login"', { baseUrl: signedInTo });
|
|
92
|
+
}
|
|
93
|
+
// Layer 5: environment variable overrides
|
|
84
94
|
if (process.env.PLATFORM_BASE_URL) {
|
|
85
95
|
config.api.baseUrl = process.env.PLATFORM_BASE_URL;
|
|
86
96
|
printDebug('Using PLATFORM_BASE_URL from environment', { baseUrl: config.api.baseUrl });
|
|
@@ -165,4 +175,4 @@ export function getConfigWithOptions(options) {
|
|
|
165
175
|
}
|
|
166
176
|
return config;
|
|
167
177
|
}
|
|
168
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWxvYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbmZpZy1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDcEUsT0FBTyxFQUFlLE1BQU0sbUJBQW1CLENBQUM7QUFFaEQsMERBQTBEO0FBQzFELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFJL0Q7O0dBRUc7QUFDSCxNQUFNLGFBQWEsR0FBeUI7SUFDMUMsR0FBRyxFQUFFO1FBQ0gsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxPQUFPLEVBQUUsTUFBTTtRQUNmLFdBQVcsRUFBRSxnQkFBZ0I7UUFDN0IsbUJBQW1CLEVBQUUseUJBQXlCO1FBQzlDLFNBQVMsRUFBRSxjQUFjO1FBQ3pCLGVBQWUsRUFBRSxxQkFBcUI7UUFDdEMsa0JBQWtCLEVBQUUsSUFBSTtLQUN6QjtDQUNGLENBQUM7QUFFRiw0REFBNEQ7QUFDNUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUVwRjs7O0dBR0c7QUFDSCxTQUFTLGNBQWMsQ0FBQyxRQUFnQixFQUFFLE1BQTRCO0lBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztRQUFFLE9BQU8sTUFBTSxDQUFDO0lBRTVDLElBQUksQ0FBQztRQUNILFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBQ3hELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUM5RCxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUNqQixZQUFZLENBQUMscUVBQXFFLENBQUMsQ0FBQztRQUN0RixDQUFDO1FBQ0QsT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsWUFBWSxDQUFDLDRDQUE0QyxFQUFFO1lBQ3pELElBQUksRUFBRSxRQUFRO1lBQ2QsS0FBSyxFQUFFLFlBQVksQ0FBQyxLQUFLLENBQUM7U0FDM0IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztBQUNILENBQUM7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNIOzs7Ozs7OztHQVFHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDMUIsTUFBTSxpQkFBaUIsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxlQUFlLENBQUMsQ0FBQztJQUUvRixzRUFBc0U7SUFDdEUsOEVBQThFO0lBQzlFLCtFQUErRTtJQUMvRSx5RUFBeUU7SUFDekUsSUFBSSxNQUFNLEdBQUcsY0FBYyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsR0FBRyxhQUFhLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLE1BQU0sR0FBRyxjQUFjLENBQUMsaUJBQWlCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFFbkQsMENBQTBDO0lBQzFDLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUM7UUFDbkQsVUFBVSxDQUFDLDBDQUEwQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMxRixDQUFDO0lBRUQsK0VBQStFO0lBQy9FLCtFQUErRTtJQUMvRSw0RUFBNEU7SUFDNUUsc0VBQXNFO0lBQ3RFLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDRCQUE0QixLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5SCxJQUFJLFNBQVMsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUM1QixNQUFNLE9BQU8sR0FBRyxTQUFTLEtBQUssR0FBRyxDQUFDO1FBQ2xDLElBQUksT0FBTyxJQUFJLGVBQWUsRUFBRSxFQUFFLENBQUM7WUFDakMsWUFBWSxDQUFDLHFGQUFxRixDQUFDLENBQUM7UUFDdEcsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLENBQUMsT0FBTyxDQUFDO1lBQ3pDLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1osWUFBWSxDQUFDLG9HQUFvRyxDQUFDLENBQUM7WUFDckgsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxNQUFNLENBQUMsR0FBRyxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7WUFDbEMsVUFBVSxDQUFDLHVDQUF1QyxFQUFFLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7YUFBTSxDQUFDO1lBQ04sWUFBWSxDQUFDLDZDQUE2QyxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUN4RyxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsU0FBUztJQUN2QixNQUFNLE1BQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQztJQUU5Qiw4RUFBOEU7SUFDOUUsMkVBQTJFO0lBQzNFLDhFQUE4RTtJQUM5RSw4RUFBOEU7SUFDOUUseUJBQXlCO0lBQ3pCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQy9DLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUV2RyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxVQUFVLENBQUMsaUZBQWlGLENBQUMsQ0FBQztRQUM5RixNQUFNLElBQUksS0FBSyxDQUFDLDJFQUEyRSxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLFlBQVksQ0FBQyw0REFBNEQsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxVQUFVLENBQUMsbUNBQW1DLENBQUMsQ0FBQztJQUVoRCxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLEVBQUUsS0FBSyxFQUFFO0tBQ2hCLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsU0FBUyxlQUFlLENBQUMsTUFBYztJQUNyQyxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsR0FBRyxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsR0FBRyxFQUFFLGtCQUFrQixFQUFFLEtBQUssRUFBRTtLQUNsRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsT0FBZ0M7SUFDbkUsTUFBTSxNQUFNLEdBQUcsU0FBUyxFQUFFLENBQUM7SUFDM0IsSUFBSSxPQUFPLENBQUMsU0FBUyxLQUFLLEtBQUssRUFBRSxDQUFDO1FBQ2hDLHVFQUF1RTtRQUN2RSw2RUFBNkU7UUFDN0UsbUVBQW1FO1FBQ25FLHVCQUF1QixDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDdEUsT0FBTyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgaXNTZXNzaW9uVXNhYmxlLCBsb2FkU2Vzc2lvbiB9IGZyb20gJy4vY3JlZGVudGlhbC1zdG9yZS5qcyc7XG5pbXBvcnQgeyBwcmludERlYnVnLCBwcmludEVycm9yLCBwcmludFdhcm5pbmcgfSBmcm9tICcuL291dHB1dC11dGlscy5qcyc7XG5pbXBvcnQgeyBhc3NlcnRTc2xEaXNhYmxlQWxsb3dlZCwgaXNQcm9kdWN0aW9uRW52IH0gZnJvbSAnLi90bHMuanMnO1xuaW1wb3J0IHsgdHlwZSBDb25maWcgfSBmcm9tICcuLi90eXBlcy9pbmRleC5qcyc7XG5cbi8vIEVTTSBoYXMgbm8gX19kaXJuYW1lOyBkZXJpdmUgaXQgZnJvbSB0aGlzIG1vZHVsZSdzIFVSTC5cbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybCkpO1xuXG5leHBvcnQgdHlwZSB7IENvbmZpZyB9O1xuXG4vKipcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiDigJQgQVBJIGVuZHBvaW50IHBhdGhzIGFuZCBjb25uZWN0aW9uIHNldHRpbmdzLlxuICovXG5jb25zdCBkZWZhdWx0Q29uZmlnOiBPbWl0PENvbmZpZywgJ2F1dGgnPiA9IHtcbiAgYXBpOiB7XG4gICAgYmFzZVVybDogJ2h0dHBzOi8vbG9jYWxob3N0Ojg0NDMnLFxuICAgIHRpbWVvdXQ6IDMwXzAwMCxcbiAgICBwaXBlbGluZVVybDogJy9hcGkvcGlwZWxpbmVzJyxcbiAgICBwaXBlbGluZVRlbXBsYXRlVXJsOiAnL2FwaS9waXBlbGluZS10ZW1wbGF0ZXMnLFxuICAgIHBsdWdpblVybDogJy9hcGkvcGx1Z2lucycsXG4gICAgcGx1Z2luVXBsb2FkVXJsOiAnL2FwaS9wbHVnaW5zL3VwbG9hZCcsXG4gICAgcmVqZWN0VW5hdXRob3JpemVkOiB0cnVlLFxuICB9LFxufTtcblxuLyoqIFVzZXIgY29uZmlnIGZpbGUgcGF0aDogfi8ucGlwZWxpbmUtbWFuYWdlci9jb25maWcueW1sICovXG5jb25zdCBVU0VSX0NPTkZJR19QQVRIID0gcGF0aC5qb2luKG9zLmhvbWVkaXIoKSwgJy5waXBlbGluZS1tYW5hZ2VyJywgJ2NvbmZpZy55bWwnKTtcblxuLyoqXG4gKiBMb2FkIGEgWUFNTCBjb25maWcgZmlsZSBhbmQgbWVyZ2UgaXRzIGBhcGlgIHNlY3Rpb24gaW50byB0aGUgY29uZmlnLlxuICogUmV0dXJucyB0aGUgbWVyZ2VkIGNvbmZpZyBvciB0aGUgb3JpZ2luYWwgaWYgZmlsZSBkb2Vzbid0IGV4aXN0IG9yIGZhaWxzLlxuICovXG5mdW5jdGlvbiBsb2FkQ29uZmlnRmlsZShmaWxlUGF0aDogc3RyaW5nLCBjb25maWc6IE9taXQ8Q29uZmlnLCAnYXV0aCc+KTogT21pdDxDb25maWcsICdhdXRoJz4ge1xuICBpZiAoIWZzLmV4aXN0c1N5bmMoZmlsZVBhdGgpKSByZXR1cm4gY29uZmlnO1xuXG4gIHRyeSB7XG4gICAgcHJpbnREZWJ1ZygnTG9hZGluZyBjb25maWd1cmF0aW9uJywgeyBwYXRoOiBmaWxlUGF0aCB9KTtcbiAgICBjb25zdCBwYXJzZWQgPSB5YW1sLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhmaWxlUGF0aCwgJ3V0Zi04JykpO1xuICAgIGlmIChwYXJzZWQ/LmF1dGgpIHtcbiAgICAgIHByaW50V2FybmluZygnQXV0aCBzZWN0aW9uIGluIGNvbmZpZyBmaWxlIGlzIGlnbm9yZWQg4oCUIHVzZSBQTEFURk9STV9UT0tFTiBlbnYgdmFyJyk7XG4gICAgfVxuICAgIHJldHVybiB7IGFwaTogeyAuLi5jb25maWcuYXBpLCAuLi5wYXJzZWQ/LmFwaSB9IH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcHJpbnRXYXJuaW5nKCdGYWlsZWQgdG8gbG9hZCBjb25maWcgZmlsZSwgdXNpbmcgZGVmYXVsdHMnLCB7XG4gICAgICBwYXRoOiBmaWxlUGF0aCxcbiAgICAgIGVycm9yOiBlcnJvck1lc3NhZ2UoZXJyb3IpLFxuICAgIH0pO1xuICAgIHJldHVybiBjb25maWc7XG4gIH1cbn1cblxuLyoqXG4gKiBMb2FkIGNvbmZpZ3VyYXRpb24gZnJvbSBmaWxlcyBhbmQgZW52aXJvbm1lbnQuXG4gKlxuICogUHJpb3JpdHkgKGxhc3Qgd2lucyk6XG4gKiAxLiBCdWlsdC1pbiBkZWZhdWx0c1xuICogMi4gVXNlciBjb25maWcgZmlsZTogfi8ucGlwZWxpbmUtbWFuYWdlci9jb25maWcueW1sXG4gKiAzLiBQcm9qZWN0IGNvbmZpZyBmaWxlOiBDTElfQ09ORklHX1BBVEggb3IgLi9jb25maWcueW1sXG4gKiA0LiBFbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqXG4gKiBBdXRoIHRva2VuIGNvbWVzIGZyb20gUExBVEZPUk1fVE9LRU4sIGVsc2UgdGhlIHN0b3JlZCBgYXV0aCBsb2dpbmAgc2Vzc2lvbiDigJRcbiAqIG5ldmVyIGZyb20gYSBjb25maWcgZmlsZS5cbiAqL1xuLyoqXG4gKiBSZXNvbHZlIHRoZSBBUEkvY29ubmVjdGlvbiBjb25maWcgKGJhc2UgVVJMLCBTU0wsIHRpbWVvdXRzKSBmcm9tIGZpbGVzIGFuZFxuICogZW52aXJvbm1lbnQgV0lUSE9VVCByZXF1aXJpbmcgYFBMQVRGT1JNX1RPS0VOYC5cbiAqXG4gKiBUaGlzIGlzIHRoZSB0b2tlbi1vcHRpb25hbCBzbGljZSBvZiB7QGxpbmsgZ2V0Q29uZmlnfS4gVGhlIHByZS1hdXRoIGxvZ2luIHN0ZXBcbiAqIChgZW5zdXJlUGxhdGZvcm1Ub2tlbmApIG5lZWRzIHRoZSByZXNvbHZlZCBiYXNlIFVSTCB0byBQT1NUIGAvYXBpL2F1dGgvbG9naW5gXG4gKiAqYmVmb3JlKiBhbnkgdG9rZW4gZXhpc3RzIOKAlCBjYWxsaW5nIGBnZXRDb25maWcoKWAgdGhlcmUgd291bGQgdGhyb3cgb24gdGhlXG4gKiBtaXNzaW5nIHRva2VuIGFuZCBtYWtlIGlubGluZS1sb2dpbiBkZWFkLW9uLWFycml2YWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlDb25maWcoKTogT21pdDxDb25maWcsICdhdXRoJz4ge1xuICBjb25zdCBwcm9qZWN0Q29uZmlnUGF0aCA9IHByb2Nlc3MuZW52LkNMSV9DT05GSUdfUEFUSCB8fCBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vY29uZmlnLnltbCcpO1xuXG4gIC8vIExheWVyIDE6IGRlZmF1bHRzIOKGkiBMYXllciAyOiB1c2VyIGNvbmZpZyDihpIgTGF5ZXIgMzogcHJvamVjdCBjb25maWcuXG4gIC8vIGBhcGlgIGlzIGNvcGllZCB0b286IGEgc2hhbGxvdyBgeyAuLi5kZWZhdWx0Q29uZmlnIH1gIHNoYXJlcyB0aGUgU0FNRSBgYXBpYFxuICAvLyBvYmplY3QsIHNvIHRoZSBgUExBVEZPUk1fQkFTRV9VUkxgIGFzc2lnbm1lbnQgYmVsb3cgbXV0YXRlZCB0aGUgbW9kdWxlLWxldmVsXG4gIC8vIGRlZmF1bHRzIGFuZCBsZWFrZWQgb25lIGNhbGxlcidzIGJhc2UgVVJMIGludG8gZXZlcnkgbGF0ZXIgcmVzb2x1dGlvbi5cbiAgbGV0IGNvbmZpZyA9IGxvYWRDb25maWdGaWxlKFVTRVJfQ09ORklHX1BBVEgsIHsgYXBpOiB7IC4uLmRlZmF1bHRDb25maWcuYXBpIH0gfSk7XG4gIGNvbmZpZyA9IGxvYWRDb25maWdGaWxlKHByb2plY3RDb25maWdQYXRoLCBjb25maWcpO1xuXG4gIC8vIExheWVyIDQ6IGVudmlyb25tZW50IHZhcmlhYmxlIG92ZXJyaWRlc1xuICBpZiAocHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwpIHtcbiAgICBjb25maWcuYXBpLmJhc2VVcmwgPSBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTDtcbiAgICBwcmludERlYnVnKCdVc2luZyBQTEFURk9STV9CQVNFX1VSTCBmcm9tIGVudmlyb25tZW50JywgeyBiYXNlVXJsOiBjb25maWcuYXBpLmJhc2VVcmwgfSk7XG4gIH1cblxuICAvLyBgTk9ERV9UTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wYCBpcyBob3cgYSBkZXYgc3ludGgncyByZWxheGF0aW9uIHJlYWNoZXMgdGhlXG4gIC8vIENvZGVCdWlsZCBzeW50aCAocGlwZWxpbmUtY29yZSBwcm9wYWdhdGVzIGl0IGludG8gZXZlcnkgc3RlcCwgYW5kIHJlZnVzZXMgdG9cbiAgLy8gc2V0IGl0IGluIHByb2R1Y3Rpb24pIOKAlCBob25vdXIgaXQgbGlrZSBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRCwgdW5kZXIgdGhlXG4gIC8vIHNhbWUgcHJvZHVjdGlvbiByZWZ1c2FsLCBzbyBubyBidWlsZCBoYXMgdG8gcGFzcyBgLS1uby12ZXJpZnktc3NsYC5cbiAgY29uc3QgdGxzUmVqZWN0ID0gcHJvY2Vzcy5lbnYuVExTX1JFSkVDVF9VTkFVVEhPUklaRUQgPz8gKHByb2Nlc3MuZW52Lk5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUQgPT09ICcwJyA/ICcwJyA6IHVuZGVmaW5lZCk7XG4gIGlmICh0bHNSZWplY3QgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRpc2FibGUgPSB0bHNSZWplY3QgPT09ICcwJztcbiAgICBpZiAoZGlzYWJsZSAmJiBpc1Byb2R1Y3Rpb25FbnYoKSkge1xuICAgICAgcHJpbnRXYXJuaW5nKCdJZ25vcmluZyBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wIGluIHByb2R1Y3Rpb24g4oCUIFNTTCB2ZXJpZmljYXRpb24gcmVtYWlucyBlbmFibGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZy5hcGkucmVqZWN0VW5hdXRob3JpemVkID0gIWRpc2FibGU7XG4gICAgICBpZiAoZGlzYWJsZSkge1xuICAgICAgICBwcmludFdhcm5pbmcoJ1NTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGRpc2FibGVkIHZpYSBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wIC8gTk9ERV9UTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52LlVQTE9BRF9USU1FT1VUKSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQocHJvY2Vzcy5lbnYuVVBMT0FEX1RJTUVPVVQsIDEwKTtcbiAgICBpZiAoIWlzTmFOKHBhcnNlZCkgJiYgcGFyc2VkID4gMCkge1xuICAgICAgY29uZmlnLmFwaS51cGxvYWRUaW1lb3V0ID0gcGFyc2VkO1xuICAgICAgcHJpbnREZWJ1ZygnVXNpbmcgVVBMT0FEX1RJTUVPVVQgZnJvbSBlbnZpcm9ubWVudCcsIHsgdXBsb2FkVGltZW91dDogYCR7cGFyc2VkfW1zYCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIFVQTE9BRF9USU1FT1VUIHZhbHVlLCB1c2luZyBkZWZhdWx0JywgeyBwcm92aWRlZDogcHJvY2Vzcy5lbnYuVVBMT0FEX1RJTUVPVVQgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZygpOiBDb25maWcge1xuICBjb25zdCBjb25maWcgPSBnZXRBcGlDb25maWcoKTtcblxuICAvLyBQTEFURk9STV9UT0tFTiB3aW5zIChhbiBhY2Nlc3Mga2V5IGluIENJLCBvciBhbiBleHBsaWNpdCBleHBvcnQpOyBvdGhlcndpc2VcbiAgLy8gZmFsbCBiYWNrIHRvIHRoZSBzZXNzaW9uIGBhdXRoIGxvZ2luYCBzdG9yZWQgZm9yIFRISVMgcGxhdGZvcm0uIEEgc3RvcmVkXG4gIC8vIHNlc3Npb24gdGhhdCBoYXMgYWxyZWFkeSBleHBpcmVkIGlzIGlnbm9yZWQgcmF0aGVyIHRoYW4gc2VudCBhbmQgcmVqZWN0ZWQg4oCUXG4gIC8vIHRoZSBhc3luYyBwYXRoIChgcmVzb2x2ZVRva2VuYCkgcmVmcmVzaGVzIGl0LCBhbmQgZXZlcnl0aGluZyBlbHNlIHRlbGxzIHRoZVxuICAvLyB1c2VyIHRvIHNpZ24gaW4gYWdhaW4uXG4gIGNvbnN0IHN0b3JlZCA9IGxvYWRTZXNzaW9uKGNvbmZpZy5hcGkuYmFzZVVybCk7XG4gIGNvbnN0IHRva2VuID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4gfHwgKGlzU2Vzc2lvblVzYWJsZShzdG9yZWQpID8gc3RvcmVkLmFjY2Vzc1Rva2VuIDogdW5kZWZpbmVkKTtcblxuICBpZiAoIXRva2VuKSB7XG4gICAgcHJpbnRFcnJvcignTm90IHNpZ25lZCBpbjogbm8gUExBVEZPUk1fVE9LRU4sIGFuZCBubyB2YWxpZCBzdG9yZWQgc2Vzc2lvbiBmb3IgdGhpcyBwbGF0Zm9ybScpO1xuICAgIHRocm93IG5ldyBFcnJvcignUnVuIFwicGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luXCIsIG9yIHNldCBQTEFURk9STV9UT0tFTiB0byBhbiBhY2Nlc3Mga2V5Jyk7XG4gIH1cblxuICBpZiAodG9rZW4udHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUExBVEZPUk1fVE9LRU4gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgfVxuXG4gIGlmICh0b2tlbi5pbmNsdWRlcygnICcpKSB7XG4gICAgcHJpbnRXYXJuaW5nKCdQTEFURk9STV9UT0tFTiBjb250YWlucyB3aGl0ZXNwYWNlIOKAlCB0aGlzIG1heSBjYXVzZSBpc3N1ZXMnKTtcbiAgfVxuXG4gIHByaW50RGVidWcoJ0NvbmZpZ3VyYXRpb24gbG9hZGVkIHN1Y2Nlc3NmdWxseScpO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGF1dGg6IHsgdG9rZW4gfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBjb3B5IG9mIGBjb25maWdgIHdpdGggU1NMIHZlcmlmaWNhdGlvbiBkaXNhYmxlZC4gTW9kdWxlLXByaXZhdGUg4oCUIHRoZVxuICogb25seSBjYWxsZXIgaXMgYGdldENvbmZpZ1dpdGhPcHRpb25zYCBiZWxvdy5cbiAqL1xuZnVuY3Rpb24gd2l0aFNTTERpc2FibGVkKGNvbmZpZzogQ29uZmlnKTogQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgYXBpOiB7IC4uLmNvbmZpZy5hcGksIHJlamVjdFVuYXV0aG9yaXplZDogZmFsc2UgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2FkIGNvbmZpZ3VyYXRpb24sIG9wdGlvbmFsbHkgZGlzYWJsaW5nIFNTTCBiYXNlZCBvbiBjb21tYW5kIG9wdGlvbnMuXG4gKiBSZXBsYWNlcyB0aGUgcmVwZWF0ZWQgcGF0dGVybjpcbiAqICAgYG9wdGlvbnMudmVyaWZ5U3NsID09PSBmYWxzZSA/IHdpdGhTU0xEaXNhYmxlZChnZXRDb25maWcoKSkgOiBnZXRDb25maWcoKWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ1dpdGhPcHRpb25zKG9wdGlvbnM6IHsgdmVyaWZ5U3NsPzogYm9vbGVhbiB9KTogQ29uZmlnIHtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGlmIChvcHRpb25zLnZlcmlmeVNzbCA9PT0gZmFsc2UpIHtcbiAgICAvLyBFdmVyeSBhdXRoZW50aWNhdGVkIGNvbW1hbmQgZmxvd3MgaXRzIHRva2VuIHRocm91Z2ggaGVyZSDigJQgcmVmdXNlIHRvXG4gICAgLy8gZGlzYWJsZSBjZXJ0IHZlcmlmaWNhdGlvbiBpbiBwcm9kdWN0aW9uIChtaXJyb3JzIHRoZSBsb2dpbi9yZW5ld2FsIGd1YXJkcylcbiAgICAvLyBzbyBhIE1JVE0gY2FuJ3QgaGFydmVzdCB0aGUgQmVhcmVyIEpXVC4gTm8tb3AgaW4gbm9uLXByb2R1Y3Rpb24uXG4gICAgYXNzZXJ0U3NsRGlzYWJsZUFsbG93ZWQoJ2F1dGhlbnRpY2F0ZWQgQVBJIGNsaWVudCAoLS1uby12ZXJpZnktc3NsKScpO1xuICAgIHJldHVybiB3aXRoU1NMRGlzYWJsZWQoY29uZmlnKTtcbiAgfVxuICByZXR1cm4gY29uZmlnO1xufVxuIl19
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLWxvYWRlci5qcyIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NvbmZpZy1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEtBQUssRUFBRSxNQUFNLElBQUksQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3pDLE9BQU8sS0FBSyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQ3pCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsZUFBZSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3BFLE9BQU8sRUFBZSxNQUFNLG1CQUFtQixDQUFDO0FBRWhELDBEQUEwRDtBQUMxRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBSS9EOztHQUVHO0FBQ0gsTUFBTSxhQUFhLEdBQXlCO0lBQzFDLEdBQUcsRUFBRTtRQUNILE9BQU8sRUFBRSx3QkFBd0I7UUFDakMsT0FBTyxFQUFFLE1BQU07UUFDZixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLG1CQUFtQixFQUFFLHlCQUF5QjtRQUM5QyxTQUFTLEVBQUUsY0FBYztRQUN6QixlQUFlLEVBQUUscUJBQXFCO1FBQ3RDLGtCQUFrQixFQUFFLElBQUk7S0FDekI7Q0FDRixDQUFDO0FBRUYs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Q25FLHVCQUF1QixDQUFDLDRDQUE0QyxDQUFDLENBQUM7UUFDdEUsT0FBTyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE9BQU8sTUFBTSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCAqIGFzIG9zIGZyb20gJ29zJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ3lhbWwnO1xuaW1wb3J0IHsgYWN0aXZlUGxhdGZvcm0sIGlzU2Vzc2lvblVzYWJsZSwgbG9hZFNlc3Npb24gfSBmcm9tICcuL2NyZWRlbnRpYWwtc3RvcmUuanMnO1xuaW1wb3J0IHsgcHJpbnREZWJ1ZywgcHJpbnRFcnJvciwgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgYXNzZXJ0U3NsRGlzYWJsZUFsbG93ZWQsIGlzUHJvZHVjdGlvbkVudiB9IGZyb20gJy4vdGxzLmpzJztcbmltcG9ydCB7IHR5cGUgQ29uZmlnIH0gZnJvbSAnLi4vdHlwZXMvaW5kZXguanMnO1xuXG4vLyBFU00gaGFzIG5vIF9fZGlybmFtZTsgZGVyaXZlIGl0IGZyb20gdGhpcyBtb2R1bGUncyBVUkwuXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuZXhwb3J0IHR5cGUgeyBDb25maWcgfTtcblxuLyoqXG4gKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24g4oCUIEFQSSBlbmRwb2ludCBwYXRocyBhbmQgY29ubmVjdGlvbiBzZXR0aW5ncy5cbiAqL1xuY29uc3QgZGVmYXVsdENvbmZpZzogT21pdDxDb25maWcsICdhdXRoJz4gPSB7XG4gIGFwaToge1xuICAgIGJhc2VVcmw6ICdodHRwczovL2xvY2FsaG9zdDo4NDQzJyxcbiAgICB0aW1lb3V0OiAzMF8wMDAsXG4gICAgcGlwZWxpbmVVcmw6ICcvYXBpL3BpcGVsaW5lcycsXG4gICAgcGlwZWxpbmVUZW1wbGF0ZVVybDogJy9hcGkvcGlwZWxpbmUtdGVtcGxhdGVzJyxcbiAgICBwbHVnaW5Vcmw6ICcvYXBpL3BsdWdpbnMnLFxuICAgIHBsdWdpblVwbG9hZFVybDogJy9hcGkvcGx1Z2lucy91cGxvYWQnLFxuICAgIHJlamVjdFVuYXV0aG9yaXplZDogdHJ1ZSxcbiAgfSxcbn07XG5cbi8qKiBVc2VyIGNvbmZpZyBmaWxlIHBhdGg6IH4vLnBpcGVsaW5lLW1hbmFnZXIvY29uZmlnLnltbCAqL1xuY29uc3QgVVNFUl9DT05GSUdfUEFUSCA9IHBhdGguam9pbihvcy5ob21lZGlyKCksICcucGlwZWxpbmUtbWFuYWdlcicsICdjb25maWcueW1sJyk7XG5cbi8qKlxuICogTG9hZCBhIFlBTUwgY29uZmlnIGZpbGUgYW5kIG1lcmdlIGl0cyBgYXBpYCBzZWN0aW9uIGludG8gdGhlIGNvbmZpZy5cbiAqIFJldHVybnMgdGhlIG1lcmdlZCBjb25maWcgb3IgdGhlIG9yaWdpbmFsIGlmIGZpbGUgZG9lc24ndCBleGlzdCBvciBmYWlscy5cbiAqL1xuZnVuY3Rpb24gbG9hZENvbmZpZ0ZpbGUoZmlsZVBhdGg6IHN0cmluZywgY29uZmlnOiBPbWl0PENvbmZpZywgJ2F1dGgnPik6IE9taXQ8Q29uZmlnLCAnYXV0aCc+IHtcbiAgaWYgKCFmcy5leGlzdHNTeW5jKGZpbGVQYXRoKSkgcmV0dXJuIGNvbmZpZztcblxuICB0cnkge1xuICAgIHByaW50RGVidWcoJ0xvYWRpbmcgY29uZmlndXJhdGlvbicsIHsgcGF0aDogZmlsZVBhdGggfSk7XG4gICAgY29uc3QgcGFyc2VkID0geWFtbC5wYXJzZShmcy5yZWFkRmlsZVN5bmMoZmlsZVBhdGgsICd1dGYtOCcpKTtcbiAgICBpZiAocGFyc2VkPy5hdXRoKSB7XG4gICAgICBwcmludFdhcm5pbmcoJ0F1dGggc2VjdGlvbiBpbiBjb25maWcgZmlsZSBpcyBpZ25vcmVkIOKAlCB1c2UgUExBVEZPUk1fVE9LRU4gZW52IHZhcicpO1xuICAgIH1cbiAgICByZXR1cm4geyBhcGk6IHsgLi4uY29uZmlnLmFwaSwgLi4ucGFyc2VkPy5hcGkgfSB9O1xuICB9IGNhdGNoIChlcnJvcikge1xuICAgIHByaW50V2FybmluZygnRmFpbGVkIHRvIGxvYWQgY29uZmlnIGZpbGUsIHVzaW5nIGRlZmF1bHRzJywge1xuICAgICAgcGF0aDogZmlsZVBhdGgsXG4gICAgICBlcnJvcjogZXJyb3JNZXNzYWdlKGVycm9yKSxcbiAgICB9KTtcbiAgICByZXR1cm4gY29uZmlnO1xuICB9XG59XG5cbi8qKlxuICogTG9hZCBjb25maWd1cmF0aW9uIGZyb20gZmlsZXMgYW5kIGVudmlyb25tZW50LlxuICpcbiAqIFByaW9yaXR5IChsYXN0IHdpbnMpOlxuICogMS4gQnVpbHQtaW4gZGVmYXVsdHNcbiAqIDIuIFVzZXIgY29uZmlnIGZpbGU6IH4vLnBpcGVsaW5lLW1hbmFnZXIvY29uZmlnLnltbFxuICogMy4gUHJvamVjdCBjb25maWcgZmlsZTogQ0xJX0NPTkZJR19QQVRIIG9yIC4vY29uZmlnLnltbFxuICogNC4gVGhlIHBsYXRmb3JtIHRoZSBsYXN0IGBhdXRoIGxvZ2luYCBzaWduZWQgaW4gdG8gKGJhc2UgVVJMIG9ubHkpXG4gKiA1LiBFbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAqXG4gKiBBdXRoIHRva2VuIGNvbWVzIGZyb20gUExBVEZPUk1fVE9LRU4sIGVsc2UgdGhlIHN0b3JlZCBgYXV0aCBsb2dpbmAgc2Vzc2lvbiDigJRcbiAqIG5ldmVyIGZyb20gYSBjb25maWcgZmlsZS5cbiAqL1xuLyoqXG4gKiBSZXNvbHZlIHRoZSBBUEkvY29ubmVjdGlvbiBjb25maWcgKGJhc2UgVVJMLCBTU0wsIHRpbWVvdXRzKSBmcm9tIGZpbGVzIGFuZFxuICogZW52aXJvbm1lbnQgV0lUSE9VVCByZXF1aXJpbmcgYFBMQVRGT1JNX1RPS0VOYC5cbiAqXG4gKiBUaGlzIGlzIHRoZSB0b2tlbi1vcHRpb25hbCBzbGljZSBvZiB7QGxpbmsgZ2V0Q29uZmlnfS4gVGhlIHByZS1hdXRoIGxvZ2luIHN0ZXBcbiAqIChgZW5zdXJlUGxhdGZvcm1Ub2tlbmApIG5lZWRzIHRoZSByZXNvbHZlZCBiYXNlIFVSTCB0byBQT1NUIGAvYXBpL2F1dGgvbG9naW5gXG4gKiAqYmVmb3JlKiBhbnkgdG9rZW4gZXhpc3RzIOKAlCBjYWxsaW5nIGBnZXRDb25maWcoKWAgdGhlcmUgd291bGQgdGhyb3cgb24gdGhlXG4gKiBtaXNzaW5nIHRva2VuIGFuZCBtYWtlIGlubGluZS1sb2dpbiBkZWFkLW9uLWFycml2YWwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcGlDb25maWcoKTogT21pdDxDb25maWcsICdhdXRoJz4ge1xuICBjb25zdCBwcm9qZWN0Q29uZmlnUGF0aCA9IHByb2Nlc3MuZW52LkNMSV9DT05GSUdfUEFUSCB8fCBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4vY29uZmlnLnltbCcpO1xuXG4gIC8vIExheWVyIDE6IGRlZmF1bHRzIOKGkiBMYXllciAyOiB1c2VyIGNvbmZpZyDihpIgTGF5ZXIgMzogcHJvamVjdCBjb25maWcuXG4gIC8vIGBhcGlgIGlzIGNvcGllZCB0b286IGEgc2hhbGxvdyBgeyAuLi5kZWZhdWx0Q29uZmlnIH1gIHNoYXJlcyB0aGUgU0FNRSBgYXBpYFxuICAvLyBvYmplY3QsIHNvIHRoZSBgUExBVEZPUk1fQkFTRV9VUkxgIGFzc2lnbm1lbnQgYmVsb3cgbXV0YXRlZCB0aGUgbW9kdWxlLWxldmVsXG4gIC8vIGRlZmF1bHRzIGFuZCBsZWFrZWQgb25lIGNhbGxlcidzIGJhc2UgVVJMIGludG8gZXZlcnkgbGF0ZXIgcmVzb2x1dGlvbi5cbiAgbGV0IGNvbmZpZyA9IGxvYWRDb25maWdGaWxlKFVTRVJfQ09ORklHX1BBVEgsIHsgYXBpOiB7IC4uLmRlZmF1bHRDb25maWcuYXBpIH0gfSk7XG4gIGNvbmZpZyA9IGxvYWRDb25maWdGaWxlKHByb2plY3RDb25maWdQYXRoLCBjb25maWcpO1xuXG4gIC8vIExheWVyIDQ6IHRoZSBwbGF0Zm9ybSB0aGUgbGFzdCBgYXV0aCBsb2dpbmAgc2lnbmVkIGluIHRvLiBgYXV0aCBsb2dpbiAtLXVybCBYYFxuICAvLyBzdG9yZXMgaXRzIHNlc3Npb24gdW5kZXIgWCwgc28gdGhlIGNvbW1hbmRzIGFmdGVyIGl0IG11c3QgdGFsayB0byBYIOKAlCBoYWQgdGhlXG4gIC8vIGNvbmZpZyBmaWxlcyB3b24gaGVyZSwgZXZlcnkgY29tbWFuZCB3b3VsZCBsb29rIGZvciB0aGUgc2Vzc2lvbiB1bmRlciBhXG4gIC8vIGRpZmZlcmVudCBVUkwgYW5kIHJlcG9ydCBcIk5vdCBzaWduZWQgaW5cIiByaWdodCBhZnRlciBhIHN1Y2Nlc3NmdWwgc2lnbi1pbi5cbiAgY29uc3Qgc2lnbmVkSW5UbyA9IGFjdGl2ZVBsYXRmb3JtKCk7XG4gIGlmIChzaWduZWRJblRvKSB7XG4gICAgY29uZmlnLmFwaS5iYXNlVXJsID0gc2lnbmVkSW5UbztcbiAgICBwcmludERlYnVnKCdVc2luZyB0aGUgcGxhdGZvcm0gZnJvbSBcImF1dGggbG9naW5cIicsIHsgYmFzZVVybDogc2lnbmVkSW5UbyB9KTtcbiAgfVxuXG4gIC8vIExheWVyIDU6IGVudmlyb25tZW50IHZhcmlhYmxlIG92ZXJyaWRlc1xuICBpZiAocHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwpIHtcbiAgICBjb25maWcuYXBpLmJhc2VVcmwgPSBwcm9jZXNzLmVudi5QTEFURk9STV9CQVNFX1VSTDtcbiAgICBwcmludERlYnVnKCdVc2luZyBQTEFURk9STV9CQVNFX1VSTCBmcm9tIGVudmlyb25tZW50JywgeyBiYXNlVXJsOiBjb25maWcuYXBpLmJhc2VVcmwgfSk7XG4gIH1cblxuICAvLyBgTk9ERV9UTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wYCBpcyBob3cgYSBkZXYgc3ludGgncyByZWxheGF0aW9uIHJlYWNoZXMgdGhlXG4gIC8vIENvZGVCdWlsZCBzeW50aCAocGlwZWxpbmUtY29yZSBwcm9wYWdhdGVzIGl0IGludG8gZXZlcnkgc3RlcCwgYW5kIHJlZnVzZXMgdG9cbiAgLy8gc2V0IGl0IGluIHByb2R1Y3Rpb24pIOKAlCBob25vdXIgaXQgbGlrZSBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRCwgdW5kZXIgdGhlXG4gIC8vIHNhbWUgcHJvZHVjdGlvbiByZWZ1c2FsLCBzbyBubyBidWlsZCBoYXMgdG8gcGFzcyBgLS1uby12ZXJpZnktc3NsYC5cbiAgY29uc3QgdGxzUmVqZWN0ID0gcHJvY2Vzcy5lbnYuVExTX1JFSkVDVF9VTkFVVEhPUklaRUQgPz8gKHByb2Nlc3MuZW52Lk5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUQgPT09ICcwJyA/ICcwJyA6IHVuZGVmaW5lZCk7XG4gIGlmICh0bHNSZWplY3QgIT09IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IGRpc2FibGUgPSB0bHNSZWplY3QgPT09ICcwJztcbiAgICBpZiAoZGlzYWJsZSAmJiBpc1Byb2R1Y3Rpb25FbnYoKSkge1xuICAgICAgcHJpbnRXYXJuaW5nKCdJZ25vcmluZyBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wIGluIHByb2R1Y3Rpb24g4oCUIFNTTCB2ZXJpZmljYXRpb24gcmVtYWlucyBlbmFibGVkJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbmZpZy5hcGkucmVqZWN0VW5hdXRob3JpemVkID0gIWRpc2FibGU7XG4gICAgICBpZiAoZGlzYWJsZSkge1xuICAgICAgICBwcmludFdhcm5pbmcoJ1NTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uIGRpc2FibGVkIHZpYSBUTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wIC8gTk9ERV9UTFNfUkVKRUNUX1VOQVVUSE9SSVpFRD0wJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaWYgKHByb2Nlc3MuZW52LlVQTE9BRF9USU1FT1VUKSB7XG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VJbnQocHJvY2Vzcy5lbnYuVVBMT0FEX1RJTUVPVVQsIDEwKTtcbiAgICBpZiAoIWlzTmFOKHBhcnNlZCkgJiYgcGFyc2VkID4gMCkge1xuICAgICAgY29uZmlnLmFwaS51cGxvYWRUaW1lb3V0ID0gcGFyc2VkO1xuICAgICAgcHJpbnREZWJ1ZygnVXNpbmcgVVBMT0FEX1RJTUVPVVQgZnJvbSBlbnZpcm9ubWVudCcsIHsgdXBsb2FkVGltZW91dDogYCR7cGFyc2VkfW1zYCB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgcHJpbnRXYXJuaW5nKCdJbnZhbGlkIFVQTE9BRF9USU1FT1VUIHZhbHVlLCB1c2luZyBkZWZhdWx0JywgeyBwcm92aWRlZDogcHJvY2Vzcy5lbnYuVVBMT0FEX1RJTUVPVVQgfSk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZygpOiBDb25maWcge1xuICBjb25zdCBjb25maWcgPSBnZXRBcGlDb25maWcoKTtcblxuICAvLyBQTEFURk9STV9UT0tFTiB3aW5zIChhbiBhY2Nlc3Mga2V5IGluIENJLCBvciBhbiBleHBsaWNpdCBleHBvcnQpOyBvdGhlcndpc2VcbiAgLy8gZmFsbCBiYWNrIHRvIHRoZSBzZXNzaW9uIGBhdXRoIGxvZ2luYCBzdG9yZWQgZm9yIFRISVMgcGxhdGZvcm0uIEEgc3RvcmVkXG4gIC8vIHNlc3Npb24gdGhhdCBoYXMgYWxyZWFkeSBleHBpcmVkIGlzIGlnbm9yZWQgcmF0aGVyIHRoYW4gc2VudCBhbmQgcmVqZWN0ZWQg4oCUXG4gIC8vIHRoZSBhc3luYyBwYXRoIChgcmVzb2x2ZVRva2VuYCkgcmVmcmVzaGVzIGl0LCBhbmQgZXZlcnl0aGluZyBlbHNlIHRlbGxzIHRoZVxuICAvLyB1c2VyIHRvIHNpZ24gaW4gYWdhaW4uXG4gIGNvbnN0IHN0b3JlZCA9IGxvYWRTZXNzaW9uKGNvbmZpZy5hcGkuYmFzZVVybCk7XG4gIGNvbnN0IHRva2VuID0gcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4gfHwgKGlzU2Vzc2lvblVzYWJsZShzdG9yZWQpID8gc3RvcmVkLmFjY2Vzc1Rva2VuIDogdW5kZWZpbmVkKTtcblxuICBpZiAoIXRva2VuKSB7XG4gICAgcHJpbnRFcnJvcignTm90IHNpZ25lZCBpbjogbm8gUExBVEZPUk1fVE9LRU4sIGFuZCBubyB2YWxpZCBzdG9yZWQgc2Vzc2lvbiBmb3IgdGhpcyBwbGF0Zm9ybScpO1xuICAgIHRocm93IG5ldyBFcnJvcignUnVuIFwicGlwZWxpbmUtbWFuYWdlciBhdXRoIGxvZ2luXCIsIG9yIHNldCBQTEFURk9STV9UT0tFTiB0byBhbiBhY2Nlc3Mga2V5Jyk7XG4gIH1cblxuICBpZiAodG9rZW4udHJpbSgpLmxlbmd0aCA9PT0gMCkge1xuICAgIHRocm93IG5ldyBFcnJvcignUExBVEZPUk1fVE9LRU4gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcnKTtcbiAgfVxuXG4gIGlmICh0b2tlbi5pbmNsdWRlcygnICcpKSB7XG4gICAgcHJpbnRXYXJuaW5nKCdQTEFURk9STV9UT0tFTiBjb250YWlucyB3aGl0ZXNwYWNlIOKAlCB0aGlzIG1heSBjYXVzZSBpc3N1ZXMnKTtcbiAgfVxuXG4gIHByaW50RGVidWcoJ0NvbmZpZ3VyYXRpb24gbG9hZGVkIHN1Y2Nlc3NmdWxseScpO1xuXG4gIHJldHVybiB7XG4gICAgLi4uY29uZmlnLFxuICAgIGF1dGg6IHsgdG9rZW4gfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBSZXR1cm4gYSBjb3B5IG9mIGBjb25maWdgIHdpdGggU1NMIHZlcmlmaWNhdGlvbiBkaXNhYmxlZC4gTW9kdWxlLXByaXZhdGUg4oCUIHRoZVxuICogb25seSBjYWxsZXIgaXMgYGdldENvbmZpZ1dpdGhPcHRpb25zYCBiZWxvdy5cbiAqL1xuZnVuY3Rpb24gd2l0aFNTTERpc2FibGVkKGNvbmZpZzogQ29uZmlnKTogQ29uZmlnIHtcbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgYXBpOiB7IC4uLmNvbmZpZy5hcGksIHJlamVjdFVuYXV0aG9yaXplZDogZmFsc2UgfSxcbiAgfTtcbn1cblxuLyoqXG4gKiBMb2FkIGNvbmZpZ3VyYXRpb24sIG9wdGlvbmFsbHkgZGlzYWJsaW5nIFNTTCBiYXNlZCBvbiBjb21tYW5kIG9wdGlvbnMuXG4gKiBSZXBsYWNlcyB0aGUgcmVwZWF0ZWQgcGF0dGVybjpcbiAqICAgYG9wdGlvbnMudmVyaWZ5U3NsID09PSBmYWxzZSA/IHdpdGhTU0xEaXNhYmxlZChnZXRDb25maWcoKSkgOiBnZXRDb25maWcoKWBcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldENvbmZpZ1dpdGhPcHRpb25zKG9wdGlvbnM6IHsgdmVyaWZ5U3NsPzogYm9vbGVhbiB9KTogQ29uZmlnIHtcbiAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG4gIGlmIChvcHRpb25zLnZlcmlmeVNzbCA9PT0gZmFsc2UpIHtcbiAgICAvLyBFdmVyeSBhdXRoZW50aWNhdGVkIGNvbW1hbmQgZmxvd3MgaXRzIHRva2VuIHRocm91Z2ggaGVyZSDigJQgcmVmdXNlIHRvXG4gICAgLy8gZGlzYWJsZSBjZXJ0IHZlcmlmaWNhdGlvbiBpbiBwcm9kdWN0aW9uIChtaXJyb3JzIHRoZSBsb2dpbi9yZW5ld2FsIGd1YXJkcylcbiAgICAvLyBzbyBhIE1JVE0gY2FuJ3QgaGFydmVzdCB0aGUgQmVhcmVyIEpXVC4gTm8tb3AgaW4gbm9uLXByb2R1Y3Rpb24uXG4gICAgYXNzZXJ0U3NsRGlzYWJsZUFsbG93ZWQoJ2F1dGhlbnRpY2F0ZWQgQVBJIGNsaWVudCAoLS1uby12ZXJpZnktc3NsKScpO1xuICAgIHJldHVybiB3aXRoU1NMRGlzYWJsZWQoY29uZmlnKTtcbiAgfVxuICByZXR1cm4gY29uZmlnO1xufVxuIl19
|
|
@@ -11,12 +11,20 @@ export interface StoredSession {
|
|
|
11
11
|
}
|
|
12
12
|
/** Where the sessions live — surfaced in help text and errors. */
|
|
13
13
|
export declare function credentialStorePath(): string;
|
|
14
|
+
/** The platform the last `auth login` signed in to, or undefined. */
|
|
15
|
+
export declare function activePlatform(): string | undefined;
|
|
16
|
+
/** Remember `baseUrl` as the platform later commands talk to. */
|
|
17
|
+
export declare function setActivePlatform(baseUrl: string): void;
|
|
14
18
|
/** Persist the session for `baseUrl`, replacing any previous one. */
|
|
15
19
|
export declare function saveSession(baseUrl: string, session: Omit<StoredSession, 'savedAt'>): void;
|
|
16
20
|
/** The stored session for `baseUrl`, or undefined. Expiry is NOT checked here —
|
|
17
21
|
* callers decide whether to use, refresh or ignore it. */
|
|
18
22
|
export declare function loadSession(baseUrl: string): StoredSession | undefined;
|
|
19
|
-
/**
|
|
23
|
+
/**
|
|
24
|
+
* Forget the session for `baseUrl` (sign-out, or a refresh the platform
|
|
25
|
+
* rejected). The active platform is kept: it is the platform the person chose,
|
|
26
|
+
* so the next `auth login` (whose `--url` defaults to it) signs back in there.
|
|
27
|
+
*/
|
|
20
28
|
export declare function clearSession(baseUrl: string): void;
|
|
21
29
|
/** True when the stored access token is still usable (with a little slack). */
|
|
22
30
|
export declare function isSessionUsable(session: StoredSession | undefined): session is StoredSession;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential-store.d.ts","sources":["../../src/utils/credential-store.ts"],"names":[],"mappings":"AAuCA,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"credential-store.d.ts","sources":["../../src/utils/credential-store.ts"],"names":[],"mappings":"AAuCA,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,iFAAiF;IACjF,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,4EAA4E;IAC5E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAcD,kEAAkE;AAClE,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAqCD,qEAAqE;AACrE,wBAAgB,cAAc,IAAI,MAAM,GAAG,SAAS,CAGnD;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAIvD;AAED,qEAAqE;AACrE,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,CAAC,GAAG,IAAI,CAK1F;AAED;2DAC2D;AAC3D,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAalD;AAED,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO,IAAI,aAAa,CAE5F;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CA2BzE"}
|