@pipeline-builder/pipeline-manager 4.4.6 → 4.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/agent/ai.d.ts +11 -0
- package/dist/agent/ai.d.ts.map +1 -1
- package/dist/agent/ai.js +47 -4
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -2
- package/dist/commands/create-pat.d.ts.map +1 -1
- package/dist/commands/create-pat.js +3 -1
- package/dist/commands/create-pipeline.d.ts.map +1 -1
- package/dist/commands/create-pipeline.js +11 -2
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +20 -2
- package/dist/commands/report.js +4 -4
- package/dist/commands/security-report.d.ts +42 -0
- package/dist/commands/security-report.d.ts.map +1 -0
- package/dist/commands/security-report.js +89 -0
- package/dist/commands/setup-events.d.ts.map +1 -1
- package/dist/commands/setup-events.js +14 -1
- package/dist/commands/store-token.d.ts +1 -0
- package/dist/commands/store-token.d.ts.map +1 -1
- package/dist/commands/store-token.js +45 -19
- package/dist/commands/synth.d.ts +7 -1
- package/dist/commands/synth.d.ts.map +1 -1
- package/dist/commands/synth.js +66 -4
- package/dist/commands/verify-plugins.d.ts +45 -0
- package/dist/commands/verify-plugins.d.ts.map +1 -0
- package/dist/commands/verify-plugins.js +134 -0
- package/dist/lambda/token-renew-handler.d.ts +3 -1
- package/dist/lambda/token-renew-handler.d.ts.map +1 -1
- package/dist/lambda/token-renew-handler.js +31 -5
- package/dist/templates/events-stack.json +10 -0
- package/dist/utils/api-client.d.ts.map +1 -1
- package/dist/utils/api-client.js +20 -3
- package/dist/utils/auth-utils.d.ts.map +1 -1
- package/dist/utils/auth-utils.js +3 -1
- package/dist/utils/cdk-utils.js +2 -2
- package/dist/utils/command-utils.d.ts.map +1 -1
- package/dist/utils/command-utils.js +5 -2
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +9 -4
- package/dist/utils/deploy-runner.d.ts +25 -0
- package/dist/utils/deploy-runner.d.ts.map +1 -1
- package/dist/utils/deploy-runner.js +34 -5
- package/dist/utils/device-auth.d.ts.map +1 -1
- package/dist/utils/device-auth.js +4 -3
- package/dist/utils/error-handler.d.ts.map +1 -1
- package/dist/utils/error-handler.js +8 -1
- package/dist/utils/pipeline-config.d.ts +3 -0
- package/dist/utils/pipeline-config.d.ts.map +1 -1
- package/dist/utils/pipeline-config.js +4 -3
- package/dist/utils/platform-secret.d.ts.map +1 -1
- package/dist/utils/platform-secret.js +3 -1
- package/dist/utils/plugin-resolver.d.ts +41 -3
- package/dist/utils/plugin-resolver.d.ts.map +1 -1
- package/dist/utils/plugin-resolver.js +125 -21
- package/dist/utils/registration-client.d.ts +28 -0
- package/dist/utils/registration-client.d.ts.map +1 -0
- package/dist/utils/registration-client.js +57 -0
- package/dist/utils/request-context.d.ts +11 -0
- package/dist/utils/request-context.d.ts.map +1 -0
- package/dist/utils/request-context.js +62 -0
- package/dist/utils/service-account.d.ts +6 -4
- package/dist/utils/service-account.d.ts.map +1 -1
- package/dist/utils/service-account.js +14 -9
- package/package.json +6 -5
|
@@ -14,6 +14,7 @@ import { sleep } from '@pipeline-builder/api-core';
|
|
|
14
14
|
import axios from 'axios';
|
|
15
15
|
import pico from 'picocolors';
|
|
16
16
|
import { printDebug, printInfo } from './output-utils.js';
|
|
17
|
+
import { requestCorrelationHeaders } from './request-context.js';
|
|
17
18
|
const { bold, cyan, dim, green } = pico;
|
|
18
19
|
/** Raised for every terminal outcome, so callers can print one clear message. */
|
|
19
20
|
export class DeviceAuthError extends Error {
|
|
@@ -64,7 +65,7 @@ export async function requestDeviceCode(transport, options = {}) {
|
|
|
64
65
|
const codeUrl = `${transport.url}/api/auth/device/code`;
|
|
65
66
|
printDebug('POST', { url: codeUrl });
|
|
66
67
|
const response = await axios.post(codeUrl, { ...(options.stepUp ? { step_up: true } : {}) }, {
|
|
67
|
-
headers: { 'Content-Type': 'application/json', 'X-Pb-Client': 'cli' },
|
|
68
|
+
headers: { 'Content-Type': 'application/json', 'X-Pb-Client': 'cli', ...requestCorrelationHeaders() },
|
|
68
69
|
httpsAgent: transport.httpsAgent,
|
|
69
70
|
timeout: transport.timeout,
|
|
70
71
|
});
|
|
@@ -91,7 +92,7 @@ export async function pollForDeviceToken(transport, code, hooks = {}) {
|
|
|
91
92
|
await sleep(intervalMs);
|
|
92
93
|
printDebug('POST', { url: tokenUrl });
|
|
93
94
|
const response = await axios.post(tokenUrl, { device_code: code.device_code }, {
|
|
94
|
-
headers: { 'Content-Type': 'application/json', 'X-Pb-Client': 'cli' },
|
|
95
|
+
headers: { 'Content-Type': 'application/json', 'X-Pb-Client': 'cli', ...requestCorrelationHeaders() },
|
|
95
96
|
httpsAgent: transport.httpsAgent,
|
|
96
97
|
timeout: transport.timeout,
|
|
97
98
|
// The RFC's pending/backoff signals arrive as HTTP 400, which axios would
|
|
@@ -170,4 +171,4 @@ export function openInBrowser(url) {
|
|
|
170
171
|
return false;
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZGV2aWNlLWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRCxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBb0N4QyxpRkFBaUY7QUFDakYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsS0FBSztJQUNGLElBQUk7SUFBMUMsWUFBWSxPQUFlLEVBQVcsSUFBWTtRQUNoRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRHFCLElBQUk7UUFFeEMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxTQUE4QixFQUM5QixJQUFrRjtJQUVsRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFBRSxTQUFTLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDMUcsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMs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R0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsUUFBUSxLQUFLLE9BQU87UUFBRSxPQUFPLEtBQUssQ0FBQztJQUM5RSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTztRQUFFLE9BQU8sS0FBSyxDQUFDO0lBQ3RGLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUs7UUFBRSxPQUFPLEtBQUssQ0FBQztJQUV4QyxNQUFNLE1BQU0sR0FBRyxXQUFXLEVBQUUsQ0FBQztJQUM3QixJQUFJLENBQUMsTUFBTTtRQUFFLE9BQU8sS0FBSyxDQUFDO0lBRTFCLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNoRyxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBMEQsQ0FBQyxDQUFDLENBQUM7UUFDcEYsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBQUMsTUFBTSxDQUFDO1FBQ1AsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIE9BdXRoIDIuMCBkZXZpY2UgYXV0aG9yaXphdGlvbiBncmFudCBjbGllbnQgKFJGQyA4NjI4KSDigJQgaG93IHRoZSBDTEkgc2lnbnMgaW4uXG4gKlxuICogVGhlIENMSSBhc2tzIHRoZSBwbGF0Zm9ybSBmb3IgYSBjb2RlLCBzaG93cyBpdCAoYW5kIG9wZW5zIHRoZSBicm93c2VyIHdoZW4gaXRcbiAqIGNhbiksIHRoZW4gcG9sbHMgdW50aWwgdGhlIHBlcnNvbiBhcHByb3ZlcyBpbiB0aGF0IGJyb3dzZXIuIE5vIHBhc3N3b3JkIGFuZCBub1xuICogbG9uZy1saXZlZCB0b2tlbiBldmVyIHBhc3NlcyB0aHJvdWdoIHRoZSBjb21tYW5kIGxpbmUsIHNoZWxsIGhpc3RvcnksIGBwc2BcbiAqIG91dHB1dCBvciBhIENJIGxvZzsgdGhlIGJyb3dzZXIgaXMgd2hlcmUgU1NPLCBzdGVwLXVwIGFuZCBsYXRlciBNRkEgYWxyZWFkeVxuICogYXBwbHksIHNvIHRoZSB0ZXJtaW5hbCBpbmhlcml0cyBhbGwgb2YgaXQgd2l0aG91dCBpbXBsZW1lbnRpbmcgYW55IG9mIGl0LlxuICovXG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgdHlwZSBodHRwcyBmcm9tICdodHRwcyc7XG5pbXBvcnQgeyBzbGVlcCB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgcGljbyBmcm9tICdwaWNvY29sb3JzJztcbmltcG9ydCB7IHByaW50RGVidWcsIHByaW50SW5mbyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcblxuY29uc3QgeyBib2xkLCBjeWFuLCBkaW0sIGdyZWVuIH0gPSBwaWNvO1xuXG4vKiogYFBPU1QgL2F1dGgvZGV2aWNlL2NvZGVgIOKAlCBSRkMgODYyOCDCpzMuMi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQ29kZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZztcbiAgdXNlcl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl91cmk6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZT86IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xuICBpbnRlcnZhbDogbnVtYmVyO1xufVxuXG4vKiogYFBPU1QgL2F1dGgvZGV2aWNlL3Rva2VuYCBvbiBzdWNjZXNzIOKAlCBSRkMgODYyOCDCpzMuNS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlVG9rZW5SZXNwb25zZSB7XG4gIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZXNfaW46IG51bWJlcjtcbiAgLyoqIFByZXNlbnQgb25seSB3aGVuIHRoZSBkZXZpY2UgYXNrZWQgZm9yIG9uZSBhdCBgL2NvZGVgIChgYXV0aCBwYXRgKS4gKi9cbiAgc3RlcF91cF90b2tlbj86IHN0cmluZztcbn1cblxuLyoqIFRoZSBSRkMgZXJyb3IgYm9keSwgcGx1cyB0aGUgYGludGVydmFsYCB0aGUgcGxhdGZvcm0gc2VuZHMgd2l0aCBgc2xvd19kb3duYC4gKi9cbmludGVyZmFjZSBEZXZpY2VFcnJvclJlc3BvbnNlIHtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGVycm9yX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpbnRlcnZhbD86IG51bWJlcjtcbn1cblxuLyoqIENvbm5lY3Rpb24gc2V0dGluZ3Mgc2hhcmVkIGJ5IGJvdGggY2FsbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhUcmFuc3BvcnQge1xuICB1cmw6IHN0cmluZztcbiAgaHR0cHNBZ2VudDogaHR0cHMuQWdlbnQ7XG4gIHRpbWVvdXQ6IG51bWJlcjtcbn1cblxuLyoqIFJhaXNlZCBmb3IgZXZlcnkgdGVybWluYWwgb3V0Y29tZSwgc28gY2FsbGVycyBjYW4gcHJpbnQgb25lIGNsZWFyIG1lc3NhZ2UuICovXG5leHBvcnQgY2xhc3MgRGV2aWNlQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHJlYWRvbmx5IGNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdEZXZpY2VBdXRoRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogT3BlbiBhIGRldmljZSBhdXRob3JpemF0aW9uIGFuZCBwcmludCB0aGUgYXBwcm92YWwgcHJvbXB0LlxuICpcbiAqIGBsb2dpbmAgYW5kIGBjcmVhdGUtcGF0YCByYW4gYnl0ZS1pZGVudGljYWwgY29waWVzIG9mIHRoaXMg4oCUIHRoZSBjb2RlIGxpbmUsXG4gKiB0aGUgYXBwcm92YWwgVVJMLCB0aGUgYnJvd3Nlci1vcGVuZWQvbm90LW9wZW5lZCB3b3JkaW5nIGFuZCB0aGUgXCJXYWl0aW5nIGZvclxuICogYXBwcm92YWzigKZcIiBub3RpY2UuIFRoYXQgaXMgdXNlci1mYWNpbmcgQVVUSCBjb3B5OiBpZiBvbmUgY29tbWFuZCB0ZWxscyBwZW9wbGVcbiAqIHRvIFwiY2hlY2sgdGhlIGNvZGUgbWF0Y2hlc1wiIGFuZCB0aGUgb3RoZXIgc3RvcHMgc2F5aW5nIGl0LCB0aGUgdHdvIHRlYWNoXG4gKiBkaWZmZXJlbnQgaGFiaXRzIGFib3V0IGEgcHJvbXB0IHdob3NlIHdob2xlIGpvYiBpcyB0byBiZSB2ZXJpZmllZC4gV29yc2UsIHRoZVxuICogc3RkZXJyIHJ1bGUgYmVsb3cgaXMgYSBjb3JyZWN0bmVzcyBkZXRhaWwgdGhhdCB3YXMgZHVwbGljYXRlZCB3aXRoIGl0LlxuICpcbiAqIFRoZSBjYWxsZXJzIGRpdmVyZ2UgQUZURVIgdGhpcyAob25lIHdhbnRzIHRoZSBzdGVwLXVwIHRva2VuLCB0aGUgb3RoZXIgYVxuICogcmVmcmVzaCB0b2tlbiksIHNvIHRoaXMgcmV0dXJucyB0aGUgY29kZSBhbmQgbGVhdmVzIHBvbGxpbmcgdG8gdGhlbS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJlZ2luRGV2aWNlQXBwcm92YWwoXG4gIHRyYW5zcG9ydDogRGV2aWNlQXV0aFRyYW5zcG9ydCxcbiAgb3B0czogeyBxdWlldDogYm9vbGVhbjsgYnJvd3Nlcj86IGJvb2xlYW47IHN0ZXBVcD86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW4gfSxcbik6IFByb21pc2U8RGV2aWNlQ29kZVJlc3BvbnNlPiB7XG4gIGlmICghb3B0cy5xdWlldCkgcHJpbnRJbmZvKCdTdGFydGluZyBicm93c2VyIHNpZ24taW4nLCB7IHVybDogdHJhbnNwb3J0LnVybCwgdmVyaWZ5U3NsOiBvcHRzLnZlcmlmeVNzbCB9KTtcbiAgY29uc3QgY29kZSA9IGF3YWl0IHJlcXVlc3REZXZpY2VDb2RlKHRyYW5zcG9ydCwgb3B0cy5zdGVwVXAgPyB7IHN0ZXBVcDogdHJ1ZSB9IDoge30pO1xuICBjb25zdCBhcHByb3ZhbFVybCA9IGNvZGUudmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZSB8fCBjb2RlLnZlcmlmaWNhdGlvbl91cmk7XG4gIC8vIGAtLW5vLWJyb3dzZXJgIHNldHMgb3B0aW9ucy5icm93c2VyIHRvIGZhbHNlIChjb21tYW5kZXIncyAtLW5vLSBwYWlyKS5cbiAgY29uc3Qgb3BlbmVkID0gb3B0cy5icm93c2VyICE9PSBmYWxzZSAmJiBvcGVuSW5Ccm93c2VyKGFwcHJvdmFsVXJsKTtcblxuICAvLyBUaGUgcHJvbXB0IGdvZXMgdG8gU1RERVJSIHVuZGVyIGAtLXF1aWV0YDogc3Rkb3V0IGlzIGNhcHR1cmVkIGJ5XG4gIC8vIGBldmFsICQo4oCmKWAsIHNvIHByaW50aW5nIHRoZSBjb2RlIHRoZXJlIHdvdWxkIHN3YWxsb3cgdGhlIG9uZSB0aGluZ1xuICAvLyB0aGUgdXNlciBoYXMgdG8gcmVhZCBiZWZvcmUgYW55dGhpbmcgY2FuIHByb2NlZWQuXG4gIGNvbnN0IHNheSA9IG9wdHMucXVpZXQgPyBjb25zb2xlLmVycm9yIDogY29uc29sZS5sb2c7XG4gIHNheSgnJyk7XG4gIHNheShgICBZb3VyIGNvZGU6ICAke2JvbGQoY3lhbihjb2RlLnVzZXJfY29kZSkpfWApO1xuICBzYXkoYCAgQXBwcm92ZSBhdDogJHtncmVlbihhcHByb3ZhbFVybCl9YCk7XG4gIHNheSgnJyk7XG4gIHNheShkaW0ob3BlbmVkXG4gICAgPyAnICBPcGVuaW5nIHlvdXIgYnJvd3NlcuKApiBhcHByb3ZlIHRoZSBjb2RlIHRoZXJlLCB0aGVuIGNvbWUgYmFjay4nXG4gICAgOiAnICBPcGVuIHRoYXQgVVJMIGluIGEgYnJvd3NlciwgY2hlY2sgdGhlIGNvZGUgbWF0Y2hlcywgYW5kIGFwcHJvdmUuJykpO1xuICBpZiAoIW9wdHMucXVpZXQpIHByaW50SW5mbygnV2FpdGluZyBmb3IgYXBwcm92YWzigKYnKTtcbiAgcmV0dXJuIGNvZGU7XG59XG5cbi8qKiBBc2sgdGhlIHBsYXRmb3JtIHRvIG9wZW4gYSBkZXZpY2UgYXV0aG9yaXphdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXF1ZXN0RGV2aWNlQ29kZShcbiAgdHJhbnNwb3J0OiBEZXZpY2VBdXRoVHJhbnNwb3J0LFxuICBvcHRpb25zOiB7IHN0ZXBVcD86IGJvb2xlYW4gfSA9IHt9LFxuKTogUHJvbWlzZTxEZXZpY2VDb2RlUmVzcG9uc2U+IHtcbiAgY29uc3QgY29kZVVybCA9IGAke3RyYW5zcG9ydC51cmx9L2FwaS9hdXRoL2RldmljZS9jb2RlYDtcbiAgcHJpbnREZWJ1ZygnUE9TVCcsIHsgdXJsOiBjb2RlVXJsIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8RGV2aWNlQ29kZVJlc3BvbnNlPihcbiAgICBjb2RlVXJsLFxuICAgIHsgLi4uKG9wdGlvbnMuc3RlcFVwID8geyBzdGVwX3VwOiB0cnVlIH0gOiB7fSkgfSxcbiAgICB7XG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdYLVBiLUNsaWVudCc6ICdjbGknIH0sXG4gICAgICBodHRwc0FnZW50OiB0cmFuc3BvcnQuaHR0cHNBZ2VudCxcbiAgICAgIHRpbWVvdXQ6IHRyYW5zcG9ydC50aW1lb3V0LFxuICAgIH0sXG4gICk7XG4gIGNvbnN0IGRhdGEgPSByZXNwb25zZS5kYXRhO1xuICBpZiAoIWRhdGE/LmRldmljZV9jb2RlIHx8ICFkYXRhLnVzZXJfY29kZSkge1xuICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RoZSBwbGF0Zm9ybSBkaWQgbm90IHJldHVybiBhIGRldmljZSBjb2RlLicsICdpbnZhbGlkX3Jlc3BvbnNlJyk7XG4gIH1cbiAgcmV0dXJuIGRhdGE7XG59XG5cbi8qKlxuICogUG9sbCBgL2F1dGgvZGV2aWNlL3Rva2VuYCB1bnRpbCB0aGUgYnJvd3NlciBkZWNpZGVzLCB0aGUgY29kZSBleHBpcmVzLCBvclxuICogYHNpZ25hbGAgc2F5cyB0byBzdG9wLlxuICpcbiAqIEludGVydmFsIGhhbmRsaW5nIGlzIHRoZSBSRkMnczogc3RhcnQgYXQgdGhlIGFkdmVydGlzZWQgYGludGVydmFsYCwgYW5kIHdpZGVuXG4gKiBpdCBieSA1IHNlY29uZHMgKG9yIHRvIHdoYXRldmVyIHRoZSBwbGF0Zm9ybSBuYW1lcykgb24gZXZlcnkgYHNsb3dfZG93bmAuIFRoZVxuICogcGxhdGZvcm0gYWxzbyBlbmZvcmNlcyB0aGUgaW50ZXJ2YWwsIHNvIGEgY2xpZW50IHRoYXQgaWdub3JlcyBpdCBpcyB0aHJvdHRsZWRcbiAqIHJhdGhlciB0aGFuIHRydXN0ZWQuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwb2xsRm9yRGV2aWNlVG9rZW4oXG4gIHRyYW5zcG9ydDogRGV2aWNlQXV0aFRyYW5zcG9ydCxcbiAgY29kZTogRGV2aWNlQ29kZVJlc3BvbnNlLFxuICBob29rczogeyBvblBlbmRpbmc/OiAoKSA9PiB2b2lkIH0gPSB7fSxcbik6IFByb21pc2U8RGV2aWNlVG9rZW5SZXNwb25zZT4ge1xuICBjb25zdCB0b2tlblVybCA9IGAke3RyYW5zcG9ydC51cmx9L2FwaS9hdXRoL2RldmljZS90b2tlbmA7XG4gIGNvbnN0IGRlYWRsaW5lID0gRGF0ZS5ub3coKSArIGNvZGUuZXhwaXJlc19pbiAqIDEwMDA7XG4gIGxldCBpbnRlcnZhbE1zID0gTWF0aC5tYXgoMSwgY29kZS5pbnRlcnZhbCkgKiAxMDAwO1xuXG4gIHdoaWxlIChEYXRlLm5vdygpIDwgZGVhZGxpbmUpIHtcbiAgICBhd2FpdCBzbGVlcChpbnRlcnZhbE1zKTtcblxuICAgIHByaW50RGVidWcoJ1BPU1QnLCB7IHVybDogdG9rZW5VcmwgfSk7XG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBheGlvcy5wb3N0PERldmljZVRva2VuUmVzcG9uc2UgJiBEZXZpY2VFcnJvclJlc3BvbnNlPihcbiAgICAgIHRva2VuVXJsLFxuICAgICAgeyBkZXZpY2VfY29kZTogY29kZS5kZXZpY2VfY29kZSB9LFxuICAgICAge1xuICAgICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdYLVBiLUNsaWVudCc6ICdjbGknIH0sXG4gICAgICAgIGh0dHBzQWdlbnQ6IHRyYW5zcG9ydC5odHRwc0FnZW50LFxuICAgICAgICB0aW1lb3V0OiB0cmFuc3BvcnQudGltZW91dCxcbiAgICAgICAgLy8gVGhlIFJGQydzIHBlbmRpbmcvYmFja29mZiBzaWduYWxzIGFycml2ZSBhcyBIVFRQIDQwMCwgd2hpY2ggYXhpb3Mgd291bGRcbiAgICAgICAgLy8gb3RoZXJ3aXNlIHRocm93OiB0aGV5IGFyZSBwcm90b2NvbCBzdGF0ZXMsIG5vdCBmYWlsdXJlcy5cbiAgICAgICAgdmFsaWRhdGVTdGF0dXM6IChzdGF0dXMpID0+IChzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCkgfHwgc3RhdHVzID09PSA0MDAsXG4gICAgICB9LFxuICAgICk7XG5cbiAgICBpZiAocmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgIGlmICghcmVzcG9uc2UuZGF0YT8uYWNjZXNzX3Rva2VuKSB7XG4gICAgICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RoZSBwbGF0Zm9ybSBhcHByb3ZlZCB0aGUgc2lnbi1pbiBidXQgcmV0dXJuZWQgbm8gdG9rZW4uJywgJ2ludmFsaWRfcmVzcG9uc2UnKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH1cblxuICAgIHN3aXRjaCAocmVzcG9uc2UuZGF0YT8uZXJyb3IpIHtcbiAgICAgIGNhc2UgJ2F1dGhvcml6YXRpb25fcGVuZGluZyc6XG4gICAgICAgIGhvb2tzLm9uUGVuZGluZz8uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnc2xvd19kb3duJzpcbiAgICAgICAgaW50ZXJ2YWxNcyA9IE1hdGgubWF4KGludGVydmFsTXMgKyA1XzAwMCwgKHJlc3BvbnNlLmRhdGEuaW50ZXJ2YWwgPz8gMCkgKiAxMDAwKTtcbiAgICAgICAgcHJpbnREZWJ1ZygnUG9sbGluZyBzbG93ZWQgYnkgdGhlIHBsYXRmb3JtJywgeyBpbnRlcnZhbE1zIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2FjY2Vzc19kZW5pZWQnOlxuICAgICAgICB0aHJvdyBuZXcgRGV2aWNlQXV0aEVycm9yKCdUaGUgc2lnbi1pbiB3YXMgZGVuaWVkIGluIHRoZSBicm93c2VyLicsICdhY2Nlc3NfZGVuaWVkJyk7XG4gICAgICBjYXNlICdleHBpcmVkX3Rva2VuJzpcbiAgICAgICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGhlIHNpZ24taW4gY29kZSBleHBpcmVkIGJlZm9yZSBpdCB3YXMgYXBwcm92ZWQuJywgJ2V4cGlyZWRfdG9rZW4nKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoXG4gICAgICAgICAgcmVzcG9uc2UuZGF0YT8uZXJyb3JfZGVzY3JpcHRpb24gfHwgJ1RoZSBwbGF0Zm9ybSByZWZ1c2VkIHRoZSBkZXZpY2Ugc2lnbi1pbi4nLFxuICAgICAgICAgIHJlc3BvbnNlLmRhdGE/LmVycm9yIHx8ICdpbnZhbGlkX3JlcXVlc3QnLFxuICAgICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RpbWVkIG91dCB3YWl0aW5nIGZvciB0aGUgc2lnbi1pbiB0byBiZSBhcHByb3ZlZC4nLCAnZXhwaXJlZF90b2tlbicpO1xufVxuXG4vKiogVGhlIE9TIGNvbW1hbmQgdGhhdCBvcGVucyBhIFVSTCBpbiB0aGUgZGVmYXVsdCBicm93c2VyLiAqL1xuZnVuY3Rpb24gb3BlbkNvbW1hbmQoKTogeyBjb21tYW5kOiBzdHJpbmc7IGFyZ3M6IHN0cmluZ1tdIH0gfCBudWxsIHtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICdkYXJ3aW4nKSByZXR1cm4geyBjb21tYW5kOiAnb3BlbicsIGFyZ3M6IFtdIH07XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnd2luMzInKSByZXR1cm4geyBjb21tYW5kOiAnY21kJywgYXJnczogWycvYycsICdzdGFydCcsICcnXSB9O1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ2xpbnV4JykgcmV0dXJuIHsgY29tbWFuZDogJ3hkZy1vcGVuJywgYXJnczogW10gfTtcbiAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogVHJ5IHRvIG9wZW4gYHVybGAgaW4gdGhlIGRlZmF1bHQgYnJvd3Nlci4gUmV0dXJucyBmYWxzZSDigJQgbmV2ZXIgdGhyb3dzIOKAlCB3aGVuXG4gKiB0aGUgZW52aXJvbm1lbnQgaGFzIG5vIGJyb3dzZXIgdG8gb3BlbiAoYSBDSSBydW5uZXIsIGFuIFNTSCBzZXNzaW9uLCBhXG4gKiBub24taW50ZXJhY3RpdmUgc2hlbGwpIG9yIHRoZSBvcGVuZXIgaXNuJ3QgaW5zdGFsbGVkLCBzbyB0aGUgY2FsbGVyIGZhbGxzIGJhY2tcbiAqIHRvIHByaW50aW5nIHRoZSBVUkwuXG4gKlxuICogVGhlIFVSTCBpcyBwYXNzZWQgYXMgYW4gQVJHVU1FTlQsIG5ldmVyIHRocm91Z2ggYSBzaGVsbCwgYW5kIG9ubHkgaHR0cChzKSBpc1xuICogYWNjZXB0ZWQ6IHRoZSB2YWx1ZSBjb21lcyBmcm9tIHRoZSBwbGF0Zm9ybSdzIHJlc3BvbnNlLCBhbmQgaGFuZGluZyBhblxuICogYXJiaXRyYXJ5IHNjaGVtZSB0byB0aGUgT1Mgb3BlbmVyIGlzIGhvdyBcImNsaWNrIHRoaXMgbGlua1wiIHR1cm5zIGludG8gXCJydW5cbiAqIHRoaXMgcHJvZ3JhbVwiLlxuICovXG5leHBvcnQgZnVuY3Rpb24gb3BlbkluQnJvd3Nlcih1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICBsZXQgcGFyc2VkOiBVUkw7XG4gIHRyeSB7XG4gICAgcGFyc2VkID0gbmV3IFVSTCh1cmwpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgaWYgKHBhcnNlZC5wcm90b2NvbCAhPT0gJ2h0dHBzOicgJiYgcGFyc2VkLnByb3RvY29sICE9PSAnaHR0cDonKSByZXR1cm4gZmFsc2U7XG4gIGlmIChwcm9jZXNzLmVudi5DSSB8fCBwcm9jZXNzLmVudi5TU0hfQ09OTkVDVElPTiB8fCBwcm9jZXNzLmVudi5TU0hfVFRZKSByZXR1cm4gZmFsc2U7XG4gIGlmICghcHJvY2Vzcy5zdGRvdXQuaXNUVFkpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBvcGVuZXIgPSBvcGVuQ29tbWFuZCgpO1xuICBpZiAoIW9wZW5lcikgcmV0dXJuIGZhbHNlO1xuXG4gIHRyeSB7XG4gICAgY29uc3QgY2hpbGQgPSBzcGF3bihvcGVuZXIuY29tbWFuZCwgWy4uLm9wZW5lci5hcmdzLCB1cmxdLCB7IHN0ZGlvOiAnaWdub3JlJywgZGV0YWNoZWQ6IHRydWUgfSk7XG4gICAgY2hpbGQub24oJ2Vycm9yJywgKCkgPT4geyAvKiBubyBicm93c2VyIGhlcmU7IHRoZSBwcmludGVkIFVSTCBpcyB0aGUgZmFsbGJhY2sgKi8gfSk7XG4gICAgY2hpbGQudW5yZWYoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG4iXX0=
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvZGV2aWNlLWF1dGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0Qzs7Ozs7Ozs7R0FRRztBQUVILE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25ELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLElBQUksTUFBTSxZQUFZLENBQUM7QUFDOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVqRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsSUFBSSxDQUFDO0FBb0N4QyxpRkFBaUY7QUFDakYsTUFBTSxPQUFPLGVBQWdCLFNBQVEsS0FBSztJQUNGLElBQUk7SUFBMUMsWUFBWSxPQUFlLEVBQVcsSUFBWTtRQUNoRCxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRHFCLElBQUk7UUFFeEMsSUFBSSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG1CQUFtQixDQUN2QyxTQUE4QixFQUM5QixJQUFrRjtJQUVsRixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUs7UUFBRSxTQUFTLENBQUMsMEJBQTBCLEVBQUUsRUFBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7SUFDMUcsTUFBTSxJQUFJLEdBQUcsTUFBTSxpQkFBaUIs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IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbi8qKlxuICogT0F1dGggMi4wIGRldmljZSBhdXRob3JpemF0aW9uIGdyYW50IGNsaWVudCAoUkZDIDg2MjgpIOKAlCBob3cgdGhlIENMSSBzaWducyBpbi5cbiAqXG4gKiBUaGUgQ0xJIGFza3MgdGhlIHBsYXRmb3JtIGZvciBhIGNvZGUsIHNob3dzIGl0IChhbmQgb3BlbnMgdGhlIGJyb3dzZXIgd2hlbiBpdFxuICogY2FuKSwgdGhlbiBwb2xscyB1bnRpbCB0aGUgcGVyc29uIGFwcHJvdmVzIGluIHRoYXQgYnJvd3Nlci4gTm8gcGFzc3dvcmQgYW5kIG5vXG4gKiBsb25nLWxpdmVkIHRva2VuIGV2ZXIgcGFzc2VzIHRocm91Z2ggdGhlIGNvbW1hbmQgbGluZSwgc2hlbGwgaGlzdG9yeSwgYHBzYFxuICogb3V0cHV0IG9yIGEgQ0kgbG9nOyB0aGUgYnJvd3NlciBpcyB3aGVyZSBTU08sIHN0ZXAtdXAgYW5kIGxhdGVyIE1GQSBhbHJlYWR5XG4gKiBhcHBseSwgc28gdGhlIHRlcm1pbmFsIGluaGVyaXRzIGFsbCBvZiBpdCB3aXRob3V0IGltcGxlbWVudGluZyBhbnkgb2YgaXQuXG4gKi9cblxuaW1wb3J0IHsgc3Bhd24gfSBmcm9tICdjaGlsZF9wcm9jZXNzJztcbmltcG9ydCB0eXBlIGh0dHBzIGZyb20gJ2h0dHBzJztcbmltcG9ydCB7IHNsZWVwIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgcHJpbnREZWJ1ZywgcHJpbnRJbmZvIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgcmVxdWVzdENvcnJlbGF0aW9uSGVhZGVycyB9IGZyb20gJy4vcmVxdWVzdC1jb250ZXh0LmpzJztcblxuY29uc3QgeyBib2xkLCBjeWFuLCBkaW0sIGdyZWVuIH0gPSBwaWNvO1xuXG4vKiogYFBPU1QgL2F1dGgvZGV2aWNlL2NvZGVgIOKAlCBSRkMgODYyOCDCpzMuMi4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlQ29kZVJlc3BvbnNlIHtcbiAgZGV2aWNlX2NvZGU6IHN0cmluZztcbiAgdXNlcl9jb2RlOiBzdHJpbmc7XG4gIHZlcmlmaWNhdGlvbl91cmk6IHN0cmluZztcbiAgdmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZT86IHN0cmluZztcbiAgZXhwaXJlc19pbjogbnVtYmVyO1xuICBpbnRlcnZhbDogbnVtYmVyO1xufVxuXG4vKiogYFBPU1QgL2F1dGgvZGV2aWNlL3Rva2VuYCBvbiBzdWNjZXNzIOKAlCBSRkMgODYyOCDCpzMuNS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGV2aWNlVG9rZW5SZXNwb25zZSB7XG4gIGFjY2Vzc190b2tlbjogc3RyaW5nO1xuICByZWZyZXNoX3Rva2VuPzogc3RyaW5nO1xuICB0b2tlbl90eXBlOiBzdHJpbmc7XG4gIGV4cGlyZXNfaW46IG51bWJlcjtcbiAgLyoqIFByZXNlbnQgb25seSB3aGVuIHRoZSBkZXZpY2UgYXNrZWQgZm9yIG9uZSBhdCBgL2NvZGVgIChgYXV0aCBwYXRgKS4gKi9cbiAgc3RlcF91cF90b2tlbj86IHN0cmluZztcbn1cblxuLyoqIFRoZSBSRkMgZXJyb3IgYm9keSwgcGx1cyB0aGUgYGludGVydmFsYCB0aGUgcGxhdGZvcm0gc2VuZHMgd2l0aCBgc2xvd19kb3duYC4gKi9cbmludGVyZmFjZSBEZXZpY2VFcnJvclJlc3BvbnNlIHtcbiAgZXJyb3I/OiBzdHJpbmc7XG4gIGVycm9yX2Rlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpbnRlcnZhbD86IG51bWJlcjtcbn1cblxuLyoqIENvbm5lY3Rpb24gc2V0dGluZ3Mgc2hhcmVkIGJ5IGJvdGggY2FsbHMuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZUF1dGhUcmFuc3BvcnQge1xuICB1cmw6IHN0cmluZztcbiAgaHR0cHNBZ2VudDogaHR0cHMuQWdlbnQ7XG4gIHRpbWVvdXQ6IG51bWJlcjtcbn1cblxuLyoqIFJhaXNlZCBmb3IgZXZlcnkgdGVybWluYWwgb3V0Y29tZSwgc28gY2FsbGVycyBjYW4gcHJpbnQgb25lIGNsZWFyIG1lc3NhZ2UuICovXG5leHBvcnQgY2xhc3MgRGV2aWNlQXV0aEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcsIHJlYWRvbmx5IGNvZGU6IHN0cmluZykge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdEZXZpY2VBdXRoRXJyb3InO1xuICB9XG59XG5cbi8qKlxuICogT3BlbiBhIGRldmljZSBhdXRob3JpemF0aW9uIGFuZCBwcmludCB0aGUgYXBwcm92YWwgcHJvbXB0LlxuICpcbiAqIGBsb2dpbmAgYW5kIGBjcmVhdGUtcGF0YCByYW4gYnl0ZS1pZGVudGljYWwgY29waWVzIG9mIHRoaXMg4oCUIHRoZSBjb2RlIGxpbmUsXG4gKiB0aGUgYXBwcm92YWwgVVJMLCB0aGUgYnJvd3Nlci1vcGVuZWQvbm90LW9wZW5lZCB3b3JkaW5nIGFuZCB0aGUgXCJXYWl0aW5nIGZvclxuICogYXBwcm92YWzigKZcIiBub3RpY2UuIFRoYXQgaXMgdXNlci1mYWNpbmcgQVVUSCBjb3B5OiBpZiBvbmUgY29tbWFuZCB0ZWxscyBwZW9wbGVcbiAqIHRvIFwiY2hlY2sgdGhlIGNvZGUgbWF0Y2hlc1wiIGFuZCB0aGUgb3RoZXIgc3RvcHMgc2F5aW5nIGl0LCB0aGUgdHdvIHRlYWNoXG4gKiBkaWZmZXJlbnQgaGFiaXRzIGFib3V0IGEgcHJvbXB0IHdob3NlIHdob2xlIGpvYiBpcyB0byBiZSB2ZXJpZmllZC4gV29yc2UsIHRoZVxuICogc3RkZXJyIHJ1bGUgYmVsb3cgaXMgYSBjb3JyZWN0bmVzcyBkZXRhaWwgdGhhdCB3YXMgZHVwbGljYXRlZCB3aXRoIGl0LlxuICpcbiAqIFRoZSBjYWxsZXJzIGRpdmVyZ2UgQUZURVIgdGhpcyAob25lIHdhbnRzIHRoZSBzdGVwLXVwIHRva2VuLCB0aGUgb3RoZXIgYVxuICogcmVmcmVzaCB0b2tlbiksIHNvIHRoaXMgcmV0dXJucyB0aGUgY29kZSBhbmQgbGVhdmVzIHBvbGxpbmcgdG8gdGhlbS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJlZ2luRGV2aWNlQXBwcm92YWwoXG4gIHRyYW5zcG9ydDogRGV2aWNlQXV0aFRyYW5zcG9ydCxcbiAgb3B0czogeyBxdWlldDogYm9vbGVhbjsgYnJvd3Nlcj86IGJvb2xlYW47IHN0ZXBVcD86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW4gfSxcbik6IFByb21pc2U8RGV2aWNlQ29kZVJlc3BvbnNlPiB7XG4gIGlmICghb3B0cy5xdWlldCkgcHJpbnRJbmZvKCdTdGFydGluZyBicm93c2VyIHNpZ24taW4nLCB7IHVybDogdHJhbnNwb3J0LnVybCwgdmVyaWZ5U3NsOiBvcHRzLnZlcmlmeVNzbCB9KTtcbiAgY29uc3QgY29kZSA9IGF3YWl0IHJlcXVlc3REZXZpY2VDb2RlKHRyYW5zcG9ydCwgb3B0cy5zdGVwVXAgPyB7IHN0ZXBVcDogdHJ1ZSB9IDoge30pO1xuICBjb25zdCBhcHByb3ZhbFVybCA9IGNvZGUudmVyaWZpY2F0aW9uX3VyaV9jb21wbGV0ZSB8fCBjb2RlLnZlcmlmaWNhdGlvbl91cmk7XG4gIC8vIGAtLW5vLWJyb3dzZXJgIHNldHMgb3B0aW9ucy5icm93c2VyIHRvIGZhbHNlIChjb21tYW5kZXIncyAtLW5vLSBwYWlyKS5cbiAgY29uc3Qgb3BlbmVkID0gb3B0cy5icm93c2VyICE9PSBmYWxzZSAmJiBvcGVuSW5Ccm93c2VyKGFwcHJvdmFsVXJsKTtcblxuICAvLyBUaGUgcHJvbXB0IGdvZXMgdG8gU1RERVJSIHVuZGVyIGAtLXF1aWV0YDogc3Rkb3V0IGlzIGNhcHR1cmVkIGJ5XG4gIC8vIGBldmFsICQo4oCmKWAsIHNvIHByaW50aW5nIHRoZSBjb2RlIHRoZXJlIHdvdWxkIHN3YWxsb3cgdGhlIG9uZSB0aGluZ1xuICAvLyB0aGUgdXNlciBoYXMgdG8gcmVhZCBiZWZvcmUgYW55dGhpbmcgY2FuIHByb2NlZWQuXG4gIGNvbnN0IHNheSA9IG9wdHMucXVpZXQgPyBjb25zb2xlLmVycm9yIDogY29uc29sZS5sb2c7XG4gIHNheSgnJyk7XG4gIHNheShgICBZb3VyIGNvZGU6ICAke2JvbGQoY3lhbihjb2RlLnVzZXJfY29kZSkpfWApO1xuICBzYXkoYCAgQXBwcm92ZSBhdDogJHtncmVlbihhcHByb3ZhbFVybCl9YCk7XG4gIHNheSgnJyk7XG4gIHNheShkaW0ob3BlbmVkXG4gICAgPyAnICBPcGVuaW5nIHlvdXIgYnJvd3NlcuKApiBhcHByb3ZlIHRoZSBjb2RlIHRoZXJlLCB0aGVuIGNvbWUgYmFjay4nXG4gICAgOiAnICBPcGVuIHRoYXQgVVJMIGluIGEgYnJvd3NlciwgY2hlY2sgdGhlIGNvZGUgbWF0Y2hlcywgYW5kIGFwcHJvdmUuJykpO1xuICBpZiAoIW9wdHMucXVpZXQpIHByaW50SW5mbygnV2FpdGluZyBmb3IgYXBwcm92YWzigKYnKTtcbiAgcmV0dXJuIGNvZGU7XG59XG5cbi8qKiBBc2sgdGhlIHBsYXRmb3JtIHRvIG9wZW4gYSBkZXZpY2UgYXV0aG9yaXphdGlvbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXF1ZXN0RGV2aWNlQ29kZShcbiAgdHJhbnNwb3J0OiBEZXZpY2VBdXRoVHJhbnNwb3J0LFxuICBvcHRpb25zOiB7IHN0ZXBVcD86IGJvb2xlYW4gfSA9IHt9LFxuKTogUHJvbWlzZTxEZXZpY2VDb2RlUmVzcG9uc2U+IHtcbiAgY29uc3QgY29kZVVybCA9IGAke3RyYW5zcG9ydC51cmx9L2FwaS9hdXRoL2RldmljZS9jb2RlYDtcbiAgcHJpbnREZWJ1ZygnUE9TVCcsIHsgdXJsOiBjb2RlVXJsIH0pO1xuICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8RGV2aWNlQ29kZVJlc3BvbnNlPihcbiAgICBjb2RlVXJsLFxuICAgIHsgLi4uKG9wdGlvbnMuc3RlcFVwID8geyBzdGVwX3VwOiB0cnVlIH0gOiB7fSkgfSxcbiAgICB7XG4gICAgICBoZWFkZXJzOiB7ICdDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24vanNvbicsICdYLVBiLUNsaWVudCc6ICdjbGknLCAuLi5yZXF1ZXN0Q29ycmVsYXRpb25IZWFkZXJzKCkgfSxcbiAgICAgIGh0dHBzQWdlbnQ6IHRyYW5zcG9ydC5odHRwc0FnZW50LFxuICAgICAgdGltZW91dDogdHJhbnNwb3J0LnRpbWVvdXQsXG4gICAgfSxcbiAgKTtcbiAgY29uc3QgZGF0YSA9IHJlc3BvbnNlLmRhdGE7XG4gIGlmICghZGF0YT8uZGV2aWNlX2NvZGUgfHwgIWRhdGEudXNlcl9jb2RlKSB7XG4gICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGhlIHBsYXRmb3JtIGRpZCBub3QgcmV0dXJuIGEgZGV2aWNlIGNvZGUuJywgJ2ludmFsaWRfcmVzcG9uc2UnKTtcbiAgfVxuICByZXR1cm4gZGF0YTtcbn1cblxuLyoqXG4gKiBQb2xsIGAvYXV0aC9kZXZpY2UvdG9rZW5gIHVudGlsIHRoZSBicm93c2VyIGRlY2lkZXMsIHRoZSBjb2RlIGV4cGlyZXMsIG9yXG4gKiBgc2lnbmFsYCBzYXlzIHRvIHN0b3AuXG4gKlxuICogSW50ZXJ2YWwgaGFuZGxpbmcgaXMgdGhlIFJGQydzOiBzdGFydCBhdCB0aGUgYWR2ZXJ0aXNlZCBgaW50ZXJ2YWxgLCBhbmQgd2lkZW5cbiAqIGl0IGJ5IDUgc2Vjb25kcyAob3IgdG8gd2hhdGV2ZXIgdGhlIHBsYXRmb3JtIG5hbWVzKSBvbiBldmVyeSBgc2xvd19kb3duYC4gVGhlXG4gKiBwbGF0Zm9ybSBhbHNvIGVuZm9yY2VzIHRoZSBpbnRlcnZhbCwgc28gYSBjbGllbnQgdGhhdCBpZ25vcmVzIGl0IGlzIHRocm90dGxlZFxuICogcmF0aGVyIHRoYW4gdHJ1c3RlZC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBvbGxGb3JEZXZpY2VUb2tlbihcbiAgdHJhbnNwb3J0OiBEZXZpY2VBdXRoVHJhbnNwb3J0LFxuICBjb2RlOiBEZXZpY2VDb2RlUmVzcG9uc2UsXG4gIGhvb2tzOiB7IG9uUGVuZGluZz86ICgpID0+IHZvaWQgfSA9IHt9LFxuKTogUHJvbWlzZTxEZXZpY2VUb2tlblJlc3BvbnNlPiB7XG4gIGNvbnN0IHRva2VuVXJsID0gYCR7dHJhbnNwb3J0LnVybH0vYXBpL2F1dGgvZGV2aWNlL3Rva2VuYDtcbiAgY29uc3QgZGVhZGxpbmUgPSBEYXRlLm5vdygpICsgY29kZS5leHBpcmVzX2luICogMTAwMDtcbiAgbGV0IGludGVydmFsTXMgPSBNYXRoLm1heCgxLCBjb2RlLmludGVydmFsKSAqIDEwMDA7XG5cbiAgd2hpbGUgKERhdGUubm93KCkgPCBkZWFkbGluZSkge1xuICAgIGF3YWl0IHNsZWVwKGludGVydmFsTXMpO1xuXG4gICAgcHJpbnREZWJ1ZygnUE9TVCcsIHsgdXJsOiB0b2tlblVybCB9KTtcbiAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3Q8RGV2aWNlVG9rZW5SZXNwb25zZSAmIERldmljZUVycm9yUmVzcG9uc2U+KFxuICAgICAgdG9rZW5VcmwsXG4gICAgICB7IGRldmljZV9jb2RlOiBjb2RlLmRldmljZV9jb2RlIH0sXG4gICAgICB7XG4gICAgICAgIGhlYWRlcnM6IHsgJ0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi9qc29uJywgJ1gtUGItQ2xpZW50JzogJ2NsaScsIC4uLnJlcXVlc3RDb3JyZWxhdGlvbkhlYWRlcnMoKSB9LFxuICAgICAgICBodHRwc0FnZW50OiB0cmFuc3BvcnQuaHR0cHNBZ2VudCxcbiAgICAgICAgdGltZW91dDogdHJhbnNwb3J0LnRpbWVvdXQsXG4gICAgICAgIC8vIFRoZSBSRkMncyBwZW5kaW5nL2JhY2tvZmYgc2lnbmFscyBhcnJpdmUgYXMgSFRUUCA0MDAsIHdoaWNoIGF4aW9zIHdvdWxkXG4gICAgICAgIC8vIG90aGVyd2lzZSB0aHJvdzogdGhleSBhcmUgcHJvdG9jb2wgc3RhdGVzLCBub3QgZmFpbHVyZXMuXG4gICAgICAgIHZhbGlkYXRlU3RhdHVzOiAoc3RhdHVzKSA9PiAoc3RhdHVzID49IDIwMCAmJiBzdGF0dXMgPCAzMDApIHx8IHN0YXR1cyA9PT0gNDAwLFxuICAgICAgfSxcbiAgICApO1xuXG4gICAgaWYgKHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICBpZiAoIXJlc3BvbnNlLmRhdGE/LmFjY2Vzc190b2tlbikge1xuICAgICAgICB0aHJvdyBuZXcgRGV2aWNlQXV0aEVycm9yKCdUaGUgcGxhdGZvcm0gYXBwcm92ZWQgdGhlIHNpZ24taW4gYnV0IHJldHVybmVkIG5vIHRva2VuLicsICdpbnZhbGlkX3Jlc3BvbnNlJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzcG9uc2UuZGF0YTtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKHJlc3BvbnNlLmRhdGE/LmVycm9yKSB7XG4gICAgICBjYXNlICdhdXRob3JpemF0aW9uX3BlbmRpbmcnOlxuICAgICAgICBob29rcy5vblBlbmRpbmc/LigpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3Nsb3dfZG93bic6XG4gICAgICAgIGludGVydmFsTXMgPSBNYXRoLm1heChpbnRlcnZhbE1zICsgNV8wMDAsIChyZXNwb25zZS5kYXRhLmludGVydmFsID8/IDApICogMTAwMCk7XG4gICAgICAgIHByaW50RGVidWcoJ1BvbGxpbmcgc2xvd2VkIGJ5IHRoZSBwbGF0Zm9ybScsIHsgaW50ZXJ2YWxNcyB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdhY2Nlc3NfZGVuaWVkJzpcbiAgICAgICAgdGhyb3cgbmV3IERldmljZUF1dGhFcnJvcignVGhlIHNpZ24taW4gd2FzIGRlbmllZCBpbiB0aGUgYnJvd3Nlci4nLCAnYWNjZXNzX2RlbmllZCcpO1xuICAgICAgY2FzZSAnZXhwaXJlZF90b2tlbic6XG4gICAgICAgIHRocm93IG5ldyBEZXZpY2VBdXRoRXJyb3IoJ1RoZSBzaWduLWluIGNvZGUgZXhwaXJlZCBiZWZvcmUgaXQgd2FzIGFwcHJvdmVkLicsICdleHBpcmVkX3Rva2VuJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRGV2aWNlQXV0aEVycm9yKFxuICAgICAgICAgIHJlc3BvbnNlLmRhdGE/LmVycm9yX2Rlc2NyaXB0aW9uIHx8ICdUaGUgcGxhdGZvcm0gcmVmdXNlZCB0aGUgZGV2aWNlIHNpZ24taW4uJyxcbiAgICAgICAgICByZXNwb25zZS5kYXRhPy5lcnJvciB8fCAnaW52YWxpZF9yZXF1ZXN0JyxcbiAgICAgICAgKTtcbiAgICB9XG4gIH1cblxuICB0aHJvdyBuZXcgRGV2aWNlQXV0aEVycm9yKCdUaW1lZCBvdXQgd2FpdGluZyBmb3IgdGhlIHNpZ24taW4gdG8gYmUgYXBwcm92ZWQuJywgJ2V4cGlyZWRfdG9rZW4nKTtcbn1cblxuLyoqIFRoZSBPUyBjb21tYW5kIHRoYXQgb3BlbnMgYSBVUkwgaW4gdGhlIGRlZmF1bHQgYnJvd3Nlci4gKi9cbmZ1bmN0aW9uIG9wZW5Db21tYW5kKCk6IHsgY29tbWFuZDogc3RyaW5nOyBhcmdzOiBzdHJpbmdbXSB9IHwgbnVsbCB7XG4gIGlmIChwcm9jZXNzLnBsYXRmb3JtID09PSAnZGFyd2luJykgcmV0dXJuIHsgY29tbWFuZDogJ29wZW4nLCBhcmdzOiBbXSB9O1xuICBpZiAocHJvY2Vzcy5wbGF0Zm9ybSA9PT0gJ3dpbjMyJykgcmV0dXJuIHsgY29tbWFuZDogJ2NtZCcsIGFyZ3M6IFsnL2MnLCAnc3RhcnQnLCAnJ10gfTtcbiAgaWYgKHByb2Nlc3MucGxhdGZvcm0gPT09ICdsaW51eCcpIHJldHVybiB7IGNvbW1hbmQ6ICd4ZGctb3BlbicsIGFyZ3M6IFtdIH07XG4gIHJldHVybiBudWxsO1xufVxuXG4vKipcbiAqIFRyeSB0byBvcGVuIGB1cmxgIGluIHRoZSBkZWZhdWx0IGJyb3dzZXIuIFJldHVybnMgZmFsc2Ug4oCUIG5ldmVyIHRocm93cyDigJQgd2hlblxuICogdGhlIGVudmlyb25tZW50IGhhcyBubyBicm93c2VyIHRvIG9wZW4gKGEgQ0kgcnVubmVyLCBhbiBTU0ggc2Vzc2lvbiwgYVxuICogbm9uLWludGVyYWN0aXZlIHNoZWxsKSBvciB0aGUgb3BlbmVyIGlzbid0IGluc3RhbGxlZCwgc28gdGhlIGNhbGxlciBmYWxscyBiYWNrXG4gKiB0byBwcmludGluZyB0aGUgVVJMLlxuICpcbiAqIFRoZSBVUkwgaXMgcGFzc2VkIGFzIGFuIEFSR1VNRU5ULCBuZXZlciB0aHJvdWdoIGEgc2hlbGwsIGFuZCBvbmx5IGh0dHAocykgaXNcbiAqIGFjY2VwdGVkOiB0aGUgdmFsdWUgY29tZXMgZnJvbSB0aGUgcGxhdGZvcm0ncyByZXNwb25zZSwgYW5kIGhhbmRpbmcgYW5cbiAqIGFyYml0cmFyeSBzY2hlbWUgdG8gdGhlIE9TIG9wZW5lciBpcyBob3cgXCJjbGljayB0aGlzIGxpbmtcIiB0dXJucyBpbnRvIFwicnVuXG4gKiB0aGlzIHByb2dyYW1cIi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG9wZW5JbkJyb3dzZXIodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgbGV0IHBhcnNlZDogVVJMO1xuICB0cnkge1xuICAgIHBhcnNlZCA9IG5ldyBVUkwodXJsKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGlmIChwYXJzZWQucHJvdG9jb2wgIT09ICdodHRwczonICYmIHBhcnNlZC5wcm90b2NvbCAhPT0gJ2h0dHA6JykgcmV0dXJuIGZhbHNlO1xuICBpZiAocHJvY2Vzcy5lbnYuQ0kgfHwgcHJvY2Vzcy5lbnYuU1NIX0NPTk5FQ1RJT04gfHwgcHJvY2Vzcy5lbnYuU1NIX1RUWSkgcmV0dXJuIGZhbHNlO1xuICBpZiAoIXByb2Nlc3Muc3Rkb3V0LmlzVFRZKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3Qgb3BlbmVyID0gb3BlbkNvbW1hbmQoKTtcbiAgaWYgKCFvcGVuZXIpIHJldHVybiBmYWxzZTtcblxuICB0cnkge1xuICAgIGNvbnN0IGNoaWxkID0gc3Bhd24ob3BlbmVyLmNvbW1hbmQsIFsuLi5vcGVuZXIuYXJncywgdXJsXSwgeyBzdGRpbzogJ2lnbm9yZScsIGRldGFjaGVkOiB0cnVlIH0pO1xuICAgIGNoaWxkLm9uKCdlcnJvcicsICgpID0+IHsgLyogbm8gYnJvd3NlciBoZXJlOyB0aGUgcHJpbnRlZCBVUkwgaXMgdGhlIGZhbGxiYWNrICovIH0pO1xuICAgIGNoaWxkLnVucmVmKCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2gge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufVxuIl19
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/utils/error-handler.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,WAAW,EACX,KAAK,SAAS,EACd,KAAK,mBAAmB,EAEzB,MAAM,mBAAmB,CAAC;AAK3B,OAAO,EAAE,WAAW,EAAE,CAAC;AACvB,YAAY,EAAE,SAAS,EAAE,CAAC;AAE1B;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,OAAO,EACZ,IAAI,GAAE,SAA+B,EACrC,OAAO,GAAE,mBAAwB,GAChC,KAAK,CAiHP;AAID;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;IAG/B,KAAK,CAAC,EAAE,MAAM;IACd,KAAK,CAAC,EAAE,OAAO;IACf,IAAI,CAAC,EAAE,MAAM;IACb,QAAQ,CAAC,EAAE,MAAM;IAL1B,YACE,OAAO,EAAE,MAAM,EACR,KAAK,CAAC,EAAE,MAAM,YAAA,EACd,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,MAAM,YAAA,EACb,QAAQ,CAAC,EAAE,MAAM,YAAA,EAKzB;CACF;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,KAAK;IAG5B,GAAG,CAAC,EAAE,MAAM;IACZ,KAAK,CAAC,EAAE,KAAK;IACb,OAAO,CAAC,EAAE,MAAM;IAChB,WAAW,EAAE,OAAO;IACpB,gBAAgB,EAAE,OAAO;IANlC,YACE,OAAO,EAAE,MAAM,EACR,GAAG,CAAC,EAAE,MAAM,YAAA,EACZ,KAAK,CAAC,EAAE,KAAK,YAAA,EACb,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,WAAW,GAAE,OAAc,EAC3B,gBAAgB,GAAE,OAAe,EAKzC;CACF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
|
+
import { isQuotaExceededBody } from '@pipeline-builder/pipeline-core';
|
|
3
4
|
import pico from 'picocolors';
|
|
4
5
|
import { generateExecutionId } from '../config/cli.constants.js';
|
|
5
6
|
import { ERROR_CODES, } from '../types/index.js';
|
|
@@ -241,6 +242,12 @@ function getErrorSuggestion(err, code) {
|
|
|
241
242
|
const status = err.response?.status;
|
|
242
243
|
if (status === 401 || status === 403)
|
|
243
244
|
return 'Check your authentication token and permissions';
|
|
245
|
+
// A quota refusal won't clear by waiting a moment: the message already names
|
|
246
|
+
// the reset date and the upgrade link (api-client). Only a plain 429 is a
|
|
247
|
+
// rate limit.
|
|
248
|
+
if (status === 429 && isQuotaExceededBody(err.response?.data)) {
|
|
249
|
+
return 'Retrying will not help until the quota resets — raise the limit at the upgrade link above';
|
|
250
|
+
}
|
|
244
251
|
if (status === 429)
|
|
245
252
|
return 'Rate limit exceeded - wait a moment before retrying';
|
|
246
253
|
if (status && status >= 500)
|
|
@@ -299,4 +306,4 @@ function isAxiosError(err) {
|
|
|
299
306
|
'isAxiosError' in err &&
|
|
300
307
|
err.isAxiosError === true);
|
|
301
308
|
}
|
|
302
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lcnJvci1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxXQUFXLEdBSVosTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztBQUU5Qyw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBR3ZCOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsR0FBWSxFQUNaLElBQUksR0FBYyxXQUFXLENBQUMsT0FBTyxFQUNyQyxPQUFPLEdBQXdCLEVBQUU7SUFFakMsTUFBTSxFQUNKLEtBQUssR0FBRyxLQUFLLEVBQ2IsSUFBSSxHQUFHLElBQUksRUFDWCxZQUFZLEdBQUcsSUFBSSxFQUNuQixPQUFPLEVBQ1AsYUFBYSxHQUFHLG1CQUFtQixFQUFFLEdBQ3RDLEdBQUcsT0FBTyxDQUFDO0lBRVosOEVBQThFO0lBQzlFLGdGQUFnRjtJQUNoRiw2RUFBNkU7SUFDN0UsK0VBQStFO0lBQy9FLDhCQUE4QjtJQUM5QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWhELElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RCxNQUFNLE9BQU8sR0FBRyxPQUFPLGFBQWEsRUFBRSxDQUFDO1FBRXZDLE9B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bi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCBwaWNvIGZyb20gJ3BpY29jb2xvcnMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVFeGVjdXRpb25JZCB9IGZyb20gJy4uL2NvbmZpZy9jbGkuY29uc3RhbnRzLmpzJztcbmltcG9ydCB7XG4gIEVSUk9SX0NPREVTLFxuICB0eXBlIEVycm9yQ29kZSxcbiAgdHlwZSBFcnJvckhhbmRsZXJPcHRpb25zLFxuICB0eXBlIEF4aW9zRXJyb3JMaWtlLFxufSBmcm9tICcuLi90eXBlcy9pbmRleC5qcyc7XG5cbmNvbnN0IHsgYm9sZCwgZGltLCByZWQsIHllbGxvdywgY3lhbiB9ID0gcGljbztcblxuLy8gUmUtZXhwb3J0IGZvciBjb252ZW5pZW5jZVxuZXhwb3J0IHsgRVJST1JfQ09ERVMgfTtcbmV4cG9ydCB0eXBlIHsgRXJyb3JDb2RlIH07XG5cbi8qKlxuICogRm9ybWF0IGFuZCBoYW5kbGUgZXJyb3JzIHdpdGggY29sb3JlZCBvdXRwdXRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUVycm9yKFxuICBlcnI6IHVua25vd24sXG4gIGNvZGU6IEVycm9yQ29kZSA9IEVSUk9SX0NPREVTLkdFTkVSQUwsXG4gIG9wdGlvbnM6IEVycm9ySGFuZGxlck9wdGlvbnMgPSB7fSxcbik6IG5ldmVyIHtcbiAgY29uc3Qge1xuICAgIGRlYnVnID0gZmFsc2UsXG4gICAgZXhpdCA9IHRydWUsXG4gICAgbG9nVG9Db25zb2xlID0gdHJ1ZSxcbiAgICBjb250ZXh0LFxuICAgIGNvcnJlbGF0aW9uSWQgPSBnZW5lcmF0ZUV4ZWN1dGlvbklkKCksXG4gIH0gPSBvcHRpb25zO1xuXG4gIC8vIERlcml2ZSB0aGUgY2Fub25pY2FsIGV4aXQgY29kZSBmcm9tIHRoZSBBQ1RVQUwgZXJyb3IgKHNlZSByZXNvbHZlRXhpdENvZGUpLFxuICAvLyBmYWxsaW5nIGJhY2sgdG8gdGhlIGNhbGxlcidzIGBjb2RlYCBmb3IgYW55dGhpbmcgdW5jbGFzc2lmaWFibGUuIFRoaXMgaXMgd2hhdFxuICAvLyBtYWtlcyBldmVyeSBjb21tYW5kIGVtaXQgdGhlIFNBTUUgZXhpdCBjb2RlIGZvciB0aGUgc2FtZSBjbGFzcyBvZiBmYWlsdXJlLFxuICAvLyByYXRoZXIgdGhhbiBhIGJsYW5rZXQgQVBJX1JFUVVFU1QvR0VORVJBTC4gVXNlZCBmb3IgZGlzcGxheSwgdGhlIHN1Z2dlc3Rpb24sXG4gIC8vIGFuZCB0aGUgcHJvY2VzcyBleGl0IGJlbG93LlxuICBjb25zdCByZXNvbHZlZENvZGUgPSByZXNvbHZlRXhpdENvZGUoZXJyLCBjb2RlKTtcblxuICBpZiAobG9nVG9Db25zb2xlKSB7XG4gICAgY29uc3QgZGl2aWRlciA9ICfilIAnLnJlcGVhdChwcm9jZXNzLnN0ZG91dC5jb2x1bW5zIHx8IDgwKTtcbiAgICBjb25zdCBlcnJvcklkID0gYEVSUi0ke2NvcnJlbGF0aW9uSWR9YDtcblxuICAgIGNvbnNvbGUuZXJyb3IoJ1xcbicgKyByZWQoYm9sZCgn4pyXIEVSUk9SJykpICsgZGltKGAgWyR7ZXJyb3JJZH1dYCkgKyAnXFxuJyk7XG4gICAgY29uc29sZS5lcnJvcihkaW0oZGl2aWRlcikpO1xuXG4gICAgaWYgKGVyciBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHJlZChib2xkKCdNZXNzYWdlOicpKSwgZXJyLm1lc3NhZ2UpO1xuXG4gICAgICBpZiAoZXJyLm5hbWUgIT09ICdFcnJvcicpIHtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZWQoJ1R5cGU6JyksIGVyci5uYW1lKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2hvdyBWYWxpZGF0aW9uIGVycm9yIGRldGFpbHNcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IpIHtcbiAgICAgICAgaWYgKGVyci5maWVsZCkgY29uc29sZS5lcnJvcihyZWQoJ0ZpZWxkOicpLCBlcnIuZmllbGQpO1xuICAgICAgICBpZiAoZXJyLnZhbHVlICE9PSB1bmRlZmluZWQpIGNvbnNvbGUuZXJyb3IocmVkKCdWYWx1ZTonKSwgc2FuaXRpemVWYWx1ZShlcnIudmFsdWUpKTtcbiAgICAgICAgaWYgKGVyci5ydWxlKSBjb25zb2xlLmVycm9yKHJlZCgnUnVsZTonKSwgZXJyLnJ1bGUpO1xuICAgICAgICBpZiAoZXJyLmV4cGVjdGVkKSBjb25zb2xlLmVycm9yKHJlZCgnRXhwZWN0ZWQ6JyksIGVyci5leHBlY3RlZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNob3cgTmV0d29yayBlcnJvciBkZXRhaWxzXG4gICAgICBpZiAoZXJyIGluc3RhbmNlb2YgTmV0d29ya0Vycm9yKSB7XG4gICAgICAgIGlmIChlcnIudXJsKSBjb25zb2xlLmVycm9yKHJlZCgnVVJMOicpLCBzYW5pdGl6ZVVybChlcnIudXJsKSk7XG4gICAgICAgIGlmIChlcnIudGltZW91dCkgY29uc29sZS5lcnJvcihyZWQoJ1RpbWVvdXQ6JyksIGAke2Vyci50aW1lb3V0fW1zYCk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdSZXF1ZXN0IE1hZGU6JyksIGVyci5yZXF1ZXN0TWFkZSA/ICdZZXMnIDogJ05vJyk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdSZXNwb25zZSBSZWNlaXZlZDonKSwgZXJyLnJlc3BvbnNlUmVjZWl2ZWQgPyAnWWVzJyA6ICdObycpO1xuICAgICAgICBpZiAoZXJyLmNhdXNlKSBjb25zb2xlLmVycm9yKHJlZCgnQ2F1c2VkIGJ5OicpLCBlcnIuY2F1c2UubWVzc2FnZSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNob3cgQXhpb3MgZXJyb3IgZGV0YWlsc1xuICAgICAgaWYgKGlzQXhpb3NFcnJvcihlcnIpKSB7XG4gICAgICAgIGNvbnN0IHN0YXR1cyA9IGVyci5yZXNwb25zZT8uc3RhdHVzO1xuICAgICAgICBjb25zdCB1cmwgPSBlcnIuY29uZmlnPy51cmw7XG4gICAgICAgIGlmIChzdGF0dXMpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlZCgnU3RhdHVzOicpLCBzdGF0dXMpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdTdGF0dXMgVGV4dDonKSwgZ2V0SHR0cFN0YXR1c1RleHQoc3RhdHVzKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHVybCkgY29uc29sZS5lcnJvcihyZWQoJ1VSTDonKSwgc2FuaXRpemVVcmwodXJsKSk7XG4gICAgICAgIGlmIChlcnIucmVzcG9uc2U/LmRhdGEpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKHJlZCgnUmVzcG9uc2U6JykpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZGltKHNhbml0aXplRXJyb3JEYXRhKGVyci5yZXNwb25zZS5kYXRhKSkpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIFNob3cgQ0RLL2V4ZWNTeW5jIGVycm9yIGRldGFpbHMgKHN0ZGVyciBjYXB0dXJlZCBmcm9tIGNoaWxkIHByb2Nlc3MpXG4gICAgICBpZiAoJ3N0ZGVycicgaW4gZXJyICYmIGVyci5zdGRlcnIpIHtcbiAgICAgICAgY29uc3Qgc3RkZXJyID0gKGVyci5zdGRlcnIgYXMgQnVmZmVyIHwgc3RyaW5nKS50b1N0cmluZygpLnRyaW0oKTtcbiAgICAgICAgaWYgKHN0ZGVycikge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdDREsgT3V0cHV0OicpKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGRpbShzdGRlcnIpKTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKHJlZCgnQ29kZTonKSwgZ2V0RXJyb3JDb2RlTmFtZShyZXNvbHZlZENvZGUpKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZGltKCdFcnJvciBJRDonKSwgZGltKGVycm9ySWQpKTtcblxuICAgICAgaWYgKGNvbnRleHQgJiYgT2JqZWN0LmtleXMoY29udGV4dCkubGVuZ3RoID4gMCkge1xuICAgICAgICBjb25zb2xlLmVycm9yKCcnKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZWQoJ0NvbnRleHQ6JykpO1xuICAgICAgICBPYmplY3QuZW50cmllcyhjb250ZXh0KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGAgICR7Y3lhbihrZXkpfTpgLCBkaW0oc2FuaXRpemVWYWx1ZSh2YWx1ZSkpKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChkZWJ1ZyAmJiBlcnIuc3RhY2spIHtcbiAgICAgICAgY29uc29sZS5lcnJvcignJyk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZGltKCdTdGFjayB0cmFjZTonKSk7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZGltKHNhbml0aXplU3RhY2tUcmFjZShlcnIuc3RhY2spKSk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdFcnJvcjonKSwgU3RyaW5nKGVycikpO1xuICAgICAgY29uc29sZS5lcnJvcihyZWQoJ0NvZGU6JyksIGdldEVycm9yQ29kZU5hbWUocmVzb2x2ZWRDb2RlKSk7XG4gICAgICBjb25zb2xlLmVycm9yKGRpbSgnRXJyb3IgSUQ6JyksIGRpbShlcnJvcklkKSk7XG4gICAgfVxuXG4gICAgY29uc29sZS5lcnJvcihkaW0oZGl2aWRlcikpO1xuXG4gICAgaWYgKCFkZWJ1Zykge1xuICAgICAgY29uc29sZS5lcnJvcih5ZWxsb3coJ/CfkqEgVGlwOicpLCBkaW0oJ1J1biB3aXRoIC0tZGVidWcgZmxhZyB0byBzZWUgZnVsbCBzdGFjayB0cmFjZScpKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdWdnZXN0aW9uID0gZ2V0RXJyb3JTdWdnZXN0aW9uKGVyciwgcmVzb2x2ZWRDb2RlKTtcbiAgICBpZiAoc3VnZ2VzdGlvbikge1xuICAgICAgY29uc29sZS5lcnJvcih5ZWxsb3coJ/CfkqEgU3VnZ2VzdGlvbjonKSwgZGltKHN1Z2dlc3Rpb24pKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKCcnKTtcbiAgfVxuXG4gIGlmIChleGl0KSB7XG4gICAgcHJvY2Vzcy5leGl0Q29kZSA9IHJlc29sdmVkQ29kZTtcbiAgICBwcm9jZXNzLmV4aXQocmVzb2x2ZWRDb2RlKTtcbiAgfVxuXG4gIHRocm93IGVycjtcbn1cblxuLy8gLS0tIEVycm9yIGNsYXNzZXMgKG9ubHkgdGhvc2UgYWN0dWFsbHkgdXNlZCkgLS0tXG5cbi8qKlxuICogVmFsaWRhdGlvbiBlcnJvciBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgVmFsaWRhdGlvbkVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIGZpZWxkPzogc3RyaW5nLFxuICAgIHB1YmxpYyB2YWx1ZT86IHVua25vd24sXG4gICAgcHVibGljIHJ1bGU/OiBzdHJpbmcsXG4gICAgcHVibGljIGV4cGVjdGVkPzogc3RyaW5nLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnVmFsaWRhdGlvbkVycm9yJztcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxufVxuXG4vKipcbiAqIE5ldHdvcmsgZXJyb3IgY2xhc3NcbiAqL1xuZXhwb3J0IGNsYXNzIE5ldHdvcmtFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgY29uc3RydWN0b3IoXG4gICAgbWVzc2FnZTogc3RyaW5nLFxuICAgIHB1YmxpYyB1cmw/OiBzdHJpbmcsXG4gICAgcHVibGljIGNhdXNlPzogRXJyb3IsXG4gICAgcHVibGljIHRpbWVvdXQ/OiBudW1iZXIsXG4gICAgcHVibGljIHJlcXVlc3RNYWRlOiBib29sZWFuID0gdHJ1ZSxcbiAgICBwdWJsaWMgcmVzcG9uc2VSZWNlaXZlZDogYm9vbGVhbiA9IGZhbHNlLFxuICApIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICB0aGlzLm5hbWUgPSAnTmV0d29ya0Vycm9yJztcbiAgICBFcnJvci5jYXB0dXJlU3RhY2tUcmFjZSh0aGlzLCB0aGlzLmNvbnN0cnVjdG9yKTtcbiAgfVxufVxuXG4vLyAtLS0gUHJpdmF0ZSBoZWxwZXJzIC0tLVxuXG4vKipcbiAqIE1hcCB0aGUgQUNUVUFMIGVycm9yIHRvIGEgY2Fub25pY2FsIGV4aXQgY29kZSBzbyBldmVyeSBjb21tYW5kIGV4aXRzIHdpdGggdGhlXG4gKiBTQU1FIGNvZGUgZm9yIHRoZSBzYW1lIGNsYXNzIG9mIGZhaWx1cmUuIFRoZSBjYWxsZXItc3VwcGxpZWQgYGZhbGxiYWNrYCAoZS5nLlxuICogQVBJX1JFUVVFU1QpIGlzIHVzZWQgb25seSBmb3IgZXJyb3JzIHRoaXMgY2FuJ3QgY2xhc3NpZnkuIENvZGVzIChzcmMvdHlwZXMvZXJyb3IudHMpOlxuICpcbiAqICAgMSBHRU5FUkFMIMK3IDIgVkFMSURBVElPTiDCtyAzIEFQSV9SRVFVRVNUIMK3IDQgQVVUSEVOVElDQVRJT04gwrcgNSBBVVRIT1JJWkFUSU9OXG4gKiAgIDYgTk9UX0ZPVU5EIMK3IDcgTkVUV09SSyDCtyA4IENPTkZJR1VSQVRJT04gwrcgOSBGSUxFX1NZU1RFTSDCtyAxMCBUSU1FT1VUXG4gKlxuICogUHJlY2VkZW5jZTogdHlwZWQgQ0xJIGVycm9ycyDihpIgSFRUUCBzdGF0dXMg4oaSIE5vZGUgc3lzdGVtIGVycm9yIGBjb2RlYCDihpIgZmFsbGJhY2suXG4gKi9cbmZ1bmN0aW9uIHJlc29sdmVFeGl0Q29kZShlcnI6IHVua25vd24sIGZhbGxiYWNrOiBFcnJvckNvZGUpOiBFcnJvckNvZGUge1xuICBpZiAoZXJyIGluc3RhbmNlb2YgVmFsaWRhdGlvbkVycm9yKSByZXR1cm4gRVJST1JfQ09ERVMuVkFMSURBVElPTjtcbiAgaWYgKGVyciBpbnN0YW5jZW9mIE5ldHdvcmtFcnJvcikgcmV0dXJuIGVyci50aW1lb3V0ID8gRVJST1JfQ09ERVMuVElNRU9VVCA6IEVSUk9SX0NPREVTLk5FVFdPUks7XG5cbiAgaWYgKGlzQXhpb3NFcnJvcihlcnIpKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gZXJyLnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAwIHx8IHN0YXR1cyA9PT0gNDIyKSByZXR1cm4gRVJST1JfQ09ERVMuVkFMSURBVElPTjtcbiAgICBpZiAoc3RhdHVzID09PSA0MDEpIHJldHVybiBFUlJPUl9DT0RFUy5BVVRIRU5USUNBVElPTjtcbiAgICBpZiAoc3RhdHVzID09PSA0MDMpIHJldHVybiBFUlJPUl9DT0RFUy5BVVRIT1JJWkFUSU9OO1xuICAgIGlmIChzdGF0dXMgPT09IDQwNCkgcmV0dXJuIEVSUk9SX0NPREVTLk5PVF9GT1VORDtcbiAgICBpZiAoc3RhdHVzID09PSA0MDggfHwgc3RhdHVzID09PSA1MDQpIHJldHVybiBFUlJPUl9DT0RFUy5USU1FT1VUO1xuICAgIGlmIChzdGF0dXMgJiYgc3RhdHVzID49IDUwMCkgcmV0dXJuIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNUO1xuICAgIC8vIEEgcmVxdWVzdCB0aGF0IGdvdCBubyBIVFRQIHJlc3BvbnNlIG5ldmVyIHJlYWNoZWQgdGhlIHNlcnZlciAoRE5TIC8gcmVmdXNlZFxuICAgIC8vIC8gcmVzZXQpIOKAlCB0aGF0J3MgYSBuZXR3b3JrIGZhaWx1cmUsIG5vdCBhbiBBUEktcmVzcG9uc2UgZXJyb3IuXG4gICAgaWYgKCFlcnIucmVzcG9uc2UpIHJldHVybiBFUlJPUl9DT0RFUy5ORVRXT1JLO1xuICAgIHJldHVybiBmYWxsYmFjaztcbiAgfVxuXG4gIC8vIE5vZGUgc3lzdGVtIGVycm9ycyAoZnMgKyBzb2NrZXRzKSBjYXJyeSBhIHN0cmluZyBgY29kZWAuXG4gIGNvbnN0IHN5c0NvZGUgPSAoZXJyIGFzIHsgY29kZT86IHVua25vd24gfSB8IG51bGwpPy5jb2RlO1xuICBpZiAodHlwZW9mIHN5c0NvZGUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKFsnRU5PRU5UJywgJ0VBQ0NFUycsICdFSVNESVInLCAnRU5PVERJUicsICdFRVhJU1QnLCAnRVBFUk0nLCAnRU5PU1BDJywgJ0VNRklMRSddLmluY2x1ZGVzKHN5c0NvZGUpKSB7XG4gICAgICByZXR1cm4gRVJST1JfQ09ERVMuRklMRV9TWVNURU07XG4gICAgfVxuICAgIGlmIChzeXNDb2RlID09PSAnRVRJTUVET1VUJykgcmV0dXJuIEVSUk9SX0NPREVTLlRJTUVPVVQ7XG4gICAgaWYgKFsnRUNPTk5SRUZVU0VEJywgJ0VOT1RGT1VORCcsICdFQ09OTlJFU0VUJywgJ0VIT1NUVU5SRUFDSCcsICdFTkVUVU5SRUFDSCcsICdFQUlfQUdBSU4nLCAnRVBJUEUnXS5pbmNsdWRlcyhzeXNDb2RlKSkge1xuICAgICAgcmV0dXJuIEVSUk9SX0NPREVTLk5FVFdPUks7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIGZhbGxiYWNrO1xufVxuXG5mdW5jdGlvbiBnZXRFcnJvckNvZGVOYW1lKGNvZGU6IEVycm9yQ29kZSk6IHN0cmluZyB7XG4gIGNvbnN0IGVudHJ5ID0gT2JqZWN0LmVudHJpZXMoRVJST1JfQ09ERVMpLmZpbmQoKFtfLCB2YWx1ZV0pID0+IHZhbHVlID09PSBjb2RlKTtcbiAgcmV0dXJuIGVudHJ5ID8gYCR7ZW50cnlbMF19ICgke2NvZGV9KWAgOiBTdHJpbmcoY29kZSk7XG59XG5cbmZ1bmN0aW9uIGdldEh0dHBTdGF0dXNUZXh0KHN0YXR1czogbnVtYmVyKTogc3RyaW5nIHtcbiAgY29uc3Qgc3RhdHVzVGV4dHM6IFJlY29yZDxudW1iZXIsIHN0cmluZz4gPSB7XG4gICAgNDAwOiAnQmFkIFJlcXVlc3QnLFxuICAgIDQwMTogJ1VuYXV0aG9yaXplZCcsXG4gICAgNDAzOiAnRm9yYmlkZGVuJyxcbiAgICA0MDQ6ICdOb3QgRm91bmQnLFxuICAgIDQwODogJ1JlcXVlc3QgVGltZW91dCcsXG4gICAgNDA5OiAnQ29uZmxpY3QnLFxuICAgIDQyMjogJ1VucHJvY2Vzc2FibGUgRW50aXR5JyxcbiAgICA0Mjk6ICdUb28gTWFueSBSZXF1ZXN0cycsXG4gICAgNTAwOiAnSW50ZXJuYWwgU2VydmVyIEVycm9yJyxcbiAgICA1MDI6ICdCYWQgR2F0ZXdheScsXG4gICAgNTAzOiAnU2VydmljZSBVbmF2YWlsYWJsZScsXG4gICAgNTA0OiAnR2F0ZXdheSBUaW1lb3V0JyxcbiAgfTtcbiAgcmV0dXJuIHN0YXR1c1RleHRzW3N0YXR1c10gfHwgJ1Vua25vd24nO1xufVxuXG5mdW5jdGlvbiBnZXRFcnJvclN1Z2dlc3Rpb24oZXJyOiB1bmtub3duLCBjb2RlOiBFcnJvckNvZGUpOiBzdHJpbmcgfCBudWxsIHtcbiAgaWYgKGNvZGUgPT09IEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OKSB7XG4gICAgcmV0dXJuICdDaGVjayB0aGF0IFBMQVRGT1JNX1RPS0VOIGVudmlyb25tZW50IHZhcmlhYmxlIGlzIHNldCBjb3JyZWN0bHknO1xuICB9XG4gIGlmIChjb2RlID09PSBFUlJPUl9DT0RFUy5ORVRXT1JLKSB7XG4gICAgcmV0dXJuICdDaGVjayB5b3VyIGludGVybmV0IGNvbm5lY3Rpb24gYW5kIEFQSSBlbmRwb2ludCBVUkwnO1xuICB9XG4gIGlmIChjb2RlID09PSBFUlJPUl9DT0RFUy5DT05GSUdVUkFUSU9OKSB7XG4gICAgcmV0dXJuICdSdW4gXCJjbGkgdmVyc2lvbiAtLWNoZWNrLWNvbmZpZ1wiIHRvIHZlcmlmeSBjb25maWd1cmF0aW9uJztcbiAgfVxuICBpZiAoY29kZSA9PT0gRVJST1JfQ09ERVMuTk9UX0ZPVU5EKSB7XG4gICAgcmV0dXJuICdWZXJpZnkgdGhlIHJlc291cmNlIElEIGV4aXN0cyBhbmQgeW91IGhhdmUgYWNjZXNzIHRvIGl0JztcbiAgfVxuICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IgJiYgZXJyLm1lc3NhZ2UuaW5jbHVkZXMoJ2NkaycpKSB7XG4gICAgcmV0dXJuICdDaGVjayB0aGUgQ0RLIG91dHB1dCBhYm92ZSBmb3IgQ2xvdWRGb3JtYXRpb24gZXJyb3JzLiBSdW4gd2l0aCAtLWRlYnVnIGZvciBmdWxsIGRldGFpbHMnO1xuICB9XG4gIGlmIChlcnIgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IgJiYgZXJyLmZpZWxkKSB7XG4gICAgcmV0dXJuIGBDaGVjayB0aGUgdmFsdWUgcHJvdmlkZWQgZm9yIFwiJHtlcnIuZmllbGR9XCJgO1xuICB9XG4gIGlmIChpc0F4aW9zRXJyb3IoZXJyKSkge1xuICAgIGNvbnN0IHN0YXR1cyA9IGVyci5yZXNwb25zZT8uc3RhdHVzO1xuICAgIGlmIChzdGF0dXMgPT09IDQwMSB8fCBzdGF0dXMgPT09IDQwMykgcmV0dXJuICdDaGVjayB5b3VyIGF1dGhlbnRpY2F0aW9uIHRva2VuIGFuZCBwZXJtaXNzaW9ucyc7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDI5KSByZXR1cm4gJ1JhdGUgbGltaXQgZXhjZWVkZWQgLSB3YWl0IGEgbW9tZW50IGJlZm9yZSByZXRyeWluZyc7XG4gICAgaWYgKHN0YXR1cyAmJiBzdGF0dXMgPj0gNTAwKSByZXR1cm4gJ1NlcnZlciBlcnJvciAtIHRyeSBhZ2FpbiBsYXRlciBvciBjb250YWN0IHN1cHBvcnQnO1xuICB9XG4gIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBzYW5pdGl6ZUVycm9yRGF0YShkYXRhOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnc3RyaW5nJykgcmV0dXJuIGRhdGE7XG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gJ29iamVjdCcgJiYgZGF0YSAhPT0gbnVsbCkge1xuICAgIGNvbnN0IHNhbml0aXplZCA9IHsgLi4uZGF0YSB9IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgIFsndG9rZW4nLCAncGFzc3dvcmQnLCAnc2VjcmV0JywgJ2FwaUtleScsICdhdXRob3JpemF0aW9uJywgJ2p3dCcsICdjcmVkZW50aWFsJywgJ2JlYXJlciddLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgaWYgKGZpZWxkIGluIHNhbml0aXplZCkgc2FuaXRpemVkW2ZpZWxkXSA9ICdbUkVEQUNURURdJztcbiAgICB9KTtcbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkoc2FuaXRpemVkLCBudWxsLCAyKTtcbiAgfVxuICByZXR1cm4gU3RyaW5nKGRhdGEpO1xufVxuXG5mdW5jdGlvbiBzYW5pdGl6ZVVybCh1cmw6IHN0cmluZyk6IHN0cmluZyB7XG4gIHRyeSB7XG4gICAgY29uc3QgdXJsT2JqID0gbmV3IFVSTCh1cmwpO1xuICAgIFsndG9rZW4nLCAna2V5JywgJ3NlY3JldCcsICdwYXNzd29yZCcsICdhcGlLZXknXS5mb3JFYWNoKHBhcmFtID0+IHtcbiAgICAgIGlmICh1cmxPYmouc2VhcmNoUGFyYW1zLmhhcyhwYXJhbSkpIHVybE9iai5zZWFyY2hQYXJhbXMuc2V0KHBhcmFtLCAnW1JFREFDVEVEXScpO1xuICAgIH0pO1xuICAgIHJldHVybiB1cmxPYmoudG9TdHJpbmcoKTtcbiAgfSBjYXRjaCB7XG4gICAgcmV0dXJuIHVybDtcbiAgfVxufVxuXG5mdW5jdGlvbiBzYW5pdGl6ZVZhbHVlKHZhbHVlOiB1bmtub3duKTogc3RyaW5nIHtcbiAgaWYgKHZhbHVlID09PSBudWxsKSByZXR1cm4gJ251bGwnO1xuICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkgcmV0dXJuICd1bmRlZmluZWQnO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIGlmICh2YWx1ZS5sZW5ndGggPiAyMCAmJiAvXltBLVphLXowLTkrLz1fLV0rJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBgJHt2YWx1ZS5zdWJzdHJpbmcoMCwgOCl9Li4uW1JFREFDVEVEXWA7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPiAxMDAgPyB2YWx1ZS5zdWJzdHJpbmcoMCwgOTcpICsgJy4uLicgOiB2YWx1ZTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JykgcmV0dXJuIHNhbml0aXplRXJyb3JEYXRhKHZhbHVlKTtcbiAgY29uc3Qgc3RyID0gU3RyaW5nKHZhbHVlKTtcbiAgcmV0dXJuIHN0ci5sZW5ndGggPiAxMDAgPyBzdHIuc3Vic3RyaW5nKDAsIDk3KSArICcuLi4nIDogc3RyO1xufVxuXG5mdW5jdGlvbiBzYW5pdGl6ZVN0YWNrVHJhY2Uoc3RhY2s6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzdGFjay5zcGxpdCgnXFxuJykuc2xpY2UoMCwgMTApLm1hcChsaW5lID0+IGxpbmUucmVwbGFjZSgvXFwvLio/XFwvL2csICcuLi4vJykpLmpvaW4oJ1xcbicpO1xufVxuXG5mdW5jdGlvbiBpc0F4aW9zRXJyb3IoZXJyOiB1bmtub3duKTogZXJyIGlzIEF4aW9zRXJyb3JMaWtlIHtcbiAgcmV0dXJuIChcbiAgICB0eXBlb2YgZXJyID09PSAnb2JqZWN0JyAmJlxuICAgIGVyciAhPT0gbnVsbCAmJlxuICAgICdpc0F4aW9zRXJyb3InIGluIGVyciAmJlxuICAgIChlcnIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pLmlzQXhpb3NFcnJvciA9PT0gdHJ1ZVxuICApO1xufVxuIl19
|
|
309
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3ItaGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy91dGlscy9lcnJvci1oYW5kbGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLCtDQUErQztBQUMvQyxzQ0FBc0M7QUFFdEMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdEUsT0FBTyxJQUFJLE1BQU0sWUFBWSxDQUFDO0FBQzlCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pFLE9BQU8sRUFDTCxXQUFXLEdBSVosTUFBTSxtQkFBbUIsQ0FBQztBQUUzQixNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLElBQUksQ0FBQztBQUU5Qyw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDO0FBR3ZCOztHQUVHO0FBQ0gsTUFBTSxVQUFVLFdBQVcsQ0FDekIsR0FBWSxFQUNaLElBQUksR0FBYyxXQUFXLENBQUMsT0FBTyxFQUNyQyxPQUFPLEdBQXdCLEVBQUU7SUFFakMsTUFBTSxFQUNKLEtBQUssR0FBRyxLQUFLLEVBQ2IsSUFBSSxHQUFHLElBQUksRUFDWCxZQUFZLEdBQUcsSUFBSSxFQUNuQixPQUFPLEVBQ1AsYUFBYSxHQUFHLG1CQUFtQixFQUFFLEdBQ3RDLEdBQUcsT0FBTyxDQUFDO0lBRVosOEVBQThFO0lBQzlFLGdGQUFnRjtJQUNoRiw2RUFBNkU7SUFDN0UsK0VBQStFO0lBQy9FLDhCQUE4QjtJQUM5QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRWhELElBQUksWUFBWSxFQUFFLENBQUM7UUFDakIsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6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QUNoQyxPQUFPLENBQ0wsT0FBTyxHQUFHLEtBQUssUUFBUTtRQUN2QixHQUFHLEtBQUssSUFBSTtRQUNaLGNBQWMsSUFBSSxHQUFHO1FBQ3BCLEdBQStCLENBQUMsWUFBWSxLQUFLLElBQUksQ0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgaXNRdW90YUV4Y2VlZGVkQm9keSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHBpY28gZnJvbSAncGljb2NvbG9ycyc7XG5pbXBvcnQgeyBnZW5lcmF0ZUV4ZWN1dGlvbklkIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHtcbiAgRVJST1JfQ09ERVMsXG4gIHR5cGUgRXJyb3JDb2RlLFxuICB0eXBlIEVycm9ySGFuZGxlck9wdGlvbnMsXG4gIHR5cGUgQXhpb3NFcnJvckxpa2UsXG59IGZyb20gJy4uL3R5cGVzL2luZGV4LmpzJztcblxuY29uc3QgeyBib2xkLCBkaW0sIHJlZCwgeWVsbG93LCBjeWFuIH0gPSBwaWNvO1xuXG4vLyBSZS1leHBvcnQgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgeyBFUlJPUl9DT0RFUyB9O1xuZXhwb3J0IHR5cGUgeyBFcnJvckNvZGUgfTtcblxuLyoqXG4gKiBGb3JtYXQgYW5kIGhhbmRsZSBlcnJvcnMgd2l0aCBjb2xvcmVkIG91dHB1dFxuICovXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlRXJyb3IoXG4gIGVycjogdW5rbm93bixcbiAgY29kZTogRXJyb3JDb2RlID0gRVJST1JfQ09ERVMuR0VORVJBTCxcbiAgb3B0aW9uczogRXJyb3JIYW5kbGVyT3B0aW9ucyA9IHt9LFxuKTogbmV2ZXIge1xuICBjb25zdCB7XG4gICAgZGVidWcgPSBmYWxzZSxcbiAgICBleGl0ID0gdHJ1ZSxcbiAgICBsb2dUb0NvbnNvbGUgPSB0cnVlLFxuICAgIGNvbnRleHQsXG4gICAgY29ycmVsYXRpb25JZCA9IGdlbmVyYXRlRXhlY3V0aW9uSWQoKSxcbiAgfSA9IG9wdGlvbnM7XG5cbiAgLy8gRGVyaXZlIHRoZSBjYW5vbmljYWwgZXhpdCBjb2RlIGZyb20gdGhlIEFDVFVBTCBlcnJvciAoc2VlIHJlc29sdmVFeGl0Q29kZSksXG4gIC8vIGZhbGxpbmcgYmFjayB0byB0aGUgY2FsbGVyJ3MgYGNvZGVgIGZvciBhbnl0aGluZyB1bmNsYXNzaWZpYWJsZS4gVGhpcyBpcyB3aGF0XG4gIC8vIG1ha2VzIGV2ZXJ5IGNvbW1hbmQgZW1pdCB0aGUgU0FNRSBleGl0IGNvZGUgZm9yIHRoZSBzYW1lIGNsYXNzIG9mIGZhaWx1cmUsXG4gIC8vIHJhdGhlciB0aGFuIGEgYmxhbmtldCBBUElfUkVRVUVTVC9HRU5FUkFMLiBVc2VkIGZvciBkaXNwbGF5LCB0aGUgc3VnZ2VzdGlvbixcbiAgLy8gYW5kIHRoZSBwcm9jZXNzIGV4aXQgYmVsb3cuXG4gIGNvbnN0IHJlc29sdmVkQ29kZSA9IHJlc29sdmVFeGl0Q29kZShlcnIsIGNvZGUpO1xuXG4gIGlmIChsb2dUb0NvbnNvbGUpIHtcbiAgICBjb25zdCBkaXZpZGVyID0gJ+KUgCcucmVwZWF0KHByb2Nlc3Muc3Rkb3V0LmNvbHVtbnMgfHwgODApO1xuICAgIGNvbnN0IGVycm9ySWQgPSBgRVJSLSR7Y29ycmVsYXRpb25JZH1gO1xuXG4gICAgY29uc29sZS5lcnJvcignXFxuJyArIHJlZChib2xkKCfinJcgRVJST1InKSkgKyBkaW0oYCBbJHtlcnJvcklkfV1gKSArICdcXG4nKTtcbiAgICBjb25zb2xlLmVycm9yKGRpbShkaXZpZGVyKSk7XG5cbiAgICBpZiAoZXJyIGluc3RhbmNlb2YgRXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IocmVkKGJvbGQoJ01lc3NhZ2U6JykpLCBlcnIubWVzc2FnZSk7XG5cbiAgICAgIGlmIChlcnIubmFtZSAhPT0gJ0Vycm9yJykge1xuICAgICAgICBjb25zb2xlLmVycm9yKHJlZCgnVHlwZTonKSwgZXJyLm5hbWUpO1xuICAgICAgfVxuXG4gICAgICAvLyBTaG93IFZhbGlkYXRpb24gZXJyb3IgZGV0YWlsc1xuICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFZhbGlkYXRpb25FcnJvcikge1xuICAgICAgICBpZiAoZXJyLmZpZWxkKSBjb25zb2xlLmVycm9yKHJlZCgnRmllbGQ6JyksIGVyci5maWVsZCk7XG4gICAgICAgIGlmIChlcnIudmFsdWUgIT09IHVuZGVmaW5lZCkgY29uc29sZS5lcnJvcihyZWQoJ1ZhbHVlOicpLCBzYW5pdGl6ZVZhbHVlKGVyci52YWx1ZSkpO1xuICAgICAgICBpZiAoZXJyLnJ1bGUpIGNvbnNvbGUuZXJyb3IocmVkKCdSdWxlOicpLCBlcnIucnVsZSk7XG4gICAgICAgIGlmIChlcnIuZXhwZWN0ZWQpIGNvbnNvbGUuZXJyb3IocmVkKCdFeHBlY3RlZDonKSwgZXJyLmV4cGVjdGVkKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2hvdyBOZXR3b3JrIGVycm9yIGRldGFpbHNcbiAgICAgIGlmIChlcnIgaW5zdGFuY2VvZiBOZXR3b3JrRXJyb3IpIHtcbiAgICAgICAgaWYgKGVyci51cmwpIGNvbnNvbGUuZXJyb3IocmVkKCdVUkw6JyksIHNhbml0aXplVXJsKGVyci51cmwpKTtcbiAgICAgICAgaWYgKGVyci50aW1lb3V0KSBjb25zb2xlLmVycm9yKHJlZCgnVGltZW91dDonKSwgYCR7ZXJyLnRpbWVvdXR9bXNgKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZWQoJ1JlcXVlc3QgTWFkZTonKSwgZXJyLnJlcXVlc3RNYWRlID8gJ1llcycgOiAnTm8nKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihyZWQoJ1Jlc3BvbnNlIFJlY2VpdmVkOicpLCBlcnIucmVzcG9uc2VSZWNlaXZlZCA/ICdZZXMnIDogJ05vJyk7XG4gICAgICAgIGlmIChlcnIuY2F1c2UpIGNvbnNvbGUuZXJyb3IocmVkKCdDYXVzZWQgYnk6JyksIGVyci5jYXVzZS5tZXNzYWdlKTtcbiAgICAgIH1cblxuICAgICAgLy8gU2hvdyBBeGlvcyBlcnJvciBkZXRhaWxzXG4gICAgICBpZiAoaXNBeGlvc0Vycm9yKGVycikpIHtcbiAgICAgICAgY29uc3Qgc3RhdHVzID0gZXJyLnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgICAgIGNvbnN0IHVybCA9IGVyci5jb25maWc/LnVybDtcbiAgICAgICAgaWYgKHN0YXR1cykge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdTdGF0dXM6JyksIHN0YXR1cyk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihyZWQoJ1N0YXR1cyBUZXh0OicpLCBnZXRIdHRwU3RhdHVzVGV4dChzdGF0dXMpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodXJsKSBjb25zb2xlLmVycm9yKHJlZCgnVVJMOicpLCBzYW5pdGl6ZVVybCh1cmwpKTtcbiAgICAgICAgaWYgKGVyci5yZXNwb25zZT8uZGF0YSkge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdSZXNwb25zZTonKSk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihkaW0oc2FuaXRpemVFcnJvckRhdGEoZXJyLnJlc3BvbnNlLmRhdGEpKSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2hvdyBDREsvZXhlY1N5bmMgZXJyb3IgZGV0YWlscyAoc3RkZXJyIGNhcHR1cmVkIGZyb20gY2hpbGQgcHJvY2VzcylcbiAgICAgIGlmICgnc3RkZXJyJyBpbiBlcnIgJiYgZXJyLnN0ZGVycikge1xuICAgICAgICBjb25zdCBzdGRlcnIgPSAoZXJyLnN0ZGVyciBhcyBCdWZmZXIgfCBzdHJpbmcpLnRvU3RyaW5nKCkudHJpbSgpO1xuICAgICAgICBpZiAoc3RkZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihyZWQoJ0NESyBPdXRwdXQ6JykpO1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZGltKHN0ZGVycikpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnNvbGUuZXJyb3IocmVkKCdDb2RlOicpLCBnZXRFcnJvckNvZGVOYW1lKHJlc29sdmVkQ29kZSkpO1xuICAgICAgY29uc29sZS5lcnJvcihkaW0oJ0Vycm9yIElEOicpLCBkaW0oZXJyb3JJZCkpO1xuXG4gICAgICBpZiAoY29udGV4dCAmJiBPYmplY3Qua2V5cyhjb250ZXh0KS5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJycpO1xuICAgICAgICBjb25zb2xlLmVycm9yKHJlZCgnQ29udGV4dDonKSk7XG4gICAgICAgIE9iamVjdC5lbnRyaWVzKGNvbnRleHQpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYCAgJHtjeWFuKGtleSl9OmAsIGRpbShzYW5pdGl6ZVZhbHVlKHZhbHVlKSkpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgaWYgKGRlYnVnICYmIGVyci5zdGFjaykge1xuICAgICAgICBjb25zb2xlLmVycm9yKCcnKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihkaW0oJ1N0YWNrIHRyYWNlOicpKTtcbiAgICAgICAgY29uc29sZS5lcnJvcihkaW0oc2FuaXRpemVTdGFja1RyYWNlKGVyci5zdGFjaykpKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS5lcnJvcihyZWQoJ0Vycm9yOicpLCBTdHJpbmcoZXJyKSk7XG4gICAgICBjb25zb2xlLmVycm9yKHJlZCgnQ29kZTonKSwgZ2V0RXJyb3JDb2RlTmFtZShyZXNvbHZlZENvZGUpKTtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZGltKCdFcnJvciBJRDonKSwgZGltKGVycm9ySWQpKTtcbiAgICB9XG5cbiAgICBjb25zb2xlLmVycm9yKGRpbShkaXZpZGVyKSk7XG5cbiAgICBpZiAoIWRlYnVnKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHllbGxvdygn8J+SoSBUaXA6JyksIGRpbSgnUnVuIHdpdGggLS1kZWJ1ZyBmbGFnIHRvIHNlZSBmdWxsIHN0YWNrIHRyYWNlJykpO1xuICAgIH1cblxuICAgIGNvbnN0IHN1Z2dlc3Rpb24gPSBnZXRFcnJvclN1Z2dlc3Rpb24oZXJyLCByZXNvbHZlZENvZGUpO1xuICAgIGlmIChzdWdnZXN0aW9uKSB7XG4gICAgICBjb25zb2xlLmVycm9yKHllbGxvdygn8J+SoSBTdWdnZXN0aW9uOicpLCBkaW0oc3VnZ2VzdGlvbikpO1xuICAgIH1cblxuICAgIGNvbnNvbGUuZXJyb3IoJycpO1xuICB9XG5cbiAgaWYgKGV4aXQpIHtcbiAgICBwcm9jZXNzLmV4aXRDb2RlID0gcmVzb2x2ZWRDb2RlO1xuICAgIHByb2Nlc3MuZXhpdChyZXNvbHZlZENvZGUpO1xuICB9XG5cbiAgdGhyb3cgZXJyO1xufVxuXG4vLyAtLS0gRXJyb3IgY2xhc3NlcyAob25seSB0aG9zZSBhY3R1YWxseSB1c2VkKSAtLS1cblxuLyoqXG4gKiBWYWxpZGF0aW9uIGVycm9yIGNsYXNzXG4gKi9cbmV4cG9ydCBjbGFzcyBWYWxpZGF0aW9uRXJyb3IgZXh0ZW5kcyBFcnJvciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBwdWJsaWMgZmllbGQ/OiBzdHJpbmcsXG4gICAgcHVibGljIHZhbHVlPzogdW5rbm93bixcbiAgICBwdWJsaWMgcnVsZT86IHN0cmluZyxcbiAgICBwdWJsaWMgZXhwZWN0ZWQ/OiBzdHJpbmcsXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdWYWxpZGF0aW9uRXJyb3InO1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICB9XG59XG5cbi8qKlxuICogTmV0d29yayBlcnJvciBjbGFzc1xuICovXG5leHBvcnQgY2xhc3MgTmV0d29ya0Vycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihcbiAgICBtZXNzYWdlOiBzdHJpbmcsXG4gICAgcHVibGljIHVybD86IHN0cmluZyxcbiAgICBwdWJsaWMgY2F1c2U/OiBFcnJvcixcbiAgICBwdWJsaWMgdGltZW91dD86IG51bWJlcixcbiAgICBwdWJsaWMgcmVxdWVzdE1hZGU6IGJvb2xlYW4gPSB0cnVlLFxuICAgIHB1YmxpYyByZXNwb25zZVJlY2VpdmVkOiBib29sZWFuID0gZmFsc2UsXG4gICkge1xuICAgIHN1cGVyKG1lc3NhZ2UpO1xuICAgIHRoaXMubmFtZSA9ICdOZXR3b3JrRXJyb3InO1xuICAgIEVycm9yLmNhcHR1cmVTdGFja1RyYWNlKHRoaXMsIHRoaXMuY29uc3RydWN0b3IpO1xuICB9XG59XG5cbi8vIC0tLSBQcml2YXRlIGhlbHBlcnMgLS0tXG5cbi8qKlxuICogTWFwIHRoZSBBQ1RVQUwgZXJyb3IgdG8gYSBjYW5vbmljYWwgZXhpdCBjb2RlIHNvIGV2ZXJ5IGNvbW1hbmQgZXhpdHMgd2l0aCB0aGVcbiAqIFNBTUUgY29kZSBmb3IgdGhlIHNhbWUgY2xhc3Mgb2YgZmFpbHVyZS4gVGhlIGNhbGxlci1zdXBwbGllZCBgZmFsbGJhY2tgIChlLmcuXG4gKiBBUElfUkVRVUVTVCkgaXMgdXNlZCBvbmx5IGZvciBlcnJvcnMgdGhpcyBjYW4ndCBjbGFzc2lmeS4gQ29kZXMgKHNyYy90eXBlcy9lcnJvci50cyk6XG4gKlxuICogICAxIEdFTkVSQUwgwrcgMiBWQUxJREFUSU9OIMK3IDMgQVBJX1JFUVVFU1QgwrcgNCBBVVRIRU5USUNBVElPTiDCtyA1IEFVVEhPUklaQVRJT05cbiAqICAgNiBOT1RfRk9VTkQgwrcgNyBORVRXT1JLIMK3IDggQ09ORklHVVJBVElPTiDCtyA5IEZJTEVfU1lTVEVNIMK3IDEwIFRJTUVPVVRcbiAqXG4gKiBQcmVjZWRlbmNlOiB0eXBlZCBDTEkgZXJyb3JzIOKGkiBIVFRQIHN0YXR1cyDihpIgTm9kZSBzeXN0ZW0gZXJyb3IgYGNvZGVgIOKGkiBmYWxsYmFjay5cbiAqL1xuZnVuY3Rpb24gcmVzb2x2ZUV4aXRDb2RlKGVycjogdW5rbm93biwgZmFsbGJhY2s6IEVycm9yQ29kZSk6IEVycm9yQ29kZSB7XG4gIGlmIChlcnIgaW5zdGFuY2VvZiBWYWxpZGF0aW9uRXJyb3IpIHJldHVybiBFUlJPUl9DT0RFUy5WQUxJREFUSU9OO1xuICBpZiAoZXJyIGluc3RhbmNlb2YgTmV0d29ya0Vycm9yKSByZXR1cm4gZXJyLnRpbWVvdXQgPyBFUlJPUl9DT0RFUy5USU1FT1VUIDogRVJST1JfQ09ERVMuTkVUV09SSztcblxuICBpZiAoaXNBeGlvc0Vycm9yKGVycikpIHtcbiAgICBjb25zdCBzdGF0dXMgPSBlcnIucmVzcG9uc2U/LnN0YXR1cztcbiAgICBpZiAoc3RhdHVzID09PSA0MDAgfHwgc3RhdHVzID09PSA0MjIpIHJldHVybiBFUlJPUl9DT0RFUy5WQUxJREFUSU9OO1xuICAgIGlmIChzdGF0dXMgPT09IDQwMSkgcmV0dXJuIEVSUk9SX0NPREVTLkFVVEhFTlRJQ0FUSU9OO1xuICAgIGlmIChzdGF0dXMgPT09IDQwMykgcmV0dXJuIEVSUk9SX0NPREVTLkFVVEhPUklaQVRJT047XG4gICAgaWYgKHN0YXR1cyA9PT0gNDA0KSByZXR1cm4gRVJST1JfQ09ERVMuTk9UX0ZPVU5EO1xuICAgIGlmIChzdGF0dXMgPT09IDQwOCB8fCBzdGF0dXMgPT09IDUwNCkgcmV0dXJuIEVSUk9SX0NPREVTLlRJTUVPVVQ7XG4gICAgaWYgKHN0YXR1cyAmJiBzdGF0dXMgPj0gNTAwKSByZXR1cm4gRVJST1JfQ09ERVMuQVBJX1JFUVVFU1Q7XG4gICAgLy8gQSByZXF1ZXN0IHRoYXQgZ290IG5vIEhUVFAgcmVzcG9uc2UgbmV2ZXIgcmVhY2hlZCB0aGUgc2VydmVyIChETlMgLyByZWZ1c2VkXG4gICAgLy8gLyByZXNldCkg4oCUIHRoYXQncyBhIG5ldHdvcmsgZmFpbHVyZSwgbm90IGFuIEFQSS1yZXNwb25zZSBlcnJvci5cbiAgICBpZiAoIWVyci5yZXNwb25zZSkgcmV0dXJuIEVSUk9SX0NPREVTLk5FVFdPUks7XG4gICAgcmV0dXJuIGZhbGxiYWNrO1xuICB9XG5cbiAgLy8gTm9kZSBzeXN0ZW0gZXJyb3JzIChmcyArIHNvY2tldHMpIGNhcnJ5IGEgc3RyaW5nIGBjb2RlYC5cbiAgY29uc3Qgc3lzQ29kZSA9IChlcnIgYXMgeyBjb2RlPzogdW5rbm93biB9IHwgbnVsbCk/LmNvZGU7XG4gIGlmICh0eXBlb2Ygc3lzQ29kZSA9PT0gJ3N0cmluZycpIHtcbiAgICBpZiAoWydFTk9FTlQnLCAnRUFDQ0VTJywgJ0VJU0RJUicsICdFTk9URElSJywgJ0VFWElTVCcsICdFUEVSTScsICdFTk9TUEMnLCAnRU1GSUxFJ10uaW5jbHVkZXMoc3lzQ29kZSkpIHtcbiAgICAgIHJldHVybiBFUlJPUl9DT0RFUy5GSUxFX1NZU1RFTTtcbiAgICB9XG4gICAgaWYgKHN5c0NvZGUgPT09ICdFVElNRURPVVQnKSByZXR1cm4gRVJST1JfQ09ERVMuVElNRU9VVDtcbiAgICBpZiAoWydFQ09OTlJFRlVTRUQnLCAnRU5PVEZPVU5EJywgJ0VDT05OUkVTRVQnLCAnRUhPU1RVTlJFQUNIJywgJ0VORVRVTlJFQUNIJywgJ0VBSV9BR0FJTicsICdFUElQRSddLmluY2x1ZGVzKHN5c0NvZGUpKSB7XG4gICAgICByZXR1cm4gRVJST1JfQ09ERVMuTkVUV09SSztcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsbGJhY2s7XG59XG5cbmZ1bmN0aW9uIGdldEVycm9yQ29kZU5hbWUoY29kZTogRXJyb3JDb2RlKTogc3RyaW5nIHtcbiAgY29uc3QgZW50cnkgPSBPYmplY3QuZW50cmllcyhFUlJPUl9DT0RFUykuZmluZCgoW18sIHZhbHVlXSkgPT4gdmFsdWUgPT09IGNvZGUpO1xuICByZXR1cm4gZW50cnkgPyBgJHtlbnRyeVswXX0gKCR7Y29kZX0pYCA6IFN0cmluZyhjb2RlKTtcbn1cblxuZnVuY3Rpb24gZ2V0SHR0cFN0YXR1c1RleHQoc3RhdHVzOiBudW1iZXIpOiBzdHJpbmcge1xuICBjb25zdCBzdGF0dXNUZXh0czogUmVjb3JkPG51bWJlciwgc3RyaW5nPiA9IHtcbiAgICA0MDA6ICdCYWQgUmVxdWVzdCcsXG4gICAgNDAxOiAnVW5hdXRob3JpemVkJyxcbiAgICA0MDM6ICdGb3JiaWRkZW4nLFxuICAgIDQwNDogJ05vdCBGb3VuZCcsXG4gICAgNDA4OiAnUmVxdWVzdCBUaW1lb3V0JyxcbiAgICA0MDk6ICdDb25mbGljdCcsXG4gICAgNDIyOiAnVW5wcm9jZXNzYWJsZSBFbnRpdHknLFxuICAgIDQyOTogJ1RvbyBNYW55IFJlcXVlc3RzJyxcbiAgICA1MDA6ICdJbnRlcm5hbCBTZXJ2ZXIgRXJyb3InLFxuICAgIDUwMjogJ0JhZCBHYXRld2F5JyxcbiAgICA1MDM6ICdTZXJ2aWNlIFVuYXZhaWxhYmxlJyxcbiAgICA1MDQ6ICdHYXRld2F5IFRpbWVvdXQnLFxuICB9O1xuICByZXR1cm4gc3RhdHVzVGV4dHNbc3RhdHVzXSB8fCAnVW5rbm93bic7XG59XG5cbmZ1bmN0aW9uIGdldEVycm9yU3VnZ2VzdGlvbihlcnI6IHVua25vd24sIGNvZGU6IEVycm9yQ29kZSk6IHN0cmluZyB8IG51bGwge1xuICBpZiAoY29kZSA9PT0gRVJST1JfQ09ERVMuQVVUSEVOVElDQVRJT04pIHtcbiAgICByZXR1cm4gJ0NoZWNrIHRoYXQgUExBVEZPUk1fVE9LRU4gZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgc2V0IGNvcnJlY3RseSc7XG4gIH1cbiAgaWYgKGNvZGUgPT09IEVSUk9SX0NPREVTLk5FVFdPUkspIHtcbiAgICByZXR1cm4gJ0NoZWNrIHlvdXIgaW50ZXJuZXQgY29ubmVjdGlvbiBhbmQgQVBJIGVuZHBvaW50IFVSTCc7XG4gIH1cbiAgaWYgKGNvZGUgPT09IEVSUk9SX0NPREVTLkNPTkZJR1VSQVRJT04pIHtcbiAgICByZXR1cm4gJ1J1biBcImNsaSB2ZXJzaW9uIC0tY2hlY2stY29uZmlnXCIgdG8gdmVyaWZ5IGNvbmZpZ3VyYXRpb24nO1xuICB9XG4gIGlmIChjb2RlID09PSBFUlJPUl9DT0RFUy5OT1RfRk9VTkQpIHtcbiAgICByZXR1cm4gJ1ZlcmlmeSB0aGUgcmVzb3VyY2UgSUQgZXhpc3RzIGFuZCB5b3UgaGF2ZSBhY2Nlc3MgdG8gaXQnO1xuICB9XG4gIGlmIChlcnIgaW5zdGFuY2VvZiBFcnJvciAmJiBlcnIubWVzc2FnZS5pbmNsdWRlcygnY2RrJykpIHtcbiAgICByZXR1cm4gJ0NoZWNrIHRoZSBDREsgb3V0cHV0IGFib3ZlIGZvciBDbG91ZEZvcm1hdGlvbiBlcnJvcnMuIFJ1biB3aXRoIC0tZGVidWcgZm9yIGZ1bGwgZGV0YWlscyc7XG4gIH1cbiAgaWYgKGVyciBpbnN0YW5jZW9mIFZhbGlkYXRpb25FcnJvciAmJiBlcnIuZmllbGQpIHtcbiAgICByZXR1cm4gYENoZWNrIHRoZSB2YWx1ZSBwcm92aWRlZCBmb3IgXCIke2Vyci5maWVsZH1cImA7XG4gIH1cbiAgaWYgKGlzQXhpb3NFcnJvcihlcnIpKSB7XG4gICAgY29uc3Qgc3RhdHVzID0gZXJyLnJlc3BvbnNlPy5zdGF0dXM7XG4gICAgaWYgKHN0YXR1cyA9PT0gNDAxIHx8IHN0YXR1cyA9PT0gNDAzKSByZXR1cm4gJ0NoZWNrIHlvdXIgYXV0aGVudGljYXRpb24gdG9rZW4gYW5kIHBlcm1pc3Npb25zJztcbiAgICAvLyBBIHF1b3RhIHJlZnVzYWwgd29uJ3QgY2xlYXIgYnkgd2FpdGluZyBhIG1vbWVudDogdGhlIG1lc3NhZ2UgYWxyZWFkeSBuYW1lc1xuICAgIC8vIHRoZSByZXNldCBkYXRlIGFuZCB0aGUgdXBncmFkZSBsaW5rIChhcGktY2xpZW50KS4gT25seSBhIHBsYWluIDQyOSBpcyBhXG4gICAgLy8gcmF0ZSBsaW1pdC5cbiAgICBpZiAoc3RhdHVzID09PSA0MjkgJiYgaXNRdW90YUV4Y2VlZGVkQm9keShlcnIucmVzcG9uc2U/LmRhdGEpKSB7XG4gICAgICByZXR1cm4gJ1JldHJ5aW5nIHdpbGwgbm90IGhlbHAgdW50aWwgdGhlIHF1b3RhIHJlc2V0cyDigJQgcmFpc2UgdGhlIGxpbWl0IGF0IHRoZSB1cGdyYWRlIGxpbmsgYWJvdmUnO1xuICAgIH1cbiAgICBpZiAoc3RhdHVzID09PSA0MjkpIHJldHVybiAnUmF0ZSBsaW1pdCBleGNlZWRlZCAtIHdhaXQgYSBtb21lbnQgYmVmb3JlIHJldHJ5aW5nJztcbiAgICBpZiAoc3RhdHVzICYmIHN0YXR1cyA+PSA1MDApIHJldHVybiAnU2VydmVyIGVycm9yIC0gdHJ5IGFnYWluIGxhdGVyIG9yIGNvbnRhY3Qgc3VwcG9ydCc7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIHNhbml0aXplRXJyb3JEYXRhKGRhdGE6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodHlwZW9mIGRhdGEgPT09ICdzdHJpbmcnKSByZXR1cm4gZGF0YTtcbiAgaWYgKHR5cGVvZiBkYXRhID09PSAnb2JqZWN0JyAmJiBkYXRhICE9PSBudWxsKSB7XG4gICAgY29uc3Qgc2FuaXRpemVkID0geyAuLi5kYXRhIH0gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgWyd0b2tlbicsICdwYXNzd29yZCcsICdzZWNyZXQnLCAnYXBpS2V5JywgJ2F1dGhvcml6YXRpb24nLCAnand0JywgJ2NyZWRlbnRpYWwnLCAnYmVhcmVyJ10uZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBpZiAoZmllbGQgaW4gc2FuaXRpemVkKSBzYW5pdGl6ZWRbZmllbGRdID0gJ1tSRURBQ1RFRF0nO1xuICAgIH0pO1xuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShzYW5pdGl6ZWQsIG51bGwsIDIpO1xuICB9XG4gIHJldHVybiBTdHJpbmcoZGF0YSk7XG59XG5cbmZ1bmN0aW9uIHNhbml0aXplVXJsKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgdHJ5IHtcbiAgICBjb25zdCB1cmxPYmogPSBuZXcgVVJMKHVybCk7XG4gICAgWyd0b2tlbicsICdrZXknLCAnc2VjcmV0JywgJ3Bhc3N3b3JkJywgJ2FwaUtleSddLmZvckVhY2gocGFyYW0gPT4ge1xuICAgICAgaWYgKHVybE9iai5zZWFyY2hQYXJhbXMuaGFzKHBhcmFtKSkgdXJsT2JqLnNlYXJjaFBhcmFtcy5zZXQocGFyYW0sICdbUkVEQUNURURdJyk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHVybE9iai50b1N0cmluZygpO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gdXJsO1xuICB9XG59XG5cbmZ1bmN0aW9uIHNhbml0aXplVmFsdWUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICBpZiAodmFsdWUgPT09IG51bGwpIHJldHVybiAnbnVsbCc7XG4gIGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJ3VuZGVmaW5lZCc7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgaWYgKHZhbHVlLmxlbmd0aCA+IDIwICYmIC9eW0EtWmEtejAtOSsvPV8tXSskLy50ZXN0KHZhbHVlKSkge1xuICAgICAgcmV0dXJuIGAke3ZhbHVlLnN1YnN0cmluZygwLCA4KX0uLi5bUkVEQUNURURdYDtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA+IDEwMCA/IHZhbHVlLnN1YnN0cmluZygwLCA5NykgKyAnLi4uJyA6IHZhbHVlO1xuICB9XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSByZXR1cm4gc2FuaXRpemVFcnJvckRhdGEodmFsdWUpO1xuICBjb25zdCBzdHIgPSBTdHJpbmcodmFsdWUpO1xuICByZXR1cm4gc3RyLmxlbmd0aCA+IDEwMCA/IHN0ci5zdWJzdHJpbmcoMCwgOTcpICsgJy4uLicgOiBzdHI7XG59XG5cbmZ1bmN0aW9uIHNhbml0aXplU3RhY2tUcmFjZShzdGFjazogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHN0YWNrLnNwbGl0KCdcXG4nKS5zbGljZSgwLCAxMCkubWFwKGxpbmUgPT4gbGluZS5yZXBsYWNlKC9cXC8uKj9cXC8vZywgJy4uLi8nKSkuam9pbignXFxuJyk7XG59XG5cbmZ1bmN0aW9uIGlzQXhpb3NFcnJvcihlcnI6IHVua25vd24pOiBlcnIgaXMgQXhpb3NFcnJvckxpa2Uge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiBlcnIgPT09ICdvYmplY3QnICYmXG4gICAgZXJyICE9PSBudWxsICYmXG4gICAgJ2lzQXhpb3NFcnJvcicgaW4gZXJyICYmXG4gICAgKGVyciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikuaXNBeGlvc0Vycm9yID09PSB0cnVlXG4gICk7XG59XG4iXX0=
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Shared pipeline-config resolution used by both `synth` and `deploy` so the two
|
|
3
3
|
* commands fetch, plugin-resolve, registry-bake, and template-preview identically.
|
|
4
4
|
*/
|
|
5
|
+
import type { LookupWarning } from '@pipeline-builder/pipeline-core';
|
|
5
6
|
import type { ApiClient } from './api-client.js';
|
|
6
7
|
import type { Pipeline } from '../types/pipeline.js';
|
|
7
8
|
export interface FetchedPipeline {
|
|
@@ -11,6 +12,8 @@ export interface FetchedPipeline {
|
|
|
11
12
|
readonly propsWithIds: Record<string, unknown>;
|
|
12
13
|
/** The resolved platform base URL the config was fetched against. */
|
|
13
14
|
readonly baseUrl: string;
|
|
15
|
+
/** Every graded lookup warning (already printed) — for the end-of-run summary. */
|
|
16
|
+
readonly pluginWarnings: readonly LookupWarning[];
|
|
14
17
|
}
|
|
15
18
|
/**
|
|
16
19
|
* Fetch a pipeline by id and build the synth/deploy props:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-config.d.ts","sourceRoot":"","sources":["../../src/utils/pipeline-config.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,4FAA4F;IAC5F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"pipeline-config.d.ts","sourceRoot":"","sources":["../../src/utils/pipeline-config.ts"],"names":[],"mappings":"AAGA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,eAAe;IAC9B,kFAAkF;IAClF,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,4FAA4F;IAC5F,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/C,qEAAqE;IACrE,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,cAAc,EAAE,SAAS,aAAa,EAAE,CAAC;CACnD;AAED;;;;;;;;GAQG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAuBxG;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAW9F"}
|
|
@@ -25,13 +25,14 @@ export async function fetchPipelineProps(client, pipelineId) {
|
|
|
25
25
|
...(pipeline.orgId ? { orgId: pipeline.orgId } : {}),
|
|
26
26
|
pipelineId: pipeline.id || pipelineId,
|
|
27
27
|
};
|
|
28
|
-
const
|
|
28
|
+
const pluginWarnings = [];
|
|
29
|
+
const resolvedPlugins = await resolvePluginsForProps(client, propsWithIds, pluginWarnings);
|
|
29
30
|
if (Object.keys(resolvedPlugins).length > 0) {
|
|
30
31
|
propsWithIds.resolvedPlugins = resolvedPlugins;
|
|
31
32
|
printInfo('Pre-resolved plugins', { count: Object.keys(resolvedPlugins).length });
|
|
32
33
|
}
|
|
33
34
|
bakePlatformRegistry(propsWithIds, config.api.baseUrl);
|
|
34
|
-
return { pipeline, propsWithIds, baseUrl: config.api.baseUrl };
|
|
35
|
+
return { pipeline, propsWithIds, baseUrl: config.api.baseUrl, pluginWarnings };
|
|
35
36
|
}
|
|
36
37
|
/**
|
|
37
38
|
* Apply pass-1 self-referencing template resolution to `propsWithIds` and print it
|
|
@@ -52,4 +53,4 @@ export async function printResolvedOrExit(propsWithIds) {
|
|
|
52
53
|
}
|
|
53
54
|
console.log(JSON.stringify(propsWithIds, null, 2));
|
|
54
55
|
}
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BpcGVsaW5lLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBU3RDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFjNUQ7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLGtCQUFrQixDQUFDLE1BQWlCLEVBQUUsVUFBa0I7SUFDNUUsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBMEIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ3RHLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFXLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDaEYsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBNEI7UUFDNUMsR0FBSSxRQUFRLENBQUMsS0FBaUM7UUFDOUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3BELFVBQVUsRUFBRSxRQUFRLENBQUMsRUFBRSxJQUFJLFVBQVU7S0FDdEMsQ0FBQztJQUVGLE1BQU0sY0FBYyxHQUFvQixFQUFFLENBQUM7SUFDM0MsTUFBTSxlQUFlLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQyxDQUFDO0lBQzNGLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDNUMsWUFBWSxDQUFDLGVBQWUsR0FBRyxlQUFlLENBQUM7UUFDL0MsU0FBUyxDQUFDLHNCQUFzQixFQUFFLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRUQsb0JBQW9CLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxDQUFDO0FBQ2pGLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsbUJBQW1CLENBQUMsWUFBcUM7SUFDN0UsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNuRixNQUFNLEtBQUssR0FBRyxFQUFFLFFBQVEsRUFBRSxZQUFZLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsWUFBWSxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUN2RixNQUFNLEtBQUssR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLGFBQWEsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkcsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUMsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEcsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3pCLE9BQU8sQ0FBQyxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwQyxLQUFLLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxNQUFNO1lBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFNoYXJlZCBwaXBlbGluZS1jb25maWcgcmVzb2x1dGlvbiB1c2VkIGJ5IGJvdGggYHN5bnRoYCBhbmQgYGRlcGxveWAgc28gdGhlIHR3b1xuICogY29tbWFuZHMgZmV0Y2gsIHBsdWdpbi1yZXNvbHZlLCByZWdpc3RyeS1iYWtlLCBhbmQgdGVtcGxhdGUtcHJldmlldyBpZGVudGljYWxseS5cbiAqL1xuXG5pbXBvcnQgdHlwZSB7IExvb2t1cFdhcm5pbmcgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJztcbmltcG9ydCB0eXBlIHsgQXBpQ2xpZW50IH0gZnJvbSAnLi9hcGktY2xpZW50LmpzJztcbmltcG9ydCB7IHByaW50SW5mbyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHJlc29sdmVQbHVnaW5zRm9yUHJvcHMgfSBmcm9tICcuL3BsdWdpbi1yZXNvbHZlci5qcyc7XG5pbXBvcnQgeyBiYWtlUGxhdGZvcm1SZWdpc3RyeSB9IGZyb20gJy4vcmVnaXN0cnkuanMnO1xuaW1wb3J0IHsgZXh0cmFjdFNpbmdsZVJlc3BvbnNlIH0gZnJvbSAnLi9yZXNwb25zZS11dGlscy5qcyc7XG5pbXBvcnQgdHlwZSB7IFBpcGVsaW5lIH0gZnJvbSAnLi4vdHlwZXMvcGlwZWxpbmUuanMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEZldGNoZWRQaXBlbGluZSB7XG4gIC8qKiBUaGUgcmF3IHBpcGVsaW5lIHJlY29yZCAoaWQvb3JnL3Byb2plY3QvZmxhZ3MpIGFzIHJldHVybmVkIGJ5IHRoZSBwbGF0Zm9ybS4gKi9cbiAgcmVhZG9ubHkgcGlwZWxpbmU6IFBpcGVsaW5lO1xuICAvKiogcHJvcHMgKyBwaXBlbGluZUlkICgrIG9yZ0lkKSArIHJlc29sdmVkUGx1Z2lucywgd2l0aCB0aGUgcmVnaXN0cnkgcHVsbC1ob3N0IGJha2VkIGluLiAqL1xuICByZWFkb25seSBwcm9wc1dpdGhJZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAvKiogVGhlIHJlc29sdmVkIHBsYXRmb3JtIGJhc2UgVVJMIHRoZSBjb25maWcgd2FzIGZldGNoZWQgYWdhaW5zdC4gKi9cbiAgcmVhZG9ubHkgYmFzZVVybDogc3RyaW5nO1xuICAvKiogRXZlcnkgZ3JhZGVkIGxvb2t1cCB3YXJuaW5nIChhbHJlYWR5IHByaW50ZWQpIOKAlCBmb3IgdGhlIGVuZC1vZi1ydW4gc3VtbWFyeS4gKi9cbiAgcmVhZG9ubHkgcGx1Z2luV2FybmluZ3M6IHJlYWRvbmx5IExvb2t1cFdhcm5pbmdbXTtcbn1cblxuLyoqXG4gKiBGZXRjaCBhIHBpcGVsaW5lIGJ5IGlkIGFuZCBidWlsZCB0aGUgc3ludGgvZGVwbG95IHByb3BzOlxuICogIC0gR0VUIHRoZSBwaXBlbGluZSBhbmQgdmFsaWRhdGUgaXQgaGFzIGBwcm9wc2AsXG4gKiAgLSBhc3NlbWJsZSBgcHJvcHNXaXRoSWRzYCAocHJvcHMgKyBwaXBlbGluZUlkICsgb3JnSWQpLFxuICogIC0gcHJlLXJlc29sdmUgcGx1Z2lucyBzbyB0aGUgdGVtcGxhdGUgc2hpcHMgcmVhbCBDb2RlQnVpbGQgaW1hZ2UgVVJJc1xuICogICAgKG90aGVyd2lzZSBDREsgZmFsbHMgYmFjayB0byBzdGFuZGFyZDo3LjAgYXQgZGVwbG95IHRpbWUpLFxuICogIC0gYmFrZSB0aGUgcmVnaXN0cnkgcHVsbC1ob3N0IGZyb20gdGhlIHBsYXRmb3JtIFVSTCAobm8tb3Agd2hlblxuICogICAgSU1BR0VfUkVHSVNUUllfUFVMTF9IT1NUIGlzIHNldCkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBmZXRjaFBpcGVsaW5lUHJvcHMoY2xpZW50OiBBcGlDbGllbnQsIHBpcGVsaW5lSWQ6IHN0cmluZyk6IFByb21pc2U8RmV0Y2hlZFBpcGVsaW5lPiB7XG4gIGNvbnN0IGNvbmZpZyA9IGNsaWVudC5nZXRDb25maWcoKTtcbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFJlY29yZDxzdHJpbmcsIHVua25vd24+PihgJHtjb25maWcuYXBpLnBpcGVsaW5lVXJsfS8ke3BpcGVsaW5lSWR9YCk7XG4gIGNvbnN0IHBpcGVsaW5lID0gZXh0cmFjdFNpbmdsZVJlc3BvbnNlPFBpcGVsaW5lPihyZXNwb25zZSwgJ3BpcGVsaW5lJywgJ3Byb3BzJyk7XG4gIGlmICghcGlwZWxpbmU/LnByb3BzKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcmV0cmlldmUgcGlwZWxpbmUgcHJvcHMgZm9yIElEOiAke3BpcGVsaW5lSWR9YCk7XG4gIH1cblxuICBjb25zdCBwcm9wc1dpdGhJZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIC4uLihwaXBlbGluZS5wcm9wcyBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiksXG4gICAgLi4uKHBpcGVsaW5lLm9yZ0lkID8geyBvcmdJZDogcGlwZWxpbmUub3JnSWQgfSA6IHt9KSxcbiAgICBwaXBlbGluZUlkOiBwaXBlbGluZS5pZCB8fCBwaXBlbGluZUlkLFxuICB9O1xuXG4gIGNvbnN0IHBsdWdpbldhcm5pbmdzOiBMb29rdXBXYXJuaW5nW10gPSBbXTtcbiAgY29uc3QgcmVzb2x2ZWRQbHVnaW5zID0gYXdhaXQgcmVzb2x2ZVBsdWdpbnNGb3JQcm9wcyhjbGllbnQsIHByb3BzV2l0aElkcywgcGx1Z2luV2FybmluZ3MpO1xuICBpZiAoT2JqZWN0LmtleXMocmVzb2x2ZWRQbHVnaW5zKS5sZW5ndGggPiAwKSB7XG4gICAgcHJvcHNXaXRoSWRzLnJlc29sdmVkUGx1Z2lucyA9IHJlc29sdmVkUGx1Z2lucztcbiAgICBwcmludEluZm8oJ1ByZS1yZXNvbHZlZCBwbHVnaW5zJywgeyBjb3VudDogT2JqZWN0LmtleXMocmVzb2x2ZWRQbHVnaW5zKS5sZW5ndGggfSk7XG4gIH1cblxuICBiYWtlUGxhdGZvcm1SZWdpc3RyeShwcm9wc1dpdGhJZHMsIGNvbmZpZy5hcGkuYmFzZVVybCk7XG4gIHJldHVybiB7IHBpcGVsaW5lLCBwcm9wc1dpdGhJZHMsIGJhc2VVcmw6IGNvbmZpZy5hcGkuYmFzZVVybCwgcGx1Z2luV2FybmluZ3MgfTtcbn1cblxuLyoqXG4gKiBBcHBseSBwYXNzLTEgc2VsZi1yZWZlcmVuY2luZyB0ZW1wbGF0ZSByZXNvbHV0aW9uIHRvIGBwcm9wc1dpdGhJZHNgIGFuZCBwcmludCBpdFxuICogdG8gc3Rkb3V0ICh1c2VkIGJ5IGBzeW50aCAtLXNob3ctcmVzb2x2ZWRgIC8gYGRlcGxveSAtLXNob3ctcmVzb2x2ZWRgKS4gRXhpdHMgd2l0aFxuICogY29kZSAxIGlmIHJlc29sdXRpb24gcmVwb3J0cyBlcnJvcnMuIGByZXNvbHZlU2VsZlJlZmVyZW5jaW5nYCBtdXRhdGVzIHRoZSBvYmplY3RcbiAqIGluIHBsYWNlLCBzbyB0aGUgcHJpbnRlZCBKU09OIHJlZmxlY3RzIHRoZSBleHBhbmRlZCB0ZW1wbGF0ZXMuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcmludFJlc29sdmVkT3JFeGl0KHByb3BzV2l0aElkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgeyByZXNvbHZlU2VsZlJlZmVyZW5jaW5nIH0gPSBhd2FpdCBpbXBvcnQoJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnKTtcbiAgY29uc3Qgc2NvcGUgPSB7IG1ldGFkYXRhOiBwcm9wc1dpdGhJZHMubWV0YWRhdGEgPz8ge30sIHZhcnM6IHByb3BzV2l0aElkcy52YXJzID8/IHt9IH07XG4gIGNvbnN0IGlzVHBsID0gKGY6IHN0cmluZykgPT4gZiA9PT0gJ3Byb2plY3ROYW1lJyB8fCBmLnN0YXJ0c1dpdGgoJ21ldGFkYXRhLicpIHx8IGYuc3RhcnRzV2l0aCgndmFycy4nKTtcbiAgY29uc3QgcmVzdWx0ID0gcmVzb2x2ZVNlbGZSZWZlcmVuY2luZyhwcm9wc1dpdGhJZHMsIHNjb3BlLCBpc1RwbCwgKGY6IHN0cmluZykgPT4gKGlzVHBsKGYpID8gZiA6IG51bGwpKTtcbiAgaWYgKHJlc3VsdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgY29uc29sZS5lcnJvcignUmVzb2x1dGlvbiBlcnJvcnM6Jyk7XG4gICAgZm9yIChjb25zdCBlIG9mIHJlc3VsdC5lcnJvcnMpIGNvbnNvbGUuZXJyb3IoYCAgWyR7ZS5maWVsZCA/PyAnPyd9XSAke2UubWVzc2FnZX1gKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkocHJvcHNXaXRoSWRzLCBudWxsLCAyKSk7XG59XG4iXX0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"platform-secret.d.ts","sourceRoot":"","sources":["../../src/utils/platform-secret.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"platform-secret.d.ts","sourceRoot":"","sources":["../../src/utils/platform-secret.ts"],"names":[],"mappings":"AAoBA,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,GAAE,MAAmB,GAAG,MAAM,CAEjF;AAED,yFAAyF;AACzF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAevD;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0CvF;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC,CAY/F"}
|
|
@@ -13,6 +13,7 @@ import axios from 'axios';
|
|
|
13
13
|
import { decodeTokenPayload } from './auth-guard.js';
|
|
14
14
|
import { getApiConfig } from './config-loader.js';
|
|
15
15
|
import { printInfo, printSection, printSuccess, printWarning } from './output-utils.js';
|
|
16
|
+
import { requestCorrelationHeaders } from './request-context.js';
|
|
16
17
|
import { assertSslDisableAllowed } from './tls.js';
|
|
17
18
|
/**
|
|
18
19
|
* The Secrets Manager path a stored machine credential lives at:
|
|
@@ -82,6 +83,7 @@ export async function ensurePlatformToken(options) {
|
|
|
82
83
|
// The server's loginSchema requires `identifier` (email OR username), not
|
|
83
84
|
// `email` — sending `email` fails zod validation with a 400.
|
|
84
85
|
{ identifier: loginIdentifier, password: loginPassword }, {
|
|
86
|
+
headers: requestCorrelationHeaders(),
|
|
85
87
|
httpsAgent: rejectUnauthorized === false
|
|
86
88
|
? new (await import('https')).Agent({ rejectUnauthorized: false })
|
|
87
89
|
: undefined,
|
|
@@ -111,4 +113,4 @@ export async function resolvePlatformSecretName(options) {
|
|
|
111
113
|
}
|
|
112
114
|
return resolveSecretName(process.env.PLATFORM_TOKEN);
|
|
113
115
|
}
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tc2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BsYXRmb3JtLXNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZ0JuRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsSUFBSSxHQUFXLFVBQVU7SUFDdkUsT0FBTyxHQUFHLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVELHlGQUF5RjtBQUN6RixNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLDZFQUE2RTtJQUM3RSw4RUFBOEU7SUFDOUUsbUVBQW1FO0lBQ25FLElBQUksY0FBYyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDMUIsTUFBTSxJQUFJLEtBQUssQ0FDYixtSUFB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QUFNLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsZ0ZBQWdGO2NBQzlFLG1EQUFtRDtjQUNuRCxxRUFBcUUsQ0FDeEUsQ0FBQztJQUNKLENBQUM7SUFDRCxPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFNoYXJlZCBwbGF0Zm9ybS10b2tlbiDihpIgc2VjcmV0LW5hbWUgcmVzb2x1dGlvbiwgdXNlZCBieSBib3RoIGBzdG9yZS10b2tlbmBcbiAqICh3aGljaCBXUklURVMgdGhlIEpXVCB0byBTZWNyZXRzIE1hbmFnZXIpIGFuZCBgc2V0dXAtZXZlbnRzYCAod2hpY2ggZGVwbG95cyB0aGVcbiAqIExhbWJkYSB0aGF0IFJFQURTIGl0KS4gQm90aCBtdXN0IGFncmVlIG9uIHRoZSBzYW1lIHNlY3JldCBwYXRoLCBzbyB0aGUgbG9naWNcbiAqIGxpdmVzIGhlcmUgb25jZTogZGVyaXZlIGB7U0VDUkVUU19QQVRIX1BSRUZJWH0ve29yZ0lkfS9wbGF0Zm9ybWAgZnJvbSB0aGUgSldUJ3NcbiAqIG9yZ2FuaXphdGlvbklkLCBsb2dnaW5nIGluIGZpcnN0IGlmIG5lZWRlZCB0byBvYnRhaW4gdGhlIHRva2VuLlxuICovXG5cbmltcG9ydCB7IGlzT3BhcXVlQXBpS2V5IH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHsgQ29yZUNvbnN0YW50cyB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IGF4aW9zIGZyb20gJ2F4aW9zJztcbmltcG9ydCB7IGRlY29kZVRva2VuUGF5bG9hZCB9IGZyb20gJy4vYXV0aC1ndWFyZC5qcyc7XG5pbXBvcnQgeyBnZXRBcGlDb25maWcgfSBmcm9tICcuL2NvbmZpZy1sb2FkZXIuanMnO1xuaW1wb3J0IHsgcHJpbnRJbmZvLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMuanMnO1xuaW1wb3J0IHsgYXNzZXJ0U3NsRGlzYWJsZUFsbG93ZWQgfSBmcm9tICcuL3Rscy5qcyc7XG5cbi8qKiBMb2dpbi9zZWNyZXQgb3B0aW9ucyBzaGFyZWQgYWNyb3NzIHRoZSBwbGF0Zm9ybS1zZWNyZXQgaGVscGVycy4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGxhdGZvcm1TZWNyZXRPcHRpb25zIHtcbiAgLyoqXG4gICAqIExvZ2luIGlkZW50aWZpZXIgKHVzZXJuYW1lIE9SIGVtYWlsKSBmb3IgdGhlIE5PTi1JTlRFUkFDVElWRSBtYWNoaW5lIGxvZ2luXG4gICAqIGJlbG93LiBUaGlzIGlzIHRoZSBvbmx5IHBhc3N3b3JkIHBhdGggbGVmdCBpbiB0aGUgQ0xJOiBgYXV0aCBsb2dpbmAgYW5kXG4gICAqIGBhdXRoIHBhdGAgc2lnbiBpbiB0aHJvdWdoIHRoZSBicm93c2VyIChkZXZpY2UgYXV0aG9yaXphdGlvbiksIGJ1dFxuICAgKiBgc3RvcmUtdG9rZW5gIC8gYHNldHVwLWV2ZW50c2AgcnVuIG9uIGhvc3RzIHdpdGggbm9ib2R5IHByZXNlbnQgdG8gYXBwcm92ZSBhXG4gICAqIGNvZGUsIGFuZCB3aGF0IHRoZXkgbWludCBpcyBhIG1hY2hpbmUgY3JlZGVudGlhbCwgbm90IGEgcGVyc29uJ3Mgc2Vzc2lvbi5cbiAgICovXG4gIHJlYWRvbmx5IGlkZW50aWZpZXI/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhc3N3b3JkPzogc3RyaW5nO1xuICByZWFkb25seSB2ZXJpZnlTc2w/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBTZWNyZXRzIE1hbmFnZXIgcGF0aCBhIHN0b3JlZCBtYWNoaW5lIGNyZWRlbnRpYWwgbGl2ZXMgYXQ6XG4gKiBge1NFQ1JFVFNfUEFUSF9QUkVGSVh9L3tvcmdJZH0ve2xlYWZ9YC5cbiAqXG4gKiBgbGVhZmAgaXMgYHBsYXRmb3JtYCBmb3IgdGhlIG9yZydzIGZ1bGwtcHJpdmlsZWdlIGF1dG9tYXRpb24gY3JlZGVudGlhbCwgYW5kXG4gKiB0aGUgc2NvcGUncyBzbHVnIChgcmVwb3J0aW5nLWluZ2VzdGAsIGByZWdpc3RyeS1wdXNoYCkgZm9yIGEgbGVhc3QtcHJpdmlsZWdlXG4gKiBvbmUg4oCUIHNvIGEgc2NvcGVkIGNyZWRlbnRpYWwgY2FuIG5ldmVyIGNsb2JiZXIgdGhlIHBsYXRmb3JtIG9uZSwgYW5kIHRoZVxuICogZXZlbnRzIExhbWJkYSdzIHNlY3JldCBpcyBhIGRpZmZlcmVudCBvYmplY3QgZnJvbSBDb2RlQnVpbGQncy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNlY3JldE5hbWVGb3JPcmcob3JnSWQ6IHN0cmluZywgbGVhZjogc3RyaW5nID0gJ3BsYXRmb3JtJyk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtDb3JlQ29uc3RhbnRzLlNFQ1JFVFNfUEFUSF9QUkVGSVh9LyR7b3JnSWR9LyR7bGVhZn1gO1xufVxuXG4vKiogQSBjYXBhYmlsaXR5IHNjb3BlIGFzIGEgc2VjcmV0LXBhdGggbGVhZjogYHJlcG9ydGluZzppbmdlc3RgIOKGkiBgcmVwb3J0aW5nLWluZ2VzdGAuICovXG5leHBvcnQgZnVuY3Rpb24gc2NvcGVTZWNyZXRMZWFmKHNjb3BlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gc2NvcGUucmVwbGFjZSgvW15hLXowLTldKy9naSwgJy0nKTtcbn1cblxuLyoqXG4gKiBEZXJpdmUgdGhlIHBsYXRmb3JtIHNlY3JldCBwYXRoIGZyb20gYSBKV1QncyBvcmdhbml6YXRpb25JZC5cbiAqIFBhdHRlcm46IGB7U0VDUkVUU19QQVRIX1BSRUZJWH0ve29yZ0lkfS9wbGF0Zm9ybWAuXG4gKiBAdGhyb3dzIGlmIHRoZSB0b2tlbiBjYXJyaWVzIG5vIG9yZ2FuaXphdGlvbklkIChjYWxsZXIgc2hvdWxkIGZhbGwgYmFjayB0byBQTEFURk9STV9TRUNSRVRfTkFNRSkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlU2VjcmV0TmFtZSh0b2tlbjogc3RyaW5nKTogc3RyaW5nIHtcbiAgLy8gQW4gQUNDRVNTIEtFWSAoYHBiX3BhdF/igKZgKSBpcyBvcGFxdWUg4oCUIGl0IGNhcnJpZXMgbm8gb3JnIGNsYWltIHRvIHJlYWQsIGJ5XG4gIC8vIGRlc2lnbi4gU2F5IHNvIGluc3RlYWQgb2YgdGhlIGdlbmVyaWMgZGVjb2RlIGZhaWx1cmUsIHNpbmNlIGV4cG9ydGluZyBhIGtleVxuICAvLyBhcyBQTEFURk9STV9UT0tFTiBpcyBub3cgdGhlIG5vcm1hbCB3YXkgdG8gYXV0aGVudGljYXRlIHRoZSBDTEkuXG4gIGlmIChpc09wYXF1ZUFwaUtleSh0b2tlbikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnUExBVEZPUk1fVE9LRU4gaXMgYW4gb3BhcXVlIGFjY2VzcyBrZXksIHdoaWNoIGNhcnJpZXMgbm8gb3JnYW5pemF0aW9uSWQg4oCUIHNldCBQTEFURk9STV9TRUNSRVRfTkFNRSB0byBuYW1lIHRoZSBzZWNyZXQgZXhwbGljaXRseS4nLFxuICAgICk7XG4gIH1cbiAgY29uc3QgcGF5bG9hZCA9IGRlY29kZVRva2VuUGF5bG9hZCh0b2tlbik7XG4gIGNvbnN0IG9yZ0lkID0gcGF5bG9hZD8ub3JnYW5pemF0aW9uSWQ7XG4gIGlmICghb3JnSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ1Rva2VuIGRvZXMgbm90IGNvbnRhaW4gb3JnYW5pemF0aW9uSWQg4oCUIGNhbm5vdCBkZXJpdmUgc2VjcmV0IG5hbWUuIFNldCBQTEFURk9STV9TRUNSRVRfTkFNRSB0byBzcGVjaWZ5IGl0IGV4cGxpY2l0bHkuJyk7XG4gIH1cbiAgcmV0dXJuIHNlY3JldE5hbWVGb3JPcmcob3JnSWQpO1xufVxuXG4vKipcbiAqIEVuc3VyZSBgcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU5gIGlzIHNldC4gTm8tb3AgaWYgaXQgYWxyZWFkeSBpcy4gT3RoZXJ3aXNlLFxuICogaWYgbG9naW4gY3JlZHMgYXJlIGF2YWlsYWJsZSAoYC0taWRlbnRpZmllci8tLXBhc3N3b3JkYCBvciBgUExBVEZPUk1fSURFTlRJRklFUmAvXG4gKiBgUExBVEZPUk1fUEFTU1dPUkRgIGVudiDigJQgdGhlIGVudiBwYXRoIGxldHMgYHByb3Zpc2lvbmAgcGFzcyBjcmVkcyB3aXRob3V0XG4gKiBwdXR0aW5nIHRoZSBwYXNzd29yZCBvbiB0aGUgY29tbWFuZCBsaW5lKSwgbG9nIGluIGFuZCBzZXQgUExBVEZPUk1fVE9LRU4uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBlbnN1cmVQbGF0Zm9ybVRva2VuKG9wdGlvbnM6IFBsYXRmb3JtU2VjcmV0T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICBpZiAocHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4pIHJldHVybjtcbiAgY29uc3QgbG9naW5JZGVudGlmaWVyID0gb3B0aW9ucy5pZGVudGlmaWVyIHx8IHByb2Nlc3MuZW52LlBMQVRGT1JNX0lERU5USUZJRVI7XG4gIGNvbnN0IGxvZ2luUGFzc3dvcmQgPSBvcHRpb25zLnBhc3N3b3JkIHx8IHByb2Nlc3MuZW52LlBMQVRGT1JNX1BBU1NXT1JEO1xuICBpZiAoIWxvZ2luSWRlbnRpZmllciB8fCAhbG9naW5QYXNzd29yZCkgcmV0dXJuO1xuXG4gIGlmIChvcHRpb25zLnBhc3N3b3JkKSB7XG4gICAgcHJpbnRXYXJuaW5nKCdQYXNzaW5nIC0tcGFzc3dvcmQgb24gdGhlIGNvbW1hbmQgbGluZSBjYW4gZXhwb3NlIGl0IHZpYSBzaGVsbCBoaXN0b3J5OyBwcmVmZXIgdGhlIFBMQVRGT1JNX1BBU1NXT1JEIGVudiB2YXIuJyk7XG4gIH1cblxuICBwcmludFNlY3Rpb24oJ0xvZ2luJyk7XG4gIHByaW50SW5mbygnQXV0aGVudGljYXRpbmcgd2l0aCBpZGVudGlmaWVyL3Bhc3N3b3JkLi4uJyk7XG4gIC8vIFJlc29sdmUgdGhlIGJhc2UgVVJMIFdJVEhPVVQgZGVtYW5kaW5nIGEgdG9rZW4g4oCUIHRoaXMgbG9naW4gc3RlcCBydW5zXG4gIC8vIHByZS1hdXRoIChubyBQTEFURk9STV9UT0tFTiB5ZXQpLCBzbyBgZ2V0Q29uZmlnKClgIHdvdWxkIHRocm93IGhlcmUuIFRoZVxuICAvLyB0b2tlbi1vcHRpb25hbCBsb2FkZXIgc3RpbGwgaG9ub3JzIGNvbmZpZyBmaWxlcyArIFBMQVRGT1JNX0JBU0VfVVJML1RMUyBlbnYuXG4gIGNvbnN0IGFwaUNvbmZpZyA9IGdldEFwaUNvbmZpZygpO1xuICAvLyBTRUNVUklUWTogdGhpcyBpbmxpbmUgbG9naW4gUE9TVHMgdGhlIHBhc3N3b3JkLiBSZWZ1c2UgdG8gZGlzYWJsZSBjZXJ0XG4gIC8vIHZlcmlmaWNhdGlvbiBpbiBwcm9kdWN0aW9uIChtaXJyb3JzIGNvbmZpZy1sb2FkZXIgLyBsb2dpbikgc28gYSBNSVRNIGNhbid0XG4gIC8vIGhhcnZlc3QgaXQ7IGhvbm9yZWQgaW4gbm9uLXByb2R1Y3Rpb24gZm9yIHNlbGYtc2lnbmVkIGRldiBwbGF0Zm9ybXMuXG4gIGlmIChvcHRpb25zLnZlcmlmeVNzbCA9PT0gZmFsc2UpIHtcbiAgICBhc3NlcnRTc2xEaXNhYmxlQWxsb3dlZCgnaW5saW5lIGxvZ2luJyk7XG4gIH1cbiAgY29uc3QgcmVqZWN0VW5hdXRob3JpemVkID0gb3B0aW9ucy52ZXJpZnlTc2wgPT09IGZhbHNlID8gZmFsc2UgOiBhcGlDb25maWcuYXBpLnJlamVjdFVuYXV0aG9yaXplZDtcbiAgY29uc3QgbG9naW5SZXNwb25zZSA9IGF3YWl0IGF4aW9zLnBvc3QoXG4gICAgYCR7YXBpQ29uZmlnLmFwaS5iYXNlVXJsfS9hcGkvYXV0aC9sb2dpbmAsXG4gICAgLy8gVGhlIHNlcnZlcidzIGxvZ2luU2NoZW1hIHJlcXVpcmVzIGBpZGVudGlmaWVyYCAoZW1haWwgT1IgdXNlcm5hbWUpLCBub3RcbiAgICAvLyBgZW1haWxgIOKAlCBzZW5kaW5nIGBlbWFpbGAgZmFpbHMgem9kIHZhbGlkYXRpb24gd2l0aCBhIDQwMC5cbiAgICB7IGlkZW50aWZpZXI6IGxvZ2luSWRlbnRpZmllciwgcGFzc3dvcmQ6IGxvZ2luUGFzc3dvcmQgfSxcbiAgICB7XG4gICAgICBodHRwc0FnZW50OiByZWplY3RVbmF1dGhvcml6ZWQgPT09IGZhbHNlXG4gICAgICAgID8gbmV3IChhd2FpdCBpbXBvcnQoJ2h0dHBzJykpLkFnZW50KHsgcmVqZWN0VW5hdXRob3JpemVkOiBmYWxzZSB9KVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICB9LFxuICApO1xuICBjb25zdCBsb2dpbkRhdGEgPSBsb2dpblJlc3BvbnNlLmRhdGE/LmRhdGEgPz8gbG9naW5SZXNwb25zZS5kYXRhO1xuICBjb25zdCBsb2dpblRva2VuID0gbG9naW5EYXRhPy5hY2Nlc3NUb2tlbjtcbiAgaWYgKCFsb2dpblRva2VuIHx8IHR5cGVvZiBsb2dpblRva2VuICE9PSAnc3RyaW5nJykge1xuICAgIHRocm93IG5ldyBFcnJvcignTG9naW4gZmFpbGVkIOKAlCBubyBhY2Nlc3MgdG9rZW4gaW4gcmVzcG9uc2UnKTtcbiAgfVxuICBwcm9jZXNzLmVudi5QTEFURk9STV9UT0tFTiA9IGxvZ2luVG9rZW47XG4gIHByaW50U3VjY2VzcygnTG9naW4gc3VjY2Vzc2Z1bCcpO1xufVxuXG4vKipcbiAqIFJlc29sdmUgdGhlIHBsYXRmb3JtIHNlY3JldCBuYW1lOiBhbiBleHBsaWNpdCBgUExBVEZPUk1fU0VDUkVUX05BTUVgIGVudiB3aW5zO1xuICogb3RoZXJ3aXNlIGxvZyBpbiBpZiBuZWVkZWQgYW5kIGRlcml2ZSBpdCBmcm9tIHRoZSBwbGF0Zm9ybSB0b2tlbidzIG9yZyDigJQgdGhlXG4gKiBzYW1lIHRva2VuIGBpbml0LXBsYXRmb3JtLnNoYCAocmVnaXN0ZXIpIG1pbnRzLCBzbyB3cml0ZXIgYW5kIHJlYWRlciBhZ3JlZS5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVQbGF0Zm9ybVNlY3JldE5hbWUob3B0aW9uczogUGxhdGZvcm1TZWNyZXRPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgZXhwbGljaXQgPSBwcm9jZXNzLmVudi5QTEFURk9STV9TRUNSRVRfTkFNRTtcbiAgaWYgKGV4cGxpY2l0KSByZXR1cm4gZXhwbGljaXQ7XG4gIGF3YWl0IGVuc3VyZVBsYXRmb3JtVG9rZW4ob3B0aW9ucyk7XG4gIGlmICghcHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ2Fubm90IGRlcml2ZSB0aGUgcGxhdGZvcm0gc2VjcmV0IG5hbWU6IG5vIFBMQVRGT1JNX1RPS0VOIGFuZCBubyBsb2dpbiBjcmVkcy4gJ1xuICAgICAgKyAnU2V0IFBMQVRGT1JNX1NFQ1JFVF9OQU1FLCBvciBwcm92aWRlIGxvZ2luIGNyZWRzICdcbiAgICAgICsgJygtLWlkZW50aWZpZXIvLS1wYXNzd29yZCBvciBQTEFURk9STV9JREVOVElGSUVSL1BMQVRGT1JNX1BBU1NXT1JEKS4nLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHJlc29sdmVTZWNyZXROYW1lKHByb2Nlc3MuZW52LlBMQVRGT1JNX1RPS0VOKTtcbn1cbiJdfQ==
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm0tc2VjcmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3BsYXRmb3JtLXNlY3JldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDaEUsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzFCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDeEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBZ0JuRDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxLQUFhLEVBQUUsSUFBSSxHQUFXLFVBQVU7SUFDdkUsT0FBTyxHQUFHLGFBQWEsQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVELHlGQUF5RjtBQUN6RixNQUFNLFVBQVUsZUFBZSxDQUFDLEtBQWE7SUFDM0MsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFhO0lBQzdDLDZFQUE2RTtJQUM3RSw4RUFBOEU7SUFDOUUsbUVBQW1FO0lBQ25FLElBQUksY0FBYyxDQUFDLEtBQUss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QU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLENBQUM7SUFDbEQsSUFBSSxRQUFRO1FBQUUsT0FBTyxRQUFRLENBQUM7SUFDOUIsTUFBTSxtQkFBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNoQyxNQUFNLElBQUksS0FBSyxDQUNiLGdGQUFnRjtjQUM5RSxtREFBbUQ7Y0FDbkQscUVBQXFFLENBQ3hFLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBTaGFyZWQgcGxhdGZvcm0tdG9rZW4g4oaSIHNlY3JldC1uYW1lIHJlc29sdXRpb24sIHVzZWQgYnkgYm90aCBgc3RvcmUtdG9rZW5gXG4gKiAod2hpY2ggV1JJVEVTIHRoZSBKV1QgdG8gU2VjcmV0cyBNYW5hZ2VyKSBhbmQgYHNldHVwLWV2ZW50c2AgKHdoaWNoIGRlcGxveXMgdGhlXG4gKiBMYW1iZGEgdGhhdCBSRUFEUyBpdCkuIEJvdGggbXVzdCBhZ3JlZSBvbiB0aGUgc2FtZSBzZWNyZXQgcGF0aCwgc28gdGhlIGxvZ2ljXG4gKiBsaXZlcyBoZXJlIG9uY2U6IGRlcml2ZSBge1NFQ1JFVFNfUEFUSF9QUkVGSVh9L3tvcmdJZH0vcGxhdGZvcm1gIGZyb20gdGhlIEpXVCdzXG4gKiBvcmdhbml6YXRpb25JZCwgbG9nZ2luZyBpbiBmaXJzdCBpZiBuZWVkZWQgdG8gb2J0YWluIHRoZSB0b2tlbi5cbiAqL1xuXG5pbXBvcnQgeyBpc09wYXF1ZUFwaUtleSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB7IENvcmVDb25zdGFudHMgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9waXBlbGluZS1jb3JlJztcbmltcG9ydCBheGlvcyBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBkZWNvZGVUb2tlblBheWxvYWQgfSBmcm9tICcuL2F1dGgtZ3VhcmQuanMnO1xuaW1wb3J0IHsgZ2V0QXBpQ29uZmlnIH0gZnJvbSAnLi9jb25maWctbG9hZGVyLmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRTZWN0aW9uLCBwcmludFN1Y2Nlc3MsIHByaW50V2FybmluZyB9IGZyb20gJy4vb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHJlcXVlc3RDb3JyZWxhdGlvbkhlYWRlcnMgfSBmcm9tICcuL3JlcXVlc3QtY29udGV4dC5qcyc7XG5pbXBvcnQgeyBhc3NlcnRTc2xEaXNhYmxlQWxsb3dlZCB9IGZyb20gJy4vdGxzLmpzJztcblxuLyoqIExvZ2luL3NlY3JldCBvcHRpb25zIHNoYXJlZCBhY3Jvc3MgdGhlIHBsYXRmb3JtLXNlY3JldCBoZWxwZXJzLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGF0Zm9ybVNlY3JldE9wdGlvbnMge1xuICAvKipcbiAgICogTG9naW4gaWRlbnRpZmllciAodXNlcm5hbWUgT1IgZW1haWwpIGZvciB0aGUgTk9OLUlOVEVSQUNUSVZFIG1hY2hpbmUgbG9naW5cbiAgICogYmVsb3cuIFRoaXMgaXMgdGhlIG9ubHkgcGFzc3dvcmQgcGF0aCBsZWZ0IGluIHRoZSBDTEk6IGBhdXRoIGxvZ2luYCBhbmRcbiAgICogYGF1dGggcGF0YCBzaWduIGluIHRocm91Z2ggdGhlIGJyb3dzZXIgKGRldmljZSBhdXRob3JpemF0aW9uKSwgYnV0XG4gICAqIGBzdG9yZS10b2tlbmAgLyBgc2V0dXAtZXZlbnRzYCBydW4gb24gaG9zdHMgd2l0aCBub2JvZHkgcHJlc2VudCB0byBhcHByb3ZlIGFcbiAgICogY29kZSwgYW5kIHdoYXQgdGhleSBtaW50IGlzIGEgbWFjaGluZSBjcmVkZW50aWFsLCBub3QgYSBwZXJzb24ncyBzZXNzaW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaWRlbnRpZmllcj86IHN0cmluZztcbiAgcmVhZG9ubHkgcGFzc3dvcmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcmlmeVNzbD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIFNlY3JldHMgTWFuYWdlciBwYXRoIGEgc3RvcmVkIG1hY2hpbmUgY3JlZGVudGlhbCBsaXZlcyBhdDpcbiAqIGB7U0VDUkVUU19QQVRIX1BSRUZJWH0ve29yZ0lkfS97bGVhZn1gLlxuICpcbiAqIGBsZWFmYCBpcyBgcGxhdGZvcm1gIGZvciB0aGUgb3JnJ3MgZnVsbC1wcml2aWxlZ2UgYXV0b21hdGlvbiBjcmVkZW50aWFsLCBhbmRcbiAqIHRoZSBzY29wZSdzIHNsdWcgKGByZXBvcnRpbmctaW5nZXN0YCwgYHJlZ2lzdHJ5LXB1c2hgKSBmb3IgYSBsZWFzdC1wcml2aWxlZ2VcbiAqIG9uZSDigJQgc28gYSBzY29wZWQgY3JlZGVudGlhbCBjYW4gbmV2ZXIgY2xvYmJlciB0aGUgcGxhdGZvcm0gb25lLCBhbmQgdGhlXG4gKiBldmVudHMgTGFtYmRhJ3Mgc2VjcmV0IGlzIGEgZGlmZmVyZW50IG9iamVjdCBmcm9tIENvZGVCdWlsZCdzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gc2VjcmV0TmFtZUZvck9yZyhvcmdJZDogc3RyaW5nLCBsZWFmOiBzdHJpbmcgPSAncGxhdGZvcm0nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGAke0NvcmVDb25zdGFudHMuU0VDUkVUU19QQVRIX1BSRUZJWH0vJHtvcmdJZH0vJHtsZWFmfWA7XG59XG5cbi8qKiBBIGNhcGFiaWxpdHkgc2NvcGUgYXMgYSBzZWNyZXQtcGF0aCBsZWFmOiBgcmVwb3J0aW5nOmluZ2VzdGAg4oaSIGByZXBvcnRpbmctaW5nZXN0YC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzY29wZVNlY3JldExlYWYoc2NvcGU6IHN0cmluZyk6IHN0cmluZyB7XG4gIHJldHVybiBzY29wZS5yZXBsYWNlKC9bXmEtejAtOV0rL2dpLCAnLScpO1xufVxuXG4vKipcbiAqIERlcml2ZSB0aGUgcGxhdGZvcm0gc2VjcmV0IHBhdGggZnJvbSBhIEpXVCdzIG9yZ2FuaXphdGlvbklkLlxuICogUGF0dGVybjogYHtTRUNSRVRTX1BBVEhfUFJFRklYfS97b3JnSWR9L3BsYXRmb3JtYC5cbiAqIEB0aHJvd3MgaWYgdGhlIHRva2VuIGNhcnJpZXMgbm8gb3JnYW5pemF0aW9uSWQgKGNhbGxlciBzaG91bGQgZmFsbCBiYWNrIHRvIFBMQVRGT1JNX1NFQ1JFVF9OQU1FKS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlc29sdmVTZWNyZXROYW1lKHRva2VuOiBzdHJpbmcpOiBzdHJpbmcge1xuICAvLyBBbiBBQ0NFU1MgS0VZIChgcGJfcGF0X+KApmApIGlzIG9wYXF1ZSDigJQgaXQgY2FycmllcyBubyBvcmcgY2xhaW0gdG8gcmVhZCwgYnlcbiAgLy8gZGVzaWduLiBTYXkgc28gaW5zdGVhZCBvZiB0aGUgZ2VuZXJpYyBkZWNvZGUgZmFpbHVyZSwgc2luY2UgZXhwb3J0aW5nIGEga2V5XG4gIC8vIGFzIFBMQVRGT1JNX1RPS0VOIGlzIG5vdyB0aGUgbm9ybWFsIHdheSB0byBhdXRoZW50aWNhdGUgdGhlIENMSS5cbiAgaWYgKGlzT3BhcXVlQXBpS2V5KHRva2VuKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdQTEFURk9STV9UT0tFTiBpcyBhbiBvcGFxdWUgYWNjZXNzIGtleSwgd2hpY2ggY2FycmllcyBubyBvcmdhbml6YXRpb25JZCDigJQgc2V0IFBMQVRGT1JNX1NFQ1JFVF9OQU1FIHRvIG5hbWUgdGhlIHNlY3JldCBleHBsaWNpdGx5LicsXG4gICAgKTtcbiAgfVxuICBjb25zdCBwYXlsb2FkID0gZGVjb2RlVG9rZW5QYXlsb2FkKHRva2VuKTtcbiAgY29uc3Qgb3JnSWQgPSBwYXlsb2FkPy5vcmdhbml6YXRpb25JZDtcbiAgaWYgKCFvcmdJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignVG9rZW4gZG9lcyBub3QgY29udGFpbiBvcmdhbml6YXRpb25JZCDigJQgY2Fubm90IGRlcml2ZSBzZWNyZXQgbmFtZS4gU2V0IFBMQVRGT1JNX1NFQ1JFVF9OQU1FIHRvIHNwZWNpZnkgaXQgZXhwbGljaXRseS4nKTtcbiAgfVxuICByZXR1cm4gc2VjcmV0TmFtZUZvck9yZyhvcmdJZCk7XG59XG5cbi8qKlxuICogRW5zdXJlIGBwcm9jZXNzLmVudi5QTEFURk9STV9UT0tFTmAgaXMgc2V0LiBOby1vcCBpZiBpdCBhbHJlYWR5IGlzLiBPdGhlcndpc2UsXG4gKiBpZiBsb2dpbiBjcmVkcyBhcmUgYXZhaWxhYmxlIChgLS1pZGVudGlmaWVyLy0tcGFzc3dvcmRgIG9yIGBQTEFURk9STV9JREVOVElGSUVSYC9cbiAqIGBQTEFURk9STV9QQVNTV09SRGAgZW52IOKAlCB0aGUgZW52IHBhdGggbGV0cyBgcHJvdmlzaW9uYCBwYXNzIGNyZWRzIHdpdGhvdXRcbiAqIHB1dHRpbmcgdGhlIHBhc3N3b3JkIG9uIHRoZSBjb21tYW5kIGxpbmUpLCBsb2cgaW4gYW5kIHNldCBQTEFURk9STV9UT0tFTi5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVuc3VyZVBsYXRmb3JtVG9rZW4ob3B0aW9uczogUGxhdGZvcm1TZWNyZXRPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmIChwcm9jZXNzLmVudi5QTEFURk9STV9UT0tFTikgcmV0dXJuO1xuICBjb25zdCBsb2dpbklkZW50aWZpZXIgPSBvcHRpb25zLmlkZW50aWZpZXIgfHwgcHJvY2Vzcy5lbnYuUExBVEZPUk1fSURFTlRJRklFUjtcbiAgY29uc3QgbG9naW5QYXNzd29yZCA9IG9wdGlvbnMucGFzc3dvcmQgfHwgcHJvY2Vzcy5lbnYuUExBVEZPUk1fUEFTU1dPUkQ7XG4gIGlmICghbG9naW5JZGVudGlmaWVyIHx8ICFsb2dpblBhc3N3b3JkKSByZXR1cm47XG5cbiAgaWYgKG9wdGlvbnMucGFzc3dvcmQpIHtcbiAgICBwcmludFdhcm5pbmcoJ1Bhc3NpbmcgLS1wYXNzd29yZCBvbiB0aGUgY29tbWFuZCBsaW5lIGNhbiBleHBvc2UgaXQgdmlhIHNoZWxsIGhpc3Rvcnk7IHByZWZlciB0aGUgUExBVEZPUk1fUEFTU1dPUkQgZW52IHZhci4nKTtcbiAgfVxuXG4gIHByaW50U2VjdGlvbignTG9naW4nKTtcbiAgcHJpbnRJbmZvKCdBdXRoZW50aWNhdGluZyB3aXRoIGlkZW50aWZpZXIvcGFzc3dvcmQuLi4nKTtcbiAgLy8gUmVzb2x2ZSB0aGUgYmFzZSBVUkwgV0lUSE9VVCBkZW1hbmRpbmcgYSB0b2tlbiDigJQgdGhpcyBsb2dpbiBzdGVwIHJ1bnNcbiAgLy8gcHJlLWF1dGggKG5vIFBMQVRGT1JNX1RPS0VOIHlldCksIHNvIGBnZXRDb25maWcoKWAgd291bGQgdGhyb3cgaGVyZS4gVGhlXG4gIC8vIHRva2VuLW9wdGlvbmFsIGxvYWRlciBzdGlsbCBob25vcnMgY29uZmlnIGZpbGVzICsgUExBVEZPUk1fQkFTRV9VUkwvVExTIGVudi5cbiAgY29uc3QgYXBpQ29uZmlnID0gZ2V0QXBpQ29uZmlnKCk7XG4gIC8vIFNFQ1VSSVRZOiB0aGlzIGlubGluZSBsb2dpbiBQT1NUcyB0aGUgcGFzc3dvcmQuIFJlZnVzZSB0byBkaXNhYmxlIGNlcnRcbiAgLy8gdmVyaWZpY2F0aW9uIGluIHByb2R1Y3Rpb24gKG1pcnJvcnMgY29uZmlnLWxvYWRlciAvIGxvZ2luKSBzbyBhIE1JVE0gY2FuJ3RcbiAgLy8gaGFydmVzdCBpdDsgaG9ub3JlZCBpbiBub24tcHJvZHVjdGlvbiBmb3Igc2VsZi1zaWduZWQgZGV2IHBsYXRmb3Jtcy5cbiAgaWYgKG9wdGlvbnMudmVyaWZ5U3NsID09PSBmYWxzZSkge1xuICAgIGFzc2VydFNzbERpc2FibGVBbGxvd2VkKCdpbmxpbmUgbG9naW4nKTtcbiAgfVxuICBjb25zdCByZWplY3RVbmF1dGhvcml6ZWQgPSBvcHRpb25zLnZlcmlmeVNzbCA9PT0gZmFsc2UgPyBmYWxzZSA6IGFwaUNvbmZpZy5hcGkucmVqZWN0VW5hdXRob3JpemVkO1xuICBjb25zdCBsb2dpblJlc3BvbnNlID0gYXdhaXQgYXhpb3MucG9zdChcbiAgICBgJHthcGlDb25maWcuYXBpLmJhc2VVcmx9L2FwaS9hdXRoL2xvZ2luYCxcbiAgICAvLyBUaGUgc2VydmVyJ3MgbG9naW5TY2hlbWEgcmVxdWlyZXMgYGlkZW50aWZpZXJgIChlbWFpbCBPUiB1c2VybmFtZSksIG5vdFxuICAgIC8vIGBlbWFpbGAg4oCUIHNlbmRpbmcgYGVtYWlsYCBmYWlscyB6b2QgdmFsaWRhdGlvbiB3aXRoIGEgNDAwLlxuICAgIHsgaWRlbnRpZmllcjogbG9naW5JZGVudGlmaWVyLCBwYXNzd29yZDogbG9naW5QYXNzd29yZCB9LFxuICAgIHtcbiAgICAgIGhlYWRlcnM6IHJlcXVlc3RDb3JyZWxhdGlvbkhlYWRlcnMoKSxcbiAgICAgIGh0dHBzQWdlbnQ6IHJlamVjdFVuYXV0aG9yaXplZCA9PT0gZmFsc2VcbiAgICAgICAgPyBuZXcgKGF3YWl0IGltcG9ydCgnaHR0cHMnKSkuQWdlbnQoeyByZWplY3RVbmF1dGhvcml6ZWQ6IGZhbHNlIH0pXG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgIH0sXG4gICk7XG4gIGNvbnN0IGxvZ2luRGF0YSA9IGxvZ2luUmVzcG9uc2UuZGF0YT8uZGF0YSA/PyBsb2dpblJlc3BvbnNlLmRhdGE7XG4gIGNvbnN0IGxvZ2luVG9rZW4gPSBsb2dpbkRhdGE/LmFjY2Vzc1Rva2VuO1xuICBpZiAoIWxvZ2luVG9rZW4gfHwgdHlwZW9mIGxvZ2luVG9rZW4gIT09ICdzdHJpbmcnKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdMb2dpbiBmYWlsZWQg4oCUIG5vIGFjY2VzcyB0b2tlbiBpbiByZXNwb25zZScpO1xuICB9XG4gIHByb2Nlc3MuZW52LlBMQVRGT1JNX1RPS0VOID0gbG9naW5Ub2tlbjtcbiAgcHJpbnRTdWNjZXNzKCdMb2dpbiBzdWNjZXNzZnVsJyk7XG59XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgcGxhdGZvcm0gc2VjcmV0IG5hbWU6IGFuIGV4cGxpY2l0IGBQTEFURk9STV9TRUNSRVRfTkFNRWAgZW52IHdpbnM7XG4gKiBvdGhlcndpc2UgbG9nIGluIGlmIG5lZWRlZCBhbmQgZGVyaXZlIGl0IGZyb20gdGhlIHBsYXRmb3JtIHRva2VuJ3Mgb3JnIOKAlCB0aGVcbiAqIHNhbWUgdG9rZW4gYGluaXQtcGxhdGZvcm0uc2hgIChyZWdpc3RlcikgbWludHMsIHNvIHdyaXRlciBhbmQgcmVhZGVyIGFncmVlLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZVBsYXRmb3JtU2VjcmV0TmFtZShvcHRpb25zOiBQbGF0Zm9ybVNlY3JldE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBleHBsaWNpdCA9IHByb2Nlc3MuZW52LlBMQVRGT1JNX1NFQ1JFVF9OQU1FO1xuICBpZiAoZXhwbGljaXQpIHJldHVybiBleHBsaWNpdDtcbiAgYXdhaXQgZW5zdXJlUGxhdGZvcm1Ub2tlbihvcHRpb25zKTtcbiAgaWYgKCFwcm9jZXNzLmVudi5QTEFURk9STV9UT0tFTikge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICdDYW5ub3QgZGVyaXZlIHRoZSBwbGF0Zm9ybSBzZWNyZXQgbmFtZTogbm8gUExBVEZPUk1fVE9LRU4gYW5kIG5vIGxvZ2luIGNyZWRzLiAnXG4gICAgICArICdTZXQgUExBVEZPUk1fU0VDUkVUX05BTUUsIG9yIHByb3ZpZGUgbG9naW4gY3JlZHMgJ1xuICAgICAgKyAnKC0taWRlbnRpZmllci8tLXBhc3N3b3JkIG9yIFBMQVRGT1JNX0lERU5USUZJRVIvUExBVEZPUk1fUEFTU1dPUkQpLicsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gcmVzb2x2ZVNlY3JldE5hbWUocHJvY2Vzcy5lbnYuUExBVEZPUk1fVE9LRU4pO1xufVxuIl19
|
|
@@ -1,4 +1,26 @@
|
|
|
1
|
+
import { type LookupWarning } from '@pipeline-builder/pipeline-core';
|
|
1
2
|
import { ApiClient } from './api-client.js';
|
|
3
|
+
/** One plugin the synth could not use, as {@link PluginResolutionError} reports it. */
|
|
4
|
+
export interface PluginRefusal {
|
|
5
|
+
/** `[<publisher>/]<name>` of the reference. */
|
|
6
|
+
readonly plugin: string;
|
|
7
|
+
/** The plugin service's error code, or a local one (`PLUGIN_VERSION_NOT_FOUND`). */
|
|
8
|
+
readonly code: string;
|
|
9
|
+
readonly message: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Every fatal refusal of one pre-resolution pass. Carries the structured list
|
|
13
|
+
* as well as the human message, so the synth can emit a machine-readable
|
|
14
|
+
* failure line (`PB_SYNTH_FAILURE`) the execution events pick up.
|
|
15
|
+
*/
|
|
16
|
+
export declare class PluginResolutionError extends Error {
|
|
17
|
+
readonly refusals: readonly PluginRefusal[];
|
|
18
|
+
constructor(refusals: readonly PluginRefusal[]);
|
|
19
|
+
}
|
|
20
|
+
/** Print one lookup warning, prefixed and coloured by its severity. */
|
|
21
|
+
export declare function printLookupWarning(label: string, warning: LookupWarning): void;
|
|
22
|
+
/** Print the one-line severity summary of a synth's lookup warnings (nothing when none). */
|
|
23
|
+
export declare function printLookupWarningSummary(warnings: readonly LookupWarning[]): void;
|
|
2
24
|
/**
|
|
3
25
|
* Pre-resolve plugins by calling the same `POST /api/plugins/lookup` endpoint
|
|
4
26
|
* the deploy-time custom resource Lambda uses. Returning the full Plugin
|
|
@@ -9,10 +31,26 @@ import { ApiClient } from './api-client.js';
|
|
|
9
31
|
*
|
|
10
32
|
* Failures are non-fatal: a missing plugin or unreachable API logs a warning
|
|
11
33
|
* and falls through to the deploy-time custom resource path so partial
|
|
12
|
-
* platform outages don't block synth/deploy. The
|
|
13
|
-
*
|
|
34
|
+
* platform outages don't block synth/deploy. The exceptions abort the synth:
|
|
35
|
+
* the {@link FATAL_LOOKUP_CODES} refusals, and an exact version pin that does
|
|
36
|
+
* not exist.
|
|
37
|
+
*
|
|
38
|
+
* Every reference is looked up before anything is thrown, and ALL fatal
|
|
39
|
+
* refusals are reported together. Stopping at the first meant a pipeline with
|
|
40
|
+
* three refused plugins took three synth attempts to learn about all three.
|
|
41
|
+
*
|
|
42
|
+
* Every lookup warning is printed, graded by severity, and appended to
|
|
43
|
+
* `warningSink` when given (the synth prints a one-line summary at its end).
|
|
44
|
+
* A warning never fails the synth — vulnerability state is reported, not
|
|
45
|
+
* enforced.
|
|
46
|
+
*
|
|
47
|
+
* When the props carry a `pipelineId`, each lookup also sends
|
|
48
|
+
* `context: { pipelineId, stepKeys }` — the label (`pluginStepLabel`: `synth` or
|
|
49
|
+
* `<stage>/<alias ?? name>`) of EVERY step the de-duplicated reference serves —
|
|
50
|
+
* so the plugin service can record the warnings it returns against each of
|
|
51
|
+
* those pipeline steps, not only print them into this synth's log.
|
|
14
52
|
*
|
|
15
53
|
* Keyed by `alias || name` to match `PluginLookup.plugin()`.
|
|
16
54
|
*/
|
|
17
|
-
export declare function resolvePluginsForProps(client: ApiClient, props: Record<string, unknown
|
|
55
|
+
export declare function resolvePluginsForProps(client: ApiClient, props: Record<string, unknown>, warningSink?: LookupWarning[]): Promise<Record<string, unknown>>;
|
|
18
56
|
//# sourceMappingURL=plugin-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin-resolver.d.ts","sourceRoot":"","sources":["../../src/utils/plugin-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,EAC6D,KAAK,aAAa,EAErF,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAqH5C,uFAAuF;AACvF,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,oFAAoF;IACpF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED;;;;GAIG;AACH,qBAAa,qBAAsB,SAAQ,KAAK;IAClC,QAAQ,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE;IAAvD,YAAqB,QAAQ,EAAE,SAAS,aAAa,EAAE,EAKtD;CACF;AAmBD,uEAAuE;AACvE,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,IAAI,CAG9E;AAED,4FAA4F;AAC5F,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI,CAOlF;AASD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,CAAC,EAAE,aAAa,EAAE,GAC5B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAqElC"}
|