cdk-serverless 1.1.0 → 1.1.3

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.
@@ -4,7 +4,7 @@ import { Construct } from 'constructs';
4
4
  import { OpenAPI3 } from 'openapi-typescript';
5
5
  import { BaseApi, BaseApiProps } from './base-api';
6
6
  import { LambdaFunction, LambdaOptions } from './func';
7
- export interface HttpApiProps extends BaseApiProps {
7
+ export interface HttpApiProps<OPS> extends BaseApiProps {
8
8
  /**
9
9
  * Domain name of the API (e.g. example.com)
10
10
  *
@@ -35,7 +35,7 @@ export interface HttpApiProps extends BaseApiProps {
35
35
  * @default -
36
36
  */
37
37
  lambdaOptionsByOperation?: {
38
- [operationId: string]: LambdaOptions;
38
+ [operationId in keyof OPS]?: LambdaOptions;
39
39
  };
40
40
  }
41
41
  export declare class HttpApi<PATHS, OPS> extends BaseApi {
@@ -43,7 +43,7 @@ export declare class HttpApi<PATHS, OPS> extends BaseApi {
43
43
  readonly api: apiGW.HttpApi;
44
44
  readonly apiSpec: OpenAPI3;
45
45
  private _functions;
46
- constructor(scope: Construct, id: string, props: HttpApiProps);
46
+ constructor(scope: Construct, id: string, props: HttpApiProps<OPS>);
47
47
  /**
48
48
  * getFunctionForOperation
49
49
  */
@@ -51,7 +51,7 @@ export declare class HttpApi<PATHS, OPS> extends BaseApi {
51
51
  addRoute<P extends keyof PATHS>(path: P, method: keyof PATHS[P], handler: lambda.IFunction): void;
52
52
  addCustomRoute(path: string, method: string, handler: lambda.IFunction): void;
53
53
  addRestResource<P extends keyof PATHS>(path: P, method: keyof PATHS[P]): LambdaFunction;
54
- addCustomRestResource(path: string, method: string, operationId: string, description: string): LambdaFunction;
54
+ addCustomRestResource(path: string, method: string, operationId: string, description: string, additionalLambdaOptions?: LambdaOptions): LambdaFunction;
55
55
  private createEntryFile;
56
56
  private tableWriteAccessForMethod;
57
57
  private methodTransform;
@@ -122,19 +122,20 @@ class HttpApi extends base_api_1.BaseApi {
122
122
  const operation = oaPath[method];
123
123
  const operationId = operation.operationId;
124
124
  const description = `${method} ${path} - ${operation.summary}`;
125
- return this.addCustomRestResource(path, method, operationId, description);
125
+ const customLambdaOptions = this.props.lambdaOptionsByOperation ? this.props.lambdaOptionsByOperation[operationId] : undefined;
126
+ return this.addCustomRestResource(path, method, operationId, description, customLambdaOptions);
126
127
  }
127
- addCustomRestResource(path, method, operationId, description) {
128
+ addCustomRestResource(path, method, operationId, description, additionalLambdaOptions = {}) {
128
129
  var _a;
129
130
  const entryFile = `./src/lambda/rest.${operationId}.ts`;
130
131
  if (!fs.existsSync(entryFile)) {
131
132
  this.createEntryFile(entryFile, method, operationId);
132
133
  }
133
134
  const lambdaOptions = {
134
- ...this.props.lambdaOptions,
135
- ...this.props.lambdaOptionsByOperation && this.props.lambdaOptionsByOperation[operationId] && {
136
- ...this.props.lambdaOptionsByOperation[operationId],
135
+ ...this.props.lambdaOptions && {
136
+ ...this.props.lambdaOptions,
137
137
  },
138
+ ...additionalLambdaOptions,
138
139
  };
139
140
  const fn = new func_1.LambdaFunction(this, `Fn${operationId}`, {
140
141
  stageName: this.props.stageName,
@@ -238,4 +239,4 @@ export const handler = ${factoryCall}
238
239
  }
239
240
  }
240
241
  exports.HttpApi = HttpApi;
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6Qix1RUFBeUQ7QUFDekQseUZBQTJFO0FBQzNFLDZDQUtxQjtBQUNyQixpREFBbUM7QUFFbkMsOENBQWdDO0FBRWhDLHlDQUFtRDtBQUNuRCxpQ0FBdUQ7QUF5Q3ZELE1BQWEsT0FBb0IsU0FBUSxrQkFBTztJQU85QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFVLEtBQW1COztRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUR3QixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBRjdELGVBQVUsR0FBOEMsRUFBRSxDQUFDO1FBS2pFLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFhLENBQUM7UUFFakYsSUFBSSxnQkFBZ0IsQ0FBQztRQUNyQixJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDcEIsTUFBTSxVQUFVLEdBQUcseUJBQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7WUFDakcsTUFBTSxhQUFhLEdBQUcsR0FBRyxNQUFBLEtBQUssQ0FBQyxXQUFXLG1DQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUUsZ0JBQWdCLEdBQUcsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7Z0JBQzFELFVBQVUsRUFBRSxhQUFhO2dCQUN6QixXQUFXLEVBQUUsSUFBSSxvQ0FBRyxDQUFDLFdB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QUFDO0lBRU8seUJBQXlCLENBQUMsTUFBYztRQUM5QyxRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUM1QixLQUFLLFFBQVEsQ0FBQztZQUNkLEtBQUssTUFBTSxDQUFDO1lBQ1osS0FBSyxLQUFLLENBQUM7WUFDWCxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxJQUFJLENBQUM7WUFDZCxLQUFLLFNBQVMsQ0FBQztZQUNmLEtBQUssS0FBSyxDQUFDO1lBQ1gsS0FBSyxNQUFNLENBQUM7WUFDWjtnQkFDRSxPQUFPLEtBQUssQ0FBQztTQUNoQjtJQUNILENBQUM7SUFFTyxlQUFlLENBQUMsTUFBYztRQUNwQyxRQUFRLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUM1QixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUM5QixLQUFLLFFBQVE7Z0JBQ1gsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxLQUFLLE1BQU07Z0JBQ1QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUMvQixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQztZQUM5QixLQUFLLE1BQU07Z0JBQ1QsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUMvQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQztZQUNsQyxLQUFLLE9BQU87Z0JBQ1YsT0FBTyxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQztZQUNoQztnQkFDRSxPQUFPLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO1NBQy9CO0lBQ0gsQ0FBQztDQUNGO0FBdk9ELDBCQXVPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIGFwaUdXIGZyb20gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItYWxwaGEnO1xuaW1wb3J0ICogYXMgYXBpR1dJbnRlZyBmcm9tICdAYXdzLWNkay9hd3MtYXBpZ2F0ZXdheXYyLWludGVncmF0aW9ucy1hbHBoYSc7XG5pbXBvcnQge1xuICBhd3NfY2VydGlmaWNhdGVtYW5hZ2VyIGFzIGFjbSxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIGF3c19yb3V0ZTUzIGFzIHJvdXRlNTMsXG4gIGF3c19yb3V0ZTUzX3RhcmdldHMgYXMgcm91dGU1M1RhcmdldCxcbn0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0ICogYXMgeWFtbCBmcm9tICdqcy15YW1sJztcbmltcG9ydCB7IE9wZW5BUEkzLCBPcGVyYXRpb25PYmplY3QsIFBhdGhJdGVtT2JqZWN0IH0gZnJvbSAnb3BlbmFwaS10eXBlc2NyaXB0JztcbmltcG9ydCB7IEJhc2VBcGksIEJhc2VBcGlQcm9wcyB9IGZyb20gJy4vYmFzZS1hcGknO1xuaW1wb3J0IHsgTGFtYmRhRnVuY3Rpb24sIExhbWJkYU9wdGlvbnMgfSBmcm9tICcuL2Z1bmMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEh0dHBBcGlQcm9wcyBleHRlbmRzIEJhc2VBcGlQcm9wcyB7XG5cbiAgLyoqXG4gICAqIERvbWFpbiBuYW1lIG9mIHRoZSBBUEkgKGUuZy4gZXhhbXBsZS5jb20pXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm8gY3VzdG9tIGRvbWFpbiBpcyBjb25maWd1cmVkXG4gICAqL1xuICBkb21haW5OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBIb3N0bmFtZSBvZiB0aGUgQVBJIGlmIGEgZG9tYWluIG5hbWUgaXMgc3BlY2lmaWVkXG4gICAqXG4gICAqIEBkZWZhdWx0IGFwaVxuICAgKi9cbiAgYXBpSG9zdG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHJvdXRlcyBmb3IgYWxsIGVuZHBvaW50cyBjb25maWd1cmVkIGluIHRoZSBvcGVuYXBpLnlhbWwgZmlsZVxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhdXRvR2VuZXJhdGVSb3V0ZXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBjdXN0b20gb3B0aW9ucyBmb3IgdGhlIGNyZWF0ZWQgSHR0cEFwaVxuICAgKlxuICAgKiBAZGVmYXVsdCAtXG4gICAqL1xuICBodHRwQXBpUHJvcHM/OiBhcGlHVy5IdHRwQXBpUHJvcHM7XG5cbiAgLyoqXG4gICAqIGFkZGl0aW9uYWwgb3B0aW9ucyBmb3IgdGhlIHVuZGVybHlpbmcgTGFtYmRhIGZ1bmN0aW9uIGNvbnN0cnVjdCBwZXIgb3BlcmF0aW9uSWRcbiAgICpcbiAgICogQGRlZmF1bHQgLVxuICAgKi9cbiAgbGFtYmRhT3B0aW9uc0J5T3BlcmF0aW9uPzogeyBbb3BlcmF0aW9uSWQ6IHN0cmluZ106IExhbWJkYU9wdGlvbnMgfTtcblxufVxuXG5leHBvcnQgY2xhc3MgSHR0cEFwaTxQQVRIUywgT1BTPiBleHRlbmRzIEJhc2VBcGkge1xuXG4gIHB1YmxpYyByZWFkb25seSBhcGk6IGFwaUdXLkh0dHBBcGk7XG4gIHB1YmxpYyByZWFkb25seSBhcGlTcGVjOiBPcGVuQVBJMztcblxuICBwcml2YXRlIF9mdW5jdGlvbnM6IHsgW29wZXJhdGlvbklkOiBzdHJpbmddOiBMYW1iZGFGdW5jdGlvbiB9ID0ge307XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJpdmF0ZSBwcm9wczogSHR0cEFwaVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmFwaVNwZWMgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKCdvcGVuYXBpLnlhbWwnKS50b1N0cmluZygpKSBhcyBPcGVuQVBJMztcblxuICAgIGxldCBjdXN0b21Eb21haW5OYW1lO1xuICAgIGlmIChwcm9wcy5kb21haW5OYW1lKSB7XG4gICAgICBjb25zdCBob3N0ZWRab25lID0gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgJ1pvbmUnLCB7IGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUgfSk7XG4gICAgICBjb25zdCBhcGlEb21haW5OYW1lID0gYCR7cHJvcHMuYXBpSG9zdG5hbWUgPz8gJ2FwaSd9LiR7cHJvcHMuZG9tYWluTmFtZX1gO1xuICAgICAgY3VzdG9tRG9tYWluTmFtZSA9IG5ldyBhcGlHVy5Eb21haW5OYW1lKHRoaXMsICdEb21haW5OYW1lJywge1xuICAgICAgICBkb21haW5OYW1lOiBhcGlEb21haW5OYW1lLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogbmV3IGFjbS5DZXJ0aWZpY2F0ZSh0aGlzLCAnQ2VydCcsIHtcbiAgICAgICAgICBkb21haW5OYW1lOiBhcGlEb21haW5OYW1lLFxuICAgICAgICAgIHZhbGlkYXRpb246IGFjbS5DZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURucyhob3N0ZWRab25lKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICAgIG5ldyByb3V0ZTUzLkFSZWNvcmQodGhpcywgJ0Ruc1JlY29yZCcsIHtcbiAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgcmVjb3JkTmFtZTogYXBpRG9tYWluTmFtZSxcbiAgICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMoXG4gICAgICAgICAgbmV3IHJvdXRlNTNUYXJnZXQuQXBpR2F0ZXdheXYyRG9tYWluUHJvcGVydGllcyhjdXN0b21Eb21haW5OYW1lLnJlZ2lvbmFsRG9tYWluTmFtZSwgY3VzdG9tRG9tYWluTmFtZS5yZWdpb25hbEhvc3RlZFpvbmVJZCksXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFwaSA9IG5ldyBhcGlHVy5IdHRwQXBpKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGFwaU5hbWU6IGAke3Byb3BzLmFwaU5hbWV9IFske3Byb3BzLnN0YWdlTmFtZX1dYCxcbiAgICAgIC4uLmN1c3RvbURvbWFpbk5hbWUgJiYge1xuICAgICAgICBkZWZhdWx0RG9tYWluTWFwcGluZzoge1xuICAgICAgICAgIGRvbWFpbk5hbWU6IGN1c3RvbURvbWFpbk5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4ucHJvcHMuaHR0cEFwaVByb3BzLFxuICAgIH0pO1xuXG4gICAgaWYgKChwcm9wcy5tb25pdG9yaW5nID8/IHRydWUpICYmIHRoaXMubW9uaXRvcmluZykge1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmFwaUVycm9yc1dpZGdldC5hZGRMZWZ0TWV0cmljKHRoaXMuYXBpLm1ldHJpY1NlcnZlckVycm9yKHtcbiAgICAgICAgc3RhdGlzdGljOiAnc3VtJyxcbiAgICAgIH0pKTtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5hcGlFcnJvcnNXaWRnZXQuYWRkTGVmdE1ldHJpYyh0aGlzLmFwaS5tZXRyaWNDbGllbnRFcnJvcih7XG4gICAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMubW9uaXRvcmluZy5hcGlMYXRlbmN5V2lkZ2V0LmFkZExlZnRNZXRyaWModGhpcy5hcGkubWV0cmljTGF0ZW5jeSh7XG4gICAgICAgIHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLFxuICAgICAgfSkpO1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmFwaUxhdGVuY3lXaWRnZXQuYWRkTGVmdE1ldHJpYyh0aGlzLmFwaS5tZXRyaWNMYXRlbmN5KHtcbiAgICAgICAgc3RhdGlzdGljOiAncDkwJyxcbiAgICAgIH0pKTtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5hcGlMYXRlbmN5VGFpbFdpZGdldC5hZGRMZWZ0TWV0cmljKHRoaXMuYXBpLm1ldHJpY0xhdGVuY3koe1xuICAgICAgICBzdGF0aXN0aWM6ICdwOTUnLFxuICAgICAgfSkpO1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmFwaUxhdGVuY3lUYWlsV2lkZ2V0LmFkZExlZnRNZXRyaWModGhpcy5hcGkubWV0cmljTGF0ZW5jeSh7XG4gICAgICAgIHN0YXRpc3RpYzogJ3A5OScsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmF1dG9HZW5lcmF0ZVJvdXRlcyA/PyB0cnVlKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhdGggaW4gdGhpcy5hcGlTcGVjLnBhdGhzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hcGlTcGVjLnBhdGhzLCBwYXRoKSkge1xuICAgICAgICAgIGNvbnN0IHBhdGhJdGVtID0gdGhpcy5hcGlTcGVjLnBhdGhzW3BhdGhdO1xuICAgICAgICAgIGZvciAoY29uc3QgbWV0aG9kIGluIHBhdGhJdGVtKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhdGhJdGVtLCBtZXRob2QpICYmXG4gICAgICAgICAgICAgIFsnZ2V0JywgJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZScsICdwYXRjaCcsICdvcHRpb25zJywgJ2hlYWQnXS5pbmRleE9mKG1ldGhvZCkgPj0gMCkge1xuICAgICAgICAgICAgICAvLyBBZGQgYWxsIG9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgdGhpcy5hZGRSZXN0UmVzb3VyY2UocGF0aCBhcyBhbnksIG1ldGhvZCBhcyBhbnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIGdldEZ1bmN0aW9uRm9yT3BlcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0RnVuY3Rpb25Gb3JPcGVyYXRpb24ob3BlcmF0aW9uSWQ6IGtleW9mIE9QUyk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zW29wZXJhdGlvbklkIGFzIHN0cmluZ107XG4gIH1cblxuICBwdWJsaWMgYWRkUm91dGU8UCBleHRlbmRzIGtleW9mIFBBVEhTPihwYXRoOiBQLCBtZXRob2Q6IGtleW9mIFBBVEhTW1BdLCBoYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uKSB7XG4gICAgdGhpcy5hZGRDdXN0b21Sb3V0ZShwYXRoIGFzIHN0cmluZywgbWV0aG9kIGFzIHN0cmluZywgaGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgYWRkQ3VzdG9tUm91dGUocGF0aDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbikge1xuICAgIGNvbnN0IGFwaU1ldGhvZCA9IHRoaXMubWV0aG9kVHJhbnNmb3JtKG1ldGhvZCk7XG4gICAgbmV3IGFwaUdXLkh0dHBSb3V0ZSh0aGlzLCBgJHthcGlNZXRob2R9JHtwYXRofWAsIHtcbiAgICAgIGh0dHBBcGk6IHRoaXMuYXBpLFxuICAgICAgcm91dGVLZXk6IGFwaUdXLkh0dHBSb3V0ZUtleS53aXRoKHBhdGgsIGFwaU1ldGhvZCksXG4gICAgICBpbnRlZ3JhdGlvbjogbmV3IGFwaUdXSW50ZWcuSHR0cExhbWJkYUludGVncmF0aW9uKGAke2FwaU1ldGhvZH0ke3BhdGh9SW50ZWdyYXRpb25gLCBoYW5kbGVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRSZXN0UmVzb3VyY2U8UCBleHRlbmRzIGtleW9mIFBBVEhTPihwYXRoOiBQLCBtZXRob2Q6IGtleW9mIFBBVEhTW1BdKSB7XG4gICAgY29uc3Qgb2FQYXRoID0gdGhpcy5hcGlTcGVjLnBhdGhzIVtwYXRoIGFzIHN0cmluZ107XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gb2FQYXRoW21ldGhvZCBhcyBrZXlvZiBQYXRoSXRlbU9iamVjdF0gYXMgT3BlcmF0aW9uT2JqZWN0O1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gb3BlcmF0aW9uLm9wZXJhdGlvbklkITtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGAke21ldGhvZH0gJHtwYXRofSAtICR7b3BlcmF0aW9uLnN1bW1hcnl9YDtcblxuICAgIHJldHVybiB0aGlzLmFkZEN1c3RvbVJlc3RSZXNvdXJjZShwYXRoIGFzIHN0cmluZywgbWV0aG9kIGFzIHN0cmluZywgb3BlcmF0aW9uSWQsIGRlc2NyaXB0aW9uKTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRDdXN0b21SZXN0UmVzb3VyY2UocGF0aDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgb3BlcmF0aW9uSWQ6IHN0cmluZywgZGVzY3JpcHRpb246IHN0cmluZykge1xuXG4gICAgY29uc3QgZW50cnlGaWxlID0gYC4vc3JjL2xhbWJkYS9yZXN0LiR7b3BlcmF0aW9uSWR9LnRzYDtcbiAgICBpZiAoIWZzLmV4aXN0c1N5bmMoZW50cnlGaWxlKSkge1xuICAgICAgdGhpcy5jcmVhdGVFbnRyeUZpbGUoZW50cnlGaWxlLCBtZXRob2QgYXMgc3RyaW5nLCBvcGVyYXRpb25JZCk7XG4gICAgfVxuXG4gICAgY29uc3QgbGFtYmRhT3B0aW9ucyA9IHtcbiAgICAgIC4uLnRoaXMucHJvcHMubGFtYmRhT3B0aW9ucyxcbiAgICAgIC4uLnRoaXMucHJvcHMubGFtYmRhT3B0aW9uc0J5T3BlcmF0aW9uICYmIHRoaXMucHJvcHMubGFtYmRhT3B0aW9uc0J5T3BlcmF0aW9uW29wZXJhdGlvbklkXSAmJiB7XG4gICAgICAgIC4uLnRoaXMucHJvcHMubGFtYmRhT3B0aW9uc0J5T3BlcmF0aW9uW29wZXJhdGlvbklkXSxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIGNvbnN0IGZuID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsIGBGbiR7b3BlcmF0aW9uSWR9YCwge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLnByb3BzLnN0YWdlTmFtZSxcbiAgICAgIGFkZGl0aW9uYWxFbnY6IHtcbiAgICAgICAgLi4udGhpcy5wcm9wcy5kb21haW5OYW1lICYmIHtcbiAgICAgICAgICBET01BSU5fTkFNRTogdGhpcy5wcm9wcy5kb21haW5OYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLnByb3BzLmFkZGl0aW9uYWxFbnYsXG4gICAgICB9LFxuICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgWyR7dGhpcy5wcm9wcy5zdGFnZU5hbWV9XSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICAuLi50aGlzLmF1dGhlbnRpY2F0aW9uICYmIHtcbiAgICAgICAgdXNlclBvb2w6IHRoaXMuYXV0aGVudGljYXRpb24/LnVzZXJwb29sLFxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMuc2luZ2xlVGFibGVEYXRhc3RvcmUgJiYge1xuICAgICAgICB0YWJsZTogdGhpcy5zaW5nbGVUYWJsZURhdGFzdG9yZS50YWJsZSxcbiAgICAgICAgdGFibGVXcml0ZXM6IHRoaXMudGFibGVXcml0ZUFjY2Vzc0Zvck1ldGhvZChtZXRob2QgYXMgc3RyaW5nKSxcbiAgICAgIH0sXG4gICAgICAuLi50aGlzLmFzc2V0Q2RuICYmIHtcbiAgICAgICAgYXNzZXREb21haW5OYW1lOiB0aGlzLmFzc2V0Q2RuLmFzc2V0RG9tYWluTmFtZSxcbiAgICAgICAgYXNzZXRCdWNrZXQ6IHRoaXMuYXNzZXRDZG4uYXNzZXRCdWNrZXQsXG4gICAgICB9LFxuICAgICAgbGFtYmRhT3B0aW9ucyxcbiAgICAgIGxhbWJkYVRyYWNpbmc6IHRoaXMucHJvcHMubGFtYmRhVHJhY2luZyxcbiAgICB9KTtcbiAgICB0aGlzLl9mdW5jdGlvbnNbb3BlcmF0aW9uSWRdID0gZm47XG4gICAgY2RrLlRhZ3Mub2YoZm4pLmFkZCgnT3BlbkFQSScsIGRlc2NyaXB0aW9uLnJlcGxhY2UoL1teXFx3XFxzXFxkXy46Lz0rXFwtQF0vZywgJycpKTtcblxuICAgIGlmICh0aGlzLm1vbml0b3JpbmcpIHtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5sYW1iZGFEdXJhdGlvbnNXaWRnZXQuYWRkTGVmdE1ldHJpYyhmbi5tZXRyaWNEdXJhdGlvbigpKTtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5sYW1iZGFJbnZva2VzV2lkZ2V0LmFkZExlZnRNZXRyaWMoZm4ubWV0cmljSW52b2NhdGlvbnMoKSk7XG4gICAgICB0aGlzLm1vbml0b3JpbmcubGFtYmRhRXJyb3JzV2lkZ2V0LmFkZExlZnRNZXRyaWMoZm4ubWV0cmljRXJyb3JzKCkpO1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmxhbWJkYUVycm9yc1dpZGdldC5hZGRMZWZ0TWV0cmljKGZuLm1ldHJpY1Rocm90dGxlcygpKTtcbiAgICB9XG5cbiAgICBjb25zdCBoYXNWZXJzaW9uQ29uZmlnID0gbGFtYmRhT3B0aW9ucy5jdXJyZW50VmVyc2lvbk9wdGlvbnMgIT0gdW5kZWZpbmVkO1xuICAgIHRoaXMuYWRkQ3VzdG9tUm91dGUocGF0aCwgbWV0aG9kLCBoYXNWZXJzaW9uQ29uZmlnID8gZm4uY3VycmVudFZlcnNpb24gOiBmbik7XG5cbiAgICByZXR1cm4gZm47XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUVudHJ5RmlsZShlbnRyeUZpbGU6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcsIG9wZXJhdGlvbklkOiBzdHJpbmcpIHtcbiAgICBsZXQgZmFjdG9yeUNhbGw7XG4gICAgbGV0IGxvZ3M7XG4gICAgc3dpdGNoIChtZXRob2QudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAncG9zdCc6XG4gICAgICBjYXNlICdwdXQnOlxuICAgICAgY2FzZSAncGF0Y2gnOlxuICAgICAgICBmYWN0b3J5Q2FsbCA9IGBodHRwLmNyZWF0ZU9wZW5BcGlIYW5kbGVyV2l0aFJlcXVlc3RCb2R5PG9wZXJhdGlvbnNbJyR7b3BlcmF0aW9uSWR9J10+KGFzeW5jIChjdHgsIGRhdGEpID0+IHtgO1xuICAgICAgICBsb2dzID0gJ2N0eC5sb2dnZXIuaW5mbyhKU09OLnN0cmluZ2lmeShkYXRhKSk7JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmYWN0b3J5Q2FsbCA9IGBodHRwLmNyZWF0ZU9wZW5BcGlIYW5kbGVyPG9wZXJhdGlvbnNbJyR7b3BlcmF0aW9uSWR9J10+KGFzeW5jIChjdHgpID0+IHtgO1xuICAgICAgICBsb2dzID0gJyc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGZzLndyaXRlRmlsZVN5bmMoZW50cnlGaWxlLCBgaW1wb3J0IHsgaHR0cCwgZXJyb3JzIH0gZnJvbSAnQHRhaW1vcy9sYW1iZGEtdG9vbGJveCc7XG5pbXBvcnQgeyBvcGVyYXRpb25zIH0gZnJvbSAnLi90eXBlcy5nZW5lcmF0ZWQnO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9ICR7ZmFjdG9yeUNhbGx9XG4gIGN0eC5sb2dnZXIuaW5mbyhKU09OLnN0cmluZ2lmeShjdHguZXZlbnQpKTtcbiAgJHtsb2dzfVxuICB0aHJvdyBuZXcgZXJyb3JzLkh0dHBFcnJvcig1MDAsICdOb3QgeWV0IGltcGxlbWVudGVkJyk7XG59KTtgLCB7XG4gICAgICBlbmNvZGluZzogJ3V0Zi04JyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgdGFibGVXcml0ZUFjY2Vzc0Zvck1ldGhvZChtZXRob2Q6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHN3aXRjaCAobWV0aG9kLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICBjYXNlICdwYXRjaCc6XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgY2FzZSAnb3B0aW9ucyc6XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBtZXRob2RUcmFuc2Zvcm0obWV0aG9kOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKG1ldGhvZC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgICByZXR1cm4gYXBpR1cuSHR0cE1ldGhvZC5HRVQ7XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICByZXR1cm4gYXBpR1cuSHR0cE1ldGhvZC5ERUxFVEU7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgICAgcmV0dXJuIGFwaUdXLkh0dHBNZXRob2QuUE9TVDtcbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICAgIHJldHVybiBhcGlHVy5IdHRwTWV0aG9kLlBVVDtcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgICByZXR1cm4gYXBpR1cuSHR0cE1ldGhvZC5IRUFEO1xuICAgICAgY2FzZSAnb3B0aW9ucyc6XG4gICAgICAgIHJldHVybiBhcGlHVy5IdHRwTWV0aG9kLk9QVElPTlM7XG4gICAgICBjYXNlICdwYXRjaCc6XG4gICAgICAgIHJldHVybiBhcGlHVy5IdHRwTWV0aG9kLlBBVENIO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGFwaUdXLkh0dHBNZXRob2QuQU5ZO1xuICAgIH1cbiAgfVxufSJdfQ==
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY29uc3RydWN0cy9odHRwLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUF5QjtBQUN6Qix1RUFBeUQ7QUFDekQseUZBQTJFO0FBQzNFLDZDQUtxQjtBQUNyQixpREFBbUM7QUFFbkMsOENBQWdDO0FBRWhDLHlDQUFtRDtBQUNuRCxpQ0FBdUQ7QUF5Q3ZELE1BQWEsT0FBb0IsU0FBUSxrQkFBTztJQU85QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFVLEtBQXdCOztRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUR3QixVQUFLLEdBQUwsS0FBSyxDQUFtQjtRQUZsRSxlQUFVLEdBQThDLEVBQUUsQ0FBQztRQUtqRSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBYSxDQUFDO1FBRWpGLElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO1lBQ3BCLE1BQU0sVUFBVSxHQUFHLHlCQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1lBQ2pHLE1BQU0sYUFBYSxHQUFHLEdBQUcsTUFBQSxLQUFLLENBQUMsV0FBVyxtQ0FBSSxLQUFLLElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQzFFLGdCQUFnQixHQUFHLElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUMxRCxVQUFVLEVBQUUsYUFBYTtnQkFDekIsV0FBVyxFQUFFLElBQUksb0NBQUcsQ0FBQyxX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ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgYXBpR1cgZnJvbSAnQGF3cy1jZGsvYXdzLWFwaWdhdGV3YXl2Mi1hbHBoYSc7XG5pbXBvcnQgKiBhcyBhcGlHV0ludGVnIGZyb20gJ0Bhd3MtY2RrL2F3cy1hcGlnYXRld2F5djItaW50ZWdyYXRpb25zLWFscGhhJztcbmltcG9ydCB7XG4gIGF3c19jZXJ0aWZpY2F0ZW1hbmFnZXIgYXMgYWNtLFxuICBhd3NfbGFtYmRhIGFzIGxhbWJkYSxcbiAgYXdzX3JvdXRlNTMgYXMgcm91dGU1MyxcbiAgYXdzX3JvdXRlNTNfdGFyZ2V0cyBhcyByb3V0ZTUzVGFyZ2V0LFxufSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHsgT3BlbkFQSTMsIE9wZXJhdGlvbk9iamVjdCwgUGF0aEl0ZW1PYmplY3QgfSBmcm9tICdvcGVuYXBpLXR5cGVzY3JpcHQnO1xuaW1wb3J0IHsgQmFzZUFwaSwgQmFzZUFwaVByb3BzIH0gZnJvbSAnLi9iYXNlLWFwaSc7XG5pbXBvcnQgeyBMYW1iZGFGdW5jdGlvbiwgTGFtYmRhT3B0aW9ucyB9IGZyb20gJy4vZnVuYyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSHR0cEFwaVByb3BzPE9QUz4gZXh0ZW5kcyBCYXNlQXBpUHJvcHMge1xuXG4gIC8qKlxuICAgKiBEb21haW4gbmFtZSBvZiB0aGUgQVBJIChlLmcuIGV4YW1wbGUuY29tKVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBkb21haW4gaXMgY29uZmlndXJlZFxuICAgKi9cbiAgZG9tYWluTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogSG9zdG5hbWUgb2YgdGhlIEFQSSBpZiBhIGRvbWFpbiBuYW1lIGlzIHNwZWNpZmllZFxuICAgKlxuICAgKiBAZGVmYXVsdCBhcGlcbiAgICovXG4gIGFwaUhvc3RuYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZSByb3V0ZXMgZm9yIGFsbCBlbmRwb2ludHMgY29uZmlndXJlZCBpbiB0aGUgb3BlbmFwaS55YW1sIGZpbGVcbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYXV0b0dlbmVyYXRlUm91dGVzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogY3VzdG9tIG9wdGlvbnMgZm9yIHRoZSBjcmVhdGVkIEh0dHBBcGlcbiAgICpcbiAgICogQGRlZmF1bHQgLVxuICAgKi9cbiAgaHR0cEFwaVByb3BzPzogYXBpR1cuSHR0cEFwaVByb3BzO1xuXG4gIC8qKlxuICAgKiBhZGRpdGlvbmFsIG9wdGlvbnMgZm9yIHRoZSB1bmRlcmx5aW5nIExhbWJkYSBmdW5jdGlvbiBjb25zdHJ1Y3QgcGVyIG9wZXJhdGlvbklkXG4gICAqXG4gICAqIEBkZWZhdWx0IC1cbiAgICovXG4gIGxhbWJkYU9wdGlvbnNCeU9wZXJhdGlvbj86IHsgW29wZXJhdGlvbklkIGluIGtleW9mIE9QU10/OiBMYW1iZGFPcHRpb25zIH07XG5cbn1cblxuZXhwb3J0IGNsYXNzIEh0dHBBcGk8UEFUSFMsIE9QUz4gZXh0ZW5kcyBCYXNlQXBpIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgYXBpOiBhcGlHVy5IdHRwQXBpO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBpU3BlYzogT3BlbkFQSTM7XG5cbiAgcHJpdmF0ZSBfZnVuY3Rpb25zOiB7IFtvcGVyYXRpb25JZDogc3RyaW5nXTogTGFtYmRhRnVuY3Rpb24gfSA9IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByaXZhdGUgcHJvcHM6IEh0dHBBcGlQcm9wczxPUFM+KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG5cbiAgICB0aGlzLmFwaVNwZWMgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKCdvcGVuYXBpLnlhbWwnKS50b1N0cmluZygpKSBhcyBPcGVuQVBJMztcblxuICAgIGxldCBjdXN0b21Eb21haW5OYW1lO1xuICAgIGlmIChwcm9wcy5kb21haW5OYW1lKSB7XG4gICAgICBjb25zdCBob3N0ZWRab25lID0gcm91dGU1My5Ib3N0ZWRab25lLmZyb21Mb29rdXAodGhpcywgJ1pvbmUnLCB7IGRvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUgfSk7XG4gICAgICBjb25zdCBhcGlEb21haW5OYW1lID0gYCR7cHJvcHMuYXBpSG9zdG5hbWUgPz8gJ2FwaSd9LiR7cHJvcHMuZG9tYWluTmFtZX1gO1xuICAgICAgY3VzdG9tRG9tYWluTmFtZSA9IG5ldyBhcGlHVy5Eb21haW5OYW1lKHRoaXMsICdEb21haW5OYW1lJywge1xuICAgICAgICBkb21haW5OYW1lOiBhcGlEb21haW5OYW1lLFxuICAgICAgICBjZXJ0aWZpY2F0ZTogbmV3IGFjbS5DZXJ0aWZpY2F0ZSh0aGlzLCAnQ2VydCcsIHtcbiAgICAgICAgICBkb21haW5OYW1lOiBhcGlEb21haW5OYW1lLFxuICAgICAgICAgIHZhbGlkYXRpb246IGFjbS5DZXJ0aWZpY2F0ZVZhbGlkYXRpb24uZnJvbURucyhob3N0ZWRab25lKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICAgIG5ldyByb3V0ZTUzLkFSZWNvcmQodGhpcywgJ0Ruc1JlY29yZCcsIHtcbiAgICAgICAgem9uZTogaG9zdGVkWm9uZSxcbiAgICAgICAgcmVjb3JkTmFtZTogYXBpRG9tYWluTmFtZSxcbiAgICAgICAgdGFyZ2V0OiByb3V0ZTUzLlJlY29yZFRhcmdldC5mcm9tQWxpYXMoXG4gICAgICAgICAgbmV3IHJvdXRlNTNUYXJnZXQuQXBpR2F0ZXdheXYyRG9tYWluUHJvcGVydGllcyhjdXN0b21Eb21haW5OYW1lLnJlZ2lvbmFsRG9tYWluTmFtZSwgY3VzdG9tRG9tYWluTmFtZS5yZWdpb25hbEhvc3RlZFpvbmVJZCksXG4gICAgICAgICksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmFwaSA9IG5ldyBhcGlHVy5IdHRwQXBpKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGFwaU5hbWU6IGAke3Byb3BzLmFwaU5hbWV9IFske3Byb3BzLnN0YWdlTmFtZX1dYCxcbiAgICAgIC4uLmN1c3RvbURvbWFpbk5hbWUgJiYge1xuICAgICAgICBkZWZhdWx0RG9tYWluTWFwcGluZzoge1xuICAgICAgICAgIGRvbWFpbk5hbWU6IGN1c3RvbURvbWFpbk5hbWUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4ucHJvcHMuaHR0cEFwaVByb3BzLFxuICAgIH0pO1xuXG4gICAgaWYgKChwcm9wcy5tb25pdG9yaW5nID8/IHRydWUpICYmIHRoaXMubW9uaXRvcmluZykge1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmFwaUVycm9yc1dpZGdldC5hZGRMZWZ0TWV0cmljKHRoaXMuYXBpLm1ldHJpY1NlcnZlckVycm9yKHtcbiAgICAgICAgc3RhdGlzdGljOiAnc3VtJyxcbiAgICAgIH0pKTtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5hcGlFcnJvcnNXaWRnZXQuYWRkTGVmdE1ldHJpYyh0aGlzLmFwaS5tZXRyaWNDbGllbnRFcnJvcih7XG4gICAgICAgIHN0YXRpc3RpYzogJ3N1bScsXG4gICAgICB9KSk7XG5cbiAgICAgIHRoaXMubW9uaXRvcmluZy5hcGlMYXRlbmN5V2lkZ2V0LmFkZExlZnRNZXRyaWModGhpcy5hcGkubWV0cmljTGF0ZW5jeSh7XG4gICAgICAgIHN0YXRpc3RpYzogJ0F2ZXJhZ2UnLFxuICAgICAgfSkpO1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmFwaUxhdGVuY3lXaWRnZXQuYWRkTGVmdE1ldHJpYyh0aGlzLmFwaS5tZXRyaWNMYXRlbmN5KHtcbiAgICAgICAgc3RhdGlzdGljOiAncDkwJyxcbiAgICAgIH0pKTtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5hcGlMYXRlbmN5VGFpbFdpZGdldC5hZGRMZWZ0TWV0cmljKHRoaXMuYXBpLm1ldHJpY0xhdGVuY3koe1xuICAgICAgICBzdGF0aXN0aWM6ICdwOTUnLFxuICAgICAgfSkpO1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmFwaUxhdGVuY3lUYWlsV2lkZ2V0LmFkZExlZnRNZXRyaWModGhpcy5hcGkubWV0cmljTGF0ZW5jeSh7XG4gICAgICAgIHN0YXRpc3RpYzogJ3A5OScsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmF1dG9HZW5lcmF0ZVJvdXRlcyA/PyB0cnVlKSB7XG4gICAgICBmb3IgKGNvbnN0IHBhdGggaW4gdGhpcy5hcGlTcGVjLnBhdGhzKSB7XG4gICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodGhpcy5hcGlTcGVjLnBhdGhzLCBwYXRoKSkge1xuICAgICAgICAgIGNvbnN0IHBhdGhJdGVtID0gdGhpcy5hcGlTcGVjLnBhdGhzW3BhdGhdO1xuICAgICAgICAgIGZvciAoY29uc3QgbWV0aG9kIGluIHBhdGhJdGVtKSB7XG4gICAgICAgICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHBhdGhJdGVtLCBtZXRob2QpICYmXG4gICAgICAgICAgICAgIFsnZ2V0JywgJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZScsICdwYXRjaCcsICdvcHRpb25zJywgJ2hlYWQnXS5pbmRleE9mKG1ldGhvZCkgPj0gMCkge1xuICAgICAgICAgICAgICAvLyBBZGQgYWxsIG9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgdGhpcy5hZGRSZXN0UmVzb3VyY2UocGF0aCBhcyBhbnksIG1ldGhvZCBhcyBhbnkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICB9XG5cbiAgLyoqXG4gICAqIGdldEZ1bmN0aW9uRm9yT3BlcmF0aW9uXG4gICAqL1xuICBwdWJsaWMgZ2V0RnVuY3Rpb25Gb3JPcGVyYXRpb24ob3BlcmF0aW9uSWQ6IGtleW9mIE9QUyk6IExhbWJkYUZ1bmN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZnVuY3Rpb25zW29wZXJhdGlvbklkIGFzIHN0cmluZ107XG4gIH1cblxuICBwdWJsaWMgYWRkUm91dGU8UCBleHRlbmRzIGtleW9mIFBBVEhTPihwYXRoOiBQLCBtZXRob2Q6IGtleW9mIFBBVEhTW1BdLCBoYW5kbGVyOiBsYW1iZGEuSUZ1bmN0aW9uKSB7XG4gICAgdGhpcy5hZGRDdXN0b21Sb3V0ZShwYXRoIGFzIHN0cmluZywgbWV0aG9kIGFzIHN0cmluZywgaGFuZGxlcik7XG4gIH1cblxuICBwdWJsaWMgYWRkQ3VzdG9tUm91dGUocGF0aDogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgaGFuZGxlcjogbGFtYmRhLklGdW5jdGlvbikge1xuICAgIGNvbnN0IGFwaU1ldGhvZCA9IHRoaXMubWV0aG9kVHJhbnNmb3JtKG1ldGhvZCk7XG4gICAgbmV3IGFwaUdXLkh0dHBSb3V0ZSh0aGlzLCBgJHthcGlNZXRob2R9JHtwYXRofWAsIHtcbiAgICAgIGh0dHBBcGk6IHRoaXMuYXBpLFxuICAgICAgcm91dGVLZXk6IGFwaUdXLkh0dHBSb3V0ZUtleS53aXRoKHBhdGgsIGFwaU1ldGhvZCksXG4gICAgICBpbnRlZ3JhdGlvbjogbmV3IGFwaUdXSW50ZWcuSHR0cExhbWJkYUludGVncmF0aW9uKGAke2FwaU1ldGhvZH0ke3BhdGh9SW50ZWdyYXRpb25gLCBoYW5kbGVyKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRSZXN0UmVzb3VyY2U8UCBleHRlbmRzIGtleW9mIFBBVEhTPihwYXRoOiBQLCBtZXRob2Q6IGtleW9mIFBBVEhTW1BdKSB7XG4gICAgY29uc3Qgb2FQYXRoID0gdGhpcy5hcGlTcGVjLnBhdGhzIVtwYXRoIGFzIHN0cmluZ107XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gb2FQYXRoW21ldGhvZCBhcyBrZXlvZiBQYXRoSXRlbU9iamVjdF0gYXMgT3BlcmF0aW9uT2JqZWN0O1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gb3BlcmF0aW9uLm9wZXJhdGlvbklkITtcbiAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGAke21ldGhvZH0gJHtwYXRofSAtICR7b3BlcmF0aW9uLnN1bW1hcnl9YDtcblxuICAgIGNvbnN0IGN1c3RvbUxhbWJkYU9wdGlvbnMgPSB0aGlzLnByb3BzLmxhbWJkYU9wdGlvbnNCeU9wZXJhdGlvbiA/IHRoaXMucHJvcHMubGFtYmRhT3B0aW9uc0J5T3BlcmF0aW9uW29wZXJhdGlvbklkIGFzIGtleW9mIE9QU10gOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRoaXMuYWRkQ3VzdG9tUmVzdFJlc291cmNlKHBhdGggYXMgc3RyaW5nLCBtZXRob2QgYXMgc3RyaW5nLCBvcGVyYXRpb25JZCwgZGVzY3JpcHRpb24sIGN1c3RvbUxhbWJkYU9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGFkZEN1c3RvbVJlc3RSZXNvdXJjZShwYXRoOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nLCBvcGVyYXRpb25JZDogc3RyaW5nLCBkZXNjcmlwdGlvbjogc3RyaW5nLCBhZGRpdGlvbmFsTGFtYmRhT3B0aW9uczogTGFtYmRhT3B0aW9ucyA9IHt9KSB7XG5cbiAgICBjb25zdCBlbnRyeUZpbGUgPSBgLi9zcmMvbGFtYmRhL3Jlc3QuJHtvcGVyYXRpb25JZH0udHNgO1xuICAgIGlmICghZnMuZXhpc3RzU3luYyhlbnRyeUZpbGUpKSB7XG4gICAgICB0aGlzLmNyZWF0ZUVudHJ5RmlsZShlbnRyeUZpbGUsIG1ldGhvZCwgb3BlcmF0aW9uSWQpO1xuICAgIH1cblxuICAgIGNvbnN0IGxhbWJkYU9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLnByb3BzLmxhbWJkYU9wdGlvbnMgJiYge1xuICAgICAgICAuLi50aGlzLnByb3BzLmxhbWJkYU9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgLi4uYWRkaXRpb25hbExhbWJkYU9wdGlvbnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGZuID0gbmV3IExhbWJkYUZ1bmN0aW9uKHRoaXMsIGBGbiR7b3BlcmF0aW9uSWR9YCwge1xuICAgICAgc3RhZ2VOYW1lOiB0aGlzLnByb3BzLnN0YWdlTmFtZSxcbiAgICAgIGFkZGl0aW9uYWxFbnY6IHtcbiAgICAgICAgLi4udGhpcy5wcm9wcy5kb21haW5OYW1lICYmIHtcbiAgICAgICAgICBET01BSU5fTkFNRTogdGhpcy5wcm9wcy5kb21haW5OYW1lLFxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLnByb3BzLmFkZGl0aW9uYWxFbnYsXG4gICAgICB9LFxuICAgICAgZW50cnk6IGVudHJ5RmlsZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBgWyR7dGhpcy5wcm9wcy5zdGFnZU5hbWV9XSAke2Rlc2NyaXB0aW9ufWAsXG4gICAgICAuLi50aGlzLmF1dGhlbnRpY2F0aW9uICYmIHtcbiAgICAgICAgdXNlclBvb2w6IHRoaXMuYXV0aGVudGljYXRpb24/LnVzZXJwb29sLFxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMuc2luZ2xlVGFibGVEYXRhc3RvcmUgJiYge1xuICAgICAgICB0YWJsZTogdGhpcy5zaW5nbGVUYWJsZURhdGFzdG9yZS50YWJsZSxcbiAgICAgICAgdGFibGVXcml0ZXM6IHRoaXMudGFibGVXcml0ZUFjY2Vzc0Zvck1ldGhvZChtZXRob2QpLFxuICAgICAgfSxcbiAgICAgIC4uLnRoaXMuYXNzZXRDZG4gJiYge1xuICAgICAgICBhc3NldERvbWFpbk5hbWU6IHRoaXMuYXNzZXRDZG4uYXNzZXREb21haW5OYW1lLFxuICAgICAgICBhc3NldEJ1Y2tldDogdGhpcy5hc3NldENkbi5hc3NldEJ1Y2tldCxcbiAgICAgIH0sXG4gICAgICBsYW1iZGFPcHRpb25zLFxuICAgICAgbGFtYmRhVHJhY2luZzogdGhpcy5wcm9wcy5sYW1iZGFUcmFjaW5nLFxuICAgIH0pO1xuICAgIHRoaXMuX2Z1bmN0aW9uc1tvcGVyYXRpb25JZF0gPSBmbjtcbiAgICBjZGsuVGFncy5vZihmbikuYWRkKCdPcGVuQVBJJywgZGVzY3JpcHRpb24ucmVwbGFjZSgvW15cXHdcXHNcXGRfLjovPStcXC1AXS9nLCAnJykpO1xuXG4gICAgaWYgKHRoaXMubW9uaXRvcmluZykge1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmxhbWJkYUR1cmF0aW9uc1dpZGdldC5hZGRMZWZ0TWV0cmljKGZuLm1ldHJpY0R1cmF0aW9uKCkpO1xuICAgICAgdGhpcy5tb25pdG9yaW5nLmxhbWJkYUludm9rZXNXaWRnZXQuYWRkTGVmdE1ldHJpYyhmbi5tZXRyaWNJbnZvY2F0aW9ucygpKTtcbiAgICAgIHRoaXMubW9uaXRvcmluZy5sYW1iZGFFcnJvcnNXaWRnZXQuYWRkTGVmdE1ldHJpYyhmbi5tZXRyaWNFcnJvcnMoKSk7XG4gICAgICB0aGlzLm1vbml0b3JpbmcubGFtYmRhRXJyb3JzV2lkZ2V0LmFkZExlZnRNZXRyaWMoZm4ubWV0cmljVGhyb3R0bGVzKCkpO1xuICAgIH1cblxuICAgIGNvbnN0IGhhc1ZlcnNpb25Db25maWcgPSBsYW1iZGFPcHRpb25zLmN1cnJlbnRWZXJzaW9uT3B0aW9ucyAhPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5hZGRDdXN0b21Sb3V0ZShwYXRoLCBtZXRob2QsIGhhc1ZlcnNpb25Db25maWcgPyBmbi5jdXJyZW50VmVyc2lvbiA6IGZuKTtcblxuICAgIHJldHVybiBmbjtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRW50cnlGaWxlKGVudHJ5RmlsZTogc3RyaW5nLCBtZXRob2Q6IHN0cmluZywgb3BlcmF0aW9uSWQ6IHN0cmluZykge1xuICAgIGxldCBmYWN0b3J5Q2FsbDtcbiAgICBsZXQgbG9ncztcbiAgICBzd2l0Y2ggKG1ldGhvZC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICBjYXNlICdwYXRjaCc6XG4gICAgICAgIGZhY3RvcnlDYWxsID0gYGh0dHAuY3JlYXRlT3BlbkFwaUhhbmRsZXJXaXRoUmVxdWVzdEJvZHk8b3BlcmF0aW9uc1snJHtvcGVyYXRpb25JZH0nXT4oYXN5bmMgKGN0eCwgZGF0YSkgPT4ge2A7XG4gICAgICAgIGxvZ3MgPSAnY3R4LmxvZ2dlci5pbmZvKEpTT04uc3RyaW5naWZ5KGRhdGEpKTsnO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ29wdGlvbnMnOlxuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICBjYXNlICdoZWFkJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGZhY3RvcnlDYWxsID0gYGh0dHAuY3JlYXRlT3BlbkFwaUhhbmRsZXI8b3BlcmF0aW9uc1snJHtvcGVyYXRpb25JZH0nXT4oYXN5bmMgKGN0eCkgPT4ge2A7XG4gICAgICAgIGxvZ3MgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgZnMud3JpdGVGaWxlU3luYyhlbnRyeUZpbGUsIGBpbXBvcnQgeyBodHRwLCBlcnJvcnMgfSBmcm9tICdAdGFpbW9zL2xhbWJkYS10b29sYm94JztcbmltcG9ydCB7IG9wZXJhdGlvbnMgfSBmcm9tICcuL3R5cGVzLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gJHtmYWN0b3J5Q2FsbH1cbiAgY3R4LmxvZ2dlci5pbmZvKEpTT04uc3RyaW5naWZ5KGN0eC5ldmVudCkpO1xuICAke2xvZ3N9XG4gIHRocm93IG5ldyBlcnJvcnMuSHR0cEVycm9yKDUwMCwgJ05vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbn0pO2AsIHtcbiAgICAgIGVuY29kaW5nOiAndXRmLTgnLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB0YWJsZVdyaXRlQWNjZXNzRm9yTWV0aG9kKG1ldGhvZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgc3dpdGNoIChtZXRob2QudG9Mb3dlckNhc2UoKSkge1xuICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgY2FzZSAncHV0JzpcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICBjYXNlICdoZWFkJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG1ldGhvZFRyYW5zZm9ybShtZXRob2Q6IHN0cmluZykge1xuICAgIHN3aXRjaCAobWV0aG9kLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ2dldCc6XG4gICAgICAgIHJldHVybiBhcGlHVy5IdHRwTWV0aG9kLkdFVDtcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgIHJldHVybiBhcGlHVy5IdHRwTWV0aG9kLkRFTEVURTtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgICByZXR1cm4gYXBpR1cuSHR0cE1ldGhvZC5QT1NUO1xuICAgICAgY2FzZSAncHV0JzpcbiAgICAgICAgcmV0dXJuIGFwaUdXLkh0dHBNZXRob2QuUFVUO1xuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICAgIHJldHVybiBhcGlHVy5IdHRwTWV0aG9kLkhFQUQ7XG4gICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgICAgcmV0dXJuIGFwaUdXLkh0dHBNZXRob2QuT1BUSU9OUztcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgcmV0dXJuIGFwaUdXLkh0dHBNZXRob2QuUEFUQ0g7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gYXBpR1cuSHR0cE1ldGhvZC5BTlk7XG4gICAgfVxuICB9XG59Il19
package/package.json CHANGED
@@ -35,7 +35,7 @@
35
35
  "@aws-cdk/aws-apigatewayv2-alpha": "2.2.0-alpha.0",
36
36
  "@aws-cdk/aws-apigatewayv2-integrations-alpha": "2.2.0-alpha.0",
37
37
  "@aws-cdk/aws-appsync-alpha": "2.2.0-alpha.0",
38
- "@taimos/projen": "^0.0.131",
38
+ "@taimos/projen": "^0.0.132",
39
39
  "@types/aws-lambda": "^8.10.93",
40
40
  "@types/jest": "^26.0.24",
41
41
  "@types/js-yaml": "^4.0.5",
@@ -67,7 +67,7 @@
67
67
  },
68
68
  "dependencies": {
69
69
  "@taimos/lambda-toolbox": "^0.0.129",
70
- "aws-sdk": "^2.1101.0",
70
+ "aws-sdk": "^2.1102.0",
71
71
  "date-fns": "^2.28.0",
72
72
  "esbuild": "^0.14.28",
73
73
  "js-yaml": "^4.1.0",
@@ -81,7 +81,7 @@
81
81
  ],
82
82
  "main": "lib/index.js",
83
83
  "license": "Apache-2.0",
84
- "version": "1.1.0",
84
+ "version": "1.1.3",
85
85
  "jest": {
86
86
  "testMatch": [
87
87
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",