@pipeline-builder/pipeline-manager 4.1.15 → 4.1.16
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/config.yml +16 -37
- package/dist/boilerplate.js +10 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +97 -79
- package/dist/commands/audit-stacks.js +3 -3
- package/dist/commands/create-pat.d.ts +2 -3
- package/dist/commands/create-pat.d.ts.map +1 -1
- package/dist/commands/create-pat.js +3 -4
- package/dist/commands/create-pipeline.d.ts.map +1 -1
- package/dist/commands/create-pipeline.js +198 -190
- package/dist/commands/list-pipelines.js +2 -2
- package/dist/commands/list-plugins.js +2 -2
- package/dist/commands/login.d.ts +2 -2
- package/dist/commands/login.js +3 -3
- package/dist/commands/new-plugin.d.ts +48 -5
- package/dist/commands/new-plugin.d.ts.map +1 -1
- package/dist/commands/new-plugin.js +261 -95
- package/dist/commands/plugin-lifecycle.d.ts +29 -0
- package/dist/commands/plugin-lifecycle.d.ts.map +1 -0
- package/dist/commands/plugin-lifecycle.js +147 -0
- package/dist/commands/provision.d.ts +42 -2
- package/dist/commands/provision.d.ts.map +1 -1
- package/dist/commands/provision.js +184 -147
- package/dist/commands/publish-plugin.d.ts +62 -0
- package/dist/commands/publish-plugin.d.ts.map +1 -0
- package/dist/commands/publish-plugin.js +224 -0
- package/dist/commands/redrive-events.d.ts +1 -1
- package/dist/commands/redrive-events.js +2 -2
- package/dist/commands/store-token.d.ts +46 -1
- package/dist/commands/store-token.d.ts.map +1 -1
- package/dist/commands/store-token.js +127 -102
- package/dist/commands/test-plugin.d.ts +72 -0
- package/dist/commands/test-plugin.d.ts.map +1 -0
- package/dist/commands/test-plugin.js +285 -0
- package/dist/commands/upload-plugin.d.ts +6 -7
- package/dist/commands/upload-plugin.d.ts.map +1 -1
- package/dist/commands/upload-plugin.js +127 -189
- package/dist/commands/validate-plugin.d.ts +37 -4
- package/dist/commands/validate-plugin.d.ts.map +1 -1
- package/dist/commands/validate-plugin.js +129 -144
- package/dist/commands/validate-templates.d.ts.map +1 -1
- package/dist/commands/validate-templates.js +8 -9
- package/dist/config/plugin-catalog-assets.d.ts +13 -0
- package/dist/config/plugin-catalog-assets.d.ts.map +1 -0
- package/dist/config/plugin-catalog-assets.js +21 -0
- package/dist/config.yml +16 -37
- package/dist/lambda/token-renew-handler.d.ts.map +1 -1
- package/dist/lambda/token-renew-handler.js +109 -154
- package/dist/types/config.d.ts +2 -6
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +1 -1
- package/dist/types/plugin.d.ts +21 -0
- package/dist/types/plugin.d.ts.map +1 -1
- package/dist/types/plugin.js +1 -1
- package/dist/utils/aws-env.d.ts +1 -2
- package/dist/utils/aws-env.d.ts.map +1 -1
- package/dist/utils/aws-env.js +2 -3
- package/dist/utils/catalog-prompt.d.ts +26 -0
- package/dist/utils/catalog-prompt.d.ts.map +1 -0
- package/dist/utils/catalog-prompt.js +113 -0
- package/dist/utils/command-utils.d.ts.map +1 -1
- package/dist/utils/command-utils.js +14 -3
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +4 -6
- package/dist/utils/credential-store.d.ts +16 -0
- package/dist/utils/credential-store.d.ts.map +1 -1
- package/dist/utils/credential-store.js +57 -2
- package/dist/utils/deploy-runner.d.ts.map +1 -1
- package/dist/utils/deploy-runner.js +7 -2
- package/dist/utils/pipeline-config.d.ts +1 -2
- package/dist/utils/pipeline-config.d.ts.map +1 -1
- package/dist/utils/pipeline-config.js +1 -1
- package/dist/utils/plugin-docker.d.ts +44 -0
- package/dist/utils/plugin-docker.d.ts.map +1 -0
- package/dist/utils/plugin-docker.js +71 -0
- package/dist/utils/plugin-package.d.ts +40 -0
- package/dist/utils/plugin-package.d.ts.map +1 -0
- package/dist/utils/plugin-package.js +159 -0
- package/dist/utils/plugin-resolver.d.ts.map +1 -1
- package/dist/utils/plugin-resolver.js +43 -29
- package/dist/utils/plugin-scan.d.ts +22 -0
- package/dist/utils/plugin-scan.d.ts.map +1 -0
- package/dist/utils/plugin-scan.js +52 -0
- package/dist/utils/plugin-zip.d.ts +15 -0
- package/dist/utils/plugin-zip.d.ts.map +1 -0
- package/dist/utils/plugin-zip.js +96 -0
- package/dist/utils/registry.d.ts +15 -0
- package/dist/utils/registry.d.ts.map +1 -1
- package/dist/utils/registry.js +17 -2
- package/dist/utils/service-account.d.ts.map +1 -1
- package/dist/utils/service-account.js +9 -10
- package/package.json +45 -8
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
// Copyright 2026 Pipeline Builder Contributors
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
/**
|
|
4
|
-
* Provisioning the org's MACHINE identity for stored credentials
|
|
4
|
+
* Provisioning the org's MACHINE identity for stored credentials.
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* SESSION belonging to whoever ran the command: a person's JWT
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
* pushed every image.
|
|
6
|
+
* A credential the CLI parks in AWS Secrets Manager must not be a machine
|
|
7
|
+
* SESSION belonging to whoever ran the command: a person's JWT would outlive
|
|
8
|
+
* their employment, carry their authority, and make the audit trail read as if
|
|
9
|
+
* they had personally pushed every image.
|
|
11
10
|
*
|
|
12
|
-
* What it writes
|
|
11
|
+
* What it writes is a `pb_sa_…` key on an org SERVICE ACCOUNT:
|
|
13
12
|
* - the account is the principal, so audit rows name it, not the operator;
|
|
14
13
|
* - its Roles are the narrowest that work — for a SCOPED credential that is no
|
|
15
14
|
* Roles at all, just the one capability (`reporting:ingest`, `registry:push`);
|
|
@@ -20,8 +19,8 @@
|
|
|
20
19
|
* Creating an account and issuing a key are BOTH step-up gated on the platform —
|
|
21
20
|
* they mint durable bearer credentials, the same class of action a personal key
|
|
22
21
|
* is gated for. So this module needs the operator's password (`--password` or
|
|
23
|
-
* `PLATFORM_PASSWORD`), which is
|
|
24
|
-
*
|
|
22
|
+
* `PLATFORM_PASSWORD`), which is the only reason `store-token` has a password
|
|
23
|
+
* path at all. A step-up token is single-use and lives about a minute,
|
|
25
24
|
* so one is minted immediately before each gated call.
|
|
26
25
|
*/
|
|
27
26
|
import { errorMessage } from '@pipeline-builder/api-core';
|
|
@@ -180,4 +179,4 @@ export async function provisionServiceAccountKey(opts) {
|
|
|
180
179
|
scope: accessKey.scope ?? null,
|
|
181
180
|
};
|
|
182
181
|
}
|
|
183
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlcnZpY2UtYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUxRSx3RUFBd0U7QUFDeEUsTUFBTSxjQUFjLEdBQUcsaUJBQWlCLENBQUM7QUE2Q3pDOzhFQUM4RTtBQUM5RSxTQUFTLFFBQVEsQ0FBQyxHQUFZO0lBQzVCLE1BQU0sQ0FBQyxHQUFHLEdBQTBELENBQUM7SUFDckUsTUFBTSxNQUFNLEdBQUcsQ0FBQyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNoRCxPQUFPLE9BQU8sTUFBTSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDekQsQ0FBQztBQUVELHVFQUF1RTtBQUN2RSxTQUFTLFdBQVcsQ0FBQyxHQUFZO0lBQy9CLE1BQU0sSUFBSSxHQUFJLEdBQThFLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQztJQUM3RyxPQUFPLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxJQUFJLElBQUksRUFBRSxJQUFJLENBQUM7QUFDekMsQ0FBQztBQUVELG9GQUFvRjtBQUNwRixTQUFTLE1BQU0sQ0FBSSxRQUFpQjtJQUNsQyxNQUFNLElBQUksR0FBRyxRQUF3QixDQUFDO0lBQ3RDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxJQUFJLFFBQVEsQ0FBTSxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsS0FBSyxVQUFVLE1BQU0sQ0FB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QU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsTUFBTSxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xGLE9BQU87UUFDTCxHQUFHO1FBQ0gsS0FBSyxFQUFFLFNBQVMsQ0FBQyxFQUFFO1FBQ25CLGdCQUFnQjtRQUNoQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsV0FBVztRQUNwQyxjQUFjO1FBQ2QsU0FBUyxFQUFFLFNBQVMsQ0FBQyxTQUFTO1FBQzlCLEtBQUssRUFBRSxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUk7S0FDL0IsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuLyoqXG4gKiBQcm92aXNpb25pbmcgdGhlIG9yZydzIE1BQ0hJTkUgaWRlbnRpdHkgZm9yIHN0b3JlZCBjcmVkZW50aWFscyAoIzEyIC8gI04yKS5cbiAqXG4gKiBFdmVyeSBjcmVkZW50aWFsIHRoZSBDTEkgcGFya3MgaW4gQVdTIFNlY3JldHMgTWFuYWdlciB1c2VkIHRvIGJlIGEgbWFjaGluZVxuICogU0VTU0lPTiBiZWxvbmdpbmcgdG8gd2hvZXZlciByYW4gdGhlIGNvbW1hbmQ6IGEgcGVyc29uJ3MgSldULCByZW5ld2VkIGRhaWx5IGJ5XG4gKiByZS1taW50aW5nIGl0IHVuZGVyIHRoYXQgcGVyc29uJ3Mgc2Vzc2lvbi4gSXQgb3V0bGl2ZWQgdGhlaXIgZW1wbG95bWVudCwgaXRcbiAqIGNhcnJpZWQgdGhlaXIgYXV0aG9yaXR5LCBhbmQgdGhlIGF1ZGl0IHRyYWlsIHJlYWQgYXMgaWYgdGhleSBoYWQgcGVyc29uYWxseVxuICogcHVzaGVkIGV2ZXJ5IGltYWdlLlxuICpcbiAqIFdoYXQgaXQgd3JpdGVzIGluc3RlYWQgaXMgYSBgcGJfc2Ff4oCmYCBrZXkgb24gYW4gb3JnIFNFUlZJQ0UgQUNDT1VOVDpcbiAqICAgLSB0aGUgYWNjb3VudCBpcyB0aGUgcHJpbmNpcGFsLCBzbyBhdWRpdCByb3dzIG5hbWUgaXQsIG5vdCB0aGUgb3BlcmF0b3I7XG4gKiAgIC0gaXRzIFJvbGVzIGFyZSB0aGUgbmFycm93ZXN0IHRoYXQgd29yayDigJQgZm9yIGEgU0NPUEVEIGNyZWRlbnRpYWwgdGhhdCBpcyBub1xuICogICAgIFJvbGVzIGF0IGFsbCwganVzdCB0aGUgb25lIGNhcGFiaWxpdHkgKGByZXBvcnRpbmc6aW5nZXN0YCwgYHJlZ2lzdHJ5OnB1c2hgKTtcbiAqICAgLSB0aGUga2V5IGlzIG9wYXF1ZSBhbmQgc2hvcnQtbGl2ZWQgYXQgdGhlIHBvaW50IG9mIHVzZSAoNS1taW51dGUgZXhjaGFuZ2VkXG4gKiAgICAgdG9rZW5zKSwgc28gcmV2b2tpbmcgaXQgYWN0dWFsbHkgc3RvcHMgdGhlIGF1dG9tYXRpb247XG4gKiAgIC0gaXQgdGFrZXMgbm8gc2VhdCBhbmQgc3Vydml2ZXMgdGhlIG9wZXJhdG9yIGxlYXZpbmcuXG4gKlxuICogQ3JlYXRpbmcgYW4gYWNjb3VudCBhbmQgaXNzdWluZyBhIGtleSBhcmUgQk9USCBzdGVwLXVwIGdhdGVkIG9uIHRoZSBwbGF0Zm9ybSDigJRcbiAqIHRoZXkgbWludCBkdXJhYmxlIGJlYXJlciBjcmVkZW50aWFscywgdGhlIHNhbWUgY2xhc3Mgb2YgYWN0aW9uIGEgcGVyc29uYWwga2V5XG4gKiBpcyBnYXRlZCBmb3IuIFNvIHRoaXMgbW9kdWxlIG5lZWRzIHRoZSBvcGVyYXRvcidzIHBhc3N3b3JkIChgLS1wYXNzd29yZGAgb3JcbiAqIGBQTEFURk9STV9QQVNTV09SRGApLCB3aGljaCBpcyBhbHNvIHRoZSBvbmx5IHJlYXNvbiBgc3RvcmUtdG9rZW5gIHN0aWxsIGhhcyBhXG4gKiBwYXNzd29yZCBwYXRoIGF0IGFsbC4gQSBzdGVwLXVwIHRva2VuIGlzIHNpbmdsZS11c2UgYW5kIGxpdmVzIGFib3V0IGEgbWludXRlLFxuICogc28gb25lIGlzIG1pbnRlZCBpbW1lZGlhdGVseSBiZWZvcmUgZWFjaCBnYXRlZCBjYWxsLlxuICovXG5cbmltcG9ydCB7IGVycm9yTWVzc2FnZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB0eXBlIHsgQXBpQ2xpZW50IH0gZnJvbSAnLi9hcGktY2xpZW50LmpzJztcbmltcG9ydCB7IHByaW50SW5mbywgcHJpbnRTdWNjZXNzLCBwcmludFdhcm5pbmcgfSBmcm9tICcuL291dHB1dC11dGlscy5qcyc7XG5cbi8qKiBTdGVwLXVwIGhlYWRlciB0aGUgcGxhdGZvcm0gcmVhZHMgKHNlZSBhcGktY29yZSBgcmVxdWlyZVN0ZXBVcGApLiAqL1xuY29uc3QgU1RFUF9VUF9IRUFERVIgPSAnWC1TdGVwLVVwLVRva2VuJztcblxuLyoqIFdoYXQgdGhlIGNhbGxlciB3YW50cyBwcm92aXNpb25lZC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uS2V5T3B0aW9ucyB7XG4gIC8qKiBBbiBhdXRoZW50aWNhdGVkIGNsaWVudCBmb3IgdGhlIG9wZXJhdG9yJ3Mgb3duIHNlc3Npb24uICovXG4gIGNsaWVudDogQXBpQ2xpZW50O1xuICAvKiogVGhlIG9wZXJhdG9yJ3MgcGFzc3dvcmQg4oCUIHJlcXVpcmVkLCBiZWNhdXNlIGV2ZXJ5IGtleSB3cml0ZSBpcyBzdGVwLXVwIGdhdGVkLiAqL1xuICBwYXNzd29yZDogc3RyaW5nO1xuICAvKiogTWFjaGluZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGFjY291bnQgKGBbYS16MC05XVthLXowLTlfLV17MSw2M31gKS4gKi9cbiAgYWNjb3VudE5hbWU6IHN0cmluZztcbiAgLyoqIEh1bWFuIGRlc2NyaXB0aW9uIHJlY29yZGVkIG9uIGEgbmV3bHkgY3JlYXRlZCBhY2NvdW50LiAqL1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICAvKipcbiAgICogUm9sZXMgdG8gZ3JhbnQgYSBORVdMWSBjcmVhdGVkIGFjY291bnQ6IGAnYWRtaW4nYCBmb3IgdGhlIGZ1bGwtcHJpdmlsZWdlXG4gICAqIHBsYXRmb3JtIGNyZWRlbnRpYWwgKHN5bnRoL2RlcGxveSBjYWxsYmFja3MsIHBsdWdpbiBsb29rdXAsIGltYWdlIHB1c2gpLFxuICAgKiBgJ25vbmUnYCBmb3IgYSBzY29wZWQgY3JlZGVudGlhbCwgd2hpY2ggbmVlZHMgbm8gUm9sZXMgYXQgYWxsLlxuICAgKi9cbiAgcm9sZXM6ICdhZG1pbicgfCAnbm9uZSc7XG4gIC8qKiBOYXJyb3cgY2FwYWJpbGl0eSBzY29wZSBzdGFtcGVkIG9uIHRoZSBLRVkgKG5vdCB0aGUgYWNjb3VudCkuICovXG4gIHNjb3BlPzogc3RyaW5nO1xuICAvKiogS2V5IGxpZmV0aW1lIGluIHNlY29uZHMgKHBsYXRmb3JtIGNhcHMgdGhpcyBhdCAzNjUgZGF5cykuICovXG4gIGV4cGlyZXNJblNlY29uZHM6IG51bWJlcjtcbiAgLyoqIEtleSBsYWJlbCDigJQgc2hvd24gb24gdGhlIG9yZydzIHNlcnZpY2UtYWNjb3VudHMgcGFnZS4gKi9cbiAga2V5TmFtZTogc3RyaW5nO1xufVxuXG4vKiogQSBmcmVzaGx5IG1pbnRlZCBrZXksIHBsdXMgZXZlcnl0aGluZyB0aGUgc2VjcmV0IG5lZWRzIHRvIHJlY29yZCBhYm91dCBpdC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRLZXkge1xuICAvKiogVGhlIHJhdyBgcGJfc2Ff4oCmYCBrZXkg4oCUIHJldHVybmVkIE9OQ0UgYnkgdGhlIHBsYXRmb3JtLCBuZXZlciByZWFkYWJsZSBhZ2Fpbi4gKi9cbiAga2V5OiBzdHJpbmc7XG4gIGtleUlkOiBzdHJpbmc7XG4gIHNlcnZpY2VBY2NvdW50SWQ6IHN0cmluZztcbiAgc2VydmljZUFjY291bnROYW1lOiBzdHJpbmc7XG4gIG9yZ2FuaXphdGlvbklkOiBzdHJpbmc7XG4gIGV4cGlyZXNBdDogc3RyaW5nO1xuICBzY29wZTogc3RyaW5nIHwgbnVsbDtcbn1cblxuLyoqIE5hcnJvdyBzaGFwZSBvZiBhIHNlcnZpY2UtYWNjb3VudCBsaXN0aW5nIGVudHJ5LiAqL1xuaW50ZXJmYWNlIEFjY291bnRTdW1tYXJ5IHtcbiAgaWQ6IHN0cmluZztcbiAgbmFtZTogc3RyaW5nO1xuICBrZXlzPzogQXJyYXk8eyBpZDogc3RyaW5nOyBzdGF0dXM6IHN0cmluZzsgY3JlYXRlZEF0OiBzdHJpbmcgfT47XG59XG5cbi8qKiBIVFRQIHN0YXR1cyBvZiBhIGZhaWxlZCBDTEkgcmVxdWVzdCwgb3IgdW5kZWZpbmVkIGZvciBhIHRyYW5zcG9ydCBlcnJvci5cbiAqICBgQXBpRXJyb3JgIGNhcnJpZXMgaXQgZGlyZWN0bHk7IGEgcmF3IGF4aW9zIGVycm9yIG9ubHkgb24gdGhlIHJlc3BvbnNlLiAqL1xuZnVuY3Rpb24gc3RhdHVzT2YoZXJyOiB1bmtub3duKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZSA9IGVyciBhcyB7IHN0YXR1cz86IG51bWJlcjsgcmVzcG9uc2U/OiB7IHN0YXR1cz86IG51bWJlciB9IH07XG4gIGNvbnN0IHN0YXR1cyA9IGU/LnN0YXR1cyA/PyBlPy5yZXNwb25zZT8uc3RhdHVzO1xuICByZXR1cm4gdHlwZW9mIHN0YXR1cyA9PT0gJ251bWJlcicgPyBzdGF0dXMgOiB1bmRlZmluZWQ7XG59XG5cbi8qKiBUaGUgcGxhdGZvcm0ncyBlcnJvciBjb2RlIG9uIGEgZmFpbGVkIHJlcXVlc3QsIHdoZW4gaXQgc2VudCBvbmUuICovXG5mdW5jdGlvbiBlcnJvckNvZGVPZihlcnI6IHVua25vd24pOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICBjb25zdCBkYXRhID0gKGVyciBhcyB7IHJlc3BvbnNlPzogeyBkYXRhPzogeyBlcnJvcj86IHsgY29kZT86IHN0cmluZyB9OyBjb2RlPzogc3RyaW5nIH0gfSB9KT8ucmVzcG9uc2U/LmRhdGE7XG4gIHJldHVybiBkYXRhPy5lcnJvcj8uY29kZSA/PyBkYXRhPy5jb2RlO1xufVxuXG4vKiogVW53cmFwIGFwaS1jb3JlJ3MgYHsgc3VjY2VzcywgZGF0YSB9YCBlbnZlbG9wZSAoc29tZSBwYXRocyByZXR1cm4gZGF0YSBiYXJlKS4gKi9cbmZ1bmN0aW9uIHVud3JhcDxUPihyZXNwb25zZTogdW5rbm93bik6IFQge1xuICBjb25zdCBib2R5ID0gcmVzcG9uc2UgYXMgeyBkYXRhPzogVCB9O1xuICByZXR1cm4gKGJvZHk/LmRhdGEgPz8gcmVzcG9uc2UpIGFzIFQ7XG59XG5cbi8qKlxuICogTWludCBhIHNpbmdsZS11c2Ugc3RlcC11cCB0b2tlbiBmb3IgdGhlIHNpZ25lZC1pbiBvcGVyYXRvci4gU2hvcnQtbGl2ZWQgYnlcbiAqIGRlc2lnbiwgc28gY2FsbGVycyBtaW50IG9uZSBpbW1lZGlhdGVseSBiZWZvcmUgZWFjaCBnYXRlZCB3cml0ZSByYXRoZXIgdGhhblxuICogaG9sZGluZyBvbmUgYWNyb3NzIHRoZSB3aG9sZSBjb21tYW5kLlxuICovXG5hc3luYyBmdW5jdGlvbiBzdGVwVXAoY2xpZW50OiBBcGlDbGllbnQsIHBhc3N3b3JkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICB0cnkge1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5wb3N0PHVua25vd24+KCcvYXBpL2F1dGgvc3RlcC11cCcsIHsgcGFzc3dvcmQgfSk7XG4gICAgY29uc3QgdG9rZW4gPSB1bndyYXA8eyBzdGVwVXBUb2tlbj86IHN0cmluZyB9PihyZXMpPy5zdGVwVXBUb2tlbjtcbiAgICBpZiAoIXRva2VuKSB0aHJvdyBuZXcgRXJyb3IoJ25vIHN0ZXBVcFRva2VuIGluIHJlc3BvbnNlJyk7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnQ291bGQgbm90IHJlLXZlcmlmeSB5b3VyIHBhc3N3b3JkIChzdGVwLXVwKS4gQ3JlYXRpbmcgYSBzZXJ2aWNlIGFjY291bnQgYW5kIGlzc3VpbmcgaXRzIGtleSAnXG4gICAgICArICdhcmUgYm90aCBzdGVwLXVwIGdhdGVkLiBDaGVjayB0aGUgcGFzc3dvcmQgcGFzc2VkIHZpYSAtLXBhc3N3b3JkIC8gUExBVEZPUk1fUEFTU1dPUkQuICdcbiAgICAgICsgYCgke2Vycm9yTWVzc2FnZShlcnIpfSlgLFxuICAgICk7XG4gIH1cbn1cblxuLyoqIFRoZSBvcmcgdGhlIG9wZXJhdG9yJ3MgdG9rZW4gaXMgYWN0aXZlIGluLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlc29sdmVPcmdhbml6YXRpb25JZChjbGllbnQ6IEFwaUNsaWVudCk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8dW5rbm93bj4oJy9hcGkvb3JnYW5pemF0aW9uJyk7XG4gIGNvbnN0IG9yZ0lkID0gdW53cmFwPHsgb3JnYW5pemF0aW9uPzogeyBpZD86IHN0cmluZyB9IH0+KHJlcyk/Lm9yZ2FuaXphdGlvbj8uaWQ7XG4gIGlmICghb3JnSWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCByZXNvbHZlIHlvdXIgYWN0aXZlIG9yZ2FuaXphdGlvbiDigJQgdGhlIHBsYXRmb3JtIHJldHVybmVkIG5vIG9yZ2FuaXphdGlvbiBmb3IgdGhpcyB0b2tlbi4nKTtcbiAgfVxuICByZXR1cm4gb3JnSWQ7XG59XG5cbi8qKlxuICogVGhlIG9yZyBSb2xlIHRvIGdpdmUgYSBmdWxsLXByaXZpbGVnZSBtYWNoaW5lIGFjY291bnQ6IGl0cyBTdXBlciBBZG1pbiByb2xlIGlmXG4gKiB0aGUgb3JnIGhhcyBvbmUgKHRoZSBzeXN0ZW0gb3JnIGRvZXMpLCBlbHNlIGl0cyBBZG1pbiByb2xlLiBCb3RoIGFyZSBzdWJqZWN0IHRvXG4gKiB0aGUgb3JkaW5hcnkgYXNzaWdubWVudCBjZWlsaW5nIG9uIHRoZSBwbGF0Zm9ybSBzaWRlLCBzbyB0aGlzIGNhbiBuZXZlciBncmFudFxuICogdGhlIGFjY291bnQgbW9yZSB0aGFuIHRoZSBvcGVyYXRvciBob2xkcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcmVzb2x2ZUFkbWluUm9sZUlkKGNsaWVudDogQXBpQ2xpZW50LCBvcmdJZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LmdldDx1bmtub3duPihgL2FwaS9vcmdhbml6YXRpb24vJHtvcmdJZH0vcm9sZXNgKTtcbiAgY29uc3Qgcm9sZXMgPSB1bndyYXA8eyByb2xlcz86IEFycmF5PHsgaWQ6IHN0cmluZzsgZ3JhbnRzUm9sZT86IHN0cmluZyB9PiB9PihyZXMpPy5yb2xlcyA/PyBbXTtcbiAgY29uc3Qgcm9sZSA9IHJvbGVzLmZpbmQoKHIpID0+IHIuZ3JhbnRzUm9sZSA9PT0gJ3N1cGVyYWRtaW4nKSA/PyByb2xlcy5maW5kKChyKSA9PiByLmdyYW50c1JvbGUgPT09ICdhZG1pbicpO1xuICBpZiAoIXJvbGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE9yZ2FuaXphdGlvbiAke29yZ0lkfSBoYXMgbm8gYWRtaW4gcm9sZSB0byBncmFudCB0aGUgbWFjaGluZSBzZXJ2aWNlIGFjY291bnQuYCk7XG4gIH1cbiAgcmV0dXJuIHJvbGUuaWQ7XG59XG5cbi8qKiBGaW5kIGFuIGV4aXN0aW5nIGFjY291bnQgYnkgbmFtZSAodGhlIG5hbWUgaXMgdGhlIHN0YWJsZSBtYWNoaW5lIGlkZW50aWZpZXIpLiAqL1xuYXN5bmMgZnVuY3Rpb24gZmluZEFjY291bnQoY2xpZW50OiBBcGlDbGllbnQsIG9yZ0lkOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IFByb21pc2U8QWNjb3VudFN1bW1hcnkgfCB1bmRlZmluZWQ+IHtcbiAgY29uc3QgcmVzID0gYXdhaXQgY2xpZW50LmdldDx1bmtub3duPihgL2FwaS9vcmdhbml6YXRpb24vJHtvcmdJZH0vc2VydmljZS1hY2NvdW50c2ApO1xuICBjb25zdCBhY2NvdW50cyA9IHVud3JhcDx7IHNlcnZpY2VBY2NvdW50cz86IEFjY291bnRTdW1tYXJ5W10gfT4ocmVzKT8uc2VydmljZUFjY291bnRzID8/IFtdO1xuICByZXR1cm4gYWNjb3VudHMuZmluZCgoYSkgPT4gYS5uYW1lID09PSBuYW1lKTtcbn1cblxuLyoqXG4gKiBDcmVhdGUgdGhlIGFjY291bnQgaWYgaXQgaXNuJ3QgdGhlcmUgeWV0LCBhbmQgcmV0dXJuIGl0cyBpZC4gSURFTVBPVEVOVDogYVxuICogcmUtcnVuIHJldXNlcyB0aGUgZXhpc3RpbmcgYWNjb3VudCAoaW5jbHVkaW5nIHRoZSA0MDkgcmFjZSB3aGVyZSB0d28gcnVuc1xuICogY3JlYXRlIGl0IGF0IG9uY2UpLCBhbmQgbmV2ZXIgcmUtZ3JhbnRzIFJvbGVzIOKAlCBhbiBvcGVyYXRvciB3aG8gbmFycm93ZWQgdGhlXG4gKiBhY2NvdW50J3MgUm9sZXMgYnkgaGFuZCBtdXN0IG5vdCBoYXZlIHRoYXQgdW5kb25lIGJ5IHRoZSBuZXh0IGBzdG9yZS10b2tlbmAuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGVuc3VyZUFjY291bnQob3B0czogUHJvdmlzaW9uS2V5T3B0aW9ucywgb3JnSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IGV4aXN0aW5nID0gYXdhaXQgZmluZEFjY291bnQob3B0cy5jbGllbnQsIG9yZ0lkLCBvcHRzLmFjY291bnROYW1lKTtcbiAgaWYgKGV4aXN0aW5nKSB7XG4gICAgcHJpbnRJbmZvKCdSZXVzaW5nIHRoZSBleGlzdGluZyBzZXJ2aWNlIGFjY291bnQnLCB7IGFjY291bnQ6IG9wdHMuYWNjb3VudE5hbWUsIGlkOiBleGlzdGluZy5pZCB9KTtcbiAgICByZXR1cm4gZXhpc3RpbmcuaWQ7XG4gIH1cblxuICBjb25zdCByb2xlSWRzID0gb3B0cy5yb2xlcyA9PT0gJ2FkbWluJyA/IFthd2FpdCByZXNvbHZlQWRtaW5Sb2xlSWQob3B0cy5jbGllbnQsIG9yZ0lkKV0gOiBbXTtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBvcHRzLmNsaWVudC5wb3N0PHVua25vd24+KFxuICAgICAgYC9hcGkvb3JnYW5pemF0aW9uLyR7b3JnSWR9L3NlcnZpY2UtYWNjb3VudHNgLFxuICAgICAgeyBuYW1lOiBvcHRzLmFjY291bnROYW1lLCBkZXNjcmlwdGlvbjogb3B0cy5kZXNjcmlwdGlvbiwgcm9sZUlkcyB9LFxuICAgICAgeyBbU1RFUF9VUF9IRUFERVJdOiBhd2FpdCBzdGVwVXAob3B0cy5jbGllbnQsIG9wdHMucGFzc3dvcmQpIH0sXG4gICAgKTtcbiAgICBjb25zdCBhY2NvdW50ID0gdW53cmFwPHsgc2VydmljZUFjY291bnQ/OiB7IGlkPzogc3RyaW5nIH0gfT4ocmVzKT8uc2VydmljZUFjY291bnQ7XG4gICAgaWYgKCFhY2NvdW50Py5pZCkgdGhyb3cgbmV3IEVycm9yKCdzZXJ2aWNlLWFjY291bnQgY3JlYXRlIHJldHVybmVkIG5vIGlkJyk7XG4gICAgcHJpbnRTdWNjZXNzKGBDcmVhdGVkIHRoZSAnJHtvcHRzLmFjY291bnROYW1lfScgc2VydmljZSBhY2NvdW50YCk7XG4gICAgcmV0dXJuIGFjY291bnQuaWQ7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChzdGF0dXNPZihlcnIpID09PSA0MDkpIHtcbiAgICAgIGNvbnN0IHJhY2VkID0gYXdhaXQgZmluZEFjY291bnQob3B0cy5jbGllbnQsIG9yZ0lkLCBvcHRzLmFjY291bnROYW1lKTtcbiAgICAgIGlmIChyYWNlZCkgcmV0dXJuIHJhY2VkLmlkO1xuICAgIH1cbiAgICB0aHJvdyBlcnI7XG4gIH1cbn1cblxuLyoqIFJldm9rZSBvbmUgb2YgYW4gYWNjb3VudCdzIGtleXMuIEJlc3QtZWZmb3J0IGJ5IGNvbnRyYWN0IOKAlCBzZWUgdGhlIGNhbGwgc2l0ZXMuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmV2b2tlU2VydmljZUFjY291bnRLZXkoXG4gIGNsaWVudDogQXBpQ2xpZW50LFxuICBwYXNzd29yZDogc3RyaW5nLFxuICBvcmdJZDogc3RyaW5nLFxuICBhY2NvdW50SWQ6IHN0cmluZyxcbiAga2V5SWQ6IHN0cmluZyxcbik6IFByb21pc2U8dm9pZD4ge1xuICBhd2FpdCBjbGllbnQuZGVsZXRlKFxuICAgIGAvYXBpL29yZ2FuaXphdGlvbi8ke29yZ0lkfS9zZXJ2aWNlLWFjY291bnRzLyR7YWNjb3VudElkfS9rZXlzLyR7a2V5SWR9YCxcbiAgICB7IFtTVEVQX1VQX0hFQURFUl06IGF3YWl0IHN0ZXBVcChjbGllbnQsIHBhc3N3b3JkKSB9LFxuICApO1xufVxuXG4vKipcbiAqIElzc3VlIGEga2V5LCBzZWxmLWhlYWxpbmcgcGFzdCB0aGUgcGVyLWFjY291bnQgYWN0aXZlLWtleSBjYXA6IGF0IHRoZSBjYXAgdGhlXG4gKiBPTERFU1QgYWN0aXZlIGtleSBpcyByZXRpcmVkIGFuZCB0aGUgbWludCByZXRyaWVkIG9uY2UuIFRoZSBjYXAgZXhpc3RzIHRvIGJvdW5kXG4gKiBhIGNvbXByb21pc2UsIG5vdCB0byBtYWtlIHByb3Zpc2lvbmluZyBmYWlsLCBhbmQgdGhlIGNyZWRlbnRpYWwgYSByZS1ydW4gaXNcbiAqIHJlcGxhY2luZyBpcyB0aGUgdmVyeSB0aGluZyB0aGF0IHNob3VsZCBnby5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNzdWVLZXkoXG4gIG9wdHM6IFByb3Zpc2lvbktleU9wdGlvbnMsXG4gIG9yZ0lkOiBzdHJpbmcsXG4gIGFjY291bnRJZDogc3RyaW5nLFxuKTogUHJvbWlzZTx7IGtleTogc3RyaW5nOyBhY2Nlc3NLZXk6IHsgaWQ6IHN0cmluZzsgZXhwaXJlc0F0OiBzdHJpbmc7IHNjb3BlOiBzdHJpbmcgfCBudWxsIH0gfT4ge1xuICBjb25zdCBib2R5ID0ge1xuICAgIG5hbWU6IG9wdHMua2V5TmFtZSxcbiAgICBleHBpcmVzSW46IG9wdHMuZXhwaXJlc0luU2Vjb25kcyxcbiAgICAuLi4ob3B0cy5zY29wZSA/IHsgc2NvcGU6IG9wdHMuc2NvcGUgfSA6IHt9KSxcbiAgfTtcbiAgY29uc3QgbWludCA9IGFzeW5jICgpID0+IHVud3JhcDx7IGtleTogc3RyaW5nOyBhY2Nlc3NLZXk6IHsgaWQ6IHN0cmluZzsgZXhwaXJlc0F0OiBzdHJpbmc7IHNjb3BlOiBzdHJpbmcgfCBudWxsIH0gfT4oXG4gICAgYXdhaXQgb3B0cy5jbGllbnQucG9zdDx1bmtub3duPihcbiAgICAgIGAvYXBpL29yZ2FuaXphdGlvbi8ke29yZ0lkfS9zZXJ2aWNlLWFjY291bnRzLyR7YWNjb3VudElkfS9rZXlzYCxcbiAgICAgIGJvZHksXG4gICAgICB7IFtTVEVQX1VQX0hFQURFUl06IGF3YWl0IHN0ZXBVcChvcHRzLmNsaWVudCwgb3B0cy5wYXNzd29yZCkgfSxcbiAgICApLFxuICApO1xuXG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IG1pbnQoKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKHN0YXR1c09mKGVycikgIT09IDQwOSAmJiBlcnJvckNvZGVPZihlcnIpICE9PSAnU0FfS0VZX0xJTUlUJykgdGhyb3cgZXJyO1xuICAgIGNvbnN0IGFjY291bnQgPSBhd2FpdCBmaW5kQWNjb3VudChvcHRzLmNsaWVudCwgb3JnSWQsIG9wdHMuYWNjb3VudE5hbWUpO1xuICAgIGNvbnN0IG9sZGVzdCA9IChhY2NvdW50Py5rZXlzID8/IFtdKVxuICAgICAgLmZpbHRlcigoaykgPT4gay5zdGF0dXMgPT09ICdhY3RpdmUnKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IGEuY3JlYXRlZEF0LmxvY2FsZUNvbXBhcmUoYi5jcmVhdGVkQXQpKVswXTtcbiAgICBpZiAoIW9sZGVzdCkgdGhyb3cgZXJyO1xuICAgIHByaW50V2FybmluZyhgU2VydmljZSBhY2NvdW50ICcke29wdHMuYWNjb3VudE5hbWV9JyBpcyBhdCBpdHMgYWN0aXZlLWtleSBsaW1pdCDigJQgcmV0aXJpbmcgaXRzIG9sZGVzdCBrZXkgKCR7b2xkZXN0LmlkfSkuYCk7XG4gICAgYXdhaXQgcmV2b2tlU2VydmljZUFjY291bnRLZXkob3B0cy5jbGllbnQsIG9wdHMucGFzc3dvcmQsIG9yZ0lkLCBhY2NvdW50SWQsIG9sZGVzdC5pZCk7XG4gICAgcmV0dXJuIG1pbnQoKTtcbiAgfVxufVxuXG4vKipcbiAqIEVuc3VyZSB0aGUgbmFtZWQgc2VydmljZSBhY2NvdW50IGV4aXN0cyBhbmQgaXNzdWUgaXQgYSBmcmVzaCBrZXkuXG4gKlxuICogRGVsaWJlcmF0ZWx5IGRvZXMgTk9UIHJldm9rZSBhbnl0aGluZyB0aGUgY2FsbGVyIHdhcyBwcmV2aW91c2x5IGhvbGRpbmc6IHRoZVxuICogY2FsbGVyIHN0b3JlcyB0aGUgbmV3IGtleSBmaXJzdCBhbmQgcmV0aXJlcyB0aGUgb2xkIG9uZSBhZnRlcndhcmRzIChzZWVcbiAqIGBzdG9yZS10b2tlbmApLCBzbyBhIGZhaWx1cmUgYXQgYW55IHBvaW50IGxlYXZlcyBhIHdvcmtpbmcgY3JlZGVudGlhbCBpbiB0aGVcbiAqIHNlY3JldCByYXRoZXIgdGhhbiBhbiBlbXB0eSBvbmUuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm92aXNpb25TZXJ2aWNlQWNjb3VudEtleShvcHRzOiBQcm92aXNpb25LZXlPcHRpb25zKTogUHJvbWlzZTxQcm92aXNpb25lZEtleT4ge1xuICBjb25zdCBvcmdhbml6YXRpb25JZCA9IGF3YWl0IHJlc29sdmVPcmdhbml6YXRpb25JZChvcHRzLmNsaWVudCk7XG4gIGNvbnN0IHNlcnZpY2VBY2NvdW50SWQgPSBhd2FpdCBlbnN1cmVBY2NvdW50KG9wdHMsIG9yZ2FuaXphdGlvbklkKTtcbiAgY29uc3QgeyBrZXksIGFjY2Vzc0tleSB9ID0gYXdhaXQgaXNzdWVLZXkob3B0cywgb3JnYW5pemF0aW9uSWQsIHNlcnZpY2VBY2NvdW50SWQpO1xuICByZXR1cm4ge1xuICAgIGtleSxcbiAgICBrZXlJZDogYWNjZXNzS2V5LmlkLFxuICAgIHNlcnZpY2VBY2NvdW50SWQsXG4gICAgc2VydmljZUFjY291bnROYW1lOiBvcHRzLmFjY291bnROYW1lLFxuICAgIG9yZ2FuaXphdGlvbklkLFxuICAgIGV4cGlyZXNBdDogYWNjZXNzS2V5LmV4cGlyZXNBdCxcbiAgICBzY29wZTogYWNjZXNzS2V5LnNjb3BlID8/IG51bGwsXG4gIH07XG59XG4iXX0=
|
|
182
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS1hY2NvdW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL3NlcnZpY2UtYWNjb3VudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFFLHdFQUF3RTtBQUN4RSxNQUFNLGNBQWMsR0FBRyxpQkFBaUIsQ0FBQztBQTZDekM7OEVBQzhFO0FBQzlFLFNBQVMsUUFBUSxDQUFDLEdBQVk7SUFDNUIsTUFBTSxDQUFDLEdBQUcsR0FBMEQsQ0FBQztJQUNyRSxNQUFNLE1BQU0sR0FBRyxDQUFDLEVBQUUsTUFBTSxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDO0lBQ2hELE9BQU8sT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsdUVBQXVFO0FBQ3ZFLFNBQVMsV0FBVyxDQUFDLEdBQVk7SUFDL0IsTUFBTSxJQUFJLEdBQUksR0FBOEUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDO0lBQzdHLE9BQU8sSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLElBQUksQ0FBQztBQUN6QyxDQUFDO0FBRUQsb0ZBQW9GO0FBQ3BGLFNBQVMsTUFBTSxDQUFJLFFBQWlCO0lBQ2xDLE1BQU0sSUFBSSxHQUFHLFFBQXdCLENBQUM7SUFDdEMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLElBQUksUUFBUSxDQUFNLENBQUM7QUFDdkMsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxLQUFLLFVBQVUsTUFBTSxDQUFD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TSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxNQUFNLFFBQVEsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixDQUFDLENBQUM7SUFDbEYsT0FBTztRQUNMLEdBQUc7UUFDSCxLQUFLLEVBQUUsU0FBUyxDQUFDLEVBQUU7UUFDbkIsZ0JBQWdCO1FBQ2hCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxXQUFXO1FBQ3BDLGNBQWM7UUFDZCxTQUFTLEVBQUUsU0FBUyxDQUFDLFNBQVM7UUFDOUIsS0FBSyxFQUFFLFNBQVMsQ0FBQyxLQUFLLElBQUksSUFBSTtLQUMvQixDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG4vKipcbiAqIFByb3Zpc2lvbmluZyB0aGUgb3JnJ3MgTUFDSElORSBpZGVudGl0eSBmb3Igc3RvcmVkIGNyZWRlbnRpYWxzLlxuICpcbiAqIEEgY3JlZGVudGlhbCB0aGUgQ0xJIHBhcmtzIGluIEFXUyBTZWNyZXRzIE1hbmFnZXIgbXVzdCBub3QgYmUgYSBtYWNoaW5lXG4gKiBTRVNTSU9OIGJlbG9uZ2luZyB0byB3aG9ldmVyIHJhbiB0aGUgY29tbWFuZDogYSBwZXJzb24ncyBKV1Qgd291bGQgb3V0bGl2ZVxuICogdGhlaXIgZW1wbG95bWVudCwgY2FycnkgdGhlaXIgYXV0aG9yaXR5LCBhbmQgbWFrZSB0aGUgYXVkaXQgdHJhaWwgcmVhZCBhcyBpZlxuICogdGhleSBoYWQgcGVyc29uYWxseSBwdXNoZWQgZXZlcnkgaW1hZ2UuXG4gKlxuICogV2hhdCBpdCB3cml0ZXMgaXMgYSBgcGJfc2Ff4oCmYCBrZXkgb24gYW4gb3JnIFNFUlZJQ0UgQUNDT1VOVDpcbiAqICAgLSB0aGUgYWNjb3VudCBpcyB0aGUgcHJpbmNpcGFsLCBzbyBhdWRpdCByb3dzIG5hbWUgaXQsIG5vdCB0aGUgb3BlcmF0b3I7XG4gKiAgIC0gaXRzIFJvbGVzIGFyZSB0aGUgbmFycm93ZXN0IHRoYXQgd29yayDigJQgZm9yIGEgU0NPUEVEIGNyZWRlbnRpYWwgdGhhdCBpcyBub1xuICogICAgIFJvbGVzIGF0IGFsbCwganVzdCB0aGUgb25lIGNhcGFiaWxpdHkgKGByZXBvcnRpbmc6aW5nZXN0YCwgYHJlZ2lzdHJ5OnB1c2hgKTtcbiAqICAgLSB0aGUga2V5IGlzIG9wYXF1ZSBhbmQgc2hvcnQtbGl2ZWQgYXQgdGhlIHBvaW50IG9mIHVzZSAoNS1taW51dGUgZXhjaGFuZ2VkXG4gKiAgICAgdG9rZW5zKSwgc28gcmV2b2tpbmcgaXQgYWN0dWFsbHkgc3RvcHMgdGhlIGF1dG9tYXRpb247XG4gKiAgIC0gaXQgdGFrZXMgbm8gc2VhdCBhbmQgc3Vydml2ZXMgdGhlIG9wZXJhdG9yIGxlYXZpbmcuXG4gKlxuICogQ3JlYXRpbmcgYW4gYWNjb3VudCBhbmQgaXNzdWluZyBhIGtleSBhcmUgQk9USCBzdGVwLXVwIGdhdGVkIG9uIHRoZSBwbGF0Zm9ybSDigJRcbiAqIHRoZXkgbWludCBkdXJhYmxlIGJlYXJlciBjcmVkZW50aWFscywgdGhlIHNhbWUgY2xhc3Mgb2YgYWN0aW9uIGEgcGVyc29uYWwga2V5XG4gKiBpcyBnYXRlZCBmb3IuIFNvIHRoaXMgbW9kdWxlIG5lZWRzIHRoZSBvcGVyYXRvcidzIHBhc3N3b3JkIChgLS1wYXNzd29yZGAgb3JcbiAqIGBQTEFURk9STV9QQVNTV09SRGApLCB3aGljaCBpcyB0aGUgb25seSByZWFzb24gYHN0b3JlLXRva2VuYCBoYXMgYSBwYXNzd29yZFxuICogcGF0aCBhdCBhbGwuIEEgc3RlcC11cCB0b2tlbiBpcyBzaW5nbGUtdXNlIGFuZCBsaXZlcyBhYm91dCBhIG1pbnV0ZSxcbiAqIHNvIG9uZSBpcyBtaW50ZWQgaW1tZWRpYXRlbHkgYmVmb3JlIGVhY2ggZ2F0ZWQgY2FsbC5cbiAqL1xuXG5pbXBvcnQgeyBlcnJvck1lc3NhZ2UgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgdHlwZSB7IEFwaUNsaWVudCB9IGZyb20gJy4vYXBpLWNsaWVudC5qcyc7XG5pbXBvcnQgeyBwcmludEluZm8sIHByaW50U3VjY2VzcywgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi9vdXRwdXQtdXRpbHMuanMnO1xuXG4vKiogU3RlcC11cCBoZWFkZXIgdGhlIHBsYXRmb3JtIHJlYWRzIChzZWUgYXBpLWNvcmUgYHJlcXVpcmVTdGVwVXBgKS4gKi9cbmNvbnN0IFNURVBfVVBfSEVBREVSID0gJ1gtU3RlcC1VcC1Ub2tlbic7XG5cbi8qKiBXaGF0IHRoZSBjYWxsZXIgd2FudHMgcHJvdmlzaW9uZWQuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbktleU9wdGlvbnMge1xuICAvKiogQW4gYXV0aGVudGljYXRlZCBjbGllbnQgZm9yIHRoZSBvcGVyYXRvcidzIG93biBzZXNzaW9uLiAqL1xuICBjbGllbnQ6IEFwaUNsaWVudDtcbiAgLyoqIFRoZSBvcGVyYXRvcidzIHBhc3N3b3JkIOKAlCByZXF1aXJlZCwgYmVjYXVzZSBldmVyeSBrZXkgd3JpdGUgaXMgc3RlcC11cCBnYXRlZC4gKi9cbiAgcGFzc3dvcmQ6IHN0cmluZztcbiAgLyoqIE1hY2hpbmUgbmFtZSBvZiB0aGUgc2VydmljZSBhY2NvdW50IChgW2EtejAtOV1bYS16MC05Xy1dezEsNjN9YCkuICovXG4gIGFjY291bnROYW1lOiBzdHJpbmc7XG4gIC8qKiBIdW1hbiBkZXNjcmlwdGlvbiByZWNvcmRlZCBvbiBhIG5ld2x5IGNyZWF0ZWQgYWNjb3VudC4gKi9cbiAgZGVzY3JpcHRpb246IHN0cmluZztcbiAgLyoqXG4gICAqIFJvbGVzIHRvIGdyYW50IGEgTkVXTFkgY3JlYXRlZCBhY2NvdW50OiBgJ2FkbWluJ2AgZm9yIHRoZSBmdWxsLXByaXZpbGVnZVxuICAgKiBwbGF0Zm9ybSBjcmVkZW50aWFsIChzeW50aC9kZXBsb3kgY2FsbGJhY2tzLCBwbHVnaW4gbG9va3VwLCBpbWFnZSBwdXNoKSxcbiAgICogYCdub25lJ2AgZm9yIGEgc2NvcGVkIGNyZWRlbnRpYWwsIHdoaWNoIG5lZWRzIG5vIFJvbGVzIGF0IGFsbC5cbiAgICovXG4gIHJvbGVzOiAnYWRtaW4nIHwgJ25vbmUnO1xuICAvKiogTmFycm93IGNhcGFiaWxpdHkgc2NvcGUgc3RhbXBlZCBvbiB0aGUgS0VZIChub3QgdGhlIGFjY291bnQpLiAqL1xuICBzY29wZT86IHN0cmluZztcbiAgLyoqIEtleSBsaWZldGltZSBpbiBzZWNvbmRzIChwbGF0Zm9ybSBjYXBzIHRoaXMgYXQgMzY1IGRheXMpLiAqL1xuICBleHBpcmVzSW5TZWNvbmRzOiBudW1iZXI7XG4gIC8qKiBLZXkgbGFiZWwg4oCUIHNob3duIG9uIHRoZSBvcmcncyBzZXJ2aWNlLWFjY291bnRzIHBhZ2UuICovXG4gIGtleU5hbWU6IHN0cmluZztcbn1cblxuLyoqIEEgZnJlc2hseSBtaW50ZWQga2V5LCBwbHVzIGV2ZXJ5dGhpbmcgdGhlIHNlY3JldCBuZWVkcyB0byByZWNvcmQgYWJvdXQgaXQuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkS2V5IHtcbiAgLyoqIFRoZSByYXcgYHBiX3NhX+KApmAga2V5IOKAlCByZXR1cm5lZCBPTkNFIGJ5IHRoZSBwbGF0Zm9ybSwgbmV2ZXIgcmVhZGFibGUgYWdhaW4uICovXG4gIGtleTogc3RyaW5nO1xuICBrZXlJZDogc3RyaW5nO1xuICBzZXJ2aWNlQWNjb3VudElkOiBzdHJpbmc7XG4gIHNlcnZpY2VBY2NvdW50TmFtZTogc3RyaW5nO1xuICBvcmdhbml6YXRpb25JZDogc3RyaW5nO1xuICBleHBpcmVzQXQ6IHN0cmluZztcbiAgc2NvcGU6IHN0cmluZyB8IG51bGw7XG59XG5cbi8qKiBOYXJyb3cgc2hhcGUgb2YgYSBzZXJ2aWNlLWFjY291bnQgbGlzdGluZyBlbnRyeS4gKi9cbmludGVyZmFjZSBBY2NvdW50U3VtbWFyeSB7XG4gIGlkOiBzdHJpbmc7XG4gIG5hbWU6IHN0cmluZztcbiAga2V5cz86IEFycmF5PHsgaWQ6IHN0cmluZzsgc3RhdHVzOiBzdHJpbmc7IGNyZWF0ZWRBdDogc3RyaW5nIH0+O1xufVxuXG4vKiogSFRUUCBzdGF0dXMgb2YgYSBmYWlsZWQgQ0xJIHJlcXVlc3QsIG9yIHVuZGVmaW5lZCBmb3IgYSB0cmFuc3BvcnQgZXJyb3IuXG4gKiAgYEFwaUVycm9yYCBjYXJyaWVzIGl0IGRpcmVjdGx5OyBhIHJhdyBheGlvcyBlcnJvciBvbmx5IG9uIHRoZSByZXNwb25zZS4gKi9cbmZ1bmN0aW9uIHN0YXR1c09mKGVycjogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGUgPSBlcnIgYXMgeyBzdGF0dXM/OiBudW1iZXI7IHJlc3BvbnNlPzogeyBzdGF0dXM/OiBudW1iZXIgfSB9O1xuICBjb25zdCBzdGF0dXMgPSBlPy5zdGF0dXMgPz8gZT8ucmVzcG9uc2U/LnN0YXR1cztcbiAgcmV0dXJuIHR5cGVvZiBzdGF0dXMgPT09ICdudW1iZXInID8gc3RhdHVzIDogdW5kZWZpbmVkO1xufVxuXG4vKiogVGhlIHBsYXRmb3JtJ3MgZXJyb3IgY29kZSBvbiBhIGZhaWxlZCByZXF1ZXN0LCB3aGVuIGl0IHNlbnQgb25lLiAqL1xuZnVuY3Rpb24gZXJyb3JDb2RlT2YoZXJyOiB1bmtub3duKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgZGF0YSA9IChlcnIgYXMgeyByZXNwb25zZT86IHsgZGF0YT86IHsgZXJyb3I/OiB7IGNvZGU/OiBzdHJpbmcgfTsgY29kZT86IHN0cmluZyB9IH0gfSk/LnJlc3BvbnNlPy5kYXRhO1xuICByZXR1cm4gZGF0YT8uZXJyb3I/LmNvZGUgPz8gZGF0YT8uY29kZTtcbn1cblxuLyoqIFVud3JhcCBhcGktY29yZSdzIGB7IHN1Y2Nlc3MsIGRhdGEgfWAgZW52ZWxvcGUgKHNvbWUgcGF0aHMgcmV0dXJuIGRhdGEgYmFyZSkuICovXG5mdW5jdGlvbiB1bndyYXA8VD4ocmVzcG9uc2U6IHVua25vd24pOiBUIHtcbiAgY29uc3QgYm9keSA9IHJlc3BvbnNlIGFzIHsgZGF0YT86IFQgfTtcbiAgcmV0dXJuIChib2R5Py5kYXRhID8/IHJlc3BvbnNlKSBhcyBUO1xufVxuXG4vKipcbiAqIE1pbnQgYSBzaW5nbGUtdXNlIHN0ZXAtdXAgdG9rZW4gZm9yIHRoZSBzaWduZWQtaW4gb3BlcmF0b3IuIFNob3J0LWxpdmVkIGJ5XG4gKiBkZXNpZ24sIHNvIGNhbGxlcnMgbWludCBvbmUgaW1tZWRpYXRlbHkgYmVmb3JlIGVhY2ggZ2F0ZWQgd3JpdGUgcmF0aGVyIHRoYW5cbiAqIGhvbGRpbmcgb25lIGFjcm9zcyB0aGUgd2hvbGUgY29tbWFuZC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gc3RlcFVwKGNsaWVudDogQXBpQ2xpZW50LCBwYXNzd29yZDogc3RyaW5nKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQucG9zdDx1bmtub3duPignL2FwaS9hdXRoL3N0ZXAtdXAnLCB7IHBhc3N3b3JkIH0pO1xuICAgIGNvbnN0IHRva2VuID0gdW53cmFwPHsgc3RlcFVwVG9rZW4/OiBzdHJpbmcgfT4ocmVzKT8uc3RlcFVwVG9rZW47XG4gICAgaWYgKCF0b2tlbikgdGhyb3cgbmV3IEVycm9yKCdubyBzdGVwVXBUb2tlbiBpbiByZXNwb25zZScpO1xuICAgIHJldHVybiB0b2tlbjtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgJ0NvdWxkIG5vdCByZS12ZXJpZnkgeW91ciBwYXNzd29yZCAoc3RlcC11cCkuIENyZWF0aW5nIGEgc2VydmljZSBhY2NvdW50IGFuZCBpc3N1aW5nIGl0cyBrZXkgJ1xuICAgICAgKyAnYXJlIGJvdGggc3RlcC11cCBnYXRlZC4gQ2hlY2sgdGhlIHBhc3N3b3JkIHBhc3NlZCB2aWEgLS1wYXNzd29yZCAvIFBMQVRGT1JNX1BBU1NXT1JELiAnXG4gICAgICArIGAoJHtlcnJvck1lc3NhZ2UoZXJyKX0pYCxcbiAgICApO1xuICB9XG59XG5cbi8qKiBUaGUgb3JnIHRoZSBvcGVyYXRvcidzIHRva2VuIGlzIGFjdGl2ZSBpbi4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZXNvbHZlT3JnYW5pemF0aW9uSWQoY2xpZW50OiBBcGlDbGllbnQpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCByZXMgPSBhd2FpdCBjbGllbnQuZ2V0PHVua25vd24+KCcvYXBpL29yZ2FuaXphdGlvbicpO1xuICBjb25zdCBvcmdJZCA9IHVud3JhcDx7IG9yZ2FuaXphdGlvbj86IHsgaWQ/OiBzdHJpbmcgfSB9PihyZXMpPy5vcmdhbml6YXRpb24/LmlkO1xuICBpZiAoIW9yZ0lkKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgcmVzb2x2ZSB5b3VyIGFjdGl2ZSBvcmdhbml6YXRpb24g4oCUIHRoZSBwbGF0Zm9ybSByZXR1cm5lZCBubyBvcmdhbml6YXRpb24gZm9yIHRoaXMgdG9rZW4uJyk7XG4gIH1cbiAgcmV0dXJuIG9yZ0lkO1xufVxuXG4vKipcbiAqIFRoZSBvcmcgUm9sZSB0byBnaXZlIGEgZnVsbC1wcml2aWxlZ2UgbWFjaGluZSBhY2NvdW50OiBpdHMgU3VwZXIgQWRtaW4gcm9sZSBpZlxuICogdGhlIG9yZyBoYXMgb25lICh0aGUgc3lzdGVtIG9yZyBkb2VzKSwgZWxzZSBpdHMgQWRtaW4gcm9sZS4gQm90aCBhcmUgc3ViamVjdCB0b1xuICogdGhlIG9yZGluYXJ5IGFzc2lnbm1lbnQgY2VpbGluZyBvbiB0aGUgcGxhdGZvcm0gc2lkZSwgc28gdGhpcyBjYW4gbmV2ZXIgZ3JhbnRcbiAqIHRoZSBhY2NvdW50IG1vcmUgdGhhbiB0aGUgb3BlcmF0b3IgaG9sZHMuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHJlc29sdmVBZG1pblJvbGVJZChjbGllbnQ6IEFwaUNsaWVudCwgb3JnSWQ6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8dW5rbm93bj4oYC9hcGkvb3JnYW5pemF0aW9uLyR7b3JnSWR9L3JvbGVzYCk7XG4gIGNvbnN0IHJvbGVzID0gdW53cmFwPHsgcm9sZXM/OiBBcnJheTx7IGlkOiBzdHJpbmc7IGdyYW50c1JvbGU/OiBzdHJpbmcgfT4gfT4ocmVzKT8ucm9sZXMgPz8gW107XG4gIGNvbnN0IHJvbGUgPSByb2xlcy5maW5kKChyKSA9PiByLmdyYW50c1JvbGUgPT09ICdzdXBlcmFkbWluJykgPz8gcm9sZXMuZmluZCgocikgPT4gci5ncmFudHNSb2xlID09PSAnYWRtaW4nKTtcbiAgaWYgKCFyb2xlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBPcmdhbml6YXRpb24gJHtvcmdJZH0gaGFzIG5vIGFkbWluIHJvbGUgdG8gZ3JhbnQgdGhlIG1hY2hpbmUgc2VydmljZSBhY2NvdW50LmApO1xuICB9XG4gIHJldHVybiByb2xlLmlkO1xufVxuXG4vKiogRmluZCBhbiBleGlzdGluZyBhY2NvdW50IGJ5IG5hbWUgKHRoZSBuYW1lIGlzIHRoZSBzdGFibGUgbWFjaGluZSBpZGVudGlmaWVyKS4gKi9cbmFzeW5jIGZ1bmN0aW9uIGZpbmRBY2NvdW50KGNsaWVudDogQXBpQ2xpZW50LCBvcmdJZDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpOiBQcm9taXNlPEFjY291bnRTdW1tYXJ5IHwgdW5kZWZpbmVkPiB7XG4gIGNvbnN0IHJlcyA9IGF3YWl0IGNsaWVudC5nZXQ8dW5rbm93bj4oYC9hcGkvb3JnYW5pemF0aW9uLyR7b3JnSWR9L3NlcnZpY2UtYWNjb3VudHNgKTtcbiAgY29uc3QgYWNjb3VudHMgPSB1bndyYXA8eyBzZXJ2aWNlQWNjb3VudHM/OiBBY2NvdW50U3VtbWFyeVtdIH0+KHJlcyk/LnNlcnZpY2VBY2NvdW50cyA/PyBbXTtcbiAgcmV0dXJuIGFjY291bnRzLmZpbmQoKGEpID0+IGEubmFtZSA9PT0gbmFtZSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBhY2NvdW50IGlmIGl0IGlzbid0IHRoZXJlIHlldCwgYW5kIHJldHVybiBpdHMgaWQuIElERU1QT1RFTlQ6IGFcbiAqIHJlLXJ1biByZXVzZXMgdGhlIGV4aXN0aW5nIGFjY291bnQgKGluY2x1ZGluZyB0aGUgNDA5IHJhY2Ugd2hlcmUgdHdvIHJ1bnNcbiAqIGNyZWF0ZSBpdCBhdCBvbmNlKSwgYW5kIG5ldmVyIHJlLWdyYW50cyBSb2xlcyDigJQgYW4gb3BlcmF0b3Igd2hvIG5hcnJvd2VkIHRoZVxuICogYWNjb3VudCdzIFJvbGVzIGJ5IGhhbmQgbXVzdCBub3QgaGF2ZSB0aGF0IHVuZG9uZSBieSB0aGUgbmV4dCBgc3RvcmUtdG9rZW5gLlxuICovXG5hc3luYyBmdW5jdGlvbiBlbnN1cmVBY2NvdW50KG9wdHM6IFByb3Zpc2lvbktleU9wdGlvbnMsIG9yZ0lkOiBzdHJpbmcpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBleGlzdGluZyA9IGF3YWl0IGZpbmRBY2NvdW50KG9wdHMuY2xpZW50LCBvcmdJZCwgb3B0cy5hY2NvdW50TmFtZSk7XG4gIGlmIChleGlzdGluZykge1xuICAgIHByaW50SW5mbygnUmV1c2luZyB0aGUgZXhpc3Rpbmcgc2VydmljZSBhY2NvdW50JywgeyBhY2NvdW50OiBvcHRzLmFjY291bnROYW1lLCBpZDogZXhpc3RpbmcuaWQgfSk7XG4gICAgcmV0dXJuIGV4aXN0aW5nLmlkO1xuICB9XG5cbiAgY29uc3Qgcm9sZUlkcyA9IG9wdHMucm9sZXMgPT09ICdhZG1pbicgPyBbYXdhaXQgcmVzb2x2ZUFkbWluUm9sZUlkKG9wdHMuY2xpZW50LCBvcmdJZCldIDogW107XG4gIHRyeSB7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgb3B0cy5jbGllbnQucG9zdDx1bmtub3duPihcbiAgICAgIGAvYXBpL29yZ2FuaXphdGlvbi8ke29yZ0lkfS9zZXJ2aWNlLWFjY291bnRzYCxcbiAgICAgIHsgbmFtZTogb3B0cy5hY2NvdW50TmFtZSwgZGVzY3JpcHRpb246IG9wdHMuZGVzY3JpcHRpb24sIHJvbGVJZHMgfSxcbiAgICAgIHsgW1NURVBfVVBfSEVBREVSXTogYXdhaXQgc3RlcFVwKG9wdHMuY2xpZW50LCBvcHRzLnBhc3N3b3JkKSB9LFxuICAgICk7XG4gICAgY29uc3QgYWNjb3VudCA9IHVud3JhcDx7IHNlcnZpY2VBY2NvdW50PzogeyBpZD86IHN0cmluZyB9IH0+KHJlcyk/LnNlcnZpY2VBY2NvdW50O1xuICAgIGlmICghYWNjb3VudD8uaWQpIHRocm93IG5ldyBFcnJvcignc2VydmljZS1hY2NvdW50IGNyZWF0ZSByZXR1cm5lZCBubyBpZCcpO1xuICAgIHByaW50U3VjY2VzcyhgQ3JlYXRlZCB0aGUgJyR7b3B0cy5hY2NvdW50TmFtZX0nIHNlcnZpY2UgYWNjb3VudGApO1xuICAgIHJldHVybiBhY2NvdW50LmlkO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoc3RhdHVzT2YoZXJyKSA9PT0gNDA5KSB7XG4gICAgICBjb25zdCByYWNlZCA9IGF3YWl0IGZpbmRBY2NvdW50KG9wdHMuY2xpZW50LCBvcmdJZCwgb3B0cy5hY2NvdW50TmFtZSk7XG4gICAgICBpZiAocmFjZWQpIHJldHVybiByYWNlZC5pZDtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbi8qKiBSZXZva2Ugb25lIG9mIGFuIGFjY291bnQncyBrZXlzLiBCZXN0LWVmZm9ydCBieSBjb250cmFjdCDigJQgc2VlIHRoZSBjYWxsIHNpdGVzLiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJldm9rZVNlcnZpY2VBY2NvdW50S2V5KFxuICBjbGllbnQ6IEFwaUNsaWVudCxcbiAgcGFzc3dvcmQ6IHN0cmluZyxcbiAgb3JnSWQ6IHN0cmluZyxcbiAgYWNjb3VudElkOiBzdHJpbmcsXG4gIGtleUlkOiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgYXdhaXQgY2xpZW50LmRlbGV0ZShcbiAgICBgL2FwaS9vcmdhbml6YXRpb24vJHtvcmdJZH0vc2VydmljZS1hY2NvdW50cy8ke2FjY291bnRJZH0va2V5cy8ke2tleUlkfWAsXG4gICAgeyBbU1RFUF9VUF9IRUFERVJdOiBhd2FpdCBzdGVwVXAoY2xpZW50LCBwYXNzd29yZCkgfSxcbiAgKTtcbn1cblxuLyoqXG4gKiBJc3N1ZSBhIGtleSwgc2VsZi1oZWFsaW5nIHBhc3QgdGhlIHBlci1hY2NvdW50IGFjdGl2ZS1rZXkgY2FwOiBhdCB0aGUgY2FwIHRoZVxuICogT0xERVNUIGFjdGl2ZSBrZXkgaXMgcmV0aXJlZCBhbmQgdGhlIG1pbnQgcmV0cmllZCBvbmNlLiBUaGUgY2FwIGV4aXN0cyB0byBib3VuZFxuICogYSBjb21wcm9taXNlLCBub3QgdG8gbWFrZSBwcm92aXNpb25pbmcgZmFpbCwgYW5kIHRoZSBjcmVkZW50aWFsIGEgcmUtcnVuIGlzXG4gKiByZXBsYWNpbmcgaXMgdGhlIHZlcnkgdGhpbmcgdGhhdCBzaG91bGQgZ28uXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGlzc3VlS2V5KFxuICBvcHRzOiBQcm92aXNpb25LZXlPcHRpb25zLFxuICBvcmdJZDogc3RyaW5nLFxuICBhY2NvdW50SWQ6IHN0cmluZyxcbik6IFByb21pc2U8eyBrZXk6IHN0cmluZzsgYWNjZXNzS2V5OiB7IGlkOiBzdHJpbmc7IGV4cGlyZXNBdDogc3RyaW5nOyBzY29wZTogc3RyaW5nIHwgbnVsbCB9IH0+IHtcbiAgY29uc3QgYm9keSA9IHtcbiAgICBuYW1lOiBvcHRzLmtleU5hbWUsXG4gICAgZXhwaXJlc0luOiBvcHRzLmV4cGlyZXNJblNlY29uZHMsXG4gICAgLi4uKG9wdHMuc2NvcGUgPyB7IHNjb3BlOiBvcHRzLnNjb3BlIH0gOiB7fSksXG4gIH07XG4gIGNvbnN0IG1pbnQgPSBhc3luYyAoKSA9PiB1bndyYXA8eyBrZXk6IHN0cmluZzsgYWNjZXNzS2V5OiB7IGlkOiBzdHJpbmc7IGV4cGlyZXNBdDogc3RyaW5nOyBzY29wZTogc3RyaW5nIHwgbnVsbCB9IH0+KFxuICAgIGF3YWl0IG9wdHMuY2xpZW50LnBvc3Q8dW5rbm93bj4oXG4gICAgICBgL2FwaS9vcmdhbml6YXRpb24vJHtvcmdJZH0vc2VydmljZS1hY2NvdW50cy8ke2FjY291bnRJZH0va2V5c2AsXG4gICAgICBib2R5LFxuICAgICAgeyBbU1RFUF9VUF9IRUFERVJdOiBhd2FpdCBzdGVwVXAob3B0cy5jbGllbnQsIG9wdHMucGFzc3dvcmQpIH0sXG4gICAgKSxcbiAgKTtcblxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBtaW50KCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChzdGF0dXNPZihlcnIpICE9PSA0MDkgJiYgZXJyb3JDb2RlT2YoZXJyKSAhPT0gJ1NBX0tFWV9MSU1JVCcpIHRocm93IGVycjtcbiAgICBjb25zdCBhY2NvdW50ID0gYXdhaXQgZmluZEFjY291bnQob3B0cy5jbGllbnQsIG9yZ0lkLCBvcHRzLmFjY291bnROYW1lKTtcbiAgICBjb25zdCBvbGRlc3QgPSAoYWNjb3VudD8ua2V5cyA/PyBbXSlcbiAgICAgIC5maWx0ZXIoKGspID0+IGsuc3RhdHVzID09PSAnYWN0aXZlJylcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmNyZWF0ZWRBdC5sb2NhbGVDb21wYXJlKGIuY3JlYXRlZEF0KSlbMF07XG4gICAgaWYgKCFvbGRlc3QpIHRocm93IGVycjtcbiAgICBwcmludFdhcm5pbmcoYFNlcnZpY2UgYWNjb3VudCAnJHtvcHRzLmFjY291bnROYW1lfScgaXMgYXQgaXRzIGFjdGl2ZS1rZXkgbGltaXQg4oCUIHJldGlyaW5nIGl0cyBvbGRlc3Qga2V5ICgke29sZGVzdC5pZH0pLmApO1xuICAgIGF3YWl0IHJldm9rZVNlcnZpY2VBY2NvdW50S2V5KG9wdHMuY2xpZW50LCBvcHRzLnBhc3N3b3JkLCBvcmdJZCwgYWNjb3VudElkLCBvbGRlc3QuaWQpO1xuICAgIHJldHVybiBtaW50KCk7XG4gIH1cbn1cblxuLyoqXG4gKiBFbnN1cmUgdGhlIG5hbWVkIHNlcnZpY2UgYWNjb3VudCBleGlzdHMgYW5kIGlzc3VlIGl0IGEgZnJlc2gga2V5LlxuICpcbiAqIERlbGliZXJhdGVseSBkb2VzIE5PVCByZXZva2UgYW55dGhpbmcgdGhlIGNhbGxlciB3YXMgcHJldmlvdXNseSBob2xkaW5nOiB0aGVcbiAqIGNhbGxlciBzdG9yZXMgdGhlIG5ldyBrZXkgZmlyc3QgYW5kIHJldGlyZXMgdGhlIG9sZCBvbmUgYWZ0ZXJ3YXJkcyAoc2VlXG4gKiBgc3RvcmUtdG9rZW5gKSwgc28gYSBmYWlsdXJlIGF0IGFueSBwb2ludCBsZWF2ZXMgYSB3b3JraW5nIGNyZWRlbnRpYWwgaW4gdGhlXG4gKiBzZWNyZXQgcmF0aGVyIHRoYW4gYW4gZW1wdHkgb25lLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlzaW9uU2VydmljZUFjY291bnRLZXkob3B0czogUHJvdmlzaW9uS2V5T3B0aW9ucyk6IFByb21pc2U8UHJvdmlzaW9uZWRLZXk+IHtcbiAgY29uc3Qgb3JnYW5pemF0aW9uSWQgPSBhd2FpdCByZXNvbHZlT3JnYW5pemF0aW9uSWQob3B0cy5jbGllbnQpO1xuICBjb25zdCBzZXJ2aWNlQWNjb3VudElkID0gYXdhaXQgZW5zdXJlQWNjb3VudChvcHRzLCBvcmdhbml6YXRpb25JZCk7XG4gIGNvbnN0IHsga2V5LCBhY2Nlc3NLZXkgfSA9IGF3YWl0IGlzc3VlS2V5KG9wdHMsIG9yZ2FuaXphdGlvbklkLCBzZXJ2aWNlQWNjb3VudElkKTtcbiAgcmV0dXJuIHtcbiAgICBrZXksXG4gICAga2V5SWQ6IGFjY2Vzc0tleS5pZCxcbiAgICBzZXJ2aWNlQWNjb3VudElkLFxuICAgIHNlcnZpY2VBY2NvdW50TmFtZTogb3B0cy5hY2NvdW50TmFtZSxcbiAgICBvcmdhbml6YXRpb25JZCxcbiAgICBleHBpcmVzQXQ6IGFjY2Vzc0tleS5leHBpcmVzQXQsXG4gICAgc2NvcGU6IGFjY2Vzc0tleS5zY29wZSA/PyBudWxsLFxuICB9O1xufVxuIl19
|
package/package.json
CHANGED
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
"@typescript-eslint/parser": "^8",
|
|
19
19
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
20
20
|
"copyfiles": "2.4.1",
|
|
21
|
+
"esbuild": "0.28.0",
|
|
21
22
|
"eslint": "^9",
|
|
22
23
|
"eslint-import-resolver-typescript": "^4.4.4",
|
|
23
24
|
"eslint-plugin-import": "^2.32.0",
|
|
@@ -44,9 +45,9 @@
|
|
|
44
45
|
"typescript": "npm:@typescript/typescript6@^6.0.2",
|
|
45
46
|
"yaml": "2.9.0",
|
|
46
47
|
"zod": "4.4.3",
|
|
47
|
-
"@pipeline-builder/ai-core": "4.1.
|
|
48
|
-
"@pipeline-builder/api-core": "4.1.
|
|
49
|
-
"@pipeline-builder/pipeline-core": "4.1.
|
|
48
|
+
"@pipeline-builder/ai-core": "4.1.14",
|
|
49
|
+
"@pipeline-builder/api-core": "4.1.14",
|
|
50
|
+
"@pipeline-builder/pipeline-core": "4.1.16"
|
|
50
51
|
},
|
|
51
52
|
"keywords": [
|
|
52
53
|
"ci-cd",
|
|
@@ -101,7 +102,7 @@
|
|
|
101
102
|
"access": "public",
|
|
102
103
|
"registry": "https://registry.npmjs.org/"
|
|
103
104
|
},
|
|
104
|
-
"version": "4.1.
|
|
105
|
+
"version": "4.1.16",
|
|
105
106
|
"bugs": {
|
|
106
107
|
"url": "https://github.com/mwashburn160/pipeline-builder/issues"
|
|
107
108
|
},
|
|
@@ -165,16 +166,49 @@
|
|
|
165
166
|
"setupFilesAfterEnv": [
|
|
166
167
|
"<rootDir>/../../jest-env-guard.js"
|
|
167
168
|
],
|
|
169
|
+
"collectCoverageFrom": [
|
|
170
|
+
"src/**/*.ts",
|
|
171
|
+
"!src/**/*.d.ts",
|
|
172
|
+
"!src/testing/**",
|
|
173
|
+
"!src/types/config.ts",
|
|
174
|
+
"!src/types/index.ts",
|
|
175
|
+
"!src/types/pipeline.ts",
|
|
176
|
+
"!src/types/plugin.ts"
|
|
177
|
+
],
|
|
168
178
|
"coverageThreshold": {
|
|
169
179
|
"global": {
|
|
170
|
-
"statements":
|
|
171
|
-
"branches":
|
|
172
|
-
"functions":
|
|
173
|
-
"lines":
|
|
180
|
+
"statements": 79,
|
|
181
|
+
"branches": 84,
|
|
182
|
+
"functions": 83,
|
|
183
|
+
"lines": 79
|
|
174
184
|
}
|
|
175
185
|
}
|
|
176
186
|
},
|
|
177
187
|
"type": "module",
|
|
188
|
+
"nx": {
|
|
189
|
+
"targets": {
|
|
190
|
+
"build": {
|
|
191
|
+
"inputs": [
|
|
192
|
+
"default",
|
|
193
|
+
"^default",
|
|
194
|
+
"sharedGlobals",
|
|
195
|
+
"{workspaceRoot}/deploy/**/*",
|
|
196
|
+
"!{projectRoot}/lib/**/*",
|
|
197
|
+
"!{projectRoot}/dist/**/*"
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"test": {
|
|
201
|
+
"inputs": [
|
|
202
|
+
"default",
|
|
203
|
+
"^default",
|
|
204
|
+
"sharedGlobals",
|
|
205
|
+
"{workspaceRoot}/deploy/**/*",
|
|
206
|
+
"!{projectRoot}/lib/**/*",
|
|
207
|
+
"!{projectRoot}/dist/**/*"
|
|
208
|
+
]
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
},
|
|
178
212
|
"//": "~~ Generated by projen. To modify, edit .projenrc.js and run \"pnpm dlx projen\".",
|
|
179
213
|
"scripts": {
|
|
180
214
|
"audit": "pnpm dlx projen audit",
|
|
@@ -182,11 +216,14 @@
|
|
|
182
216
|
"compile": "pnpm dlx projen compile",
|
|
183
217
|
"default": "pnpm dlx projen default",
|
|
184
218
|
"eslint": "pnpm dlx projen eslint",
|
|
219
|
+
"lint:fix": "pnpm dlx projen lint:fix",
|
|
185
220
|
"package": "pnpm dlx projen package",
|
|
186
221
|
"post-compile": "pnpm dlx projen post-compile",
|
|
187
222
|
"pre-compile": "pnpm dlx projen pre-compile",
|
|
188
223
|
"test": "pnpm dlx projen test",
|
|
224
|
+
"test:update": "pnpm dlx projen test:update",
|
|
189
225
|
"test:watch": "pnpm dlx projen test:watch",
|
|
226
|
+
"typecheck:tests": "pnpm dlx projen typecheck:tests",
|
|
190
227
|
"watch": "pnpm dlx projen watch",
|
|
191
228
|
"projen": "pnpm dlx projen"
|
|
192
229
|
}
|