cdk-serverless 2.11.27 → 2.12.1

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.
@@ -29,6 +29,7 @@ const path_1 = require("path");
29
29
  const pj = __importStar(require("projen"));
30
30
  const core_1 = require("./core");
31
31
  const lazy_textfile_1 = require("./lazy-textfile");
32
+ const outputs_1 = require("../shared/outputs");
32
33
  /**
33
34
  * The Datastore construct sets up a DynamoDB single-table design for a serverless project using projen.
34
35
  * This construct extends the projen Component to include dependencies and development dependencies required for DynamoDB and provides
@@ -131,6 +132,7 @@ export const ${typeName}: Model<${typeName}Type> = table.getModel<${typeName}Typ
131
132
  return `// ${file.marker}
132
133
  /* eslint-disable */
133
134
  import { AttributeType, ProjectionType } from 'aws-cdk-lib/aws-dynamodb';
135
+ import { CfnOutput } from 'aws-cdk-lib';
134
136
  import { Construct } from 'constructs';
135
137
  import { SingleTableDatastore, SingleTableDatastoreProps } from '${core_1.PACKAGE_NAME}/lib/constructs';
136
138
 
@@ -177,10 +179,11 @@ export class ${this.options.modelName}Datastore extends SingleTableDatastore {
177
179
  ],
178
180
  }
179
181
  });
182
+ new CfnOutput(this, '${this.options.modelName}${outputs_1.CFN_OUTPUT_SUFFIX_DATASTORE_TABLENAME}', { value: this.table.tableName });
180
183
  }
181
184
 
