@pipeline-builder/pipeline-core 3.4.111 → 3.4.112

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.
@@ -36,6 +36,20 @@ export declare class SourceBuilder {
36
36
  * Creates a GitHub source for the pipeline
37
37
  */
38
38
  private createGitHubSource;
39
+ /**
40
+ * Resolve the GitHub authentication token into a {@link SecretValue} without
41
+ * leaking the token value into the synthesized template.
42
+ *
43
+ * - `undefined` token → no authentication (CDK default).
44
+ * - A `SecretValue` → passed through (already a reference, never plaintext).
45
+ * - A Secrets Manager ARN or `secretsmanager:<name>` string → resolved via
46
+ * `SecretValue.secretsManager`, so only the reference lands in the template.
47
+ * - A genuine raw plaintext token → rejected by default (it would be baked as
48
+ * plaintext into CloudFormation/CDK context). Only when
49
+ * `allowPlainTextToken` is explicitly set is it embedded via
50
+ * `SecretValue.unsafePlainText`, and a loud warning is emitted.
51
+ */
52
+ private resolveGitHubAuthentication;
39
53
  /**
40
54
  * Creates a CodeStar connection source for the pipeline
41
55
  */
@@ -1,5 +1,6 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
+ import { createLogger } from '@pipeline-builder/api-core';
3
4
  import { SecretValue } from 'aws-cdk-lib';
4
5
  import { Repository } from 'aws-cdk-lib/aws-codecommit';
5
6
  import { CodeCommitTrigger, GitHubTrigger, S3Trigger } from 'aws-cdk-lib/aws-codepipeline-actions';
@@ -9,6 +10,11 @@ import { Construct } from 'constructs';
9
10
  import { UniqueId } from '../core/id-generator.js';
10
11
  import { unwrapSecret } from '../core/pipeline-helpers.js';
11
12
  import { TriggerType } from '../core/pipeline-types.js';
13
+ const log = createLogger('source-builder');
14
+ /** A Secrets Manager ARN (`arn:aws:secretsmanager:...`, incl. partition variants). */
15
+ const SECRETS_MANAGER_ARN = /^arn:aws[a-z-]*:secretsmanager:/i;
16
+ /** A `secretsmanager:<secret-name>` shorthand reference. */
17
+ const SECRETS_MANAGER_REF_PREFIX = 'secretsmanager:';
12
18
  /**
13
19
  * Creates the appropriate CodePipelineSource based on the pipeline configuration.
14
20
  *
@@ -76,14 +82,55 @@ export class SourceBuilder {
76
82
  */
77
83
  createGitHubSource() {
78
84
  const options = this.config.getGitHubOptions();
79
- const authentication = options.token
80
- ? (typeof options.token === 'string' ? SecretValue.unsafePlainText(options.token) : options.token)
81
- : undefined;
82
85
  return CodePipelineSource.gitHub(options.repo, options.branch, {
83
86
  trigger: options.trigger === TriggerType.AUTO ? GitHubTrigger.POLL : GitHubTrigger.NONE,
84
- authentication,
87
+ authentication: this.resolveGitHubAuthentication(options),
85
88
  });
86
89
  }
90
+ /**
91
+ * Resolve the GitHub authentication token into a {@link SecretValue} without
92
+ * leaking the token value into the synthesized template.
93
+ *
94
+ * - `undefined` token → no authentication (CDK default).
95
+ * - A `SecretValue` → passed through (already a reference, never plaintext).
96
+ * - A Secrets Manager ARN or `secretsmanager:<name>` string → resolved via
97
+ * `SecretValue.secretsManager`, so only the reference lands in the template.
98
+ * - A genuine raw plaintext token → rejected by default (it would be baked as
99
+ * plaintext into CloudFormation/CDK context). Only when
100
+ * `allowPlainTextToken` is explicitly set is it embedded via
101
+ * `SecretValue.unsafePlainText`, and a loud warning is emitted.
102
+ */
103
+ resolveGitHubAuthentication(options) {
104
+ const token = options.token;
105
+ if (token === undefined)
106
+ return undefined;
107
+ // A SecretValue is already a reference (e.g. Secrets Manager) — never plaintext.
108
+ if (typeof token !== 'string')
109
+ return token;
110
+ // A string that names a Secrets Manager secret is resolved to a reference so
111
+ // only the pointer — not the token — is written to the template / CDK context.
112
+ if (SECRETS_MANAGER_ARN.test(token)) {
113
+ return SecretValue.secretsManager(token);
114
+ }
115
+ if (token.toLowerCase().startsWith(SECRETS_MANAGER_REF_PREFIX)) {
116
+ return SecretValue.secretsManager(token.slice(SECRETS_MANAGER_REF_PREFIX.length));
117
+ }
118
+ // Genuine raw plaintext token — this is the exposure. Reject by default and
119
+ // point the caller at a secret reference or a CodeStar connection.
120
+ if (!options.allowPlainTextToken) {
121
+ throw new Error('GitHub source `token` is a raw plaintext value, which would be baked into the ' +
122
+ 'synthesized CloudFormation template (and CDK context / stack state). Provide a ' +
123
+ 'Secrets Manager reference instead — an `arn:aws:secretsmanager:...` ARN, a ' +
124
+ '`secretsmanager:<secret-name>` string, or a `SecretValue.secretsManager(...)` — or ' +
125
+ 'prefer a CodeStar connection (`type: "codestar"`). To intentionally embed the token ' +
126
+ 'in plaintext, set `allowPlainTextToken: true`.');
127
+ }
128
+ log.warn('GitHub source `token` is being embedded as PLAINTEXT in the synthesized CloudFormation ' +
129
+ 'template because `allowPlainTextToken` is set. Anyone with template, CDK context, or ' +
130
+ 'stack state access can read this token. Use a Secrets Manager reference or a CodeStar ' +
131
+ 'connection instead.');
132
+ return SecretValue.unsafePlainText(token);
133
+ }
87
134
  /**
88
135
  * Creates a CodeStar connection source for the pipeline
89
136
  */
@@ -106,4 +153,4 @@ export class SourceBuilder {
106
153
  });
107
154
  }
