@pipeline-builder/pipeline-manager 3.4.117 → 3.4.119
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/dist/agent/ai.d.ts +1 -1
- package/dist/agent/ai.js +2 -2
- package/dist/agent/health.js +2 -2
- package/dist/agent/ports.js +3 -3
- package/dist/agent/prereqs.js +3 -3
- package/dist/agent/targets.d.ts +1 -1
- package/dist/agent/targets.d.ts.map +1 -1
- package/dist/agent/targets.js +6 -6
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +13 -8
- package/dist/commands/provision.js +3 -3
- package/dist/commands/synth.d.ts.map +1 -1
- package/dist/commands/synth.js +11 -6
- package/dist/utils/registry.d.ts +24 -0
- package/dist/utils/registry.d.ts.map +1 -1
- package/dist/utils/registry.js +58 -1
- package/package.json +3 -3
package/dist/commands/synth.js
CHANGED
|
@@ -10,6 +10,7 @@ import { createAuthenticatedClientAsync, printCommandHeader, printSslWarning } f
|
|
|
10
10
|
import { ERROR_CODES, handleError } from '../utils/error-handler.js';
|
|
11
11
|
import { extractSingleResponse, printError, printInfo, printKeyValue, printSection, printSuccess, printWarning } from '../utils/output-utils.js';
|
|
12
12
|
import { resolvePluginsForProps } from '../utils/plugin-resolver.js';
|
|
13
|
+
import { bakePlatformRegistry } from '../utils/registry.js';
|
|
13
14
|
// ESM has no __dirname; derive it from this module's URL.
|
|
14
15
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
15
16
|
/**
|
|
@@ -40,13 +41,17 @@ async function fetchPipelineConfig(pipelineId, options) {
|
|
|
40
41
|
propsWithIds.resolvedPlugins = resolvedPlugins;
|
|
41
42
|
printInfo('Pre-resolved plugins', { count: Object.keys(resolvedPlugins).length });
|
|
42
43
|
}
|
|
44
|
+
// Bake the registry pull target from the platform URL we synth against (the
|
|
45
|
+
// host serving the registry /v2/ data path) so CodeBuild image URIs use a host
|
|
46
|
+
// AWS CodeBuild can resolve, not the in-cluster `registry:5000` default. No-op
|
|
47
|
+
// when IMAGE_REGISTRY_PULL_HOST is set (explicit env wins).
|
|
48
|
+
bakePlatformRegistry(propsWithIds, config.api.baseUrl);
|
|
43
49
|
process.env.PIPELINE_PROPS = Buffer.from(JSON.stringify(propsWithIds)).toString('base64');
|
|
44
50
|
// Propagate the resolved platform base URL into the boilerplate synth (which
|
|
45
|
-
// inherits process.env).
|
|
46
|
-
//
|
|
47
|
-
//
|
|
48
|
-
// to the synth
|
|
49
|
-
// can't resolve it from the VPC). IMAGE_REGISTRY_PULL_HOST still wins if set.
|
|
51
|
+
// inherits process.env). The synth uses it for serverConfig.platformUrl (the
|
|
52
|
+
// PluginLookup Lambda endpoint) and as the loadRegistryConfig pull-host
|
|
53
|
+
// fallback. Without this, a URL configured via ~/.pipeline-manager/config.yml
|
|
54
|
+
// is invisible to the synth subprocess (it reads only the env).
|
|
50
55
|
if (config.api.baseUrl) {
|
|
51
56
|
process.env.PLATFORM_BASE_URL = config.api.baseUrl;
|
|
52
57
|
}
|
|
@@ -197,4 +202,4 @@ async function showResolvedPipeline(pipelineId, options) {
|
|
|
197
202
|
}
|
|
198
203
|
console.log(JSON.stringify(decoded, null, 2));
|
|
199
204
|
}
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3ludGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRXJFLDBEQUEwRDtBQUMxRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUUxRDs7O0dBR0c7QUFDSCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLFVBQWtCLEVBQ2xCLE9BQTBGO0lBRTFGLE1BQU0sTUFBTSxHQUFHLE1BQU0sOEJBQThCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBRWxDLE1BQU0sUUFBUSxHQUFHLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FDL0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxVQUFVLEVBQUUsQ0FDMUMsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLHFCQUFxQixDQUFXLFFBQVEsRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFFaEYsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUNyQixVQUFVLENBQUMsdUJBQXVCLEVBQUUsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN4RCxNQUFNLElBQUksS0FBSyxDQUFDLDZDQUE2QyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQzdFLENBQUM7SUFFRCxNQUFNLFlBQVksR0FBNEI7UUFDNUMsR0FBRyxRQUFRLENBQUMsS0FBZ0M7UUFDNUMsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFLElBQUksVUFBVTtLQUN0QyxDQUFDO0lBQ0YsSUFBSSxRQUFRLENBQUMsS0FBSztRQUFFLFlBQVksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztJQUV4RCx3RUFBd0U7SUFDeEUseUVBQXlFO0lBQ3pFLHlFQUF5RTtJQUN6RSxpQ0FBaUM7SUFDakMsTUFBTSxlQUFlLEdBQUcsTUFBTSxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsWUFBWSxDQUFDLENBQUM7SUFDM0UsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM1QyxZQUFZLENBQUMsZUFBZSxHQUFHLGVBQWUsQ0FBQztRQUMvQyxTQUFTLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BGLENBQUM7SUFFRCxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFMUYsNkVBQTZFO0lBQzdFLDZFQUE2RTtJQUM3RSwrRUFBK0U7SUFDL0UsZ0ZBQWdGO0lBQ2hGLGlGQUFpRjtJQUNqRiw4RUFBOEU7SUFDOUUsSUFBSSxNQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7SUFDckQsQ0FBQztJQUVELFlBQVksQ0FBQywrQkFBK0IsQ0FBQyxDQUFDO0FBQ2hELENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLFVBQVUsS0FBSyxDQUFDLE9BQWdCO0lBQ3BDLE9BQU87U0FDSixPQUFPLENBQUMsT0FBTyxDQUFDO1NBQ2hCLFdBQVcsQ0FBQyxnREFBZ0QsQ0FBQztTQUM3RCxNQUFNLENBQUMsZUFBZSxFQUFFLDBDQUEwQyxDQUFDO1NBQ25FLE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSwyRkFBMkYsRUFBRSxLQUFLLENBQUM7U0FDNUgsTUFBTSxDQUFDLGdCQUFnQixFQUFFLHNCQUFzQixFQUFFLFNBQVMsQ0FBQztTQUMzRCxNQUFNLENBQUMscUJBQXFCLEVBQUUsYUFBYSxDQUFDO1NBQzVDLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxpQ0FBaUMsQ0FBQztTQUM5RCxNQUFNLENBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFFLEtBQUssQ0FBQztTQUMvQyxNQUFNLENBQUMsY0FBYyxFQUFFLHNCQUFzQixDQUFDO1NBQzlDLE1BQU0sQ0FBQyxXQUFXLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxDQUFDO1NBQ3JELE1BQU0sQ0FBQyxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxDQUFDO1NBQ2hELE1BQU0sQ0FBQyxjQUFjLEVBQUUscUNBQXFDLENBQUM7U0FDN0QsTUFBTSxDQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxDQUFDO1NBQ2pFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxxR0FBcUcsRUFBRSxLQUFLLENBQUM7U0FDdkksTUFBTSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4QixNQUFNLFdBQVcsR0FBRyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUV4RCxJQUFJLENBQUM7WUFDSCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDO1lBRXpELDhDQUE4QztZQUM5QyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2hELE9BQU87WUFDVCxDQUFDO1lBRUQsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLGVBQWUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFFbkMsNEVBQTRFO1lBQzVFLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxLQUFLLEVBQUUsQ0FBQztnQkFDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyw0QkFBNEIsR0FBRyxHQUFHLENBQUM7WUFDakQsQ0FBQztZQUVELDhFQUE4RTtZQUM5RSxJQUFJLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzlDLFNBQVMsQ0FBQyxpQ0FBaUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDO2dCQUNqRSxNQUFNLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNqRCxDQUFDO2lCQUFNLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN0RCxZQUFZLENBQUMsc0NBQXNDLENBQUMsQ0FBQztnQkFDckQsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFDO1lBQ3hGLENBQUM7WUFFRCxrQkFBa0IsRUFBRSxDQUFDO1lBQ3JCLFlBQVksQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBRXJDLDBCQUEwQjtZQUMxQixJQUFJLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLGVBQWUsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQzlELElBQUksT0FBTyxDQUFDLE9BQU87Z0JBQUUsZUFBZSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFFakUsTUFBTSxlQUFlLEdBQUcsc0JBQXNCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDMUQsTUFBTSxLQUFLLEdBQUc7Z0JBQ1osV0FBVztnQkFDWCxlQUFlLGVBQWUsR0FBRztnQkFDakMsWUFBWSxPQUFPLENBQUMsTUFBTSxFQUFFO2FBQzdCLENBQUM7WUFFRixJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNoRSxJQUFJLE9BQU8sQ0FBQyxLQUFLO2dCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDekMsSUFBSSxPQUFPLENBQUMsT0FBTyxLQUFLLEtBQUs7Z0JBQUUsS0FBSyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUMxRCxJQUFJLE9BQU8sQ0FBQyxPQUFPO2dCQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFN0MsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVoQyxTQUFTLENBQUMsV0FBVyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZGLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFaEIsTUFBTSxNQUFNLEdBQUcsc0JBQXNCLENBQUMsT0FBTyxFQUFFO2dCQUM3QyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSzthQUMzQixDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hCLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBRW5DLElBQUksTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO2dCQUNuQixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDakIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO3dCQUN6QixPQUFPLEVBQUUsSUFBSTt3QkFDYixXQUFXO3dCQUNYLFFBQVEsRUFBRSxNQUFNLENBQUMsUUFBUTt3QkFDekIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO3FCQUN2QixFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNmLENBQUM7cUJBQU0sQ0FBQztvQkFDTixhQUFhLENBQUM7d0JBQ1osY0FBYyxFQUFFLFdBQVc7d0JBQzNCLFVBQVUsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFRLElBQUk7d0JBQ2xDLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTTt3QkFDeEIsUUFBUSxFQUFFLFdBQVc7cUJBQ3RCLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUVILENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsV0FBVyxDQUFDLEtBQUssRUFBRSxXQUFXLENBQUMsV0FBVyxFQUFFO2dCQUMxQyxLQUFLLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDLEtBQUs7Z0JBQzNCLElBQUksRUFBRSxJQUFJO2dCQUNWLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFO2FBQ25FLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLG9CQUFvQixDQUNqQyxVQUE4QixFQUM5QixPQUEwRjtJQUUxRixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFDRCxNQUFNLG1CQUFtQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvQyxzRUFBc0U7SUFDdEUsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFDM0MsSUFBSSxDQUFDLE9BQU87UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHdDQUF3QyxDQUFDLENBQUM7SUFDeEUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUU3RSx1RUFBdUU7SUFDdkUsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxNQUFNLENBQUMsaUNBQWlDLENBQUMsQ0FBQztJQUNuRixNQUFNLEtBQUssR0FBRyxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQztJQUM3RSxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQ2xDLENBQUMsS0FBSyxhQUFhLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUvRixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgYXNzZXJ0U2hlbGxTYWZlIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHR5cGUgeyBQaXBlbGluZSB9IGZyb20gJy4uL3R5cGVzL3BpcGVsaW5lLmpzJztcbmltcG9ydCB7IGF1ZGl0TG9nIH0gZnJvbSAnLi4vdXRpbHMvYXVkaXQtbG9nLmpzJztcbmltcG9ydCB7IGVuc3VyZUNka0F2YWlsYWJsZSwgZXhlY3V0ZUNka1NoZWxsQ29tbWFuZCwgcmVzb2x2ZUJvaWxlcnBsYXRlUGF0aCB9IGZyb20gJy4uL3V0aWxzL2Nkay11dGlscy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IGV4dHJhY3RTaW5nbGVSZXNwb25zZSwgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHJlc29sdmVQbHVnaW5zRm9yUHJvcHMgfSBmcm9tICcuLi91dGlscy9wbHVnaW4tcmVzb2x2ZXIuanMnO1xuXG4vLyBFU00gaGFzIG5vIF9fZGlybmFtZTsgZGVyaXZlIGl0IGZyb20gdGhpcyBtb2R1bGUncyBVUkwuXG5jb25zdCBfX2Rpcm5hbWUgPSBkaXJuYW1lKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSk7XG5cbi8qKlxuICogRmV0Y2ggcGlwZWxpbmUgY29uZmlnIGFuZCBzZXQgUElQRUxJTkVfUFJPUFMgZW52IHZhciBmb3IgdGhlIGJvaWxlcnBsYXRlIGFwcC5cbiAqIFVzZXMgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jIHdoaWNoIHN1cHBvcnRzIGFsbCB0aHJlZSBhdXRoIG1ldGhvZHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZldGNoUGlwZWxpbmVDb25maWcoXG4gIHBpcGVsaW5lSWQ6IHN0cmluZyxcbiAgb3B0aW9uczogeyBzdG9yZVRva2Vucz86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW47IHJlZ2lvbj86IHN0cmluZzsgcHJvZmlsZT86IHN0cmluZyB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IGNsaWVudCA9IGF3YWl0IGNyZWF0ZUF1dGhlbnRpY2F0ZWRDbGllbnRBc3luYyhvcHRpb25zKTtcbiAgY29uc3QgY29uZmlnID0gY2xpZW50LmdldENvbmZpZygpO1xuXG4gIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgY2xpZW50LmdldDxSZWNvcmQ8c3RyaW5nLCB1bmtub3duPj4oXG4gICAgYCR7Y29uZmlnLmFwaS5waXBlbGluZVVybH0vJHtwaXBlbGluZUlkfWAsXG4gICk7XG5cbiAgY29uc3QgcGlwZWxpbmUgPSBleHRyYWN0U2luZ2xlUmVzcG9uc2U8UGlwZWxpbmU+KHJlc3BvbnNlLCAncGlwZWxpbmUnLCAncHJvcHMnKTtcblxuICBpZiAoIXBpcGVsaW5lPy5wcm9wcykge1xuICAgIHByaW50RXJyb3IoJ1BpcGVsaW5lIGhhcyBubyBwcm9wcycsIHsgaWQ6IHBpcGVsaW5lSWQgfSk7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gcmV0cmlldmUgcGlwZWxpbmUgcHJvcHMgZm9yIElEOiAke3BpcGVsaW5lSWR9YCk7XG4gIH1cblxuICBjb25zdCBwcm9wc1dpdGhJZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge1xuICAgIC4uLnBpcGVsaW5lLnByb3BzIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuICAgIHBpcGVsaW5lSWQ6IHBpcGVsaW5lLmlkIHx8IHBpcGVsaW5lSWQsXG4gIH07XG4gIGlmIChwaXBlbGluZS5vcmdJZCkgcHJvcHNXaXRoSWRzLm9yZ0lkID0gcGlwZWxpbmUub3JnSWQ7XG5cbiAgLy8gUHJlLXJlc29sdmUgcGx1Z2lucyBmcm9tIHRoZSBwbGF0Zm9ybSBBUEkgc28gdGhlIHN5bnRoZXNpemVkIHRlbXBsYXRlXG4gIC8vIHNoaXBzIHdpdGggcmVhbCBDb2RlQnVpbGQgaW1hZ2UgVVJJcyBiYWtlZCBpbi4gV2l0aG91dCB0aGlzLCBDREsgZmFsbHNcbiAgLy8gYmFjayB0byBzdGFuZGFyZDo3LjAgYmVjYXVzZSB0aGUgZGVwbG95LXRpbWUgY3VzdG9tIHJlc291cmNlIGF0dHJpYnV0ZVxuICAvLyBpcyB1bnJlc29sdmFibGUgYXQgc3ludGggdGltZS5cbiAgY29uc3QgcmVzb2x2ZWRQbHVnaW5zID0gYXdhaXQgcmVzb2x2ZVBsdWdpbnNGb3JQcm9wcyhjbGllbnQsIHByb3BzV2l0aElkcyk7XG4gIGlmIChPYmplY3Qua2V5cyhyZXNvbHZlZFBsdWdpbnMpLmxlbmd0aCA+IDApIHtcbiAgICBwcm9wc1dpdGhJZHMucmVzb2x2ZWRQbHVnaW5zID0gcmVzb2x2ZWRQbHVnaW5zO1xuICAgIHByaW50SW5mbygnUHJlLXJlc29sdmVkIHBsdWdpbnMnLCB7IGNvdW50OiBPYmplY3Qua2V5cyhyZXNvbHZlZFBsdWdpbnMpLmxlbmd0aCB9KTtcbiAgfVxuXG4gIHByb2Nlc3MuZW52LlBJUEVMSU5FX1BST1BTID0gQnVmZmVyLmZyb20oSlNPTi5zdHJpbmdpZnkocHJvcHNXaXRoSWRzKSkudG9TdHJpbmcoJ2Jhc2U2NCcpO1xuXG4gIC8vIFByb3BhZ2F0ZSB0aGUgcmVzb2x2ZWQgcGxhdGZvcm0gYmFzZSBVUkwgaW50byB0aGUgYm9pbGVycGxhdGUgc3ludGggKHdoaWNoXG4gIC8vIGluaGVyaXRzIHByb2Nlc3MuZW52KS4gbG9hZFJlZ2lzdHJ5Q29uZmlnKCkgZGVyaXZlcyB0aGUgcmVnaXN0cnkgUFVMTCBob3N0XG4gIC8vIGZyb20gUExBVEZPUk1fQkFTRV9VUkwgLyBJTUFHRV9SRUdJU1RSWV9QVUxMX0hPU1Q7IGl0IG9ubHkgcmVhZHMgdGhlIGVudiwgc29cbiAgLy8gd2l0aG91dCB0aGlzIGEgVVJMIGNvbmZpZ3VyZWQgdmlhIH4vLnBpcGVsaW5lLW1hbmFnZXIvY29uZmlnLnltbCBpcyBpbnZpc2libGVcbiAgLy8gdG8gdGhlIHN5bnRoIGFuZCBpdCBiYWtlcyB0aGUgaW4tY2x1c3RlciBgcmVnaXN0cnk6NTAwMGAgaW50byBDb2RlQnVpbGQgKHdoaWNoXG4gIC8vIGNhbid0IHJlc29sdmUgaXQgZnJvbSB0aGUgVlBDKS4gSU1BR0VfUkVHSVNUUllfUFVMTF9IT1NUIHN0aWxsIHdpbnMgaWYgc2V0LlxuICBpZiAoY29uZmlnLmFwaS5iYXNlVXJsKSB7XG4gICAgcHJvY2Vzcy5lbnYuUExBVEZPUk1fQkFTRV9VUkwgPSBjb25maWcuYXBpLmJhc2VVcmw7XG4gIH1cblxuICBwcmludFN1Y2Nlc3MoJ1BpcGVsaW5lIGNvbmZpZ3VyYXRpb24gbG9hZGVkJyk7XG59XG5cbi8qKlxuICogUmVnaXN0ZXJzIHRoZSBgc3ludGhgIGNvbW1hbmQgd2l0aCB0aGUgQ0xJIHByb2dyYW0uXG4gKlxuICogUnVucyBDREsgc3ludGhlc2lzIHVzaW5nIHRoZSBib2lsZXJwbGF0ZSBhcHAuIFBpcGVsaW5lIGNvbmZpZyBpcyByZXNvbHZlZCBmcm9tOlxuICogMS4gLS1pZCBmbGFnIG9yIFBJUEVMSU5FX0lEIGVudiB2YXIg4oaSIGZldGNoZXMgY29uZmlnIGZyb20gcGxhdGZvcm0gQVBJXG4gKiAyLiBQSVBFTElORV9QUk9QUyBlbnYgdmFyIChwcmUtZW5jb2RlZCwgZnJvbSBkZXBsb3kgY29tbWFuZClcbiAqXG4gKiBBdXRoZW50aWNhdGlvbiBtZXRob2RzIChpbiBwcmlvcml0eSBvcmRlcik6XG4gKiAtIFBMQVRGT1JNX1RPS0VOIGVudiB2YXJcbiAqIC0gLS1zdG9yZS10b2tlbnMg4oaSIGZldGNoIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlclxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBiYXNoXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHN5bnRoIC0taWQgPHBpcGVsaW5lLWlkPiAtLW5vLXZlcmlmeS1zc2xcbiAqIHBpcGVsaW5lLW1hbmFnZXIgc3ludGggLS1pZCA8cGlwZWxpbmUtaWQ+IC0tc3RvcmUtdG9rZW5zXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHN5bnRoIC0tcXVpZXQgLS1uby1ub3RpY2VzICAgICAgICAgICMgQ29kZVBpcGVsaW5lICh1c2VzIGVudiB2YXJzKVxuICogYGBgXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzeW50aChwcm9ncmFtOiBDb21tYW5kKTogdm9pZCB7XG4gIHByb2dyYW1cbiAgICAuY29tbWFuZCgnc3ludGgnKVxuICAgIC5kZXNjcmlwdGlvbignUnVuIENESyBzeW50aGVzaXMgdXNpbmcgcGlwZWxpbmUgY29uZmlndXJhdGlvbicpXG4gICAgLm9wdGlvbignLWksIC0taWQgPGlkPicsICdQaXBlbGluZSBJRCAob3Igc2V0IFBJUEVMSU5FX0lEIGVudiB2YXIpJylcbiAgICAub3B0aW9uKCctLXN0b3JlLXRva2VucycsICdBdXRoZW50aWNhdGUgdXNpbmcgdG9rZW4gZnJvbSBBV1MgU2VjcmV0cyBNYW5hZ2VyIChyZXF1aXJlcyBQTEFURk9STV9TRUNSRVRfTkFNRSBlbnYgdmFyKScsIGZhbHNlKVxuICAgIC5vcHRpb24oJy0tb3V0cHV0IDxkaXI+JywgJ0NESyBvdXRwdXQgZGlyZWN0b3J5JywgJ2Nkay5vdXQnKVxuICAgIC5vcHRpb24oJy0tcHJvZmlsZSA8cHJvZmlsZT4nLCAnQVdTIHByb2ZpbGUnKVxuICAgIC5vcHRpb24oJy0tcmVnaW9uIDxyZWdpb24+JywgJ0FXUyByZWdpb24gKGZvciAtLXN0b3JlLXRva2VucyknKVxuICAgIC5vcHRpb24oJy0tcXVpZXQnLCAnU3VwcHJlc3MgQ0RLIG91dHB1dCcsIGZhbHNlKVxuICAgIC5vcHRpb24oJy0tbm8tbm90aWNlcycsICdTdXBwcmVzcyBDREsgbm90aWNlcycpXG4gICAgLm9wdGlvbignLS12ZXJib3NlJywgJ1Nob3cgdmVyYm9zZSBDREsgb3V0cHV0JywgZmFsc2UpXG4gICAgLm9wdGlvbignLS1qc29uJywgJ091dHB1dCByZXN1bHQgYXMgSlNPTicsIGZhbHNlKVxuICAgIC5vcHRpb24oJy0tdmVyaWZ5LXNzbCcsICdFbmFibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG4gICAgLm9wdGlvbignLS1uby12ZXJpZnktc3NsJywgJ0Rpc2FibGUgU1NMIGNlcnRpZmljYXRlIHZlcmlmaWNhdGlvbicpXG4gICAgLm9wdGlvbignLS1zaG93LXJlc29sdmVkJywgJ1ByaW50IHRoZSByZXNvbHZlZCBwaXBlbGluZSBjb25maWcgKHdpdGgge3sgLi4uIH19IHRlbXBsYXRlcyBleHBhbmRlZCkgYW5kIGV4aXQgd2l0aG91dCBydW5uaW5nIENESycsIGZhbHNlKVxuICAgIC5hY3Rpb24oYXN5bmMgKG9wdGlvbnMpID0+IHtcbiAgICAgIGNvbnN0IGV4ZWN1dGlvbklkID0gcHJpbnRDb21tYW5kSGVhZGVyKCdDREsgU3ludGhlc2lzJyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHBpcGVsaW5lSWQgPSBvcHRpb25zLmlkIHx8IHByb2Nlc3MuZW52LlBJUEVMSU5FX0lEO1xuXG4gICAgICAgIC8vIC0tc2hvdy1yZXNvbHZlZDogcHJldmlldyB0ZW1wbGF0ZXMgYW5kIGV4aXRcbiAgICAgICAgaWYgKG9wdGlvbnMuc2hvd1Jlc29sdmVkKSB7XG4gICAgICAgICAgYXdhaXQgc2hvd1Jlc29sdmVkUGlwZWxpbmUocGlwZWxpbmVJZCwgb3B0aW9ucyk7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXVkaXRMb2coJ3N5bnRoJywgeyBleGVjdXRpb25JZCwgcGlwZWxpbmVJZCwgb3V0cHV0OiBvcHRpb25zLm91dHB1dCwgcHJvZmlsZTogb3B0aW9ucy5wcm9maWxlIH0pO1xuICAgICAgICBwcmludFNzbFdhcm5pbmcob3B0aW9ucy52ZXJpZnlTc2wpO1xuXG4gICAgICAgIC8vIFByb3BhZ2F0ZSB0byBwcm9jZXNzLmVudiBzbyBDREsgY29uc3RydWN0cyAoTGFtYmRhLCBDb2RlQnVpbGQpIGluaGVyaXQgaXRcbiAgICAgICAgaWYgKG9wdGlvbnMudmVyaWZ5U3NsID09PSBmYWxzZSkge1xuICAgICAgICAgIHByb2Nlc3MuZW52Lk5PREVfVExTX1JFSkVDVF9VTkFVVEhPUklaRUQgPSAnMCc7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBGZXRjaCBwaXBlbGluZSBjb25maWcgaWYgSUQgaXMgYXZhaWxhYmxlIGFuZCBQSVBFTElORV9QUk9QUyBub3QgYWxyZWFkeSBzZXRcbiAgICAgICAgaWYgKHBpcGVsaW5lSWQgJiYgIXByb2Nlc3MuZW52LlBJUEVMSU5FX1BST1BTKSB7XG4gICAgICAgICAgcHJpbnRJbmZvKCdGZXRjaGluZyBwaXBlbGluZSBjb25maWd1cmF0aW9uJywgeyBpZDogcGlwZWxpbmVJZCB9KTtcbiAgICAgICAgICBhd2FpdCBmZXRjaFBpcGVsaW5lQ29uZmlnKHBpcGVsaW5lSWQsIG9wdGlvbnMpO1xuICAgICAgICB9IGVsc2UgaWYgKCFwaXBlbGluZUlkICYmICFwcm9jZXNzLmVudi5QSVBFTElORV9QUk9QUykge1xuICAgICAgICAgIHByaW50V2FybmluZygnTm8gcGlwZWxpbmUgSUQgb3IgUElQRUxJTkVfUFJPUFMgc2V0Jyk7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQaXBlbGluZSBJRCBpcyByZXF1aXJlZC4gVXNlIC0taWQgPGlkPiBvciBzZXQgUElQRUxJTkVfSUQgZW52IHZhci4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGVuc3VyZUNka0F2YWlsYWJsZSgpO1xuICAgICAgICBwcmludFN1Y2Nlc3MoJ0FXUyBDREsgaXMgYXZhaWxhYmxlJyk7XG5cbiAgICAgICAgLy8gQnVpbGQgY2RrIHN5bnRoIGNvbW1hbmRcbiAgICAgICAgaWYgKG9wdGlvbnMub3V0cHV0KSBhc3NlcnRTaGVsbFNhZmUob3B0aW9ucy5vdXRwdXQsICdvdXRwdXQnKTtcbiAgICAgICAgaWYgKG9wdGlvbnMucHJvZmlsZSkgYXNzZXJ0U2hlbGxTYWZlKG9wdGlvbnMucHJvZmlsZSwgJ3Byb2ZpbGUnKTtcblxuICAgICAgICBjb25zdCBib2lsZXJwbGF0ZVBhdGggPSByZXNvbHZlQm9pbGVycGxhdGVQYXRoKF9fZGlybmFtZSk7XG4gICAgICAgIGNvbnN0IHBhcnRzID0gW1xuICAgICAgICAgICdjZGsgc3ludGgnLFxuICAgICAgICAgIGAtLWFwcD1cIm5vZGUgJHtib2lsZXJwbGF0ZVBhdGh9XCJgLFxuICAgICAgICAgIGAtLW91dHB1dD0ke29wdGlvbnMub3V0cHV0fWAsXG4gICAgICAgIF07XG5cbiAgICAgICAgaWYgKG9wdGlvbnMucHJvZmlsZSkgcGFydHMucHVzaChgLS1wcm9maWxlPSR7b3B0aW9ucy5wcm9maWxlfWApO1xuICAgICAgICBpZiAob3B0aW9ucy5xdWlldCkgcGFydHMucHVzaCgnLS1xdWlldCcpO1xuICAgICAgICBpZiAob3B0aW9ucy5ub3RpY2VzID09PSBmYWxzZSkgcGFydHMucHVzaCgnLS1uby1ub3RpY2VzJyk7XG4gICAgICAgIGlmIChvcHRpb25zLnZlcmJvc2UpIHBhcnRzLnB1c2goJy0tdmVyYm9zZScpO1xuXG4gICAgICAgIGNvbnN0IGNvbW1hbmQgPSBwYXJ0cy5qb2luKCcgJyk7XG5cbiAgICAgICAgcHJpbnRJbmZvKCdFeGVjdXRpbmcnLCB7IGNvbW1hbmQ6IChjb21tYW5kLnNwbGl0KCctLWFwcCcpWzBdID8/ICcnKS50cmltKCkgKyAnIC4uLicgfSk7XG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSBleGVjdXRlQ2RrU2hlbGxDb21tYW5kKGNvbW1hbmQsIHtcbiAgICAgICAgICBzaG93T3V0cHV0OiAhb3B0aW9ucy5xdWlldCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJycpO1xuICAgICAgICBwcmludFNlY3Rpb24oJ1N5bnRoZXNpcyBDb21wbGV0ZScpO1xuXG4gICAgICAgIGlmIChyZXN1bHQuc3VjY2Vzcykge1xuICAgICAgICAgIGlmIChvcHRpb25zLmpzb24pIHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgc3VjY2VzczogdHJ1ZSxcbiAgICAgICAgICAgICAgZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICAgIGR1cmF0aW9uOiByZXN1bHQuZHVyYXRpb24sXG4gICAgICAgICAgICAgIG91dHB1dDogb3B0aW9ucy5vdXRwdXQsXG4gICAgICAgICAgICB9LCBudWxsLCAyKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByaW50S2V5VmFsdWUoe1xuICAgICAgICAgICAgICAnRXhlY3V0aW9uIElEJzogZXhlY3V0aW9uSWQsXG4gICAgICAgICAgICAgICdEdXJhdGlvbic6IGAke3Jlc3VsdC5kdXJhdGlvbn1tc2AsXG4gICAgICAgICAgICAgICdPdXRwdXQnOiBvcHRpb25zLm91dHB1dCxcbiAgICAgICAgICAgICAgJ1N0YXR1cyc6ICfinJMgU3VjY2VzcycsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaGFuZGxlRXJyb3IoZXJyb3IsIEVSUk9SX0NPREVTLkFQSV9SRVFVRVNULCB7XG4gICAgICAgICAgZGVidWc6IHByb2dyYW0ub3B0cygpLmRlYnVnLFxuICAgICAgICAgIGV4aXQ6IHRydWUsXG4gICAgICAgICAgY29udGV4dDogeyBjb21tYW5kOiAnc3ludGgnLCBleGVjdXRpb25JZCwgcGlwZWxpbmVJZDogb3B0aW9ucy5pZCB9LFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbn1cblxuLyoqXG4gKiBGZXRjaCB0aGUgcGlwZWxpbmUgYnkgSUQsIGFwcGx5IHBhc3MtMSBzZWxmLXJlZmVyZW5jaW5nIHRlbXBsYXRlXG4gKiByZXNvbHV0aW9uLCBhbmQgcHJpbnQgaXQgdG8gc3Rkb3V0LiBVc2VkIGJ5IGBzeW50aCAtLXNob3ctcmVzb2x2ZWRgXG4gKiBhbmQgYGRlcGxveSAtLXNob3ctcmVzb2x2ZWRgIHRvIHByZXZpZXcgc3Vic3RpdHV0aW9uIGJlZm9yZSBydW5uaW5nIENESy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2hvd1Jlc29sdmVkUGlwZWxpbmUoXG4gIHBpcGVsaW5lSWQ6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uczogeyBwcm9maWxlPzogc3RyaW5nOyByZWdpb24/OiBzdHJpbmc7IHN0b3JlVG9rZW5zPzogYm9vbGVhbjsgdmVyaWZ5U3NsPzogYm9vbGVhbiB9LFxuKTogUHJvbWlzZTx2b2lkPiB7XG4gIGlmICghcGlwZWxpbmVJZCkge1xuICAgIHRocm93IG5ldyBFcnJvcignLS1zaG93LXJlc29sdmVkIHJlcXVpcmVzIC0taWQgb3IgUElQRUxJTkVfSUQgZW52IHZhcicpO1xuICB9XG4gIGF3YWl0IGZldGNoUGlwZWxpbmVDb25maWcocGlwZWxpbmVJZCwgb3B0aW9ucyk7XG4gIC8vIGZldGNoUGlwZWxpbmVDb25maWcgd3JpdGVzIFBJUEVMSU5FX1BST1BTIGJhc2U2NC1lbmNvZGVkIG9uIHN1Y2Nlc3NcbiAgY29uc3QgZW5jb2RlZCA9IHByb2Nlc3MuZW52LlBJUEVMSU5FX1BST1BTO1xuICBpZiAoIWVuY29kZWQpIHRocm93IG5ldyBFcnJvcignRmFpbGVkIHRvIGZldGNoIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24nKTtcbiAgY29uc3QgZGVjb2RlZCA9IEpTT04ucGFyc2UoQnVmZmVyLmZyb20oZW5jb2RlZCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCd1dGYtOCcpKTtcblxuICAvLyBMYXp5IGltcG9ydCB0byBhdm9pZCBwdWxsaW5nIHBpcGVsaW5lLWNvcmUgaW50byBldmVyeSBDTEkgaW52b2NhdGlvblxuICBjb25zdCB7IHJlc29sdmVTZWxmUmVmZXJlbmNpbmcgfSA9IGF3YWl0IGltcG9ydCgnQHBpcGVsaW5lLWJ1aWxkZXIvcGlwZWxpbmUtY29yZScpO1xuICBjb25zdCBzY29wZSA9IHsgbWV0YWRhdGE6IGRlY29kZWQubWV0YWRhdGEgPz8ge30sIHZhcnM6IGRlY29kZWQudmFycyA/PyB7fSB9O1xuICBjb25zdCBpc1RlbXBsYXRhYmxlID0gKGY6IHN0cmluZykgPT5cbiAgICBmID09PSAncHJvamVjdE5hbWUnIHx8IGYuc3RhcnRzV2l0aCgnbWV0YWRhdGEuJykgfHwgZi5zdGFydHNXaXRoKCd2YXJzLicpO1xuICBjb25zdCBmaWVsZFRvU2NvcGUgPSAoZjogc3RyaW5nKSA9PiBpc1RlbXBsYXRhYmxlKGYpID8gZiA6IG51bGw7XG4gIGNvbnN0IHJlc3VsdCA9IHJlc29sdmVTZWxmUmVmZXJlbmNpbmcoZGVjb2RlZCwgc2NvcGUsIGlzVGVtcGxhdGFibGUsIGZpZWxkVG9TY29wZSwgJ3BpcGVsaW5lJyk7XG5cbiAgaWYgKHJlc3VsdC5lcnJvcnMubGVuZ3RoKSB7XG4gICAgY29uc29sZS5lcnJvcignUmVzb2x1dGlvbiBlcnJvcnM6Jyk7XG4gICAgZm9yIChjb25zdCBlIG9mIHJlc3VsdC5lcnJvcnMpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoYCAgWyR7ZS5maWVsZCA/PyAnPyd9XSAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gICAgcHJvY2Vzcy5leGl0KDEpO1xuICB9XG4gIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGRlY29kZWQsIG51bGwsIDIpKTtcbn1cbiJdfQ==
|
|
205
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ludGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29tbWFuZHMvc3ludGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDekMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzNHLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxrQkFBa0IsRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNoSCxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pKLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRTVELDBEQUEwRDtBQUMxRCxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUUxRDs7O0dBR0c7QUFDSCxLQUFLLFVBQVUsbUJBQW1CLENBQ2hDLFVBQWtCLEVBQ2xCLE9BQTBGO0lBRTFGLE1BQU0sTUFBTSxH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QUM3RSxNQUFNLGFBQWEsR0FBRyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQ2xDLENBQUMsS0FBSyxhQUFhLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVFLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxVQUFVLENBQUMsQ0FBQztJQUUvRixJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDekIsT0FBTyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BDLEtBQUssTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQzlCLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN0RCxDQUFDO1FBQ0QsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsQixDQUFDO0lBQ0QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNoRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IGRpcm5hbWUgfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gJ25vZGU6dXJsJztcbmltcG9ydCB7IENvbW1hbmQgfSBmcm9tICdjb21tYW5kZXInO1xuaW1wb3J0IHsgYXNzZXJ0U2hlbGxTYWZlIH0gZnJvbSAnLi4vY29uZmlnL2NsaS5jb25zdGFudHMuanMnO1xuaW1wb3J0IHR5cGUgeyBQaXBlbGluZSB9IGZyb20gJy4uL3R5cGVzL3BpcGVsaW5lLmpzJztcbmltcG9ydCB7IGF1ZGl0TG9nIH0gZnJvbSAnLi4vdXRpbHMvYXVkaXQtbG9nLmpzJztcbmltcG9ydCB7IGVuc3VyZUNka0F2YWlsYWJsZSwgZXhlY3V0ZUNka1NoZWxsQ29tbWFuZCwgcmVzb2x2ZUJvaWxlcnBsYXRlUGF0aCB9IGZyb20gJy4uL3V0aWxzL2Nkay11dGlscy5qcyc7XG5pbXBvcnQgeyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMsIHByaW50Q29tbWFuZEhlYWRlciwgcHJpbnRTc2xXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvY29tbWFuZC11dGlscy5qcyc7XG5pbXBvcnQgeyBFUlJPUl9DT0RFUywgaGFuZGxlRXJyb3IgfSBmcm9tICcuLi91dGlscy9lcnJvci1oYW5kbGVyLmpzJztcbmltcG9ydCB7IGV4dHJhY3RTaW5nbGVSZXNwb25zZSwgcHJpbnRFcnJvciwgcHJpbnRJbmZvLCBwcmludEtleVZhbHVlLCBwcmludFNlY3Rpb24sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi4vdXRpbHMvb3V0cHV0LXV0aWxzLmpzJztcbmltcG9ydCB7IHJlc29sdmVQbHVnaW5zRm9yUHJvcHMgfSBmcm9tICcuLi91dGlscy9wbHVnaW4tcmVzb2x2ZXIuanMnO1xuaW1wb3J0IHsgYmFrZVBsYXRmb3JtUmVnaXN0cnkgfSBmcm9tICcuLi91dGlscy9yZWdpc3RyeS5qcyc7XG5cbi8vIEVTTSBoYXMgbm8gX19kaXJuYW1lOyBkZXJpdmUgaXQgZnJvbSB0aGlzIG1vZHVsZSdzIFVSTC5cbmNvbnN0IF9fZGlybmFtZSA9IGRpcm5hbWUoZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpKTtcblxuLyoqXG4gKiBGZXRjaCBwaXBlbGluZSBjb25maWcgYW5kIHNldCBQSVBFTElORV9QUk9QUyBlbnYgdmFyIGZvciB0aGUgYm9pbGVycGxhdGUgYXBwLlxuICogVXNlcyBjcmVhdGVBdXRoZW50aWNhdGVkQ2xpZW50QXN5bmMgd2hpY2ggc3VwcG9ydHMgYWxsIHRocmVlIGF1dGggbWV0aG9kcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZmV0Y2hQaXBlbGluZUNvbmZpZyhcbiAgcGlwZWxpbmVJZDogc3RyaW5nLFxuICBvcHRpb25zOiB7IHN0b3JlVG9rZW5zPzogYm9vbGVhbjsgdmVyaWZ5U3NsPzogYm9vbGVhbjsgcmVnaW9uPzogc3RyaW5nOyBwcm9maWxlPzogc3RyaW5nIH0sXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgY3JlYXRlQXV0aGVudGljYXRlZENsaWVudEFzeW5jKG9wdGlvbnMpO1xuICBjb25zdCBjb25maWcgPSBjbGllbnQuZ2V0Q29uZmlnKCk7XG5cbiAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBjbGllbnQuZ2V0PFJlY29yZDxzdHJpbmcsIHVua25vd24+PihcbiAgICBgJHtjb25maWcuYXBpLnBpcGVsaW5lVXJsfS8ke3BpcGVsaW5lSWR9YCxcbiAgKTtcblxuICBjb25zdCBwaXBlbGluZSA9IGV4dHJhY3RTaW5nbGVSZXNwb25zZTxQaXBlbGluZT4ocmVzcG9uc2UsICdwaXBlbGluZScsICdwcm9wcycpO1xuXG4gIGlmICghcGlwZWxpbmU/LnByb3BzKSB7XG4gICAgcHJpbnRFcnJvcignUGlwZWxpbmUgaGFzIG5vIHByb3BzJywgeyBpZDogcGlwZWxpbmVJZCB9KTtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byByZXRyaWV2ZSBwaXBlbGluZSBwcm9wcyBmb3IgSUQ6ICR7cGlwZWxpbmVJZH1gKTtcbiAgfVxuXG4gIGNvbnN0IHByb3BzV2l0aElkczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7XG4gICAgLi4ucGlwZWxpbmUucHJvcHMgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgcGlwZWxpbmVJZDogcGlwZWxpbmUuaWQgfHwgcGlwZWxpbmVJZCxcbiAgfTtcbiAgaWYgKHBpcGVsaW5lLm9yZ0lkKSBwcm9wc1dpdGhJZHMub3JnSWQgPSBwaXBlbGluZS5vcmdJZDtcblxuICAvLyBQcmUtcmVzb2x2ZSBwbHVnaW5zIGZyb20gdGhlIHBsYXRmb3JtIEFQSSBzbyB0aGUgc3ludGhlc2l6ZWQgdGVtcGxhdGVcbiAgLy8gc2hpcHMgd2l0aCByZWFsIENvZGVCdWlsZCBpbWFnZSBVUklzIGJha2VkIGluLiBXaXRob3V0IHRoaXMsIENESyBmYWxsc1xuICAvLyBiYWNrIHRvIHN0YW5kYXJkOjcuMCBiZWNhdXNlIHRoZSBkZXBsb3ktdGltZSBjdXN0b20gcmVzb3VyY2UgYXR0cmlidXRlXG4gIC8vIGlzIHVucmVzb2x2YWJsZSBhdCBzeW50aCB0aW1lLlxuICBjb25zdCByZXNvbHZlZFBsdWdpbnMgPSBhd2FpdCByZXNvbHZlUGx1Z2luc0ZvclByb3BzKGNsaWVudCwgcHJvcHNXaXRoSWRzKTtcbiAgaWYgKE9iamVjdC5rZXlzKHJlc29sdmVkUGx1Z2lucykubGVuZ3RoID4gMCkge1xuICAgIHByb3BzV2l0aElkcy5yZXNvbHZlZFBsdWdpbnMgPSByZXNvbHZlZFBsdWdpbnM7XG4gICAgcHJpbnRJbmZvKCdQcmUtcmVzb2x2ZWQgcGx1Z2lucycsIHsgY291bnQ6IE9iamVjdC5rZXlzKHJlc29sdmVkUGx1Z2lucykubGVuZ3RoIH0pO1xuICB9XG5cbiAgLy8gQmFrZSB0aGUgcmVnaXN0cnkgcHVsbCB0YXJnZXQgZnJvbSB0aGUgcGxhdGZvcm0gVVJMIHdlIHN5bnRoIGFnYWluc3QgKHRoZVxuICAvLyBob3N0IHNlcnZpbmcgdGhlIHJlZ2lzdHJ5IC92Mi8gZGF0YSBwYXRoKSBzbyBDb2RlQnVpbGQgaW1hZ2UgVVJJcyB1c2UgYSBob3N0XG4gIC8vIEFXUyBDb2RlQnVpbGQgY2FuIHJlc29sdmUsIG5vdCB0aGUgaW4tY2x1c3RlciBgcmVnaXN0cnk6NTAwMGAgZGVmYXVsdC4gTm8tb3BcbiAgLy8gd2hlbiBJTUFHRV9SRUdJU1RSWV9QVUxMX0hPU1QgaXMgc2V0IChleHBsaWNpdCBlbnYgd2lucykuXG4gIGJha2VQbGF0Zm9ybVJlZ2lzdHJ5KHByb3BzV2l0aElkcywgY29uZmlnLmFwaS5iYXNlVXJsKTtcblxuICBwcm9jZXNzLmVudi5QSVBFTElORV9QUk9QUyA9IEJ1ZmZlci5mcm9tKEpTT04uc3RyaW5naWZ5KHByb3BzV2l0aElkcykpLnRvU3RyaW5nKCdiYXNlNjQnKTtcblxuICAvLyBQcm9wYWdhdGUgdGhlIHJlc29sdmVkIHBsYXRmb3JtIGJhc2UgVVJMIGludG8gdGhlIGJvaWxlcnBsYXRlIHN5bnRoICh3aGljaFxuICAvLyBpbmhlcml0cyBwcm9jZXNzLmVudikuIFRoZSBzeW50aCB1c2VzIGl0IGZvciBzZXJ2ZXJDb25maWcucGxhdGZvcm1VcmwgKHRoZVxuICAvLyBQbHVnaW5Mb29rdXAgTGFtYmRhIGVuZHBvaW50KSBhbmQgYXMgdGhlIGxvYWRSZWdpc3RyeUNvbmZpZyBwdWxsLWhvc3RcbiAgLy8gZmFsbGJhY2suIFdpdGhvdXQgdGhpcywgYSBVUkwgY29uZmlndXJlZCB2aWEgfi8ucGlwZWxpbmUtbWFuYWdlci9jb25maWcueW1sXG4gIC8vIGlzIGludmlzaWJsZSB0byB0aGUgc3ludGggc3VicHJvY2VzcyAoaXQgcmVhZHMgb25seSB0aGUgZW52KS5cbiAgaWYgKGNvbmZpZy5hcGkuYmFzZVVybCkge1xuICAgIHByb2Nlc3MuZW52LlBMQVRGT1JNX0JBU0VfVVJMID0gY29uZmlnLmFwaS5iYXNlVXJsO1xuICB9XG5cbiAgcHJpbnRTdWNjZXNzKCdQaXBlbGluZSBjb25maWd1cmF0aW9uIGxvYWRlZCcpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVycyB0aGUgYHN5bnRoYCBjb21tYW5kIHdpdGggdGhlIENMSSBwcm9ncmFtLlxuICpcbiAqIFJ1bnMgQ0RLIHN5bnRoZXNpcyB1c2luZyB0aGUgYm9pbGVycGxhdGUgYXBwLiBQaXBlbGluZSBjb25maWcgaXMgcmVzb2x2ZWQgZnJvbTpcbiAqIDEuIC0taWQgZmxhZyBvciBQSVBFTElORV9JRCBlbnYgdmFyIOKGkiBmZXRjaGVzIGNvbmZpZyBmcm9tIHBsYXRmb3JtIEFQSVxuICogMi4gUElQRUxJTkVfUFJPUFMgZW52IHZhciAocHJlLWVuY29kZWQsIGZyb20gZGVwbG95IGNvbW1hbmQpXG4gKlxuICogQXV0aGVudGljYXRpb24gbWV0aG9kcyAoaW4gcHJpb3JpdHkgb3JkZXIpOlxuICogLSBQTEFURk9STV9UT0tFTiBlbnYgdmFyXG4gKiAtIC0tc3RvcmUtdG9rZW5zIOKGkiBmZXRjaCBmcm9tIEFXUyBTZWNyZXRzIE1hbmFnZXJcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgYmFzaFxuICogcGlwZWxpbmUtbWFuYWdlciBzeW50aCAtLWlkIDxwaXBlbGluZS1pZD4gLS1uby12ZXJpZnktc3NsXG4gKiBwaXBlbGluZS1tYW5hZ2VyIHN5bnRoIC0taWQgPHBpcGVsaW5lLWlkPiAtLXN0b3JlLXRva2Vuc1xuICogcGlwZWxpbmUtbWFuYWdlciBzeW50aCAtLXF1aWV0IC0tbm8tbm90aWNlcyAgICAgICAgICAjIENvZGVQaXBlbGluZSAodXNlcyBlbnYgdmFycylcbiAqIGBgYFxuICovXG5leHBvcnQgZnVuY3Rpb24gc3ludGgocHJvZ3JhbTogQ29tbWFuZCk6IHZvaWQge1xuICBwcm9ncmFtXG4gICAgLmNvbW1hbmQoJ3N5bnRoJylcbiAgICAuZGVzY3JpcHRpb24oJ1J1biBDREsgc3ludGhlc2lzIHVzaW5nIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24nKVxuICAgIC5vcHRpb24oJy1pLCAtLWlkIDxpZD4nLCAnUGlwZWxpbmUgSUQgKG9yIHNldCBQSVBFTElORV9JRCBlbnYgdmFyKScpXG4gICAgLm9wdGlvbignLS1zdG9yZS10b2tlbnMnLCAnQXV0aGVudGljYXRlIHVzaW5nIHRva2VuIGZyb20gQVdTIFNlY3JldHMgTWFuYWdlciAocmVxdWlyZXMgUExBVEZPUk1fU0VDUkVUX05BTUUgZW52IHZhciknLCBmYWxzZSlcbiAgICAub3B0aW9uKCctLW91dHB1dCA8ZGlyPicsICdDREsgb3V0cHV0IGRpcmVjdG9yeScsICdjZGsub3V0JylcbiAgICAub3B0aW9uKCctLXByb2ZpbGUgPHByb2ZpbGU+JywgJ0FXUyBwcm9maWxlJylcbiAgICAub3B0aW9uKCctLXJlZ2lvbiA8cmVnaW9uPicsICdBV1MgcmVnaW9uIChmb3IgLS1zdG9yZS10b2tlbnMpJylcbiAgICAub3B0aW9uKCctLXF1aWV0JywgJ1N1cHByZXNzIENESyBvdXRwdXQnLCBmYWxzZSlcbiAgICAub3B0aW9uKCctLW5vLW5vdGljZXMnLCAnU3VwcHJlc3MgQ0RLIG5vdGljZXMnKVxuICAgIC5vcHRpb24oJy0tdmVyYm9zZScsICdTaG93IHZlcmJvc2UgQ0RLIG91dHB1dCcsIGZhbHNlKVxuICAgIC5vcHRpb24oJy0tanNvbicsICdPdXRwdXQgcmVzdWx0IGFzIEpTT04nLCBmYWxzZSlcbiAgICAub3B0aW9uKCctLXZlcmlmeS1zc2wnLCAnRW5hYmxlIFNTTCBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24nKVxuICAgIC5vcHRpb24oJy0tbm8tdmVyaWZ5LXNzbCcsICdEaXNhYmxlIFNTTCBjZXJ0aWZpY2F0ZSB2ZXJpZmljYXRpb24nKVxuICAgIC5vcHRpb24oJy0tc2hvdy1yZXNvbHZlZCcsICdQcmludCB0aGUgcmVzb2x2ZWQgcGlwZWxpbmUgY29uZmlnICh3aXRoIHt7IC4uLiB9fSB0ZW1wbGF0ZXMgZXhwYW5kZWQpIGFuZCBleGl0IHdpdGhvdXQgcnVubmluZyBDREsnLCBmYWxzZSlcbiAgICAuYWN0aW9uKGFzeW5jIChvcHRpb25zKSA9PiB7XG4gICAgICBjb25zdCBleGVjdXRpb25JZCA9IHByaW50Q29tbWFuZEhlYWRlcignQ0RLIFN5bnRoZXNpcycpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBwaXBlbGluZUlkID0gb3B0aW9ucy5pZCB8fCBwcm9jZXNzLmVudi5QSVBFTElORV9JRDtcblxuICAgICAgICAvLyAtLXNob3ctcmVzb2x2ZWQ6IHByZXZpZXcgdGVtcGxhdGVzIGFuZCBleGl0XG4gICAgICAgIGlmIChvcHRpb25zLnNob3dSZXNvbHZlZCkge1xuICAgICAgICAgIGF3YWl0IHNob3dSZXNvbHZlZFBpcGVsaW5lKHBpcGVsaW5lSWQsIG9wdGlvbnMpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGF1ZGl0TG9nKCdzeW50aCcsIHsgZXhlY3V0aW9uSWQsIHBpcGVsaW5lSWQsIG91dHB1dDogb3B0aW9ucy5vdXRwdXQsIHByb2ZpbGU6IG9wdGlvbnMucHJvZmlsZSB9KTtcbiAgICAgICAgcHJpbnRTc2xXYXJuaW5nKG9wdGlvbnMudmVyaWZ5U3NsKTtcblxuICAgICAgICAvLyBQcm9wYWdhdGUgdG8gcHJvY2Vzcy5lbnYgc28gQ0RLIGNvbnN0cnVjdHMgKExhbWJkYSwgQ29kZUJ1aWxkKSBpbmhlcml0IGl0XG4gICAgICAgIGlmIChvcHRpb25zLnZlcmlmeVNzbCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBwcm9jZXNzLmVudi5OT0RFX1RMU19SRUpFQ1RfVU5BVVRIT1JJWkVEID0gJzAnO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmV0Y2ggcGlwZWxpbmUgY29uZmlnIGlmIElEIGlzIGF2YWlsYWJsZSBhbmQgUElQRUxJTkVfUFJPUFMgbm90IGFscmVhZHkgc2V0XG4gICAgICAgIGlmIChwaXBlbGluZUlkICYmICFwcm9jZXNzLmVudi5QSVBFTElORV9QUk9QUykge1xuICAgICAgICAgIHByaW50SW5mbygnRmV0Y2hpbmcgcGlwZWxpbmUgY29uZmlndXJhdGlvbicsIHsgaWQ6IHBpcGVsaW5lSWQgfSk7XG4gICAgICAgICAgYXdhaXQgZmV0Y2hQaXBlbGluZUNvbmZpZyhwaXBlbGluZUlkLCBvcHRpb25zKTtcbiAgICAgICAgfSBlbHNlIGlmICghcGlwZWxpbmVJZCAmJiAhcHJvY2Vzcy5lbnYuUElQRUxJTkVfUFJPUFMpIHtcbiAgICAgICAgICBwcmludFdhcm5pbmcoJ05vIHBpcGVsaW5lIElEIG9yIFBJUEVMSU5FX1BST1BTIHNldCcpO1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcignUGlwZWxpbmUgSUQgaXMgcmVxdWlyZWQuIFVzZSAtLWlkIDxpZD4gb3Igc2V0IFBJUEVMSU5FX0lEIGVudiB2YXIuJyk7XG4gICAgICAgIH1cblxuICAgICAgICBlbnN1cmVDZGtBdmFpbGFibGUoKTtcbiAgICAgICAgcHJpbnRTdWNjZXNzKCdBV1MgQ0RLIGlzIGF2YWlsYWJsZScpO1xuXG4gICAgICAgIC8vIEJ1aWxkIGNkayBzeW50aCBjb21tYW5kXG4gICAgICAgIGlmIChvcHRpb25zLm91dHB1dCkgYXNzZXJ0U2hlbGxTYWZlKG9wdGlvbnMub3V0cHV0LCAnb3V0cHV0Jyk7XG4gICAgICAgIGlmIChvcHRpb25zLnByb2ZpbGUpIGFzc2VydFNoZWxsU2FmZShvcHRpb25zLnByb2ZpbGUsICdwcm9maWxlJyk7XG5cbiAgICAgICAgY29uc3QgYm9pbGVycGxhdGVQYXRoID0gcmVzb2x2ZUJvaWxlcnBsYXRlUGF0aChfX2Rpcm5hbWUpO1xuICAgICAgICBjb25zdCBwYXJ0cyA9IFtcbiAgICAgICAgICAnY2RrIHN5bnRoJyxcbiAgICAgICAgICBgLS1hcHA9XCJub2RlICR7Ym9pbGVycGxhdGVQYXRofVwiYCxcbiAgICAgICAgICBgLS1vdXRwdXQ9JHtvcHRpb25zLm91dHB1dH1gLFxuICAgICAgICBdO1xuXG4gICAgICAgIGlmIChvcHRpb25zLnByb2ZpbGUpIHBhcnRzLnB1c2goYC0tcHJvZmlsZT0ke29wdGlvbnMucHJvZmlsZX1gKTtcbiAgICAgICAgaWYgKG9wdGlvbnMucXVpZXQpIHBhcnRzLnB1c2goJy0tcXVpZXQnKTtcbiAgICAgICAgaWYgKG9wdGlvbnMubm90aWNlcyA9PT0gZmFsc2UpIHBhcnRzLnB1c2goJy0tbm8tbm90aWNlcycpO1xuICAgICAgICBpZiAob3B0aW9ucy52ZXJib3NlKSBwYXJ0cy5wdXNoKCctLXZlcmJvc2UnKTtcblxuICAgICAgICBjb25zdCBjb21tYW5kID0gcGFydHMuam9pbignICcpO1xuXG4gICAgICAgIHByaW50SW5mbygnRXhlY3V0aW5nJywgeyBjb21tYW5kOiAoY29tbWFuZC5zcGxpdCgnLS1hcHAnKVswXSA/PyAnJykudHJpbSgpICsgJyAuLi4nIH0pO1xuICAgICAgICBjb25zb2xlLmxvZygnJyk7XG5cbiAgICAgICAgY29uc3QgcmVzdWx0ID0gZXhlY3V0ZUNka1NoZWxsQ29tbWFuZChjb21tYW5kLCB7XG4gICAgICAgICAgc2hvd091dHB1dDogIW9wdGlvbnMucXVpZXQsXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCcnKTtcbiAgICAgICAgcHJpbnRTZWN0aW9uKCdTeW50aGVzaXMgQ29tcGxldGUnKTtcblxuICAgICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgICBpZiAob3B0aW9ucy5qc29uKSB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgIGV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgICBkdXJhdGlvbjogcmVzdWx0LmR1cmF0aW9uLFxuICAgICAgICAgICAgICBvdXRwdXQ6IG9wdGlvbnMub3V0cHV0LFxuICAgICAgICAgICAgfSwgbnVsbCwgMikpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwcmludEtleVZhbHVlKHtcbiAgICAgICAgICAgICAgJ0V4ZWN1dGlvbiBJRCc6IGV4ZWN1dGlvbklkLFxuICAgICAgICAgICAgICAnRHVyYXRpb24nOiBgJHtyZXN1bHQuZHVyYXRpb259bXNgLFxuICAgICAgICAgICAgICAnT3V0cHV0Jzogb3B0aW9ucy5vdXRwdXQsXG4gICAgICAgICAgICAgICdTdGF0dXMnOiAn4pyTIFN1Y2Nlc3MnLFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIGhhbmRsZUVycm9yKGVycm9yLCBFUlJPUl9DT0RFUy5BUElfUkVRVUVTVCwge1xuICAgICAgICAgIGRlYnVnOiBwcm9ncmFtLm9wdHMoKS5kZWJ1ZyxcbiAgICAgICAgICBleGl0OiB0cnVlLFxuICAgICAgICAgIGNvbnRleHQ6IHsgY29tbWFuZDogJ3N5bnRoJywgZXhlY3V0aW9uSWQsIHBpcGVsaW5lSWQ6IG9wdGlvbnMuaWQgfSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG59XG5cbi8qKlxuICogRmV0Y2ggdGhlIHBpcGVsaW5lIGJ5IElELCBhcHBseSBwYXNzLTEgc2VsZi1yZWZlcmVuY2luZyB0ZW1wbGF0ZVxuICogcmVzb2x1dGlvbiwgYW5kIHByaW50IGl0IHRvIHN0ZG91dC4gVXNlZCBieSBgc3ludGggLS1zaG93LXJlc29sdmVkYFxuICogYW5kIGBkZXBsb3kgLS1zaG93LXJlc29sdmVkYCB0byBwcmV2aWV3IHN1YnN0aXR1dGlvbiBiZWZvcmUgcnVubmluZyBDREsuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNob3dSZXNvbHZlZFBpcGVsaW5lKFxuICBwaXBlbGluZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIG9wdGlvbnM6IHsgcHJvZmlsZT86IHN0cmluZzsgcmVnaW9uPzogc3RyaW5nOyBzdG9yZVRva2Vucz86IGJvb2xlYW47IHZlcmlmeVNzbD86IGJvb2xlYW4gfSxcbik6IFByb21pc2U8dm9pZD4ge1xuICBpZiAoIXBpcGVsaW5lSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJy0tc2hvdy1yZXNvbHZlZCByZXF1aXJlcyAtLWlkIG9yIFBJUEVMSU5FX0lEIGVudiB2YXInKTtcbiAgfVxuICBhd2FpdCBmZXRjaFBpcGVsaW5lQ29uZmlnKHBpcGVsaW5lSWQsIG9wdGlvbnMpO1xuICAvLyBmZXRjaFBpcGVsaW5lQ29uZmlnIHdyaXRlcyBQSVBFTElORV9QUk9QUyBiYXNlNjQtZW5jb2RlZCBvbiBzdWNjZXNzXG4gIGNvbnN0IGVuY29kZWQgPSBwcm9jZXNzLmVudi5QSVBFTElORV9QUk9QUztcbiAgaWYgKCFlbmNvZGVkKSB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBmZXRjaCBwaXBlbGluZSBjb25maWd1cmF0aW9uJyk7XG4gIGNvbnN0IGRlY29kZWQgPSBKU09OLnBhcnNlKEJ1ZmZlci5mcm9tKGVuY29kZWQsICdiYXNlNjQnKS50b1N0cmluZygndXRmLTgnKSk7XG5cbiAgLy8gTGF6eSBpbXBvcnQgdG8gYXZvaWQgcHVsbGluZyBwaXBlbGluZS1jb3JlIGludG8gZXZlcnkgQ0xJIGludm9jYXRpb25cbiAgY29uc3QgeyByZXNvbHZlU2VsZlJlZmVyZW5jaW5nIH0gPSBhd2FpdCBpbXBvcnQoJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnKTtcbiAgY29uc3Qgc2NvcGUgPSB7IG1ldGFkYXRhOiBkZWNvZGVkLm1ldGFkYXRhID8/IHt9LCB2YXJzOiBkZWNvZGVkLnZhcnMgPz8ge30gfTtcbiAgY29uc3QgaXNUZW1wbGF0YWJsZSA9IChmOiBzdHJpbmcpID0+XG4gICAgZiA9PT0gJ3Byb2plY3ROYW1lJyB8fCBmLnN0YXJ0c1dpdGgoJ21ldGFkYXRhLicpIHx8IGYuc3RhcnRzV2l0aCgndmFycy4nKTtcbiAgY29uc3QgZmllbGRUb1Njb3BlID0gKGY6IHN0cmluZykgPT4gaXNUZW1wbGF0YWJsZShmKSA/IGYgOiBudWxsO1xuICBjb25zdCByZXN1bHQgPSByZXNvbHZlU2VsZlJlZmVyZW5jaW5nKGRlY29kZWQsIHNjb3BlLCBpc1RlbXBsYXRhYmxlLCBmaWVsZFRvU2NvcGUsICdwaXBlbGluZScpO1xuXG4gIGlmIChyZXN1bHQuZXJyb3JzLmxlbmd0aCkge1xuICAgIGNvbnNvbGUuZXJyb3IoJ1Jlc29sdXRpb24gZXJyb3JzOicpO1xuICAgIGZvciAoY29uc3QgZSBvZiByZXN1bHQuZXJyb3JzKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGAgIFske2UuZmllbGQgPz8gJz8nfV0gJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShkZWNvZGVkLCBudWxsLCAyKSk7XG59XG4iXX0=
|
package/dist/utils/registry.d.ts
CHANGED
|
@@ -21,6 +21,30 @@
|
|
|
21
21
|
* Auth is supplied by whichever command drains the intent (deploy or register),
|
|
22
22
|
* so a stale intent file is never an authentication risk.
|
|
23
23
|
*/
|
|
24
|
+
/**
|
|
25
|
+
* Platform-sourced registry pull target for the CDK synth, derived from the
|
|
26
|
+
* platform base URL the CLI deploys against (the same host that serves the
|
|
27
|
+
* registry `/v2/` data path via nginx). Reuses pipeline-core's
|
|
28
|
+
* `parsePlatformBaseUrl` so host/port parsing stays identical on both sides.
|
|
29
|
+
* Returns `undefined` for an unparseable/absent URL. (Only the pull host/port
|
|
30
|
+
* are returned — `registry.http` describes the in-cluster push hop, which the
|
|
31
|
+
* synth never reads, so deriving it from the public URL would be misleading.)
|
|
32
|
+
*/
|
|
33
|
+
export declare function registryOverrideFromBaseUrl(baseUrl: string | undefined): {
|
|
34
|
+
pullHost: string;
|
|
35
|
+
pullPort: number;
|
|
36
|
+
} | undefined;
|
|
37
|
+
/**
|
|
38
|
+
* Bake the platform-derived registry pull target into the synth props
|
|
39
|
+
* (`BuilderProps.registry`) so the CodeBuild image URIs use a host AWS CodeBuild
|
|
40
|
+
* can resolve — not the in-cluster `registry:5000` default. Shared by the
|
|
41
|
+
* `deploy` and `synth` commands.
|
|
42
|
+
*
|
|
43
|
+
* An explicit `IMAGE_REGISTRY_PULL_HOST` in the synth env takes precedence, so
|
|
44
|
+
* this is a no-op when it is set (the synth's `loadRegistryConfig` already
|
|
45
|
+
* honors it). Also a no-op for an unparseable/absent base URL.
|
|
46
|
+
*/
|
|
47
|
+
export declare function bakePlatformRegistry(props: Record<string, unknown>, baseUrl: string | undefined): void;
|
|
24
48
|
/** Shape of the body POSTed to /api/pipelines/registry. */
|
|
25
49
|
export interface RegistryPayload {
|
|
26
50
|
pipelineId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/utils/registry.ts"],"names":[],"mappings":"AASA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,MAAM,GAAG,SAAS,GAC1B;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAGpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAMtG;AAED,2DAA2D;AAC3D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,6DAA6D;AAC7D,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAKD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,mBAAmB,EAC7B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,eAAe,CAAC,CAmB1B;AAED;;;;;;;GAOG;AACH,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAKlF;AAED,wDAAwD;AACxD,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQ1E;AAED,oFAAoF;AACpF,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC,CAqBrE"}
|
package/dist/utils/registry.js
CHANGED
|
@@ -3,6 +3,63 @@
|
|
|
3
3
|
import { promises as fs } from 'fs';
|
|
4
4
|
import { homedir } from 'os';
|
|
5
5
|
import { join } from 'path';
|
|
6
|
+
import { parsePlatformBaseUrl } from '@pipeline-builder/pipeline-core';
|
|
7
|
+
import { printInfo } from './output-utils.js';
|
|
8
|
+
/**
|
|
9
|
+
* Helpers for registering a deployed pipeline ARN with the platform.
|
|
10
|
+
*
|
|
11
|
+
* The registry table maps deployed CodePipeline ARNs back to pipeline records
|
|
12
|
+
* and orgs. It's how the dashboard's "Deployed pipelines" panel and the event
|
|
13
|
+
* reporting Lambda resolve incoming events to a pipeline definition.
|
|
14
|
+
*
|
|
15
|
+
* Two failure modes are handled here:
|
|
16
|
+
*
|
|
17
|
+
* 1. Platform unreachable at deploy time. The CDK stack lands in AWS but the
|
|
18
|
+
* registry POST fails. Without retry the deploy command would have to
|
|
19
|
+
* re-run cdk-deploy (slow, sometimes blocked by stack state) just to
|
|
20
|
+
* record the ARN. Instead, we write a pending intent to a local file;
|
|
21
|
+
* `pipeline-manager register` drains them.
|
|
22
|
+
*
|
|
23
|
+
* 2. User explicitly invokes `pipeline-manager register --id <pipelineId>`
|
|
24
|
+
* after a successful deploy that didn't register. Same path: rebuilds
|
|
25
|
+
* the ARN from STS, POSTs to the platform.
|
|
26
|
+
*
|
|
27
|
+
* Pending intents store ONLY the registration payload — never tokens or URLs.
|
|
28
|
+
* Auth is supplied by whichever command drains the intent (deploy or register),
|
|
29
|
+
* so a stale intent file is never an authentication risk.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Platform-sourced registry pull target for the CDK synth, derived from the
|
|
33
|
+
* platform base URL the CLI deploys against (the same host that serves the
|
|
34
|
+
* registry `/v2/` data path via nginx). Reuses pipeline-core's
|
|
35
|
+
* `parsePlatformBaseUrl` so host/port parsing stays identical on both sides.
|
|
36
|
+
* Returns `undefined` for an unparseable/absent URL. (Only the pull host/port
|
|
37
|
+
* are returned — `registry.http` describes the in-cluster push hop, which the
|
|
38
|
+
* synth never reads, so deriving it from the public URL would be misleading.)
|
|
39
|
+
*/
|
|
40
|
+
export function registryOverrideFromBaseUrl(baseUrl) {
|
|
41
|
+
const parsed = parsePlatformBaseUrl(baseUrl);
|
|
42
|
+
return parsed ? { pullHost: parsed.host, pullPort: parsed.port } : undefined;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Bake the platform-derived registry pull target into the synth props
|
|
46
|
+
* (`BuilderProps.registry`) so the CodeBuild image URIs use a host AWS CodeBuild
|
|
47
|
+
* can resolve — not the in-cluster `registry:5000` default. Shared by the
|
|
48
|
+
* `deploy` and `synth` commands.
|
|
49
|
+
*
|
|
50
|
+
* An explicit `IMAGE_REGISTRY_PULL_HOST` in the synth env takes precedence, so
|
|
51
|
+
* this is a no-op when it is set (the synth's `loadRegistryConfig` already
|
|
52
|
+
* honors it). Also a no-op for an unparseable/absent base URL.
|
|
53
|
+
*/
|
|
54
|
+
export function bakePlatformRegistry(props, baseUrl) {
|
|
55
|
+
if (process.env.IMAGE_REGISTRY_PULL_HOST)
|
|
56
|
+
return; // explicit env wins
|
|
57
|
+
const override = registryOverrideFromBaseUrl(baseUrl);
|
|
58
|
+
if (!override)
|
|
59
|
+
return;
|
|
60
|
+
props.registry = override;
|
|
61
|
+
printInfo('Registry pull target', { host: override.pullHost, port: override.pullPort });
|
|
62
|
+
}
|
|
6
63
|
/** Where pending registration intents are persisted between CLI invocations. */
|
|
7
64
|
const PENDING_INTENTS_DIR = join(homedir(), '.pipeline-manager', 'pending-registrations');
|
|
8
65
|
/**
|
|
@@ -81,4 +138,4 @@ export async function readPendingIntents() {
|
|
|
81
138
|
}
|
|
82
139
|
return intents;
|
|
83
140
|
}
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUE4QzVCLGdGQUFnRjtBQUNoRixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO0FBRTFGOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLEtBQUssVUFBVSxvQkFBb0IsQ0FDeEMsUUFBNkIsRUFDN0IsY0FBdUI7SUFFdkIsTUFBTSxNQUFNLEdBQUcsY0FBYztXQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVU7V0FDdEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0I7V0FDOUIsV0FBVyxDQUFDO0lBRWpCLE1BQU0sWUFBWSxHQUFHLFFBQVEsQ0FBQyxZQUFZO1dBQ3JDLEdBQUcsUUFBUSxDQUFDLFlBQVksSUFBSSxRQUFRLENBQUMsT0FBTyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDM0UsTUFBTSxTQUFTLEdBQUcsR0FBRyxRQUFRLENBQUMsT0FBTyxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUUvRSxPQUFPO1FBQ0wsVUFBVSxFQUFFLFFBQVEsQ0FBQyxFQUFFO1FBQ3ZCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztRQUNyQixZQUFZO1FBQ1osTUFBTTtRQUNOLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztRQUN6QixZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7UUFDbkMsU0FBUztLQUNWLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsT0FBd0I7SUFDL0QsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsT0FBTyxDQUFDLFVBQVUsT0FBTyxDQUFDLENBQUM7SUFDckUsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkUsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsd0RBQXdEO0FBQ3hELE1BQU0sQ0FBQyxLQUFLLFVBQVUsa0JBQWtCLENBQUMsVUFBa0I7SUFDekQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEdBQUcsVUFBVSxPQUFPLENBQUMsQ0FBQztJQUM3RCxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDYixxRUFBcUU7UUFDckUsSUFBSyxHQUE2QixDQUFDLElBQUksS0FBSyxRQUFRO1lBQUUsTUFBTSxHQUFHLENBQUM7SUFDbEUsQ0FBQztBQUNILENBQUM7QUFFRCxvRkFBb0Y7QUFDcEYsTUFBTSxDQUFDLEtBQUssVUFBVSxrQkFBa0I7SUFDdEMsSUFBSSxPQUFpQixDQUFDO0lBQ3RCLElBQUksQ0FBQztRQUNILE9BQU8sR0FBRyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLElBQUssR0FBNkIsQ0FBQyxJQUFJLEtBQUssUUFBUTtZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hFLE1BQU0sR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUVELE1BQU0sT0FBTyxHQUFzQixFQUFFLENBQUM7SUFDdEMsS0FBSyxNQUFNLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFBRSxTQUFTO1FBQ3RDLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBb0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxzRUFBc0U7WUFDdEUsK0NBQStDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5cbi8qKlxuICogSGVscGVycyBmb3IgcmVnaXN0ZXJpbmcgYSBkZXBsb3llZCBwaXBlbGluZSBBUk4gd2l0aCB0aGUgcGxhdGZvcm0uXG4gKlxuICogVGhlIHJlZ2lzdHJ5IHRhYmxlIG1hcHMgZGVwbG95ZWQgQ29kZVBpcGVsaW5lIEFSTnMgYmFjayB0byBwaXBlbGluZSByZWNvcmRzXG4gKiBhbmQgb3Jncy4gSXQncyBob3cgdGhlIGRhc2hib2FyZCdzIFwiRGVwbG95ZWQgcGlwZWxpbmVzXCIgcGFuZWwgYW5kIHRoZSBldmVudFxuICogcmVwb3J0aW5nIExhbWJkYSByZXNvbHZlIGluY29taW5nIGV2ZW50cyB0byBhIHBpcGVsaW5lIGRlZmluaXRpb24uXG4gKlxuICogVHdvIGZhaWx1cmUgbW9kZXMgYXJlIGhhbmRsZWQgaGVyZTpcbiAqXG4gKiAgIDEuIFBsYXRmb3JtIHVucmVhY2hhYmxlIGF0IGRlcGxveSB0aW1lLiBUaGUgQ0RLIHN0YWNrIGxhbmRzIGluIEFXUyBidXQgdGhlXG4gKiAgICAgIHJlZ2lzdHJ5IFBPU1QgZmFpbHMuIFdpdGhvdXQgcmV0cnkgdGhlIGRlcGxveSBjb21tYW5kIHdvdWxkIGhhdmUgdG9cbiAqICAgICAgcmUtcnVuIGNkay1kZXBsb3kgKHNsb3csIHNvbWV0aW1lcyBibG9ja2VkIGJ5IHN0YWNrIHN0YXRlKSBqdXN0IHRvXG4gKiAgICAgIHJlY29yZCB0aGUgQVJOLiBJbnN0ZWFkLCB3ZSB3cml0ZSBhIHBlbmRpbmcgaW50ZW50IHRvIGEgbG9jYWwgZmlsZTtcbiAqICAgICAgYHBpcGVsaW5lLW1hbmFnZXIgcmVnaXN0ZXJgIGRyYWlucyB0aGVtLlxuICpcbiAqICAgMi4gVXNlciBleHBsaWNpdGx5IGludm9rZXMgYHBpcGVsaW5lLW1hbmFnZXIgcmVnaXN0ZXIgLS1pZCA8cGlwZWxpbmVJZD5gXG4gKiAgICAgIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgdGhhdCBkaWRuJ3QgcmVnaXN0ZXIuIFNhbWUgcGF0aDogcmVidWlsZHNcbiAqICAgICAgdGhlIEFSTiBmcm9tIFNUUywgUE9TVHMgdG8gdGhlIHBsYXRmb3JtLlxuICpcbiAqIFBlbmRpbmcgaW50ZW50cyBzdG9yZSBPTkxZIHRoZSByZWdpc3RyYXRpb24gcGF5bG9hZCDigJQgbmV2ZXIgdG9rZW5zIG9yIFVSTHMuXG4gKiBBdXRoIGlzIHN1cHBsaWVkIGJ5IHdoaWNoZXZlciBjb21tYW5kIGRyYWlucyB0aGUgaW50ZW50IChkZXBsb3kgb3IgcmVnaXN0ZXIpLFxuICogc28gYSBzdGFsZSBpbnRlbnQgZmlsZSBpcyBuZXZlciBhbiBhdXRoZW50aWNhdGlvbiByaXNrLlxuICovXG5cbi8qKiBTaGFwZSBvZiB0aGUgYm9keSBQT1NUZWQgdG8gL2FwaS9waXBlbGluZXMvcmVnaXN0cnkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJ5UGF5bG9hZCB7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICBzdGFja05hbWU6IHN0cmluZztcbn1cblxuLyoqIFBpcGVsaW5lIGZpZWxkcyBuZWVkZWQgdG8gY29uc3RydWN0IGEgUmVnaXN0cnlQYXlsb2FkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUZvclJlZ2lzdHJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lPzogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xufVxuXG4vKiogV2hlcmUgcGVuZGluZyByZWdpc3RyYXRpb24gaW50ZW50cyBhcmUgcGVyc2lzdGVkIGJldHdlZW4gQ0xJIGludm9jYXRpb25zLiAqL1xuY29uc3QgUEVORElOR19JTlRFTlRTX0RJUiA9IGpvaW4oaG9tZWRpcigpLCAnLnBpcGVsaW5lLW1hbmFnZXInLCAncGVuZGluZy1yZWdpc3RyYXRpb25zJyk7XG5cbi8qKlxuICogQnVpbGQgYSBSZWdpc3RyeVBheWxvYWQgZnJvbSB0aGUgcGxhdGZvcm0ncyBwaXBlbGluZSBtZXRhZGF0YS4gTm8gQVdTIGNhbGxzXG4gKiBhbmQgbm8gQVJOL2FjY291bnQ6IHRoZSBldmVudHMgTGFtYmRhIGF0dHJpYnV0ZXMgZXZlbnRzIHZpYSB0aGUgcGlwZWxpbmUnc1xuICogYFBJUEVMSU5FX0VWRU5UX0lEYCB0YWcgKD0gcGlwZWxpbmVJZCksIHNvIHRoZSByZWdpc3RyeSBvbmx5IG5lZWRzIHRoZSBzdGFibGVcbiAqIHBpcGVsaW5lSWQgKyBkaXNwbGF5IG1ldGFkYXRhLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRSZWdpc3RyeVBheWxvYWQoXG4gIHBpcGVsaW5lOiBQaXBlbGluZUZvclJlZ2lzdHJ5LFxuICByZWdpb25PdmVycmlkZT86IHN0cmluZyxcbik6IFByb21pc2U8UmVnaXN0cnlQYXlsb2FkPiB7XG4gIGNvbnN0IHJlZ2lvbiA9IHJlZ2lvbk92ZXJyaWRlXG4gICAgfHwgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTlxuICAgIHx8IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTlxuICAgIHx8ICd1cy1lYXN0LTEnO1xuXG4gIGNvbnN0IHBpcGVsaW5lTmFtZSA9IHBpcGVsaW5lLnBpcGVsaW5lTmFtZVxuICAgIHx8IGAke3BpcGVsaW5lLm9yZ2FuaXphdGlvbn0tJHtwaXBlbGluZS5wcm9qZWN0fS1waXBlbGluZWAudG9Mb3dlckNhc2UoKTtcbiAgY29uc3Qgc3RhY2tOYW1lID0gYCR7cGlwZWxpbmUucHJvamVjdH0tJHtwaXBlbGluZS5vcmdhbml6YXRpb259YC50b0xvd2VyQ2FzZSgpO1xuXG4gIHJldHVybiB7XG4gICAgcGlwZWxpbmVJZDogcGlwZWxpbmUuaWQsXG4gICAgb3JnSWQ6IHBpcGVsaW5lLm9yZ0lkLFxuICAgIHBpcGVsaW5lTmFtZSxcbiAgICByZWdpb24sXG4gICAgcHJvamVjdDogcGlwZWxpbmUucHJvamVjdCxcbiAgICBvcmdhbml6YXRpb246IHBpcGVsaW5lLm9yZ2FuaXphdGlvbixcbiAgICBzdGFja05hbWUsXG4gIH07XG59XG5cbi8qKlxuICogUGVyc2lzdCBhIHJlZ2lzdHJhdGlvbiBpbnRlbnQgZm9yIGxhdGVyIHJldHJ5LlxuICpcbiAqIEludGVudCBmaWxlcyBhcmUga2V5ZWQgYnkgcGlwZWxpbmVJZCBzbyByZS1ydW5uaW5nIGRlcGxveSBvbiB0aGUgc2FtZVxuICogcGlwZWxpbmUgb3ZlcndyaXRlcyByYXRoZXIgdGhhbiBhY2N1bXVsYXRlcy4gV2UgZGVsaWJlcmF0ZWx5IHN0b3JlIHRoZVxuICogcGF5bG9hZCBwbGFpbiAobm90IHRoZSBmdWxsIHBpcGVsaW5lIGRvYywgbm90IGF1dGgpIHNvIGEgc3RhbGUgZmlsZSBpc1xuICogc2FmZSB0byBsZWF2ZSBhcm91bmQgaW5kZWZpbml0ZWx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQZW5kaW5nSW50ZW50KHBheWxvYWQ6IFJlZ2lzdHJ5UGF5bG9hZCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGF3YWl0IGZzLm1rZGlyKFBFTkRJTkdfSU5URU5UU19ESVIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCBwYXRoID0gam9pbihQRU5ESU5HX0lOVEVOVFNfRElSLCBgJHtwYXlsb2FkLnBpcGVsaW5lSWR9Lmpzb25gKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGgsIEpTT04uc3RyaW5naWZ5KHBheWxvYWQsIG51bGwsIDIpLCAndXRmOCcpO1xuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqIFJlbW92ZSBhIHBlbmRpbmcgaW50ZW50IGFmdGVyIGEgc3VjY2Vzc2Z1bCBkcmFpbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGVhclBlbmRpbmdJbnRlbnQocGlwZWxpbmVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhdGggPSBqb2luKFBFTkRJTkdfSU5URU5UU19ESVIsIGAke3BpcGVsaW5lSWR9Lmpzb25gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsocGF0aCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIEVOT0VOVCBpcyBmaW5lIOKAlCBhbHJlYWR5IGNsZWFyZWQuIEFueXRoaW5nIGVsc2UgaXMgYSByZWFsIHByb2JsZW0uXG4gICAgaWYgKChlcnIgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlICE9PSAnRU5PRU5UJykgdGhyb3cgZXJyO1xuICB9XG59XG5cbi8qKiBSZWFkIGFsbCBwZW5kaW5nIGludGVudHMgY3VycmVudGx5IG9uIGRpc2suIEVtcHR5IGFycmF5IGlmIGRpciBkb2Vzbid0IGV4aXN0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQZW5kaW5nSW50ZW50cygpOiBQcm9taXNlPFJlZ2lzdHJ5UGF5bG9hZFtdPiB7XG4gIGxldCBlbnRyaWVzOiBzdHJpbmdbXTtcbiAgdHJ5IHtcbiAgICBlbnRyaWVzID0gYXdhaXQgZnMucmVhZGRpcihQRU5ESU5HX0lOVEVOVFNfRElSKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKChlcnIgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlID09PSAnRU5PRU5UJykgcmV0dXJuIFtdO1xuICAgIHRocm93IGVycjtcbiAgfVxuXG4gIGNvbnN0IGludGVudHM6IFJlZ2lzdHJ5UGF5bG9hZFtdID0gW107XG4gIGZvciAoY29uc3QgZmlsZSBvZiBlbnRyaWVzKSB7XG4gICAgaWYgKCFmaWxlLmVuZHNXaXRoKCcuanNvbicpKSBjb250aW51ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZzLnJlYWRGaWxlKGpvaW4oUEVORElOR19JTlRFTlRTX0RJUiwgZmlsZSksICd1dGY4Jyk7XG4gICAgICBpbnRlbnRzLnB1c2goSlNPTi5wYXJzZSh0ZXh0KSBhcyBSZWdpc3RyeVBheWxvYWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2tpcCB1bnJlYWRhYmxlIC8gbWFsZm9ybWVkIGZpbGVzIOKAlCB0aGV5J2xsIG5lZWQgbWFudWFsIGNsZWFudXAgYnV0XG4gICAgICAvLyBzaG91bGRuJ3QgYmxvY2sgdmFsaWQgaW50ZW50cyBmcm9tIGRyYWluaW5nLlxuICAgIH1cbiAgfVxuICByZXR1cm4gaW50ZW50cztcbn1cbiJdfQ==
|
|
141
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvcmVnaXN0cnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsUUFBUSxJQUFJLEVBQUUsRUFBRSxNQUFNLElBQUksQ0FBQztBQUNwQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDdkUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUg7Ozs7Ozs7O0dBUUc7QUFDSCxNQUFNLFVBQVUsMkJBQTJCLENBQ3pDLE9BQTJCO0lBRTNCLE1BQU0sTUFBTSxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUMvRSxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQThCLEVBQUUsT0FBMkI7SUFDOUYsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHdCQUF3QjtRQUFFLE9BQU8sQ0FBQyxvQkFBb0I7SUFDdEUsTUFBTSxRQUFRLEdBQUcsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsSUFBSSxDQUFDLFFBQVE7UUFBRSxPQUFPO0lBQ3RCLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzFCLFNBQVMsQ0FBQyxzQkFBc0IsRUFBRSxFQUFFLElBQUks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LE1BQU0sSUFBSSxHQUFHLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDeEUsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBb0IsQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxzRUFBc0U7WUFDdEUsK0NBQStDO1FBQ2pELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBwcm9taXNlcyBhcyBmcyB9IGZyb20gJ2ZzJztcbmltcG9ydCB7IGhvbWVkaXIgfSBmcm9tICdvcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwYXJzZVBsYXRmb3JtQmFzZVVybCB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL3BpcGVsaW5lLWNvcmUnO1xuaW1wb3J0IHsgcHJpbnRJbmZvIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMuanMnO1xuXG4vKipcbiAqIEhlbHBlcnMgZm9yIHJlZ2lzdGVyaW5nIGEgZGVwbG95ZWQgcGlwZWxpbmUgQVJOIHdpdGggdGhlIHBsYXRmb3JtLlxuICpcbiAqIFRoZSByZWdpc3RyeSB0YWJsZSBtYXBzIGRlcGxveWVkIENvZGVQaXBlbGluZSBBUk5zIGJhY2sgdG8gcGlwZWxpbmUgcmVjb3Jkc1xuICogYW5kIG9yZ3MuIEl0J3MgaG93IHRoZSBkYXNoYm9hcmQncyBcIkRlcGxveWVkIHBpcGVsaW5lc1wiIHBhbmVsIGFuZCB0aGUgZXZlbnRcbiAqIHJlcG9ydGluZyBMYW1iZGEgcmVzb2x2ZSBpbmNvbWluZyBldmVudHMgdG8gYSBwaXBlbGluZSBkZWZpbml0aW9uLlxuICpcbiAqIFR3byBmYWlsdXJlIG1vZGVzIGFyZSBoYW5kbGVkIGhlcmU6XG4gKlxuICogICAxLiBQbGF0Zm9ybSB1bnJlYWNoYWJsZSBhdCBkZXBsb3kgdGltZS4gVGhlIENESyBzdGFjayBsYW5kcyBpbiBBV1MgYnV0IHRoZVxuICogICAgICByZWdpc3RyeSBQT1NUIGZhaWxzLiBXaXRob3V0IHJldHJ5IHRoZSBkZXBsb3kgY29tbWFuZCB3b3VsZCBoYXZlIHRvXG4gKiAgICAgIHJlLXJ1biBjZGstZGVwbG95IChzbG93LCBzb21ldGltZXMgYmxvY2tlZCBieSBzdGFjayBzdGF0ZSkganVzdCB0b1xuICogICAgICByZWNvcmQgdGhlIEFSTi4gSW5zdGVhZCwgd2Ugd3JpdGUgYSBwZW5kaW5nIGludGVudCB0byBhIGxvY2FsIGZpbGU7XG4gKiAgICAgIGBwaXBlbGluZS1tYW5hZ2VyIHJlZ2lzdGVyYCBkcmFpbnMgdGhlbS5cbiAqXG4gKiAgIDIuIFVzZXIgZXhwbGljaXRseSBpbnZva2VzIGBwaXBlbGluZS1tYW5hZ2VyIHJlZ2lzdGVyIC0taWQgPHBpcGVsaW5lSWQ+YFxuICogICAgICBhZnRlciBhIHN1Y2Nlc3NmdWwgZGVwbG95IHRoYXQgZGlkbid0IHJlZ2lzdGVyLiBTYW1lIHBhdGg6IHJlYnVpbGRzXG4gKiAgICAgIHRoZSBBUk4gZnJvbSBTVFMsIFBPU1RzIHRvIHRoZSBwbGF0Zm9ybS5cbiAqXG4gKiBQZW5kaW5nIGludGVudHMgc3RvcmUgT05MWSB0aGUgcmVnaXN0cmF0aW9uIHBheWxvYWQg4oCUIG5ldmVyIHRva2VucyBvciBVUkxzLlxuICogQXV0aCBpcyBzdXBwbGllZCBieSB3aGljaGV2ZXIgY29tbWFuZCBkcmFpbnMgdGhlIGludGVudCAoZGVwbG95IG9yIHJlZ2lzdGVyKSxcbiAqIHNvIGEgc3RhbGUgaW50ZW50IGZpbGUgaXMgbmV2ZXIgYW4gYXV0aGVudGljYXRpb24gcmlzay5cbiAqL1xuXG4vKipcbiAqIFBsYXRmb3JtLXNvdXJjZWQgcmVnaXN0cnkgcHVsbCB0YXJnZXQgZm9yIHRoZSBDREsgc3ludGgsIGRlcml2ZWQgZnJvbSB0aGVcbiAqIHBsYXRmb3JtIGJhc2UgVVJMIHRoZSBDTEkgZGVwbG95cyBhZ2FpbnN0ICh0aGUgc2FtZSBob3N0IHRoYXQgc2VydmVzIHRoZVxuICogcmVnaXN0cnkgYC92Mi9gIGRhdGEgcGF0aCB2aWEgbmdpbngpLiBSZXVzZXMgcGlwZWxpbmUtY29yZSdzXG4gKiBgcGFyc2VQbGF0Zm9ybUJhc2VVcmxgIHNvIGhvc3QvcG9ydCBwYXJzaW5nIHN0YXlzIGlkZW50aWNhbCBvbiBib3RoIHNpZGVzLlxuICogUmV0dXJucyBgdW5kZWZpbmVkYCBmb3IgYW4gdW5wYXJzZWFibGUvYWJzZW50IFVSTC4gKE9ubHkgdGhlIHB1bGwgaG9zdC9wb3J0XG4gKiBhcmUgcmV0dXJuZWQg4oCUIGByZWdpc3RyeS5odHRwYCBkZXNjcmliZXMgdGhlIGluLWNsdXN0ZXIgcHVzaCBob3AsIHdoaWNoIHRoZVxuICogc3ludGggbmV2ZXIgcmVhZHMsIHNvIGRlcml2aW5nIGl0IGZyb20gdGhlIHB1YmxpYyBVUkwgd291bGQgYmUgbWlzbGVhZGluZy4pXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RyeU92ZXJyaWRlRnJvbUJhc2VVcmwoXG4gIGJhc2VVcmw6IHN0cmluZyB8IHVuZGVmaW5lZCxcbik6IHsgcHVsbEhvc3Q6IHN0cmluZzsgcHVsbFBvcnQ6IG51bWJlciB9IHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgcGFyc2VkID0gcGFyc2VQbGF0Zm9ybUJhc2VVcmwoYmFzZVVybCk7XG4gIHJldHVybiBwYXJzZWQgPyB7IHB1bGxIb3N0OiBwYXJzZWQuaG9zdCwgcHVsbFBvcnQ6IHBhcnNlZC5wb3J0IH0gOiB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogQmFrZSB0aGUgcGxhdGZvcm0tZGVyaXZlZCByZWdpc3RyeSBwdWxsIHRhcmdldCBpbnRvIHRoZSBzeW50aCBwcm9wc1xuICogKGBCdWlsZGVyUHJvcHMucmVnaXN0cnlgKSBzbyB0aGUgQ29kZUJ1aWxkIGltYWdlIFVSSXMgdXNlIGEgaG9zdCBBV1MgQ29kZUJ1aWxkXG4gKiBjYW4gcmVzb2x2ZSDigJQgbm90IHRoZSBpbi1jbHVzdGVyIGByZWdpc3RyeTo1MDAwYCBkZWZhdWx0LiBTaGFyZWQgYnkgdGhlXG4gKiBgZGVwbG95YCBhbmQgYHN5bnRoYCBjb21tYW5kcy5cbiAqXG4gKiBBbiBleHBsaWNpdCBgSU1BR0VfUkVHSVNUUllfUFVMTF9IT1NUYCBpbiB0aGUgc3ludGggZW52IHRha2VzIHByZWNlZGVuY2UsIHNvXG4gKiB0aGlzIGlzIGEgbm8tb3Agd2hlbiBpdCBpcyBzZXQgKHRoZSBzeW50aCdzIGBsb2FkUmVnaXN0cnlDb25maWdgIGFscmVhZHlcbiAqIGhvbm9ycyBpdCkuIEFsc28gYSBuby1vcCBmb3IgYW4gdW5wYXJzZWFibGUvYWJzZW50IGJhc2UgVVJMLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYmFrZVBsYXRmb3JtUmVnaXN0cnkocHJvcHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+LCBiYXNlVXJsOiBzdHJpbmcgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgaWYgKHByb2Nlc3MuZW52LklNQUdFX1JFR0lTVFJZX1BVTExfSE9TVCkgcmV0dXJuOyAvLyBleHBsaWNpdCBlbnYgd2luc1xuICBjb25zdCBvdmVycmlkZSA9IHJlZ2lzdHJ5T3ZlcnJpZGVGcm9tQmFzZVVybChiYXNlVXJsKTtcbiAgaWYgKCFvdmVycmlkZSkgcmV0dXJuO1xuICBwcm9wcy5yZWdpc3RyeSA9IG92ZXJyaWRlO1xuICBwcmludEluZm8oJ1JlZ2lzdHJ5IHB1bGwgdGFyZ2V0JywgeyBob3N0OiBvdmVycmlkZS5wdWxsSG9zdCwgcG9ydDogb3ZlcnJpZGUucHVsbFBvcnQgfSk7XG59XG5cbi8qKiBTaGFwZSBvZiB0aGUgYm9keSBQT1NUZWQgdG8gL2FwaS9waXBlbGluZXMvcmVnaXN0cnkuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdHJ5UGF5bG9hZCB7XG4gIHBpcGVsaW5lSWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xuICBzdGFja05hbWU6IHN0cmluZztcbn1cblxuLyoqIFBpcGVsaW5lIGZpZWxkcyBuZWVkZWQgdG8gY29uc3RydWN0IGEgUmVnaXN0cnlQYXlsb2FkLiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUZvclJlZ2lzdHJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgb3JnSWQ6IHN0cmluZztcbiAgcGlwZWxpbmVOYW1lPzogc3RyaW5nO1xuICBwcm9qZWN0OiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbjogc3RyaW5nO1xufVxuXG4vKiogV2hlcmUgcGVuZGluZyByZWdpc3RyYXRpb24gaW50ZW50cyBhcmUgcGVyc2lzdGVkIGJldHdlZW4gQ0xJIGludm9jYXRpb25zLiAqL1xuY29uc3QgUEVORElOR19JTlRFTlRTX0RJUiA9IGpvaW4oaG9tZWRpcigpLCAnLnBpcGVsaW5lLW1hbmFnZXInLCAncGVuZGluZy1yZWdpc3RyYXRpb25zJyk7XG5cbi8qKlxuICogQnVpbGQgYSBSZWdpc3RyeVBheWxvYWQgZnJvbSB0aGUgcGxhdGZvcm0ncyBwaXBlbGluZSBtZXRhZGF0YS4gTm8gQVdTIGNhbGxzXG4gKiBhbmQgbm8gQVJOL2FjY291bnQ6IHRoZSBldmVudHMgTGFtYmRhIGF0dHJpYnV0ZXMgZXZlbnRzIHZpYSB0aGUgcGlwZWxpbmUnc1xuICogYFBJUEVMSU5FX0VWRU5UX0lEYCB0YWcgKD0gcGlwZWxpbmVJZCksIHNvIHRoZSByZWdpc3RyeSBvbmx5IG5lZWRzIHRoZSBzdGFibGVcbiAqIHBpcGVsaW5lSWQgKyBkaXNwbGF5IG1ldGFkYXRhLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYnVpbGRSZWdpc3RyeVBheWxvYWQoXG4gIHBpcGVsaW5lOiBQaXBlbGluZUZvclJlZ2lzdHJ5LFxuICByZWdpb25PdmVycmlkZT86IHN0cmluZyxcbik6IFByb21pc2U8UmVnaXN0cnlQYXlsb2FkPiB7XG4gIGNvbnN0IHJlZ2lvbiA9IHJlZ2lvbk92ZXJyaWRlXG4gICAgfHwgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTlxuICAgIHx8IHByb2Nlc3MuZW52LkNES19ERUZBVUxUX1JFR0lPTlxuICAgIHx8ICd1cy1lYXN0LTEnO1xuXG4gIGNvbnN0IHBpcGVsaW5lTmFtZSA9IHBpcGVsaW5lLnBpcGVsaW5lTmFtZVxuICAgIHx8IGAke3BpcGVsaW5lLm9yZ2FuaXphdGlvbn0tJHtwaXBlbGluZS5wcm9qZWN0fS1waXBlbGluZWAudG9Mb3dlckNhc2UoKTtcbiAgY29uc3Qgc3RhY2tOYW1lID0gYCR7cGlwZWxpbmUucHJvamVjdH0tJHtwaXBlbGluZS5vcmdhbml6YXRpb259YC50b0xvd2VyQ2FzZSgpO1xuXG4gIHJldHVybiB7XG4gICAgcGlwZWxpbmVJZDogcGlwZWxpbmUuaWQsXG4gICAgb3JnSWQ6IHBpcGVsaW5lLm9yZ0lkLFxuICAgIHBpcGVsaW5lTmFtZSxcbiAgICByZWdpb24sXG4gICAgcHJvamVjdDogcGlwZWxpbmUucHJvamVjdCxcbiAgICBvcmdhbml6YXRpb246IHBpcGVsaW5lLm9yZ2FuaXphdGlvbixcbiAgICBzdGFja05hbWUsXG4gIH07XG59XG5cbi8qKlxuICogUGVyc2lzdCBhIHJlZ2lzdHJhdGlvbiBpbnRlbnQgZm9yIGxhdGVyIHJldHJ5LlxuICpcbiAqIEludGVudCBmaWxlcyBhcmUga2V5ZWQgYnkgcGlwZWxpbmVJZCBzbyByZS1ydW5uaW5nIGRlcGxveSBvbiB0aGUgc2FtZVxuICogcGlwZWxpbmUgb3ZlcndyaXRlcyByYXRoZXIgdGhhbiBhY2N1bXVsYXRlcy4gV2UgZGVsaWJlcmF0ZWx5IHN0b3JlIHRoZVxuICogcGF5bG9hZCBwbGFpbiAobm90IHRoZSBmdWxsIHBpcGVsaW5lIGRvYywgbm90IGF1dGgpIHNvIGEgc3RhbGUgZmlsZSBpc1xuICogc2FmZSB0byBsZWF2ZSBhcm91bmQgaW5kZWZpbml0ZWx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gd3JpdGVQZW5kaW5nSW50ZW50KHBheWxvYWQ6IFJlZ2lzdHJ5UGF5bG9hZCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGF3YWl0IGZzLm1rZGlyKFBFTkRJTkdfSU5URU5UU19ESVIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCBwYXRoID0gam9pbihQRU5ESU5HX0lOVEVOVFNfRElSLCBgJHtwYXlsb2FkLnBpcGVsaW5lSWR9Lmpzb25gKTtcbiAgYXdhaXQgZnMud3JpdGVGaWxlKHBhdGgsIEpTT04uc3RyaW5naWZ5KHBheWxvYWQsIG51bGwsIDIpLCAndXRmOCcpO1xuICByZXR1cm4gcGF0aDtcbn1cblxuLyoqIFJlbW92ZSBhIHBlbmRpbmcgaW50ZW50IGFmdGVyIGEgc3VjY2Vzc2Z1bCBkcmFpbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjbGVhclBlbmRpbmdJbnRlbnQocGlwZWxpbmVJZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHBhdGggPSBqb2luKFBFTkRJTkdfSU5URU5UU19ESVIsIGAke3BpcGVsaW5lSWR9Lmpzb25gKTtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy51bmxpbmsocGF0aCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIC8vIEVOT0VOVCBpcyBmaW5lIOKAlCBhbHJlYWR5IGNsZWFyZWQuIEFueXRoaW5nIGVsc2UgaXMgYSByZWFsIHByb2JsZW0uXG4gICAgaWYgKChlcnIgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlICE9PSAnRU5PRU5UJykgdGhyb3cgZXJyO1xuICB9XG59XG5cbi8qKiBSZWFkIGFsbCBwZW5kaW5nIGludGVudHMgY3VycmVudGx5IG9uIGRpc2suIEVtcHR5IGFycmF5IGlmIGRpciBkb2Vzbid0IGV4aXN0LiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlYWRQZW5kaW5nSW50ZW50cygpOiBQcm9taXNlPFJlZ2lzdHJ5UGF5bG9hZFtdPiB7XG4gIGxldCBlbnRyaWVzOiBzdHJpbmdbXTtcbiAgdHJ5IHtcbiAgICBlbnRyaWVzID0gYXdhaXQgZnMucmVhZGRpcihQRU5ESU5HX0lOVEVOVFNfRElSKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKChlcnIgYXMgTm9kZUpTLkVycm5vRXhjZXB0aW9uKS5jb2RlID09PSAnRU5PRU5UJykgcmV0dXJuIFtdO1xuICAgIHRocm93IGVycjtcbiAgfVxuXG4gIGNvbnN0IGludGVudHM6IFJlZ2lzdHJ5UGF5bG9hZFtdID0gW107XG4gIGZvciAoY29uc3QgZmlsZSBvZiBlbnRyaWVzKSB7XG4gICAgaWYgKCFmaWxlLmVuZHNXaXRoKCcuanNvbicpKSBjb250aW51ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgdGV4dCA9IGF3YWl0IGZzLnJlYWRGaWxlKGpvaW4oUEVORElOR19JTlRFTlRTX0RJUiwgZmlsZSksICd1dGY4Jyk7XG4gICAgICBpbnRlbnRzLnB1c2goSlNPTi5wYXJzZSh0ZXh0KSBhcyBSZWdpc3RyeVBheWxvYWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gU2tpcCB1bnJlYWRhYmxlIC8gbWFsZm9ybWVkIGZpbGVzIOKAlCB0aGV5J2xsIG5lZWQgbWFudWFsIGNsZWFudXAgYnV0XG4gICAgICAvLyBzaG91bGRuJ3QgYmxvY2sgdmFsaWQgaW50ZW50cyBmcm9tIGRyYWluaW5nLlxuICAgIH1cbiAgfVxuICByZXR1cm4gaW50ZW50cztcbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
"typescript": "6.0.3",
|
|
42
42
|
"yaml": "2.9.0",
|
|
43
43
|
"zod": "4.4.3",
|
|
44
|
-
"@pipeline-builder/
|
|
45
|
-
"@pipeline-builder/
|
|
44
|
+
"@pipeline-builder/pipeline-core": "3.4.90",
|
|
45
|
+
"@pipeline-builder/ai-core": "3.4.79"
|
|
46
46
|
},
|
|
47
47
|
"keywords": [
|
|
48
48
|
"ci-cd",
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"access": "public",
|
|
98
98
|
"registry": "https://registry.npmjs.org/"
|
|
99
99
|
},
|
|
100
|
-
"version": "3.4.
|
|
100
|
+
"version": "3.4.119",
|
|
101
101
|
"bugs": {
|
|
102
102
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
103
103
|
},
|