182
185
  }`;
183
186
  }
184
187
  }
185
188
  exports.Datastore = Datastore;
186
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plbi9kYXRhc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsK0JBQTRCO0FBRTVCLDJDQUE2QjtBQUM3QixpQ0FBc0M7QUFDdEMsbURBQStDO0FBTy9DOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFhLFNBQVUsU0FBUSxFQUFFLENBQUMsU0FBUztJQUV6QyxZQUFZLEdBQWtDLEVBQVksT0FBeUI7UUFDakYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQWtCO1FBR2pGLEdBQUcsQ0FBQyxPQUFPLENBQ1QsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQix1QkFBdUIsRUFDdkIsTUFBTSxDQUNQLENBQUM7UUFDRixHQUFHLENBQUMsVUFBVSxDQUNaLGFBQWEsQ0FDZCxDQUFDO1FBRUYsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLE1BQU0sRUFBRSxnQkFBZ0I7Z0JBQ3hCLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFO3dCQUNQLElBQUksRUFBRSxJQUFJO3dCQUNWLElBQUksRUFBRSxJQUFJO3FCQUNYO2lCQUNGO2dCQUNELE1BQU0sRUFBRTtvQkFDTixJQUFJLEVBQUU7d0JBQ0osRUFBRSxFQUFFOzRCQUNGLElBQUksRUFBRSxRQUFROzRCQUNkLFFBQVEsRUFBRSxJQUFJOzRCQUNkLEtBQUssRUFBRSxjQUFjO3lCQUN0Qjt3QkFDRCxFQUFFLEVBQUU7NEJBQ0YsSUFBSSxFQUFFLFFBQVE7NEJBQ2QsUUFBUSxFQUFFLElBQUk7NEJBQ2Qs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RSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7O1lBR2IsTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDOzBCQUNsRixHQUFHOzt1QkFFTixJQUFJLENBQUMsSUFBSTs7OzZDQUdhLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVM7Y0FDMUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQzs7Ozs7O0VBTXZCLENBQUM7SUFDRCxDQUFDO0NBRUY7QUE5SkQsOEJBOEpDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgT25lU2NoZW1hIH0gZnJvbSAnZHluYW1vZGItb25ldGFibGUnO1xuaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBMYXp5VGV4dEZpbGUgfSBmcm9tICcuL2xhenktdGV4dGZpbGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzdG9yZU9wdGlvbnMge1xuICByZWFkb25seSBtb2RlbE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgRGF0YXN0b3JlIGNvbnN0cnVjdCBzZXRzIHVwIGEgRHluYW1vREIgc2luZ2xlLXRhYmxlIGRlc2lnbiBmb3IgYSBzZXJ2ZXJsZXNzIHByb2plY3QgdXNpbmcgcHJvamVuLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIENvbXBvbmVudCB0byBpbmNsdWRlIGRlcGVuZGVuY2llcyBhbmQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBEeW5hbW9EQiBhbmQgcHJvdmlkZXNcbiAqIG1ldGhvZHMgdG8gZ2VuZXJhdGUgbW9kZWwgYW5kIGNvbnN0cnVjdCBmaWxlcyBiYXNlZCBvbiBhIHNjaGVtYSBkZWZpbml0aW9uIGZpbGUuXG4gKlxuICogQGV4YW1wbGVcbiAqIGNvbnN0IGRhdGFzdG9yZSA9IG5ldyBEYXRhc3RvcmUoYXBwLCB7XG4gKiAgIG1vZGVsTmFtZTogJ1VzZXInLFxuICogICBkZWZpbml0aW9uRmlsZTogJ3NyYy9tb2RlbHMvdXNlci5zY2hlbWEuanNvbicsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIERhdGFzdG9yZSBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoYXBwOiBwai5hd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJvdGVjdGVkIG9wdGlvbnM6IERhdGFzdG9yZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgYXBwLmFkZERlcHMoXG4gICAgICAnZHluYW1vZGItb25ldGFibGUnLFxuICAgICAgJ0Bhd3Mtc2RrL2NsaWVudC1keW5hbW9kYicsXG4gICAgICAnQGF3cy1zZGsvbGliLWR5bmFtb2RiJyxcbiAgICAgICd1dWlkJyxcbiAgICApO1xuICAgIGFwcC5hZGREZXZEZXBzKFxuICAgICAgJ0B0eXBlcy91dWlkJyxcbiAgICApO1xuXG4gICAgbmV3IHBqLlNhbXBsZUZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUsIHtcbiAgICAgIGNvbnRlbnRzOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIGZvcm1hdDogJ29uZXRhYmxlOjEuMC4wJyxcbiAgICAgICAgdmVyc2lvbjogJzAuMS4wJyxcbiAgICAgICAgaW5kZXhlczoge1xuICAgICAgICAgIHByaW1hcnk6IHtcbiAgICAgICAgICAgIGhhc2g6ICdQSycsXG4gICAgICAgICAgICBzb3J0OiAnU0snLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIG1vZGVsczoge1xuICAgICAgICAgIFVzZXI6IHtcbiAgICAgICAgICAgIFBLOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgdmFsdWU6ICdVc2VyIyR7bmFtZX0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIFNLOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgdmFsdWU6ICdVc2VyIyR7bmFtZX0nLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG5hbWU6IHtcbiAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBuZXcgTGF6eVRleHRGaWxlKHRoaXMucHJvamVjdCwgYHNyYy9nZW5lcmF0ZWQvZGF0YXN0b3JlLiR7dGhpcy5vcHRpb25zLm1vZGVsTmFtZS50b0xvd2VyQ2FzZSgpfS1tb2RlbC5nZW5lcmF0ZWQudHNgLCB7IGNvbnRlbnQ6IHRoaXMuY3JlYXRlTW9kZWxGaWxlLmJpbmQodGhpcykgfSk7XG4gICAgbmV3IExhenlUZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL2RhdGFzdG9yZS4ke3RoaXMub3B0aW9ucy5tb2RlbE5hbWUudG9Mb3dlckNhc2UoKX0tY29uc3RydWN0LmdlbmVyYXRlZC50c2AsIHsgY29udGVudDogdGhpcy5jcmVhdGVDb25zdHJ1Y3RGaWxlLmJpbmQodGhpcykgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlTW9kZWxGaWxlKGZpbGU6IHBqLkZpbGVCYXNlKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb2RlbCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlKSkudG9TdHJpbmcoKSkgYXMgT25lU2NoZW1hO1xuXG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IE1vZGVsLCBUYWJsZSwgRW50aXR5IH0gZnJvbSAnZHluYW1vZGItb25ldGFibGUnO1xuaW1wb3J0IHsgZW52IH0gZnJvbSAncHJvY2Vzcyc7XG5pbXBvcnQgeyBEeW5hbW8gfSBmcm9tICdkeW5hbW9kYi1vbmV0YWJsZS9EeW5hbW8nO1xuaW1wb3J0IHsgRHluYW1vREJDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInO1xuXG5leHBvcnQgY29uc3QgZHluYW1vQ2xpZW50ID0gbmV3IER5bmFtbyh7IGNsaWVudDogbmV3IER5bmFtb0RCQ2xpZW50KHt9KSB9KVxuZXhwb3J0IGNvbnN0IFRBQkxFX05BTUU6IHN0cmluZyA9IGVudi5UQUJMRSE7XG5cbiR7T2JqZWN0LmVudHJpZXMobW9kZWwuaW5kZXhlcykubWFwKChbaWR4LCBkYXRhXSkgPT4gYGV4cG9ydCBjb25zdCBJbmRleF8ke2lkeH1fTmFtZSA9ICcke2lkeH0nO1xuZXhwb3J0IGNvbnN0IEluZGV4XyR7aWR4fV9IYXNoS2V5ID0gJyR7ZGF0YS5oYXNofSc7XG5leHBvcnQgY29uc3QgSW5kZXhfJHtpZHh9X1NvcnRLZXkgPSAnJHtkYXRhLnNvcnR9JztcbmApLmpvaW4oJ1xcbicpfVxuXG5leHBvcnQgY29uc3QgU2NoZW1hID0gJHt0aGlzLnN0cmluZ2lmeU1vZGVsKG1vZGVsKX07XG5cbmV4cG9ydCBjb25zdCB0YWJsZSA9IG5ldyBUYWJsZSh7XG4gIGNsaWVudDogZHluYW1vQ2xpZW50LFxuICBuYW1lOiBUQUJMRV9OQU1FLFxuICBzY2hlbWE6IFNjaGVtYSxcbiAgaXNvRGF0ZXM6IHRydWUsXG4gIC8vIGxvZ2dlcjogdHJ1ZSxcbiAgaGlkZGVuOiBmYWxzZSxcbn0pO1xuXG4ke09iamVjdC5lbnRyaWVzKG1vZGVsLm1vZGVscykubWFwKChbdHlwZU5hbWUsIF9dKSA9PiBgZXhwb3J0IHR5cGUgJHt0eXBlTmFtZX1UeXBlID0gRW50aXR5PHR5cGVvZiBTY2hlbWEubW9kZWxzLiR7dHlwZU5hbWV9PjtcbmV4cG9ydCBjb25zdCAke3R5cGVOYW1lfTogTW9kZWw8JHt0eXBlTmFtZX1UeXBlPiA9IHRhYmxlLmdldE1vZGVsPCR7dHlwZU5hbWV9VHlwZT4oJyR7dHlwZU5hbWV9Jyk7XG5gKS5qb2luKCdcXG4nKX1cblxuYDtcbiAgfVxuXG4gIHByaXZhdGUgc3RyaW5naWZ5TW9kZWwobW9kZWw6IE9uZVNjaGVtYSkge1xuICAgIC8vIGFycmF5LCBiaW5hcnksIGJvb2xlYW4sICAgICAgICAgZGF0ZSwgbnVtYmVyLCBvYmplY3QsIHNldCwgc3RyaW5nXG4gICAgLy8gQXJyYXksIEJpbmFyeSwgQm9vbGVhbiwgQnVmZmVyLCBEYXRlLCBOdW1iZXIsIE9iamVjdCwgU2V0LCBTdHJpbmdcblxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeShtb2RlbCwgbnVsbCwgMilcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJhcnJheVwiL2csICdcInR5cGVcIjogQXJyYXknKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcImJpbmFyeVwiL2csICdcInR5cGVcIjogQmluYXJ5JylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJib29sZWFuXCIvZywgJ1widHlwZVwiOiBCb29sZWFuJylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJkYXRlXCIvZywgJ1widHlwZVwiOiBEYXRlJylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJudW1iZXJcIi9nLCAnXCJ0eXBlXCI6IE51bWJlcicpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwib2JqZWN0XCIvZywgJ1widHlwZVwiOiBPYmplY3QnKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcInNldFwiL2csICdcInR5cGVcIjogU2V0JylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJzdHJpbmdcIi9nLCAnXCJ0eXBlXCI6IFN0cmluZycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbnN0cnVjdEZpbGUoZmlsZTogcGouRmlsZUJhc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG1vZGVsID0gSlNPTi5wYXJzZShmcy5yZWFkRmlsZVN5bmMoam9pbih0aGlzLnByb2plY3Qub3V0ZGlyLCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUpKS50b1N0cmluZygpKSBhcyBPbmVTY2hlbWE7XG5cbiAgICByZXR1cm4gYC8vICR7ZmlsZS5tYXJrZXJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgQXR0cmlidXRlVHlwZSwgUHJvamVjdGlvblR5cGUgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZHluYW1vZGInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBTaW5nbGVUYWJsZURhdGFzdG9yZSwgU2luZ2xlVGFibGVEYXRhc3RvcmVQcm9wcyB9IGZyb20gJyR7UEFDS0FHRV9OQU1FfS9saWIvY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfURhdGFzdG9yZVByb3BzIGV4dGVuZHMgT21pdDxTaW5nbGVUYWJsZURhdGFzdG9yZVByb3BzLCAnZGVzaWduJz4ge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfURhdGFzdG9yZSBleHRlbmRzIFNpbmdsZVRhYmxlRGF0YXN0b3JlIHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfURhdGFzdG9yZVByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVzaWduOiB7XG4gICAgICAgIHByaW1hcnlLZXk6IHtcbiAgICAgICAgICBwYXJ0aXRpb25LZXk6ICcke21vZGVsLmluZGV4ZXMucHJpbWFyeS5oYXNofScsXG4gICAgICAgICAgJHttb2RlbC5pbmRleGVzLnByaW1hcnkuc29ydCA/IGBzb3J0S2V5OiAnJHttb2RlbC5pbmRleGVzLnByaW1hcnkuc29ydH0nLGAgOiAnJ31cbiAgICAgICAgfSxcbiAgICAgICAgLy8gdGltZVRvTGl2ZUF0dHJpYnV0ZTogJ1RPRE8nLFxuICAgICAgICBnbG9iYWxJbmRleGVzOiBbXG4gICAgICAgICAgJHtPYmplY3QuZW50cmllcyhtb2RlbC5pbmRleGVzKS5maWx0ZXIoKFtpZHgsIGRhdGFdKSA9PiBpZHggIT09ICdwcmltYXJ5JyAmJiBkYXRhLnR5cGUgIT09ICdsb2NhbCcpLm1hcCgoW2lkeCwgZGF0YV0pID0+IGB7XG4gICAgICAgICAgICBpbmRleE5hbWU6ICcke2lkeH0nLFxuICAgICAgICAgICAgcGFydGl0aW9uS2V5OiB7XG4gICAgICAgICAgICAgIG5hbWU6ICcke2RhdGEuaGFzaH0nLFxuICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAke2RhdGEuc29ydCA/IGBzb3J0S2V5OiB7XG4gICAgICAgICAgICAgIG5hbWU6ICcke2RhdGEuc29ydH0nLFxuICAgICAgICAgICAgICB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyxcbiAgICAgICAgICAgIH0sYCA6ICcnfVxuICAgICAgICAgICAgcHJvamVjdGlvblR5cGU6IFByb2plY3Rpb25UeXBlLiR7dHlwZW9mIGRhdGEucHJvamVjdCA9PT0gJ3N0cmluZycgPyBkYXRhLnByb2plY3QudG9VcHBlckNhc2UoKSA6ICdJTkNMVURFJ30sXG4gICAgICAgICAgICAke0FycmF5LmlzQXJyYXkoZGF0YS5wcm9qZWN0KSA/IGBub25LZXlBdHRyaWJ1dGVzOiBbJHtkYXRhLnByb2plY3QubWFwKGUgPT4gYCcke2V9J2ApLmpvaW4oJywnKX1dLGAgOiAnJ31cbiAgICAgICAgICB9YCkuam9pbignLFxcbicpfVxuICAgICAgICBdLFxuICAgICAgICBsb2NhbEluZGV4ZXM6IFtcbiAgICAgICAgICAke09iamVjdC5lbnRyaWVzKG1vZGVsLmluZGV4ZXMpLmZpbHRlcigoW18sIGRhdGFdKSA9PiBkYXRhLnR5cGUgPT09ICdsb2NhbCcpLm1hcCgoW2lkeCwgZGF0YV0pID0+IGB7XG4gICAgICAgICAgICBpbmRleE5hbWU6ICcke2lkeH0nLFxuICAgICAgICAgICAgc29ydEtleToge1xuICAgICAgICAgICAgICBuYW1lOiAnJHtkYXRhLnNvcnR9JyxcbiAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcHJvamVjdGlvblR5cGU6IFByb2plY3Rpb25UeXBlLiR7dHlwZW9mIGRhdGEucHJvamVjdCA9PT0gJ3N0cmluZycgPyBkYXRhLnByb2plY3QgOiAnSU5DTFVERSd9LFxuICAgICAgICAgICAgJHtBcnJheS5pc0FycmF5KGRhdGEucHJvamVjdCkgPyBgbm9uS2V5QXR0cmlidXRlczogWyR7ZGF0YS5wcm9qZWN0Lm1hcChlID0+IGAnJHtlfSdgKS5qb2luKCcsJyl9XSxgIDogJyd9XG4gICAgICAgICAgfWApLmpvaW4oJyxcXG4nKX1cbiAgICAgICAgXSxcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG59Il19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YXN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Byb2plbi9kYXRhc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsK0JBQTRCO0FBRTVCLDJDQUE2QjtBQUM3QixpQ0FBc0M7QUFDdEMsbURBQStDO0FBQy9DLCtDQUEwRTtBQU8xRTs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsRUFBRSxDQUFDLFNBQVM7SUFFekMsWUFBWSxHQUFrQyxFQUFZLE9BQXlCO1FBQ2pGLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUQ2QyxZQUFPLEdBQVAsT0FBTyxDQUFrQjtRQUdqRixHQUFHLENBQUMsT0FBTyxDQUNULG1CQUFtQixFQUNuQiwwQkFBMEIsRUFDMUIsdUJBQXVCLEVBQ3ZCLE1BQU0sQ0FDUCxDQUFDO1FBQ0YsR0FBRyxDQUFDLFVBQVUsQ0FDWixhQUFhLENBQ2QsQ0FBQztRQUVGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN2QixNQUFNLEVBQUUsZ0JBQWdCO2dCQUN4QixPQUFPLEVBQUUsT0FBTztnQkFDaEIsT0FBTyxFQUFFO29CQUNQLE9BQU8sRUFBRTt3QkFDUCxJQUFJLEVBQUUsSUFBSTt3QkFDVixJQUFJLEVBQUUsSUFBSTtxQkFDWDtpQkFDRjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sSUFBSSxFQUFFO3dCQUNKLEVBQUUsRUFBRTs0QkFDRixJQUFJLEVBQUUsUUFBUTs0QkFDZCxRQUFRLEVBQUUsSUFBSTs0QkFDZCxLQUFLLEVBQUUsY0FBYzt5QkFDdEI7d0JBQ0QsRUFBRSxFQUFFOzRCQUNGLElBQUksRUFBRSxRQUFROzRCQUNkLFFBQVEsRUFB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LENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7WUFHYixNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7MEJBQ2xGLEdBQUc7O3VCQUVOLElBQUksQ0FBQyxJQUFJOzs7NkNBR2EsT0FBTyxJQUFJLENBQUMsT0FBTyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUztjQUMxRixLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDOzs7OzJCQUlFLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLCtDQUFxQzs7O0VBR3ZGLENBQUM7SUFDRCxDQUFDO0NBRUY7QUFoS0QsOEJBZ0tDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgT25lU2NoZW1hIH0gZnJvbSAnZHluYW1vZGItb25ldGFibGUnO1xuaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBMYXp5VGV4dEZpbGUgfSBmcm9tICcuL2xhenktdGV4dGZpbGUnO1xuaW1wb3J0IHsgQ0ZOX09VVFBVVF9TVUZGSVhfREFUQVNUT1JFX1RBQkxFTkFNRSB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBEYXRhc3RvcmVPcHRpb25zIHtcbiAgcmVhZG9ubHkgbW9kZWxOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb25GaWxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIERhdGFzdG9yZSBjb25zdHJ1Y3Qgc2V0cyB1cCBhIER5bmFtb0RCIHNpbmdsZS10YWJsZSBkZXNpZ24gZm9yIGEgc2VydmVybGVzcyBwcm9qZWN0IHVzaW5nIHByb2plbi5cbiAqIFRoaXMgY29uc3RydWN0IGV4dGVuZHMgdGhlIHByb2plbiBDb21wb25lbnQgdG8gaW5jbHVkZSBkZXBlbmRlbmNpZXMgYW5kIGRldmVsb3BtZW50IGRlcGVuZGVuY2llcyByZXF1aXJlZCBmb3IgRHluYW1vREIgYW5kIHByb3ZpZGVzXG4gKiBtZXRob2RzIHRvIGdlbmVyYXRlIG1vZGVsIGFuZCBjb25zdHJ1Y3QgZmlsZXMgYmFzZWQgb24gYSBzY2hlbWEgZGVmaW5pdGlvbiBmaWxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBkYXRhc3RvcmUgPSBuZXcgRGF0YXN0b3JlKGFwcCwge1xuICogICBtb2RlbE5hbWU6ICdVc2VyJyxcbiAqICAgZGVmaW5pdGlvbkZpbGU6ICdzcmMvbW9kZWxzL3VzZXIuc2NoZW1hLmpzb24nLFxuICogfSk7XG4gKi9cbmV4cG9ydCBjbGFzcyBEYXRhc3RvcmUgZXh0ZW5kcyBwai5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByb3RlY3RlZCBvcHRpb25zOiBEYXRhc3RvcmVPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwKTtcblxuICAgIGFwcC5hZGREZXBzKFxuICAgICAgJ2R5bmFtb2RiLW9uZXRhYmxlJyxcbiAgICAgICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInLFxuICAgICAgJ0Bhd3Mtc2RrL2xpYi1keW5hbW9kYicsXG4gICAgICAndXVpZCcsXG4gICAgKTtcbiAgICBhcHAuYWRkRGV2RGVwcyhcbiAgICAgICdAdHlwZXMvdXVpZCcsXG4gICAgKTtcblxuICAgIG5ldyBwai5TYW1wbGVGaWxlKHRoaXMucHJvamVjdCwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlLCB7XG4gICAgICBjb250ZW50czogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBmb3JtYXQ6ICdvbmV0YWJsZToxLjAuMCcsXG4gICAgICAgIHZlcnNpb246ICcwLjEuMCcsXG4gICAgICAgIGluZGV4ZXM6IHtcbiAgICAgICAgICBwcmltYXJ5OiB7XG4gICAgICAgICAgICBoYXNoOiAnUEsnLFxuICAgICAgICAgICAgc29ydDogJ1NLJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBtb2RlbHM6IHtcbiAgICAgICAgICBVc2VyOiB7XG4gICAgICAgICAgICBQSzoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHZhbHVlOiAnVXNlciMke25hbWV9JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBTSzoge1xuICAgICAgICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIHZhbHVlOiAnVXNlciMke25hbWV9JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBuYW1lOiB7XG4gICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgbmV3IExhenlUZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL2RhdGFzdG9yZS4ke3RoaXMub3B0aW9ucy5tb2RlbE5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkLnRzYCwgeyBjb250ZW50OiB0aGlzLmNyZWF0ZU1vZGVsRmlsZS5iaW5kKHRoaXMpIH0pO1xuICAgIG5ldyBMYXp5VGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgc3JjL2dlbmVyYXRlZC9kYXRhc3RvcmUuJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lLnRvTG93ZXJDYXNlKCl9LWNvbnN0cnVjdC5nZW5lcmF0ZWQudHNgLCB7IGNvbnRlbnQ6IHRoaXMuY3JlYXRlQ29uc3RydWN0RmlsZS5iaW5kKHRoaXMpIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZU1vZGVsRmlsZShmaWxlOiBwai5GaWxlQmFzZSk6IHN0cmluZyB7XG4gICAgY29uc3QgbW9kZWwgPSBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSkpLnRvU3RyaW5nKCkpIGFzIE9uZVNjaGVtYTtcblxuICAgIHJldHVybiBgLy8gJHtmaWxlLm1hcmtlcn1cbi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgeyBNb2RlbCwgVGFibGUsIEVudGl0eSB9IGZyb20gJ2R5bmFtb2RiLW9uZXRhYmxlJztcbmltcG9ydCB7IGVudiB9IGZyb20gJ3Byb2Nlc3MnO1xuaW1wb3J0IHsgRHluYW1vIH0gZnJvbSAnZHluYW1vZGItb25ldGFibGUvRHluYW1vJztcbmltcG9ydCB7IER5bmFtb0RCQ2xpZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWR5bmFtb2RiJztcblxuZXhwb3J0IGNvbnN0IGR5bmFtb0NsaWVudCA9IG5ldyBEeW5hbW8oeyBjbGllbnQ6IG5ldyBEeW5hbW9EQkNsaWVudCh7fSkgfSlcbmV4cG9ydCBjb25zdCBUQUJMRV9OQU1FOiBzdHJpbmcgPSBlbnYuVEFCTEUhO1xuXG4ke09iamVjdC5lbnRyaWVzKG1vZGVsLmluZGV4ZXMpLm1hcCgoW2lkeCwgZGF0YV0pID0+IGBleHBvcnQgY29uc3QgSW5kZXhfJHtpZHh9X05hbWUgPSAnJHtpZHh9JztcbmV4cG9ydCBjb25zdCBJbmRleF8ke2lkeH1fSGFzaEtleSA9ICcke2RhdGEuaGFzaH0nO1xuZXhwb3J0IGNvbnN0IEluZGV4XyR7aWR4fV9Tb3J0S2V5ID0gJyR7ZGF0YS5zb3J0fSc7XG5gKS5qb2luKCdcXG4nKX1cblxuZXhwb3J0IGNvbnN0IFNjaGVtYSA9ICR7dGhpcy5zdHJpbmdpZnlNb2RlbChtb2RlbCl9O1xuXG5leHBvcnQgY29uc3QgdGFibGUgPSBuZXcgVGFibGUoe1xuICBjbGllbnQ6IGR5bmFtb0NsaWVudCxcbiAgbmFtZTogVEFCTEVfTkFNRSxcbiAgc2NoZW1hOiBTY2hlbWEsXG4gIGlzb0RhdGVzOiB0cnVlLFxuICAvLyBsb2dnZXI6IHRydWUsXG4gIGhpZGRlbjogZmFsc2UsXG59KTtcblxuJHtPYmplY3QuZW50cmllcyhtb2RlbC5tb2RlbHMpLm1hcCgoW3R5cGVOYW1lLCBfXSkgPT4gYGV4cG9ydCB0eXBlICR7dHlwZU5hbWV9VHlwZSA9IEVudGl0eTx0eXBlb2YgU2NoZW1hLm1vZGVscy4ke3R5cGVOYW1lfT47XG5leHBvcnQgY29uc3QgJHt0eXBlTmFtZX06IE1vZGVsPCR7dHlwZU5hbWV9VHlwZT4gPSB0YWJsZS5nZXRNb2RlbDwke3R5cGVOYW1lfVR5cGU+KCcke3R5cGVOYW1lfScpO1xuYCkuam9pbignXFxuJyl9XG5cbmA7XG4gIH1cblxuICBwcml2YXRlIHN0cmluZ2lmeU1vZGVsKG1vZGVsOiBPbmVTY2hlbWEpIHtcbiAgICAvLyBhcnJheSwgYmluYXJ5LCBib29sZWFuLCAgICAgICAgIGRhdGUsIG51bWJlciwgb2JqZWN0LCBzZXQsIHN0cmluZ1xuICAgIC8vIEFycmF5LCBCaW5hcnksIEJvb2xlYW4sIEJ1ZmZlciwgRGF0ZSwgTnVtYmVyLCBPYmplY3QsIFNldCwgU3RyaW5nXG5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkobW9kZWwsIG51bGwsIDIpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwiYXJyYXlcIi9nLCAnXCJ0eXBlXCI6IEFycmF5JylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJiaW5hcnlcIi9nLCAnXCJ0eXBlXCI6IEJpbmFyeScpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwiYm9vbGVhblwiL2csICdcInR5cGVcIjogQm9vbGVhbicpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwiZGF0ZVwiL2csICdcInR5cGVcIjogRGF0ZScpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwibnVtYmVyXCIvZywgJ1widHlwZVwiOiBOdW1iZXInKVxuICAgICAgLnJlcGxhY2UoL1widHlwZVwiOiBcIm9iamVjdFwiL2csICdcInR5cGVcIjogT2JqZWN0JylcbiAgICAgIC5yZXBsYWNlKC9cInR5cGVcIjogXCJzZXRcIi9nLCAnXCJ0eXBlXCI6IFNldCcpXG4gICAgICAucmVwbGFjZSgvXCJ0eXBlXCI6IFwic3RyaW5nXCIvZywgJ1widHlwZVwiOiBTdHJpbmcnKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjcmVhdGVDb25zdHJ1Y3RGaWxlKGZpbGU6IHBqLkZpbGVCYXNlKTogc3RyaW5nIHtcbiAgICBjb25zdCBtb2RlbCA9IEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlKSkudG9TdHJpbmcoKSkgYXMgT25lU2NoZW1hO1xuXG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IEF0dHJpYnV0ZVR5cGUsIFByb2plY3Rpb25UeXBlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IENmbk91dHB1dCB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgU2luZ2xlVGFibGVEYXRhc3RvcmUsIFNpbmdsZVRhYmxlRGF0YXN0b3JlUHJvcHMgfSBmcm9tICcke1BBQ0tBR0VfTkFNRX0vbGliL2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlICR7dGhpcy5vcHRpb25zLm1vZGVsTmFtZX1EYXRhc3RvcmVQcm9wcyBleHRlbmRzIE9taXQ8U2luZ2xlVGFibGVEYXRhc3RvcmVQcm9wcywgJ2Rlc2lnbic+IHtcbiAgLy9cbn1cblxuZXhwb3J0IGNsYXNzICR7dGhpcy5vcHRpb25zLm1vZGVsTmFtZX1EYXRhc3RvcmUgZXh0ZW5kcyBTaW5nbGVUYWJsZURhdGFzdG9yZSB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5vcHRpb25zLm1vZGVsTmFtZX1EYXRhc3RvcmVQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGRlc2lnbjoge1xuICAgICAgICBwcmltYXJ5S2V5OiB7XG4gICAgICAgICAgcGFydGl0aW9uS2V5OiAnJHttb2RlbC5pbmRleGVzLnByaW1hcnkuaGFzaH0nLFxuICAgICAgICAgICR7bW9kZWwuaW5kZXhlcy5wcmltYXJ5LnNvcnQgPyBgc29ydEtleTogJyR7bW9kZWwuaW5kZXhlcy5wcmltYXJ5LnNvcnR9JyxgIDogJyd9XG4gICAgICAgIH0sXG4gICAgICAgIC8vIHRpbWVUb0xpdmVBdHRyaWJ1dGU6ICdUT0RPJyxcbiAgICAgICAgZ2xvYmFsSW5kZXhlczogW1xuICAgICAgICAgICR7T2JqZWN0LmVudHJpZXMobW9kZWwuaW5kZXhlcykuZmlsdGVyKChbaWR4LCBkYXRhXSkgPT4gaWR4ICE9PSAncHJpbWFyeScgJiYgZGF0YS50eXBlICE9PSAnbG9jYWwnKS5tYXAoKFtpZHgsIGRhdGFdKSA9PiBge1xuICAgICAgICAgICAgaW5kZXhOYW1lOiAnJHtpZHh9JyxcbiAgICAgICAgICAgIHBhcnRpdGlvbktleToge1xuICAgICAgICAgICAgICBuYW1lOiAnJHtkYXRhLmhhc2h9JyxcbiAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgJHtkYXRhLnNvcnQgPyBgc29ydEtleToge1xuICAgICAgICAgICAgICBuYW1lOiAnJHtkYXRhLnNvcnR9JyxcbiAgICAgICAgICAgICAgdHlwZTogQXR0cmlidXRlVHlwZS5TVFJJTkcsXG4gICAgICAgICAgICB9LGAgOiAnJ31cbiAgICAgICAgICAgIHByb2plY3Rpb25UeXBlOiBQcm9qZWN0aW9uVHlwZS4ke3R5cGVvZiBkYXRhLnByb2plY3QgPT09ICdzdHJpbmcnID8gZGF0YS5wcm9qZWN0LnRvVXBwZXJDYXNlKCkgOiAnSU5DTFVERSd9LFxuICAgICAgICAgICAgJHtBcnJheS5pc0FycmF5KGRhdGEucHJvamVjdCkgPyBgbm9uS2V5QXR0cmlidXRlczogWyR7ZGF0YS5wcm9qZWN0Lm1hcChlID0+IGAnJHtlfSdgKS5qb2luKCcsJyl9XSxgIDogJyd9XG4gICAgICAgICAgfWApLmpvaW4oJyxcXG4nKX1cbiAgICAgICAgXSxcbiAgICAgICAgbG9jYWxJbmRleGVzOiBbXG4gICAgICAgICAgJHtPYmplY3QuZW50cmllcyhtb2RlbC5pbmRleGVzKS5maWx0ZXIoKFtfLCBkYXRhXSkgPT4gZGF0YS50eXBlID09PSAnbG9jYWwnKS5tYXAoKFtpZHgsIGRhdGFdKSA9PiBge1xuICAgICAgICAgICAgaW5kZXhOYW1lOiAnJHtpZHh9JyxcbiAgICAgICAgICAgIHNvcnRLZXk6IHtcbiAgICAgICAgICAgICAgbmFtZTogJyR7ZGF0YS5zb3J0fScsXG4gICAgICAgICAgICAgIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHByb2plY3Rpb25UeXBlOiBQcm9qZWN0aW9uVHlwZS4ke3R5cGVvZiBkYXRhLnByb2plY3QgPT09ICdzdHJpbmcnID8gZGF0YS5wcm9qZWN0IDogJ0lOQ0xVREUnfSxcbiAgICAgICAgICAgICR7QXJyYXkuaXNBcnJheShkYXRhLnByb2plY3QpID8gYG5vbktleUF0dHJpYnV0ZXM6IFske2RhdGEucHJvamVjdC5tYXAoZSA9PiBgJyR7ZX0nYCkuam9pbignLCcpfV0sYCA6ICcnfVxuICAgICAgICAgIH1gKS5qb2luKCcsXFxuJyl9XG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgfSk7XG4gICAgbmV3IENmbk91dHB1dCh0aGlzLCAnJHt0aGlzLm9wdGlvbnMubW9kZWxOYW1lfSR7Q0ZOX09VVFBVVF9TVUZGSVhfREFUQVNUT1JFX1RBQkxFTkFNRX0nLCB7IHZhbHVlOiB0aGlzLnRhYmxlLnRhYmxlTmFtZSB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG59Il19
@@ -0,0 +1,12 @@
1
+ export declare const CFN_OUTPUT_SUFFIX_RESTAPI_DOMAINNAME = "RestApiDomainName";
2
+ export declare const CFN_OUTPUT_SUFFIX_RESTAPI_URL = "RestApiUrl";
3
+ export declare const CFN_OUTPUT_SUFFIX_GRAPHQL_DOMAINNAME = "GraphQlDomainName";
4
+ export declare const CFN_OUTPUT_SUFFIX_DATASTORE_TABLENAME = "TableName";
5
+ export declare const CFN_OUTPUT_SUFFIX_ASSETCDN_BUCKETNAME = "AssetCdnBucketName";
6
+ export declare const CFN_OUTPUT_SUFFIX_ASSETCDN_DOMAINNAME = "AssetCdnDomainName";
7
+ export declare const CFN_OUTPUT_SUFFIX_ASSETCDN_URL = "AssetCdnUrl";
8
+ export declare const CFN_OUTPUT_SUFFIX_AUTH_USERPOOLID = "UserPoolId";
9
+ export declare const CFN_OUTPUT_SUFFIX_AUTH_USERPOOL_CLIENTID = "UserPoolClientId";
10
+ export declare const CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_ID = "IdentityPoolId";
11
+ export declare const CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_AUTH_ROLEARN = "IdentityPoolAuthRoleArn";
12
+ export declare const CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_UNAUTH_ROLEARN = "IdentityPoolUnAuthRoleArn";
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_UNAUTH_ROLEARN = exports.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_AUTH_ROLEARN = exports.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_ID = exports.CFN_OUTPUT_SUFFIX_AUTH_USERPOOL_CLIENTID = exports.CFN_OUTPUT_SUFFIX_AUTH_USERPOOLID = exports.CFN_OUTPUT_SUFFIX_ASSETCDN_URL = exports.CFN_OUTPUT_SUFFIX_ASSETCDN_DOMAINNAME = exports.CFN_OUTPUT_SUFFIX_ASSETCDN_BUCKETNAME = exports.CFN_OUTPUT_SUFFIX_DATASTORE_TABLENAME = exports.CFN_OUTPUT_SUFFIX_GRAPHQL_DOMAINNAME = exports.CFN_OUTPUT_SUFFIX_RESTAPI_URL = exports.CFN_OUTPUT_SUFFIX_RESTAPI_DOMAINNAME = void 0;
4
+ exports.CFN_OUTPUT_SUFFIX_RESTAPI_DOMAINNAME = 'RestApiDomainName';
5
+ exports.CFN_OUTPUT_SUFFIX_RESTAPI_URL = 'RestApiUrl';
6
+ exports.CFN_OUTPUT_SUFFIX_GRAPHQL_DOMAINNAME = 'GraphQlDomainName';
7
+ exports.CFN_OUTPUT_SUFFIX_DATASTORE_TABLENAME = 'TableName';
8
+ exports.CFN_OUTPUT_SUFFIX_ASSETCDN_BUCKETNAME = 'AssetCdnBucketName';
9
+ exports.CFN_OUTPUT_SUFFIX_ASSETCDN_DOMAINNAME = 'AssetCdnDomainName';
10
+ exports.CFN_OUTPUT_SUFFIX_ASSETCDN_URL = 'AssetCdnUrl';
11
+ exports.CFN_OUTPUT_SUFFIX_AUTH_USERPOOLID = 'UserPoolId';
12
+ exports.CFN_OUTPUT_SUFFIX_AUTH_USERPOOL_CLIENTID = 'UserPoolClientId';
13
+ exports.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_ID = 'IdentityPoolId';
14
+ exports.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_AUTH_ROLEARN = 'IdentityPoolAuthRoleArn';
15
+ exports.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_UNAUTH_ROLEARN = 'IdentityPoolUnAuthRoleArn';
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3V0cHV0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zaGFyZWQvb3V0cHV0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDYSxRQUFBLG9DQUFvQyxHQUFHLG1CQUFtQixDQUFDO0FBQzNELFFBQUEsNkJBQTZCLEdBQUcsWUFBWSxDQUFDO0FBRTdDLFFBQUEsb0NBQW9DLEdBQUcsbUJBQW1CLENBQUM7QUFFM0QsUUFBQSxxQ0FBcUMsR0FBRyxXQUFXLENBQUM7QUFFcEQsUUFBQSxxQ0FBcUMsR0FBRyxvQkFBb0IsQ0FBQztBQUM3RCxRQUFBLHFDQUFxQyxHQUFHLG9CQUFvQixDQUFDO0FBQzdELFFBQUEsOEJBQThCLEdBQUcsYUFBYSxDQUFDO0FBRS9DLFFBQUEsaUNBQWlDLEdBQUcsWUFBWSxDQUFDO0FBQ2pELFFBQUEsd0NBQXdDLEdBQUcsa0JBQWtCLENBQUM7QUFDOUQsUUFBQSxzQ0FBc0MsR0FBRyxnQkFBZ0IsQ0FBQztBQUMxRCxRQUFBLGdEQUFnRCxHQUFHLHlCQUF5QixDQUFDO0FBQzdFLFFBQUEsa0RBQWtELEdBQUcsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbmV4cG9ydCBjb25zdCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX0RPTUFJTk5BTUUgPSAnUmVzdEFwaURvbWFpbk5hbWUnO1xuZXhwb3J0IGNvbnN0IENGTl9PVVRQVVRfU1VGRklYX1JFU1RBUElfVVJMID0gJ1Jlc3RBcGlVcmwnO1xuXG5leHBvcnQgY29uc3QgQ0ZOX09VVFBVVF9TVUZGSVhfR1JBUEhRTF9ET01BSU5OQU1FID0gJ0dyYXBoUWxEb21haW5OYW1lJztcblxuZXhwb3J0IGNvbnN0IENGTl9PVVRQVVRfU1VGRklYX0RBVEFTVE9SRV9UQUJMRU5BTUUgPSAnVGFibGVOYW1lJztcblxuZXhwb3J0IGNvbnN0IENGTl9PVVRQVVRfU1VGRklYX0FTU0VUQ0ROX0JVQ0tFVE5BTUUgPSAnQXNzZXRDZG5CdWNrZXROYW1lJztcbmV4cG9ydCBjb25zdCBDRk5fT1VUUFVUX1NVRkZJWF9BU1NFVENETl9ET01BSU5OQU1FID0gJ0Fzc2V0Q2RuRG9tYWluTmFtZSc7XG5leHBvcnQgY29uc3QgQ0ZOX09VVFBVVF9TVUZGSVhfQVNTRVRDRE5fVVJMID0gJ0Fzc2V0Q2RuVXJsJztcblxuZXhwb3J0IGNvbnN0IENGTl9PVVRQVVRfU1VGRklYX0FVVEhfVVNFUlBPT0xJRCA9ICdVc2VyUG9vbElkJztcbmV4cG9ydCBjb25zdCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElEID0gJ1VzZXJQb29sQ2xpZW50SWQnO1xuZXhwb3J0IGNvbnN0IENGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lEID0gJ0lkZW50aXR5UG9vbElkJztcbmV4cG9ydCBjb25zdCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9BVVRIX1JPTEVBUk4gPSAnSWRlbnRpdHlQb29sQXV0aFJvbGVBcm4nO1xuZXhwb3J0IGNvbnN0IENGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX1VOQVVUSF9ST0xFQVJOID0gJ0lkZW50aXR5UG9vbFVuQXV0aFJvbGVBcm4nOyJdfQ==
@@ -0,0 +1 @@
1
+ export * from './integ-test-util';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./integ-test-util"), exports);
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG9EQUFrQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vaW50ZWctdGVzdC11dGlsJzsiXX0=
@@ -0,0 +1,40 @@
1
+ import { NativeAttributeValue } from '@aws-sdk/lib-dynamodb';
2
+ import { Axios, AxiosRequestConfig } from 'axios';
3
+ export interface IntegTestUtilOptions {
4
+ readonly region: string;
5
+ readonly apiOptions?: {
6
+ readonly baseURL?: string;
7
+ };
8
+ readonly authOptions?: {
9
+ readonly userPoolId?: string;
10
+ readonly userPoolClientId?: string;
11
+ readonly userPoolClientSecret?: string;
12
+ readonly identityPoolId?: string;
13
+ };
14
+ readonly datastoreOptions?: {
15
+ readonly tableName?: string;
16
+ };
17
+ }
18
+ export interface CfnOutputConfig {
19
+ readonly region: string;
20
+ readonly apiName: string;
21
+ readonly datastoreName: string;
22
+ }
23
+ export declare function parseCfnOutputs(output: any, stackName: string, config: CfnOutputConfig): IntegTestUtilOptions;
24
+ export declare class IntegTestUtil {
25
+ protected options: IntegTestUtilOptions;
26
+ readonly tableName?: string;
27
+ private apiTokens;
28
+ private itemsToDelete;
29
+ constructor(options: IntegTestUtilOptions);
30
+ getClient(config?: AxiosRequestConfig): Axios;
31
+ getAuthenticatedClient(email: string, password?: string, config?: AxiosRequestConfig): Promise<Axios>;
32
+ initializeItemsToCleanup(): Promise<void>;
33
+ addItemToDeleteAfterTest(key: Record<string, NativeAttributeValue>): Promise<void>;
34
+ cleanupItems(): Promise<void>;
35
+ createUser(email: string, attributes: {
36
+ [key: string]: string;
37
+ }, groups: string[]): Promise<void>;
38
+ removeUser(email: string): Promise<void>;
39
+ protected loginUser(email: string, password: string): Promise<void>;
40
+ }
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IntegTestUtil = exports.parseCfnOutputs = void 0;
4
+ const client_cognito_identity_provider_1 = require("@aws-sdk/client-cognito-identity-provider");
5
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
6
+ const lib_dynamodb_1 = require("@aws-sdk/lib-dynamodb");
7
+ const axios_1 = require("axios");
8
+ const outputs_1 = require("../shared/outputs");
9
+ function parseCfnOutputs(output, stackName, config) {
10
+ const outputs = output[stackName];
11
+ return {
12
+ region: config.region,
13
+ apiOptions: {
14
+ baseURL: outputs[`${config.apiName}${outputs_1.CFN_OUTPUT_SUFFIX_RESTAPI_URL}`],
15
+ },
16
+ authOptions: {
17
+ userPoolId: outputs[outputs_1.CFN_OUTPUT_SUFFIX_AUTH_USERPOOLID],
18
+ userPoolClientId: outputs[outputs_1.CFN_OUTPUT_SUFFIX_AUTH_USERPOOL_CLIENTID],
19
+ identityPoolId: outputs[outputs_1.CFN_OUTPUT_SUFFIX_AUTH_IDENTITYPOOL_ID],
20
+ },
21
+ datastoreOptions: {
22
+ tableName: `${config.datastoreName}${outputs[outputs_1.CFN_OUTPUT_SUFFIX_DATASTORE_TABLENAME]}`,
23
+ },
24
+ };
25
+ }
26
+ exports.parseCfnOutputs = parseCfnOutputs;
27
+ class IntegTestUtil {
28
+ constructor(options) {
29
+ var _a;
30
+ this.options = options;
31
+ this.apiTokens = {};
32
+ this.itemsToDelete = [];
33
+ process.env.AWS_REGION = options.region;
34
+ process.env.AWS_DEFAULT_REGION = options.region;
35
+ if ((_a = options.datastoreOptions) === null || _a === void 0 ? void 0 : _a.tableName) {
36
+ process.env.TABLE = options.datastoreOptions.tableName;
37
+ this.tableName = options.datastoreOptions.tableName;
38
+ }
39
+ }
40
+ // AUTH
41
+ getClient(config) {
42
+ var _a;
43
+ return new axios_1.Axios({
44
+ baseURL: (_a = this.options.apiOptions) === null || _a === void 0 ? void 0 : _a.baseURL,
45
+ transformResponse: (data) => {
46
+ try {
47
+ return JSON.parse(data);
48
+ }
49
+ catch (error) {
50
+ return data;
51
+ }
52
+ },
53
+ transformRequest: (data) => {
54
+ try {
55
+ return JSON.stringify(data);
56
+ }
57
+ catch (error) {
58
+ return data;
59
+ }
60
+ },
61
+ ...config,
62
+ });
63
+ }
64
+ async getAuthenticatedClient(email, password, config) {
65
+ var _a;
66
+ if (!this.apiTokens[email]) {
67
+ if (!password) {
68
+ throw new Error('No password provided; You can only leave password blank for users created by this utility');
69
+ }
70
+ await this.loginUser(email, password);
71
+ }
72
+ return this.getClient({
73
+ headers: {
74
+ Authorization: `Bearer ${this.apiTokens[email]}`,
75
+ ...((_a = config === null || config === void 0 ? void 0 : config.headers) !== null && _a !== void 0 ? _a : {}),
76
+ },
77
+ ...config,
78
+ });
79
+ }
80
+ // DATASTORE
81
+ async initializeItemsToCleanup() {
82
+ this.itemsToDelete = [];
83
+ }
84
+ async addItemToDeleteAfterTest(key) {
85
+ this.itemsToDelete.push(key);
86
+ }
87
+ async cleanupItems() {
88
+ const ddb = lib_dynamodb_1.DynamoDBDocumentClient.from(new client_dynamodb_1.DynamoDBClient({ region: this.options.region }));
89
+ for (const item of this.itemsToDelete) {
90
+ try {
91
+ await ddb.send(new lib_dynamodb_1.DeleteCommand({ TableName: this.tableName, Key: item }));
92
+ }
93
+ catch (error) {
94
+ console.log(error);
95
+ }
96
+ }
97
+ }
98
+ // AUTH
99
+ async createUser(email, attributes, groups) {
100
+ var _a, _b, _c;
101
+ if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolId)) {
102
+ throw new Error('No userPoolId configured');
103
+ }
104
+ const randomPassword = Math.random().toString(36).slice(-16);
105
+ const cognitoClient = new client_cognito_identity_provider_1.CognitoIdentityProviderClient({ region: this.options.region });
106
+ await cognitoClient.send(new client_cognito_identity_provider_1.AdminCreateUserCommand({
107
+ UserPoolId: (_b = this.options.authOptions) === null || _b === void 0 ? void 0 : _b.userPoolId,
108
+ Username: email,
109
+ MessageAction: client_cognito_identity_provider_1.MessageActionType.SUPPRESS,
110
+ TemporaryPassword: randomPassword,
111
+ UserAttributes: [{
112
+ Name: 'email',
113
+ Value: email,
114
+ }, {
115
+ Name: 'email_verified',
116
+ Value: 'true',
117
+ },
118
+ ...Object.entries(attributes).map((attr) => ({
119
+ Name: attr[0],
120
+ Value: attr[1],
121
+ }))],
122
+ }));
123
+ for (const group of groups) {
124
+ await cognitoClient.send(new client_cognito_identity_provider_1.AdminAddUserToGroupCommand({
125
+ UserPoolId: (_c = this.options.authOptions) === null || _c === void 0 ? void 0 : _c.userPoolId,
126
+ Username: email,
127
+ GroupName: group,
128
+ }));
129
+ }
130
+ await this.loginUser(email, randomPassword);
131
+ }
132
+ async removeUser(email) {
133
+ var _a, _b;
134
+ if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolId)) {
135
+ throw new Error('No userPoolId configured');
136
+ }
137
+ const cognitoClient = new client_cognito_identity_provider_1.CognitoIdentityProviderClient({ region: this.options.region });
138
+ await cognitoClient.send(new client_cognito_identity_provider_1.AdminDeleteUserCommand({
139
+ UserPoolId: (_b = this.options.authOptions) === null || _b === void 0 ? void 0 : _b.userPoolId,
140
+ Username: email,
141
+ }));
142
+ delete this.apiTokens[email];
143
+ }
144
+ async loginUser(email, password) {
145
+ var _a;
146
+ if (!((_a = this.options.authOptions) === null || _a === void 0 ? void 0 : _a.userPoolClientId)) {
147
+ throw new Error('No userPoolClientId configured');
148
+ }
149
+ const cognitoClient = new axios_1.Axios({
150
+ baseURL: `https://cognito-idp.${this.options.region}.amazonaws.com/`,
151
+ });
152
+ const auth = await cognitoClient.post('/', JSON.stringify({
153
+ AuthParameters: {
154
+ USERNAME: email,
155
+ PASSWORD: password,
156
+ },
157
+ AuthFlow: 'USER_PASSWORD_AUTH',
158
+ ClientId: this.options.authOptions.userPoolClientId,
159
+ }), {
160
+ headers: {
161
+ 'Content-Type': 'application/x-amz-json-1.1',
162
+ 'X-Amz-Target': 'AWSCognitoIdentityProviderService.InitiateAuth',
163
+ },
164
+ });
165
+ if (auth.status !== axios_1.HttpStatusCode.Ok) {
166
+ throw new Error(`Failed to authenticate user ${email}`);
167
+ }
168
+ this.apiTokens[email] = JSON.parse(auth.data).AuthenticationResult.IdToken;
169
+ }
170
+ }
171
+ exports.IntegTestUtil = IntegTestUtil;
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWctdGVzdC11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3Rlc3RzL2ludGVnLXRlc3QtdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxnR0FBeUw7QUFDekwsOERBQTBEO0FBQzFELHdEQUFvRztBQUNwRyxpQ0FBa0U7QUFDbEUsK0NBQThOO0FBK0I5TixTQUFnQixlQUFlLENBQUMsTUFBVyxFQUFFLFNBQWlCLEVBQUUsTUFBdUI7SUFDckYsTUFBTSxPQUFPLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xDLE9BQU87UUFDTCxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07UUFDckIsVUFBVSxFQUFFO1lBQ1YsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxPQUFPLEdBQUcsdUNBQTZCLEVBQUUsQ0FBQztTQUN0RTtRQUNELFdBQVcsRUFBRTtZQUNYLFVBQVUsRUFBRSxPQUFPLENBQUMsMkNBQWlDLENBQUM7WUFDdEQsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGtEQUF3QyxDQUFDO1lBQ25FLGNBQWMsRUFBRSxPQUFPLENBQUMsZ0RBQXNDLENBQUM7U0FDaEU7UUFDRCxnQkFBZ0IsRUFBRTtZQUNoQixTQUFTLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQywrQ0FBcUMsQ0FBQyxFQUFFO1NBQ3RGO0tBQ0YsQ0FBQztBQUNKLENBQUM7QUFoQkQsMENBZ0JDO0FBRUQsTUFBYSxhQUFhO0lBT3hCLFlBQXNCLE9BQTZCOztRQUE3QixZQUFPLEdBQVAsT0FBTyxDQUFzQjtRQUgzQyxjQUFTLEdBQWdDLEVBQUUsQ0FBQztRQUM1QyxrQkFBYSxHQUEyQyxFQUFFLENBQUM7UUFHakUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FB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LE1BQU0sSUFBSSxHQUFHLE1BQU0sYUFBYSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUN4RCxjQUFjLEVBQUU7Z0JBQ2QsUUFBUSxFQUFFLEtBQUs7Z0JBQ2YsUUFBUSxFQUFFLFFBQVE7YUFDbkI7WUFDRCxRQUFRLEVBQUUsb0JBQW9CO1lBQzlCLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0I7U0FDcEQsQ0FBQyxFQUFFO1lBQ0YsT0FBTyxFQUFFO2dCQUNQLGNBQWMsRUFBRSw0QkFBNEI7Z0JBQzVDLGNBQWMsRUFBRSxnREFBZ0Q7YUFDakU7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssc0JBQWMsQ0FBQyxFQUFFLEVBQUU7WUFDckMsTUFBTSxJQUFJLEtBQUssQ0FBQywrQkFBK0IsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUN6RDtRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDO0lBQzdFLENBQUM7Q0FDRjtBQXhKRCxzQ0F3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZG1pbkFkZFVzZXJUb0dyb3VwQ29tbWFuZCwgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCwgQWRtaW5EZWxldGVVc2VyQ29tbWFuZCwgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQsIE1lc3NhZ2VBY3Rpb25UeXBlIH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNvZ25pdG8taWRlbnRpdHktcHJvdmlkZXInO1xuaW1wb3J0IHsgRHluYW1vREJDbGllbnQgfSBmcm9tICdAYXdzLXNkay9jbGllbnQtZHluYW1vZGInO1xuaW1wb3J0IHsgRGVsZXRlQ29tbWFuZCwgRHluYW1vREJEb2N1bWVudENsaWVudCwgTmF0aXZlQXR0cmlidXRlVmFsdWUgfSBmcm9tICdAYXdzLXNkay9saWItZHluYW1vZGInO1xuaW1wb3J0IHsgQXhpb3MsIEF4aW9zUmVxdWVzdENvbmZpZywgSHR0cFN0YXR1c0NvZGUgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX0lERU5USVRZUE9PTF9JRCwgQ0ZOX09VVFBVVF9TVUZGSVhfQVVUSF9VU0VSUE9PTElELCBDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElELCBDRk5fT1VUUFVUX1NVRkZJWF9EQVRBU1RPUkVfVEFCTEVOQU1FLCBDRk5fT1VUUFVUX1NVRkZJWF9SRVNUQVBJX1VSTCB9IGZyb20gJy4uL3NoYXJlZC9vdXRwdXRzJztcblxuZXhwb3J0IGludGVyZmFjZSBJbnRlZ1Rlc3RVdGlsT3B0aW9ucyB7XG5cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgYXBpT3B0aW9ucz86IHtcbiAgICByZWFkb25seSBiYXNlVVJMPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IGF1dGhPcHRpb25zPzoge1xuICAgIHJlYWRvbmx5IHVzZXJQb29sSWQ/OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSB1c2VyUG9vbENsaWVudElkPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IHVzZXJQb29sQ2xpZW50U2VjcmV0Pzogc3RyaW5nO1xuXG4gICAgcmVhZG9ubHkgaWRlbnRpdHlQb29sSWQ/OiBzdHJpbmc7XG4gIH07XG5cbiAgcmVhZG9ubHkgZGF0YXN0b3JlT3B0aW9ucz86IHtcbiAgICByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG4gIH07XG5cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZm5PdXRwdXRDb25maWcge1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgYXBpTmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkYXRhc3RvcmVOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZUNmbk91dHB1dHMob3V0cHV0OiBhbnksIHN0YWNrTmFtZTogc3RyaW5nLCBjb25maWc6IENmbk91dHB1dENvbmZpZyk6IEludGVnVGVzdFV0aWxPcHRpb25zIHtcbiAgY29uc3Qgb3V0cHV0cyA9IG91dHB1dFtzdGFja05hbWVdO1xuICByZXR1cm4ge1xuICAgIHJlZ2lvbjogY29uZmlnLnJlZ2lvbixcbiAgICBhcGlPcHRpb25zOiB7XG4gICAgICBiYXNlVVJMOiBvdXRwdXRzW2Ake2NvbmZpZy5hcGlOYW1lfSR7Q0ZOX09VVFBVVF9TVUZGSVhfUkVTVEFQSV9VUkx9YF0sXG4gICAgfSxcbiAgICBhdXRoT3B0aW9uczoge1xuICAgICAgdXNlclBvb2xJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MSURdLFxuICAgICAgdXNlclBvb2xDbGllbnRJZDogb3V0cHV0c1tDRk5fT1VUUFVUX1NVRkZJWF9BVVRIX1VTRVJQT09MX0NMSUVOVElEXSxcbiAgICAgIGlkZW50aXR5UG9vbElkOiBvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0FVVEhfSURFTlRJVFlQT09MX0lEXSxcbiAgICB9LFxuICAgIGRhdGFzdG9yZU9wdGlvbnM6IHtcbiAgICAgIHRhYmxlTmFtZTogYCR7Y29uZmlnLmRhdGFzdG9yZU5hbWV9JHtvdXRwdXRzW0NGTl9PVVRQVVRfU1VGRklYX0RBVEFTVE9SRV9UQUJMRU5BTUVdfWAsXG4gICAgfSxcbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzIEludGVnVGVzdFV0aWwge1xuXG4gIHB1YmxpYyByZWFkb25seSB0YWJsZU5hbWU/OiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBhcGlUb2tlbnM6IHsgW2VtYWlsOiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICBwcml2YXRlIGl0ZW1zVG9EZWxldGU6IFJlY29yZDxzdHJpbmcsIE5hdGl2ZUF0dHJpYnV0ZVZhbHVlPltdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIG9wdGlvbnM6IEludGVnVGVzdFV0aWxPcHRpb25zKSB7XG4gICAgcHJvY2Vzcy5lbnYuQVdTX1JFR0lPTiA9IG9wdGlvbnMucmVnaW9uO1xuICAgIHByb2Nlc3MuZW52LkFXU19ERUZBVUxUX1JFR0lPTiA9IG9wdGlvbnMucmVnaW9uO1xuICAgIGlmIChvcHRpb25zLmRhdGFzdG9yZU9wdGlvbnM/LnRhYmxlTmFtZSkge1xuICAgICAgcHJvY2Vzcy5lbnYuVEFCTEUgPSBvcHRpb25zLmRhdGFzdG9yZU9wdGlvbnMudGFibGVOYW1lO1xuICAgICAgdGhpcy50YWJsZU5hbWUgPSBvcHRpb25zLmRhdGFzdG9yZU9wdGlvbnMudGFibGVOYW1lO1xuICAgIH1cbiAgfVxuXG4gIC8vIEFVVEhcblxuICBwdWJsaWMgZ2V0Q2xpZW50KGNvbmZpZz86IEF4aW9zUmVxdWVzdENvbmZpZykge1xuICAgIHJldHVybiBuZXcgQXhpb3Moe1xuICAgICAgYmFzZVVSTDogdGhpcy5vcHRpb25zLmFwaU9wdGlvbnM/LmJhc2VVUkwsXG4gICAgICB0cmFuc2Zvcm1SZXNwb25zZTogKGRhdGEpID0+IHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIHRyYW5zZm9ybVJlcXVlc3Q6IChkYXRhKSA9PiB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KGRhdGEpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHJldHVybiBkYXRhO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGdldEF1dGhlbnRpY2F0ZWRDbGllbnQoZW1haWw6IHN0cmluZywgcGFzc3dvcmQ/OiBzdHJpbmcsIGNvbmZpZz86IEF4aW9zUmVxdWVzdENvbmZpZykge1xuICAgIGlmICghdGhpcy5hcGlUb2tlbnNbZW1haWxdKSB7XG4gICAgICBpZiAoIXBhc3N3b3JkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTm8gcGFzc3dvcmQgcHJvdmlkZWQ7IFlvdSBjYW4gb25seSBsZWF2ZSBwYXNzd29yZCBibGFuayBmb3IgdXNlcnMgY3JlYXRlZCBieSB0aGlzIHV0aWxpdHknKTtcbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMubG9naW5Vc2VyKGVtYWlsLCBwYXNzd29yZCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmdldENsaWVudCh7XG4gICAgICBoZWFkZXJzOiB7XG4gICAgICAgIEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0aGlzLmFwaVRva2Vuc1tlbWFpbF19YCxcbiAgICAgICAgLi4uKGNvbmZpZz8uaGVhZGVycyA/PyB7fSksXG4gICAgICB9LFxuICAgICAgLi4uY29uZmlnLFxuICAgIH0pO1xuICB9XG5cbiAgLy8gREFUQVNUT1JFXG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemVJdGVtc1RvQ2xlYW51cCgpIHtcbiAgICB0aGlzLml0ZW1zVG9EZWxldGUgPSBbXTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBhZGRJdGVtVG9EZWxldGVBZnRlclRlc3Qoa2V5OiBSZWNvcmQ8c3RyaW5nLCBOYXRpdmVBdHRyaWJ1dGVWYWx1ZT4pIHtcbiAgICB0aGlzLml0ZW1zVG9EZWxldGUucHVzaChrZXkpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGNsZWFudXBJdGVtcygpIHtcbiAgICBjb25zdCBkZGIgPSBEeW5hbW9EQkRvY3VtZW50Q2xpZW50LmZyb20obmV3IER5bmFtb0RCQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pKTtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtc1RvRGVsZXRlKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBkZGIuc2VuZChuZXcgRGVsZXRlQ29tbWFuZCh7IFRhYmxlTmFtZTogdGhpcy50YWJsZU5hbWUsIEtleTogaXRlbSB9KSk7XG4gICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gQVVUSFxuXG4gIHB1YmxpYyBhc3luYyBjcmVhdGVVc2VyKGVtYWlsOiBzdHJpbmcsIGF0dHJpYnV0ZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIGdyb3Vwczogc3RyaW5nW10pIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCByYW5kb21QYXNzd29yZDogc3RyaW5nID0gTWF0aC5yYW5kb20oKS50b1N0cmluZygzNikuc2xpY2UoLTE2KTtcblxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQ6IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50ID0gbmV3IENvZ25pdG9JZGVudGl0eVByb3ZpZGVyQ2xpZW50KHsgcmVnaW9uOiB0aGlzLm9wdGlvbnMucmVnaW9uIH0pO1xuICAgIGF3YWl0IGNvZ25pdG9DbGllbnQuc2VuZChuZXcgQWRtaW5DcmVhdGVVc2VyQ29tbWFuZCh7XG4gICAgICBVc2VyUG9vbElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sSWQsXG4gICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICBNZXNzYWdlQWN0aW9uOiBNZXNzYWdlQWN0aW9uVHlwZS5TVVBQUkVTUyxcbiAgICAgIFRlbXBvcmFyeVBhc3N3b3JkOiByYW5kb21QYXNzd29yZCxcbiAgICAgIFVzZXJBdHRyaWJ1dGVzOiBbe1xuICAgICAgICBOYW1lOiAnZW1haWwnLFxuICAgICAgICBWYWx1ZTogZW1haWwsXG4gICAgICB9LCB7XG4gICAgICAgIE5hbWU6ICdlbWFpbF92ZXJpZmllZCcsXG4gICAgICAgIFZhbHVlOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXMoYXR0cmlidXRlcykubWFwKChhdHRyKSA9PiAoe1xuICAgICAgICBOYW1lOiBhdHRyWzBdLFxuICAgICAgICBWYWx1ZTogYXR0clsxXSxcbiAgICAgIH0pKV0sXG4gICAgfSkpO1xuICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgZ3JvdXBzKSB7XG4gICAgICBhd2FpdCBjb2duaXRvQ2xpZW50LnNlbmQobmV3IEFkbWluQWRkVXNlclRvR3JvdXBDb21tYW5kKHtcbiAgICAgICAgVXNlclBvb2xJZDogdGhpcy5vcHRpb25zLmF1dGhPcHRpb25zPy51c2VyUG9vbElkLFxuICAgICAgICBVc2VybmFtZTogZW1haWwsXG4gICAgICAgIEdyb3VwTmFtZTogZ3JvdXAsXG4gICAgICB9KSk7XG4gICAgfVxuXG4gICAgYXdhaXQgdGhpcy5sb2dpblVzZXIoZW1haWwsIHJhbmRvbVBhc3N3b3JkKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVc2VyKGVtYWlsOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyB1c2VyUG9vbElkIGNvbmZpZ3VyZWQnKTtcbiAgICB9XG4gICAgY29uc3QgY29nbml0b0NsaWVudDogQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQgPSBuZXcgQ29nbml0b0lkZW50aXR5UHJvdmlkZXJDbGllbnQoeyByZWdpb246IHRoaXMub3B0aW9ucy5yZWdpb24gfSk7XG4gICAgYXdhaXQgY29nbml0b0NsaWVudC5zZW5kKG5ldyBBZG1pbkRlbGV0ZVVzZXJDb21tYW5kKHtcbiAgICAgIFVzZXJQb29sSWQ6IHRoaXMub3B0aW9ucy5hdXRoT3B0aW9ucz8udXNlclBvb2xJZCxcbiAgICAgIFVzZXJuYW1lOiBlbWFpbCxcbiAgICB9KSk7XG4gICAgZGVsZXRlIHRoaXMuYXBpVG9rZW5zW2VtYWlsXTtcbiAgfVxuXG5cbiAgcHJvdGVjdGVkIGFzeW5jIGxvZ2luVXNlcihlbWFpbDogc3RyaW5nLCBwYXNzd29yZDogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnM/LnVzZXJQb29sQ2xpZW50SWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gdXNlclBvb2xDbGllbnRJZCBjb25maWd1cmVkJyk7XG4gICAgfVxuICAgIGNvbnN0IGNvZ25pdG9DbGllbnQgPSBuZXcgQXhpb3Moe1xuICAgICAgYmFzZVVSTDogYGh0dHBzOi8vY29nbml0by1pZHAuJHt0aGlzLm9wdGlvbnMucmVnaW9ufS5hbWF6b25hd3MuY29tL2AsXG4gICAgfSk7XG4gICAgY29uc3QgYXV0aCA9IGF3YWl0IGNvZ25pdG9DbGllbnQucG9zdCgnLycsIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgIEF1dGhQYXJhbWV0ZXJzOiB7XG4gICAgICAgIFVTRVJOQU1FOiBlbWFpbCxcbiAgICAgICAgUEFTU1dPUkQ6IHBhc3N3b3JkLFxuICAgICAgfSxcbiAgICAgIEF1dGhGbG93OiAnVVNFUl9QQVNTV09SRF9BVVRIJyxcbiAgICAgIENsaWVudElkOiB0aGlzLm9wdGlvbnMuYXV0aE9wdGlvbnMudXNlclBvb2xDbGllbnRJZCxcbiAgICB9KSwge1xuICAgICAgaGVhZGVyczoge1xuICAgICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtYW16LWpzb24tMS4xJyxcbiAgICAgICAgJ1gtQW16LVRhcmdldCc6ICdBV1NDb2duaXRvSWRlbnRpdHlQcm92aWRlclNlcnZpY2UuSW5pdGlhdGVBdXRoJyxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgaWYgKGF1dGguc3RhdHVzICE9PSBIdHRwU3RhdHVzQ29kZS5Paykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBGYWlsZWQgdG8gYXV0aGVudGljYXRlIHVzZXIgJHtlbWFpbH1gKTtcbiAgICB9XG4gICAgdGhpcy5hcGlUb2tlbnNbZW1haWxdID0gSlNPTi5wYXJzZShhdXRoLmRhdGEpLkF1dGhlbnRpY2F0aW9uUmVzdWx0LklkVG9rZW47XG4gIH1cbn0iXX0=
package/package.json CHANGED
@@ -33,9 +33,13 @@
33
33
  },