108
155
  }
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc291cmNlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ25HLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFdBQVcsRUFBbUIsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUVMO0lBQ0E7SUFGbkIsWUFDbUIsS0FBZ0IsRUFDaEIsTUFBNkI7UUFEN0IsVUFBSyxHQUFMLEtBQUssQ0FBVztRQUNoQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtJQUM3QyxDQUFDO0lBRUo7O09BRUc7SUFDSCxNQUFNLENBQUMsRUFBWTtRQUNqQixRQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2hDLEtBQUssSUFBSTtnQkFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDakMsS0FBSyxRQUFRO2dCQUNYLE9BQU8sSUFBSSxDQUFD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VUFBVSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsQ0FDOUMsSUFBSSxDQUFDLEtBQUssRUFDVixFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUMxQixPQUFPLENBQUMsY0FBYyxDQUN2QixDQUFDO1FBRUYsT0FBTyxrQkFBa0IsQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksTUFBTSxFQUFFO1lBQ3pFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSTtTQUNsRyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBSZXBvc2l0b3J5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVjb21taXQnO1xuaW1wb3J0IHsgQ29kZUNvbW1pdFRyaWdnZXIsIEdpdEh1YlRyaWdnZXIsIFMzVHJpZ2dlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9ucyc7XG5pbXBvcnQgeyBCdWNrZXQgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgQ29kZVBpcGVsaW5lU291cmNlIH0gZnJvbSAnYXdzLWNkay1saWIvcGlwZWxpbmVzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHR5cGUgeyBQaXBlbGluZUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuL3BpcGVsaW5lLWNvbmZpZ3VyYXRpb24uanMnO1xuaW1wb3J0IHsgVW5pcXVlSWQgfSBmcm9tICcuLi9jb3JlL2lkLWdlbmVyYXRvci5qcyc7XG5pbXBvcnQgeyB1bndyYXBTZWNyZXQgfSBmcm9tICcuLi9jb3JlL3BpcGVsaW5lLWhlbHBlcnMuanMnO1xuaW1wb3J0IHsgVHJpZ2dlclR5cGUsIHR5cGUgU291cmNlVHlwZSB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtdHlwZXMuanMnO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiB0aGUgcGlwZWxpbmUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBTdXBwb3J0cyBTMywgR2l0SHViLCBDb2RlU3RhciBjb25uZWN0aW9uLCBhbmQgQ29kZUNvbW1pdCBzb3VyY2VzLlxuICpcbiAqICoqTm90ZSBvbiBTQ0hFRFVMRSB0cmlnZ2VyczoqKiBTY2hlZHVsZWQgcGlwZWxpbmVzIHJlcXVpcmUgYW4gRXZlbnRCcmlkZ2UgcnVsZVxuICogdGhhdCBzdGFydHMgdGhlIHBpcGVsaW5lIG9uIGEgY3JvbiBzY2hlZHVsZS4gVGhlIHNvdXJjZSB0cmlnZ2VyIGlzIHNldCB0byBOT05FXG4gKiAobm8gcG9sbGluZy93ZWJob29rKS4gVGhlIEV2ZW50QnJpZGdlIHJ1bGUgbXVzdCBiZSBjcmVhdGVkIHNlcGFyYXRlbHkgYXMgYVxuICogcGlwZWxpbmUtbGV2ZWwgY29uc3RydWN0LCBub3QgYXQgdGhlIHNvdXJjZSBsZXZlbC4gVGhlIGBzY2hlZHVsZWAgZmllbGQgb25cbiAqIHNvdXJjZSBvcHRpb25zIGNhcHR1cmVzIHRoZSBjcm9uIGV4cHJlc3Npb24gZm9yIEFQSS9mcm9udGVuZCB1c2UsIGJ1dCB0aGVcbiAqIGFjdHVhbCBFdmVudEJyaWRnZSBydWxlIGNyZWF0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhpcyBidWlsZGVyLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VCdWlsZGVyID0gbmV3IFNvdXJjZUJ1aWxkZXIodGhpcywgY29uZmlnKTtcbiAqIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUJ1aWxkZXIuY3JlYXRlKHVuaXF1ZUlkKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU291cmNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUGlwZWxpbmVDb25maWd1cmF0aW9uLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiBzb3VyY2UgdHlwZVxuICAgKi9cbiAgY3JlYXRlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZy5zb3VyY2UudHlwZSkge1xuICAgICAgY2FzZSAnczMnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTM1NvdXJjZShpZCk7XG4gICAgICBjYXNlICdnaXRodWInOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVHaXRIdWJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVzdGFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29kZVN0YXJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVjb21taXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2RlQ29tbWl0U291cmNlKGlkKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gdGhpcy5jb25maWcuc291cmNlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNvdXJjZSB0eXBlOiAkeyhfZXhoYXVzdGl2ZSBhcyBTb3VyY2VUeXBlKS50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFMzIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVMzU291cmNlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldFMzT3B0aW9ucygpO1xuXG4gICAgY29uc3QgYnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6YnVja2V0JyksXG4gICAgICBvcHRpb25zLmJ1Y2tldE5hbWUsXG4gICAgKTtcblxuICAgIGxldCB0cmlnZ2VyOiBTM1RyaWdnZXI7XG4gICAgc3dpdGNoIChvcHRpb25zLnRyaWdnZXIpIHtcbiAgICAgIGNhc2UgVHJpZ2dlclR5cGUuQVVUTzogdHJpZ2dlciA9IFMzVHJpZ2dlci5FVkVOVFM7IGJyZWFrO1xuICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5TQ0hFRFVMRTogdHJpZ2dlciA9IFMzVHJpZ2dlci5OT05FOyBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHRyaWdnZXIgPSBTM1RyaWdnZXIuTk9ORTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ29kZVBpcGVsaW5lU291cmNlLnMzKGJ1Y2tldCwgb3B0aW9ucy5vYmplY3RLZXksIHsgdHJpZ2dlciB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgR2l0SHViIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUdpdEh1YlNvdXJjZSgpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRHaXRIdWJPcHRpb25zKCk7XG5cbiAgICBjb25zdCBhdXRoZW50aWNhdGlvbiA9IG9wdGlvbnMudG9rZW5cbiAgICAgID8gKHR5cGVvZiBvcHRpb25zLnRva2VuID09PSAnc3RyaW5nJyA/IFNlY3JldFZhbHVlLnVuc2FmZVBsYWluVGV4dChvcHRpb25zLnRva2VuKSA6IG9wdGlvbnMudG9rZW4pXG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIHJldHVybiBDb2RlUGlwZWxpbmVTb3VyY2UuZ2l0SHViKG9wdGlvbnMucmVwbywgb3B0aW9ucy5icmFuY2gsIHtcbiAgICAgIHRyaWdnZXI6IG9wdGlvbnMudHJpZ2dlciA9PT0gVHJpZ2dlclR5cGUuQVVUTyA/IEdpdEh1YlRyaWdnZXIuUE9MTCA6IEdpdEh1YlRyaWdnZXIuTk9ORSxcbiAgICAgIGF1dGhlbnRpY2F0aW9uLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvZGVTdGFyU291cmNlKCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvZGVTdGFyT3B0aW9ucygpO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5jb25uZWN0aW9uKG9wdGlvbnMucmVwbywgb3B0aW9ucy5icmFuY2gsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IHVud3JhcFNlY3JldChvcHRpb25zLmNvbm5lY3Rpb25Bcm4pLFxuICAgICAgdHJpZ2dlck9uUHVzaDogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPLFxuICAgICAgY29kZUJ1aWxkQ2xvbmVPdXRwdXQ6IG9wdGlvbnMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENvZGVDb21taXQgc291cmNlIGZvciB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQ29kZUNvbW1pdFNvdXJjZShpZDogVW5pcXVlSWQpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb2RlQ29tbWl0T3B0aW9ucygpO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZnJvbVJlcG9zaXRvcnlOYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6cmVwbycpLFxuICAgICAgb3B0aW9ucy5yZXBvc2l0b3J5TmFtZSxcbiAgICApO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5jb2RlQ29tbWl0KHJlcG9zaXRvcnksIG9wdGlvbnMuYnJhbmNoID8/ICdtYWluJywge1xuICAgICAgdHJpZ2dlcjogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gQ29kZUNvbW1pdFRyaWdnZXIuRVZFTlRTIDogQ29kZUNvbW1pdFRyaWdnZXIuTk9ORSxcbiAgICB9KTtcbiAgfVxufVxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmUvc291cmNlLWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0NBQStDO0FBQy9DLHNDQUFzQztBQUV0QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUd2QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQW1CLE1BQU0sMkJBQTJCLENBQUM7QUFFekUsTUFBTSxHQUFHLEdBQUcsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFFM0Msc0ZBQXNGO0FBQ3RGLE1BQU0sbUJBQW1CLEdBQUcsa0NBQWtDLENBQUM7QUFDL0QsNERBQTREO0FBQzVELE1BQU0sMEJBQTBCLEdBQUcsaUJBQWlCLENBQUM7QUFFckQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBTSxPQUFPLGFBQWE7SUFFTDtJQUNBO0lBRm5CLFlBQ21CLEtBQWdCLEVBQ2hCLE1BQTZCO1FBRDdCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFDaEIsV0FBTSxHQUFOLE1BQU0sQ0FBdUI7SUFDN0MsQ0FB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QUUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQzFCLE9BQU8sQ0FBQyxjQUFjLENBQ3ZCLENBQUM7UUFFRixPQUFPLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLEVBQUU7WUFDekUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPLEtBQUssV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJO1NBQ2xHLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBjcmVhdGVMb2dnZXIgfSBmcm9tICdAcGlwZWxpbmUtYnVpbGRlci9hcGktY29yZSc7XG5pbXBvcnQgeyBTZWNyZXRWYWx1ZSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IFJlcG9zaXRvcnkgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQgeyBDb2RlQ29tbWl0VHJpZ2dlciwgR2l0SHViVHJpZ2dlciwgUzNUcmlnZ2VyIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZS1hY3Rpb25zJztcbmltcG9ydCB7IEJ1Y2tldCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgeyBDb2RlUGlwZWxpbmVTb3VyY2UgfSBmcm9tICdhd3MtY2RrLWxpYi9waXBlbGluZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgdHlwZSB7IFBpcGVsaW5lQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vcGlwZWxpbmUtY29uZmlndXJhdGlvbi5qcyc7XG5pbXBvcnQgdHlwZSB7IEdpdEh1Yk9wdGlvbnMgfSBmcm9tICcuL3NvdXJjZS10eXBlcy5qcyc7XG5pbXBvcnQgeyBVbmlxdWVJZCB9IGZyb20gJy4uL2NvcmUvaWQtZ2VuZXJhdG9yLmpzJztcbmltcG9ydCB7IHVud3JhcFNlY3JldCB9IGZyb20gJy4uL2NvcmUvcGlwZWxpbmUtaGVscGVycy5qcyc7XG5pbXBvcnQgeyBUcmlnZ2VyVHlwZSwgdHlwZSBTb3VyY2VUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbmNvbnN0IGxvZyA9IGNyZWF0ZUxvZ2dlcignc291cmNlLWJ1aWxkZXInKTtcblxuLyoqIEEgU2VjcmV0cyBNYW5hZ2VyIEFSTiAoYGFybjphd3M6c2VjcmV0c21hbmFnZXI6Li4uYCwgaW5jbC4gcGFydGl0aW9uIHZhcmlhbnRzKS4gKi9cbmNvbnN0IFNFQ1JFVFNfTUFOQUdFUl9BUk4gPSAvXmFybjphd3NbYS16LV0qOnNlY3JldHNtYW5hZ2VyOi9pO1xuLyoqIEEgYHNlY3JldHNtYW5hZ2VyOjxzZWNyZXQtbmFtZT5gIHNob3J0aGFuZCByZWZlcmVuY2UuICovXG5jb25zdCBTRUNSRVRTX01BTkFHRVJfUkVGX1BSRUZJWCA9ICdzZWNyZXRzbWFuYWdlcjonO1xuXG4vKipcbiAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiB0aGUgcGlwZWxpbmUgY29uZmlndXJhdGlvbi5cbiAqXG4gKiBTdXBwb3J0cyBTMywgR2l0SHViLCBDb2RlU3RhciBjb25uZWN0aW9uLCBhbmQgQ29kZUNvbW1pdCBzb3VyY2VzLlxuICpcbiAqICoqTm90ZSBvbiBTQ0hFRFVMRSB0cmlnZ2VyczoqKiBTY2hlZHVsZWQgcGlwZWxpbmVzIHJlcXVpcmUgYW4gRXZlbnRCcmlkZ2UgcnVsZVxuICogdGhhdCBzdGFydHMgdGhlIHBpcGVsaW5lIG9uIGEgY3JvbiBzY2hlZHVsZS4gVGhlIHNvdXJjZSB0cmlnZ2VyIGlzIHNldCB0byBOT05FXG4gKiAobm8gcG9sbGluZy93ZWJob29rKS4gVGhlIEV2ZW50QnJpZGdlIHJ1bGUgbXVzdCBiZSBjcmVhdGVkIHNlcGFyYXRlbHkgYXMgYVxuICogcGlwZWxpbmUtbGV2ZWwgY29uc3RydWN0LCBub3QgYXQgdGhlIHNvdXJjZSBsZXZlbC4gVGhlIGBzY2hlZHVsZWAgZmllbGQgb25cbiAqIHNvdXJjZSBvcHRpb25zIGNhcHR1cmVzIHRoZSBjcm9uIGV4cHJlc3Npb24gZm9yIEFQSS9mcm9udGVuZCB1c2UsIGJ1dCB0aGVcbiAqIGFjdHVhbCBFdmVudEJyaWRnZSBydWxlIGNyZWF0aW9uIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQgaW4gdGhpcyBidWlsZGVyLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2VCdWlsZGVyID0gbmV3IFNvdXJjZUJ1aWxkZXIodGhpcywgY29uZmlnKTtcbiAqIGNvbnN0IHNvdXJjZSA9IHNvdXJjZUJ1aWxkZXIuY3JlYXRlKHVuaXF1ZUlkKTtcbiAqIGBgYFxuICovXG5leHBvcnQgY2xhc3MgU291cmNlQnVpbGRlciB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NvcGU6IENvbnN0cnVjdCxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZzogUGlwZWxpbmVDb25maWd1cmF0aW9uLFxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGFwcHJvcHJpYXRlIENvZGVQaXBlbGluZVNvdXJjZSBiYXNlZCBvbiBzb3VyY2UgdHlwZVxuICAgKi9cbiAgY3JlYXRlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgc3dpdGNoICh0aGlzLmNvbmZpZy5zb3VyY2UudHlwZSkge1xuICAgICAgY2FzZSAnczMnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVTM1NvdXJjZShpZCk7XG4gICAgICBjYXNlICdnaXRodWInOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVHaXRIdWJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVzdGFyJzpcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlQ29kZVN0YXJTb3VyY2UoKTtcbiAgICAgIGNhc2UgJ2NvZGVjb21taXQnOlxuICAgICAgICByZXR1cm4gdGhpcy5jcmVhdGVDb2RlQ29tbWl0U291cmNlKGlkKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gdGhpcy5jb25maWcuc291cmNlO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHNvdXJjZSB0eXBlOiAkeyhfZXhoYXVzdGl2ZSBhcyBTb3VyY2VUeXBlKS50eXBlfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIFMzIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZVMzU291cmNlKGlkOiBVbmlxdWVJZCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldFMzT3B0aW9ucygpO1xuXG4gICAgY29uc3QgYnVja2V0ID0gQnVja2V0LmZyb21CdWNrZXROYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6YnVja2V0JyksXG4gICAgICBvcHRpb25zLmJ1Y2tldE5hbWUsXG4gICAgKTtcblxuICAgIGxldCB0cmlnZ2VyOiBTM1RyaWdnZXI7XG4gICAgc3dpdGNoIChvcHRpb25zLnRyaWdnZXIpIHtcbiAgICAgIGNhc2UgVHJpZ2dlclR5cGUuQVVUTzogdHJpZ2dlciA9IFMzVHJpZ2dlci5FVkVOVFM7IGJyZWFrO1xuICAgICAgY2FzZSBUcmlnZ2VyVHlwZS5TQ0hFRFVMRTogdHJpZ2dlciA9IFMzVHJpZ2dlci5OT05FOyBicmVhaztcbiAgICAgIGRlZmF1bHQ6IHRyaWdnZXIgPSBTM1RyaWdnZXIuTk9ORTtcbiAgICB9XG5cbiAgICByZXR1cm4gQ29kZVBpcGVsaW5lU291cmNlLnMzKGJ1Y2tldCwgb3B0aW9ucy5vYmplY3RLZXksIHsgdHJpZ2dlciB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgR2l0SHViIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUdpdEh1YlNvdXJjZSgpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRHaXRIdWJPcHRpb25zKCk7XG5cbiAgICByZXR1cm4gQ29kZVBpcGVsaW5lU291cmNlLmdpdEh1YihvcHRpb25zLnJlcG8sIG9wdGlvbnMuYnJhbmNoLCB7XG4gICAgICB0cmlnZ2VyOiBvcHRpb25zLnRyaWdnZXIgPT09IFRyaWdnZXJUeXBlLkFVVE8gPyBHaXRIdWJUcmlnZ2VyLlBPTEwgOiBHaXRIdWJUcmlnZ2VyLk5PTkUsXG4gICAgICBhdXRoZW50aWNhdGlvbjogdGhpcy5yZXNvbHZlR2l0SHViQXV0aGVudGljYXRpb24ob3B0aW9ucyksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZSB0aGUgR2l0SHViIGF1dGhlbnRpY2F0aW9uIHRva2VuIGludG8gYSB7QGxpbmsgU2VjcmV0VmFsdWV9IHdpdGhvdXRcbiAgICogbGVha2luZyB0aGUgdG9rZW4gdmFsdWUgaW50byB0aGUgc3ludGhlc2l6ZWQgdGVtcGxhdGUuXG4gICAqXG4gICAqIC0gYHVuZGVmaW5lZGAgdG9rZW4g4oaSIG5vIGF1dGhlbnRpY2F0aW9uIChDREsgZGVmYXVsdCkuXG4gICAqIC0gQSBgU2VjcmV0VmFsdWVgIOKGkiBwYXNzZWQgdGhyb3VnaCAoYWxyZWFkeSBhIHJlZmVyZW5jZSwgbmV2ZXIgcGxhaW50ZXh0KS5cbiAgICogLSBBIFNlY3JldHMgTWFuYWdlciBBUk4gb3IgYHNlY3JldHNtYW5hZ2VyOjxuYW1lPmAgc3RyaW5nIOKGkiByZXNvbHZlZCB2aWFcbiAgICogICBgU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXJgLCBzbyBvbmx5IHRoZSByZWZlcmVuY2UgbGFuZHMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKiAtIEEgZ2VudWluZSByYXcgcGxhaW50ZXh0IHRva2VuIOKGkiByZWplY3RlZCBieSBkZWZhdWx0IChpdCB3b3VsZCBiZSBiYWtlZCBhc1xuICAgKiAgIHBsYWludGV4dCBpbnRvIENsb3VkRm9ybWF0aW9uL0NESyBjb250ZXh0KS4gT25seSB3aGVuXG4gICAqICAgYGFsbG93UGxhaW5UZXh0VG9rZW5gIGlzIGV4cGxpY2l0bHkgc2V0IGlzIGl0IGVtYmVkZGVkIHZpYVxuICAgKiAgIGBTZWNyZXRWYWx1ZS51bnNhZmVQbGFpblRleHRgLCBhbmQgYSBsb3VkIHdhcm5pbmcgaXMgZW1pdHRlZC5cbiAgICovXG4gIHByaXZhdGUgcmVzb2x2ZUdpdEh1YkF1dGhlbnRpY2F0aW9uKG9wdGlvbnM6IEdpdEh1Yk9wdGlvbnMpOiBTZWNyZXRWYWx1ZSB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgdG9rZW4gPSBvcHRpb25zLnRva2VuO1xuICAgIGlmICh0b2tlbiA9PT0gdW5kZWZpbmVkKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgLy8gQSBTZWNyZXRWYWx1ZSBpcyBhbHJlYWR5IGEgcmVmZXJlbmNlIChlLmcuIFNlY3JldHMgTWFuYWdlcikg4oCUIG5ldmVyIHBsYWludGV4dC5cbiAgICBpZiAodHlwZW9mIHRva2VuICE9PSAnc3RyaW5nJykgcmV0dXJuIHRva2VuO1xuXG4gICAgLy8gQSBzdHJpbmcgdGhhdCBuYW1lcyBhIFNlY3JldHMgTWFuYWdlciBzZWNyZXQgaXMgcmVzb2x2ZWQgdG8gYSByZWZlcmVuY2Ugc29cbiAgICAvLyBvbmx5IHRoZSBwb2ludGVyIOKAlCBub3QgdGhlIHRva2VuIOKAlCBpcyB3cml0dGVuIHRvIHRoZSB0ZW1wbGF0ZSAvIENESyBjb250ZXh0LlxuICAgIGlmIChTRUNSRVRTX01BTkFHRVJfQVJOLnRlc3QodG9rZW4pKSB7XG4gICAgICByZXR1cm4gU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIodG9rZW4pO1xuICAgIH1cbiAgICBpZiAodG9rZW4udG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKFNFQ1JFVFNfTUFOQUdFUl9SRUZfUFJFRklYKSkge1xuICAgICAgcmV0dXJuIFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKHRva2VuLnNsaWNlKFNFQ1JFVFNfTUFOQUdFUl9SRUZfUFJFRklYLmxlbmd0aCkpO1xuICAgIH1cblxuICAgIC8vIEdlbnVpbmUgcmF3IHBsYWludGV4dCB0b2tlbiDigJQgdGhpcyBpcyB0aGUgZXhwb3N1cmUuIFJlamVjdCBieSBkZWZhdWx0IGFuZFxuICAgIC8vIHBvaW50IHRoZSBjYWxsZXIgYXQgYSBzZWNyZXQgcmVmZXJlbmNlIG9yIGEgQ29kZVN0YXIgY29ubmVjdGlvbi5cbiAgICBpZiAoIW9wdGlvbnMuYWxsb3dQbGFpblRleHRUb2tlbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnR2l0SHViIHNvdXJjZSBgdG9rZW5gIGlzIGEgcmF3IHBsYWludGV4dCB2YWx1ZSwgd2hpY2ggd291bGQgYmUgYmFrZWQgaW50byB0aGUgJyArXG4gICAgICAgICdzeW50aGVzaXplZCBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZSAoYW5kIENESyBjb250ZXh0IC8gc3RhY2sgc3RhdGUpLiBQcm92aWRlIGEgJyArXG4gICAgICAgICdTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIGluc3RlYWQg4oCUIGFuIGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmAgQVJOLCBhICcgK1xuICAgICAgICAnYHNlY3JldHNtYW5hZ2VyOjxzZWNyZXQtbmFtZT5gIHN0cmluZywgb3IgYSBgU2VjcmV0VmFsdWUuc2VjcmV0c01hbmFnZXIoLi4uKWAg4oCUIG9yICcgK1xuICAgICAgICAncHJlZmVyIGEgQ29kZVN0YXIgY29ubmVjdGlvbiAoYHR5cGU6IFwiY29kZXN0YXJcImApLiBUbyBpbnRlbnRpb25hbGx5IGVtYmVkIHRoZSB0b2tlbiAnICtcbiAgICAgICAgJ2luIHBsYWludGV4dCwgc2V0IGBhbGxvd1BsYWluVGV4dFRva2VuOiB0cnVlYC4nLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBsb2cud2FybihcbiAgICAgICdHaXRIdWIgc291cmNlIGB0b2tlbmAgaXMgYmVpbmcgZW1iZWRkZWQgYXMgUExBSU5URVhUIGluIHRoZSBzeW50aGVzaXplZCBDbG91ZEZvcm1hdGlvbiAnICtcbiAgICAgICd0ZW1wbGF0ZSBiZWNhdXNlIGBhbGxvd1BsYWluVGV4dFRva2VuYCBpcyBzZXQuIEFueW9uZSB3aXRoIHRlbXBsYXRlLCBDREsgY29udGV4dCwgb3IgJyArXG4gICAgICAnc3RhY2sgc3RhdGUgYWNjZXNzIGNhbiByZWFkIHRoaXMgdG9rZW4uIFVzZSBhIFNlY3JldHMgTWFuYWdlciByZWZlcmVuY2Ugb3IgYSBDb2RlU3RhciAnICtcbiAgICAgICdjb25uZWN0aW9uIGluc3RlYWQuJyxcbiAgICApO1xuICAgIHJldHVybiBTZWNyZXRWYWx1ZS51bnNhZmVQbGFpblRleHQodG9rZW4pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBmb3IgdGhlIHBpcGVsaW5lXG4gICAqL1xuICBwcml2YXRlIGNyZWF0ZUNvZGVTdGFyU291cmNlKCk6IENvZGVQaXBlbGluZVNvdXJjZSB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuY29uZmlnLmdldENvZGVTdGFyT3B0aW9ucygpO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5jb25uZWN0aW9uKG9wdGlvbnMucmVwbywgb3B0aW9ucy5icmFuY2gsIHtcbiAgICAgIGNvbm5lY3Rpb25Bcm46IHVud3JhcFNlY3JldChvcHRpb25zLmNvbm5lY3Rpb25Bcm4pLFxuICAgICAgdHJpZ2dlck9uUHVzaDogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPLFxuICAgICAgY29kZUJ1aWxkQ2xvbmVPdXRwdXQ6IG9wdGlvbnMuY29kZUJ1aWxkQ2xvbmVPdXRwdXQsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIENvZGVDb21taXQgc291cmNlIGZvciB0aGUgcGlwZWxpbmVcbiAgICovXG4gIHByaXZhdGUgY3JlYXRlQ29kZUNvbW1pdFNvdXJjZShpZDogVW5pcXVlSWQpOiBDb2RlUGlwZWxpbmVTb3VyY2Uge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmNvbmZpZy5nZXRDb2RlQ29tbWl0T3B0aW9ucygpO1xuXG4gICAgY29uc3QgcmVwb3NpdG9yeSA9IFJlcG9zaXRvcnkuZnJvbVJlcG9zaXRvcnlOYW1lKFxuICAgICAgdGhpcy5zY29wZSxcbiAgICAgIGlkLmdlbmVyYXRlKCdzb3VyY2U6cmVwbycpLFxuICAgICAgb3B0aW9ucy5yZXBvc2l0b3J5TmFtZSxcbiAgICApO1xuXG4gICAgcmV0dXJuIENvZGVQaXBlbGluZVNvdXJjZS5jb2RlQ29tbWl0KHJlcG9zaXRvcnksIG9wdGlvbnMuYnJhbmNoID8/ICdtYWluJywge1xuICAgICAgdHJpZ2dlcjogb3B0aW9ucy50cmlnZ2VyID09PSBUcmlnZ2VyVHlwZS5BVVRPID8gQ29kZUNvbW1pdFRyaWdnZXIuRVZFTlRTIDogQ29kZUNvbW1pdFRyaWdnZXIuTk9ORSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -98,10 +98,30 @@ export interface GitHubOptions {
98
98
  */
99
99
  readonly branch?: string;
100
100
  /**
101
- * GitHub personal access token or SecretValue
102
- * If not provided, uses default GitHub authentication
101
+ * GitHub authentication token.
102
+ *
103
+ * Prefer a Secrets Manager reference so the token value never lands in the
104
+ * synthesized CloudFormation template / CDK context. Accepted forms:
105
+ * - a `SecretValue` (e.g. `SecretValue.secretsManager(...)`),
106
+ * - a Secrets Manager ARN string (`arn:aws:secretsmanager:...`),
107
+ * - a `secretsmanager:<secret-name>` shorthand string.
108
+ *
109
+ * A genuine raw plaintext token (e.g. a `ghp_...` PAT) is rejected by default,
110
+ * because baking it in would expose it to anyone with template/state access —
111
+ * set {@link allowPlainTextToken} to intentionally embed it.
112
+ *
113
+ * If not provided, uses default GitHub authentication. Consider a CodeStar
114
+ * connection (`type: 'codestar'`) as the modern, credential-free path.
103
115
  */
104
116
  readonly token?: SecretValue | string;
117
+ /**
118
+ * Opt-in escape hatch to embed a raw plaintext {@link token} directly in the
119
+ * synthesized template. Insecure — the token becomes readable by anyone with
120
+ * template, CDK context, or stack state access. Leave unset (default) to force
121
+ * a Secrets Manager reference instead.
122
+ * @default false
123
+ */
124
+ readonly allowPlainTextToken?: boolean;
105
125
  /**
106
126
  * Pipeline trigger behavior
107
127
  * @default TriggerType.NONE
@@ -1,4 +1,4 @@
1
1
  // Copyright 2026 Pipeline Builder Contributors
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  export {};
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3NvdXJjZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogUzMgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IFMzU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnczMnLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgYnVja2V0TmFtZTogJ215LXNvdXJjZS1idWNrZXQnLFxuICogICAgIG9iamVjdEtleTogJ3NvdXJjZS56aXAnLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ3MzJztcbiAgcmVhZG9ubHkgb3B0aW9uczogUzNPcHRpb25zO1xufVxuXG4vKipcbiAqIEdpdEh1YiBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgQ29kZVBpcGVsaW5lXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZTogR2l0SHViU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnZ2l0aHViJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZS5BVVRPXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnZ2l0aHViJztcbiAgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlU3RhclNvdXJjZUNvbmZpZyA9IHtcbiAqICAgdHlwZTogJ2NvZGVzdGFyJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICBjb25uZWN0aW9uQXJuOiAnYXJuOmF3czpjb2Rlc3Rhci1jb25uZWN0aW9uczouLi4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdGFyU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2NvZGVzdGFyJztcbiAgcmVhZG9ubHkgb3B0aW9uczogQ29kZVN0YXJPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUzMgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZVxuICAgKiBAZXhhbXBsZSAnbXktcGlwZWxpbmUtc291cmNlLWJ1Y2tldCdcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT2JqZWN0IGtleSAocGF0aCkgdG8gdGhlIHNvdXJjZSBhcmNoaXZlIHdpdGhpbiB0aGUgYnVja2V0XG4gICAqIEBkZWZhdWx0ICdzb3VyY2UuemlwJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB0cmlnZ2VyIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IFRyaWdnZXJUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyVHlwZTtcblxuICAvKipcbiAgICogQ3JvbiBleHByZXNzaW9uIGZvciBzY2hlZHVsZWQgdHJpZ2dlciAoZS5nLiwgJ2Nyb24oMCAwICogKiA/ICopJyBmb3IgZGFpbHkpLlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0cmlnZ2VyIGlzIFNDSEVEVUxFLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBHaXRIdWIgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXRIdWIgcmVwb3NpdG9yeSBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHBlcnNvbmFsIGFjY2VzcyB0b2tlbiBvciBTZWNyZXRWYWx1ZVxuICAgKiBJZiBub3QgcHJvdmlkZWQsIHVzZXMgZGVmYXVsdCBHaXRIdWIgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHRva2VuPzogU2VjcmV0VmFsdWUgfCBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBDcm9uIGV4cHJlc3Npb24gZm9yIHNjaGVkdWxlZCB0cmlnZ2VyIChlLmcuLCAnY3JvbigwIDAgKiAqID8gKiknIGZvciBkYWlseSkuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRyaWdnZXIgaXMgU0NIRURVTEUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIENvZGVTdGFyIGNvbm5lY3Rpb24gcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0YXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlcG9zaXRvcnkgaWRlbnRpZmllciBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHRvIHVzZVxuICAgKiBDYW4gYmUgYSBzdHJpbmcgQVJOIG9yIFNlY3JldFZhbHVlXG4gICAqIEBleGFtcGxlICdhcm46YXdzOmNvZGVzdGFyLWNvbm5lY3Rpb25zOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y29ubmVjdGlvbi9hYmMxMjMnXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG5cbiAgLyoqXG4gICAqIENyb24gZXhwcmVzc2lvbiBmb3Igc2NoZWR1bGVkIHRyaWdnZXIgKGUuZy4sICdjcm9uKDAgMCAqICogPyAqKScgZm9yIGRhaWx5KS5cbiAgICogT25seSB1c2VkIHdoZW4gdHJpZ2dlciBpcyBTQ0hFRFVMRS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBmdWxsIGNsb25lIGNhcGFiaWxpdHkgaW4gQ29kZUJ1aWxkXG4gICAqIFdoZW4gdHJ1ZSwgQ29kZUJ1aWxkIGNhbiBwZXJmb3JtIGdpdCBvcGVyYXRpb25zIG9uIHRoZSBmdWxsIHJlcG9zaXRvcnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb2RlQ29tbWl0IHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlQ29tbWl0U291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnY29kZWNvbW1pdCcsXG4gKiAgIG9wdGlvbnM6IHtcbiAqICAgICByZXBvc2l0b3J5TmFtZTogJ215LXJlcG8nLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb21taXRTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnY29kZWNvbW1pdCc7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvZGVDb21taXRPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQ29kZUNvbW1pdCBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29tbWl0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBDb2RlQ29tbWl0IHJlcG9zaXRvcnlcbiAgICogQGV4YW1wbGUgJ215LXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdHJhY2tcbiAgICogQGRlZmF1bHQgJ21haW4nXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xufVxuIl19
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLXR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lL3NvdXJjZS10eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB0eXBlIHsgU2VjcmV0VmFsdWUgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IFRyaWdnZXJUeXBlIH0gZnJvbSAnLi4vY29yZS9waXBlbGluZS10eXBlcy5qcyc7XG5cbi8qKlxuICogUzMgc291cmNlIGNvbmZpZ3VyYXRpb24gZm9yIENvZGVQaXBlbGluZVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBjb25zdCBzb3VyY2U6IFMzU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnczMnLFxuICogICBvcHRpb25zOiB7XG4gKiAgICAgYnVja2V0TmFtZTogJ215LXNvdXJjZS1idWNrZXQnLFxuICogICAgIG9iamVjdEtleTogJ3NvdXJjZS56aXAnLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ3MzJztcbiAgcmVhZG9ubHkgb3B0aW9uczogUzNPcHRpb25zO1xufVxuXG4vKipcbiAqIEdpdEh1YiBzb3VyY2UgY29uZmlndXJhdGlvbiBmb3IgQ29kZVBpcGVsaW5lXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIGNvbnN0IHNvdXJjZTogR2l0SHViU291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnZ2l0aHViJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICB0cmlnZ2VyOiBUcmlnZ2VyVHlwZS5BVVRPXG4gKiAgIH1cbiAqIH07XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRIdWJTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnZ2l0aHViJztcbiAgcmVhZG9ubHkgb3B0aW9uczogR2l0SHViT3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb2RlU3RhciBjb25uZWN0aW9uIHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlU3RhclNvdXJjZUNvbmZpZyA9IHtcbiAqICAgdHlwZTogJ2NvZGVzdGFyJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIHJlcG86ICdvd25lci9yZXBvc2l0b3J5JyxcbiAqICAgICBicmFuY2g6ICdtYWluJyxcbiAqICAgICBjb25uZWN0aW9uQXJuOiAnYXJuOmF3czpjb2Rlc3Rhci1jb25uZWN0aW9uczouLi4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVTdGFyU291cmNlQ29uZmlnIHtcbiAgcmVhZG9ubHkgdHlwZTogJ2NvZGVzdGFyJztcbiAgcmVhZG9ubHkgb3B0aW9uczogQ29kZVN0YXJPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgUzMgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNPcHRpb25zIHtcbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIFMzIGJ1Y2tldCBjb250YWluaW5nIHRoZSBzb3VyY2UgY29kZVxuICAgKiBAZXhhbXBsZSAnbXktcGlwZWxpbmUtc291cmNlLWJ1Y2tldCdcbiAgICovXG4gIHJlYWRvbmx5IGJ1Y2tldE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT2JqZWN0IGtleSAocGF0aCkgdG8gdGhlIHNvdXJjZSBhcmNoaXZlIHdpdGhpbiB0aGUgYnVja2V0XG4gICAqIEBkZWZhdWx0ICdzb3VyY2UuemlwJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0S2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQaXBlbGluZSB0cmlnZ2VyIGJlaGF2aW9yXG4gICAqIEBkZWZhdWx0IFRyaWdnZXJUeXBlLk5PTkVcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXI/OiBUcmlnZ2VyVHlwZTtcblxuICAvKipcbiAgICogQ3JvbiBleHByZXNzaW9uIGZvciBzY2hlZHVsZWQgdHJpZ2dlciAoZS5nLiwgJ2Nyb24oMCAwICogKiA/ICopJyBmb3IgZGFpbHkpLlxuICAgKiBPbmx5IHVzZWQgd2hlbiB0cmlnZ2VyIGlzIFNDSEVEVUxFLlxuICAgKi9cbiAgcmVhZG9ubHkgc2NoZWR1bGU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBHaXRIdWIgcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0SHViT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBHaXRIdWIgcmVwb3NpdG9yeSBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGF1dGhlbnRpY2F0aW9uIHRva2VuLlxuICAgKlxuICAgKiBQcmVmZXIgYSBTZWNyZXRzIE1hbmFnZXIgcmVmZXJlbmNlIHNvIHRoZSB0b2tlbiB2YWx1ZSBuZXZlciBsYW5kcyBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgQ2xvdWRGb3JtYXRpb24gdGVtcGxhdGUgLyBDREsgY29udGV4dC4gQWNjZXB0ZWQgZm9ybXM6XG4gICAqICAgLSBhIGBTZWNyZXRWYWx1ZWAgKGUuZy4gYFNlY3JldFZhbHVlLnNlY3JldHNNYW5hZ2VyKC4uLilgKSxcbiAgICogICAtIGEgU2VjcmV0cyBNYW5hZ2VyIEFSTiBzdHJpbmcgKGBhcm46YXdzOnNlY3JldHNtYW5hZ2VyOi4uLmApLFxuICAgKiAgIC0gYSBgc2VjcmV0c21hbmFnZXI6PHNlY3JldC1uYW1lPmAgc2hvcnRoYW5kIHN0cmluZy5cbiAgICpcbiAgICogQSBnZW51aW5lIHJhdyBwbGFpbnRleHQgdG9rZW4gKGUuZy4gYSBgZ2hwXy4uLmAgUEFUKSBpcyByZWplY3RlZCBieSBkZWZhdWx0LFxuICAgKiBiZWNhdXNlIGJha2luZyBpdCBpbiB3b3VsZCBleHBvc2UgaXQgdG8gYW55b25lIHdpdGggdGVtcGxhdGUvc3RhdGUgYWNjZXNzIOKAlFxuICAgKiBzZXQge0BsaW5rIGFsbG93UGxhaW5UZXh0VG9rZW59IHRvIGludGVudGlvbmFsbHkgZW1iZWQgaXQuXG4gICAqXG4gICAqIElmIG5vdCBwcm92aWRlZCwgdXNlcyBkZWZhdWx0IEdpdEh1YiBhdXRoZW50aWNhdGlvbi4gQ29uc2lkZXIgYSBDb2RlU3RhclxuICAgKiBjb25uZWN0aW9uIChgdHlwZTogJ2NvZGVzdGFyJ2ApIGFzIHRoZSBtb2Rlcm4sIGNyZWRlbnRpYWwtZnJlZSBwYXRoLlxuICAgKi9cbiAgcmVhZG9ubHkgdG9rZW4/OiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogT3B0LWluIGVzY2FwZSBoYXRjaCB0byBlbWJlZCBhIHJhdyBwbGFpbnRleHQge0BsaW5rIHRva2VufSBkaXJlY3RseSBpbiB0aGVcbiAgICogc3ludGhlc2l6ZWQgdGVtcGxhdGUuIEluc2VjdXJlIOKAlCB0aGUgdG9rZW4gYmVjb21lcyByZWFkYWJsZSBieSBhbnlvbmUgd2l0aFxuICAgKiB0ZW1wbGF0ZSwgQ0RLIGNvbnRleHQsIG9yIHN0YWNrIHN0YXRlIGFjY2Vzcy4gTGVhdmUgdW5zZXQgKGRlZmF1bHQpIHRvIGZvcmNlXG4gICAqIGEgU2VjcmV0cyBNYW5hZ2VyIHJlZmVyZW5jZSBpbnN0ZWFkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dQbGFpblRleHRUb2tlbj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xuXG4gIC8qKlxuICAgKiBDcm9uIGV4cHJlc3Npb24gZm9yIHNjaGVkdWxlZCB0cmlnZ2VyIChlLmcuLCAnY3JvbigwIDAgKiAqID8gKiknIGZvciBkYWlseSkuXG4gICAqIE9ubHkgdXNlZCB3aGVuIHRyaWdnZXIgaXMgU0NIRURVTEUuXG4gICAqL1xuICByZWFkb25seSBzY2hlZHVsZT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIENvZGVTdGFyIGNvbm5lY3Rpb24gcGlwZWxpbmUgc291cmNlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29kZVN0YXJPcHRpb25zIHtcbiAgLyoqXG4gICAqIFJlcG9zaXRvcnkgaWRlbnRpZmllciBpbiB0aGUgZm9ybWF0IFwib3duZXIvcmVwb1wiXG4gICAqIEBleGFtcGxlICdteW9yZy9teXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEJyYW5jaCB0byB0cmFja1xuICAgKiBAZGVmYXVsdCAnbWFpbidcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaD86IHN0cmluZztcblxuICAvKipcbiAgICogQVJOIG9mIHRoZSBDb2RlU3RhciBjb25uZWN0aW9uIHRvIHVzZVxuICAgKiBDYW4gYmUgYSBzdHJpbmcgQVJOIG9yIFNlY3JldFZhbHVlXG4gICAqIEBleGFtcGxlICdhcm46YXdzOmNvZGVzdGFyLWNvbm5lY3Rpb25zOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y29ubmVjdGlvbi9hYmMxMjMnXG4gICAqL1xuICByZWFkb25seSBjb25uZWN0aW9uQXJuOiBTZWNyZXRWYWx1ZSB8IHN0cmluZztcblxuICAvKipcbiAgICogUGlwZWxpbmUgdHJpZ2dlciBiZWhhdmlvclxuICAgKiBAZGVmYXVsdCBUcmlnZ2VyVHlwZS5OT05FXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2VyPzogVHJpZ2dlclR5cGU7XG5cbiAgLyoqXG4gICAqIENyb24gZXhwcmVzc2lvbiBmb3Igc2NoZWR1bGVkIHRyaWdnZXIgKGUuZy4sICdjcm9uKDAgMCAqICogPyAqKScgZm9yIGRhaWx5KS5cbiAgICogT25seSB1c2VkIHdoZW4gdHJpZ2dlciBpcyBTQ0hFRFVMRS5cbiAgICovXG4gIHJlYWRvbmx5IHNjaGVkdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGVuYWJsZSBmdWxsIGNsb25lIGNhcGFiaWxpdHkgaW4gQ29kZUJ1aWxkXG4gICAqIFdoZW4gdHJ1ZSwgQ29kZUJ1aWxkIGNhbiBwZXJmb3JtIGdpdCBvcGVyYXRpb25zIG9uIHRoZSBmdWxsIHJlcG9zaXRvcnlcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvZGVCdWlsZENsb25lT3V0cHV0PzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBDb2RlQ29tbWl0IHNvdXJjZSBjb25maWd1cmF0aW9uIGZvciBDb2RlUGlwZWxpbmVcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHlwZXNjcmlwdFxuICogY29uc3Qgc291cmNlOiBDb2RlQ29tbWl0U291cmNlQ29uZmlnID0ge1xuICogICB0eXBlOiAnY29kZWNvbW1pdCcsXG4gKiAgIG9wdGlvbnM6IHtcbiAqICAgICByZXBvc2l0b3J5TmFtZTogJ215LXJlcG8nLFxuICogICAgIGJyYW5jaDogJ21haW4nLFxuICogICAgIHRyaWdnZXI6IFRyaWdnZXJUeXBlLkFVVE9cbiAqICAgfVxuICogfTtcbiAqIGBgYFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDb21taXRTb3VyY2VDb25maWcge1xuICByZWFkb25seSB0eXBlOiAnY29kZWNvbW1pdCc7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IENvZGVDb21taXRPcHRpb25zO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgQ29kZUNvbW1pdCBwaXBlbGluZSBzb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2RlQ29tbWl0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBOYW1lIG9mIHRoZSBDb2RlQ29tbWl0IHJlcG9zaXRvcnlcbiAgICogQGV4YW1wbGUgJ215LXJlcG8nXG4gICAqL1xuICByZWFkb25seSByZXBvc2l0b3J5TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBCcmFuY2ggdG8gdHJhY2tcbiAgICogQGRlZmF1bHQgJ21haW4nXG4gICAqL1xuICByZWFkb25seSBicmFuY2g/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBpcGVsaW5lIHRyaWdnZXIgYmVoYXZpb3JcbiAgICogQGRlZmF1bHQgVHJpZ2dlclR5cGUuTk9ORVxuICAgKi9cbiAgcmVhZG9ubHkgdHJpZ2dlcj86IFRyaWdnZXJUeXBlO1xufVxuIl19
@@ -11,6 +11,16 @@ export interface EvalError {
11
11
  /**
12
12
  * Look up a dot-separated path inside a scope object. Returns `undefined`
13
13
  * if any intermediate segment is missing or not an object.
14
+ *
15
+ * Only OWN enumerable-or-not-inherited properties are traversed: a segment is
16
+ * resolved via `Object.prototype.hasOwnProperty.call` so inherited members of
17
+ * the prototype chain (`constructor`, `toString`, `valueOf`, `hasOwnProperty`,
18
+ * the `__proto__` accessor, …) never resolve — they return `undefined` and thus
19
+ * fall through to the caller's normal unknown-path handling (a `| default:`
20
+ * fallback or a `TEMPLATE_UNKNOWN_PATH` error). Applied at every level,
21
+ * including the root segment, this also makes the scope's own top-level keys
22
+ * the effective root allow-list, so an unknown/prototype root is rejected even
23
+ * on the synth path that skips `validateTemplates`.
14
24
  */
15
25
  export declare function lookupPath(scope: Scope, path: string[]): unknown;
16
26
  /**
@@ -5,12 +5,24 @@ const RESERVED_ROOT_PATHS = new Set(['secrets']);
5
5
  /**
6
6
  * Look up a dot-separated path inside a scope object. Returns `undefined`
7
7
  * if any intermediate segment is missing or not an object.
8
+ *
9
+ * Only OWN enumerable-or-not-inherited properties are traversed: a segment is
10
+ * resolved via `Object.prototype.hasOwnProperty.call` so inherited members of
11
+ * the prototype chain (`constructor`, `toString`, `valueOf`, `hasOwnProperty`,
12
+ * the `__proto__` accessor, …) never resolve — they return `undefined` and thus
13
+ * fall through to the caller's normal unknown-path handling (a `| default:`
14
+ * fallback or a `TEMPLATE_UNKNOWN_PATH` error). Applied at every level,
15
+ * including the root segment, this also makes the scope's own top-level keys
16
+ * the effective root allow-list, so an unknown/prototype root is rejected even
17
+ * on the synth path that skips `validateTemplates`.
8
18
  */
9
19
  export function lookupPath(scope, path) {
10
20
  let cur = scope;
11
21
  for (const segment of path) {
12
22
  if (cur == null || typeof cur !== 'object')
13
23
  return undefined;
24
+ if (!Object.prototype.hasOwnProperty.call(cur, segment))
25
+ return undefined;
14
26
  cur = cur[segment];
15
27
  }
16
28
  return cur;
@@ -147,4 +159,4 @@ function makeEvalError(e) {
147
159
  err.pos = e.pos;
148
160
  return err;
149
161
  }
150
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL2V2YWx1YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQWF2RCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUVqRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsVUFBVSxDQUFDLEtBQVksRUFBRSxJQUFjO0lBQ3JELElBQUksR0FBRyxHQUFZLEtBQUssQ0FBQztJQUN6QixLQUFLLE1BQU0sT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQUUsT0FBTyxTQUFTLENBQUM7UUFDN0QsR0FBRyxHQUFJLEdBQStCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUNELE9BQU8sR0FBRyxDQUFDO0FBQ2IsQ0FBQztBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUNyQixNQUFlLEVBQ2YsS0FBWSxFQUNaLEtBQWM7SUFFZCwyRUFBMkU7SUFDM0Usd0RBQXdEO0lBQ3hELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFDLElBQUksS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzNFLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQXNDLENBQUM7UUFDM0QsTUFBTSxHQUFHLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDMUMsT0FBTyxhQUFhLENBQUMsR0FBRyxFQUFFLEdBQUcs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QUFLLENBQUM7SUFDcEIsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2xCLEdBQUcsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUNoQixPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAyNiBQaXBlbGluZSBCdWlsZGVyIENvbnRyaWJ1dG9yc1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEFwYWNoZS0yLjBcblxuaW1wb3J0IHsgRXJyb3JDb2RlIH0gZnJvbSAnQHBpcGVsaW5lLWJ1aWxkZXIvYXBpLWNvcmUnO1xuaW1wb3J0IHR5cGUgeyBDb2VyY2VLaW5kLCBTb3VyY2VQb3NpdGlvbiwgVG9rZW4gfSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5cbmV4cG9ydCB0eXBlIFNjb3BlID0gUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXZhbEVycm9yIHtcbiAgY29kZTogRXJyb3JDb2RlO1xuICBtZXNzYWdlOiBzdHJpbmc7XG4gIGZpZWxkPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuICBwb3M/OiBTb3VyY2VQb3NpdGlvbjtcbn1cblxuY29uc3QgUkVTRVJWRURfUk9PVF9QQVRIUyA9IG5ldyBTZXQoWydzZWNyZXRzJ10pO1xuXG4vKipcbiAqIExvb2sgdXAgYSBkb3Qtc2VwYXJhdGVkIHBhdGggaW5zaWRlIGEgc2NvcGUgb2JqZWN0LiBSZXR1cm5zIGB1bmRlZmluZWRgXG4gKiBpZiBhbnkgaW50ZXJtZWRpYXRlIHNlZ21lbnQgaXMgbWlzc2luZyBvciBub3QgYW4gb2JqZWN0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gbG9va3VwUGF0aChzY29wZTogU2NvcGUsIHBhdGg6IHN0cmluZ1tdKTogdW5rbm93biB7XG4gIGxldCBjdXI6IHVua25vd24gPSBzY29wZTtcbiAgZm9yIChjb25zdCBzZWdtZW50IG9mIHBhdGgpIHtcbiAgICBpZiAoY3VyID09IG51bGwgfHwgdHlwZW9mIGN1ciAhPT0gJ29iamVjdCcpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY3VyID0gKGN1ciBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilbc2VnbWVudF07XG4gIH1cbiAgcmV0dXJuIGN1cjtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGEgdG9rZW4gc3RyZWFtIGFnYWluc3QgYSBzY29wZS4gUmV0dXJucyB0aGUgcmVzb2x2ZWQgc3RyaW5nLlxuICogVGhyb3dzIGBFdmFsRXJyb3JgIHdoZW4gYW4gdW5yZXNvbHZlZCBwYXRoIGhhcyBubyBkZWZhdWx0IGZpbHRlci5cbiAqXG4gKiBDb2VyY2lvbiBmaWx0ZXJzIChgfCBudW1iZXJgLCBgfCBib29sYCwgYHwganNvbmApIG9ubHkgdGFrZSBlZmZlY3RcbiAqIHdoZW4gdGhlIHRlbXBsYXRlIGV4cHJlc3Npb24gaXMgdGhlIGVudGlyZSBmaWVsZCDigJQgZS5nLlxuICogYHJlcGxpY2FzOiBcInt7IHZhcnMuY291bnQgfCBudW1iZXIgfX1cImAgeWllbGRzIGAzYCAobnVtYmVyKSB3aGlsZVxuICogYHJlcGxpY2FzOiBcImNvdW50PXt7IHZhcnMuY291bnQgfCBudW1iZXIgfX1cImAgeWllbGRzIGBcImNvdW50PTNcImBcbiAqIChzdHJpbmcsIGJlY2F1c2UgdGhlIHRlbXBsYXRlIGlzIGVtYmVkZGVkIGluIHN1cnJvdW5kaW5nIGxpdGVyYWxzKS5cbiAqIE1peGVkLWxpdGVyYWwgZmllbGRzIGFsd2F5cyByZXR1cm4gYSBzdHJpbmcuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlKFxuICB0b2tlbnM6IFRva2VuW10sXG4gIHNjb3BlOiBTY29wZSxcbiAgZmllbGQ/OiBzdHJpbmcsXG4pOiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVua25vd25bXSB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+IHtcbiAgLy8gV2hvbGUtZmllbGQgY29lcmNpb24gc2hvcnRjdXQ6IG9ubHkgYXBwbHkgY29lcmNpb24gd2hlbiB0aGUgZW50aXJlIGZpZWxkXG4gIC8vIGlzIGEgc2luZ2xlIGV4cHJlc3Npb24gKG5vIHN1cnJvdW5kaW5nIGxpdGVyYWwgdGV4dCkuXG4gIGlmICh0b2tlbnMubGVuZ3RoID09PSAxICYmIHRva2Vuc1swXSEua2luZCA9PT0gJ2V4cHInICYmIHRva2Vuc1swXSEuY29lcmNlKSB7XG4gICAgY29uc3QgdG9rID0gdG9rZW5zWzBdISBhcyBFeHRyYWN0PFRva2VuLCB7IGtpbmQ6ICdleHByJyB9PjtcbiAgICBjb25zdCByYXcgPSByZXNvbHZlT25lKHRvaywgc2NvcGUsIGZpZWxkKTtcbiAgICByZXR1cm4gYXBwbHlDb2VyY2lvbihyYXcsIHRvay5jb2VyY2UhLCB0b2ssIGZpZWxkKTtcbiAgfVxuXG4gIGNvbnN0IHBhcnRzOiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHRvayBvZiB0b2tlbnMpIHtcbiAgICBpZiAodG9rLmtpbmQgPT09ICdsaXRlcmFsJykge1xuICAgICAgcGFydHMucHVzaCh0b2sudmFsdWUpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuICAgIGNvbnN0IHJhdyA9IHJlc29sdmVPbmUodG9rLCBzY29wZSwgZmllbGQpO1xuICAgIHBhcnRzLnB1c2godHlwZW9mIHJhdyA9PT0gJ3N0cmluZycgPyByYXcgOiBTdHJpbmcocmF3KSk7XG4gIH1cbiAgcmV0dXJuIHBhcnRzLmpvaW4oJycpO1xufVxuXG4vKiogUmVzb2x2ZSBhIHNpbmdsZSBleHByZXNzaW9uIHRva2VuIHRvIGl0cyBzdHJpbmcgZm9ybSAobm8gY29lcmNpb24pLiAqL1xuZnVuY3Rpb24gcmVzb2x2ZU9uZSh0b2s6IEV4dHJhY3Q8VG9rZW4sIHsga2luZDogJ2V4cHInIH0+LCBzY29wZTogU2NvcGUsIGZpZWxkPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3Qgcm9vdCA9IHRvay5wYXRoWzBdITtcbiAgaWYgKFJFU0VSVkVEX1JPT1RfUEFUSFMuaGFzKHJvb3QpKSB7XG4gICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfU0VDUkVUU19SRVNFUlZFRCxcbiAgICAgIG1lc3NhZ2U6IGAnJHtyb290fScgaXMgYSByZXNlcnZlZCBzY29wZSDigJQgdXNlIHRoZSBwbHVnaW4ncyAnc2VjcmV0czonIGZpZWxkIGluc3RlYWRgLFxuICAgICAgZmllbGQsXG4gICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICBwb3M6IHRvay5wb3MsXG4gICAgfSk7XG4gIH1cbiAgY29uc3QgdmFsdWUgPSBsb29rdXBQYXRoKHNjb3BlLCB0b2sucGF0aCk7XG4gIGlmICh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJykge1xuICAgIGlmICh0b2suZGVmYXVsdFZhbHVlICE9PSB1bmRlZmluZWQpIHJldHVybiB0b2suZGVmYXVsdFZhbHVlO1xuICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1VOS05PV05fUEFUSCxcbiAgICAgIG1lc3NhZ2U6IGBUZW1wbGF0ZSByZWZlcmVuY2VzIHVua25vd24gcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9JyBhbmQgbm8gZGVmYXVsdCBwcm92aWRlZGAsXG4gICAgICBmaWVsZCxcbiAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgIHBvczogdG9rLnBvcyxcbiAgICB9KTtcbiAgfVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0gsXG4gICAgICBtZXNzYWdlOiBgVGVtcGxhdGUgcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9JyByZXNvbHZlZCB0byBhbiBvYmplY3Q7IG9ubHkgc3RyaW5ncy9udW1iZXJzL2Jvb2xlYW5zIGFyZSBpbnRlcnBvbGF0YWJsZWAsXG4gICAgICBmaWVsZCxcbiAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgIHBvczogdG9rLnBvcyxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gU3RyaW5nKHZhbHVlKTtcbn1cblxuLyoqIEFwcGx5IGEgd2hvbGUtZmllbGQgY29lcmNpb24gZmlsdGVyIHRvIGEgcmVzb2x2ZWQgc3RyaW5nIHZhbHVlLiAqL1xuZnVuY3Rpb24gYXBwbHlDb2VyY2lvbihcbiAgcmF3OiBzdHJpbmcsXG4gIGtpbmQ6IENvZXJjZUtpbmQsXG4gIHRvazogRXh0cmFjdDxUb2tlbiwgeyBraW5kOiAnZXhwcicgfT4sXG4gIGZpZWxkPzogc3RyaW5nLFxuKTogbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCBzdHJpbmcgfCB1bmtub3duW10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIHN3aXRjaCAoa2luZCkge1xuICAgIGNhc2UgJ251bWJlcic6IHtcbiAgICAgIGNvbnN0IG4gPSBOdW1iZXIocmF3KTtcbiAgICAgIGlmICghTnVtYmVyLmlzRmluaXRlKG4pKSB7XG4gICAgICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENILFxuICAgICAgICAgIG1lc3NhZ2U6IGAnJHtyYXd9JyBjYW5ub3QgYmUgY29lcmNlZCB0byBudW1iZXIgYXQgcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9J2AsXG4gICAgICAgICAgZmllbGQsXG4gICAgICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgICAgIHBvczogdG9rLnBvcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbjtcbiAgICB9XG4gICAgY2FzZSAnYm9vbCc6IHtcbiAgICAgIGNvbnN0IHYgPSByYXcudHJpbSgpLnRvTG93ZXJDYXNlKCk7XG4gICAgICBpZiAodiA9PT0gJ3RydWUnIHx8IHYgPT09ICcxJyB8fCB2ID09PSAneWVzJykgcmV0dXJuIHRydWU7XG4gICAgICBpZiAodiA9PT0gJ2ZhbHNlJyB8fCB2ID09PSAnMCcgfHwgdiA9PT0gJ25vJyB8fCB2ID09PSAnJykgcmV0dXJuIGZhbHNlO1xuICAgICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENILFxuICAgICAgICBtZXNzYWdlOiBgJyR7cmF3fScgY2Fubm90IGJlIGNvZXJjZWQgdG8gYm9vbCBhdCBwYXRoICcke3Rvay5wYXRoLmpvaW4oJy4nKX0nYCxcbiAgICAgICAgZmllbGQsXG4gICAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgcG9zOiB0b2sucG9zLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNhc2UgJ2pzb24nOiB7XG4gICAgICB0cnkge1xuICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShyYXcpIGFzIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgdW5rbm93bltdIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgdGhyb3cgbWFrZUV2YWxFcnJvcih7XG4gICAgICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1RZUEVfTUlTTUFUQ0gsXG4gICAgICAgICAgbWVzc2FnZTogYCcke3Jhd30nIGlzIG5vdCB2YWxpZCBKU09OIGF0IHBhdGggJyR7dG9rLnBhdGguam9pbignLicpfSc6ICR7KGVyciBhcyBFcnJvcikubWVzc2FnZX1gLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBwb3M6IHRvay5wb3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG4vKipcbiAqIEV4dHJhY3QgZGVwZW5kZW5jeSBwYXRocyBmcm9tIGEgdG9rZW4gc3RyZWFtLiBVc2VkIGJ5IHRoZSB0b3BvbG9naWNhbFxuICogc29ydCBwYXNzIHRvIG9yZGVyIHJlc29sdXRpb24gb2Ygc2VsZi1yZWZlcmVuY2luZyBkb2N1bWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXBlbmRlbmNpZXModG9rZW5zOiBUb2tlbltdKTogc3RyaW5nW10ge1xuICBjb25zdCBvdXQ6IHN0cmluZ1tdID0gW107XG4gIGZvciAoY29uc3QgdG9rIG9mIHRva2Vucykge1xuICAgIGlmICh0b2sua2luZCA9PT0gJ2V4cHInKSBvdXQucHVzaCh0b2sucGF0aC5qb2luKCcuJykpO1xuICB9XG4gIHJldHVybiBvdXQ7XG59XG5cbmZ1bmN0aW9uIG1ha2VFdmFsRXJyb3IoZTogRXZhbEVycm9yKTogRXJyb3IgJiBFdmFsRXJyb3Ige1xuICBjb25zdCBlcnIgPSBuZXcgRXJyb3IoZS5tZXNzYWdlKSBhcyBFcnJvciAmIEV2YWxFcnJvcjtcbiAgZXJyLm5hbWUgPSAnVGVtcGxhdGVFdmFsRXJyb3InO1xuICBlcnIuY29kZSA9IGUuY29kZTtcbiAgZXJyLmZpZWxkID0gZS5maWVsZDtcbiAgZXJyLnBhdGggPSBlLnBhdGg7XG4gIGVyci5wb3MgPSBlLnBvcztcbiAgcmV0dXJuIGVycjtcbn1cbiJdfQ==
162
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXZhbHVhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL2V2YWx1YXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQWF2RCxNQUFNLG1CQUFtQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztBQUVqRDs7Ozs7Ozs7Ozs7OztHQWFHO0FBQ0gsTUFBTSxVQUFVLFVBQVUsQ0FBQyxLQUFZLEVBQUUsSUFBYztJQUNyRCxJQUFJLEdBQUcsR0FBWSxLQUFLLENBQUM7SUFDekIsS0FBSyxNQUFNLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUMzQixJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksT0FBTyxHQUFHLEtBQUssUUFBUTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztZQUFFLE9BQU8sU0FBUyxDQUFDO1FBQzFFLEdBQUcsR0FBSSxHQUErQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQztBQUNiLENBQUM7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxVQUFVLE9BQU8sQ0FDckIsTUFBZSxFQUNmLEtBQVksRUFDWixLQUFjO0lBRWQsMkVBQTJFO0lBQzNFLHdEQUF3RDtJQUN4RCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTSxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzRSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFzQyxD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LElBQUksR0FBRyxtQkFBbUIsQ0FBQztJQUMvQixHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDbEIsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3BCLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNsQixHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDaEIsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IDIwMjYgUGlwZWxpbmUgQnVpbGRlciBDb250cmlidXRvcnNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cbmltcG9ydCB7IEVycm9yQ29kZSB9IGZyb20gJ0BwaXBlbGluZS1idWlsZGVyL2FwaS1jb3JlJztcbmltcG9ydCB0eXBlIHsgQ29lcmNlS2luZCwgU291cmNlUG9zaXRpb24sIFRva2VuIH0gZnJvbSAnLi90b2tlbml6ZXIuanMnO1xuXG5leHBvcnQgdHlwZSBTY29wZSA9IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXG5leHBvcnQgaW50ZXJmYWNlIEV2YWxFcnJvciB7XG4gIGNvZGU6IEVycm9yQ29kZTtcbiAgbWVzc2FnZTogc3RyaW5nO1xuICBmaWVsZD86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcbiAgcG9zPzogU291cmNlUG9zaXRpb247XG59XG5cbmNvbnN0IFJFU0VSVkVEX1JPT1RfUEFUSFMgPSBuZXcgU2V0KFsnc2VjcmV0cyddKTtcblxuLyoqXG4gKiBMb29rIHVwIGEgZG90LXNlcGFyYXRlZCBwYXRoIGluc2lkZSBhIHNjb3BlIG9iamVjdC4gUmV0dXJucyBgdW5kZWZpbmVkYFxuICogaWYgYW55IGludGVybWVkaWF0ZSBzZWdtZW50IGlzIG1pc3Npbmcgb3Igbm90IGFuIG9iamVjdC5cbiAqXG4gKiBPbmx5IE9XTiBlbnVtZXJhYmxlLW9yLW5vdC1pbmhlcml0ZWQgcHJvcGVydGllcyBhcmUgdHJhdmVyc2VkOiBhIHNlZ21lbnQgaXNcbiAqIHJlc29sdmVkIHZpYSBgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsYCBzbyBpbmhlcml0ZWQgbWVtYmVycyBvZlxuICogdGhlIHByb3RvdHlwZSBjaGFpbiAoYGNvbnN0cnVjdG9yYCwgYHRvU3RyaW5nYCwgYHZhbHVlT2ZgLCBgaGFzT3duUHJvcGVydHlgLFxuICogdGhlIGBfX3Byb3RvX19gIGFjY2Vzc29yLCDigKYpIG5ldmVyIHJlc29sdmUg4oCUIHRoZXkgcmV0dXJuIGB1bmRlZmluZWRgIGFuZCB0aHVzXG4gKiBmYWxsIHRocm91Z2ggdG8gdGhlIGNhbGxlcidzIG5vcm1hbCB1bmtub3duLXBhdGggaGFuZGxpbmcgKGEgYHwgZGVmYXVsdDpgXG4gKiBmYWxsYmFjayBvciBhIGBURU1QTEFURV9VTktOT1dOX1BBVEhgIGVycm9yKS4gQXBwbGllZCBhdCBldmVyeSBsZXZlbCxcbiAqIGluY2x1ZGluZyB0aGUgcm9vdCBzZWdtZW50LCB0aGlzIGFsc28gbWFrZXMgdGhlIHNjb3BlJ3Mgb3duIHRvcC1sZXZlbCBrZXlzXG4gKiB0aGUgZWZmZWN0aXZlIHJvb3QgYWxsb3ctbGlzdCwgc28gYW4gdW5rbm93bi9wcm90b3R5cGUgcm9vdCBpcyByZWplY3RlZCBldmVuXG4gKiBvbiB0aGUgc3ludGggcGF0aCB0aGF0IHNraXBzIGB2YWxpZGF0ZVRlbXBsYXRlc2AuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb29rdXBQYXRoKHNjb3BlOiBTY29wZSwgcGF0aDogc3RyaW5nW10pOiB1bmtub3duIHtcbiAgbGV0IGN1cjogdW5rbm93biA9IHNjb3BlO1xuICBmb3IgKGNvbnN0IHNlZ21lbnQgb2YgcGF0aCkge1xuICAgIGlmIChjdXIgPT0gbnVsbCB8fCB0eXBlb2YgY3VyICE9PSAnb2JqZWN0JykgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICBpZiAoIU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChjdXIsIHNlZ21lbnQpKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGN1ciA9IChjdXIgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW3NlZ21lbnRdO1xuICB9XG4gIHJldHVybiBjdXI7XG59XG5cbi8qKlxuICogUmVzb2x2ZSBhIHRva2VuIHN0cmVhbSBhZ2FpbnN0IGEgc2NvcGUuIFJldHVybnMgdGhlIHJlc29sdmVkIHN0cmluZy5cbiAqIFRocm93cyBgRXZhbEVycm9yYCB3aGVuIGFuIHVucmVzb2x2ZWQgcGF0aCBoYXMgbm8gZGVmYXVsdCBmaWx0ZXIuXG4gKlxuICogQ29lcmNpb24gZmlsdGVycyAoYHwgbnVtYmVyYCwgYHwgYm9vbGAsIGB8IGpzb25gKSBvbmx5IHRha2UgZWZmZWN0XG4gKiB3aGVuIHRoZSB0ZW1wbGF0ZSBleHByZXNzaW9uIGlzIHRoZSBlbnRpcmUgZmllbGQg4oCUIGUuZy5cbiAqIGByZXBsaWNhczogXCJ7eyB2YXJzLmNvdW50IHwgbnVtYmVyIH19XCJgIHlpZWxkcyBgM2AgKG51bWJlcikgd2hpbGVcbiAqIGByZXBsaWNhczogXCJjb3VudD17eyB2YXJzLmNvdW50IHwgbnVtYmVyIH19XCJgIHlpZWxkcyBgXCJjb3VudD0zXCJgXG4gKiAoc3RyaW5nLCBiZWNhdXNlIHRoZSB0ZW1wbGF0ZSBpcyBlbWJlZGRlZCBpbiBzdXJyb3VuZGluZyBsaXRlcmFscykuXG4gKiBNaXhlZC1saXRlcmFsIGZpZWxkcyBhbHdheXMgcmV0dXJuIGEgc3RyaW5nLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZShcbiAgdG9rZW5zOiBUb2tlbltdLFxuICBzY29wZTogU2NvcGUsXG4gIGZpZWxkPzogc3RyaW5nLFxuKTogc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG51bGwgfCB1bmtub3duW10gfCBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiB7XG4gIC8vIFdob2xlLWZpZWxkIGNvZXJjaW9uIHNob3J0Y3V0OiBvbmx5IGFwcGx5IGNvZXJjaW9uIHdoZW4gdGhlIGVudGlyZSBmaWVsZFxuICAvLyBpcyBhIHNpbmdsZSBleHByZXNzaW9uIChubyBzdXJyb3VuZGluZyBsaXRlcmFsIHRleHQpLlxuICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMSAmJiB0b2tlbnNbMF0hLmtpbmQgPT09ICdleHByJyAmJiB0b2tlbnNbMF0hLmNvZXJjZSkge1xuICAgIGNvbnN0IHRvayA9IHRva2Vuc1swXSEgYXMgRXh0cmFjdDxUb2tlbiwgeyBraW5kOiAnZXhwcicgfT47XG4gICAgY29uc3QgcmF3ID0gcmVzb2x2ZU9uZSh0b2ssIHNjb3BlLCBmaWVsZCk7XG4gICAgcmV0dXJuIGFwcGx5Q29lcmNpb24ocmF3LCB0b2suY29lcmNlISwgdG9rLCBmaWVsZCk7XG4gIH1cblxuICBjb25zdCBwYXJ0czogc3RyaW5nW10gPSBbXTtcbiAgZm9yIChjb25zdCB0b2sgb2YgdG9rZW5zKSB7XG4gICAgaWYgKHRvay5raW5kID09PSAnbGl0ZXJhbCcpIHtcbiAgICAgIHBhcnRzLnB1c2godG9rLnZhbHVlKTtcbiAgICAgIGNvbnRpbnVlO1xuICAgIH1cbiAgICBjb25zdCByYXcgPSByZXNvbHZlT25lKHRvaywgc2NvcGUsIGZpZWxkKTtcbiAgICBwYXJ0cy5wdXNoKHR5cGVvZiByYXcgPT09ICdzdHJpbmcnID8gcmF3IDogU3RyaW5nKHJhdykpO1xuICB9XG4gIHJldHVybiBwYXJ0cy5qb2luKCcnKTtcbn1cblxuLyoqIFJlc29sdmUgYSBzaW5nbGUgZXhwcmVzc2lvbiB0b2tlbiB0byBpdHMgc3RyaW5nIGZvcm0gKG5vIGNvZXJjaW9uKS4gKi9cbmZ1bmN0aW9uIHJlc29sdmVPbmUodG9rOiBFeHRyYWN0PFRva2VuLCB7IGtpbmQ6ICdleHByJyB9Piwgc2NvcGU6IFNjb3BlLCBmaWVsZD86IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHJvb3QgPSB0b2sucGF0aFswXSE7XG4gIGlmIChSRVNFUlZFRF9ST09UX1BBVEhTLmhhcyhyb290KSkge1xuICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgY29kZTogRXJyb3JDb2RlLlRFTVBMQVRFX1NFQ1JFVFNfUkVTRVJWRUQsXG4gICAgICBtZXNzYWdlOiBgJyR7cm9vdH0nIGlzIGEgcmVzZXJ2ZWQgc2NvcGUg4oCUIHVzZSB0aGUgcGx1Z2luJ3MgJ3NlY3JldHM6JyBmaWVsZCBpbnN0ZWFkYCxcbiAgICAgIGZpZWxkLFxuICAgICAgcGF0aDogdG9rLnBhdGguam9pbignLicpLFxuICAgICAgcG9zOiB0b2sucG9zLFxuICAgIH0pO1xuICB9XG4gIGNvbnN0IHZhbHVlID0gbG9va3VwUGF0aChzY29wZSwgdG9rLnBhdGgpO1xuICBpZiAodmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSA9PT0gJycpIHtcbiAgICBpZiAodG9rLmRlZmF1bHRWYWx1ZSAhPT0gdW5kZWZpbmVkKSByZXR1cm4gdG9rLmRlZmF1bHRWYWx1ZTtcbiAgICB0aHJvdyBtYWtlRXZhbEVycm9yKHtcbiAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9VTktOT1dOX1BBVEgsXG4gICAgICBtZXNzYWdlOiBgVGVtcGxhdGUgcmVmZXJlbmNlcyB1bmtub3duIHBhdGggJyR7dG9rLnBhdGguam9pbignLicpfScgYW5kIG5vIGRlZmF1bHQgcHJvdmlkZWRgLFxuICAgICAgZmllbGQsXG4gICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICBwb3M6IHRvay5wb3MsXG4gICAgfSk7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICB0aHJvdyBtYWtlRXZhbEVycm9yKHtcbiAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENILFxuICAgICAgbWVzc2FnZTogYFRlbXBsYXRlIHBhdGggJyR7dG9rLnBhdGguam9pbignLicpfScgcmVzb2x2ZWQgdG8gYW4gb2JqZWN0OyBvbmx5IHN0cmluZ3MvbnVtYmVycy9ib29sZWFucyBhcmUgaW50ZXJwb2xhdGFibGVgLFxuICAgICAgZmllbGQsXG4gICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICBwb3M6IHRvay5wb3MsXG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIFN0cmluZyh2YWx1ZSk7XG59XG5cbi8qKiBBcHBseSBhIHdob2xlLWZpZWxkIGNvZXJjaW9uIGZpbHRlciB0byBhIHJlc29sdmVkIHN0cmluZyB2YWx1ZS4gKi9cbmZ1bmN0aW9uIGFwcGx5Q29lcmNpb24oXG4gIHJhdzogc3RyaW5nLFxuICBraW5kOiBDb2VyY2VLaW5kLFxuICB0b2s6IEV4dHJhY3Q8VG9rZW4sIHsga2luZDogJ2V4cHInIH0+LFxuICBmaWVsZD86IHN0cmluZyxcbik6IG51bWJlciB8IGJvb2xlYW4gfCBudWxsIHwgc3RyaW5nIHwgdW5rbm93bltdIHwgUmVjb3JkPHN0cmluZywgdW5rbm93bj4ge1xuICBzd2l0Y2ggKGtpbmQpIHtcbiAgICBjYXNlICdudW1iZXInOiB7XG4gICAgICBjb25zdCBuID0gTnVtYmVyKHJhdyk7XG4gICAgICBpZiAoIU51bWJlci5pc0Zpbml0ZShuKSkge1xuICAgICAgICB0aHJvdyBtYWtlRXZhbEVycm9yKHtcbiAgICAgICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfVFlQRV9NSVNNQVRDSCxcbiAgICAgICAgICBtZXNzYWdlOiBgJyR7cmF3fScgY2Fubm90IGJlIGNvZXJjZWQgdG8gbnVtYmVyIGF0IHBhdGggJyR7dG9rLnBhdGguam9pbignLicpfSdgLFxuICAgICAgICAgIGZpZWxkLFxuICAgICAgICAgIHBhdGg6IHRvay5wYXRoLmpvaW4oJy4nKSxcbiAgICAgICAgICBwb3M6IHRvay5wb3MsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG47XG4gICAgfVxuICAgIGNhc2UgJ2Jvb2wnOiB7XG4gICAgICBjb25zdCB2ID0gcmF3LnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgaWYgKHYgPT09ICd0cnVlJyB8fCB2ID09PSAnMScgfHwgdiA9PT0gJ3llcycpIHJldHVybiB0cnVlO1xuICAgICAgaWYgKHYgPT09ICdmYWxzZScgfHwgdiA9PT0gJzAnIHx8IHYgPT09ICdubycgfHwgdiA9PT0gJycpIHJldHVybiBmYWxzZTtcbiAgICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgICBjb2RlOiBFcnJvckNvZGUuVEVNUExBVEVfVFlQRV9NSVNNQVRDSCxcbiAgICAgICAgbWVzc2FnZTogYCcke3Jhd30nIGNhbm5vdCBiZSBjb2VyY2VkIHRvIGJvb2wgYXQgcGF0aCAnJHt0b2sucGF0aC5qb2luKCcuJyl9J2AsXG4gICAgICAgIGZpZWxkLFxuICAgICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICAgIHBvczogdG9rLnBvcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjYXNlICdqc29uJzoge1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UocmF3KSBhcyBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuIHwgbnVsbCB8IHVua25vd25bXSB8IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRocm93IG1ha2VFdmFsRXJyb3Ioe1xuICAgICAgICAgIGNvZGU6IEVycm9yQ29kZS5URU1QTEFURV9UWVBFX01JU01BVENILFxuICAgICAgICAgIG1lc3NhZ2U6IGAnJHtyYXd9JyBpcyBub3QgdmFsaWQgSlNPTiBhdCBwYXRoICcke3Rvay5wYXRoLmpvaW4oJy4nKX0nOiAkeyhlcnIgYXMgRXJyb3IpLm1lc3NhZ2V9YCxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBwYXRoOiB0b2sucGF0aC5qb2luKCcuJyksXG4gICAgICAgICAgcG9zOiB0b2sucG9zLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBFeHRyYWN0IGRlcGVuZGVuY3kgcGF0aHMgZnJvbSBhIHRva2VuIHN0cmVhbS4gVXNlZCBieSB0aGUgdG9wb2xvZ2ljYWxcbiAqIHNvcnQgcGFzcyB0byBvcmRlciByZXNvbHV0aW9uIG9mIHNlbGYtcmVmZXJlbmNpbmcgZG9jdW1lbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVwZW5kZW5jaWVzKHRva2VuczogVG9rZW5bXSk6IHN0cmluZ1tdIHtcbiAgY29uc3Qgb3V0OiBzdHJpbmdbXSA9IFtdO1xuICBmb3IgKGNvbnN0IHRvayBvZiB0b2tlbnMpIHtcbiAgICBpZiAodG9rLmtpbmQgPT09ICdleHByJykgb3V0LnB1c2godG9rLnBhdGguam9pbignLicpKTtcbiAgfVxuICByZXR1cm4gb3V0O1xufVxuXG5mdW5jdGlvbiBtYWtlRXZhbEVycm9yKGU6IEV2YWxFcnJvcik6IEVycm9yICYgRXZhbEVycm9yIHtcbiAgY29uc3QgZXJyID0gbmV3IEVycm9yKGUubWVzc2FnZSkgYXMgRXJyb3IgJiBFdmFsRXJyb3I7XG4gIGVyci5uYW1lID0gJ1RlbXBsYXRlRXZhbEVycm9yJztcbiAgZXJyLmNvZGUgPSBlLmNvZGU7XG4gIGVyci5maWVsZCA9IGUuZmllbGQ7XG4gIGVyci5wYXRoID0gZS5wYXRoO1xuICBlcnIucG9zID0gZS5wb3M7XG4gIHJldHVybiBlcnI7XG59XG4iXX0=
@@ -54,9 +54,22 @@ export function walkAndBind(root, isTemplatable, includeLiteralOnly = false) {
54
54
  });
55
55
  return entries;
56
56
  }
