cdk-serverless 2.16.0 → 2.17.0

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.
@@ -1,11 +1,9 @@
1
- import * as identitypool from '@aws-cdk/aws-cognito-identitypool-alpha';
2
- import { aws_cognito as cognito } from 'aws-cdk-lib';
3
- import { UserPoolClient, UserPoolClientOptions } from 'aws-cdk-lib/aws-cognito';
1
+ import { aws_cognito, aws_cognito_identitypool } from 'aws-cdk-lib';
4
2
  import { Construct } from 'constructs';
5
3
  import { LambdaFunction } from './func';
6
4
  export interface ICognitoAuthentication {
7
5
  /** The Cognito user pool that holds user information */
8
- readonly userpool: cognito.IUserPool;
6
+ readonly userpool: aws_cognito.IUserPool;
9
7
  }
10
8
  export interface IJwtAuthentication {
11
9
  /**
@@ -69,7 +67,7 @@ export interface CognitoAuthenticationProps {
69
67
  /**
70
68
  * Properties of the Cognito user pool
71
69
  */
72
- readonly userPoolProps?: cognito.UserPoolProps;
70
+ readonly userPoolProps?: aws_cognito.UserPoolProps;
73
71
  /**
74
72
  * Configure SES mail sending
75
73
  */
@@ -98,7 +96,7 @@ export interface CognitoAuthenticationProps {
98
96
  /** Create a new Cognito Identity Pool for the User pool */
99
97
  readonly identityPool?: {
100
98
  /** configuration of the identity pool */
101
- readonly poolConfig?: identitypool.IdentityPoolProps;
99
+ readonly poolConfig?: aws_cognito_identitypool.IdentityPoolProps;
102
100
  };
103
101
  }
104
102
  /**
@@ -109,11 +107,11 @@ export declare class CognitoAuthentication extends Construct implements ICognito
109
107
  /**
110
108
  * The Cognito User Pool for user authentication.
111
109
  */
112
- readonly userpool: cognito.UserPool;
110
+ readonly userpool: aws_cognito.UserPool;
113
111
  /**
114
112
  * The optional Cognito Identity Pool for federated identities.
115
113
  */
116
- readonly identityPool?: identitypool.IdentityPool;
114
+ readonly identityPool?: aws_cognito_identitypool.IdentityPool;
117
115
  /**
118
116
  * The optional Lambda function for custom message trigger.
119
117
  */
@@ -134,5 +132,5 @@ export declare class CognitoAuthentication extends Construct implements ICognito
134
132
  * @param props - The properties of the CognitoAuthentication construct.
135
133
  */
136
134
  constructor(scope: Construct, id: string, props: CognitoAuthenticationProps);
137
- addUserPoolClient(id: string, options: UserPoolClientOptions): UserPoolClient;
135
+ addUserPoolClient(id: string, options: aws_cognito.UserPoolClientOptions): aws_cognito.UserPoolClient;
138
136
  }
