cdk-serverless 2.11.23 → 2.11.24

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.
Files changed (66) hide show
  1. package/README.md +39 -0
  2. package/docs/constructs/assets/highlight.css +12 -12
  3. package/docs/constructs/classes/AssetCdn.html +31 -7
  4. package/docs/constructs/classes/BaseApi.html +4 -0
  5. package/docs/constructs/classes/CognitoAuthentication.html +35 -9
  6. package/docs/constructs/classes/GraphQlApi.html +47 -11
  7. package/docs/constructs/classes/LambdaFunction.html +34 -12
  8. package/docs/constructs/classes/RestApi.html +47 -11
  9. package/docs/constructs/classes/SingleTableDatastore.html +26 -5
  10. package/docs/constructs/classes/Workflow.html +34 -7
  11. package/docs/constructs/index.html +13 -0
  12. package/docs/constructs/interfaces/AssetCdnProps.html +4 -0
  13. package/docs/constructs/interfaces/BaseApiProps.html +7 -7
  14. package/docs/constructs/interfaces/CognitoAuthenticationProps.html +3 -3
  15. package/docs/constructs/interfaces/GraphQlApiProps.html +7 -7
  16. package/docs/constructs/interfaces/JsResolverOptions.html +2 -2
  17. package/docs/constructs/interfaces/LambdaFunctionProps.html +2 -2
  18. package/docs/constructs/interfaces/LambdaTracingOptions.html +1 -1
  19. package/docs/constructs/interfaces/RestApiProps.html +8 -8
  20. package/docs/constructs/interfaces/SingleTableDatastoreProps.html +1 -1
  21. package/docs/constructs/interfaces/SingleTableDesign.html +1 -1
  22. package/docs/constructs/interfaces/VtlResolverOptions.html +1 -1
  23. package/docs/lambda/assets/highlight.css +35 -0
  24. package/docs/lambda/classes/errors.BadRequestError.html +15 -3
  25. package/docs/lambda/classes/errors.ForbiddenError.html +15 -3
  26. package/docs/lambda/classes/errors.HttpError.html +18 -4
  27. package/docs/lambda/classes/errors.NotFoundError.html +15 -3
  28. package/docs/lambda/classes/errors.UnauthenticatedError.html +15 -3
  29. package/docs/lambda/index.html +13 -0
  30. package/docs/projen/assets/highlight.css +19 -12
  31. package/docs/projen/classes/Datastore.html +9 -0
  32. package/docs/projen/classes/GraphQlApi.html +9 -0
  33. package/docs/projen/classes/RestApi.html +79 -19
  34. package/docs/projen/classes/ServerlessProject.html +16 -2
  35. package/docs/projen/classes/Workflow.html +46 -10
  36. package/docs/projen/index.html +13 -0
  37. package/docs/projen/interfaces/ServerlessProjectOptions.html +74 -74
  38. package/lib/constructs/asset-cdn.d.ts +24 -0
  39. package/lib/constructs/asset-cdn.js +13 -1
  40. package/lib/constructs/authentication.d.ts +26 -0
  41. package/lib/constructs/authentication.js +12 -1
  42. package/lib/constructs/base-api.d.ts +3 -0
  43. package/lib/constructs/base-api.js +4 -1
  44. package/lib/constructs/func.d.ts +31 -0
  45. package/lib/constructs/func.js +32 -1
  46. package/lib/constructs/graphql.d.ts +41 -0
  47. package/lib/constructs/graphql.js +33 -1
  48. package/lib/constructs/rest-api.d.ts +41 -0
  49. package/lib/constructs/rest-api.js +36 -1
  50. package/lib/constructs/table.d.ts +40 -0
  51. package/lib/constructs/table.js +38 -1
  52. package/lib/constructs/workflow.d.ts +46 -0
  53. package/lib/constructs/workflow.js +38 -1
  54. package/lib/lambda/errors.d.ts +41 -0
  55. package/lib/lambda/errors.js +42 -1
  56. package/lib/projen/core.d.ts +19 -0
  57. package/lib/projen/core.js +20 -1
  58. package/lib/projen/datastore.d.ts +11 -0
  59. package/lib/projen/datastore.js +12 -1
  60. package/lib/projen/graphql.d.ts +11 -0
  61. package/lib/projen/graphql.js +12 -1
  62. package/lib/projen/rest-api.d.ts +52 -0
  63. package/lib/projen/rest-api.js +53 -1
  64. package/lib/projen/workflow.d.ts +34 -0
  65. package/lib/projen/workflow.js +35 -1
  66. package/package.json +1 -1
@@ -30,7 +30,24 @@ const yaml = __importStar(require("js-yaml"));
30
30
  const pj = __importStar(require("projen"));
31
31
  const core_1 = require("./core");
32
32
  const lazy_sampledir_1 = require("./lazy-sampledir");