34
34
  "devDependencies": {
35
35
  "@aws-cdk/aws-cognito-identitypool-alpha": "2.120.0-alpha.0",
36
+ "@aws-sdk/client-cognito-identity-provider": "3.583.0",
37
+ "@aws-sdk/client-dynamodb": "3.583.0",
38
+ "@aws-sdk/client-s3": "3.583.0",
39
+ "@aws-sdk/lib-dynamodb": "3.583.0",
36
40
  "@hapi/boom": "^10.0.1",
37
- "@taimos/projen": "^0.0.203",
38
- "@types/aws-lambda": "^8.10.138",
41
+ "@taimos/projen": "0.0.207",
42
+ "@types/aws-lambda": "^8.10.140",
39
43
  "@types/jest": "^29.5.12",
40
44
  "@types/js-yaml": "^4.0.9",
41
45
  "@types/jsonwebtoken": "^9.0.6",
@@ -43,8 +47,8 @@
43
47
  "@types/lambda-log": "^2.2.1",
44
48
  "@types/node": "^16",
45
49
  "@types/uuid": "^9.0.8",
46
- "@typescript-eslint/eslint-plugin": "^6",
47
- "@typescript-eslint/parser": "^6",
50
+ "@typescript-eslint/eslint-plugin": "^7",
51
+ "@typescript-eslint/parser": "^7",
48
52
  "aws-cdk-lib": "2.120.0",
49
53
  "constructs": "^10.0.0",
50
54
  "dynamodb-onetable": "~2.7.2",
@@ -54,17 +58,21 @@
54
58
  "jest": "^29.7.0",
55
59
  "jest-junit": "^15",
56
60
  "openapi-typescript": "6.7.6",
57
- "projen": "^0.81.17",
61
+ "projen": "^0.82.8",
58
62
  "standard-version": "^9",
59
- "ts-jest": "^29.1.4",
63
+ "ts-jest": "^29.1.5",
60
64
  "ts-node": "^10.9.2",
61
65
  "typedoc": "0.25.0",
62
66
  "typescript": "^4.9.5"
63
67
  },