@@ -35,7 +35,6 @@ var __importStar = (this && this.__importStar) || (function () {
35
35
  Object.defineProperty(exports, "__esModule", { value: true });
36
36
  exports.CognitoAuthentication = void 0;
37
37
  const fs = __importStar(require("fs"));
38
- const identitypool = __importStar(require("@aws-cdk/aws-cognito-identitypool-alpha"));
39
38
  const aws_cdk_lib_1 = require("aws-cdk-lib");
40
39
  const constructs_1 = require("constructs");
41
40
  const func_1 = require("./func");
@@ -210,12 +209,12 @@ class CognitoAuthentication extends constructs_1.Construct {
210
209
  }
211
210
  new aws_cdk_lib_1.CfnOutput(this, outputs_1.CFN_OUTPUT_SUFFIX_AUTH_USERPOOLID, { key: outputs_1.CFN_OUTPUT_SUFFIX_AUTH_USERPOOLID, value: this.userpool.userPoolId });
212
211
  if (props.identityPool) {
213
- this.identityPool = new identitypool.IdentityPool(this, 'IdentityPool', {
212
+ this.identityPool = new aws_cdk_lib_1.aws_cognito_identitypool.IdentityPool(this, 'IdentityPool', {
214
213
  allowUnauthenticatedIdentities: true,
215
214
  identityPoolName: props.userPoolName + '-identity',
216
215
  ...props.identityPool.poolConfig,
217
216
  authenticationProviders: {
218
- userPools: [new identitypool.UserPoolAuthenticationProvider({ userPool: this.userpool })],
217
+ userPools: [new aws_cdk_lib_1.aws_cognito_identitypool.UserPoolAuthenticationProvider({ userPool: this.userpool })],
219
218
  ...(_h = props.identityPool.poolConfig) === null || _h === void 0 ? void 0 : _h.authenticationProviders,
220
219
  },
221
220
  });
@@ -240,7 +239,7 @@ class CognitoAuthentication extends constructs_1.Construct {
240
239
  value: client.userPoolClientId,
241
240
  });
242
241
  if (this.identityPool) {
243
- this.identityPool.addUserPoolAuthentication(new identitypool.UserPoolAuthenticationProvider({
242
+ this.identityPool.addUserPoolAuthentication(new aws_cdk_lib_1.aws_cognito_identitypool.UserPoolAuthenticationProvider({
244
243
  userPool: this.userpool,
245
244
  userPoolClient: client,
246
245
  }));
@@ -249,4 +248,4 @@ class CognitoAuthentication extends constructs_1.Construct {
249
248
  }
250
249
  }
251
250
  exports.CognitoAuthentication = CognitoAuthentication;
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9hdXRoZW50aWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsc0ZBQXdFO0FBQ3hFLDZDQUdxQjtBQUVyQiwyQ0FBdUM7QUFDdkMsaUNBQXdDO0FBQ3hDLCtDQUE4UDtBQWdIOVA7OztHQUdHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxzQkFBUztJQTJCbEQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQzs7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUkseUJBQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRTtZQUNyRCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsVUFBVSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtZQUMzQixjQUFjLEVBQUU7Z0JBQ2QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsYUFBYSxFQUFFLEtBQUs7Z0JBQ3BCLGdCQUFnQixFQUFFLEtBQUs7Z0JBQ3ZCLGNBQWMsRUFBRSxLQUFLO2dCQUNyQixnQkFBZ0IsRUFBRSxLQUFLO2FBQ3hCO1lBQ0Qsa0JBQWtCLEVBQUU7Z0JBQ2xCLFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsSUFBSTtvQkFDYixRQUFRLEVBQUUsSUFBSTtpQkFDZjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsT0FBTyxFQUFFLEtBQUs7b0JBQ2QsUUFBUSxFQUFFLElBQUk7aUJBQ2Y7YUFDRjtZQUNELGlCQUFpQixFQUFFLEtBQUs7WUFDeEIsYUFBYSxFQUFFO2dCQUNiLEtBQUssRUFBRSxJQUFJO2FBQ1o7WUFDRCxtQkFBbUIsRUFBRSxLQUFLO1lB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RSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsY0FBYyxFQUFFLE1BQU07YUFDdkIsQ0FBQyxDQUNILENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUVGO0FBNVBELHNEQTRQQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGlkZW50aXR5cG9vbCBmcm9tICdAYXdzLWNkay9hd3MtY29nbml0by1pZGVudGl0eXBvb2wtYWxwaGEnO1xuaW1wb3J0IHtcbiAgYXdzX2NvZ25pdG8gYXMgY29nbml0bywgQ2ZuT3V0cHV0LCBEdXJhdGlvbiwgU3RhY2ssXG5cbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgVXNlclBvb2xDbGllbnQsIFVzZXJQb29sQ2xpZW50T3B0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1jb2duaXRvJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICcuL2Z1bmMnO1xuaW1wb3J0IHsgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfQVVUSF9ST0xFQVJOLCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfVU5BVVRIX1JPTEVBUk4sIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTF9DTElFTlRJRCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29nbml0b0F1dGhlbnRpY2F0aW9uIHtcbiAgLyoqIFRoZSBDb2duaXRvIHVzZXIgcG9vbCB0aGF0IGhvbGRzIHVzZXIgaW5mb3JtYXRpb24gKi9cbiAgcmVhZG9ubHkgdXNlcnBvb2w6IGNvZ25pdG8uSVVzZXJQb29sO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElKd3RBdXRoZW50aWNhdGlvbiB7XG4gIC8qKlxuICAgKiBUaGUgSldUIGlzc3VlciBlbmRwb2ludCBVUkxcbiAgICovXG4gIHJlYWRvbmx5IGlzc3VlclVybDogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVuZHBvaW50J3MgYXVkaWVuY2UuIFdpbGwgb25seSBiZSBjaGVja2VkIGlmIHByZXNlbnQuXG4gICAqL1xuICByZWFkb25seSBhdWRpZW5jZT86IHN0cmluZ1tdO1xuICAvKipcbiAgICogVGhlIEpXVCBlbmRwb2ludHMgSldLUyBzdG9yZS4gVW5sZXNzIHRoaXMgaXMgcHJvdmlkZWQsIE9JREMgZGlzY292ZXJ5IHdpbGwgYmUgdXNlZCB0byBmaW5kIHRoaXMuXG4gICAqL1xuICByZWFkb25seSBqd2tzVXJsPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENvZ25pdG9BdXRoZW50aWNhdGlvblByb3BzIHtcblxuICAvKiogTmFtZSBmb3IgdGhlIENvZ25pdG8gdXNlciBwb29sICovXG4gIHJlYWRvbmx5IHVzZXJQb29sTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgQ29nbml0byBMYW1iZGEgdHJpZ2dlcnNcbiAgICovXG4gIHJlYWRvbmx5IHRyaWdnZXJzPzoge1xuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgbGFtYmRhIGZ1bmN0aW9uIHRvIHRoZSBjdXN0b20gbWVzc2FnZSB0cmlnZ2VyXG4gICAgICpcbiAgICAgKiBDb2RlIGhhcyB0byByZXNpZGUgaW4gJy4vc3JjL2xhbWJkYS9jb2duaXRvLmN1c3RvbS1tZXNzYWdlLnRzJyB3aXRoIGEgbWV0aG9kICdoYW5kbGVyJ1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBjdXN0b21NZXNzYWdlcz86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGxhbWJkYSBmdW5jdGlvbiB0byB0aGUgcHJlIHRva2VuIGdlbmVyYXRpb24gdHJpZ2dlclxuICAgICAqXG4gICAgICogQ29kZSBoYXMgdG8gcmVzaWRlIGluICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtdG9rZW4tZ2VuZXJhdGlvbi50cycgd2l0aCBhIG1ldGhvZCAnaGFuZGxlcidcbiAgICAgKlxuICAgICAqIFlvdSBjYW4gb25seSB1c2UgcHJlVG9rZW5HZW5lcmF0aW9uIG9yIHByZVRva2VuR2VuZXJhdGlvbnYyLCBub3QgYm90aC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJlVG9rZW5HZW5lcmF0aW9uPzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEF0dGFjaGVzIGEgbGFtYmRhIGZ1bmN0aW9uIHRvIHRoZSBwcmUgdG9rZW4gZ2VuZXJhdGlvbiB0cmlnZ2VyXG4gICAgICogbmV3IHZlcnNpb24gb2YgdGhlIHByZSB0b2tlbiBnZW5lcmF0aW9uIHRyaWdnZXIgd2l0aCBBY2Nlc3NUb2tlbiBzdXBwb3J0XG4gICAgICpcbiAgICAgKiBDb2RlIGhhcyB0byByZXNpZGUgaW4gJy4vc3JjL2xhbWJkYS9jb2duaXRvLnByZS10b2tlbi1nZW5lcmF0aW9uLnRzJyB3aXRoIGEgbWV0aG9kICdoYW5kbGVyJ1xuICAgICAqXG4gICAgICogWW91IGNhbiBvbmx5IHVzZSBwcmVUb2tlbkdlbmVyYXRpb24gb3IgcHJlVG9rZW5HZW5lcmF0aW9udjIsIG5vdCBib3RoLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmVUb2tlbkdlbmVyYXRpb252Mj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGxhbWJkYSBmdW5jdGlvbiB0byB0aGUgcHJlIHNpZ24tdXAgdHJpZ2dlclxuICAgICAqXG4gICAgICogQ29kZSBoYXMgdG8gcmVzaWRlIGluICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtc2lnbnVwLnRzJyB3aXRoIGEgbWV0aG9kICdoYW5kbGVyJ1xuICAgICAqXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICByZWFkb25seSBwcmVTaWduVXA/OiBib29sZWFuO1xuICB9O1xuXG4gIC8qKlxuICAgKiBQcm9wZXJ0aWVzIG9mIHRoZSBDb2duaXRvIHVzZXIgcG9vbFxuICAgKi9cbiAgcmVhZG9ubHkgdXNlclBvb2xQcm9wcz86IGNvZ25pdG8uVXNlclBvb2xQcm9wcztcblxuICAvKipcbiAgICogQ29uZmlndXJlIFNFUyBtYWlsIHNlbmRpbmdcbiAgICovXG4gIHJlYWRvbmx5IHNlc0VtYWlsU2VuZGVyPzoge1xuICAgIC8qKlxuICAgICAqIEFXUyByZWdpb24gdG8gdXNlIGZvciBTRVNcbiAgICAgKi9cbiAgICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZW5kZXIgbmFtZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBTZW5kZXIgZW1haWwuIE5lZWRzIHRvIGJlIGFscmVhZHkgdmVyaWZpZWQgaW4gU0VTXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW1haWw6IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogR3JvdXBzIHRvIGNyZWF0ZSBpbiBDb2duaXRvIHVzZXIgcG9vbFxuICAgKiBLZXk6IGdyb3VwIG5hbWVcbiAgICogVmFsdWU6IGdyb3VwIGRlc2NyaXB0aW9uXG4gICAqL1xuICByZWFkb25seSBncm91cHM/OiB7XG4gICAgcmVhZG9ubHkgW25hbWU6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKiogQ3JlYXRlIGEgbmV3IENvZ25pdG8gSWRlbnRpdHkgUG9vbCBmb3IgdGhlIFVzZXIgcG9vbCAqL1xuICByZWFkb25seSBpZGVudGl0eVBvb2w/OiB7XG4gICAgLyoqIGNvbmZpZ3VyYXRpb24gb2YgdGhlIGlkZW50aXR5IHBvb2wgKi9cbiAgICByZWFkb25seSBwb29sQ29uZmlnPzogaWRlbnRpdHlwb29sLklkZW50aXR5UG9vbFByb3BzO1xuICB9O1xufVxuXG4vKipcbiAqIFRoZSBDb2duaXRvQXV0aGVudGljYXRpb24gY29uc3RydWN0IHNldHMgdXAgYSBDb2duaXRvIFVzZXIgUG9vbCB3aXRoIG9wdGlvbmFsIHRyaWdnZXJzIGFuZCBhbiBvcHRpb25hbCBDb2duaXRvIElkZW50aXR5IFBvb2wuXG4gKiBJdCBhbHNvIGNvbmZpZ3VyZXMgdmFyaW91cyBMYW1iZGEgdHJpZ2dlcnMgZm9yIGN1c3RvbSBtZXNzYWdlLCBwcmUtc2lnbiB1cCwgYW5kIHByZS10b2tlbiBnZW5lcmF0aW9uIGV2ZW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIENvZ25pdG9BdXRoZW50aWNhdGlvbiBleHRlbmRzIENvbnN0cnVjdCBpbXBsZW1lbnRzIElDb2duaXRvQXV0aGVudGljYXRpb24ge1xuXG4gIC8qKlxuICAgKiBUaGUgQ29nbml0byBVc2VyIFBvb2wgZm9yIHVzZXIgYXV0aGVudGljYXRpb24uXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXNlcnBvb2w6IGNvZ25pdG8uVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBDb2duaXRvIElkZW50aXR5IFBvb2wgZm9yIGZlZGVyYXRlZCBpZGVudGl0aWVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlkZW50aXR5UG9vbD86IGlkZW50aXR5cG9vbC5JZGVudGl0eVBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gZm9yIGN1c3RvbSBtZXNzYWdlIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tTWVzc2FnZUZ1bmN0aW9uPzogTGFtYmRhRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gZm9yIHByZS1zaWduIHVwIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlU2lnblVwRnVuY3Rpb24/OiBMYW1iZGFGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIG9wdGlvbmFsIExhbWJkYSBmdW5jdGlvbiBmb3IgcHJlLXRva2VuIGdlbmVyYXRpb24gdHJpZ2dlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbj86IExhbWJkYUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIENvZ25pdG9BdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoaXMgY29uc3RydWN0IGlzIGRlZmluZWQuXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElELlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyBvZiB0aGUgQ29nbml0b0F1dGhlbnRpY2F0aW9uIGNvbnN0cnVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2duaXRvQXV0aGVudGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnVzZXJwb29sID0gbmV3IGNvZ25pdG8uVXNlclBvb2wodGhpcywgJ1VzZXJQb29sJywge1xuICAgICAgdXNlclBvb2xOYW1lOiBwcm9wcy51c2VyUG9vbE5hbWUsXG4gICAgICBhdXRvVmVyaWZ5OiB7IGVtYWlsOiB0cnVlIH0sXG4gICAgICBwYXNzd29yZFBvbGljeToge1xuICAgICAgICBtaW5MZW5ndGg6IDEyLFxuICAgICAgICByZXF1aXJlRGlnaXRzOiBmYWxzZSxcbiAgICAgICAgcmVxdWlyZUxvd2VyY2FzZTogZmFsc2UsXG4gICAgICAgIHJlcXVpcmVTeW1ib2xzOiBmYWxzZSxcbiAgICAgICAgcmVxdWlyZVVwcGVyY2FzZTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgc3RhbmRhcmRBdHRyaWJ1dGVzOiB7XG4gICAgICAgIGZ1bGxuYW1lOiB7XG4gICAgICAgICAgbXV0YWJsZTogdHJ1ZSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgZW1haWw6IHtcbiAgICAgICAgICBtdXRhYmxlOiBmYWxzZSxcbiAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBzZWxmU2lnblVwRW5hYmxlZDogZmFsc2UsXG4gICAgICBzaWduSW5BbGlhc2VzOiB7XG4gICAgICAgIGVtYWlsOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHNpZ25JbkNhc2VTZW5zaXRpdmU6IGZhbHNlLFxuICAgICAgLi4ucHJvcHMudXNlclBvb2xQcm9wcyxcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy50cmlnZ2Vycz8uY3VzdG9tTWVzc2FnZXMpIHtcbiAgICAgIGNvbnN0IGVudHJ5RmlsZSA9ICcuL3NyYy9sYW1iZGEvY29nbml0by5jdXN0b20tbWVzc2FnZS50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5DdXN0b21NZXNzYWdlVHJpZ2dlckV2ZW50KTogUHJvbWlzZTxBV1NMYW1iZGEuQ3VzdG9tTWVzc2FnZVRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhldmVudCk7XG5cbiAgaWYgKGV2ZW50LnRyaWdnZXJTb3VyY2UgPT09ICdDdXN0b21NZXNzYWdlX0FkbWluQ3JlYXRlVXNlcicpIHtcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbFN1YmplY3QgPSAnJztcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbE1lc3NhZ2UgPSAnJztcbiAgfSBlbHNlIGlmIChldmVudC50cmlnZ2VyU291cmNlID09PSAnQ3VzdG9tTWVzc2FnZV9Gb3Jnb3RQYXNzd29yZCcpIHtcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbFN1YmplY3QgPSAnJztcbiAgICAvLyBldmVudC5yZXNwb25zZS5lbWFpbE1lc3NhZ2UgPSAnJztcbiAgfSAvLyAuLi5cblxuICByZXR1cm4gZXZlbnQ7XG59YCwge1xuICAgICAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jdXN0b21NZXNzYWdlRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ0N1c3RvbU1lc3NhZ2VGdW5jdGlvbicsIHtcbiAgICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgICAgbGFtYmRhT3B0aW9uczoge1xuICAgICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgICBsb2FkZXI6IHtcbiAgICAgICAgICAgICAgJy5odG1sJzogJ3RleHQnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXNlcnBvb2wuYWRkVHJpZ2dlcihjb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLkNVU1RPTV9NRVNTQUdFLCB0aGlzLmN1c3RvbU1lc3NhZ2VGdW5jdGlvbik7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLnRyaWdnZXJzPy5wcmVUb2tlbkdlbmVyYXRpb252MiAmJiBwcm9wcy50cmlnZ2Vycz8ucHJlVG9rZW5HZW5lcmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1lvdSBjYW4gb25seSB1c2UgcHJlVG9rZW5HZW5lcmF0aW9uIG9yIHByZVRva2VuR2VuZXJhdGlvbnYyLCBub3QgYm90aC4nKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMudHJpZ2dlcnM/LnByZVRva2VuR2VuZXJhdGlvbikge1xuICAgICAgY29uc3QgZW50cnlGaWxlID0gJy4vc3JjL2xhbWJkYS9jb2duaXRvLnByZS10b2tlbi1nZW5lcmF0aW9uLnRzJztcblxuICAgICAgaWYgKCFmcy5leGlzdHNTeW5jKGVudHJ5RmlsZSkpIHtcbiAgICAgICAgZnMud3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIGBleHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihldmVudDogQVdTTGFtYmRhLlByZVRva2VuR2VuZXJhdGlvblRyaWdnZXJFdmVudCk6IFByb21pc2U8QVdTTGFtYmRhLlByZVRva2VuR2VuZXJhdGlvblRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuXG4gIC8vIG1vZGlmeSBldmVudC5yZXNwb25zZSBoZXJlIC4uLlxuXG4gIHJldHVybiBldmVudDtcbn1gLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdQcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbicsIHtcbiAgICAgICAgbGFtYmRhT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIH0sXG4gICAgICAgIGVudHJ5OiBlbnRyeUZpbGUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXNlcnBvb2wuYWRkVHJpZ2dlcihjb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLlBSRV9UT0tFTl9HRU5FUkFUSU9OLCB0aGlzLnByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMudHJpZ2dlcnM/LnByZVRva2VuR2VuZXJhdGlvbnYyKSB7XG4gICAgICBjb25zdCBlbnRyeUZpbGUgPSAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXRva2VuLWdlbmVyYXRpb24udHMnO1xuXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZW50cnlGaWxlKSkge1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuUHJlVG9rZW5HZW5lcmF0aW9uVjJUcmlnZ2VyRXZlbnQpOiBQcm9taXNlPEFXU0xhbWJkYS5QcmVUb2tlbkdlbmVyYXRpb25WMlRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuXG4gIC8vIG1vZGlmeSBldmVudC5yZXNwb25zZSBoZXJlIC4uLlxuXG4gIHJldHVybiBldmVudDtcbn1gLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdQcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbicsIHtcbiAgICAgICAgbGFtYmRhT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIH0sXG4gICAgICAgIGVudHJ5OiBlbnRyeUZpbGUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXNlcnBvb2wuYWRkVHJpZ2dlcihjb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLlBSRV9UT0tFTl9HRU5FUkFUSU9OX0NPTkZJRywgdGhpcy5wcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbiwgY29nbml0by5MYW1iZGFWZXJzaW9uLlYyXzApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy50cmlnZ2Vycz8ucHJlU2lnblVwKSB7XG4gICAgICBjb25zdCBlbnRyeUZpbGUgPSAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXNpZ251cC50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5QcmVTaWduVXBUcmlnZ2VyRXZlbnQpOiBQcm9taXNlPEFXU0xhbWJkYS5QcmVTaWduVXBUcmlnZ2VyRXZlbnQ+IHtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAvLyBDb25maXJtIHRoZSB1c2VyXG4gIC8vIGV2ZW50LnJlc3BvbnNlLmF1dG9Db25maXJtVXNlciA9IHRydWU7XG5cbiAgLy8gU2V0IHRoZSBlbWFpbCBhcyB2ZXJpZmllZCBpZiBpdCBpcyBpbiB0aGUgcmVxdWVzdFxuICAvLyBpZiAoZXZlbnQucmVxdWVzdC51c2VyQXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eSgnZW1haWwnKSkge1xuICAvLyAgIGV2ZW50LnJlc3BvbnNlLmF1dG9WZXJpZnlFbWFpbCA9IHRydWU7XG4gIC8vIH1cblxuICAvLyBTZXQgdGhlIHBob25lIG51bWJlciBhcyB2ZXJpZmllZCBpZiBpdCBpcyBpbiB0aGUgcmVxdWVzdFxuICAvLyBpZiAoZXZlbnQucmVxdWVzdC51c2VyQXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eSgncGhvbmVfbnVtYmVyJykpIHtcbiAgLy8gICBldmVudC5yZXNwb25zZS5hdXRvVmVyaWZ5UGhvbmUgPSB0cnVlO1xuICAvLyB9XG5cbiAgcmV0dXJuIGV2ZW50O1xufWAsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJlU2lnblVwRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ1ByZVNpZ25VcEZ1bmN0aW9uJywge1xuICAgICAgICBsYW1iZGFPcHRpb25zOiB7XG4gICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgICAgfSxcbiAgICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy51c2VycG9vbC5hZGRUcmlnZ2VyKGNvZ25pdG8uVXNlclBvb2xPcGVyYXRpb24uUFJFX1NJR05fVVAsIHRoaXMucHJlU2lnblVwRnVuY3Rpb24pO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy5zZXNFbWFpbFNlbmRlcikge1xuICAgICAgKHRoaXMudXNlcnBvb2wubm9kZS5kZWZhdWx0Q2hpbGQgYXMgY29nbml0by5DZm5Vc2VyUG9vbCkuZW1haWxDb25maWd1cmF0aW9uID0ge1xuICAgICAgICBlbWFpbFNlbmRpbmdBY2NvdW50OiAnREVWRUxPUEVSJyxcbiAgICAgICAgZnJvbTogYCR7cHJvcHMuc2VzRW1haWxTZW5kZXIubmFtZX0gPCR7cHJvcHMuc2VzRW1haWxTZW5kZXIuZW1haWx9PmAsXG4gICAgICAgIHNvdXJjZUFybjogYGFybjphd3M6c2VzOiR7cHJvcHMuc2VzRW1haWxTZW5kZXIucmVnaW9uID8/IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbn06JHtTdGFjay5vZih0aGlzKS5hY2NvdW50fTppZGVudGl0eS8ke3Byb3BzLnNlc0VtYWlsU2VuZGVyLmVtYWlsfWAsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgZ3JvdXBOYW1lIGluIHByb3BzLmdyb3Vwcykge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwcm9wcy5ncm91cHMsIGdyb3VwTmFtZSkpIHtcbiAgICAgICAgY29uc3QgZ3JvdXBEZXNjcmlwdGlvbiA9IHByb3BzLmdyb3Vwc1tncm91cE5hbWVdO1xuICAgICAgICBuZXcgY29nbml0by5DZm5Vc2VyUG9vbEdyb3VwKHRoaXMsIGBHcm91cCR7Z3JvdXBOYW1lfWAsIHtcbiAgICAgICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJwb29sLnVzZXJQb29sSWQsXG4gICAgICAgICAgZ3JvdXBOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBncm91cERlc2NyaXB0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgeyBrZXk6IENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgdmFsdWU6IHRoaXMudXNlcnBvb2wudXNlclBvb2xJZCB9KTtcblxuICAgIGlmIChwcm9wcy5pZGVudGl0eVBvb2wpIHtcbiAgICAgIHRoaXMuaWRlbnRpdHlQb29sID0gbmV3IGlkZW50aXR5cG9vbC5JZGVudGl0eVBvb2wodGhpcywgJ0lkZW50aXR5UG9vbCcsIHtcbiAgICAgICAgYWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzOiB0cnVlLFxuICAgICAgICBpZGVudGl0eVBvb2xOYW1lOiBwcm9wcy51c2VyUG9vbE5hbWUgKyAnLWlkZW50aXR5JyxcbiAgICAgICAgLi4ucHJvcHMuaWRlbnRpdHlQb29sLnBvb2xDb25maWcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzOiB7XG4gICAgICAgICAgdXNlclBvb2xzOiBbbmV3IGlkZW50aXR5cG9vbC5Vc2VyUG9vbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoeyB1c2VyUG9vbDogdGhpcy51c2VycG9vbCB9KV0sXG4gICAgICAgICAgLi4ucHJvcHMuaWRlbnRpdHlQb29sLnBvb2xDb25maWc/LmF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lELCB7XG4gICAgICAgIGtleTogQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfSUQsXG4gICAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC5pZGVudGl0eVBvb2xJZCxcbiAgICAgIH0pO1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9BVVRIX1JPTEVBUk4sIHtcbiAgICAgICAga2V5OiBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9BVVRIX1JPTEVBUk4sXG4gICAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC5hdXRoZW50aWNhdGVkUm9sZS5yb2xlQXJuLFxuICAgICAgfSk7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX1VOQVVUSF9ST0xFQVJOLCB7XG4gICAgICAgIGtleTogQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfVU5BVVRIX1JPTEVBUk4sXG4gICAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC51bmF1dGhlbnRpY2F0ZWRSb2xlLnJvbGVBcm4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlclBvb2xDbGllbnQoaWQ6IHN0cmluZywgb3B0aW9uczogVXNlclBvb2xDbGllbnRPcHRpb25zKTogVXNlclBvb2xDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMudXNlcnBvb2wuYWRkQ2xpZW50KGlkLCBvcHRpb25zKTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xfQ0xJRU5USUR9JHtpZH1gLCB7XG4gICAgICBrZXk6IGAke0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xfQ0xJRU5USUR9JHtpZH1gLFxuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaWRlbnRpdHlQb29sKSB7XG4gICAgICB0aGlzLmlkZW50aXR5UG9vbC5hZGRVc2VyUG9vbEF1dGhlbnRpY2F0aW9uKFxuICAgICAgICBuZXcgaWRlbnRpdHlwb29sLlVzZXJQb29sQXV0aGVudGljYXRpb25Qcm92aWRlcih7XG4gICAgICAgICAgdXNlclBvb2w6IHRoaXMudXNlcnBvb2wsXG4gICAgICAgICAgdXNlclBvb2xDbGllbnQ6IGNsaWVudCxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxufSJdfQ==
251
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aGVudGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9hdXRoZW50aWNhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsNkNBTXFCO0FBQ3JCLDJDQUF1QztBQUN2QyxpQ0FBd0M7QUFDeEMsK0NBQThQO0FBZ0g5UDs7O0dBR0c7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBMkJsRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWlDOztRQUN6RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSx5QkFBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ3pELFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWTtZQUNoQyxVQUFVLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFO1lBQzNCLGNBQWMsRUFBRTtnQkFDZCxTQUFTLEVBQUUsRUFBRTtnQkFDYixhQUFhLEVBQUUsS0FBSztnQkFDcEIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsY0FBYyxFQUFFLEtBQUs7Z0JBQ3JCLGdCQUFnQixFQUFFLEtBQUs7YUFDeEI7WUFDRCxrQkFBa0IsRUFBRTtnQkFDbEIsUUFBUSxFQUFFO29CQUNSLE9BQU8sRUFBRSxJQUFJO29CQUNiLFFBQVEsRUFBRSxJQUFJO2lCQUNmO2dCQUNELEtBQUssRUFBRTtvQkFDTCxPQUFPLEVBQUUsS0FBSztvQkFDZCxRQUFRLEVBQUUsSUFBSTtpQkFDZjthQUNGO1lBQ0QsaUJBQWlCLEVBQUUsS0FBSztZQUN4QixhQUFhLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDWjtZQUNELG1CQUFtQixFQUFFLEtBQUs7WUFDMUIsR0FBRyxLQUFL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QUksQ0FBQyxRQUFRO2dCQUN2QixjQUFjLEVBQUUsTUFBTTthQUN2QixDQUFDLENBQ0gsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0NBRUY7QUFoUUQsc0RBZ1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHtcbiAgYXdzX2NvZ25pdG8sXG4gIGF3c19jb2duaXRvX2lkZW50aXR5cG9vbCxcbiAgQ2ZuT3V0cHV0LFxuICBEdXJhdGlvbixcbiAgU3RhY2ssXG59IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24gfSBmcm9tICcuL2Z1bmMnO1xuaW1wb3J0IHsgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfQVVUSF9ST0xFQVJOLCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfVU5BVVRIX1JPTEVBUk4sIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTF9DTElFTlRJRCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29nbml0b0F1dGhlbnRpY2F0aW9uIHtcbiAgLyoqIFRoZSBDb2duaXRvIHVzZXIgcG9vbCB0aGF0IGhvbGRzIHVzZXIgaW5mb3JtYXRpb24gKi9cbiAgcmVhZG9ubHkgdXNlcnBvb2w6IGF3c19jb2duaXRvLklVc2VyUG9vbDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJSnd0QXV0aGVudGljYXRpb24ge1xuICAvKipcbiAgICogVGhlIEpXVCBpc3N1ZXIgZW5kcG9pbnQgVVJMXG4gICAqL1xuICByZWFkb25seSBpc3N1ZXJVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludCdzIGF1ZGllbmNlLiBXaWxsIG9ubHkgYmUgY2hlY2tlZCBpZiBwcmVzZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgYXVkaWVuY2U/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIFRoZSBKV1QgZW5kcG9pbnRzIEpXS1Mgc3RvcmUuIFVubGVzcyB0aGlzIGlzIHByb3ZpZGVkLCBPSURDIGRpc2NvdmVyeSB3aWxsIGJlIHVzZWQgdG8gZmluZCB0aGlzLlxuICAgKi9cbiAgcmVhZG9ubHkgandrc1VybD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb2duaXRvQXV0aGVudGljYXRpb25Qcm9wcyB7XG5cbiAgLyoqIE5hbWUgZm9yIHRoZSBDb2duaXRvIHVzZXIgcG9vbCAqL1xuICByZWFkb25seSB1c2VyUG9vbE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ29uZmlndXJlIENvZ25pdG8gTGFtYmRhIHRyaWdnZXJzXG4gICAqL1xuICByZWFkb25seSB0cmlnZ2Vycz86IHtcbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGxhbWJkYSBmdW5jdGlvbiB0byB0aGUgY3VzdG9tIG1lc3NhZ2UgdHJpZ2dlclxuICAgICAqXG4gICAgICogQ29kZSBoYXMgdG8gcmVzaWRlIGluICcuL3NyYy9sYW1iZGEvY29nbml0by5jdXN0b20tbWVzc2FnZS50cycgd2l0aCBhIG1ldGhvZCAnaGFuZGxlcidcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgY3VzdG9tTWVzc2FnZXM/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQXR0YWNoZXMgYSBsYW1iZGEgZnVuY3Rpb24gdG8gdGhlIHByZSB0b2tlbiBnZW5lcmF0aW9uIHRyaWdnZXJcbiAgICAgKlxuICAgICAqIENvZGUgaGFzIHRvIHJlc2lkZSBpbiAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXRva2VuLWdlbmVyYXRpb24udHMnIHdpdGggYSBtZXRob2QgJ2hhbmRsZXInXG4gICAgICpcbiAgICAgKiBZb3UgY2FuIG9ubHkgdXNlIHByZVRva2VuR2VuZXJhdGlvbiBvciBwcmVUb2tlbkdlbmVyYXRpb252Miwgbm90IGJvdGguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHByZVRva2VuR2VuZXJhdGlvbj86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBdHRhY2hlcyBhIGxhbWJkYSBmdW5jdGlvbiB0byB0aGUgcHJlIHRva2VuIGdlbmVyYXRpb24gdHJpZ2dlclxuICAgICAqIG5ldyB2ZXJzaW9uIG9mIHRoZSBwcmUgdG9rZW4gZ2VuZXJhdGlvbiB0cmlnZ2VyIHdpdGggQWNjZXNzVG9rZW4gc3VwcG9ydFxuICAgICAqXG4gICAgICogQ29kZSBoYXMgdG8gcmVzaWRlIGluICcuL3NyYy9sYW1iZGEvY29nbml0by5wcmUtdG9rZW4tZ2VuZXJhdGlvbi50cycgd2l0aCBhIG1ldGhvZCAnaGFuZGxlcidcbiAgICAgKlxuICAgICAqIFlvdSBjYW4gb25seSB1c2UgcHJlVG9rZW5HZW5lcmF0aW9uIG9yIHByZVRva2VuR2VuZXJhdGlvbnYyLCBub3QgYm90aC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJlVG9rZW5HZW5lcmF0aW9udjI/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQXR0YWNoZXMgYSBsYW1iZGEgZnVuY3Rpb24gdG8gdGhlIHByZSBzaWduLXVwIHRyaWdnZXJcbiAgICAgKlxuICAgICAqIENvZGUgaGFzIHRvIHJlc2lkZSBpbiAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXNpZ251cC50cycgd2l0aCBhIG1ldGhvZCAnaGFuZGxlcidcbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJlU2lnblVwPzogYm9vbGVhbjtcbiAgfTtcblxuICAvKipcbiAgICogUHJvcGVydGllcyBvZiB0aGUgQ29nbml0byB1c2VyIHBvb2xcbiAgICovXG4gIHJlYWRvbmx5IHVzZXJQb29sUHJvcHM/OiBhd3NfY29nbml0by5Vc2VyUG9vbFByb3BzO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmUgU0VTIG1haWwgc2VuZGluZ1xuICAgKi9cbiAgcmVhZG9ubHkgc2VzRW1haWxTZW5kZXI/OiB7XG4gICAgLyoqXG4gICAgICogQVdTIHJlZ2lvbiB0byB1c2UgZm9yIFNFU1xuICAgICAqL1xuICAgIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNlbmRlciBuYW1lXG4gICAgICovXG4gICAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFNlbmRlciBlbWFpbC4gTmVlZHMgdG8gYmUgYWxyZWFkeSB2ZXJpZmllZCBpbiBTRVNcbiAgICAgKi9cbiAgICByZWFkb25seSBlbWFpbDogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHcm91cHMgdG8gY3JlYXRlIGluIENvZ25pdG8gdXNlciBwb29sXG4gICAqIEtleTogZ3JvdXAgbmFtZVxuICAgKiBWYWx1ZTogZ3JvdXAgZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGdyb3Vwcz86IHtcbiAgICByZWFkb25seSBbbmFtZTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuXG4gIC8qKiBDcmVhdGUgYSBuZXcgQ29nbml0byBJZGVudGl0eSBQb29sIGZvciB0aGUgVXNlciBwb29sICovXG4gIHJlYWRvbmx5IGlkZW50aXR5UG9vbD86IHtcbiAgICAvKiogY29uZmlndXJhdGlvbiBvZiB0aGUgaWRlbnRpdHkgcG9vbCAqL1xuICAgIHJlYWRvbmx5IHBvb2xDb25maWc/OiBhd3NfY29nbml0b19pZGVudGl0eXBvb2wuSWRlbnRpdHlQb29sUHJvcHM7XG4gIH07XG59XG5cbi8qKlxuICogVGhlIENvZ25pdG9BdXRoZW50aWNhdGlvbiBjb25zdHJ1Y3Qgc2V0cyB1cCBhIENvZ25pdG8gVXNlciBQb29sIHdpdGggb3B0aW9uYWwgdHJpZ2dlcnMgYW5kIGFuIG9wdGlvbmFsIENvZ25pdG8gSWRlbnRpdHkgUG9vbC5cbiAqIEl0IGFsc28gY29uZmlndXJlcyB2YXJpb3VzIExhbWJkYSB0cmlnZ2VycyBmb3IgY3VzdG9tIG1lc3NhZ2UsIHByZS1zaWduIHVwLCBhbmQgcHJlLXRva2VuIGdlbmVyYXRpb24gZXZlbnRzLlxuICovXG5leHBvcnQgY2xhc3MgQ29nbml0b0F1dGhlbnRpY2F0aW9uIGV4dGVuZHMgQ29uc3RydWN0IGltcGxlbWVudHMgSUNvZ25pdG9BdXRoZW50aWNhdGlvbiB7XG5cbiAgLyoqXG4gICAqIFRoZSBDb2duaXRvIFVzZXIgUG9vbCBmb3IgdXNlciBhdXRoZW50aWNhdGlvbi5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB1c2VycG9vbDogYXdzX2NvZ25pdG8uVXNlclBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBDb2duaXRvIElkZW50aXR5IFBvb2wgZm9yIGZlZGVyYXRlZCBpZGVudGl0aWVzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlkZW50aXR5UG9vbD86IGF3c19jb2duaXRvX2lkZW50aXR5cG9vbC5JZGVudGl0eVBvb2w7XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gZm9yIGN1c3RvbSBtZXNzYWdlIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tTWVzc2FnZUZ1bmN0aW9uPzogTGFtYmRhRnVuY3Rpb247XG5cbiAgLyoqXG4gICAqIFRoZSBvcHRpb25hbCBMYW1iZGEgZnVuY3Rpb24gZm9yIHByZS1zaWduIHVwIHRyaWdnZXIuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJlU2lnblVwRnVuY3Rpb24/OiBMYW1iZGFGdW5jdGlvbjtcblxuICAvKipcbiAgICogVGhlIG9wdGlvbmFsIExhbWJkYSBmdW5jdGlvbiBmb3IgcHJlLXRva2VuIGdlbmVyYXRpb24gdHJpZ2dlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBwcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbj86IExhbWJkYUZ1bmN0aW9uO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIENvZ25pdG9BdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICogQHBhcmFtIHNjb3BlIC0gVGhlIHNjb3BlIGluIHdoaWNoIHRoaXMgY29uc3RydWN0IGlzIGRlZmluZWQuXG4gICAqIEBwYXJhbSBpZCAtIFRoZSBzY29wZWQgY29uc3RydWN0IElELlxuICAgKiBAcGFyYW0gcHJvcHMgLSBUaGUgcHJvcGVydGllcyBvZiB0aGUgQ29nbml0b0F1dGhlbnRpY2F0aW9uIGNvbnN0cnVjdC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDb2duaXRvQXV0aGVudGljYXRpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICB0aGlzLnVzZXJwb29sID0gbmV3IGF3c19jb2duaXRvLlVzZXJQb29sKHRoaXMsICdVc2VyUG9vbCcsIHtcbiAgICAgIHVzZXJQb29sTmFtZTogcHJvcHMudXNlclBvb2xOYW1lLFxuICAgICAgYXV0b1ZlcmlmeTogeyBlbWFpbDogdHJ1ZSB9LFxuICAgICAgcGFzc3dvcmRQb2xpY3k6IHtcbiAgICAgICAgbWluTGVuZ3RoOiAxMixcbiAgICAgICAgcmVxdWlyZURpZ2l0czogZmFsc2UsXG4gICAgICAgIHJlcXVpcmVMb3dlcmNhc2U6IGZhbHNlLFxuICAgICAgICByZXF1aXJlU3ltYm9sczogZmFsc2UsXG4gICAgICAgIHJlcXVpcmVVcHBlcmNhc2U6IGZhbHNlLFxuICAgICAgfSxcbiAgICAgIHN0YW5kYXJkQXR0cmlidXRlczoge1xuICAgICAgICBmdWxsbmFtZToge1xuICAgICAgICAgIG11dGFibGU6IHRydWUsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIGVtYWlsOiB7XG4gICAgICAgICAgbXV0YWJsZTogZmFsc2UsXG4gICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc2VsZlNpZ25VcEVuYWJsZWQ6IGZhbHNlLFxuICAgICAgc2lnbkluQWxpYXNlczoge1xuICAgICAgICBlbWFpbDogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBzaWduSW5DYXNlU2Vuc2l0aXZlOiBmYWxzZSxcbiAgICAgIC4uLnByb3BzLnVzZXJQb29sUHJvcHMsXG4gICAgfSk7XG5cbiAgICBpZiAocHJvcHMudHJpZ2dlcnM/LmN1c3RvbU1lc3NhZ2VzKSB7XG4gICAgICBjb25zdCBlbnRyeUZpbGUgPSAnLi9zcmMvbGFtYmRhL2NvZ25pdG8uY3VzdG9tLW1lc3NhZ2UudHMnO1xuXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZW50cnlGaWxlKSkge1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuQ3VzdG9tTWVzc2FnZVRyaWdnZXJFdmVudCk6IFByb21pc2U8QVdTTGFtYmRhLkN1c3RvbU1lc3NhZ2VUcmlnZ2VyRXZlbnQ+IHtcbiAgY29uc29sZS5sb2coZXZlbnQpO1xuXG4gIGlmIChldmVudC50cmlnZ2VyU291cmNlID09PSAnQ3VzdG9tTWVzc2FnZV9BZG1pbkNyZWF0ZVVzZXInKSB7XG4gICAgLy8gZXZlbnQucmVzcG9uc2UuZW1haWxTdWJqZWN0ID0gJyc7XG4gICAgLy8gZXZlbnQucmVzcG9uc2UuZW1haWxNZXNzYWdlID0gJyc7XG4gIH0gZWxzZSBpZiAoZXZlbnQudHJpZ2dlclNvdXJjZSA9PT0gJ0N1c3RvbU1lc3NhZ2VfRm9yZ290UGFzc3dvcmQnKSB7XG4gICAgLy8gZXZlbnQucmVzcG9uc2UuZW1haWxTdWJqZWN0ID0gJyc7XG4gICAgLy8gZXZlbnQucmVzcG9uc2UuZW1haWxNZXNzYWdlID0gJyc7XG4gIH0gLy8gLi4uXG5cbiAgcmV0dXJuIGV2ZW50O1xufWAsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuY3VzdG9tTWVzc2FnZUZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdDdXN0b21NZXNzYWdlRnVuY3Rpb24nLCB7XG4gICAgICAgIGVudHJ5OiBlbnRyeUZpbGUsXG4gICAgICAgIGxhbWJkYU9wdGlvbnM6IHtcbiAgICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgICAgbG9hZGVyOiB7XG4gICAgICAgICAgICAgICcuaHRtbCc6ICd0ZXh0JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0aW1lb3V0OiBEdXJhdGlvbi5zZWNvbmRzKDUpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICB0aGlzLnVzZXJwb29sLmFkZFRyaWdnZXIoYXdzX2NvZ25pdG8uVXNlclBvb2xPcGVyYXRpb24uQ1VTVE9NX01FU1NBR0UsIHRoaXMuY3VzdG9tTWVzc2FnZUZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMudHJpZ2dlcnM/LnByZVRva2VuR2VuZXJhdGlvbnYyICYmIHByb3BzLnRyaWdnZXJzPy5wcmVUb2tlbkdlbmVyYXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGNhbiBvbmx5IHVzZSBwcmVUb2tlbkdlbmVyYXRpb24gb3IgcHJlVG9rZW5HZW5lcmF0aW9udjIsIG5vdCBib3RoLicpO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy50cmlnZ2Vycz8ucHJlVG9rZW5HZW5lcmF0aW9uKSB7XG4gICAgICBjb25zdCBlbnRyeUZpbGUgPSAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXRva2VuLWdlbmVyYXRpb24udHMnO1xuXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZW50cnlGaWxlKSkge1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuUHJlVG9rZW5HZW5lcmF0aW9uVHJpZ2dlckV2ZW50KTogUHJvbWlzZTxBV1NMYW1iZGEuUHJlVG9rZW5HZW5lcmF0aW9uVHJpZ2dlckV2ZW50PiB7XG4gIGNvbnNvbGUubG9nKEpTT04uc3RyaW5naWZ5KGV2ZW50KSk7XG5cbiAgLy8gbW9kaWZ5IGV2ZW50LnJlc3BvbnNlIGhlcmUgLi4uXG5cbiAgcmV0dXJuIGV2ZW50O1xufWAsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJlVG9rZW5HZW5lcmF0aW9uRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ1ByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uJywge1xuICAgICAgICBsYW1iZGFPcHRpb25zOiB7XG4gICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgICAgfSxcbiAgICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy51c2VycG9vbC5hZGRUcmlnZ2VyKGF3c19jb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLlBSRV9UT0tFTl9HRU5FUkFUSU9OLCB0aGlzLnByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMudHJpZ2dlcnM/LnByZVRva2VuR2VuZXJhdGlvbnYyKSB7XG4gICAgICBjb25zdCBlbnRyeUZpbGUgPSAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXRva2VuLWdlbmVyYXRpb24udHMnO1xuXG4gICAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZW50cnlGaWxlKSkge1xuICAgICAgICBmcy53cml0ZUZpbGVTeW5jKGVudHJ5RmlsZSwgYGV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKGV2ZW50OiBBV1NMYW1iZGEuUHJlVG9rZW5HZW5lcmF0aW9uVjJUcmlnZ2VyRXZlbnQpOiBQcm9taXNlPEFXU0xhbWJkYS5QcmVUb2tlbkdlbmVyYXRpb25WMlRyaWdnZXJFdmVudD4ge1xuICBjb25zb2xlLmxvZyhKU09OLnN0cmluZ2lmeShldmVudCkpO1xuXG4gIC8vIG1vZGlmeSBldmVudC5yZXNwb25zZSBoZXJlIC4uLlxuXG4gIHJldHVybiBldmVudDtcbn1gLCB7XG4gICAgICAgICAgZW5jb2Rpbmc6ICd1dGYtOCcsXG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsICdQcmVUb2tlbkdlbmVyYXRpb25GdW5jdGlvbicsIHtcbiAgICAgICAgbGFtYmRhT3B0aW9uczoge1xuICAgICAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoNSksXG4gICAgICAgIH0sXG4gICAgICAgIGVudHJ5OiBlbnRyeUZpbGUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMudXNlcnBvb2wuYWRkVHJpZ2dlcihcbiAgICAgICAgYXdzX2NvZ25pdG8uVXNlclBvb2xPcGVyYXRpb24uUFJFX1RPS0VOX0dFTkVSQVRJT05fQ09ORklHLFxuICAgICAgICB0aGlzLnByZVRva2VuR2VuZXJhdGlvbkZ1bmN0aW9uLFxuICAgICAgICBhd3NfY29nbml0by5MYW1iZGFWZXJzaW9uLlYyXzAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChwcm9wcy50cmlnZ2Vycz8ucHJlU2lnblVwKSB7XG4gICAgICBjb25zdCBlbnRyeUZpbGUgPSAnLi9zcmMvbGFtYmRhL2NvZ25pdG8ucHJlLXNpZ251cC50cyc7XG5cbiAgICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQ6IEFXU0xhbWJkYS5QcmVTaWduVXBUcmlnZ2VyRXZlbnQpOiBQcm9taXNlPEFXU0xhbWJkYS5QcmVTaWduVXBUcmlnZ2VyRXZlbnQ+IHtcbiAgY29uc29sZS5sb2coSlNPTi5zdHJpbmdpZnkoZXZlbnQpKTtcblxuICAvLyBDb25maXJtIHRoZSB1c2VyXG4gIC8vIGV2ZW50LnJlc3BvbnNlLmF1dG9Db25maXJtVXNlciA9IHRydWU7XG5cbiAgLy8gU2V0IHRoZSBlbWFpbCBhcyB2ZXJpZmllZCBpZiBpdCBpcyBpbiB0aGUgcmVxdWVzdFxuICAvLyBpZiAoZXZlbnQucmVxdWVzdC51c2VyQXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eSgnZW1haWwnKSkge1xuICAvLyAgIGV2ZW50LnJlc3BvbnNlLmF1dG9WZXJpZnlFbWFpbCA9IHRydWU7XG4gIC8vIH1cblxuICAvLyBTZXQgdGhlIHBob25lIG51bWJlciBhcyB2ZXJpZmllZCBpZiBpdCBpcyBpbiB0aGUgcmVxdWVzdFxuICAvLyBpZiAoZXZlbnQucmVxdWVzdC51c2VyQXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eSgncGhvbmVfbnVtYmVyJykpIHtcbiAgLy8gICBldmVudC5yZXNwb25zZS5hdXRvVmVyaWZ5UGhvbmUgPSB0cnVlO1xuICAvLyB9XG5cbiAgcmV0dXJuIGV2ZW50O1xufWAsIHtcbiAgICAgICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucHJlU2lnblVwRnVuY3Rpb24gPSBuZXcgTGFtYmRhRnVuY3Rpb24odGhpcywgJ1ByZVNpZ25VcEZ1bmN0aW9uJywge1xuICAgICAgICBsYW1iZGFPcHRpb25zOiB7XG4gICAgICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgICAgfSxcbiAgICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy51c2VycG9vbC5hZGRUcmlnZ2VyKGF3c19jb2duaXRvLlVzZXJQb29sT3BlcmF0aW9uLlBSRV9TSUdOX1VQLCB0aGlzLnByZVNpZ25VcEZ1bmN0aW9uKTtcbiAgICB9XG5cbiAgICBpZiAocHJvcHMuc2VzRW1haWxTZW5kZXIpIHtcbiAgICAgICh0aGlzLnVzZXJwb29sLm5vZGUuZGVmYXVsdENoaWxkIGFzIGF3c19jb2duaXRvLkNmblVzZXJQb29sKS5lbWFpbENvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGVtYWlsU2VuZGluZ0FjY291bnQ6ICdERVZFTE9QRVInLFxuICAgICAgICBmcm9tOiBgJHtwcm9wcy5zZXNFbWFpbFNlbmRlci5uYW1lfSA8JHtwcm9wcy5zZXNFbWFpbFNlbmRlci5lbWFpbH0+YCxcbiAgICAgICAgc291cmNlQXJuOiBgYXJuOmF3czpzZXM6JHtwcm9wcy5zZXNFbWFpbFNlbmRlci5yZWdpb24gPz8gU3RhY2sub2YodGhpcykucmVnaW9ufToke1N0YWNrLm9mKHRoaXMpLmFjY291bnR9OmlkZW50aXR5LyR7cHJvcHMuc2VzRW1haWxTZW5kZXIuZW1haWx9YCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBncm91cE5hbWUgaW4gcHJvcHMuZ3JvdXBzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHByb3BzLmdyb3VwcywgZ3JvdXBOYW1lKSkge1xuICAgICAgICBjb25zdCBncm91cERlc2NyaXB0aW9uID0gcHJvcHMuZ3JvdXBzW2dyb3VwTmFtZV07XG4gICAgICAgIG5ldyBhd3NfY29nbml0by5DZm5Vc2VyUG9vbEdyb3VwKHRoaXMsIGBHcm91cCR7Z3JvdXBOYW1lfWAsIHtcbiAgICAgICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJwb29sLnVzZXJQb29sSWQsXG4gICAgICAgICAgZ3JvdXBOYW1lLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBncm91cERlc2NyaXB0aW9uLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgeyBrZXk6IENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCwgdmFsdWU6IHRoaXMudXNlcnBvb2wudXNlclBvb2xJZCB9KTtcblxuICAgIGlmIChwcm9wcy5pZGVudGl0eVBvb2wpIHtcbiAgICAgIHRoaXMuaWRlbnRpdHlQb29sID0gbmV3IGF3c19jb2duaXRvX2lkZW50aXR5cG9vbC5JZGVudGl0eVBvb2wodGhpcywgJ0lkZW50aXR5UG9vbCcsIHtcbiAgICAgICAgYWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzOiB0cnVlLFxuICAgICAgICBpZGVudGl0eVBvb2xOYW1lOiBwcm9wcy51c2VyUG9vbE5hbWUgKyAnLWlkZW50aXR5JyxcbiAgICAgICAgLi4ucHJvcHMuaWRlbnRpdHlQb29sLnBvb2xDb25maWcsXG4gICAgICAgIGF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzOiB7XG4gICAgICAgICAgdXNlclBvb2xzOiBbbmV3IGF3c19jb2duaXRvX2lkZW50aXR5cG9vbC5Vc2VyUG9vbEF1dGhlbnRpY2F0aW9uUHJvdmlkZXIoeyB1c2VyUG9vbDogdGhpcy51c2VycG9vbCB9KV0sXG4gICAgICAgICAgLi4ucHJvcHMuaWRlbnRpdHlQb29sLnBvb2xDb25maWc/LmF1dGhlbnRpY2F0aW9uUHJvdmlkZXJzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lELCB7XG4gICAgICAgIGtleTogQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfSUQsXG4gICAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC5pZGVudGl0eVBvb2xJZCxcbiAgICAgIH0pO1xuICAgICAgbmV3IENmbk91dHB1dCh0aGlzLCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9BVVRIX1JPTEVBUk4sIHtcbiAgICAgICAga2V5OiBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9BVVRIX1JPTEVBUk4sXG4gICAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC5hdXRoZW50aWNhdGVkUm9sZS5yb2xlQXJuLFxuICAgICAgfSk7XG4gICAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIENGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX1VOQVVUSF9ST0xFQVJOLCB7XG4gICAgICAgIGtleTogQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9JREVOVElUWVBPT0xfVU5BVVRIX1JPTEVBUk4sXG4gICAgICAgIHZhbHVlOiB0aGlzLmlkZW50aXR5UG9vbC51bmF1dGhlbnRpY2F0ZWRSb2xlLnJvbGVBcm4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYWRkVXNlclBvb2xDbGllbnQoaWQ6IHN0cmluZywgb3B0aW9uczogYXdzX2NvZ25pdG8uVXNlclBvb2xDbGllbnRPcHRpb25zKTogYXdzX2NvZ25pdG8uVXNlclBvb2xDbGllbnQge1xuICAgIGNvbnN0IGNsaWVudCA9IHRoaXMudXNlcnBvb2wuYWRkQ2xpZW50KGlkLCBvcHRpb25zKTtcbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIGAke0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xfQ0xJRU5USUR9JHtpZH1gLCB7XG4gICAgICBrZXk6IGAke0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xfQ0xJRU5USUR9JHtpZH1gLFxuICAgICAgdmFsdWU6IGNsaWVudC51c2VyUG9vbENsaWVudElkLFxuICAgIH0pO1xuXG4gICAgaWYgKHRoaXMuaWRlbnRpdHlQb29sKSB7XG4gICAgICB0aGlzLmlkZW50aXR5UG9vbC5hZGRVc2VyUG9vbEF1dGhlbnRpY2F0aW9uKFxuICAgICAgICBuZXcgYXdzX2NvZ25pdG9faWRlbnRpdHlwb29sLlVzZXJQb29sQXV0aGVudGljYXRpb25Qcm92aWRlcih7XG4gICAgICAgICAgdXNlclBvb2w6IHRoaXMudXNlcnBvb2wsXG4gICAgICAgICAgdXNlclBvb2xDbGllbnQ6IGNsaWVudCxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBjbGllbnQ7XG4gIH1cblxufSJdfQ==
package/package.json CHANGED
@@ -32,52 +32,50 @@
32
32
  "organization": true
33
33
  },
34
34
  "devDependencies": {
35
- "@aws-cdk/aws-cognito-identitypool-alpha": "2.177.0-alpha.0",
36
35
  "@aws-sdk/client-cognito-identity-provider": "3.726.0",
37
36
  "@aws-sdk/client-dynamodb": "3.726.0",
38
37
  "@aws-sdk/client-s3": "3.726.0",
39
38
  "@aws-sdk/lib-dynamodb": "3.726.0",
40
39
  "@hapi/boom": "^10.0.1",
41
40
  "@stylistic/eslint-plugin": "^2",
42
- "@types/aws-lambda": "^8.10.147",
41
+ "@types/aws-lambda": "^8.10.148",
43
42
  "@types/jest": "^29.5.14",
44
43
  "@types/js-yaml": "^4.0.9",
45
- "@types/jsonwebtoken": "^9.0.7",
44
+ "@types/jsonwebtoken": "^9.0.9",
46
45
  "@types/jwk-to-pem": "^2.0.3",
47
46
  "@types/lambda-log": "^2.2.1",
48
47
  "@types/node": "^18",
49
48
  "@types/uuid": "^9.0.8",
50
49
  "@typescript-eslint/eslint-plugin": "^8",
51
50
  "@typescript-eslint/parser": "^8",
52
- "aws-cdk-lib": "2.177.0",
51
+ "aws-cdk-lib": "2.187.0",
53
52
  "commit-and-tag-version": "^12",
54
53
  "constructs": "^10.0.0",
55
54
  "dynamodb-onetable": "2.7.5",
56
55
  "eslint": "^9",
57
- "eslint-import-resolver-typescript": "^3.7.0",
56
+ "eslint-import-resolver-typescript": "^3.10.0",
58
57
  "eslint-plugin-import": "^2.31.0",
59
58
  "jest": "^29.7.0",
60
59
  "jest-junit": "^16",
61
- "openapi-typescript": "6.7.6",
60
+ "openapi-typescript": "7.6.1",
62
61
  "projen": "0.91.6",
63
- "ts-jest": "^29.2.5",
62
+ "ts-jest": "^29.3.1",
64
63
  "ts-node": "^10.9.2",
65
64
  "typedoc": "0.27.6",
66
65
  "typescript": "^5.7.3"
67
66
  },
68
67
  "peerDependencies": {
69
- "@aws-cdk/aws-cognito-identitypool-alpha": ">=2.177.0-alpha.0 <3.0.0",
70
- "@aws-sdk/client-cognito-identity-provider": "^3.668.0",
71
- "@aws-sdk/client-dynamodb": "^3.668.0",
72
- "@aws-sdk/client-s3": "^3.668.0",
73
- "@aws-sdk/lib-dynamodb": "^3.668.0",
74
- "aws-cdk-lib": ">=2.177.0 <3.0.0",
68
+ "@aws-sdk/client-cognito-identity-provider": "^3.777.0",
69
+ "@aws-sdk/client-dynamodb": "^3.777.0",
70
+ "@aws-sdk/client-s3": "^3.779.0",
71
+ "@aws-sdk/lib-dynamodb": "^3.778.0",
72
+ "aws-cdk-lib": ">=2.187.0 <3.0.0",
75
73
  "dynamodb-onetable": "2.7.5",
76
- "openapi-typescript": "^6.7.6",
74
+ "openapi-typescript": "^7.6.1",
77
75
  "projen": ">=0.91.6 <1.0.0"
78
76
  },
79
77
  "dependencies": {
80
- "axios": "^1.7.9",
78
+ "axios": "^1.8.4",
81
79
  "constructs": "^10.3.0",
82
80
  "date-fns": "^2.30.0",
83
81
  "js-yaml": "^4.1.0",
@@ -98,7 +96,7 @@
98
96
  "publishConfig": {
99
97
  "access": "public"
100
98
  },
101
- "version": "2.16.0",
99
+ "version": "2.17.0",
102
100
  "jest": {
103
101
  "coverageProvider": "v8",
104
102
  "testMatch": [