33
+ /**
34
+ * The RestApi construct sets up an OpenAPI-based REST API for a serverless project using projen.
35
+ * This construct extends the projen Component to include dependencies and development dependencies required for OpenAPI and AWS Lambda,
36
+ * and provides methods to generate TypeScript types from the OpenAPI definition file. It also generates sample handler files for the API endpoints.
37
+ *
38
+ * @example
39
+ * const restApi = new RestApi(app, {
40
+ * apiName: 'MyRestApi',
41
+ * definitionFile: 'src/openapi/schema.yaml',
42
+ * });
43
+ */
33
44
  class RestApi extends pj.Component {
45
+ /**
46
+ * Creates an instance of RestApi.
47
+ *
48
+ * @param app - The AWS CDK TypeScript app.
49
+ * @param options - The options for configuring the RestApi.
50
+ */
34
51
  constructor(app, options) {
35
52
  super(app);
36
53
  this.options = options;
@@ -74,6 +91,12 @@ class RestApi extends pj.Component {
74
91
  const apiFile = new pj.TextFile(this.project, `src/generated/rest.${this.options.apiName.toLowerCase()}-api.generated.ts`);
75
92
  apiFile.addLine(this.createConstructFile(apiFile));
76
93
  }
94
+ /**
95
+ * Creates the construct file content for the generated REST API.
96
+ *
97
+ * @param file - The file object to create content for.
98
+ * @returns The content of the construct file.
99
+ */
77
100
  createConstructFile(file) {
78
101
  return `// ${file.marker}
79
102
  /* eslint-disable */
@@ -97,6 +120,15 @@ export class ${this.options.apiName}RestApi extends RestApi<paths, operations> {
97
120
 
98
121
  }`;
99
122
  }
123
+ /**
124
+ * Validates a path reference in the OpenAPI specification.
125
+ *
126
+ * @param apiSpec - The OpenAPI specification object.
127
+ * @param path - The path reference to validate.
128
+ * @param visited - The list of visited paths to detect cycles.
129
+ * @returns True if the path reference is valid, otherwise false.
130
+ * @throws If the path reference is invalid or cyclical.
131
+ */
100
132
  validatePathRef(apiSpec, path, visited = []) {
101
133
  if (!path.startsWith('#')) {
102
134
  throw new Error(`Unable to resolve ref '${path}' - Resolving references to paths from different files is currently not supported`);
@@ -125,6 +157,14 @@ export class ${this.options.apiName}RestApi extends RestApi<paths, operations> {
125
157
  }
126
158
  return false;
127
159
  }
160
+ /**
161
+ * Adds a sample handler file for a REST API resource.
162
+ *
163
+ * @param files - The collection of file generators.
164
+ * @param apiSpec - The OpenAPI specification object.
165
+ * @param path - The path of the API resource.
166
+ * @param method - The HTTP method of the API resource.
167
+ */
128
168
  addRestResourceHandlerSample(files, apiSpec, path, method) {
129
169
  const oaPath = apiSpec.paths[path];
130
170
  const operation = oaPath[method];
@@ -135,6 +175,13 @@ export class ${this.options.apiName}RestApi extends RestApi<paths, operations> {
135
175
  return this.createEntryFile(method, operationId);
136
176
  };
137
177
  }
178
+ /**
179
+ * Creates the entry file content for a REST API handler.
180
+ *
181
+ * @param method - The HTTP method of the API resource.
182
+ * @param operationId - The operation ID of the API resource.
183
+ * @returns The content of the entry file.
184
+ */
138
185
  createEntryFile(method, operationId) {
139
186
  let factoryCall;
140
187
  let logs;
@@ -163,6 +210,11 @@ export const handler = ${factoryCall}
163
210
  throw new errors.HttpError(500, 'Not yet implemented');
164
211
  });`;
165
212
  }
213
+ /**
214
+ * Generates sample handler files for the REST API based on the OpenAPI specification.
215
+ *
216
+ * @returns The collection of file generators for the sample handler files.
217
+ */
166
218
  generateSampleHandlerFiles() {
167
219
  const files = {};
168
220
  const apiSpec = yaml.load(fs.readFileSync((0, path_1.join)(this.project.outdir, this.options.definitionFile)).toString());
@@ -187,4 +239,4 @@ export const handler = ${factoryCall}
187
239
  }
188
240
  }
189
241
  exports.RestApi = RestApi;
190
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3Jlc3QtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLCtCQUE0QjtBQUM1Qiw4Q0FBZ0M7QUFFaEMsMkNBQTZCO0FBQzdCLGlDQUFzQztBQUN0QyxxREFBaUQ7QUFPakQsTUFBYSxPQUFRLFNBQVEsRUFBRSxDQUFDLFNBQVM7SUFFdkMsWUFBWSxHQUFrQyxFQUFZLE9BQXVCO1FBQy9FLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUQ2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUcvRSxHQUFHLENBQUMsVUFBVSxDQUNaLG1CQUFtQixFQUNuQixtQkFBbUIsQ0FDcEIsQ0FBQztRQUNGLEdBQUcsQ0FBQyxPQUFPLENBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxvQkFBb0IsQ0FDckIsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRTtZQUNoRixJQUFJLEVBQUUsc0JBQXNCLE9BQU8sQ0FBQyxjQUFjLGdDQUFnQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxxQkFBcUI7WUFDcEksV0FBVyxFQUFFLCtDQUErQztTQUM3RCxDQUFDLENBQUM7UUFDSCxHQUFHLENBQUMsV0FBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ3RELFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsS0FBSyxFQUFFO29CQUNMLFFBQVEsRUFBRTt3QkFDUixHQUFHLEVBQUU7NEJB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TSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksaUJBQWlCLFFBQVEsQ0FBQyxJQUFJLG1EQUFtRCxDQUFDLENBQUM7cUJBQ2pIO2lCQUNGO2dCQUNELEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxFQUFFO29CQUM3QixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO3dCQUN4RCxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ25GLHFCQUFxQjt3QkFDckIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3FCQUNqRTtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FFRjtBQXZMRCwwQkF1TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHsgT3BlbkFQSTMsIE9wZXJhdGlvbk9iamVjdCwgUGF0aEl0ZW1PYmplY3QgfSBmcm9tICdvcGVuYXBpLXR5cGVzY3JpcHQnO1xuaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBMYXp5U2FtcGxlRGlyIH0gZnJvbSAnLi9sYXp5LXNhbXBsZWRpcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEFwaU9wdGlvbnMge1xuICByZWFkb25seSBhcGlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb25GaWxlOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZXN0QXBpIGV4dGVuZHMgcGouQ29tcG9uZW50IHtcblxuICBjb25zdHJ1Y3RvcihhcHA6IHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwLCBwcm90ZWN0ZWQgb3B0aW9uczogUmVzdEFwaU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgYXBwLmFkZERldkRlcHMoXG4gICAgICAnQHR5cGVzL2F3cy1sYW1iZGEnLFxuICAgICAgJ0B0eXBlcy9sYW1iZGEtbG9nJyxcbiAgICApO1xuICAgIGFwcC5hZGREZXBzKFxuICAgICAgJ2VzYnVpbGQnLFxuICAgICAgJ2pzLXlhbWwnLFxuICAgICAgJ29wZW5hcGktdHlwZXNjcmlwdCcsXG4gICAgKTtcblxuICAgIGNvbnN0IGdlbmVyYXRlVGFzayA9IGFwcC5hZGRUYXNrKGBnZW5lcmF0ZTphcGk6JHtvcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX1gLCB7XG4gICAgICBleGVjOiBgb3BlbmFwaS10eXBlc2NyaXB0ICR7b3B0aW9ucy5kZWZpbml0aW9uRmlsZX0gLS1vdXRwdXQgc3JjL2dlbmVyYXRlZC9yZXN0LiR7b3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LW1vZGVsLmdlbmVyYXRlZC50c2AsXG4gICAgICBkZXNjcmlwdGlvbjogJ0dlbmVyYXRlIFR5cGVzIGZyb20gdGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbicsXG4gICAgfSk7XG4gICAgYXBwLmRlZmF1bHRUYXNrIS5zcGF3bihnZW5lcmF0ZVRhc2spO1xuXG4gICAgbmV3IHBqLlNhbXBsZUZpbGUodGhpcy5wcm9qZWN0LCBvcHRpb25zLmRlZmluaXRpb25GaWxlLCB7XG4gICAgICBjb250ZW50czogeWFtbC5kdW1wKHtcbiAgICAgICAgb3BlbmFwaTogJzMuMC4xJyxcbiAgICAgICAgcGF0aHM6IHtcbiAgICAgICAgICAnL2hlbGxvJzoge1xuICAgICAgICAgICAgZ2V0OiB7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbklkOiAnaGVsbG9Xb3JsZCcsXG4gICAgICAgICAgICAgIHJlc3BvbnNlczoge1xuICAgICAgICAgICAgICAgIDIwMDoge1xuICAgICAgICAgICAgICAgICAgY29udGVudDoge1xuICAgICAgICAgICAgICAgICAgICAnYXBwbGljYXRpb24vanNvbic6IHtcbiAgICAgICAgICAgICAgICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGluZm86IHtcbiAgICAgICAgICB0aXRsZTogYCR7dGhpcy5vcHRpb25zLmFwaU5hbWV9IEFQSSBkZWZpbml0aW9uYCxcbiAgICAgICAgICB2ZXJzaW9uOiAnMS4wJyxcbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgbmV3IExhenlTYW1wbGVEaXIodGhpcy5wcm9qZWN0LCAnc3JjL2xhbWJkYScsIHtcbiAgICAgIGZpbGVHZW5lcmF0b3I6IHRoaXMuZ2VuZXJhdGVTYW1wbGVIYW5kbGVyRmlsZXMuYmluZCh0aGlzKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGFwaUZpbGUgPSBuZXcgcGouVGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgc3JjL2dlbmVyYXRlZC9yZXN0LiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tYXBpLmdlbmVyYXRlZC50c2ApO1xuICAgIGFwaUZpbGUuYWRkTGluZSh0aGlzLmNyZWF0ZUNvbnN0cnVjdEZpbGUoYXBpRmlsZSkpO1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29uc3RydWN0RmlsZShmaWxlOiBwai5GaWxlQmFzZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmVzdEFwaSwgUmVzdEFwaVByb3BzIH0gZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcbmltcG9ydCB7IG9wZXJhdGlvbnMsIHBhdGhzIH0gZnJvbSAnLi9yZXN0LiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy5hcGlOYW1lfVJlc3RBcGlQcm9wcyBleHRlbmRzIE9taXQ8UmVzdEFwaVByb3BzPG9wZXJhdGlvbnM+LCAnZGVmaW5pdGlvbkZpbGVOYW1lJyB8ICdhcGlOYW1lJz4ge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1SZXN0QXBpIGV4dGVuZHMgUmVzdEFwaTxwYXRocywgb3BlcmF0aW9ucz4ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3RoaXMub3B0aW9ucy5hcGlOYW1lfVJlc3RBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBhcGlOYW1lOiAnJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX0nLFxuICAgICAgZGVmaW5pdGlvbkZpbGVOYW1lOiAnJHt0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGV9JyxcbiAgICB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG4gIHByb3RlY3RlZCB2YWxpZGF0ZVBhdGhSZWYoYXBpU3BlYzogT3BlbkFQSTMsIHBhdGg6IHN0cmluZywgdmlzaXRlZDogc3RyaW5nW10gPSBbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghcGF0aC5zdGFydHNXaXRoKCcjJykpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHJlc29sdmUgcmVmICcke3BhdGh9JyAtIFJlc29sdmluZyByZWZlcmVuY2VzIHRvIHBhdGhzIGZyb20gZGlmZmVyZW50IGZpbGVzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkYCk7XG4gICAgfVxuXG4gICAgY29uc3QgcGF0aFByZXR0eVNwbGl0ID1cbiAgICAgIHBhdGhcbiAgICAgICAgLnNwbGl0KCcvJylcbiAgICAgICAgLnNsaWNlKDEpXG4gICAgICAgIC5tYXAocGF0aFBhcnQgPT5cbiAgICAgICAgICBwYXRoUGFydFxuICAgICAgICAgICAgLnJlcGxhY2UoJ34xJywgJy8nKVxuICAgICAgICAgICAgLnJlcGxhY2UoJ34wJywgJ34nKSxcbiAgICAgICAgKTtcblxuICAgIGlmICh2aXNpdGVkLmluY2x1ZGVzKHBhdGhQcmV0dHlTcGxpdFsxXSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ3ljbGljYWwgcmVmZXJlbmNlIGV4aXN0cyBiZXR3ZWVuIHBhdGhzOiAke3Zpc2l0ZWQuam9pbignLCAnKX1gKTtcbiAgICB9XG5cblxuICAgIGNvbnN0IG1heWJlUGF0aCA9IHBhdGhQcmV0dHlTcGxpdC5yZWR1Y2UoKGFjYywgcGF0aFBhcnQpID0+IHtcbiAgICAgIGlmIChPYmplY3Qua2V5cyhhY2MpLmluY2x1ZGVzKHBhdGhQYXJ0KSkge1xuICAgICAgICByZXR1cm4gYWNjW3BhdGhQYXJ0XTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSwgYXBpU3BlYyBhcyBhbnkpO1xuICAgIGlmIChtYXliZVBhdGgpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobWF5YmVQYXRoLCAnJHJlZicpKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnZhbGlkYXRlUGF0aFJlZihhcGlTcGVjLCBtYXliZVBhdGguJHJlZiwgWy4uLnZpc2l0ZWQsIHBhdGhQcmV0dHlTcGxpdFsxXV0pO1xuICAgICAgfVxuICAgICAgLy8gQ2xvc2VzdCB0aGluZyB0byBtYWtpbmcgc3VyZSB0aGUgcmVmIGFjdHVhbGx5IGlzIGEgcGF0aCBvYmplY3RcbiAgICAgIHJldHVybiBbJ2dldCcsICdwb3N0JywgJ3B1dCcsICdkZWxldGUnLCAncGF0Y2gnLCAnb3B0aW9ucycsICdoZWFkJ10uc29tZShtZXRob2QgPT4gT2JqZWN0LmtleXMobWF5YmVQYXRoKS5pbmRleE9mKG1ldGhvZCkgPj0gMCk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRSZXN0UmVzb3VyY2VIYW5kbGVyU2FtcGxlKGZpbGVzOiB7IFtmaWxlTmFtZTogc3RyaW5nXTogKCkgPT4gc3RyaW5nIH0sIGFwaVNwZWM6IE9wZW5BUEkzLCBwYXRoOiBzdHJpbmcsIG1ldGhvZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgb2FQYXRoID0gYXBpU3BlYy5wYXRocyFbcGF0aF0gYXMgUGF0aEl0ZW1PYmplY3Q7XG4gICAgY29uc3Qgb3BlcmF0aW9uID0gb2FQYXRoW21ldGhvZCBhcyBrZXlvZiBQYXRoSXRlbU9iamVjdF0gYXMgT3BlcmF0aW9uT2JqZWN0O1xuICAgIGNvbnN0IG9wZXJhdGlvbklkID0gb3BlcmF0aW9uLm9wZXJhdGlvbklkITtcbiAgICAvLyBjb25zdCBkZXNjcmlwdGlvbiA9IGAke21ldGhvZCBhcyBzdHJpbmd9ICR7cGF0aCBhcyBzdHJpbmd9IC0gJHtvcGVyYXRpb24uc3VtbWFyeX1gO1xuXG4gICAgY29uc3QgZW50cnlGaWxlID0gYHJlc3QuJHt0aGlzLm9wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS4ke29wZXJhdGlvbklkfS50c2A7XG4gICAgZmlsZXNbZW50cnlGaWxlXSA9ICgpID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmNyZWF0ZUVudHJ5RmlsZShtZXRob2QsIG9wZXJhdGlvbklkKTtcbiAgICB9O1xuICB9XG5cbiAgcHJvdGVjdGVkIGNyZWF0ZUVudHJ5RmlsZShtZXRob2Q6IHN0cmluZywgb3BlcmF0aW9uSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IGZhY3RvcnlDYWxsO1xuICAgIGxldCBsb2dzO1xuICAgIHN3aXRjaCAobWV0aG9kLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIGNhc2UgJ3Bvc3QnOlxuICAgICAgY2FzZSAncHV0JzpcbiAgICAgIGNhc2UgJ3BhdGNoJzpcbiAgICAgICAgZmFjdG9yeUNhbGwgPSBgYXBpLmNyZWF0ZU9wZW5BcGlIYW5kbGVyV2l0aFJlcXVlc3RCb2R5PG9wZXJhdGlvbnNbJyR7b3BlcmF0aW9uSWR9J10+KGFzeW5jIChjdHgsIGRhdGEpID0+IHtgO1xuICAgICAgICBsb2dzID0gJ2N0eC5sb2dnZXIuaW5mbyhKU09OLnN0cmluZ2lmeShkYXRhKSk7JztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdvcHRpb25zJzpcbiAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICBjYXNlICdnZXQnOlxuICAgICAgY2FzZSAnaGVhZCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICBmYWN0b3J5Q2FsbCA9IGBhcGkuY3JlYXRlT3BlbkFwaUhhbmRsZXI8b3BlcmF0aW9uc1snJHtvcGVyYXRpb25JZH0nXT4oYXN5bmMgKGN0eCkgPT4ge2A7XG4gICAgICAgIGxvZ3MgPSAnJztcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBpbXBvcnQgeyBhcGksIGVycm9ycyB9IGZyb20gJyR7UEFDS0FHRV9OQU1FfS9saWIvbGFtYmRhJztcbmltcG9ydCB7IG9wZXJhdGlvbnMgfSBmcm9tICcuLi9nZW5lcmF0ZWQvcmVzdC4ke3RoaXMub3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LW1vZGVsLmdlbmVyYXRlZCc7XG5cbmV4cG9ydCBjb25zdCBoYW5kbGVyID0gJHtmYWN0b3J5Q2FsbH1cbiAgY3R4LmxvZ2dlci5pbmZvKEpTT04uc3RyaW5naWZ5KGN0eC5ldmVudCkpO1xuICAke2xvZ3N9XG4gIHRocm93IG5ldyBlcnJvcnMuSHR0cEVycm9yKDUwMCwgJ05vdCB5ZXQgaW1wbGVtZW50ZWQnKTtcbn0pO2A7XG4gIH1cblxuICBwcml2YXRlIGdlbmVyYXRlU2FtcGxlSGFuZGxlckZpbGVzKCk6IHsgW2ZpbGVOYW1lOiBzdHJpbmddOiAoKCkgPT4gc3RyaW5nKSB9IHtcbiAgICBjb25zdCBmaWxlcyA9IHt9O1xuICAgIGNvbnN0IGFwaVNwZWMgPSB5YW1sLmxvYWQoZnMucmVhZEZpbGVTeW5jKGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlKSkudG9TdHJpbmcoKSkgYXMgT3BlbkFQSTM7XG4gICAgZm9yIChjb25zdCBwYXRoIGluIGFwaVNwZWMucGF0aHMpIHtcbiAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYXBpU3BlYy5wYXRocywgcGF0aCkpIHtcbiAgICAgICAgY29uc3QgcGF0aEl0ZW0gPSBhcGlTcGVjLnBhdGhzW3BhdGhdO1xuICAgICAgICBpZiAoKCckcmVmJyBpbiBwYXRoSXRlbSkpIHtcbiAgICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGVQYXRoUmVmKGFwaVNwZWMsIHBhdGhJdGVtLiRyZWYpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhdGggJyR7cGF0aH0nIHJlZmVyZW5jZXMgJyR7cGF0aEl0ZW0uJHJlZn0nLCB3aGljaCBkb2VzIG5vdCBleGlzdCBpbiB0aGlzIEFQSSBzcGVjaWZpY2F0aW9uYCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGZvciAoY29uc3QgbWV0aG9kIGluIHBhdGhJdGVtKSB7XG4gICAgICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChwYXRoSXRlbSwgbWV0aG9kKSAmJlxuICAgICAgICAgICAgWydnZXQnLCAncG9zdCcsICdwdXQnLCAnZGVsZXRlJywgJ3BhdGNoJywgJ29wdGlvbnMnLCAnaGVhZCddLmluZGV4T2YobWV0aG9kKSA+PSAwKSB7XG4gICAgICAgICAgICAvLyBBZGQgYWxsIG9wZXJhdGlvbnNcbiAgICAgICAgICAgIHRoaXMuYWRkUmVzdFJlc291cmNlSGFuZGxlclNhbXBsZShmaWxlcywgYXBpU3BlYywgcGF0aCwgbWV0aG9kKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZpbGVzO1xuICB9XG5cbn0iXX0=
242
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1hcGkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3Jlc3QtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLCtCQUE0QjtBQUM1Qiw4Q0FBZ0M7QUFFaEMsMkNBQTZCO0FBQzdCLGlDQUFzQztBQUN0QyxxREFBaUQ7QUFPakQ7Ozs7Ozs7Ozs7R0FVRztBQUNILE1BQWEsT0FBUSxTQUFRLEVBQUUsQ0FBQyxTQUFTO0lBRXZDOzs7OztPQUtHO0lBQ0gsWUFBWSxHQUFrQyxFQUFZLE9BQXVCO1FBQy9FLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUQ2QyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUcvRSxHQUFHLENBQUMsVUFBVSxDQUNaLG1CQUFtQixFQUNuQixtQkFBbUIsQ0FDcEIsQ0FBQztRQUNGLEdBQUcsQ0FBQyxPQUFPLENBQ1QsU0FBUyxFQUNULFNBQVMsRUFDVCxvQkFBb0IsQ0FDckIsQ0FBQztRQUVGLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRTtZQUNoRixJQUFJLEVBQUUsc0JBQXNCLE9BQU8sQ0FBQyxjQUFjLGdDQUFnQyxPQUFPLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxxQkFBcUI7WUFDcEksV0FBVyxFQUFFLCtDQUErQztTQUM3RCxDQUFDLENBQUM7UUFDSCxHQUFHLENBQUMsV0FBWSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVyQyxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ3RELFFBQVEsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsT0FBTztnQkFDaEIsS0FBSyxFQUFFO29C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LE1BQU0sSUFBSSxRQUFRLENBQUMsRUFBRTtvQkFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRTt3QkFDakQsTUFBTSxJQUFJLEtBQUssQ0FBQyxTQUFTLElBQUksaUJBQWlCLFFBQVEsQ0FBQyxJQUFJLG1EQUFtRCxDQUFDLENBQUM7cUJBQ2pIO2lCQUNGO2dCQUNELEtBQUssTUFBTSxNQUFNLElBQUksUUFBUSxFQUFFO29CQUM3QixJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDO3dCQUN4RCxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUU7d0JBQ25GLHFCQUFxQjt3QkFDckIsSUFBSSxDQUFDLDRCQUE0QixDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO3FCQUNqRTtpQkFDRjthQUNGO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FFRjtBQTlORCwwQkE4TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBqb2luIH0gZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyB5YW1sIGZyb20gJ2pzLXlhbWwnO1xuaW1wb3J0IHsgT3BlbkFQSTMsIE9wZXJhdGlvbk9iamVjdCwgUGF0aEl0ZW1PYmplY3QgfSBmcm9tICdvcGVuYXBpLXR5cGVzY3JpcHQnO1xuaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBMYXp5U2FtcGxlRGlyIH0gZnJvbSAnLi9sYXp5LXNhbXBsZWRpcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVzdEFwaU9wdGlvbnMge1xuICByZWFkb25seSBhcGlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmluaXRpb25GaWxlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFJlc3RBcGkgY29uc3RydWN0IHNldHMgdXAgYW4gT3BlbkFQSS1iYXNlZCBSRVNUIEFQSSBmb3IgYSBzZXJ2ZXJsZXNzIHByb2plY3QgdXNpbmcgcHJvamVuLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIENvbXBvbmVudCB0byBpbmNsdWRlIGRlcGVuZGVuY2llcyBhbmQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzIHJlcXVpcmVkIGZvciBPcGVuQVBJIGFuZCBBV1MgTGFtYmRhLFxuICogYW5kIHByb3ZpZGVzIG1ldGhvZHMgdG8gZ2VuZXJhdGUgVHlwZVNjcmlwdCB0eXBlcyBmcm9tIHRoZSBPcGVuQVBJIGRlZmluaXRpb24gZmlsZS4gSXQgYWxzbyBnZW5lcmF0ZXMgc2FtcGxlIGhhbmRsZXIgZmlsZXMgZm9yIHRoZSBBUEkgZW5kcG9pbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCByZXN0QXBpID0gbmV3IFJlc3RBcGkoYXBwLCB7XG4gKiAgIGFwaU5hbWU6ICdNeVJlc3RBcGknLFxuICogICBkZWZpbml0aW9uRmlsZTogJ3NyYy9vcGVuYXBpL3NjaGVtYS55YW1sJyxcbiAqIH0pO1xuICovXG5leHBvcnQgY2xhc3MgUmVzdEFwaSBleHRlbmRzIHBqLkNvbXBvbmVudCB7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgUmVzdEFwaS5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBBV1MgQ0RLIFR5cGVTY3JpcHQgYXBwLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgUmVzdEFwaS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFwcDogcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByb3RlY3RlZCBvcHRpb25zOiBSZXN0QXBpT3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICBhcHAuYWRkRGV2RGVwcyhcbiAgICAgICdAdHlwZXMvYXdzLWxhbWJkYScsXG4gICAgICAnQHR5cGVzL2xhbWJkYS1sb2cnLFxuICAgICk7XG4gICAgYXBwLmFkZERlcHMoXG4gICAgICAnZXNidWlsZCcsXG4gICAgICAnanMteWFtbCcsXG4gICAgICAnb3BlbmFwaS10eXBlc2NyaXB0JyxcbiAgICApO1xuXG4gICAgY29uc3QgZ2VuZXJhdGVUYXNrID0gYXBwLmFkZFRhc2soYGdlbmVyYXRlOmFwaToke29wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfWAsIHtcbiAgICAgIGV4ZWM6IGBvcGVuYXBpLXR5cGVzY3JpcHQgJHtvcHRpb25zLmRlZmluaXRpb25GaWxlfSAtLW91dHB1dCBzcmMvZ2VuZXJhdGVkL3Jlc3QuJHtvcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkLnRzYCxcbiAgICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJhdGUgVHlwZXMgZnJvbSB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uJyxcbiAgICB9KTtcbiAgICBhcHAuZGVmYXVsdFRhc2shLnNwYXduKGdlbmVyYXRlVGFzayk7XG5cbiAgICBuZXcgcGouU2FtcGxlRmlsZSh0aGlzLnByb2plY3QsIG9wdGlvbnMuZGVmaW5pdGlvbkZpbGUsIHtcbiAgICAgIGNvbnRlbnRzOiB5YW1sLmR1bXAoe1xuICAgICAgICBvcGVuYXBpOiAnMy4wLjEnLFxuICAgICAgICBwYXRoczoge1xuICAgICAgICAgICcvaGVsbG8nOiB7XG4gICAgICAgICAgICBnZXQ6IHtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uSWQ6ICdoZWxsb1dvcmxkJyxcbiAgICAgICAgICAgICAgcmVzcG9uc2VzOiB7XG4gICAgICAgICAgICAgICAgMjAwOiB7XG4gICAgICAgICAgICAgICAgICBjb250ZW50OiB7XG4gICAgICAgICAgICAgICAgICAgICdhcHBsaWNhdGlvbi9qc29uJzoge1xuICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYToge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgaW5mbzoge1xuICAgICAgICAgIHRpdGxlOiBgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX0gQVBJIGRlZmluaXRpb25gLFxuICAgICAgICAgIHZlcnNpb246ICcxLjAnLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBuZXcgTGF6eVNhbXBsZURpcih0aGlzLnByb2plY3QsICdzcmMvbGFtYmRhJywge1xuICAgICAgZmlsZUdlbmVyYXRvcjogdGhpcy5nZW5lcmF0ZVNhbXBsZUhhbmRsZXJGaWxlcy5iaW5kKHRoaXMpLFxuICAgIH0pO1xuXG4gICAgY29uc3QgYXBpRmlsZSA9IG5ldyBwai5UZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL3Jlc3QuJHt0aGlzLm9wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS1hcGkuZ2VuZXJhdGVkLnRzYCk7XG4gICAgYXBpRmlsZS5hZGRMaW5lKHRoaXMuY3JlYXRlQ29uc3RydWN0RmlsZShhcGlGaWxlKSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgY29uc3RydWN0IGZpbGUgY29udGVudCBmb3IgdGhlIGdlbmVyYXRlZCBSRVNUIEFQSS5cbiAgICpcbiAgICogQHBhcmFtIGZpbGUgLSBUaGUgZmlsZSBvYmplY3QgdG8gY3JlYXRlIGNvbnRlbnQgZm9yLlxuICAgKiBAcmV0dXJucyBUaGUgY29udGVudCBvZiB0aGUgY29uc3RydWN0IGZpbGUuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQ29uc3RydWN0RmlsZShmaWxlOiBwai5GaWxlQmFzZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGAvLyAke2ZpbGUubWFya2VyfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgUmVzdEFwaSwgUmVzdEFwaVByb3BzIH0gZnJvbSAnJHtQQUNLQUdFX05BTUV9L2xpYi9jb25zdHJ1Y3RzJztcbmltcG9ydCB7IG9wZXJhdGlvbnMsIHBhdGhzIH0gZnJvbSAnLi9yZXN0LiR7dGhpcy5vcHRpb25zLmFwaU5hbWUudG9Mb3dlckNhc2UoKX0tbW9kZWwuZ2VuZXJhdGVkJztcblxuZXhwb3J0IGludGVyZmFjZSAke3RoaXMub3B0aW9ucy5hcGlOYW1lfVJlc3RBcGlQcm9wcyBleHRlbmRzIE9taXQ8UmVzdEFwaVByb3BzPG9wZXJhdGlvbnM+LCAnZGVmaW5pdGlvbkZpbGVOYW1lJyB8ICdhcGlOYW1lJz4ge1xuICAvL1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX1SZXN0QXBpIGV4dGVuZHMgUmVzdEFwaTxwYXRocywgb3BlcmF0aW9ucz4ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3RoaXMub3B0aW9ucy5hcGlOYW1lfVJlc3RBcGlQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBhcGlOYW1lOiAnJHt0aGlzLm9wdGlvbnMuYXBpTmFtZX0nLFxuICAgICAgZGVmaW5pdGlvbkZpbGVOYW1lOiAnJHt0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGV9JyxcbiAgICB9KTtcbiAgfVxuXG59YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBWYWxpZGF0ZXMgYSBwYXRoIHJlZmVyZW5jZSBpbiB0aGUgT3BlbkFQSSBzcGVjaWZpY2F0aW9uLlxuICAgKlxuICAgKiBAcGFyYW0gYXBpU3BlYyAtIFRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24gb2JqZWN0LlxuICAgKiBAcGFyYW0gcGF0aCAtIFRoZSBwYXRoIHJlZmVyZW5jZSB0byB2YWxpZGF0ZS5cbiAgICogQHBhcmFtIHZpc2l0ZWQgLSBUaGUgbGlzdCBvZiB2aXNpdGVkIHBhdGhzIHRvIGRldGVjdCBjeWNsZXMuXG4gICAqIEByZXR1cm5zIFRydWUgaWYgdGhlIHBhdGggcmVmZXJlbmNlIGlzIHZhbGlkLCBvdGhlcndpc2UgZmFsc2UuXG4gICAqIEB0aHJvd3MgSWYgdGhlIHBhdGggcmVmZXJlbmNlIGlzIGludmFsaWQgb3IgY3ljbGljYWwuXG4gICAqL1xuICBwcm90ZWN0ZWQgdmFsaWRhdGVQYXRoUmVmKGFwaVNwZWM6IE9wZW5BUEkzLCBwYXRoOiBzdHJpbmcsIHZpc2l0ZWQ6IHN0cmluZ1tdID0gW10pOiBib29sZWFuIHtcbiAgICBpZiAoIXBhdGguc3RhcnRzV2l0aCgnIycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byByZXNvbHZlIHJlZiAnJHtwYXRofScgLSBSZXNvbHZpbmcgcmVmZXJlbmNlcyB0byBwYXRocyBmcm9tIGRpZmZlcmVudCBmaWxlcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZGApO1xuICAgIH1cblxuICAgIGNvbnN0IHBhdGhQcmV0dHlTcGxpdCA9XG4gICAgICBwYXRoXG4gICAgICAgIC5zcGxpdCgnLycpXG4gICAgICAgIC5zbGljZSgxKVxuICAgICAgICAubWFwKHBhdGhQYXJ0ID0+XG4gICAgICAgICAgcGF0aFBhcnRcbiAgICAgICAgICAgIC5yZXBsYWNlKCd+MScsICcvJylcbiAgICAgICAgICAgIC5yZXBsYWNlKCd+MCcsICd+JyksXG4gICAgICAgICk7XG5cbiAgICBpZiAodmlzaXRlZC5pbmNsdWRlcyhwYXRoUHJldHR5U3BsaXRbMV0pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEN5Y2xpY2FsIHJlZmVyZW5jZSBleGlzdHMgYmV0d2VlbiBwYXRoczogJHt2aXNpdGVkLmpvaW4oJywgJyl9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF5YmVQYXRoID0gcGF0aFByZXR0eVNwbGl0LnJlZHVjZSgoYWNjLCBwYXRoUGFydCkgPT4ge1xuICAgICAgaWYgKE9iamVjdC5rZXlzKGFjYykuaW5jbHVkZXMocGF0aFBhcnQpKSB7XG4gICAgICAgIHJldHVybiBhY2NbcGF0aFBhcnRdO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9LCBhcGlTcGVjIGFzIGFueSk7XG4gICAgaWYgKG1heWJlUGF0aCkge1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChtYXliZVBhdGgsICckcmVmJykpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsaWRhdGVQYXRoUmVmKGFwaVNwZWMsIG1heWJlUGF0aC4kcmVmLCBbLi4udmlzaXRlZCwgcGF0aFByZXR0eVNwbGl0WzFdXSk7XG4gICAgICB9XG4gICAgICAvLyBDbG9zZXN0IHRoaW5nIHRvIG1ha2luZyBzdXJlIHRoZSByZWYgYWN0dWFsbHkgaXMgYSBwYXRoIG9iamVjdFxuICAgICAgcmV0dXJuIFsnZ2V0JywgJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZScsICdwYXRjaCcsICdvcHRpb25zJywgJ2hlYWQnXS5zb21lKG1ldGhvZCA9PiBPYmplY3Qua2V5cyhtYXliZVBhdGgpLmluZGV4T2YobWV0aG9kKSA+PSAwKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBzYW1wbGUgaGFuZGxlciBmaWxlIGZvciBhIFJFU1QgQVBJIHJlc291cmNlLlxuICAgKlxuICAgKiBAcGFyYW0gZmlsZXMgLSBUaGUgY29sbGVjdGlvbiBvZiBmaWxlIGdlbmVyYXRvcnMuXG4gICAqIEBwYXJhbSBhcGlTcGVjIC0gVGhlIE9wZW5BUEkgc3BlY2lmaWNhdGlvbiBvYmplY3QuXG4gICAqIEBwYXJhbSBwYXRoIC0gVGhlIHBhdGggb2YgdGhlIEFQSSByZXNvdXJjZS5cbiAgICogQHBhcmFtIG1ldGhvZCAtIFRoZSBIVFRQIG1ldGhvZCBvZiB0aGUgQVBJIHJlc291cmNlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFkZFJlc3RSZXNvdXJjZUhhbmRsZXJTYW1wbGUoZmlsZXM6IHsgW2ZpbGVOYW1lOiBzdHJpbmddOiAoKSA9PiBzdHJpbmcgfSwgYXBpU3BlYzogT3BlbkFQSTMsIHBhdGg6IHN0cmluZywgbWV0aG9kOiBzdHJpbmcpIHtcbiAgICBjb25zdCBvYVBhdGggPSBhcGlTcGVjLnBhdGhzIVtwYXRoXSBhcyBQYXRoSXRlbU9iamVjdDtcbiAgICBjb25zdCBvcGVyYXRpb24gPSBvYVBhdGhbbWV0aG9kIGFzIGtleW9mIFBhdGhJdGVtT2JqZWN0XSBhcyBPcGVyYXRpb25PYmplY3Q7XG4gICAgY29uc3Qgb3BlcmF0aW9uSWQgPSBvcGVyYXRpb24ub3BlcmF0aW9uSWQhO1xuICAgIC8vIGNvbnN0IGRlc2NyaXB0aW9uID0gYCR7bWV0aG9kIGFzIHN0cmluZ30gJHtwYXRoIGFzIHN0cmluZ30gLSAke29wZXJhdGlvbi5zdW1tYXJ5fWA7XG5cbiAgICBjb25zdCBlbnRyeUZpbGUgPSBgcmVzdC4ke3RoaXMub3B0aW9ucy5hcGlOYW1lLnRvTG93ZXJDYXNlKCl9LiR7b3BlcmF0aW9uSWR9LnRzYDtcbiAgICBmaWxlc1tlbnRyeUZpbGVdID0gKCkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMuY3JlYXRlRW50cnlGaWxlKG1ldGhvZCwgb3BlcmF0aW9uSWQpO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgZW50cnkgZmlsZSBjb250ZW50IGZvciBhIFJFU1QgQVBJIGhhbmRsZXIuXG4gICAqXG4gICAqIEBwYXJhbSBtZXRob2QgLSBUaGUgSFRUUCBtZXRob2Qgb2YgdGhlIEFQSSByZXNvdXJjZS5cbiAgICogQHBhcmFtIG9wZXJhdGlvbklkIC0gVGhlIG9wZXJhdGlvbiBJRCBvZiB0aGUgQVBJIHJlc291cmNlLlxuICAgKiBAcmV0dXJucyBUaGUgY29udGVudCBvZiB0aGUgZW50cnkgZmlsZS5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVFbnRyeUZpbGUobWV0aG9kOiBzdHJpbmcsIG9wZXJhdGlvbklkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCBmYWN0b3J5Q2FsbDtcbiAgICBsZXQgbG9ncztcbiAgICBzd2l0Y2ggKG1ldGhvZC50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICBjYXNlICdwb3N0JzpcbiAgICAgIGNhc2UgJ3B1dCc6XG4gICAgICBjYXNlICdwYXRjaCc6XG4gICAgICAgIGZhY3RvcnlDYWxsID0gYGFwaS5jcmVhdGVPcGVuQXBpSGFuZGxlcldpdGhSZXF1ZXN0Qm9keTxvcGVyYXRpb25zWycke29wZXJhdGlvbklkfSddPihhc3luYyAoY3R4LCBkYXRhKSA9PiB7YDtcbiAgICAgICAgbG9ncyA9ICdjdHgubG9nZ2VyLmluZm8oSlNPTi5zdHJpbmdpZnkoZGF0YSkpOyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnb3B0aW9ucyc6XG4gICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgY2FzZSAnZ2V0JzpcbiAgICAgIGNhc2UgJ2hlYWQnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgZmFjdG9yeUNhbGwgPSBgYXBpLmNyZWF0ZU9wZW5BcGlIYW5kbGVyPG9wZXJhdGlvbnNbJyR7b3BlcmF0aW9uSWR9J10+KGFzeW5jIChjdHgpID0+IHtgO1xuICAgICAgICBsb2dzID0gJyc7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIHJldHVybiBgaW1wb3J0IHsgYXBpLCBlcnJvcnMgfSBmcm9tICcke1BBQ0tBR0VfTkFNRX0vbGliL2xhbWJkYSc7XG5pbXBvcnQgeyBvcGVyYXRpb25zIH0gZnJvbSAnLi4vZ2VuZXJhdGVkL3Jlc3QuJHt0aGlzLm9wdGlvbnMuYXBpTmFtZS50b0xvd2VyQ2FzZSgpfS1tb2RlbC5nZW5lcmF0ZWQnO1xuXG5leHBvcnQgY29uc3QgaGFuZGxlciA9ICR7ZmFjdG9yeUNhbGx9XG4gIGN0eC5sb2dnZXIuaW5mbyhKU09OLnN0cmluZ2lmeShjdHguZXZlbnQpKTtcbiAgJHtsb2dzfVxuICB0aHJvdyBuZXcgZXJyb3JzLkh0dHBFcnJvcig1MDAsICdOb3QgeWV0IGltcGxlbWVudGVkJyk7XG59KTtgO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBzYW1wbGUgaGFuZGxlciBmaWxlcyBmb3IgdGhlIFJFU1QgQVBJIGJhc2VkIG9uIHRoZSBPcGVuQVBJIHNwZWNpZmljYXRpb24uXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSBjb2xsZWN0aW9uIG9mIGZpbGUgZ2VuZXJhdG9ycyBmb3IgdGhlIHNhbXBsZSBoYW5kbGVyIGZpbGVzLlxuICAgKi9cbiAgcHJpdmF0ZSBnZW5lcmF0ZVNhbXBsZUhhbmRsZXJGaWxlcygpOiB7IFtmaWxlTmFtZTogc3RyaW5nXTogKCgpID0+IHN0cmluZykgfSB7XG4gICAgY29uc3QgZmlsZXMgPSB7fTtcbiAgICBjb25zdCBhcGlTcGVjID0geWFtbC5sb2FkKGZzLnJlYWRGaWxlU3luYyhqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSkpLnRvU3RyaW5nKCkpIGFzIE9wZW5BUEkzO1xuICAgIGZvciAoY29uc3QgcGF0aCBpbiBhcGlTcGVjLnBhdGhzKSB7XG4gICAgICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGFwaVNwZWMucGF0aHMsIHBhdGgpKSB7XG4gICAgICAgIGNvbnN0IHBhdGhJdGVtID0gYXBpU3BlYy5wYXRoc1twYXRoXTtcbiAgICAgICAgaWYgKCgnJHJlZicgaW4gcGF0aEl0ZW0pKSB7XG4gICAgICAgICAgaWYgKCF0aGlzLnZhbGlkYXRlUGF0aFJlZihhcGlTcGVjLCBwYXRoSXRlbS4kcmVmKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBQYXRoICcke3BhdGh9JyByZWZlcmVuY2VzICcke3BhdGhJdGVtLiRyZWZ9Jywgd2hpY2ggZG9lcyBub3QgZXhpc3QgaW4gdGhpcyBBUEkgc3BlY2lmaWNhdGlvbmApO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKGNvbnN0IG1ldGhvZCBpbiBwYXRoSXRlbSkge1xuICAgICAgICAgIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwocGF0aEl0ZW0sIG1ldGhvZCkgJiZcbiAgICAgICAgICAgIFsnZ2V0JywgJ3Bvc3QnLCAncHV0JywgJ2RlbGV0ZScsICdwYXRjaCcsICdvcHRpb25zJywgJ2hlYWQnXS5pbmRleE9mKG1ldGhvZCkgPj0gMCkge1xuICAgICAgICAgICAgLy8gQWRkIGFsbCBvcGVyYXRpb25zXG4gICAgICAgICAgICB0aGlzLmFkZFJlc3RSZXNvdXJjZUhhbmRsZXJTYW1wbGUoZmlsZXMsIGFwaVNwZWMsIHBhdGgsIG1ldGhvZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmaWxlcztcbiAgfVxuXG59XG4iXX0=
@@ -8,11 +8,45 @@ interface VariableDefinition {
8
8
  readonly name: string;
9
9
  readonly type: string;
10
10
  }
11
+ /**
12
+ * The Workflow construct sets up an AWS Step Functions workflow for a serverless project using projen.
13
+ * This construct extends the projen Component to generate a sample state machine definition file and corresponding TypeScript construct file.
14
+ *
15
+ * @example
16
+ * const workflow = new Workflow(app, {
17
+ * workflowName: 'MyWorkflow',
18
+ * definitionFile: 'statemachine/definition.json',
19
+ * });
20
+ */
11
21
  export declare class Workflow extends pj.Component {
12
22
  protected options: WorkflowOptions;
23
+ /**
24
+ * Creates an instance of Workflow.
25
+ *
26
+ * @param app - The AWS CDK TypeScript app.
27
+ * @param options - The options for configuring the Workflow.
28
+ */
13
29
  constructor(app: pj.awscdk.AwsCdkTypeScriptApp, options: WorkflowOptions);
30
+ /**
31
+ * Creates the construct file content for the generated Workflow.
32
+ *
33
+ * @param file - The file object to create content for.
34
+ * @returns The content of the construct file.
35
+ */
14
36
  protected createConstructFile(file: pj.FileBase): string;
37
+ /**
38
+ * Renders the state configuration definition for a given variable.
39
+ *
40
+ * @param def - The variable definition.
41
+ * @returns The state configuration definition string.
42
+ */
15
43
  protected renderStateConfigDefinition(def: VariableDefinition): string;
44
+ /**
45
+ * Renders the definition substitution for a given variable.
46
+ *
47
+ * @param def - The variable definition.
48
+ * @returns The definition substitution string.
49
+ */
16
50
  protected renderDefinitionSubstitution(def: VariableDefinition): string;
17
51
  }
18
52
  export {};
@@ -29,7 +29,23 @@ 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
+ /**
33
+ * The Workflow construct sets up an AWS Step Functions workflow for a serverless project using projen.
34
+ * This construct extends the projen Component to generate a sample state machine definition file and corresponding TypeScript construct file.
35
+ *
36
+ * @example
37
+ * const workflow = new Workflow(app, {
38
+ * workflowName: 'MyWorkflow',
39
+ * definitionFile: 'statemachine/definition.json',
40
+ * });
41
+ */
32
42
  class Workflow extends pj.Component {
43
+ /**
44
+ * Creates an instance of Workflow.
45
+ *
46
+ * @param app - The AWS CDK TypeScript app.
47
+ * @param options - The options for configuring the Workflow.
48
+ */
33
49
  constructor(app, options) {
34
50
  super(app);
35
51
  this.options = options;
@@ -49,6 +65,12 @@ class Workflow extends pj.Component {
49
65
  });
50
66
  new lazy_textfile_1.LazyTextFile(this.project, `src/generated/workflow.${this.options.workflowName.toLowerCase()}.generated.ts`, { content: this.createConstructFile.bind(this) });
51
67
  }
68
+ /**
69
+ * Creates the construct file content for the generated Workflow.
70
+ *
71
+ * @param file - The file object to create content for.
72
+ * @returns The content of the construct file.
73
+ */
52
74
  createConstructFile(file) {
53
75
  var _a;
54
76
  const workflowDefinition = fs.readFileSync((0, path_1.join)(this.project.outdir, this.options.definitionFile)).toString();
@@ -87,6 +109,12 @@ export class ${this.options.workflowName}Workflow extends sls.Workflow {
87
109
 
88
110
  }`;
89
111
  }
112
+ /**
113
+ * Renders the state configuration definition for a given variable.
114
+ *
115
+ * @param def - The variable definition.
116
+ * @returns The state configuration definition string.
117
+ */
90
118
  renderStateConfigDefinition(def) {
91
119
  switch (def.type) {
92
120
  case 'DynamoDBTable':
@@ -98,6 +126,12 @@ export class ${this.options.workflowName}Workflow extends sls.Workflow {
98
126
  return `readonly ${def.name}: string;`;
99
127
  }
100
128
  }
129
+ /**
130
+ * Renders the definition substitution for a given variable.
131
+ *
132
+ * @param def - The variable definition.
133
+ * @returns The definition substitution string.
134
+ */
101
135
  renderDefinitionSubstitution(def) {
102
136
  switch (def.type) {
103
137
  case 'DynamoDBTable':
@@ -111,4 +145,4 @@ export class ${this.options.workflowName}Workflow extends sls.Workflow {
111
145
  }
112
146
  }
113
147
  exports.Workflow = Workflow;
114
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLCtCQUE0QjtBQUM1QiwyQ0FBNkI7QUFDN0IsaUNBQXNDO0FBQ3RDLG1EQUErQztBQWEvQyxNQUFhLFFBQVMsU0FBUSxFQUFFLENBQUMsU0FBUztJQUV4QyxZQUFZLEdBQWtDLEVBQVksT0FBd0I7UUFDaEYsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRDZDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBR2hGLElBQUksRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQzNELFFBQVEsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDO2dCQUN2QixPQUFPLEVBQUUsYUFBYTtnQkFDdEIsTUFBTSxFQUFFO29CQUNOLGFBQWEsRUFBRTt3QkFDYixJQUFJLEVBQUUsTUFBTTt3QkFDWixNQUFNLEVBQUU7NEJBQ04sS0FBSyxFQUFFLFVBQVU7eUJBQ2xCO3dCQUNELEdBQUcsRUFBRSxJQUFJO3FCQUNWO2lCQUNGO2FBQ0YsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ2pCLENBQUMsQ0FBQztRQUVILElBQUksNEJBQVksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLDBCQUEwQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JLLENBQUM7SUFFUyxtQkFBbUIsQ0FBQyxJQUFpQjs7UUFDN0MsTUFBTSxrQkFBa0IsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUEsV0FBSSxFQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUM5RyxNQUFNLE9BQU8sR0FBRyxNQUFBLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQywwQ0FBRSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckgsTUFBTSxnQkFBZ0IsR0FBeUIsQ0FBQyxPQUFPLGFBQVAsT0FBTyxjQUFQLE9BQU8sR0FBSSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDM0UsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRTtnQkFDNUIsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7YUFDN0Q7WUFDRCxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLElBQUksQ0FBQyxNQUFNOzs7Ozt3QkFLSixtQkFBWTs7bUJBRWpCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWTs7TUFFdEMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs7OztlQUloRSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7O2dFQUV3QixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVk7Ozs2QkFHNUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjOztVQUU5QyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNEJBQTRCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzs7OztFQUtsRixDQUFDO0lBQ0QsQ0FBQztJQUVTLDJCQUEyQixDQUFDLEdBQXVCO1FBQzNELFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sWUFBWSxHQUFHLENBQUMsSUFBSSxXQUFXLENBQUM7WUFDekMsS0FBSyxnQkFBZ0I7Z0JBQ25CLE9BQU8sWUFBWSxHQUFHLENBQUMsSUFBSSxjQUFjLENBQUM7WUFDNUMsS0FBSyxRQUFRLENBQUM7WUFDZDtnQkFDRSxPQUFPLFlBQVksR0FBRyxDQUFDLElBQUksV0FBVyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVTLDRCQUE0QixDQUFDLEdBQXVCO1FBQzVELFFBQVEsR0FBRyxDQUFDLElBQUksRUFBRTtZQUNoQixLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSx3QkFBd0IsR0FBRyxDQUFDLElBQUksYUFBYSxDQUFDO1lBQ3ZFLEtBQUssZ0JBQWdCO2dCQUNuQixPQUFPLElBQUksR0FBRyxDQUFDLFFBQVEsd0JBQXdCLEdBQUcsQ0FBQyxJQUFJLGVBQWUsQ0FBQztZQUN6RSxLQUFLLFFBQVEsQ0FBQztZQUNkO2dCQUNFLE9BQU8sSUFBSSxHQUFHLENBQUMsUUFBUSx3QkFBd0IsR0FBRyxDQUFDLElBQUksR0FBRyxDQUFDO1NBQzlEO0lBQ0gsQ0FBQztDQUVGO0FBdEZELDRCQXNGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCB7IGpvaW4gfSBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIHBqIGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQQUNLQUdFX05BTUUgfSBmcm9tICcuL2NvcmUnO1xuaW1wb3J0IHsgTGF6eVRleHRGaWxlIH0gZnJvbSAnLi9sYXp5LXRleHRmaWxlJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd09wdGlvbnMge1xuICByZWFkb25seSB3b3JrZmxvd05hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZGVmaW5pdGlvbkZpbGU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIFZhcmlhYmxlRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IGZ1bGxOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgV29ya2Zsb3cgZXh0ZW5kcyBwai5Db21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogcGouYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByb3RlY3RlZCBvcHRpb25zOiBXb3JrZmxvd09wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgbmV3IHBqLlNhbXBsZUZpbGUodGhpcy5wcm9qZWN0LCB0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGUsIHtcbiAgICAgIGNvbnRlbnRzOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgIFN0YXJ0QXQ6ICdIZWxsbyBXb3JsZCcsXG4gICAgICAgIFN0YXRlczoge1xuICAgICAgICAgICdIZWxsbyBXb3JsZCc6IHtcbiAgICAgICAgICAgIFR5cGU6ICdQYXNzJyxcbiAgICAgICAgICAgIFJlc3VsdDoge1xuICAgICAgICAgICAgICBIZWxsbzogJyR7d29ybGR9JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBFbmQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sIHVuZGVmaW5lZCwgMiksXG4gICAgfSk7XG5cbiAgICBuZXcgTGF6eVRleHRGaWxlKHRoaXMucHJvamVjdCwgYHNyYy9nZW5lcmF0ZWQvd29ya2Zsb3cuJHt0aGlzLm9wdGlvbnMud29ya2Zsb3dOYW1lLnRvTG93ZXJDYXNlKCl9LmdlbmVyYXRlZC50c2AsIHsgY29udGVudDogdGhpcy5jcmVhdGVDb25zdHJ1Y3RGaWxlLmJpbmQodGhpcykgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3JlYXRlQ29uc3RydWN0RmlsZShmaWxlOiBwai5GaWxlQmFzZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgd29ya2Zsb3dEZWZpbml0aW9uID0gZnMucmVhZEZpbGVTeW5jKGpvaW4odGhpcy5wcm9qZWN0Lm91dGRpciwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlKSkudG9TdHJpbmcoKTtcbiAgICBjb25zdCBtYXRjaGVzID0gd29ya2Zsb3dEZWZpbml0aW9uLm1hdGNoKC9cXCRcXHtbYS16QS1aMC05I10qXFx9L2cpPy5tYXAobWF0Y2ggPT4gbWF0Y2guc3Vic3RyaW5nKDIsIG1hdGNoLmxlbmd0aCAtIDEpKTtcbiAgICBjb25zdCBtYXRjaGVkVmFyaWFibGVzOiBWYXJpYWJsZURlZmluaXRpb25bXSA9IChtYXRjaGVzID8/IFtdKS5tYXAodmFyTmFtZSA9PiB7XG4gICAgICBpZiAodmFyTmFtZS5pbmRleE9mKCcjJykgPCAwKSB7XG4gICAgICAgIHJldHVybiB7IG5hbWU6IHZhck5hbWUsIGZ1bGxOYW1lOiB2YXJOYW1lLCB0eXBlOiAnc3RyaW5nJyB9O1xuICAgICAgfVxuICAgICAgY29uc3QgW25hbWUsIHR5cGVdID0gdmFyTmFtZS5zcGxpdCgnIycpO1xuICAgICAgcmV0dXJuIHsgbmFtZSwgdHlwZSwgZnVsbE5hbWU6IHZhck5hbWUgfTtcbiAgICB9KTtcblxuICAgIHJldHVybiBgLy8gJHtmaWxlLm1hcmtlcn1cbi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgSVRhYmxlIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCB7IElGdW5jdGlvbiB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgc2xzIGZyb20gJyR7UEFDS0FHRV9OQU1FfS9saWIvY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLm9wdGlvbnMud29ya2Zsb3dOYW1lfVdvcmtmbG93UHJvcHMgZXh0ZW5kcyBPbWl0PHNscy5Xb3JrZmxvd1Byb3BzLCAnZGVmaW5pdGlvbkZpbGVOYW1lJyB8ICdkZWZpbml0aW9uU3Vic3RpdHV0aW9ucyc+IHtcbiAgcmVhZG9ubHkgc3RhdGVDb25maWc6IHtcbiAgICAke21hdGNoZWRWYXJpYWJsZXMubWFwKHYgPT4gdGhpcy5yZW5kZXJTdGF0ZUNvbmZpZ0RlZmluaXRpb24odikpLmpvaW4oJ1xcbicpfVxuICB9O1xufVxuXG5leHBvcnQgY2xhc3MgJHt0aGlzLm9wdGlvbnMud29ya2Zsb3dOYW1lfVdvcmtmbG93IGV4dGVuZHMgc2xzLldvcmtmbG93IHtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiAke3RoaXMub3B0aW9ucy53b3JrZmxvd05hbWV9V29ya2Zsb3dQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZWZpbml0aW9uRmlsZU5hbWU6ICcke3RoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZX0nLFxuICAgICAgZGVmaW5pdGlvblN1YnN0aXR1dGlvbnM6IHtcbiAgICAgICAgJHttYXRjaGVkVmFyaWFibGVzLm1hcCh2ID0+IHRoaXMucmVuZGVyRGVmaW5pdGlvblN1YnN0aXR1dGlvbih2KSkuam9pbignXFxuJyl9XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxufWA7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyU3RhdGVDb25maWdEZWZpbml0aW9uKGRlZjogVmFyaWFibGVEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdEeW5hbW9EQlRhYmxlJzpcbiAgICAgICAgcmV0dXJuIGByZWFkb25seSAke2RlZi5uYW1lfTogSVRhYmxlO2A7XG4gICAgICBjYXNlICdMYW1iZGFGdW5jdGlvbic6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IElGdW5jdGlvbjtgO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgcmVhZG9ubHkgJHtkZWYubmFtZX06IHN0cmluZztgO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJEZWZpbml0aW9uU3Vic3RpdHV0aW9uKGRlZjogVmFyaWFibGVEZWZpbml0aW9uKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKGRlZi50eXBlKSB7XG4gICAgICBjYXNlICdEeW5hbW9EQlRhYmxlJzpcbiAgICAgICAgcmV0dXJuIGAnJHtkZWYuZnVsbE5hbWV9JzogcHJvcHMuc3RhdGVDb25maWcuJHtkZWYubmFtZX0udGFibGVOYW1lLGA7XG4gICAgICBjYXNlICdMYW1iZGFGdW5jdGlvbic6XG4gICAgICAgIHJldHVybiBgJyR7ZGVmLmZ1bGxOYW1lfSc6IHByb3BzLnN0YXRlQ29uZmlnLiR7ZGVmLm5hbWV9LmZ1bmN0aW9uQXJuLGA7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGAnJHtkZWYuZnVsbE5hbWV9JzogcHJvcHMuc3RhdGVDb25maWcuJHtkZWYubmFtZX0sYDtcbiAgICB9XG4gIH1cblxufSJdfQ==
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHJvamVuL3dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsdUNBQXlCO0FBQ3pCLCtCQUE0QjtBQUM1QiwyQ0FBNkI7QUFDN0IsaUNBQXNDO0FBQ3RDLG1EQUErQztBQWEvQzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFhLFFBQVMsU0FBUSxFQUFFLENBQUMsU0FBUztJQUV4Qzs7Ozs7T0FLRztJQUNILFlBQVksR0FBa0MsRUFBWSxPQUF3QjtRQUNoRixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFENkMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFHaEYsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDM0QsUUFBUSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUM7Z0JBQ3ZCLE9BQU8sRUFBRSxhQUFhO2dCQUN0QixNQUFNLEVBQUU7b0JBQ04sYUFBYSxFQUFFO3dCQUNiLElBQUksRUFBRSxNQUFNO3dCQUNaLE1BQU0sRUFBRTs0QkFDTixLQUFLLEVBQUUsVUFBVTt5QkFDbEI7d0JBQ0QsR0FBRyxFQUFFLElBQUk7cUJBQ1Y7aUJBQ0Y7YUFDRixFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7U0FDakIsQ0FBQyxDQUFDO1FBRUgsSUFBSSw0QkFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsMEJBQTBCLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDckssQ0FBQztJQUVEOzs7OztPQUtHO0lBQ08sbUJBQW1CLENBQUMsSUFBaUI7O1FBQzdD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aW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgcGogZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBBQ0tBR0VfTkFNRSB9IGZyb20gJy4vY29yZSc7XG5pbXBvcnQgeyBMYXp5VGV4dEZpbGUgfSBmcm9tICcuL2xhenktdGV4dGZpbGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtmbG93T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBkZWZpbml0aW9uRmlsZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgVmFyaWFibGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgZnVsbE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFdvcmtmbG93IGNvbnN0cnVjdCBzZXRzIHVwIGFuIEFXUyBTdGVwIEZ1bmN0aW9ucyB3b3JrZmxvdyBmb3IgYSBzZXJ2ZXJsZXNzIHByb2plY3QgdXNpbmcgcHJvamVuLlxuICogVGhpcyBjb25zdHJ1Y3QgZXh0ZW5kcyB0aGUgcHJvamVuIENvbXBvbmVudCB0byBnZW5lcmF0ZSBhIHNhbXBsZSBzdGF0ZSBtYWNoaW5lIGRlZmluaXRpb24gZmlsZSBhbmQgY29ycmVzcG9uZGluZyBUeXBlU2NyaXB0IGNvbnN0cnVjdCBmaWxlLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCB3b3JrZmxvdyA9IG5ldyBXb3JrZmxvdyhhcHAsIHtcbiAqICAgd29ya2Zsb3dOYW1lOiAnTXlXb3JrZmxvdycsXG4gKiAgIGRlZmluaXRpb25GaWxlOiAnc3RhdGVtYWNoaW5lL2RlZmluaXRpb24uanNvbicsXG4gKiB9KTtcbiAqL1xuZXhwb3J0IGNsYXNzIFdvcmtmbG93IGV4dGVuZHMgcGouQ29tcG9uZW50IHtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBXb3JrZmxvdy5cbiAgICpcbiAgICogQHBhcmFtIGFwcCAtIFRoZSBBV1MgQ0RLIFR5cGVTY3JpcHQgYXBwLlxuICAgKiBAcGFyYW0gb3B0aW9ucyAtIFRoZSBvcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgV29ya2Zsb3cuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihhcHA6IHBqLmF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwLCBwcm90ZWN0ZWQgb3B0aW9uczogV29ya2Zsb3dPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwKTtcblxuICAgIG5ldyBwai5TYW1wbGVGaWxlKHRoaXMucHJvamVjdCwgdGhpcy5vcHRpb25zLmRlZmluaXRpb25GaWxlLCB7XG4gICAgICBjb250ZW50czogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICBTdGFydEF0OiAnSGVsbG8gV29ybGQnLFxuICAgICAgICBTdGF0ZXM6IHtcbiAgICAgICAgICAnSGVsbG8gV29ybGQnOiB7XG4gICAgICAgICAgICBUeXBlOiAnUGFzcycsXG4gICAgICAgICAgICBSZXN1bHQ6IHtcbiAgICAgICAgICAgICAgSGVsbG86ICcke3dvcmxkfScsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgRW5kOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LCB1bmRlZmluZWQsIDIpLFxuICAgIH0pO1xuXG4gICAgbmV3IExhenlUZXh0RmlsZSh0aGlzLnByb2plY3QsIGBzcmMvZ2VuZXJhdGVkL3dvcmtmbG93LiR7dGhpcy5vcHRpb25zLndvcmtmbG93TmFtZS50b0xvd2VyQ2FzZSgpfS5nZW5lcmF0ZWQudHNgLCB7IGNvbnRlbnQ6IHRoaXMuY3JlYXRlQ29uc3RydWN0RmlsZS5iaW5kKHRoaXMpIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlIGNvbnN0cnVjdCBmaWxlIGNvbnRlbnQgZm9yIHRoZSBnZW5lcmF0ZWQgV29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSBmaWxlIC0gVGhlIGZpbGUgb2JqZWN0IHRvIGNyZWF0ZSBjb250ZW50IGZvci5cbiAgICogQHJldHVybnMgVGhlIGNvbnRlbnQgb2YgdGhlIGNvbnN0cnVjdCBmaWxlLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUNvbnN0cnVjdEZpbGUoZmlsZTogcGouRmlsZUJhc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IHdvcmtmbG93RGVmaW5pdGlvbiA9IGZzLnJlYWRGaWxlU3luYyhqb2luKHRoaXMucHJvamVjdC5vdXRkaXIsIHRoaXMub3B0aW9ucy5kZWZpbml0aW9uRmlsZSkpLnRvU3RyaW5nKCk7XG4gICAgY29uc3QgbWF0Y2hlcyA9IHdvcmtmbG93RGVmaW5pdGlvbi5tYXRjaCgvXFwkXFx7W2EtekEtWjAtOSNdKlxcfS9nKT8ubWFwKG1hdGNoID0+IG1hdGNoLnN1YnN0cmluZygyLCBtYXRjaC5sZW5ndGggLSAxKSk7XG4gICAgY29uc3QgbWF0Y2hlZFZhcmlhYmxlczogVmFyaWFibGVEZWZpbml0aW9uW10gPSAobWF0Y2hlcyA/PyBbXSkubWFwKHZhck5hbWUgPT4ge1xuICAgICAgaWYgKHZhck5hbWUuaW5kZXhPZignIycpIDwgMCkge1xuICAgICAgICByZXR1cm4geyBuYW1lOiB2YXJOYW1lLCBmdWxsTmFtZTogdmFyTmFtZSwgdHlwZTogJ3N0cmluZycgfTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFtuYW1lLCB0eXBlXSA9IHZhck5hbWUuc3BsaXQoJyMnKTtcbiAgICAgIHJldHVybiB7IG5hbWUsIHR5cGUsIGZ1bGxOYW1lOiB2YXJOYW1lIH07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gYC8vICR7ZmlsZS5tYXJrZXJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IElUYWJsZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgeyBJRnVuY3Rpb24gfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNscyBmcm9tICcke1BBQ0tBR0VfTkFNRX0vbGliL2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlICR7dGhpcy5vcHRpb25zLndvcmtmbG93TmFtZX1Xb3JrZmxvd1Byb3BzIGV4dGVuZHMgT21pdDxzbHMuV29ya2Zsb3dQcm9wcywgJ2RlZmluaXRpb25GaWxlTmFtZScgfCAnZGVmaW5pdGlvblN1YnN0aXR1dGlvbnMnPiB7XG4gIHJlYWRvbmx5IHN0YXRlQ29uZmlnOiB7XG4gICAgJHttYXRjaGVkVmFyaWFibGVzLm1hcCh2ID0+IHRoaXMucmVuZGVyU3RhdGVDb25maWdEZWZpbml0aW9uKHYpKS5qb2luKCdcXG4nKX1cbiAgfTtcbn1cblxuZXhwb3J0IGNsYXNzICR7dGhpcy5vcHRpb25zLndvcmtmbG93TmFtZX1Xb3JrZmxvdyBleHRlbmRzIHNscy5Xb3JrZmxvdyB7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHt0aGlzLm9wdGlvbnMud29ya2Zsb3dOYW1lfVdvcmtmbG93UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVmaW5pdGlvbkZpbGVOYW1lOiAnJHt0aGlzLm9wdGlvbnMuZGVmaW5pdGlvbkZpbGV9JyxcbiAgICAgIGRlZmluaXRpb25TdWJzdGl0dXRpb25zOiB7XG4gICAgICAgICR7bWF0Y2hlZFZhcmlhYmxlcy5tYXAodiA9PiB0aGlzLnJlbmRlckRlZmluaXRpb25TdWJzdGl0dXRpb24odikpLmpvaW4oJ1xcbicpfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbn1gO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIHN0YXRlIGNvbmZpZ3VyYXRpb24gZGVmaW5pdGlvbiBmb3IgYSBnaXZlbiB2YXJpYWJsZS5cbiAgICpcbiAgICogQHBhcmFtIGRlZiAtIFRoZSB2YXJpYWJsZSBkZWZpbml0aW9uLlxuICAgKiBAcmV0dXJucyBUaGUgc3RhdGUgY29uZmlndXJhdGlvbiBkZWZpbml0aW9uIHN0cmluZy5cbiAgICovXG4gIHByb3RlY3RlZCByZW5kZXJTdGF0ZUNvbmZpZ0RlZmluaXRpb24oZGVmOiBWYXJpYWJsZURlZmluaXRpb24pOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZGVmLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0R5bmFtb0RCVGFibGUnOlxuICAgICAgICByZXR1cm4gYHJlYWRvbmx5ICR7ZGVmLm5hbWV9OiBJVGFibGU7YDtcbiAgICAgIGNhc2UgJ0xhbWJkYUZ1bmN0aW9uJzpcbiAgICAgICAgcmV0dXJuIGByZWFkb25seSAke2RlZi5uYW1lfTogSUZ1bmN0aW9uO2A7XG4gICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIGByZWFkb25seSAke2RlZi5uYW1lfTogc3RyaW5nO2A7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGRlZmluaXRpb24gc3Vic3RpdHV0aW9uIGZvciBhIGdpdmVuIHZhcmlhYmxlLlxuICAgKlxuICAgKiBAcGFyYW0gZGVmIC0gVGhlIHZhcmlhYmxlIGRlZmluaXRpb24uXG4gICAqIEByZXR1cm5zIFRoZSBkZWZpbml0aW9uIHN1YnN0aXR1dGlvbiBzdHJpbmcuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVuZGVyRGVmaW5pdGlvblN1YnN0aXR1dGlvbihkZWY6IFZhcmlhYmxlRGVmaW5pdGlvbik6IHN0cmluZyB7XG4gICAgc3dpdGNoIChkZWYudHlwZSkge1xuICAgICAgY2FzZSAnRHluYW1vREJUYWJsZSc6XG4gICAgICAgIHJldHVybiBgJyR7ZGVmLmZ1bGxOYW1lfSc6IHByb3BzLnN0YXRlQ29uZmlnLiR7ZGVmLm5hbWV9LnRhYmxlTmFtZSxgO1xuICAgICAgY2FzZSAnTGFtYmRhRnVuY3Rpb24nOlxuICAgICAgICByZXR1cm4gYCcke2RlZi5mdWxsTmFtZX0nOiBwcm9wcy5zdGF0ZUNvbmZpZy4ke2RlZi5uYW1lfS5mdW5jdGlvbkFybixgO1xuICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiBgJyR7ZGVmLmZ1bGxOYW1lfSc6IHByb3BzLnN0YXRlQ29uZmlnLiR7ZGVmLm5hbWV9LGA7XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
package/package.json CHANGED
@@ -93,7 +93,7 @@
93
93
  "publishConfig": {
94
94
  "access": "public"
95
95
  },
96
- "version": "2.11.23",
96
+ "version": "2.11.24",
97
97
  "jest": {
98
98
  "testMatch": [
99
99
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",