64
68
  "peerDependencies": {
65
69
  "@aws-cdk/aws-cognito-identitypool-alpha": "^2.120.0-alpha.0",
70
+ "@aws-sdk/client-cognito-identity-provider": "^3.609.0",
71
+ "@aws-sdk/client-dynamodb": "^3.609.0",
72
+ "@aws-sdk/client-s3": "^3.609.0",
73
+ "@aws-sdk/lib-dynamodb": "^3.610.0",
66
74
  "aws-cdk-lib": "^2.120.0",
67
- "dynamodb-onetable": "^2.7.2",
75
+ "dynamodb-onetable": "^2.7.4",
68
76
  "openapi-typescript": "^6.7.6"
69
77
  },
70
78
  "dependencies": {
@@ -75,7 +83,7 @@
75
83
  "jsonwebtoken": "^9.0.2",
76
84
  "jwk-to-pem": "^2.0.5",
77
85
  "lambda-log": "^3.1.0",
78
- "projen": "^0.81.17",
86
+ "projen": "^0.82.8",
79
87
  "uuid": "^9.0.1"
80
88
  },
81
89
  "keywords": [
@@ -93,8 +101,9 @@
93
101
  "publishConfig": {
94
102
  "access": "public"
95
103
  },
96
- "version": "2.11.27",
104
+ "version": "2.12.1",
97
105
  "jest": {
106
+ "coverageProvider": "v8",
98
107
  "testMatch": [
99
108
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",
100
109
  "<rootDir>/@(test|src)/**/*(*.)@(spec|test).ts?(x)"