57
+ /**
58
+ * Keys that must never be walked into or written through: assigning to
59
+ * `__proto__` / `constructor` / `prototype` could retarget an object's
60
+ * prototype. `Object.entries` yields own enumerable keys only, but a JSON
61
+ * document parsed with `JSON.parse` can carry a genuine own enumerable
62
+ * `__proto__` (or `constructor`) key, so a captured keyPath could contain one.
63
+ * Refuse the write in that case rather than mutating the prototype.
64
+ */
65
+ const UNSAFE_WRITE_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
57
66
  function writeField(root, parts, value) {
58
67
  if (parts.length === 0)
59
68
  return;
69
+ for (const p of parts) {
70
+ if (typeof p === 'string' && UNSAFE_WRITE_KEYS.has(p))
71
+ return;
72
+ }
60
73
  let cur = root;
61
74
  for (let i = 0; i < parts.length - 1; i++) {
62
75
  if (cur == null || typeof cur !== 'object')
@@ -67,4 +80,4 @@ function writeField(root, parts, value) {
67
80
  return;
68
81
  cur[parts[parts.length - 1]] = value;
69
82
  }
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fsa2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3dhbGtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFlbkU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQWEsRUFDYixhQUE2QixFQUM3QixPQUFpRjtJQUVqRixJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLElBQUksQ0FDWCxJQUFhLEVBQ2IsS0FBYSxFQUNiLE9BQStCLEVBQy9CLGFBQTZCLEVBQzdCLE9BQWlGO0lBRWpGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekcsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0IsQ0FBQyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUFPLEVBQ1AsYUFBNkIsRUFDN0Isa0JBQWtCLEdBQUcsS0FBSztJQUUxQixNQUFNLE9BQU8sR0FBZ0IsRUFBRSxDQUFDO0lBQ2hDLFlBQVksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMzRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO1lBQUUsT0FBTztRQUN4RSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ1gsS0FBSztZQUNMLE1BQU07WUFDTixNQUFNO1lBQ04sR0FBRyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7U0FDMUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBYSxFQUFFLEtBQTZCLEVBQUUsS0FBYztJQUM5RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDL0IsSUFBSSxHQUFHLEdBQVksSUFBSSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQUUsT0FBTztRQUNuRCxHQUFHLEdBQUksR0FBd0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPO0lBQ2xELEdBQXdDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBoYXNUZW1wbGF0ZSwgdG9rZW5pemUsIHR5cGUgVG9rZW4gfSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Fsa0VudHJ5IHtcbiAgLyoqIERvdHRlZCBwYXRoIHRvIHRoZSBmaWVsZCBpbnNpZGUgdGhlIGRvY3VtZW50LCBlLmcuICdjb21tYW5kc1szXScgb3IgJ2Vudi5TVEFHRScgKi9cbiAgZmllbGQ6IHN0cmluZztcbiAgLyoqIFJhdyBzb3VyY2Ugc3RyaW5nIGNvbnRhaW5pbmcgdGVtcGxhdGUgdG9rZW5zICovXG4gIHNvdXJjZTogc3RyaW5nO1xuICAvKiogUGFyc2VkIHRva2VuIHN0cmVhbSAqL1xuICB0b2tlbnM6IFRva2VuW107XG4gIC8qKiBTZXR0ZXIgdG8gd3JpdGUgYmFjayBhIHJlc29sdmVkIHZhbHVlIGludG8gdGhlIG9yaWdpbmFsIGByb290YCBvYmplY3QgKi9cbiAgc2V0OiAodmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkUHJlZGljYXRlID0gKGZpZWxkOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbi8qKlxuICogVmlzaXQgZXZlcnkgdGVtcGxhdGFibGUgc3RyaW5nIGxlYWYgdW5kZXIgYHJvb3RgLiBDYWxscyBgaGFuZGxlcihmaWVsZCwgc291cmNlKWBcbiAqIGZvciBlYWNoIHN0cmluZyB3aG9zZSBmaWVsZCBwYXRoIHNhdGlzZmllcyBgaXNUZW1wbGF0YWJsZWAgYW5kIGNvbnRhaW5zIGB7e2AuXG4gKiBEb2VzIE5PVCB0b2tlbml6ZSDigJQgY2FsbGVycyBkZWNpZGUgd2hldGhlciB0byB0aHJvdyBvciBjb2xsZWN0IGVycm9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpc2l0U3RyaW5ncyhcbiAgcm9vdDogdW5rbm93bixcbiAgaXNUZW1wbGF0YWJsZTogRmllbGRQcmVkaWNhdGUsXG4gIGhhbmRsZXI6IChmaWVsZDogc3RyaW5nLCBzb3VyY2U6IHN0cmluZywga2V5UGF0aDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPikgPT4gdm9pZCxcbik6IHZvaWQge1xuICBzdGVwKHJvb3QsICcnLCBbXSwgaXNUZW1wbGF0YWJsZSwgaGFuZGxlcik7XG59XG5cbmZ1bmN0aW9uIHN0ZXAoXG4gIG5vZGU6IHVua25vd24sXG4gIGZpZWxkOiBzdHJpbmcsXG4gIGtleVBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gIGlzVGVtcGxhdGFibGU6IEZpZWxkUHJlZGljYXRlLFxuICBoYW5kbGVyOiAoZmllbGQ6IHN0cmluZywgc291cmNlOiBzdHJpbmcsIGtleVBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4pID0+IHZvaWQsXG4pOiB2b2lkIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICBub2RlLmZvckVhY2goKGNoaWxkLCBpZHgpID0+IHN0ZXAoY2hpbGQsIGAke2ZpZWxkfVske2lkeH1dYCwgWy4uLmtleVBhdGgsIGlkeF0sIGlzVGVtcGxhdGFibGUsIGhhbmRsZXIpKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG5vZGUgIT09IG51bGwgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBjaGlsZF0gb2YgT2JqZWN0LmVudHJpZXMobm9kZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikpIHtcbiAgICAgIHN0ZXAoY2hpbGQsIGZpZWxkID8gYCR7ZmllbGR9LiR7a2V5fWAgOiBrZXksIFsuLi5rZXlQYXRoLCBrZXldLCBpc1RlbXBsYXRhYmxlLCBoYW5kbGVyKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgJiYgaXNUZW1wbGF0YWJsZShmaWVsZCkgJiYgaGFzVGVtcGxhdGUobm9kZSkpIHtcbiAgICBoYW5kbGVyKGZpZWxkLCBub2RlLCBrZXlQYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIFdhbGsgYWxsIHRlbXBsYXRhYmxlIHN0cmluZyBmaWVsZHMgdW5kZXIgYHJvb3RgLCByZXR1cm5pbmcgb25lIGVudHJ5IHBlclxuICogdGVtcGxhdGVkIGZpZWxkIHdpdGggYSBib3VuZCBgc2V0KClgIHRoYXQgbXV0YXRlcyBgcm9vdGAgaW4gcGxhY2UuXG4gKiBUb2tlbml6YXRpb24gaGFwcGVucyBlYWdlcmx5IGhlcmUg4oCUIHBhcnNlIGVycm9ycyB0aHJvdy5cbiAqXG4gKiBCeSBkZWZhdWx0IG9ubHkgZmllbGRzIGNvbnRhaW5pbmcgYXQgbGVhc3Qgb25lIGB7eyBleHByIH19YCBhcmUgcmV0dXJuZWQuXG4gKiBQYXNzIGBpbmNsdWRlTGl0ZXJhbE9ubHlgIHRvIGFsc28gcmV0dXJuIGZpZWxkcyB3aG9zZSBvbmx5IHRlbXBsYXRlIGNvbnRlbnRcbiAqIGlzIGEgYHt7e3tgIGVzY2FwZSBzZXF1ZW5jZSDigJQgdGhlc2Ugc3RpbGwgbmVlZCByZXdyaXRpbmcgc28gdGhlIHRva2VuaXplcidzXG4gKiBge3t7e2Ag4oaSIGB7e2AgdW5lc2NhcGUgYWN0dWFsbHkgbWF0ZXJpYWxpemVzIGludG8gdGhlIGRvY3VtZW50LlxuICpcbiAqIFRoZSBib3VuZCBgc2V0KClgIHdyaXRlcyBiYWNrIHZpYSB0aGUgZXhhY3Qga2V5IHBhdGggY2FwdHVyZWQgZHVyaW5nIHRoZVxuICogd2FsayAodGhlIHJlYWwgYE9iamVjdC5lbnRyaWVzYCBrZXlzKSwgc28gZG9jdW1lbnQga2V5cyBjb250YWluaW5nIGAuYCxcbiAqIGBbYCwgb3IgYF1gIChlLmcuIGBlbnZbXCJGT08uQkFSXCJdYCkgYXJlIHdyaXR0ZW4gY29ycmVjdGx5IHJhdGhlciB0aGFuIGJlaW5nXG4gKiBzaWxlbnRseSBkcm9wcGVkIGJ5IHJlLXBhcnNpbmcgYSBmbGF0dGVuZWQgZG90dGVkIGZpZWxkIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhbGtBbmRCaW5kPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICByb290OiBULFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbiAgaW5jbHVkZUxpdGVyYWxPbmx5ID0gZmFsc2UsXG4pOiBXYWxrRW50cnlbXSB7XG4gIGNvbnN0IGVudHJpZXM6IFdhbGtFbnRyeVtdID0gW107XG4gIHZpc2l0U3RyaW5ncyhyb290LCBpc1RlbXBsYXRhYmxlLCAoZmllbGQsIHNvdXJjZSwga2V5UGF0aCkgPT4ge1xuICAgIGNvbnN0IHRva2VucyA9IHRva2VuaXplKHNvdXJjZSk7XG4gICAgaWYgKCFpbmNsdWRlTGl0ZXJhbE9ubHkgJiYgIXRva2Vucy5zb21lKHQgPT4gdC5raW5kID09PSAnZXhwcicpKSByZXR1cm47XG4gICAgZW50cmllcy5wdXNoKHtcbiAgICAgIGZpZWxkLFxuICAgICAgc291cmNlLFxuICAgICAgdG9rZW5zLFxuICAgICAgc2V0OiAodmFsdWU6IHVua25vd24pID0+IHdyaXRlRmllbGQocm9vdCwga2V5UGF0aCwgdmFsdWUpLFxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbmZ1bmN0aW9uIHdyaXRlRmllbGQocm9vdDogdW5rbm93biwgcGFydHM6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sIHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgbGV0IGN1cjogdW5rbm93biA9IHJvb3Q7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcGFydHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgaWYgKGN1ciA9PSBudWxsIHx8IHR5cGVvZiBjdXIgIT09ICdvYmplY3QnKSByZXR1cm47XG4gICAgY3VyID0gKGN1ciBhcyBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCB1bmtub3duPilbcGFydHNbaV0hXTtcbiAgfVxuICBpZiAoY3VyID09IG51bGwgfHwgdHlwZW9mIGN1ciAhPT0gJ29iamVjdCcpIHJldHVybjtcbiAgKGN1ciBhcyBSZWNvcmQ8c3RyaW5nIHwgbnVtYmVyLCB1bmtub3duPilbcGFydHNbcGFydHMubGVuZ3RoIC0gMV0hXSA9IHZhbHVlO1xufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Fsa2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3RlbXBsYXRlL3dhbGtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwrQ0FBK0M7QUFDL0Msc0NBQXNDO0FBRXRDLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFjLE1BQU0sZ0JBQWdCLENBQUM7QUFlbkU7Ozs7R0FJRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQzFCLElBQWEsRUFDYixhQUE2QixFQUM3QixPQUFpRjtJQUVqRixJQUFJLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFTLElBQUksQ0FDWCxJQUFhLEVBQ2IsS0FBYSxFQUNiLE9BQStCLEVBQy9CLGFBQTZCLEVBQzdCLE9BQWlGO0lBRWpGLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsS0FBSyxJQUFJLEdBQUcsR0FBRyxFQUFFLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxDQUFDLEVBQUUsYUFBYSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDekcsT0FBTztJQUNULENBQUM7SUFDRCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxFQUFFLENBQUM7UUFDOUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0IsQ0FBQyxFQUFFLENBQUM7WUFDM0UsSUFBSSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxhQUFhLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDMUYsQ0FBQztRQUNELE9BQU87SUFDVCxDQUFDO0lBQ0QsSUFBSSxPQUFPLElBQUksS0FBSyxRQUFRLElBQUksYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxNQUFNLFVBQVUsV0FBVyxDQUN6QixJQUFPLEVBQ1AsYUFBNkIsRUFDN0Isa0JBQWtCLEdBQUcsS0FBSztJQUUxQixNQUFNLE9BQU8sR0FBZ0IsRUFBRSxDQUFDO0lBQ2hDLFlBQVksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUMzRCxNQUFNLE1BQU0sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGtCQUFrQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO1lBQUUsT0FBTztRQUN4RSxPQUFPLENBQUMsSUFBSSxDQUFDO1lBQ1gsS0FBSztZQUNMLE1BQU07WUFDTixNQUFNO1lBQ04sR0FBRyxFQUFFLENBQUMsS0FBYyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUM7U0FDMUQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDO0FBRUQ7Ozs7Ozs7R0FPRztBQUNILE1BQU0saUJBQWlCLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxXQUFXLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7QUFFN0UsU0FBUyxVQUFVLENBQUMsSUFBYSxFQUFFLEtBQTZCLEVBQUUsS0FBYztJQUM5RSxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU87SUFDL0IsS0FBSyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQztRQUN0QixJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQUUsT0FBTztJQUNoRSxDQUFDO0lBQ0QsSUFBSSxHQUFHLEdBQVksSUFBSSxDQUFDO0lBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRO1lBQUUsT0FBTztRQUNuRCxHQUFHLEdBQUksR0FBd0MsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsSUFBSSxHQUFHLElBQUksSUFBSSxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVE7UUFBRSxPQUFPO0lBQ2xELEdBQXdDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFFLENBQUMsR0FBRyxLQUFLLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAyMDI2IFBpcGVsaW5lIEJ1aWxkZXIgQ29udHJpYnV0b3JzXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQXBhY2hlLTIuMFxuXG5pbXBvcnQgeyBoYXNUZW1wbGF0ZSwgdG9rZW5pemUsIHR5cGUgVG9rZW4gfSBmcm9tICcuL3Rva2VuaXplci5qcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2Fsa0VudHJ5IHtcbiAgLyoqIERvdHRlZCBwYXRoIHRvIHRoZSBmaWVsZCBpbnNpZGUgdGhlIGRvY3VtZW50LCBlLmcuICdjb21tYW5kc1szXScgb3IgJ2Vudi5TVEFHRScgKi9cbiAgZmllbGQ6IHN0cmluZztcbiAgLyoqIFJhdyBzb3VyY2Ugc3RyaW5nIGNvbnRhaW5pbmcgdGVtcGxhdGUgdG9rZW5zICovXG4gIHNvdXJjZTogc3RyaW5nO1xuICAvKiogUGFyc2VkIHRva2VuIHN0cmVhbSAqL1xuICB0b2tlbnM6IFRva2VuW107XG4gIC8qKiBTZXR0ZXIgdG8gd3JpdGUgYmFjayBhIHJlc29sdmVkIHZhbHVlIGludG8gdGhlIG9yaWdpbmFsIGByb290YCBvYmplY3QgKi9cbiAgc2V0OiAodmFsdWU6IHVua25vd24pID0+IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIEZpZWxkUHJlZGljYXRlID0gKGZpZWxkOiBzdHJpbmcpID0+IGJvb2xlYW47XG5cbi8qKlxuICogVmlzaXQgZXZlcnkgdGVtcGxhdGFibGUgc3RyaW5nIGxlYWYgdW5kZXIgYHJvb3RgLiBDYWxscyBgaGFuZGxlcihmaWVsZCwgc291cmNlKWBcbiAqIGZvciBlYWNoIHN0cmluZyB3aG9zZSBmaWVsZCBwYXRoIHNhdGlzZmllcyBgaXNUZW1wbGF0YWJsZWAgYW5kIGNvbnRhaW5zIGB7e2AuXG4gKiBEb2VzIE5PVCB0b2tlbml6ZSDigJQgY2FsbGVycyBkZWNpZGUgd2hldGhlciB0byB0aHJvdyBvciBjb2xsZWN0IGVycm9ycy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHZpc2l0U3RyaW5ncyhcbiAgcm9vdDogdW5rbm93bixcbiAgaXNUZW1wbGF0YWJsZTogRmllbGRQcmVkaWNhdGUsXG4gIGhhbmRsZXI6IChmaWVsZDogc3RyaW5nLCBzb3VyY2U6IHN0cmluZywga2V5UGF0aDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPikgPT4gdm9pZCxcbik6IHZvaWQge1xuICBzdGVwKHJvb3QsICcnLCBbXSwgaXNUZW1wbGF0YWJsZSwgaGFuZGxlcik7XG59XG5cbmZ1bmN0aW9uIHN0ZXAoXG4gIG5vZGU6IHVua25vd24sXG4gIGZpZWxkOiBzdHJpbmcsXG4gIGtleVBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sXG4gIGlzVGVtcGxhdGFibGU6IEZpZWxkUHJlZGljYXRlLFxuICBoYW5kbGVyOiAoZmllbGQ6IHN0cmluZywgc291cmNlOiBzdHJpbmcsIGtleVBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4pID0+IHZvaWQsXG4pOiB2b2lkIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkobm9kZSkpIHtcbiAgICBub2RlLmZvckVhY2goKGNoaWxkLCBpZHgpID0+IHN0ZXAoY2hpbGQsIGAke2ZpZWxkfVske2lkeH1dYCwgWy4uLmtleVBhdGgsIGlkeF0sIGlzVGVtcGxhdGFibGUsIGhhbmRsZXIpKTtcbiAgICByZXR1cm47XG4gIH1cbiAgaWYgKG5vZGUgIT09IG51bGwgJiYgdHlwZW9mIG5vZGUgPT09ICdvYmplY3QnKSB7XG4gICAgZm9yIChjb25zdCBba2V5LCBjaGlsZF0gb2YgT2JqZWN0LmVudHJpZXMobm9kZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPikpIHtcbiAgICAgIHN0ZXAoY2hpbGQsIGZpZWxkID8gYCR7ZmllbGR9LiR7a2V5fWAgOiBrZXksIFsuLi5rZXlQYXRoLCBrZXldLCBpc1RlbXBsYXRhYmxlLCBoYW5kbGVyKTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG4gIGlmICh0eXBlb2Ygbm9kZSA9PT0gJ3N0cmluZycgJiYgaXNUZW1wbGF0YWJsZShmaWVsZCkgJiYgaGFzVGVtcGxhdGUobm9kZSkpIHtcbiAgICBoYW5kbGVyKGZpZWxkLCBub2RlLCBrZXlQYXRoKTtcbiAgfVxufVxuXG4vKipcbiAqIFdhbGsgYWxsIHRlbXBsYXRhYmxlIHN0cmluZyBmaWVsZHMgdW5kZXIgYHJvb3RgLCByZXR1cm5pbmcgb25lIGVudHJ5IHBlclxuICogdGVtcGxhdGVkIGZpZWxkIHdpdGggYSBib3VuZCBgc2V0KClgIHRoYXQgbXV0YXRlcyBgcm9vdGAgaW4gcGxhY2UuXG4gKiBUb2tlbml6YXRpb24gaGFwcGVucyBlYWdlcmx5IGhlcmUg4oCUIHBhcnNlIGVycm9ycyB0aHJvdy5cbiAqXG4gKiBCeSBkZWZhdWx0IG9ubHkgZmllbGRzIGNvbnRhaW5pbmcgYXQgbGVhc3Qgb25lIGB7eyBleHByIH19YCBhcmUgcmV0dXJuZWQuXG4gKiBQYXNzIGBpbmNsdWRlTGl0ZXJhbE9ubHlgIHRvIGFsc28gcmV0dXJuIGZpZWxkcyB3aG9zZSBvbmx5IHRlbXBsYXRlIGNvbnRlbnRcbiAqIGlzIGEgYHt7e3tgIGVzY2FwZSBzZXF1ZW5jZSDigJQgdGhlc2Ugc3RpbGwgbmVlZCByZXdyaXRpbmcgc28gdGhlIHRva2VuaXplcidzXG4gKiBge3t7e2Ag4oaSIGB7e2AgdW5lc2NhcGUgYWN0dWFsbHkgbWF0ZXJpYWxpemVzIGludG8gdGhlIGRvY3VtZW50LlxuICpcbiAqIFRoZSBib3VuZCBgc2V0KClgIHdyaXRlcyBiYWNrIHZpYSB0aGUgZXhhY3Qga2V5IHBhdGggY2FwdHVyZWQgZHVyaW5nIHRoZVxuICogd2FsayAodGhlIHJlYWwgYE9iamVjdC5lbnRyaWVzYCBrZXlzKSwgc28gZG9jdW1lbnQga2V5cyBjb250YWluaW5nIGAuYCxcbiAqIGBbYCwgb3IgYF1gIChlLmcuIGBlbnZbXCJGT08uQkFSXCJdYCkgYXJlIHdyaXR0ZW4gY29ycmVjdGx5IHJhdGhlciB0aGFuIGJlaW5nXG4gKiBzaWxlbnRseSBkcm9wcGVkIGJ5IHJlLXBhcnNpbmcgYSBmbGF0dGVuZWQgZG90dGVkIGZpZWxkIHN0cmluZy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHdhbGtBbmRCaW5kPFQgZXh0ZW5kcyBvYmplY3Q+KFxuICByb290OiBULFxuICBpc1RlbXBsYXRhYmxlOiBGaWVsZFByZWRpY2F0ZSxcbiAgaW5jbHVkZUxpdGVyYWxPbmx5ID0gZmFsc2UsXG4pOiBXYWxrRW50cnlbXSB7XG4gIGNvbnN0IGVudHJpZXM6IFdhbGtFbnRyeVtdID0gW107XG4gIHZpc2l0U3RyaW5ncyhyb290LCBpc1RlbXBsYXRhYmxlLCAoZmllbGQsIHNvdXJjZSwga2V5UGF0aCkgPT4ge1xuICAgIGNvbnN0IHRva2VucyA9IHRva2VuaXplKHNvdXJjZSk7XG4gICAgaWYgKCFpbmNsdWRlTGl0ZXJhbE9ubHkgJiYgIXRva2Vucy5zb21lKHQgPT4gdC5raW5kID09PSAnZXhwcicpKSByZXR1cm47XG4gICAgZW50cmllcy5wdXNoKHtcbiAgICAgIGZpZWxkLFxuICAgICAgc291cmNlLFxuICAgICAgdG9rZW5zLFxuICAgICAgc2V0OiAodmFsdWU6IHVua25vd24pID0+IHdyaXRlRmllbGQocm9vdCwga2V5UGF0aCwgdmFsdWUpLFxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIGVudHJpZXM7XG59XG5cbi8qKlxuICogS2V5cyB0aGF0IG11c3QgbmV2ZXIgYmUgd2Fsa2VkIGludG8gb3Igd3JpdHRlbiB0aHJvdWdoOiBhc3NpZ25pbmcgdG9cbiAqIGBfX3Byb3RvX19gIC8gYGNvbnN0cnVjdG9yYCAvIGBwcm90b3R5cGVgIGNvdWxkIHJldGFyZ2V0IGFuIG9iamVjdCdzXG4gKiBwcm90b3R5cGUuIGBPYmplY3QuZW50cmllc2AgeWllbGRzIG93biBlbnVtZXJhYmxlIGtleXMgb25seSwgYnV0IGEgSlNPTlxuICogZG9jdW1lbnQgcGFyc2VkIHdpdGggYEpTT04ucGFyc2VgIGNhbiBjYXJyeSBhIGdlbnVpbmUgb3duIGVudW1lcmFibGVcbiAqIGBfX3Byb3RvX19gIChvciBgY29uc3RydWN0b3JgKSBrZXksIHNvIGEgY2FwdHVyZWQga2V5UGF0aCBjb3VsZCBjb250YWluIG9uZS5cbiAqIFJlZnVzZSB0aGUgd3JpdGUgaW4gdGhhdCBjYXNlIHJhdGhlciB0aGFuIG11dGF0aW5nIHRoZSBwcm90b3R5cGUuXG4gKi9cbmNvbnN0IFVOU0FGRV9XUklURV9LRVlTID0gbmV3IFNldChbJ19fcHJvdG9fXycsICdjb25zdHJ1Y3RvcicsICdwcm90b3R5cGUnXSk7XG5cbmZ1bmN0aW9uIHdyaXRlRmllbGQocm9vdDogdW5rbm93biwgcGFydHM6IEFycmF5PHN0cmluZyB8IG51bWJlcj4sIHZhbHVlOiB1bmtub3duKTogdm9pZCB7XG4gIGlmIChwYXJ0cy5sZW5ndGggPT09IDApIHJldHVybjtcbiAgZm9yIChjb25zdCBwIG9mIHBhcnRzKSB7XG4gICAgaWYgKHR5cGVvZiBwID09PSAnc3RyaW5nJyAmJiBVTlNBRkVfV1JJVEVfS0VZUy5oYXMocCkpIHJldHVybjtcbiAgfVxuICBsZXQgY3VyOiB1bmtub3duID0gcm9vdDtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBwYXJ0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAoY3VyID09IG51bGwgfHwgdHlwZW9mIGN1ciAhPT0gJ29iamVjdCcpIHJldHVybjtcbiAgICBjdXIgPSAoY3VyIGFzIFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIHVua25vd24+KVtwYXJ0c1tpXSFdO1xuICB9XG4gIGlmIChjdXIgPT0gbnVsbCB8fCB0eXBlb2YgY3VyICE9PSAnb2JqZWN0JykgcmV0dXJuO1xuICAoY3VyIGFzIFJlY29yZDxzdHJpbmcgfCBudW1iZXIsIHVua25vd24+KVtwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXSFdID0gdmFsdWU7XG59XG4iXX0=
package/package.json CHANGED
@@ -29,8 +29,8 @@
29
29
  "constructs": "10.7.0",
30
30
  "jsonwebtoken": "9.0.3",
31
31
  "uuid": "14.0.1",
32
- "@pipeline-builder/api-core": "3.4.94",
33
- "@pipeline-builder/pipeline-data": "3.4.97"
32
+ "@pipeline-builder/api-core": "3.4.95",
33
+ "@pipeline-builder/pipeline-data": "3.4.98"
34
34
  },
35
35
  "keywords": [
36
36
  "ci-cd",
@@ -86,7 +86,7 @@
86
86
  "access": "public",
87
87
  "registry": "https://registry.npmjs.org/"
88
88
  },
89
- "version": "3.4.111",
89
+ "version": "3.4.112",
90
90
  "bugs": {
91
91
  "url": "https://github.com/mwashburn160/pipeline-builder/issues"
92
92
  },