truemark-cdk-lib 0.0.36 → 0.0.37

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.
package/README.md CHANGED
@@ -4,10 +4,18 @@ This library provides common constructs and functionality to ease CDK developmen
4
4
 
5
5
  The main objectives of this project is to
6
6
 
7
- - Provide extended constructs that add additional functionality to existing CDK constructs
8
- - Provide standard constructs that are simple to use and adhere to best practices
9
- - Provide constructs for common use patterns
10
- - Reduce the amount of boilerplate coding required to work with CDK
7
+ - Provide extended constructs that add additional functionality to existing CDK constructs
8
+ - Provide standard constructs that are simple to use and adhere to best practices
9
+ - Provide constructs for commonly used patterns
10
+ - Reduce the amount of boilerplate coding required to work with CDK
11
+
12
+ ## Conventions
13
+
14
+ - **Standard** Constructs are simplified constructs meant for general use. They follow general best practices and have been given sane optimized defaults.
15
+ - **Extended** Constructs are extensions of Constructs in the standard CDK library which add functionality such as logging and monitoring.
16
+ - Other Constructs found in this library are crafted CDK constructs for specific common use cases which follow CDK's principle of composition over inheritance.
17
+
18
+ In general, you should use **Standard** over **Extended** constructs unless they do not fit your use case.
11
19
 
12
20
  ## Versioning
13
21
 
@@ -122,6 +122,10 @@ export interface FunctionAlarmsOptions extends AlarmsOptions<FunctionAlarmsCateg
122
122
  * @default true
123
123
  */
124
124
  readonly createAlarms?: boolean;
125
+ /**
126
+ * Name to use for alarm, default is construct ID.
127
+ */
128
+ readonly alarmFriendlyName?: string;
125
129
  /**
126
130
  * Generate dashboard charts for Lambda insights metrics.
127
131
  *
@@ -20,6 +20,7 @@ class FunctionAlarms extends aws_monitoring_1.AlarmsBase {
20
20
  addFunctionMonitoring() {
21
21
  var _a, _b, _c;
22
22
  this.monitoringFacade.monitorLambdaFunction({
23
+ alarmFriendlyName: this.props.alarmNamePrefix,
23
24
  lambdaFunction: this.props.function,
24
25
  addToAlarmDashboard: (_a = this.props.addToAlarmDashboard) !== null && _a !== void 0 ? _a : true,
25
26
  addToDetailDashboard: (_b = this.props.addToDetailDashboard) !== null && _b !== void 0 ? _b : true,
@@ -113,4 +114,4 @@ FunctionAlarms.BRACKET_WARNING_LOG_METRIC_PATTERN = '"[WARNING]"';
113
114
  */
114
115
  FunctionAlarms.DEFAULT_LOG_INSIGHTS_PATTERN = "ERROR|WARNING";
115
116
  FunctionAlarms.BRACKET_LOG_INSIGHTS_PATTERN = '\\\[ERROR\\\]|\\\[WARNING\\\]';
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnVuY3Rpb24tYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVlBLHlEQUFxRztBQUlyRyx5REFBb0Q7QUEwS3BEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsMkJBQThEO0lBZ0doRyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOztRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixVQUFJLEtBQUssQ0FBQyxZQUFZLG1DQUFJLElBQUksRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLDhCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsOEJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFwRk8scUJBQXFCOztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7WUFDMUMsY0FBYyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUTtZQUNuQyxtQkFBbUIsUUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUFtQixtQ0FBRSxJQUFJO1lBQ3pELG9CQUFvQixRQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsb0JBQW9CLG1DQUFFLElBQUk7WUFDM0QscUJBQXFCLFFBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsbUNBQUUsSUFBSTtZQUM3RCxrQkFBa0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFtQixZQUFZLEVBQUUsWUFBWSxDQUFDO1lBQy9FLGtCQUFrQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQW1CLFlBQVksRUFBRSxZQUFZLENBQUM7WUFDL0Usa0JB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QUMsUUFBUSxDQUFDLENBQUM7UUFDekMsTUFBTSxRQUFRLEdBQUcsUUFBUSxLQUFLLDhCQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBQyxJQUFJLENBQUMsZ0JBQWdCLDBDQUFFLEtBQUssQ0FBQyxDQUFDLE9BQUMsSUFBSSxDQUFDLGVBQWUsMENBQUUsS0FBSyxDQUFDO1FBQ2xILElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQ3ZCO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs7QUFqSEgsd0NBa0hDO0FBaEhDOztHQUVHO0FBQ2Esa0RBQW1DLEdBQUcsT0FBTyxDQUFDO0FBQzlDLCtDQUFnQyxHQUFHLFdBQVcsQ0FBQztBQUUvRDs7R0FFRztBQUNhLGlEQUFrQyxHQUFHLFNBQVMsQ0FBQztBQUMvQyxpREFBa0MsR0FBRyxhQUFhLENBQUM7QUFFbkU7O0dBRUc7QUFDYSwyQ0FBNEIsR0FBRyxlQUFlLENBQUM7QUFDL0MsMkNBQTRCLEdBQUcsK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0R1cmF0aW9ufSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7XG4gIER1cmF0aW9uVGhyZXNob2xkLFxuICBFcnJvckNvdW50VGhyZXNob2xkLFxuICBFcnJvclJhdGVUaHJlc2hvbGQsXG4gIEhpZ2hUcHNUaHJlc2hvbGQsXG4gIExhdGVuY3lUaHJlc2hvbGQsXG4gIExvd1Rwc1RocmVzaG9sZCxcbiAgTWF4QWdlVGhyZXNob2xkLFxuICBSdW5uaW5nVGFza0NvdW50VGhyZXNob2xkLFxuICBVc2FnZVRocmVzaG9sZFxufSBmcm9tIFwiY2RrLW1vbml0b3JpbmctY29uc3RydWN0c1wiO1xuaW1wb3J0IHtBbGFybUNhdGVnb3J5LCBBbGFybXNCYXNlLCBBbGFybXNDYXRlZ29yeU9wdGlvbnMsIEFsYXJtc09wdGlvbnN9IGZyb20gXCIuLi8uLi9hd3MtbW9uaXRvcmluZ1wiO1xuaW1wb3J0IHtJRnVuY3Rpb259IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQge0lMb2dHcm91cH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7TG9nTWV0cmljQWxhcm19IGZyb20gXCIuLi8uLi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHtBbGFybX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCI7XG5cbi8qKlxuICogQ2F0ZWdvcnkgb3B0aW9ucyBmb3IgQ2xvdWRXYXRjaCBhbGFybXMgZm9yIExhbWJkYSBGdW5jdGlvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BbGFybXNDYXRlZ29yeU9wdGlvbnMgZXh0ZW5kcyBBbGFybXNDYXRlZ29yeU9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIDUwdGggcGVyY2VudGlsZSBsYXRlbmN5XG4gICAqL1xuICByZWFkb25seSBwNTBMYXRlbmN5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIE1heGltdW0gOTB0aCBwZXJjZW50aWxlIGxhdGVuY3lcbiAgICovXG4gIHJlYWRvbmx5IHA5MExhdGVuY3k/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogTWF4aW11bSA5OXRoIHBlcmNlbnRpbGUgbGF0ZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgcDk5TGF0ZW5jeT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBmYXVsdHNcbiAgICpcbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgcmVhZG9ubHkgbWF4RmF1bHRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdmVyYWdlIG51bWJlciBvZiBmYXVsdHNcbiAgICovXG4gIHJlYWRvbmx5IGF2Z0ZhdWx0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWluaW11bSB0cmFuc2FjdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG1pblRwcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSB0cmFuc2FjdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IG1heFRwcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgdGhyb3R0bGVzXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IG1heFRocm90dGxlcz86IG51bWJlcjtcblxuICAvKipcbiAgICogQXZlcmFnZSBudW1iZXIgb2YgdGhyb3R0bGVzXG4gICAqL1xuICByZWFkb25seSBhdmdUaHJvdHRsZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gY29uY3VycmVudCBleGVjdXRpb25zXG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW50RXhlY3V0aW9ucz86IG51bWJlcjtcblxuICAvKipcbiAgICogQW1vdW50IG9mIHRpbWUgZGF0YSB3YWl0cyBiZWZvcmUgYmVpbmcgcHJvY2Vzc2VkIGJ5IHRoZSBmdW5jdGlvbi5cbiAgICogU2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vcHJlbWl1bXN1cHBvcnQva25vd2xlZGdlLWNlbnRlci9sYW1iZGEtaXRlcmF0b3ItYWdlL1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4SXRlcmF0b3JBZ2U/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYW1vdW50IG9mIENQVSB0aW1lXG4gICAqL1xuICByZWFkb25seSBtYXhDcHVUaW1lPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIDkwdGggcGVyY2VudGlsZSBDUFUgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgcDkwQ3B1VGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBBdmVyYWdlIENQVSB0aW1lXG4gICAqL1xuICByZWFkb25seSBhdmdDcHVUaW1lPzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYW1vdW50IG9mIG1lbW9yeVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4TWVtb3J5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiA5MHRoIHBlcmNlbnRpbGUgbWVtb3J5XG4gICAqL1xuICByZWFkb25seSBwOTBNZW1vcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF2ZXJhZ2UgbWVtb3J5XG4gICAqL1xuICByZWFkb25seSBhdmdNZW1vcnk/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIExvZyBwYXR0ZXJuIHRvIG1hdGNoIGZvciBtZXRyaWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnXFxcXFxcW0VSUk9SXFxcXFxcXSdcbiAgICovXG4gIHJlYWRvbmx5IG1ldHJpY0xvZ1BhdHRlcm4/OiBzdHJpbmdcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgbG9nIGV2ZW50cyBtYXRjaGluZyB0aGUgbWV0cmljTG9nUGF0dGVybi5cbiAgICpcbiAgICogQGRlZmF1bHQgMCBmb3IgQ3JpdGljYWwgQWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IG1heExvZ0NvdW50PzogbnVtYmVyXG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBldmFsdWF0aW9uIHBlcmlvZHMgb3ZlciB3aGljaCBkYXRhIGlzIGNvbXBhcmVkIGZvciBsb2cgZXZlbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAyXG4gICAqL1xuICByZWFkb25seSBsb2dFdmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZGF0YSBwb2ludHMgdGhhdCBtdXN0IGJlIGJyZWFjaGluZyB0byB0cmlnZ2VyIHRoZSBhbGFybSBmb3IgbG9nIGV2ZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nRGF0YVBvaW50c1RvQWxhcm0/OiBudW1iZXJcblxuICAvKipcbiAgICogTG9nIHBhdHRlcm4gdG8gbWF0Y2ggZm9yIHRoZSBkYXNoYm9hcmRcbiAgICpcbiAgICogQGRlZmF1bHQgJ1wiW0VSUk9SXVwiJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGFzaGJvYXJkTG9nUGF0dGVybj86IHN0cmluZ1xufVxuXG4vKipcbiAqIE9wdGlvbnMgZm9yIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBMYW1iZGEgRnVuY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BbGFybXNPcHRpb25zIGV4dGVuZHMgQWxhcm1zT3B0aW9uczxGdW5jdGlvbkFsYXJtc0NhdGVnb3J5T3B0aW9ucz4ge1xuXG4gIC8qKlxuICAgKiBGbGFnIHRvIGNyZWF0ZSBhbGFybXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNyZWF0ZUFsYXJtcz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGRhc2hib2FyZCBjaGFydHMgZm9yIExhbWJkYSBpbnNpZ2h0cyBtZXRyaWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEZ1bmN0aW9uQWxhcm1zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BbGFybXNQcm9wcyBleHRlbmRzIEZ1bmN0aW9uQWxhcm1zT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBvYnNlcnZlLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvblxuXG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIGF0dGFjaGVkIHRvIHRoZSBmdW5jdGlvbiB0byBiZSBvYnNlcnZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwOiBJTG9nR3JvdXBcbn1cblxuLyoqXG4gKiBDcmVhdGVzIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBhIExhbWJkYSBGdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uQWxhcm1zIGV4dGVuZHMgQWxhcm1zQmFzZTxGdW5jdGlvbkFsYXJtc0NhdGVnb3J5T3B0aW9ucywgRnVuY3Rpb25BbGFybXNQcm9wcz4ge1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHBhdHRlcm4gdXNlZCBmb3IgdGhlIGNyaXRpY2FsIGxvZyBtZXRyaWMuXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9DUklUSUNBTF9MT0dfTUVUUklDX1BBVFRFUk4gPSBcIkVSUk9SXCI7XG4gIHN0YXRpYyByZWFkb25seSBCUkFDS0VUX0VSUk9SX0xPR19NRVRSSUNfUEFUVEVSTiA9ICdcIltFUlJPUl1cIic7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcGF0dGVybiB1c2VkIGZvciB0aGUgd2FybmluZyBsb2cgbWV0cmljLlxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfV0FSTklOR19MT0dfTUVUUklDX1BBVFRFUk4gPSBcIldBUk5JTkdcIjtcbiAgc3RhdGljIHJlYWRvbmx5IEJSQUNLRVRfV0FSTklOR19MT0dfTUVUUklDX1BBVFRFUk4gPSAnXCJbV0FSTklOR11cIic7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcGF0dGVybiB1c2VkIHRvIHNob3cgbG9ncyBvbiB0aGUgQ2xvdWRXYXRjaCBkYXNoYm9hcmQuXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MT0dfSU5TSUdIVFNfUEFUVEVSTiA9IFwiRVJST1J8V0FSTklOR1wiO1xuICBzdGF0aWMgcmVhZG9ubHkgQlJBQ0tFVF9MT0dfSU5TSUdIVFNfUEFUVEVSTiA9ICdcXFxcXFxbRVJST1JcXFxcXFxdfFxcXFxcXFtXQVJOSU5HXFxcXFxcXSc7XG5cbiAgcHJpdmF0ZSBhZGRGdW5jdGlvbk1vbml0b3JpbmcoKSB7XG4gICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlLm1vbml0b3JMYW1iZGFGdW5jdGlvbih7XG4gICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5wcm9wcy5mdW5jdGlvbixcbiAgICAgIGFkZFRvQWxhcm1EYXNoYm9hcmQ6IHRoaXMucHJvcHMuYWRkVG9BbGFybURhc2hib2FyZD8/dHJ1ZSxcbiAgICAgIGFkZFRvRGV0YWlsRGFzaGJvYXJkOiB0aGlzLnByb3BzLmFkZFRvRGV0YWlsRGFzaGJvYXJkPz90cnVlLFxuICAgICAgYWRkVG9TdW1tYXJ5RGFzaGJvYXJkOiB0aGlzLnByb3BzLmFkZFRvU3VtbWFyeURhc2hib2FyZD8/dHJ1ZSxcbiAgICAgIGFkZExhdGVuY3lQNTBBbGFybTogdGhpcy50b1JlY29yZDxMYXRlbmN5VGhyZXNob2xkPihcInA1MExhdGVuY3lcIiwgXCJtYXhMYXRlbmN5XCIpLFxuICAgICAgYWRkTGF0ZW5jeVA5MEFsYXJtOiB0aGlzLnRvUmVjb3JkPExhdGVuY3lUaHJlc2hvbGQ+KFwicDkwTGF0ZW5jeVwiLCBcIm1heExhdGVuY3lcIiksXG4gICAgICBhZGRMYXRlbmN5UDk5QWxhcm06IHRoaXMudG9SZWNvcmQ8TGF0ZW5jeVRocmVzaG9sZD4oXCJwOTlMYXRlbmN5XCIsIFwibWF4TGF0ZW5jeVwiKSxcbiAgICAgIGFkZEZhdWx0Q291bnRBbGFybTogdGhpcy50b1JlY29yZDxFcnJvckNvdW50VGhyZXNob2xkPihcIm1heEZhdWx0c1wiLCBcIm1heEVycm9yQ291bnRcIiwgMCksXG4gICAgICBhZGRGYXVsdFJhdGVBbGFybTogdGhpcy50b1JlY29yZDxFcnJvclJhdGVUaHJlc2hvbGQ+KFwiYXZnRmF1bHRzXCIsIFwibWF4RXJyb3JSYXRlXCIpLFxuICAgICAgYWRkTG93VHBzQWxhcm06IHRoaXMudG9SZWNvcmQ8TG93VHBzVGhyZXNob2xkPihcIm1pblRwc1wiLCBcIm1pblRwc1wiKSxcbiAgICAgIGFkZEhpZ2hUcHNBbGFybTogdGhpcy50b1JlY29yZDxIaWdoVHBzVGhyZXNob2xkPihcIm1heFRwc1wiLCBcIm1heFRwc1wiKSxcbiAgICAgIGFkZFRocm90dGxlc0NvdW50QWxhcm06IHRoaXMudG9SZWNvcmQ8RXJyb3JDb3VudFRocmVzaG9sZD4oXCJtYXhUaHJvdHRsZXNcIiwgXCJtYXhFcnJvckNvdW50XCIsIDApLFxuICAgICAgYWRkVGhyb3R0bGVzUmF0ZUFsYXJtOiB0aGlzLnRvUmVjb3JkPEVycm9yUmF0ZVRocmVzaG9sZD4oXCJhdmdUaHJvdHRsZXNcIiwgXCJtYXhFcnJvclJhdGVcIiksXG4gICAgICBhZGRDb25jdXJyZW50RXhlY3V0aW9uc0NvdW50QWxhcm06IHRoaXMudG9SZWNvcmQ8UnVubmluZ1Rhc2tDb3VudFRocmVzaG9sZD4oXCJtYXhDb25jdXJyZW50RXhlY3V0aW9uc1wiLCBcIm1heFJ1bm5pbmdUYXNrc1wiKSxcbiAgICAgIGFkZE1heEl0ZXJhdG9yQWdlQWxhcm06IHRoaXMudG9SZWNvcmQ8TWF4QWdlVGhyZXNob2xkPihcIm1heEl0ZXJhdG9yQWdlXCIsIFwibWF4QWdlSW5NaWxsaXNcIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdNYXhDcHVUb3RhbFRpbWVBbGFybTogdGhpcy50b1JlY29yZDxEdXJhdGlvblRocmVzaG9sZD4oXCJtYXhDcHVUaW1lXCIsIFwibWF4RHVyYXRpb25cIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdQOTBDcHVUb3RhbFRpbWVBbGFybTogdGhpcy50b1JlY29yZDxEdXJhdGlvblRocmVzaG9sZD4oXCJwOTBDcHVUaW1lXCIsIFwibWF4RHVyYXRpb25cIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdBdmdDcHVUb3RhbFRpbWVBbGFybTogdGhpcy50b1JlY29yZDxEdXJhdGlvblRocmVzaG9sZD4oXCJhdmdDcHVUaW1lXCIsIFwibWF4RHVyYXRpb25cIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdNYXhNZW1vcnlVdGlsaXphdGlvbkFsYXJtOiB0aGlzLnRvUmVjb3JkPFVzYWdlVGhyZXNob2xkPihcIm1heE1lbW9yeVwiLCBcIm1heFVzYWdlUGVyY2VudFwiKSxcbiAgICAgIGFkZEVuaGFuY2VkTW9uaXRvcmluZ1A5ME1lbW9yeVV0aWxpemF0aW9uQWxhcm06IHRoaXMudG9SZWNvcmQ8VXNhZ2VUaHJlc2hvbGQ+KFwicDkwTWVtb3J5XCIsIFwibWF4VXNhZ2VQZXJjZW50XCIpLFxuICAgICAgYWRkRW5oYW5jZWRNb25pdG9yaW5nQXZnTWVtb3J5VXRpbGl6YXRpb25BbGFybTogdGhpcy50b1JlY29yZDxVc2FnZVRocmVzaG9sZD4oXCJhdmdNZW1vcnlcIiwgXCJtYXhVc2FnZVBlcmNlbnRcIilcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRPRE8gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGEgd2F5IHRvIGV4dGVuZCBtb25pdG9yaW5nRmFjYWRlIHRvIHN1cHBvcnQgY3JlYXRpbmcgdGhlc2UgYWxhcm1zLiBNYXliZSBleHRlbmQgTW9ub3RvcmluZ0ZhY2FkZS5tb25pdG9yTG9nKClcblxuICBwcml2YXRlIGNyaXRpY2FsTG9nQWxhcm06IExvZ01ldHJpY0FsYXJtIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHdhcm5pbmdMb2dBbGFybTogTG9nTWV0cmljQWxhcm0gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBhZGRMb2dBbGFybShjYXRlZ29yeTogQWxhcm1DYXRlZ29yeSwgZGVmYXVsdFRocmVzaG9sZD86IG51bWJlcikge1xuICAgIGNvbnN0IGZwcm9wcyA9IGNhdGVnb3J5ID09PSBBbGFybUNhdGVnb3J5LkNyaXRpY2FsID8gdGhpcy5wcm9wcy5jcml0aWNhbEFsYXJtT3B0aW9ucyA6IHRoaXMucHJvcHMud2FybmluZ0FsYXJtT3B0aW9ucztcbiAgICBjb25zdCB0aHJlc2hvbGQgPSBmcHJvcHM/Lm1heExvZ0NvdW50Pz9kZWZhdWx0VGhyZXNob2xkXG4gICAgY29uc3QgcGF0dGVybiA9IGZwcm9wcz8ubWV0cmljTG9nUGF0dGVybj8/XG4gICAgY2F0ZWdvcnkgPT09IEFsYXJtQ2F0ZWdvcnkuQ3JpdGljYWxcbiAgICAgID8gRnVuY3Rpb25BbGFybXMuREVGQVVMVF9DUklUSUNBTF9MT0dfTUVUUklDX1BBVFRFUk5cbiAgICAgIDogRnVuY3Rpb25BbGFybXMuREVGQVVMVF9XQVJOSU5HX0xPR19NRVRSSUNfUEFUVEVSTjtcbiAgICBjb25zdCBldmFsdWF0aW9uUGVyaW9kcyA9IGZwcm9wcz8ubG9nRXZhbHVhdGlvblBlcmlvZHM/PzJcbiAgICBjb25zdCBkYXRhcG9pbnRzVG9BbGFybSA9IGZwcm9wcz8ubG9nRGF0YVBvaW50c1RvQWxhcm0/PzFcbiAgICBpZiAodGhyZXNob2xkICE9PSB1bmRlZmluZWQgJiYgdGhyZXNob2xkID4gMCkge1xuICAgICAgY29uc3QgbG9nQWxhcm0gPSBuZXcgTG9nTWV0cmljQWxhcm0odGhpcywgY2F0ZWdvcnkgKyBcIkxvZ0NvdW50XCIsIHtcbiAgICAgICAgbG9nR3JvdXA6IHRoaXMucHJvcHMubG9nR3JvdXAsXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIHRocmVzaG9sZCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgIGRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICBtZXRyaWNOYW1lOiBjYXRlZ29yeSArIFwiTG9nQ291bnRcIixcbiAgICAgIH0pO1xuICAgICAgaWYgKGNhdGVnb3J5ID09PSBBbGFybUNhdGVnb3J5LkNyaXRpY2FsKSB7XG4gICAgICAgIHRoaXMuY3JpdGljYWxMb2dBbGFybSA9IGxvZ0FsYXJtO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53YXJuaW5nTG9nQWxhcm0gPSBsb2dBbGFybTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZExvZ01vbml0b3JpbmdUb0Rhc2hib2FyZCgpIHtcbiAgICBsZXQgcGF0dGVybiA9IEZ1bmN0aW9uQWxhcm1zLkRFRkFVTFRfTE9HX0lOU0lHSFRTX1BBVFRFUk47XG4gICAgaWYgKHRoaXMucHJvcHMuY3JpdGljYWxBbGFybU9wdGlvbnM/LmRhc2hib2FyZExvZ1BhdHRlcm4gIT09IHVuZGVmaW5lZCB8fCB0aGlzLnByb3BzLndhcm5pbmdBbGFybU9wdGlvbnM/LmRhc2hib2FyZExvZ1BhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGF0dGVybiA9IFwiXCJcbiAgICAgIGlmICh0aGlzLnByb3BzLmNyaXRpY2FsQWxhcm1PcHRpb25zPy5kYXNoYm9hcmRMb2dQYXR0ZXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcGF0dGVybiA9IHRoaXMucHJvcHMuY3JpdGljYWxBbGFybU9wdGlvbnMuZGFzaGJvYXJkTG9nUGF0dGVyblxuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMud2FybmluZ0FsYXJtT3B0aW9ucz8uZGFzaGJvYXJkTG9nUGF0dGVybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuICsgKHBhdHRlcm4gIT09IFwiXCIgPyBcInxcIiA6IFwiXCIpICsgdGhpcy5wcm9wcy53YXJuaW5nQWxhcm1PcHRpb25zLmRhc2hib2FyZExvZ1BhdHRlcm47XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwYXR0ZXJuICE9PSBcIlwiKSB7XG4gICAgICB0aGlzLm1vbml0b3JpbmdGYWNhZGUubW9uaXRvckxvZyh7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogdGhpcy5wcm9wcy5sb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRnVuY3Rpb25BbGFybXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGlmIChwcm9wcy5jcmVhdGVBbGFybXMgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5hZGRGdW5jdGlvbk1vbml0b3JpbmcoKTtcbiAgICAgIHRoaXMuYWRkTG9nTW9uaXRvcmluZ1RvRGFzaGJvYXJkKCk7XG4gICAgICB0aGlzLmFkZExvZ0FsYXJtKEFsYXJtQ2F0ZWdvcnkuQ3JpdGljYWwsIDEpO1xuICAgICAgdGhpcy5hZGRMb2dBbGFybShBbGFybUNhdGVnb3J5Lldhcm5pbmcpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFsYXJtcyhjYXRlZ29yeTogQWxhcm1DYXRlZ29yeSk6IEFsYXJtW10ge1xuICAgIGNvbnN0IGFsYXJtcyA9IHN1cGVyLmdldEFsYXJtcyhjYXRlZ29yeSk7XG4gICAgY29uc3QgbG9nQWxhcm0gPSBjYXRlZ29yeSA9PT0gQWxhcm1DYXRlZ29yeS5Dcml0aWNhbCA/IHRoaXMuY3JpdGljYWxMb2dBbGFybT8uYWxhcm0gOiB0aGlzLndhcm5pbmdMb2dBbGFybT8uYWxhcm07XG4gICAgaWYgKGxvZ0FsYXJtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFsYXJtcy5wdXNoKGxvZ0FsYXJtKTtcbiAgICB9XG4gICAgcmV0dXJuIGFsYXJtcztcbiAgfVxufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZnVuY3Rpb24tYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVlBLHlEQUFxRztBQUlyRyx5REFBb0Q7QUErS3BEOztHQUVHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsMkJBQThEO0lBaUdoRyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOztRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN4QixVQUFJLEtBQUssQ0FBQyxZQUFZLG1DQUFJLElBQUksRUFBRTtZQUM5QixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsV0FBVyxDQUFDLDhCQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzVDLElBQUksQ0FBQyxXQUFXLENBQUMsOEJBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFyRk8scUJBQXFCOztRQUMzQixJQUFJLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7WUFDMUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlO1lBQzdDLGNBQWMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVE7WUFDbkMsbUJBQW1CLFFBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsbUNBQUUsSUFBSTtZQUN6RCxvQkFBb0IsUUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG9CQUFvQixtQ0FBRSxJQUFJO1lBQzNELHFCQUFxQixRQUFFLElBQUksQ0FBQyxLQUFLLENBQUMscUJBQXFCLG1DQUFFLElBQUk7WUFDN0Qsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBbUIsWUFBWSxFQUFFLFlBQVksQ0FBQztZQUMvRSxrQkFBa0IsRUFBRSxJQUFJLENB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QXVCOztRQUMvQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pDLE1BQU0sUUFBUSxHQUFHLFFBQVEsS0FBSyw4QkFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQUMsSUFBSSxDQUFDLGdCQUFnQiwwQ0FBRSxLQUFLLENBQUMsQ0FBQyxPQUFDLElBQUksQ0FBQyxlQUFlLDBDQUFFLEtBQUssQ0FBQztRQUNsSCxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN2QjtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7O0FBbEhILHdDQW1IQztBQWpIQzs7R0FFRztBQUNhLGtEQUFtQyxHQUFHLE9BQU8sQ0FBQztBQUM5QywrQ0FBZ0MsR0FBRyxXQUFXLENBQUM7QUFFL0Q7O0dBRUc7QUFDYSxpREFBa0MsR0FBRyxTQUFTLENBQUM7QUFDL0MsaURBQWtDLEdBQUcsYUFBYSxDQUFDO0FBRW5FOztHQUVHO0FBQ2EsMkNBQTRCLEdBQUcsZUFBZSxDQUFDO0FBQy9DLDJDQUE0QixHQUFHLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBEdXJhdGlvblRocmVzaG9sZCxcbiAgRXJyb3JDb3VudFRocmVzaG9sZCxcbiAgRXJyb3JSYXRlVGhyZXNob2xkLFxuICBIaWdoVHBzVGhyZXNob2xkLFxuICBMYXRlbmN5VGhyZXNob2xkLFxuICBMb3dUcHNUaHJlc2hvbGQsXG4gIE1heEFnZVRocmVzaG9sZCxcbiAgUnVubmluZ1Rhc2tDb3VudFRocmVzaG9sZCxcbiAgVXNhZ2VUaHJlc2hvbGRcbn0gZnJvbSBcImNkay1tb25pdG9yaW5nLWNvbnN0cnVjdHNcIjtcbmltcG9ydCB7QWxhcm1DYXRlZ29yeSwgQWxhcm1zQmFzZSwgQWxhcm1zQ2F0ZWdvcnlPcHRpb25zLCBBbGFybXNPcHRpb25zfSBmcm9tIFwiLi4vLi4vYXdzLW1vbml0b3JpbmdcIjtcbmltcG9ydCB7SUZ1bmN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtJTG9nR3JvdXB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0xvZ01ldHJpY0FsYXJtfSBmcm9tIFwiLi4vLi4vYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7QWxhcm19IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuXG4vKipcbiAqIENhdGVnb3J5IG9wdGlvbnMgZm9yIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBMYW1iZGEgRnVuY3Rpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQWxhcm1zQ2F0ZWdvcnlPcHRpb25zIGV4dGVuZHMgQWxhcm1zQ2F0ZWdvcnlPcHRpb25zIHtcblxuICAvKipcbiAgICogTWF4aW11bSA1MHRoIHBlcmNlbnRpbGUgbGF0ZW5jeVxuICAgKi9cbiAgcmVhZG9ubHkgcDUwTGF0ZW5jeT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIDkwdGggcGVyY2VudGlsZSBsYXRlbmN5XG4gICAqL1xuICByZWFkb25seSBwOTBMYXRlbmN5PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIE1heGltdW0gOTl0aCBwZXJjZW50aWxlIGxhdGVuY3lcbiAgICovXG4gIHJlYWRvbmx5IHA5OUxhdGVuY3k/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgZmF1bHRzXG4gICAqXG4gICAqIEBkZWZhdWx0IDBcbiAgICovXG4gIHJlYWRvbmx5IG1heEZhdWx0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogQXZlcmFnZSBudW1iZXIgb2YgZmF1bHRzXG4gICAqL1xuICByZWFkb25seSBhdmdGYXVsdHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gdHJhbnNhY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBtaW5UcHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gdHJhbnNhY3Rpb25zXG4gICAqL1xuICByZWFkb25seSBtYXhUcHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHRocm90dGxlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICByZWFkb25seSBtYXhUaHJvdHRsZXM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEF2ZXJhZ2UgbnVtYmVyIG9mIHRocm90dGxlc1xuICAgKi9cbiAgcmVhZG9ubHkgYXZnVGhyb3R0bGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGNvbmN1cnJlbnQgZXhlY3V0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q29uY3VycmVudEV4ZWN1dGlvbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEFtb3VudCBvZiB0aW1lIGRhdGEgd2FpdHMgYmVmb3JlIGJlaW5nIHByb2Nlc3NlZCBieSB0aGUgZnVuY3Rpb24uXG4gICAqIFNlZSBodHRwczovL2F3cy5hbWF6b24uY29tL3ByZW1pdW1zdXBwb3J0L2tub3dsZWRnZS1jZW50ZXIvbGFtYmRhLWl0ZXJhdG9yLWFnZS9cbiAgICovXG4gIHJlYWRvbmx5IG1heEl0ZXJhdG9yQWdlPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGFtb3VudCBvZiBDUFUgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q3B1VGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiA5MHRoIHBlcmNlbnRpbGUgQ1BVIHRpbWVcbiAgICovXG4gIHJlYWRvbmx5IHA5MENwdVRpbWU/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogQXZlcmFnZSBDUFUgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgYXZnQ3B1VGltZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIGFtb3VudCBvZiBtZW1vcnlcbiAgICovXG4gIHJlYWRvbmx5IG1heE1lbW9yeT86IG51bWJlcjtcblxuICAvKipcbiAgICogOTB0aCBwZXJjZW50aWxlIG1lbW9yeVxuICAgKi9cbiAgcmVhZG9ubHkgcDkwTWVtb3J5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBBdmVyYWdlIG1lbW9yeVxuICAgKi9cbiAgcmVhZG9ubHkgYXZnTWVtb3J5PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBMb2cgcGF0dGVybiB0byBtYXRjaCBmb3IgbWV0cmljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ1xcXFxcXFtFUlJPUlxcXFxcXF0nXG4gICAqL1xuICByZWFkb25seSBtZXRyaWNMb2dQYXR0ZXJuPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGxvZyBldmVudHMgbWF0Y2hpbmcgdGhlIG1ldHJpY0xvZ1BhdHRlcm4uXG4gICAqXG4gICAqIEBkZWZhdWx0IDAgZm9yIENyaXRpY2FsIEFsYXJtXG4gICAqL1xuICByZWFkb25seSBtYXhMb2dDb3VudD86IG51bWJlclxuXG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgZXZhbHVhdGlvbiBwZXJpb2RzIG92ZXIgd2hpY2ggZGF0YSBpcyBjb21wYXJlZCBmb3IgbG9nIGV2ZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgMlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nRXZhbHVhdGlvblBlcmlvZHM/OiBudW1iZXJcblxuICAvKipcbiAgICogTnVtYmVyIG9mIGRhdGEgcG9pbnRzIHRoYXQgbXVzdCBiZSBicmVhY2hpbmcgdG8gdHJpZ2dlciB0aGUgYWxhcm0gZm9yIGxvZyBldmVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0RhdGFQb2ludHNUb0FsYXJtPzogbnVtYmVyXG5cbiAgLyoqXG4gICAqIExvZyBwYXR0ZXJuIHRvIG1hdGNoIGZvciB0aGUgZGFzaGJvYXJkXG4gICAqXG4gICAqIEBkZWZhdWx0ICdcIltFUlJPUl1cIidcbiAgICovXG4gIHJlYWRvbmx5IGRhc2hib2FyZExvZ1BhdHRlcm4/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBDbG91ZFdhdGNoIGFsYXJtcyBmb3IgTGFtYmRhIEZ1bmN0aW9uc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uQWxhcm1zT3B0aW9ucyBleHRlbmRzIEFsYXJtc09wdGlvbnM8RnVuY3Rpb25BbGFybXNDYXRlZ29yeU9wdGlvbnM+IHtcblxuICAvKipcbiAgICogRmxhZyB0byBjcmVhdGUgYWxhcm1zLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBbGFybXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBOYW1lIHRvIHVzZSBmb3IgYWxhcm0sIGRlZmF1bHQgaXMgY29uc3RydWN0IElELlxuICAgKi9cbiAgcmVhZG9ubHkgYWxhcm1GcmllbmRseU5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIGRhc2hib2FyZCBjaGFydHMgZm9yIExhbWJkYSBpbnNpZ2h0cyBtZXRyaWNzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsYW1iZGFJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEZ1bmN0aW9uQWxhcm1zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25BbGFybXNQcm9wcyBleHRlbmRzIEZ1bmN0aW9uQWxhcm1zT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbiB0byBvYnNlcnZlLlxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb246IElGdW5jdGlvblxuXG4gIC8qKlxuICAgKiBUaGUgbG9nIGdyb3VwIGF0dGFjaGVkIHRvIHRoZSBmdW5jdGlvbiB0byBiZSBvYnNlcnZlZC5cbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3VwOiBJTG9nR3JvdXBcbn1cblxuLyoqXG4gKiBDcmVhdGVzIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBhIExhbWJkYSBGdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uQWxhcm1zIGV4dGVuZHMgQWxhcm1zQmFzZTxGdW5jdGlvbkFsYXJtc0NhdGVnb3J5T3B0aW9ucywgRnVuY3Rpb25BbGFybXNQcm9wcz4ge1xuXG4gIC8qKlxuICAgKiBEZWZhdWx0IHBhdHRlcm4gdXNlZCBmb3IgdGhlIGNyaXRpY2FsIGxvZyBtZXRyaWMuXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9DUklUSUNBTF9MT0dfTUVUUklDX1BBVFRFUk4gPSBcIkVSUk9SXCI7XG4gIHN0YXRpYyByZWFkb25seSBCUkFDS0VUX0VSUk9SX0xPR19NRVRSSUNfUEFUVEVSTiA9ICdcIltFUlJPUl1cIic7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcGF0dGVybiB1c2VkIGZvciB0aGUgd2FybmluZyBsb2cgbWV0cmljLlxuICAgKi9cbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfV0FSTklOR19MT0dfTUVUUklDX1BBVFRFUk4gPSBcIldBUk5JTkdcIjtcbiAgc3RhdGljIHJlYWRvbmx5IEJSQUNLRVRfV0FSTklOR19MT0dfTUVUUklDX1BBVFRFUk4gPSAnXCJbV0FSTklOR11cIic7XG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcGF0dGVybiB1c2VkIHRvIHNob3cgbG9ncyBvbiB0aGUgQ2xvdWRXYXRjaCBkYXNoYm9hcmQuXG4gICAqL1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9MT0dfSU5TSUdIVFNfUEFUVEVSTiA9IFwiRVJST1J8V0FSTklOR1wiO1xuICBzdGF0aWMgcmVhZG9ubHkgQlJBQ0tFVF9MT0dfSU5TSUdIVFNfUEFUVEVSTiA9ICdcXFxcXFxbRVJST1JcXFxcXFxdfFxcXFxcXFtXQVJOSU5HXFxcXFxcXSc7XG5cbiAgcHJpdmF0ZSBhZGRGdW5jdGlvbk1vbml0b3JpbmcoKSB7XG4gICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlLm1vbml0b3JMYW1iZGFGdW5jdGlvbih7XG4gICAgICBhbGFybUZyaWVuZGx5TmFtZTogdGhpcy5wcm9wcy5hbGFybU5hbWVQcmVmaXgsXG4gICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5wcm9wcy5mdW5jdGlvbixcbiAgICAgIGFkZFRvQWxhcm1EYXNoYm9hcmQ6IHRoaXMucHJvcHMuYWRkVG9BbGFybURhc2hib2FyZD8/dHJ1ZSxcbiAgICAgIGFkZFRvRGV0YWlsRGFzaGJvYXJkOiB0aGlzLnByb3BzLmFkZFRvRGV0YWlsRGFzaGJvYXJkPz90cnVlLFxuICAgICAgYWRkVG9TdW1tYXJ5RGFzaGJvYXJkOiB0aGlzLnByb3BzLmFkZFRvU3VtbWFyeURhc2hib2FyZD8/dHJ1ZSxcbiAgICAgIGFkZExhdGVuY3lQNTBBbGFybTogdGhpcy50b1JlY29yZDxMYXRlbmN5VGhyZXNob2xkPihcInA1MExhdGVuY3lcIiwgXCJtYXhMYXRlbmN5XCIpLFxuICAgICAgYWRkTGF0ZW5jeVA5MEFsYXJtOiB0aGlzLnRvUmVjb3JkPExhdGVuY3lUaHJlc2hvbGQ+KFwicDkwTGF0ZW5jeVwiLCBcIm1heExhdGVuY3lcIiksXG4gICAgICBhZGRMYXRlbmN5UDk5QWxhcm06IHRoaXMudG9SZWNvcmQ8TGF0ZW5jeVRocmVzaG9sZD4oXCJwOTlMYXRlbmN5XCIsIFwibWF4TGF0ZW5jeVwiKSxcbiAgICAgIGFkZEZhdWx0Q291bnRBbGFybTogdGhpcy50b1JlY29yZDxFcnJvckNvdW50VGhyZXNob2xkPihcIm1heEZhdWx0c1wiLCBcIm1heEVycm9yQ291bnRcIiwgMCksXG4gICAgICBhZGRGYXVsdFJhdGVBbGFybTogdGhpcy50b1JlY29yZDxFcnJvclJhdGVUaHJlc2hvbGQ+KFwiYXZnRmF1bHRzXCIsIFwibWF4RXJyb3JSYXRlXCIpLFxuICAgICAgYWRkTG93VHBzQWxhcm06IHRoaXMudG9SZWNvcmQ8TG93VHBzVGhyZXNob2xkPihcIm1pblRwc1wiLCBcIm1pblRwc1wiKSxcbiAgICAgIGFkZEhpZ2hUcHNBbGFybTogdGhpcy50b1JlY29yZDxIaWdoVHBzVGhyZXNob2xkPihcIm1heFRwc1wiLCBcIm1heFRwc1wiKSxcbiAgICAgIGFkZFRocm90dGxlc0NvdW50QWxhcm06IHRoaXMudG9SZWNvcmQ8RXJyb3JDb3VudFRocmVzaG9sZD4oXCJtYXhUaHJvdHRsZXNcIiwgXCJtYXhFcnJvckNvdW50XCIsIDApLFxuICAgICAgYWRkVGhyb3R0bGVzUmF0ZUFsYXJtOiB0aGlzLnRvUmVjb3JkPEVycm9yUmF0ZVRocmVzaG9sZD4oXCJhdmdUaHJvdHRsZXNcIiwgXCJtYXhFcnJvclJhdGVcIiksXG4gICAgICBhZGRDb25jdXJyZW50RXhlY3V0aW9uc0NvdW50QWxhcm06IHRoaXMudG9SZWNvcmQ8UnVubmluZ1Rhc2tDb3VudFRocmVzaG9sZD4oXCJtYXhDb25jdXJyZW50RXhlY3V0aW9uc1wiLCBcIm1heFJ1bm5pbmdUYXNrc1wiKSxcbiAgICAgIGFkZE1heEl0ZXJhdG9yQWdlQWxhcm06IHRoaXMudG9SZWNvcmQ8TWF4QWdlVGhyZXNob2xkPihcIm1heEl0ZXJhdG9yQWdlXCIsIFwibWF4QWdlSW5NaWxsaXNcIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdNYXhDcHVUb3RhbFRpbWVBbGFybTogdGhpcy50b1JlY29yZDxEdXJhdGlvblRocmVzaG9sZD4oXCJtYXhDcHVUaW1lXCIsIFwibWF4RHVyYXRpb25cIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdQOTBDcHVUb3RhbFRpbWVBbGFybTogdGhpcy50b1JlY29yZDxEdXJhdGlvblRocmVzaG9sZD4oXCJwOTBDcHVUaW1lXCIsIFwibWF4RHVyYXRpb25cIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdBdmdDcHVUb3RhbFRpbWVBbGFybTogdGhpcy50b1JlY29yZDxEdXJhdGlvblRocmVzaG9sZD4oXCJhdmdDcHVUaW1lXCIsIFwibWF4RHVyYXRpb25cIiksXG4gICAgICBhZGRFbmhhbmNlZE1vbml0b3JpbmdNYXhNZW1vcnlVdGlsaXphdGlvbkFsYXJtOiB0aGlzLnRvUmVjb3JkPFVzYWdlVGhyZXNob2xkPihcIm1heE1lbW9yeVwiLCBcIm1heFVzYWdlUGVyY2VudFwiKSxcbiAgICAgIGFkZEVuaGFuY2VkTW9uaXRvcmluZ1A5ME1lbW9yeVV0aWxpemF0aW9uQWxhcm06IHRoaXMudG9SZWNvcmQ8VXNhZ2VUaHJlc2hvbGQ+KFwicDkwTWVtb3J5XCIsIFwibWF4VXNhZ2VQZXJjZW50XCIpLFxuICAgICAgYWRkRW5oYW5jZWRNb25pdG9yaW5nQXZnTWVtb3J5VXRpbGl6YXRpb25BbGFybTogdGhpcy50b1JlY29yZDxVc2FnZVRocmVzaG9sZD4oXCJhdmdNZW1vcnlcIiwgXCJtYXhVc2FnZVBlcmNlbnRcIilcbiAgICB9KTtcbiAgfVxuXG4gIC8vIFRPRE8gV2UgbmVlZCB0byBmaWd1cmUgb3V0IGEgd2F5IHRvIGV4dGVuZCBtb25pdG9yaW5nRmFjYWRlIHRvIHN1cHBvcnQgY3JlYXRpbmcgdGhlc2UgYWxhcm1zLiBNYXliZSBleHRlbmQgTW9ub3RvcmluZ0ZhY2FkZS5tb25pdG9yTG9nKClcblxuICBwcml2YXRlIGNyaXRpY2FsTG9nQWxhcm06IExvZ01ldHJpY0FsYXJtIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHdhcm5pbmdMb2dBbGFybTogTG9nTWV0cmljQWxhcm0gfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBhZGRMb2dBbGFybShjYXRlZ29yeTogQWxhcm1DYXRlZ29yeSwgZGVmYXVsdFRocmVzaG9sZD86IG51bWJlcikge1xuICAgIGNvbnN0IGZwcm9wcyA9IGNhdGVnb3J5ID09PSBBbGFybUNhdGVnb3J5LkNyaXRpY2FsID8gdGhpcy5wcm9wcy5jcml0aWNhbEFsYXJtT3B0aW9ucyA6IHRoaXMucHJvcHMud2FybmluZ0FsYXJtT3B0aW9ucztcbiAgICBjb25zdCB0aHJlc2hvbGQgPSBmcHJvcHM/Lm1heExvZ0NvdW50Pz9kZWZhdWx0VGhyZXNob2xkXG4gICAgY29uc3QgcGF0dGVybiA9IGZwcm9wcz8ubWV0cmljTG9nUGF0dGVybj8/XG4gICAgY2F0ZWdvcnkgPT09IEFsYXJtQ2F0ZWdvcnkuQ3JpdGljYWxcbiAgICAgID8gRnVuY3Rpb25BbGFybXMuREVGQVVMVF9DUklUSUNBTF9MT0dfTUVUUklDX1BBVFRFUk5cbiAgICAgIDogRnVuY3Rpb25BbGFybXMuREVGQVVMVF9XQVJOSU5HX0xPR19NRVRSSUNfUEFUVEVSTjtcbiAgICBjb25zdCBldmFsdWF0aW9uUGVyaW9kcyA9IGZwcm9wcz8ubG9nRXZhbHVhdGlvblBlcmlvZHM/PzJcbiAgICBjb25zdCBkYXRhcG9pbnRzVG9BbGFybSA9IGZwcm9wcz8ubG9nRGF0YVBvaW50c1RvQWxhcm0/PzFcbiAgICBpZiAodGhyZXNob2xkICE9PSB1bmRlZmluZWQgJiYgdGhyZXNob2xkID4gMCkge1xuICAgICAgY29uc3QgbG9nQWxhcm0gPSBuZXcgTG9nTWV0cmljQWxhcm0odGhpcywgY2F0ZWdvcnkgKyBcIkxvZ0NvdW50XCIsIHtcbiAgICAgICAgbG9nR3JvdXA6IHRoaXMucHJvcHMubG9nR3JvdXAsXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICAgIHRocmVzaG9sZCxcbiAgICAgICAgZXZhbHVhdGlvblBlcmlvZHMsXG4gICAgICAgIGRhdGFwb2ludHNUb0FsYXJtLFxuICAgICAgICBtZXRyaWNOYW1lOiBjYXRlZ29yeSArIFwiTG9nQ291bnRcIixcbiAgICAgIH0pO1xuICAgICAgaWYgKGNhdGVnb3J5ID09PSBBbGFybUNhdGVnb3J5LkNyaXRpY2FsKSB7XG4gICAgICAgIHRoaXMuY3JpdGljYWxMb2dBbGFybSA9IGxvZ0FsYXJtO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy53YXJuaW5nTG9nQWxhcm0gPSBsb2dBbGFybTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZExvZ01vbml0b3JpbmdUb0Rhc2hib2FyZCgpIHtcbiAgICBsZXQgcGF0dGVybiA9IEZ1bmN0aW9uQWxhcm1zLkRFRkFVTFRfTE9HX0lOU0lHSFRTX1BBVFRFUk47XG4gICAgaWYgKHRoaXMucHJvcHMuY3JpdGljYWxBbGFybU9wdGlvbnM/LmRhc2hib2FyZExvZ1BhdHRlcm4gIT09IHVuZGVmaW5lZCB8fCB0aGlzLnByb3BzLndhcm5pbmdBbGFybU9wdGlvbnM/LmRhc2hib2FyZExvZ1BhdHRlcm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgcGF0dGVybiA9IFwiXCJcbiAgICAgIGlmICh0aGlzLnByb3BzLmNyaXRpY2FsQWxhcm1PcHRpb25zPy5kYXNoYm9hcmRMb2dQYXR0ZXJuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcGF0dGVybiA9IHRoaXMucHJvcHMuY3JpdGljYWxBbGFybU9wdGlvbnMuZGFzaGJvYXJkTG9nUGF0dGVyblxuICAgICAgfVxuICAgICAgaWYgKHRoaXMucHJvcHMud2FybmluZ0FsYXJtT3B0aW9ucz8uZGFzaGJvYXJkTG9nUGF0dGVybiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHBhdHRlcm4gPSBwYXR0ZXJuICsgKHBhdHRlcm4gIT09IFwiXCIgPyBcInxcIiA6IFwiXCIpICsgdGhpcy5wcm9wcy53YXJuaW5nQWxhcm1PcHRpb25zLmRhc2hib2FyZExvZ1BhdHRlcm47XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwYXR0ZXJuICE9PSBcIlwiKSB7XG4gICAgICB0aGlzLm1vbml0b3JpbmdGYWNhZGUubW9uaXRvckxvZyh7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogdGhpcy5wcm9wcy5sb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgICAgIHBhdHRlcm4sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRnVuY3Rpb25BbGFybXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGlmIChwcm9wcy5jcmVhdGVBbGFybXMgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5hZGRGdW5jdGlvbk1vbml0b3JpbmcoKTtcbiAgICAgIHRoaXMuYWRkTG9nTW9uaXRvcmluZ1RvRGFzaGJvYXJkKCk7XG4gICAgICB0aGlzLmFkZExvZ0FsYXJtKEFsYXJtQ2F0ZWdvcnkuQ3JpdGljYWwsIDEpO1xuICAgICAgdGhpcy5hZGRMb2dBbGFybShBbGFybUNhdGVnb3J5Lldhcm5pbmcpO1xuICAgIH1cbiAgfVxuXG4gIGdldEFsYXJtcyhjYXRlZ29yeTogQWxhcm1DYXRlZ29yeSk6IEFsYXJtW10ge1xuICAgIGNvbnN0IGFsYXJtcyA9IHN1cGVyLmdldEFsYXJtcyhjYXRlZ29yeSk7XG4gICAgY29uc3QgbG9nQWxhcm0gPSBjYXRlZ29yeSA9PT0gQWxhcm1DYXRlZ29yeS5Dcml0aWNhbCA/IHRoaXMuY3JpdGljYWxMb2dBbGFybT8uYWxhcm0gOiB0aGlzLndhcm5pbmdMb2dBbGFybT8uYWxhcm07XG4gICAgaWYgKGxvZ0FsYXJtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGFsYXJtcy5wdXNoKGxvZ0FsYXJtKTtcbiAgICB9XG4gICAgcmV0dXJuIGFsYXJtcztcbiAgfVxufVxuIl19
@@ -1,8 +1,8 @@
1
- export * from "./bundled-function";
1
+ export * from "./standard-function";
2
2
  export * from "./extended-function";
3
3
  export * from "./extended-go-function";
4
4
  export * from "./extended-nodejs-function";
5
5
  export * from "./extended-python-function";
6
6
  export * from "./function-alarms";
7
7
  export * from "./function-deployment";
8
- export * from "./bundled-python-function";
8
+ export * from "./standard-python-function";
@@ -10,12 +10,12 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
10
10
  for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- __exportStar(require("./bundled-function"), exports);
13
+ __exportStar(require("./standard-function"), exports);
14
14
  __exportStar(require("./extended-function"), exports);
15
15
  __exportStar(require("./extended-go-function"), exports);
16
16
  __exportStar(require("./extended-nodejs-function"), exports);
17
17
  __exportStar(require("./extended-python-function"), exports);
18
18
  __exportStar(require("./function-alarms"), exports);
19
19
  __exportStar(require("./function-deployment"), exports);
20
- __exportStar(require("./bundled-python-function"), exports);
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxxREFBbUM7QUFDbkMsc0RBQW9DO0FBQ3BDLHlEQUF1QztBQUN2Qyw2REFBMkM7QUFDM0MsNkRBQTJDO0FBQzNDLG9EQUFrQztBQUNsQyx3REFBc0M7QUFDdEMsNERBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vYnVuZGxlZC1mdW5jdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXh0ZW5kZWQtZnVuY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4dGVuZGVkLWdvLWZ1bmN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leHRlbmRlZC1ub2RlanMtZnVuY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4dGVuZGVkLXB5dGhvbi1mdW5jdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZnVuY3Rpb24tYWxhcm1zXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9mdW5jdGlvbi1kZXBsb3ltZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9idW5kbGVkLXB5dGhvbi1mdW5jdGlvblwiO1xuIl19
20
+ __exportStar(require("./standard-python-function"), exports);
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxzREFBb0M7QUFDcEMsc0RBQW9DO0FBQ3BDLHlEQUF1QztBQUN2Qyw2REFBMkM7QUFDM0MsNkRBQTJDO0FBQzNDLG9EQUFrQztBQUNsQyx3REFBc0M7QUFDdEMsNkRBQTJDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtZnVuY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2V4dGVuZGVkLWZ1bmN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leHRlbmRlZC1nby1mdW5jdGlvblwiO1xuZXhwb3J0ICogZnJvbSBcIi4vZXh0ZW5kZWQtbm9kZWpzLWZ1bmN0aW9uXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9leHRlbmRlZC1weXRob24tZnVuY3Rpb25cIjtcbmV4cG9ydCAqIGZyb20gXCIuL2Z1bmN0aW9uLWFsYXJtc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZnVuY3Rpb24tZGVwbG95bWVudFwiO1xuZXhwb3J0ICogZnJvbSBcIi4vc3RhbmRhcmQtcHl0aG9uLWZ1bmN0aW9uXCI7XG4iXX0=
@@ -7,7 +7,7 @@ import { DeployedFunctionOptions, ExtendedFunction } from "./extended-function";
7
7
  /**
8
8
  * Options for BundledFunction.
9
9
  */
10
- export interface BundledFunctionOptions {
10
+ export interface StandardFunctionOptions {
11
11
  /**
12
12
  * Turns off local bundling.
13
13
  *
@@ -47,7 +47,7 @@ export interface BundledFunctionOptions {
47
47
  /**
48
48
  * Properties for BundledFunction
49
49
  */
50
- export interface BundledFunctionProps extends FunctionOptions, FunctionAlarmsOptions, DeployedFunctionOptions, BundledFunctionOptions {
50
+ export interface BundledFunctionProps extends FunctionOptions, FunctionAlarmsOptions, DeployedFunctionOptions, StandardFunctionOptions {
51
51
  /**
52
52
  * Callback function to check if local bundling is supported.
53
53
  */
@@ -69,6 +69,6 @@ export interface BundledFunctionProps extends FunctionOptions, FunctionAlarmsOpt
69
69
  */
70
70
  readonly handler: string;
71
71
  }
72
- export declare class BundledFunction extends ExtendedFunction {
72
+ export declare class StandardFunction extends ExtendedFunction {
73
73
  constructor(scope: Construct, id: string, props: BundledFunctionProps);
74
74
  }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardFunction = void 0;
4
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
5
+ const helpers_1 = require("../../helpers");
6
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
7
+ const extended_function_1 = require("./extended-function");
8
+ class StandardFunction extends extended_function_1.ExtendedFunction {
9
+ constructor(scope, id, props) {
10
+ var _a;
11
+ const local = props.disableLocalBundling ? undefined : {
12
+ tryBundle(outputDir, options) {
13
+ var _a;
14
+ try {
15
+ if (!props.isLocalBundlingSupported()) {
16
+ return false;
17
+ }
18
+ }
19
+ catch (_b) {
20
+ return false;
21
+ }
22
+ return helpers_1.ShellHelper.executeBash({
23
+ script: (_a = props.bundlingScript) !== null && _a !== void 0 ? _a : props.defaultBundlingScript,
24
+ workingDirectory: props.entry,
25
+ environment: {
26
+ ...options.environment,
27
+ CDK_BUNDLING_OUTPUT_DIR: outputDir,
28
+ }
29
+ });
30
+ }
31
+ };
32
+ const command = props.disableDockerBundling ? undefined : ['bash', '-c', (_a = props.bundlingScript) !== null && _a !== void 0 ? _a : props.defaultBundlingScript];
33
+ super(scope, id, {
34
+ ...props,
35
+ code: aws_lambda_1.Code.fromAsset(props.entry, {
36
+ bundling: {
37
+ image: props.defaultBundlingImage,
38
+ local,
39
+ command,
40
+ environment: {
41
+ CDK_BUNDLING_OUTPUT_DIR: '/asset-output/',
42
+ ...props.bundlingEnvironment
43
+ },
44
+ outputType: aws_cdk_lib_1.BundlingOutput.NOT_ARCHIVED,
45
+ ...props.bundling,
46
+ }
47
+ })
48
+ });
49
+ }
50
+ }
51
+ exports.StandardFunction = StandardFunction;
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSw2Q0FBNEQ7QUFDNUQsMkNBQTBDO0FBQzFDLHVEQUFzRTtBQUV0RSwyREFBOEU7QUFnRjlFLE1BQWEsZ0JBQWlCLFNBQVEsb0NBQWdCO0lBRXBELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBRW5FLE1BQU0sS0FBSyxHQUErQixLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakYsU0FBUyxDQUFDLFNBQWlCLEVBQUUsT0FBd0I7O2dCQUNuRCxJQUFJO29CQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsRUFBQzt3QkFDcEMsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7Z0JBQUMsV0FBTTtvQkFDTixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLHFCQUFXLENBQUMsV0FBVyxDQUFDO29CQUM3QixNQUFNLFFBQUUsS0FBSyxDQUFDLGNBQWMsbUNBQUUsS0FBSyxDQUFDLHFCQUFxQjtvQkFDekQsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQzdCLFdBQVcsRUFBRTt3QkFDWCxHQUFHLE9BQU8sQ0FBQyxXQUFXO3dCQUN0Qix1QkFBdUIsRUFBRSxTQUFTO3FCQUNuQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQTtRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLFFBQUUsS0FBSyxDQUFDLGNBQWMsbUNBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDaEMsUUFBUSxFQUFFO29CQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CO29CQUNqQyxLQUFLO29CQUNMLE9BQU87b0JBQ1AsV0FBVyxFQUFFO3dCQUNYLHVCQUF1QixFQUFFLGdCQUFnQjt3QkFDekMsR0FBRyxLQUFLLENBQUMsbUJBQW1CO3FCQUM3QjtvQkFDRCxVQUFVLEVBQUUsNEJBQWMsQ0FBQyxZQUFZO29CQUN2QyxHQUFHLEtBQUssQ0FBQyxRQUFRO2lCQUNsQjthQUNGLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQ0QsNENBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0RvY2tlckltYWdlLCBJTG9jYWxCdW5kbGluZ30gZnJvbSBcImF3cy1jZGstbGliL2NvcmUvbGliL2J1bmRsaW5nXCI7XG5pbXBvcnQge0J1bmRsaW5nT3B0aW9ucywgQnVuZGxpbmdPdXRwdXR9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtTaGVsbEhlbHBlcn0gZnJvbSBcIi4uLy4uL2hlbHBlcnNcIjtcbmltcG9ydCB7Q29kZSwgRnVuY3Rpb25PcHRpb25zLCBSdW50aW1lfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtGdW5jdGlvbkFsYXJtc09wdGlvbnN9IGZyb20gXCIuL2Z1bmN0aW9uLWFsYXJtc1wiO1xuaW1wb3J0IHtEZXBsb3llZEZ1bmN0aW9uT3B0aW9ucywgRXh0ZW5kZWRGdW5jdGlvbn0gZnJvbSBcIi4vZXh0ZW5kZWQtZnVuY3Rpb25cIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBCdW5kbGVkRnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RhbmRhcmRGdW5jdGlvbk9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUdXJucyBvZmYgbG9jYWwgYnVuZGxpbmcuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkaXNhYmxlTG9jYWxCdW5kbGluZz86IGJvb2xlYW5cblxuICAvKipcbiAgICogVHVybnMgb2ZmIGRvY2tlciBidW5kbGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVEb2NrZXJCdW5kbGluZz86IGJvb2xlYW5cblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBkZWZhdWx0IGJ1bmRsaW5nIHNjcmlwdC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nU2NyaXB0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gYmUgcGFzc2VkIHRvIHRoZSBidW5kbGluZyBzY3JpcHQuXG4gICAqL1xuICByZWFkb25seSBidW5kbGluZ0Vudmlyb25tZW50Pzoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcblxuICAvKipcbiAgICogQnVuZGxpbmcgb3B0aW9ucyB0byB1c2UgZm9yIHRoaXMgZnVuY3Rpb24uIFVzZSB0aGlzIHRvIHNwZWNpZnkgY3VzdG9tIGJ1bmRsaW5nIG9wdGlvbnMgbGlrZVxuICAgKiB0aGUgYnVuZGxpbmcgRG9ja2VyIGltYWdlLCBhc3NldCBoYXNoIHR5cGUsIGN1c3RvbSBoYXNoLCBhcmNoaXRlY3R1cmUsIGV0Yy5cbiAgICpcbiAgICogQGRlZmF1bHRcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nPzogQnVuZGxpbmdPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBQYXRoIHRvIHRoZSBzb3VyY2Ugb2YgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBFeGFtcGxlOiBwYXRoLmpvaW4oX19kaXJuYW1lLCAnLi4nLCAnbXlsYW1iZGEnKVxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnk6IHN0cmluZztcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBCdW5kbGVkRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCdW5kbGVkRnVuY3Rpb25Qcm9wcyBleHRlbmRzIEZ1bmN0aW9uT3B0aW9ucywgRnVuY3Rpb25BbGFybXNPcHRpb25zLCBEZXBsb3llZEZ1bmN0aW9uT3B0aW9ucywgU3RhbmRhcmRGdW5jdGlvbk9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBDYWxsYmFjayBmdW5jdGlvbiB0byBjaGVjayBpZiBsb2NhbCBidW5kbGluZyBpcyBzdXBwb3J0ZWQuXG4gICAqL1xuICByZWFkb25seSBpc0xvY2FsQnVuZGxpbmdTdXBwb3J0ZWQ6ICgpID0+IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGJ1bmRsaW5nIHNjcmlwdCB0byB1c2UuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0QnVuZGxpbmdTY3JpcHQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGRlZmF1bHQgYnVuZGxpbmcgaW1hZ2UgdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEJ1bmRsaW5nSW1hZ2U6IERvY2tlckltYWdlO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVudGltZSBlbnZpcm9ubWVudCBmb3IgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU6IFJ1bnRpbWU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBtZXRob2QgdG8gZXhlY3V0ZSB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlcjogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgU3RhbmRhcmRGdW5jdGlvbiBleHRlbmRzIEV4dGVuZGVkRnVuY3Rpb24ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdW5kbGVkRnVuY3Rpb25Qcm9wcykge1xuXG4gICAgY29uc3QgbG9jYWw6IElMb2NhbEJ1bmRsaW5nIHwgdW5kZWZpbmVkID0gcHJvcHMuZGlzYWJsZUxvY2FsQnVuZGxpbmcgPyB1bmRlZmluZWQgOiB7XG4gICAgICB0cnlCdW5kbGUob3V0cHV0RGlyOiBzdHJpbmcsIG9wdGlvbnM6IEJ1bmRsaW5nT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghcHJvcHMuaXNMb2NhbEJ1bmRsaW5nU3VwcG9ydGVkKCkpe1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTaGVsbEhlbHBlci5leGVjdXRlQmFzaCh7XG4gICAgICAgICAgc2NyaXB0OiBwcm9wcy5idW5kbGluZ1NjcmlwdD8/cHJvcHMuZGVmYXVsdEJ1bmRsaW5nU2NyaXB0LFxuICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb3BzLmVudHJ5LFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgICAgQ0RLX0JVTkRMSU5HX09VVFBVVF9ESVI6IG91dHB1dERpcixcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hbmQgPSBwcm9wcy5kaXNhYmxlRG9ja2VyQnVuZGxpbmcgPyB1bmRlZmluZWQgOiBbJ2Jhc2gnLCAnLWMnLCBwcm9wcy5idW5kbGluZ1NjcmlwdD8/cHJvcHMuZGVmYXVsdEJ1bmRsaW5nU2NyaXB0XTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwcm9wcy5lbnRyeSwge1xuICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgIGltYWdlOiBwcm9wcy5kZWZhdWx0QnVuZGxpbmdJbWFnZSxcbiAgICAgICAgICBsb2NhbCxcbiAgICAgICAgICBjb21tYW5kLFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBDREtfQlVORExJTkdfT1VUUFVUX0RJUjogJy9hc3NldC1vdXRwdXQvJyxcbiAgICAgICAgICAgIC4uLnByb3BzLmJ1bmRsaW5nRW52aXJvbm1lbnRcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dHB1dFR5cGU6IEJ1bmRsaW5nT3V0cHV0Lk5PVF9BUkNISVZFRCxcbiAgICAgICAgICAuLi5wcm9wcy5idW5kbGluZyxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,12 +1,12 @@
1
1
  import { FunctionOptions, Runtime } from 'aws-cdk-lib/aws-lambda';
2
2
  import { Construct } from "constructs";
3
- import { BundledFunction, BundledFunctionOptions } from "./bundled-function";
3
+ import { StandardFunction, StandardFunctionOptions } from "./standard-function";
4
4
  import { DeployedFunctionOptions } from "./extended-function";
5
5
  import { FunctionAlarmsOptions } from "./function-alarms";
6
6
  /**
7
7
  * Properties for BundledPythonFunction.
8
8
  */
9
- export interface BundledPythonFunctionProps extends FunctionOptions, FunctionAlarmsOptions, DeployedFunctionOptions, BundledFunctionOptions {
9
+ export interface BundledPythonFunctionProps extends FunctionOptions, FunctionAlarmsOptions, DeployedFunctionOptions, StandardFunctionOptions {
10
10
  /**
11
11
  * The path (relative to entry) to the index file containing the exported handler.
12
12
  *
@@ -29,7 +29,7 @@ export interface BundledPythonFunctionProps extends FunctionOptions, FunctionAla
29
29
  /**
30
30
  * Python based Lambda Function
31
31
  */
32
- export declare class BundledPythonFunction extends BundledFunction {
32
+ export declare class StandardPythonFunction extends StandardFunction {
33
33
  static isLocalBundlingSupported(): boolean;
34
34
  /**
35
35
  * Creates a new Lambda Function
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StandardPythonFunction = void 0;
4
+ const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
5
+ const aws_cdk_lib_1 = require("aws-cdk-lib");
6
+ const aws_logs_1 = require("aws-cdk-lib/aws-logs");
7
+ const helpers_1 = require("../../helpers");
8
+ const standard_function_1 = require("./standard-function");
9
+ const path = require("path");
10
+ const fs = require("fs");
11
+ /**
12
+ * Python based Lambda Function
13
+ */
14
+ class StandardPythonFunction extends standard_function_1.StandardFunction {
15
+ static isLocalBundlingSupported() {
16
+ return helpers_1.ShellHelper.pythonVersion() !== null;
17
+ }
18
+ /**
19
+ * Creates a new Lambda Function
20
+ */
21
+ constructor(scope, id, props) {
22
+ var _a, _b, _c;
23
+ const runtime = (_a = props.runtime) !== null && _a !== void 0 ? _a : aws_lambda_1.Runtime.PYTHON_3_9;
24
+ if (runtime.family !== aws_lambda_1.RuntimeFamily.PYTHON) {
25
+ throw new Error('Runtime must be a Python runtime');
26
+ }
27
+ const handler = ((_b = props.index) !== null && _b !== void 0 ? _b : 'index.py').replace('.py', '') + '.' + ((_c = props.handler) !== null && _c !== void 0 ? _c : 'handler');
28
+ const defaultBundlingScript = fs.readFileSync(path.join(path.dirname(fs.realpathSync(__filename)), 'bundle-python.sh'), 'utf-8');
29
+ super(scope, id, {
30
+ // defaults which may be overridden by ...props
31
+ tracing: aws_lambda_1.Tracing.PASS_THROUGH,
32
+ logRetention: aws_logs_1.RetentionDays.THREE_DAYS,
33
+ architecture: aws_lambda_1.Architecture.ARM_64,
34
+ memorySize: 768,
35
+ timeout: aws_cdk_lib_1.Duration.seconds(30),
36
+ ...props,
37
+ bundlingEnvironment: {
38
+ PIP_PROGRESS_BAR: 'off',
39
+ PIP_DISABLE_PIP_VERSION_CHECK: '1',
40
+ ...props.bundlingEnvironment
41
+ },
42
+ runtime,
43
+ handler,
44
+ defaultBundlingScript,
45
+ defaultBundlingImage: runtime.bundlingImage,
46
+ isLocalBundlingSupported: StandardPythonFunction.isLocalBundlingSupported
47
+ });
48
+ }
49
+ }
50
+ exports.StandardPythonFunction = StandardPythonFunction;
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcHl0aG9uLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhbmRhcmQtcHl0aG9uLWZ1bmN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVEQUFzRztBQUV0Ryw2Q0FBcUM7QUFDckMsbURBQW1EO0FBQ25ELDJDQUEwQztBQUMxQywyREFBOEU7QUFHOUUsNkJBQTZCO0FBQzdCLHlCQUF5QjtBQTZCekI7O0dBRUc7QUFDSCxNQUFhLHNCQUF1QixTQUFRLG9DQUFnQjtJQUUxRCxNQUFNLENBQUMsd0JBQXdCO1FBQzdCLE9BQU8scUJBQVcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQzs7UUFFekUsTUFBTSxPQUFPLFNBQUcsS0FBSyxDQUFDLE9BQU8sbUNBQUUsb0JBQU8sQ0FBQyxVQUFVLENBQUE7UUFDakQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLDBCQUFhLENBQUMsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtRQUVELE1BQU0sT0FBTyxHQUFHLE9BQUMsS0FBSyxDQUFDLEtBQUssbUNBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBQyxLQUFLLENBQUMsT0FBTyxtQ0FBRSxTQUFTLENBQUMsQ0FBQztRQUNoRyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpJLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsK0NBQStDO1lBQy9DLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFlBQVk7WUFDN0IsWUFBWSxFQUFFLHdCQUFhLENBQUMsVUFBVTtZQUN0QyxZQUFZLEVBQUUseUJBQVksQ0FBQyxNQUFNO1lBQ2pDLFVBQVUsRUFBRSxHQUFHO1lBQ2YsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixHQUFHLEtBQUs7WUFDUixtQkFBbUIsRUFBRTtnQkFDbkIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsNkJBQTZCLEVBQUUsR0FBRztnQkFDbEMsR0FBRyxLQUFLLENBQUMsbUJBQW1CO2FBQzdCO1lBQ0QsT0FBTztZQUNQLE9BQU87WUFDUCxxQkFBcUI7WUFDckIsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDM0Msd0JBQXdCLEVBQUUsc0JBQXNCLENBQUMsd0JBQXdCO1NBQzFFLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZDRCx3REF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FyY2hpdGVjdHVyZSwgRnVuY3Rpb25PcHRpb25zLCBSdW50aW1lLCBSdW50aW1lRmFtaWx5LCBUcmFjaW5nfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1JldGVudGlvbkRheXN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtTaGVsbEhlbHBlcn0gZnJvbSBcIi4uLy4uL2hlbHBlcnNcIjtcbmltcG9ydCB7U3RhbmRhcmRGdW5jdGlvbiwgU3RhbmRhcmRGdW5jdGlvbk9wdGlvbnN9IGZyb20gXCIuL3N0YW5kYXJkLWZ1bmN0aW9uXCI7XG5pbXBvcnQge0RlcGxveWVkRnVuY3Rpb25PcHRpb25zfSBmcm9tIFwiLi9leHRlbmRlZC1mdW5jdGlvblwiO1xuaW1wb3J0IHtGdW5jdGlvbkFsYXJtc09wdGlvbnN9IGZyb20gXCIuL2Z1bmN0aW9uLWFsYXJtc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBCdW5kbGVkUHl0aG9uRnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlZFB5dGhvbkZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBGdW5jdGlvbk9wdGlvbnMsIEZ1bmN0aW9uQWxhcm1zT3B0aW9ucywgRGVwbG95ZWRGdW5jdGlvbk9wdGlvbnMsIFN0YW5kYXJkRnVuY3Rpb25PcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHBhdGggKHJlbGF0aXZlIHRvIGVudHJ5KSB0byB0aGUgaW5kZXggZmlsZSBjb250YWluaW5nIHRoZSBleHBvcnRlZCBoYW5kbGVyLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnaW5kZXgucHknXG4gICAqL1xuICByZWFkb25seSBpbmRleD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIGV4cG9ydGVkIGhhbmRsZXIgaW4gdGhlIGluZGV4IGZpbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdoYW5kbGVyJ1xuICAgKi9cbiAgcmVhZG9ubHkgaGFuZGxlcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQuIE9ubHkgcnVudGltZXMgb2YgdGhlIFB5dGhvbiBmYW1pbHkgYXJlIHN1cHBvcnRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgUnVudGltZS5QWVRIT05fM185XG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogUnVudGltZTtcbn1cblxuLyoqXG4gKiBQeXRob24gYmFzZWQgTGFtYmRhIEZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFuZGFyZFB5dGhvbkZ1bmN0aW9uIGV4dGVuZHMgU3RhbmRhcmRGdW5jdGlvbiB7XG5cbiAgc3RhdGljIGlzTG9jYWxCdW5kbGluZ1N1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2hlbGxIZWxwZXIucHl0aG9uVmVyc2lvbigpICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGFtYmRhIEZ1bmN0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVuZGxlZFB5dGhvbkZ1bmN0aW9uUHJvcHMpIHtcblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBwcm9wcy5ydW50aW1lPz9SdW50aW1lLlBZVEhPTl8zXzlcbiAgICBpZiAocnVudGltZS5mYW1pbHkgIT09IFJ1bnRpbWVGYW1pbHkuUFlUSE9OKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1J1bnRpbWUgbXVzdCBiZSBhIFB5dGhvbiBydW50aW1lJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlciA9IChwcm9wcy5pbmRleD8/J2luZGV4LnB5JykucmVwbGFjZSgnLnB5JywgJycpICsgJy4nICsgKHByb3BzLmhhbmRsZXI/PydoYW5kbGVyJyk7XG4gICAgY29uc3QgZGVmYXVsdEJ1bmRsaW5nU2NyaXB0ID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwYXRoLmRpcm5hbWUoZnMucmVhbHBhdGhTeW5jKF9fZmlsZW5hbWUpKSwgJ2J1bmRsZS1weXRob24uc2gnKSwgJ3V0Zi04Jyk7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC8vIGRlZmF1bHRzIHdoaWNoIG1heSBiZSBvdmVycmlkZGVuIGJ5IC4uLnByb3BzXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLlBBU1NfVEhST1VHSCxcbiAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5USFJFRV9EQVlTLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgbWVtb3J5U2l6ZTogNzY4LFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGJ1bmRsaW5nRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUElQX1BST0dSRVNTX0JBUjogJ29mZicsXG4gICAgICAgIFBJUF9ESVNBQkxFX1BJUF9WRVJTSU9OX0NIRUNLOiAnMScsXG4gICAgICAgIC4uLnByb3BzLmJ1bmRsaW5nRW52aXJvbm1lbnRcbiAgICAgIH0sXG4gICAgICBydW50aW1lLFxuICAgICAgaGFuZGxlcixcbiAgICAgIGRlZmF1bHRCdW5kbGluZ1NjcmlwdCxcbiAgICAgIGRlZmF1bHRCdW5kbGluZ0ltYWdlOiBydW50aW1lLmJ1bmRsaW5nSW1hZ2UsXG4gICAgICBpc0xvY2FsQnVuZGxpbmdTdXBwb3J0ZWQ6IFN0YW5kYXJkUHl0aG9uRnVuY3Rpb24uaXNMb2NhbEJ1bmRsaW5nU3VwcG9ydGVkXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -4,12 +4,12 @@ import { QueueAlarms, QueueAlarmsOptions } from "./queue-alarms";
4
4
  /**
5
5
  * Properties for ObservedQueue.
6
6
  */
7
- export interface ObservedQueueProps extends QueueProps, QueueAlarmsOptions {
7
+ export interface ExtendedQueueProps extends QueueProps, QueueAlarmsOptions {
8
8
  }
9
9
  /**
10
10
  * Queue with CloudWatch alarms.
11
11
  */
12
- export declare class ObservedQueue extends Queue {
12
+ export declare class ExtendedQueue extends Queue {
13
13
  readonly queueAlarms: QueueAlarms;
14
- constructor(scope: Construct, id: string, props: ObservedQueueProps);
14
+ constructor(scope: Construct, id: string, props: ExtendedQueueProps);
15
15
  }
@@ -1,19 +1,19 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ObservedQueue = void 0;
3
+ exports.ExtendedQueue = void 0;
4
4
  const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
5
5
  const queue_alarms_1 = require("./queue-alarms");
6
6
  /**
7
7
  * Queue with CloudWatch alarms.
8
8
  */
9
- class ObservedQueue extends aws_sqs_1.Queue {
9
+ class ExtendedQueue extends aws_sqs_1.Queue {
10
10
  constructor(scope, id, props) {
11
11
  super(scope, id, props);
12
- this.queueAlarms = new queue_alarms_1.QueueAlarms(this, 'Monitoring', {
12
+ this.queueAlarms = new queue_alarms_1.QueueAlarms(this, "Alarms", {
13
13
  queue: this,
14
14
  ...props
15
15
  });
16
16
  }
17
17
  }
18
- exports.ObservedQueue = ObservedQueue;
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZWQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYnNlcnZlZC1xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBc0Q7QUFFdEQsaURBQStEO0FBTy9EOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsZUFBSztJQUl0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSwwQkFBVyxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDckQsS0FBSyxFQUFFLElBQUk7WUFDWCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFaRCxzQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UXVldWUsIFF1ZXVlUHJvcHN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7UXVldWVBbGFybXMsIFF1ZXVlQWxhcm1zT3B0aW9uc30gZnJvbSBcIi4vcXVldWUtYWxhcm1zXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgT2JzZXJ2ZWRRdWV1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPYnNlcnZlZFF1ZXVlUHJvcHMgZXh0ZW5kcyBRdWV1ZVByb3BzLCBRdWV1ZUFsYXJtc09wdGlvbnMge31cblxuLyoqXG4gKiBRdWV1ZSB3aXRoIENsb3VkV2F0Y2ggYWxhcm1zLlxuICovXG5leHBvcnQgY2xhc3MgT2JzZXJ2ZWRRdWV1ZSBleHRlbmRzIFF1ZXVlIHtcblxuICByZWFkb25seSBxdWV1ZUFsYXJtczogUXVldWVBbGFybXM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE9ic2VydmVkUXVldWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5xdWV1ZUFsYXJtcyA9IG5ldyBRdWV1ZUFsYXJtcyh0aGlzLCAnTW9uaXRvcmluZycsIHtcbiAgICAgIHF1ZXVlOiB0aGlzLFxuICAgICAgLi4ucHJvcHNcbiAgICB9KTtcbiAgfVxufVxuIl19
18
+ exports.ExtendedQueue = ExtendedQueue;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5kZWQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJleHRlbmRlZC1xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBc0Q7QUFFdEQsaURBQStEO0FBTy9EOztHQUVHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsZUFBSztJQUl0QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCO1FBQ2pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSwwQkFBVyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDakQsS0FBSyxFQUFFLElBQUk7WUFDWCxHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFaRCxzQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7UXVldWUsIFF1ZXVlUHJvcHN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCI7XG5pbXBvcnQge0NvbnN0cnVjdH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7UXVldWVBbGFybXMsIFF1ZXVlQWxhcm1zT3B0aW9uc30gZnJvbSBcIi4vcXVldWUtYWxhcm1zXCI7XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgT2JzZXJ2ZWRRdWV1ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFeHRlbmRlZFF1ZXVlUHJvcHMgZXh0ZW5kcyBRdWV1ZVByb3BzLCBRdWV1ZUFsYXJtc09wdGlvbnMge31cblxuLyoqXG4gKiBRdWV1ZSB3aXRoIENsb3VkV2F0Y2ggYWxhcm1zLlxuICovXG5leHBvcnQgY2xhc3MgRXh0ZW5kZWRRdWV1ZSBleHRlbmRzIFF1ZXVlIHtcblxuICByZWFkb25seSBxdWV1ZUFsYXJtczogUXVldWVBbGFybXM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV4dGVuZGVkUXVldWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgdGhpcy5xdWV1ZUFsYXJtcyA9IG5ldyBRdWV1ZUFsYXJtcyh0aGlzLCBcIkFsYXJtc1wiLCB7XG4gICAgICBxdWV1ZTogdGhpcyxcbiAgICAgIC4uLnByb3BzXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
1
  export * from './queue-alarms';
2
- export * from './observed-queue';
2
+ export * from './extended-queue';
3
3
  export * from './standard-queue';
@@ -11,6 +11,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./queue-alarms"), exports);
14
- __exportStar(require("./observed-queue"), exports);
14
+ __exportStar(require("./extended-queue"), exports);
15
15
  __exportStar(require("./standard-queue"), exports);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0IsbURBQWlDO0FBQ2pDLG1EQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXVldWUtYWxhcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vb2JzZXJ2ZWQtcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFuZGFyZC1xdWV1ZSc7XG4iXX0=
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFBQSxpREFBK0I7QUFDL0IsbURBQWlDO0FBQ2pDLG1EQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcXVldWUtYWxhcm1zJztcbmV4cG9ydCAqIGZyb20gJy4vZXh0ZW5kZWQtcXVldWUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGFuZGFyZC1xdWV1ZSc7XG4iXX0=
@@ -1,11 +1,11 @@
1
1
  import { Duration } from "aws-cdk-lib";
2
- import { ITopic } from "aws-cdk-lib/aws-sns";
3
- import { Alarm, IAlarmAction } from "aws-cdk-lib/aws-cloudwatch";
4
- import { MonitoringFacade } from "cdk-monitoring-constructs";
5
- import { IDashboardFactory } from "cdk-monitoring-constructs";
6
2
  import { Queue } from "aws-cdk-lib/aws-sqs";
7
3
  import { Construct } from "constructs";
8
- export interface QueueAlarmsCategoryProps {
4
+ import { AlarmsBase, AlarmsCategoryOptions, AlarmsOptions } from "../../aws-monitoring";
5
+ /**
6
+ * Category options for CloudWatch alarms for Queues.
7
+ */
8
+ export interface QueueAlarmsCategoryOptions extends AlarmsCategoryOptions {
9
9
  /**
10
10
  * Minimum number of messages visible.
11
11
  */
@@ -46,16 +46,11 @@ export interface QueueAlarmsCategoryProps {
46
46
  * Maximum number of incoming messages in the dead-letter queue
47
47
  */
48
48
  readonly deadLetterQueueMaxIncoming?: number;
49
- /**
50
- * Topics to send alarm notifications
51
- */
52
- readonly notifyTopics?: [ITopic];
53
- /**
54
- * Actions to send alarm notifications
55
- */
56
- readonly notifyActions?: [IAlarmAction];
57
49
  }
58
- export interface QueueAlarmsOptions {
50
+ /**
51
+ * Options for CloudWatch alarms for Queues.
52
+ */
53
+ export interface QueueAlarmsOptions extends AlarmsOptions<QueueAlarmsCategoryOptions> {
59
54
  /**
60
55
  * Flag to create alarms.
61
56
  *
@@ -63,42 +58,9 @@ export interface QueueAlarmsOptions {
63
58
  */
64
59
  readonly createAlarms?: boolean;
65
60
  /**
66
- * Alarm thresholds for critical alarms.
67
- *
68
- * If no properties are provided, a set of default alarms are created.
69
- */
70
- readonly criticalAlarmProps?: QueueAlarmsCategoryProps;
71
- /**
72
- * Alarm threshold for warning alarms.
73
- *
74
- * If no properties are provided, a set of default alarms are created.
75
- */
76
- readonly warningAlarmProps?: QueueAlarmsCategoryProps;
77
- /**
78
- * Main entry point for monitoring.
79
- *
80
- * If no value is provided, a default facade will be created.
81
- */
82
- readonly monitoringFacade?: MonitoringFacade;
83
- /**
84
- * The DashboardFactory to use when generating CloudWatch dashboards.
85
- *
86
- * If not defined, dashboards are not generated.
87
- */
88
- readonly dashboardFactory?: IDashboardFactory;
89
- /**
90
- * Prefix used for generated alarms.
91
- *
92
- * @default Stack.of(this).stackName;
61
+ * Name to use for alarm, default is construct ID.
93
62
  */
94
- readonly alarmNamePrefix?: string;
95
- }
96
- /**
97
- * Used to disambiguate warning and critical alarms.
98
- */
99
- export declare enum QueueAlarmCategory {
100
- Critical = "Critical",
101
- Warning = "Warning"
63
+ readonly alarmFriendlyName?: string;
102
64
  }
103
65
  /**
104
66
  * Properties for QueueAlarms
@@ -112,22 +74,7 @@ export interface QueueAlarmsProps extends QueueAlarmsOptions {
112
74
  /**
113
75
  * Creates CloudWatch alarms for Queues.
114
76
  */
115
- export declare class QueueAlarms extends Construct {
116
- /**
117
- * The MonitoringFacade instance either passed in or generated.
118
- */
119
- readonly monitoringFacade: MonitoringFacade;
120
- /**
121
- * Generated critical alarms.
122
- */
123
- readonly criticalAlarms: Alarm[];
124
- /**
125
- * Generated warning alarms.
126
- */
127
- readonly warningAlarms: Alarm[];
128
- private readonly props;
129
- private addRecordValue;
130
- private toRecord;
131
- private addAlarm;
77
+ export declare class QueueAlarms extends AlarmsBase<QueueAlarmsCategoryOptions, QueueAlarmsProps> {
78
+ private addQueueMonitoring;
132
79
  constructor(scope: Construct, id: string, props: QueueAlarmsProps);
133
80
  }
@@ -1,138 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.QueueAlarms = exports.QueueAlarmCategory = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const cdk_monitoring_constructs_1 = require("cdk-monitoring-constructs");
6
- const constructs_1 = require("constructs");
7
- const aws_cloudwatch_actions_1 = require("aws-cdk-lib/aws-cloudwatch-actions");
3
+ exports.QueueAlarms = void 0;
8
4
  const aws_monitoring_1 = require("../../aws-monitoring");
9
5
  /**
10
- * Helper function to get the correct critical or warning properties from QueueAlarmProps dynamically.
11
- *
12
- * @param props the properties holding the values
13
- * @param category the alarm category
14
- */
15
- function getQueueAlarmCategoryProps(props, category) {
16
- const fprop = category === 'Critical' ? 'criticalAlarmProps' : 'warningAlarmProps';
17
- return props[fprop];
18
- }
19
- /**
20
- * Helper function to combine an array if IAlarmAction and ITopic objects into a single IAlarmAction array.
21
- *
22
- * @param actions the actions
23
- * @param topics the topics
24
- */
25
- function combineActions(actions, topics) {
26
- const combined = [];
27
- actions === null || actions === void 0 ? void 0 : actions.forEach((action) => combined.push(action));
28
- topics === null || topics === void 0 ? void 0 : topics.forEach((topic) => combined.push(new aws_cloudwatch_actions_1.SnsAction(topic)));
29
- return combined;
30
- }
31
- /**
32
- * Used to disambiguate warning and critical alarms.
33
- */
34
- var QueueAlarmCategory;
35
- (function (QueueAlarmCategory) {
36
- QueueAlarmCategory["Critical"] = "Critical";
37
- QueueAlarmCategory["Warning"] = "Warning";
38
- })(QueueAlarmCategory = exports.QueueAlarmCategory || (exports.QueueAlarmCategory = {}));
39
- /**
40
- * Internal class to assist in generating CustomeAlarmThreshold instances.
6
+ * Creates CloudWatch alarms for Queues.
41
7
  */
42
- class QueueAlarmFacade {
43
- constructor(props) {
44
- this.props = props;
45
- this.actions = combineActions(props.actions, props.topics);
46
- }
47
- toCustomAlarmThreshold() {
48
- var _a;
49
- if (this.props.threshold !== undefined || this.props.defaultThreshold !== undefined) {
50
- return {
51
- [this.props.prop]: (_a = this.props.threshold) !== null && _a !== void 0 ? _a : this.props.defaultThreshold,
52
- actionsEnabled: true,
53
- actionOverride: new aws_monitoring_1.StandardAlarmActionsStrategy({ actions: this.actions }),
54
- };
8
+ class QueueAlarms extends aws_monitoring_1.AlarmsBase {
9
+ addQueueMonitoring() {
10
+ if (this.props.queue.deadLetterQueue === undefined) {
11
+ this.monitoringFacade.monitorSqsQueue({
12
+ alarmFriendlyName: this.props.alarmFriendlyName,
13
+ queue: this.props.queue,
14
+ addQueueMinSizeAlarm: this.toRecord('minSize', 'minMessageCount'),
15
+ addQueueMaxSizeAlarm: this.toRecord('maxSize', 'maxMessageCount'),
16
+ addQueueMaxMessageAgeAlarm: this.toRecord('maxAgeInSeconds', 'maxAgeInSeconds', 15),
17
+ addQueueMaxTimeToDrainMessagesAlarm: this.toRecord('maxTimeToDrain', 'maxTimeToDrain'),
18
+ addQueueMinIncomingMessagesAlarm: this.toRecord('minIncoming', 'minIncomingMessagesCount'),
19
+ addQueueMaxIncomingMessagesAlarm: this.toRecord('maxIncoming', 'maxIncomingMessagesCount')
20
+ });
55
21
  }
56
- return undefined;
57
- }
58
- addCustomAlarmThreshold(category, record) {
59
- const c = this.toCustomAlarmThreshold();
60
- if (c !== undefined) {
61
- record[category] = c;
22
+ else {
23
+ this.monitoringFacade.monitorSqsQueueWithDlq({
24
+ alarmFriendlyName: this.props.alarmFriendlyName,
25
+ queue: this.props.queue,
26
+ deadLetterQueue: this.props.queue.deadLetterQueue.queue,
27
+ addQueueMinSizeAlarm: this.toRecord('minSize', 'minMessageCount'),
28
+ addQueueMaxSizeAlarm: this.toRecord('maxSize', 'maxMessageCount'),
29
+ addQueueMaxMessageAgeAlarm: this.toRecord('maxAgeInSeconds', 'maxAgeInSeconds', 15),
30
+ addQueueMaxTimeToDrainMessagesAlarm: this.toRecord('maxTimeToDrain', 'maxTimeToDrain'),
31
+ addQueueMinIncomingMessagesAlarm: this.toRecord('minIncoming', 'minIncomingMessagesCount'),
32
+ addQueueMaxIncomingMessagesAlarm: this.toRecord('maxIncoming', 'maxIncomingMessagesCount'),
33
+ addDeadLetterQueueMaxSizeAlarm: this.toRecord('deadLetterQueueMaxSize', 'maxMessageCount', 0),
34
+ addDeadLetterQueueMaxMessageAgeAlarm: this.toRecord('deadLetterQueueMaxAgeInSeconds', 'maxAgeInSeconds'),
35
+ addDeadLetterQueueMaxIncomingMessagesAlarm: this.toRecord('deadLetterQueueMaxIncoming', 'maxIncomingMessagesCount'),
36
+ addDeadLetterQueueToSummaryDashboard: true
37
+ });
62
38
  }
63
39
  }
64
- }
65
- // TODO Need to convert to using AlarmsBase
66
- /**
67
- * Creates CloudWatch alarms for Queues.
68
- */
69
- class QueueAlarms extends constructs_1.Construct {
70
40
  constructor(scope, id, props) {
71
- var _a, _b, _c;
72
- super(scope, id);
73
- this.props = props;
74
- this.criticalAlarms = [];
75
- this.warningAlarms = [];
76
- this.monitoringFacade = (_a = props.monitoringFacade) !== null && _a !== void 0 ? _a : new cdk_monitoring_constructs_1.MonitoringFacade(this, 'MonitoringFacade', {
77
- metricFactoryDefaults: {},
78
- alarmFactoryDefaults: {
79
- actionsEnabled: true,
80
- alarmNamePrefix: (_b = props.alarmNamePrefix) !== null && _b !== void 0 ? _b : `${aws_cdk_lib_1.Stack.of(this).stackName}`
81
- },
82
- dashboardFactory: props.dashboardFactory
83
- });
84
- if ((_c = props.createAlarms) !== null && _c !== void 0 ? _c : true) {
85
- if (props.queue.deadLetterQueue === undefined) {
86
- this.monitoringFacade.monitorSqsQueue({
87
- queue: props.queue,
88
- addQueueMinSizeAlarm: this.toRecord('minSize', 'minMessageCount'),
89
- addQueueMaxSizeAlarm: this.toRecord('maxSize', 'maxMessageCount'),
90
- addQueueMaxMessageAgeAlarm: this.toRecord('maxAgeInSeconds', 'maxAgeInSeconds', 15),
91
- addQueueMaxTimeToDrainMessagesAlarm: this.toRecord('maxTimeToDrain', 'maxTimeToDrain'),
92
- addQueueMinIncomingMessagesAlarm: this.toRecord('minIncoming', 'minIncomingMessagesCount'),
93
- addQueueMaxIncomingMessagesAlarm: this.toRecord('maxIncoming', 'maxIncomingMessagesCount')
94
- });
95
- }
96
- else {
97
- this.monitoringFacade.monitorSqsQueueWithDlq({
98
- queue: props.queue,
99
- deadLetterQueue: props.queue.deadLetterQueue.queue,
100
- addQueueMinSizeAlarm: this.toRecord('minSize', 'minMessageCount'),
101
- addQueueMaxSizeAlarm: this.toRecord('maxSize', 'maxMessageCount'),
102
- addQueueMaxMessageAgeAlarm: this.toRecord('maxAgeInSeconds', 'maxAgeInSeconds', 15),
103
- addQueueMaxTimeToDrainMessagesAlarm: this.toRecord('maxTimeToDrain', 'maxTimeToDrain'),
104
- addQueueMinIncomingMessagesAlarm: this.toRecord('minIncoming', 'minIncomingMessagesCount'),
105
- addQueueMaxIncomingMessagesAlarm: this.toRecord('maxIncoming', 'maxIncomingMessagesCount'),
106
- addDeadLetterQueueMaxSizeAlarm: this.toRecord('deadLetterQueueMaxSize', 'maxMessageCount', 0),
107
- addDeadLetterQueueMaxMessageAgeAlarm: this.toRecord('deadLetterQueueMaxAgeInSeconds', 'maxAgeInSeconds'),
108
- addDeadLetterQueueMaxIncomingMessagesAlarm: this.toRecord('deadLetterQueueMaxIncoming', 'maxIncomingMessagesCount'),
109
- addDeadLetterQueueToSummaryDashboard: true
110
- });
111
- this.addAlarm(QueueAlarmCategory.Critical, ...this.monitoringFacade.createdAlarmsWithDisambiguator(QueueAlarmCategory.Critical).map((awa) => awa.alarm));
112
- this.addAlarm(QueueAlarmCategory.Warning, ...this.monitoringFacade.createdAlarmsWithDisambiguator(QueueAlarmCategory.Warning).map((awa) => awa.alarm));
113
- }
41
+ var _a;
42
+ super(scope, id, props);
43
+ if ((_a = props.createAlarms) !== null && _a !== void 0 ? _a : true) {
44
+ this.addQueueMonitoring();
114
45
  }
115
46
  }
116
- addRecordValue(record, category, sprop, tprop, defaultThreshold) {
117
- const fprops = getQueueAlarmCategoryProps(this.props, category);
118
- new QueueAlarmFacade({
119
- prop: tprop,
120
- threshold: fprops === null || fprops === void 0 ? void 0 : fprops[sprop],
121
- defaultThreshold,
122
- topics: fprops === null || fprops === void 0 ? void 0 : fprops.notifyTopics,
123
- actions: fprops === null || fprops === void 0 ? void 0 : fprops.notifyActions,
124
- }).addCustomAlarmThreshold(category, record);
125
- }
126
- toRecord(sprop, tprop, defaultThreshold) {
127
- const record = {};
128
- this.addRecordValue(record, QueueAlarmCategory.Critical, sprop, tprop, defaultThreshold);
129
- this.addRecordValue(record, QueueAlarmCategory.Warning, sprop, tprop, defaultThreshold);
130
- return Object.keys(record).length > 0 ? record : undefined;
131
- }
132
- addAlarm(category, ...alarm) {
133
- const arr = category === QueueAlarmCategory.Critical ? this.criticalAlarms : this.warningAlarms;
134
- arr.push(...alarm);
135
- }
136
47
  }
137
48
  exports.QueueAlarms = QueueAlarms;
138
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVldWUtYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUE0QztBQUc1Qyx5RUFBMkQ7QUFTM0QsMkNBQXFDO0FBQ3JDLCtFQUE2RDtBQUM3RCx5REFBa0U7QUE2R2xFOzs7OztHQUtHO0FBQ0gsU0FBUywwQkFBMEIsQ0FBQyxLQUF5QixFQUFFLFFBQTRCO0lBQ3pGLE1BQU0sS0FBSyxHQUE2QixRQUFRLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1CLENBQUM7SUFDN0csT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDdEIsQ0FBQztBQUVEOzs7OztHQUtHO0FBQ0gsU0FBUyxjQUFjLENBQUMsT0FBd0IsRUFBRSxNQUFpQjtJQUNqRSxNQUFNLFFBQVEsR0FBbUIsRUFBRSxDQUFBO0lBQ25DLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7SUFDcEQsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLGtDQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtJQUNoRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLGtCQUdYO0FBSEQsV0FBWSxrQkFBa0I7SUFDNUIsMkNBQXFCLENBQUE7SUFDckIseUNBQW1CLENBQUE7QUFDckIsQ0FBQyxFQUhXLGtCQUFrQixHQUFsQiwwQkFBa0IsS0FBbEIsMEJBQWtCLFFBRzdCO0FBYUQ7O0dBRUc7QUFDSCxNQUFNLGdCQUFnQjtJQU1wQixZQUFZLEtBQTRCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxzQkFBc0I7O1FBQ3BCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEtBQUssU0FBUyxFQUFFO1lBQ25GLE9BQU87Z0JBQ0wsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxtQ0FBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGdCQUFnQjtnQkFDcEUsY0FBYyxFQUFFLElBQUk7Z0JBQ3BCLGNBQWMsRUFBRSxJQUFJLDZDQUE0QixDQUFDLEVBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUMsQ0FBQzthQUMxRSxDQUFDO1NBQ0g7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsUUFBNEIsRUFBRSxNQUEyQztRQUMvRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUU7WUFDbkIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztTQUN0QjtJQUNILENBQUM7Q0FDRjtBQWFELDJDQUEyQztBQUUzQzs7R0FFRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFTO0lBOEN4QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCOztRQUMvRCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsU0FBRyxLQUFLLENBQUMsZ0JBQWdCLG1DQUFFLElBQUksNENBQWdCLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQzdGLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsb0JBQW9CLEVBQUU7Z0JBQ3BCLGNBQWMsRUFBRSxJQUFJO2dCQUNwQixlQUFlLFFBQUUsS0FBSyxDQUFDLGVBQWUsbUNBQUUsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLEVBQUU7YUFDdEU7WUFDRCxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsZ0JBQWdCO1NBQ3pDLENBQUMsQ0FBQztRQUVILFVBQUksS0FBSyxDQUFDLFlBQVksbUNBQUksSUFBSSxFQUFFO1lBQzlCLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxlQUFlLEtBQUssU0FBUyxFQUFFO2dCQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO29CQUNwQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQ2xCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUE2QztvQkFDN0csb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQTZDO29CQUM3RywwQkFBMEIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEVBQUUsQ0FBMkM7b0JBQzdILG1DQUFtQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQTRDO29CQUNqSSxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsQ0FBc0Q7b0JBQy9JLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUF1RDtpQkFDakosQ0FBQyxDQUFDO2FBQ0o7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLHNCQUFzQixDQUFDO29CQUMzQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQ2xCLGVBQWUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxLQUFLO29CQUNsRCxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBNkM7b0JBQzdHLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUE2QztvQkFDN0csMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLENBQTJDO29CQUM3SCxtQ0FBbUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixDQUE0QztvQkFDakksZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQXNEO29CQUMvSSxnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsQ0FBc0Q7b0JBQy9JLDhCQUE4QixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsd0JBQXdCLEVBQUUsaUJBQWlCLEVBQUUsQ0FBQyxDQUE2QztvQkFDekksb0NBQW9DLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQ0FBZ0MsRUFBRSxpQkFBaUIsQ0FBMkM7b0JBQ2xKLDBDQUEwQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsMEJBQTBCLENBQXNEO29CQUN4SyxvQ0FBb0MsRUFBRSxJQUFJO2lCQUMzQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDekosSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsOEJBQThCLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQzthQUN4SjtTQUNGO0lBQ0gsQ0FBQztJQXpFTyxjQUFjLENBQUMsTUFBNEMsRUFDNUMsUUFBNEIsRUFDNUIsS0FBcUMsRUFDckMsS0FBYSxFQUNiLGdCQUFrQztRQUN2RCxNQUFNLE1BQU0sR0FBRywwQkFBMEIsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksZ0JBQWdCLENBQUM7WUFDbkIsSUFBSSxFQUFFLEtBQUs7WUFDWCxTQUFTLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFHLEtBQUssQ0FBc0I7WUFDL0MsZ0JBQWdCO1lBQ2hCLE1BQU0sRUFBRSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsWUFBWTtZQUM1QixPQUFPLEVBQUUsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFFLGFBQWE7U0FDL0IsQ0FBQyxDQUFDLHVCQUF1QixDQUFDLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sUUFBUSxDQUFDLEtBQXFDLEVBQUUsS0FBYSxFQUFFLGdCQUFrQztRQUN2RyxNQUFNLE1BQU0sR0FBeUMsRUFBRSxDQUFDO1FBQ3hELElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDekYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUN4RixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDN0QsQ0FBQztJQUVPLFFBQVEsQ0FBQyxRQUE0QixFQUFFLEdBQUcsS0FBYztRQUM5RCxNQUFNLEdBQUcsR0FBRyxRQUFRLEtBQUssa0JBQWtCLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1FBQ2hHLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBaURGO0FBN0ZELGtDQTZGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RHVyYXRpb24sIFN0YWNrfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7SVRvcGljfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNuc1wiO1xuaW1wb3J0IHtBbGFybSwgSUFsYXJtQWN0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIjtcbmltcG9ydCB7TW9uaXRvcmluZ0ZhY2FkZX0gZnJvbSBcImNkay1tb25pdG9yaW5nLWNvbnN0cnVjdHNcIjtcbmltcG9ydCB7XG4gIEN1c3RvbUFsYXJtVGhyZXNob2xkLFxuICBJRGFzaGJvYXJkRmFjdG9yeSwgTWF4SW5jb21pbmdNZXNzYWdlc0NvdW50VGhyZXNob2xkLFxuICBNYXhNZXNzYWdlQWdlVGhyZXNob2xkLFxuICBNYXhNZXNzYWdlQ291bnRUaHJlc2hvbGQsIE1heFRpbWVUb0RyYWluVGhyZXNob2xkLCBNaW5JbmNvbWluZ01lc3NhZ2VzQ291bnRUaHJlc2hvbGQsXG4gIE1pbk1lc3NhZ2VDb3VudFRocmVzaG9sZFxufSBmcm9tIFwiY2RrLW1vbml0b3JpbmctY29uc3RydWN0c1wiO1xuaW1wb3J0IHtRdWV1ZX0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIjtcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtTbnNBY3Rpb259IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaC1hY3Rpb25zXCI7XG5pbXBvcnQge1N0YW5kYXJkQWxhcm1BY3Rpb25zU3RyYXRlZ3l9IGZyb20gXCIuLi8uLi9hd3MtbW9uaXRvcmluZ1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFF1ZXVlQWxhcm1zQ2F0ZWdvcnlQcm9wcyB7XG5cbiAgLyoqXG4gICAqIE1pbmltdW0gbnVtYmVyIG9mIG1lc3NhZ2VzIHZpc2libGUuXG4gICAqL1xuICByZWFkb25seSBtaW5TaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBtZXNzYWdlcyB2aXNpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBhcHByb3hpbWF0ZSBhZ2Ugb2YgdGhlIG9sZGVzdCBtZXNzYWdlIGluIHRoZSBxdWV1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMTUgZm9yIGNyaXRpY2FsIGFsYXJtXG4gICAqL1xuICByZWFkb25seSBtYXhBZ2VJblNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gdGltZSB0byBkcmFpbiB0aGUgcXVldWUuXG4gICAqL1xuICByZWFkb25seSBtYXhUaW1lVG9EcmFpbj86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvZiBpbmNvbWluZyBtZXNzYWdlcy5cbiAgICovXG4gIHJlYWRvbmx5IG1pbkluY29taW5nPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiBpbmNvbWluZyBtZXNzYWdlcy5cbiAgICovXG4gIHJlYWRvbmx5IG1heEluY29taW5nPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIG51bWJlciBvZiB2aXNpYmxlIG1lc3NhZ2VzIGluIHRoZSBkZWFkLWxldHRlciBxdWV1ZVxuICAgKlxuICAgKiBAZGVmYXVsdCAwIGZvciBjcml0aWNhbCBhbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlTWF4U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBhZ2Ugb2YgdGhlIG9sZGVzdCBtZXNzYWdlcyBpbiB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZU1heEFnZUluU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgaW5jb21pbmcgbWVzc2FnZXMgaW4gdGhlIGRlYWQtbGV0dGVyIHF1ZXVlXG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWVNYXhJbmNvbWluZz86IG51bWJlcjtcblxuICAvKipcbiAgICogVG9waWNzIHRvIHNlbmQgYWxhcm0gbm90aWZpY2F0aW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgbm90aWZ5VG9waWNzPzogW0lUb3BpY107XG5cbiAgLyoqXG4gICAqIEFjdGlvbnMgdG8gc2VuZCBhbGFybSBub3RpZmljYXRpb25zXG4gICAqL1xuICByZWFkb25seSBub3RpZnlBY3Rpb25zPzogW0lBbGFybUFjdGlvbl07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUXVldWVBbGFybXNPcHRpb25zIHtcblxuICAvKipcbiAgICogRmxhZyB0byBjcmVhdGUgYWxhcm1zLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBjcmVhdGVBbGFybXM/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBBbGFybSB0aHJlc2hvbGRzIGZvciBjcml0aWNhbCBhbGFybXMuXG4gICAqXG4gICAqIElmIG5vIHByb3BlcnRpZXMgYXJlIHByb3ZpZGVkLCBhIHNldCBvZiBkZWZhdWx0IGFsYXJtcyBhcmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsQWxhcm1Qcm9wcz86IFF1ZXVlQWxhcm1zQ2F0ZWdvcnlQcm9wcztcblxuICAvKipcbiAgICogQWxhcm0gdGhyZXNob2xkIGZvciB3YXJuaW5nIGFsYXJtcy5cbiAgICpcbiAgICogSWYgbm8gcHJvcGVydGllcyBhcmUgcHJvdmlkZWQsIGEgc2V0IG9mIGRlZmF1bHQgYWxhcm1zIGFyZSBjcmVhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgd2FybmluZ0FsYXJtUHJvcHM/OiBRdWV1ZUFsYXJtc0NhdGVnb3J5UHJvcHM7XG5cbiAgLyoqXG4gICAqIE1haW4gZW50cnkgcG9pbnQgZm9yIG1vbml0b3JpbmcuXG4gICAqXG4gICAqIElmIG5vIHZhbHVlIGlzIHByb3ZpZGVkLCBhIGRlZmF1bHQgZmFjYWRlIHdpbGwgYmUgY3JlYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IG1vbml0b3JpbmdGYWNhZGU/OiBNb25pdG9yaW5nRmFjYWRlXG5cbiAgLyoqXG4gICAqIFRoZSBEYXNoYm9hcmRGYWN0b3J5IHRvIHVzZSB3aGVuIGdlbmVyYXRpbmcgQ2xvdWRXYXRjaCBkYXNoYm9hcmRzLlxuICAgKlxuICAgKiBJZiBub3QgZGVmaW5lZCwgZGFzaGJvYXJkcyBhcmUgbm90IGdlbmVyYXRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGRhc2hib2FyZEZhY3Rvcnk/OiBJRGFzaGJvYXJkRmFjdG9yeTtcblxuICAvKipcbiAgICogUHJlZml4IHVzZWQgZm9yIGdlbmVyYXRlZCBhbGFybXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFN0YWNrLm9mKHRoaXMpLnN0YWNrTmFtZTtcbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtTmFtZVByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gZ2V0IHRoZSBjb3JyZWN0IGNyaXRpY2FsIG9yIHdhcm5pbmcgcHJvcGVydGllcyBmcm9tIFF1ZXVlQWxhcm1Qcm9wcyBkeW5hbWljYWxseS5cbiAqXG4gKiBAcGFyYW0gcHJvcHMgdGhlIHByb3BlcnRpZXMgaG9sZGluZyB0aGUgdmFsdWVzXG4gKiBAcGFyYW0gY2F0ZWdvcnkgdGhlIGFsYXJtIGNhdGVnb3J5XG4gKi9cbmZ1bmN0aW9uIGdldFF1ZXVlQWxhcm1DYXRlZ29yeVByb3BzKHByb3BzOiBRdWV1ZUFsYXJtc09wdGlvbnMsIGNhdGVnb3J5OiBRdWV1ZUFsYXJtQ2F0ZWdvcnkpOiBRdWV1ZUFsYXJtc0NhdGVnb3J5UHJvcHMgfCB1bmRlZmluZWQge1xuICBjb25zdCBmcHJvcDoga2V5b2YgUXVldWVBbGFybXNPcHRpb25zID0gY2F0ZWdvcnkgPT09ICdDcml0aWNhbCcgPyAnY3JpdGljYWxBbGFybVByb3BzJyA6ICd3YXJuaW5nQWxhcm1Qcm9wcyc7XG4gIHJldHVybiBwcm9wc1tmcHJvcF07XG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIGNvbWJpbmUgYW4gYXJyYXkgaWYgSUFsYXJtQWN0aW9uIGFuZCBJVG9waWMgb2JqZWN0cyBpbnRvIGEgc2luZ2xlIElBbGFybUFjdGlvbiBhcnJheS5cbiAqXG4gKiBAcGFyYW0gYWN0aW9ucyB0aGUgYWN0aW9uc1xuICogQHBhcmFtIHRvcGljcyB0aGUgdG9waWNzXG4gKi9cbmZ1bmN0aW9uIGNvbWJpbmVBY3Rpb25zKGFjdGlvbnM/OiBJQWxhcm1BY3Rpb25bXSwgdG9waWNzPzogSVRvcGljW10pOiBJQWxhcm1BY3Rpb25bXSB7XG4gIGNvbnN0IGNvbWJpbmVkOiBJQWxhcm1BY3Rpb25bXSA9IFtdXG4gIGFjdGlvbnM/LmZvckVhY2goKGFjdGlvbikgPT4gY29tYmluZWQucHVzaChhY3Rpb24pKTtcbiAgdG9waWNzPy5mb3JFYWNoKCh0b3BpYykgPT4gY29tYmluZWQucHVzaChuZXcgU25zQWN0aW9uKHRvcGljKSkpO1xuICByZXR1cm4gY29tYmluZWQ7XG59XG5cbi8qKlxuICogVXNlZCB0byBkaXNhbWJpZ3VhdGUgd2FybmluZyBhbmQgY3JpdGljYWwgYWxhcm1zLlxuICovXG5leHBvcnQgZW51bSBRdWV1ZUFsYXJtQ2F0ZWdvcnkge1xuICBDcml0aWNhbCA9ICdDcml0aWNhbCcsXG4gIFdhcm5pbmcgPSAnV2FybmluZydcbn1cblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBRdWV1ZUFsYXJtRmFjYWRlLlxuICovXG5pbnRlcmZhY2UgUXVldWVBbGFybUZhY2FkZVByb3BzIHtcbiAgcHJvcDogc3RyaW5nO1xuICB0aHJlc2hvbGQ/OiBudW1iZXIgfCBEdXJhdGlvbjtcbiAgZGVmYXVsdFRocmVzaG9sZD86IG51bWJlciB8IER1cmF0aW9uO1xuICB0b3BpY3M/OiBJVG9waWNbXTtcbiAgYWN0aW9ucz86IElBbGFybUFjdGlvbltdO1xufVxuXG4vKipcbiAqIEludGVybmFsIGNsYXNzIHRvIGFzc2lzdCBpbiBnZW5lcmF0aW5nIEN1c3RvbWVBbGFybVRocmVzaG9sZCBpbnN0YW5jZXMuXG4gKi9cbmNsYXNzIFF1ZXVlQWxhcm1GYWNhZGUge1xuXG4gIHJlYWRvbmx5IGFjdGlvbnM6IElBbGFybUFjdGlvbltdO1xuXG4gIHByaXZhdGUgcHJvcHM6IFF1ZXVlQWxhcm1GYWNhZGVQcm9wcztcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogUXVldWVBbGFybUZhY2FkZVByb3BzKSB7XG4gICAgdGhpcy5wcm9wcyA9IHByb3BzO1xuICAgIHRoaXMuYWN0aW9ucyA9IGNvbWJpbmVBY3Rpb25zKHByb3BzLmFjdGlvbnMsIHByb3BzLnRvcGljcyk7XG4gIH1cblxuICB0b0N1c3RvbUFsYXJtVGhyZXNob2xkKCk6IEN1c3RvbUFsYXJtVGhyZXNob2xkIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5wcm9wcy50aHJlc2hvbGQgIT09IHVuZGVmaW5lZCB8fCB0aGlzLnByb3BzLmRlZmF1bHRUaHJlc2hvbGQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3RoaXMucHJvcHMucHJvcF06IHRoaXMucHJvcHMudGhyZXNob2xkPz90aGlzLnByb3BzLmRlZmF1bHRUaHJlc2hvbGQsXG4gICAgICAgIGFjdGlvbnNFbmFibGVkOiB0cnVlLFxuICAgICAgICBhY3Rpb25PdmVycmlkZTogbmV3IFN0YW5kYXJkQWxhcm1BY3Rpb25zU3RyYXRlZ3koe2FjdGlvbnM6IHRoaXMuYWN0aW9uc30pLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFkZEN1c3RvbUFsYXJtVGhyZXNob2xkKGNhdGVnb3J5OiBRdWV1ZUFsYXJtQ2F0ZWdvcnksIHJlY29yZDogUmVjb3JkPHN0cmluZyxDdXN0b21BbGFybVRocmVzaG9sZD4pIHtcbiAgICBjb25zdCBjID0gdGhpcy50b0N1c3RvbUFsYXJtVGhyZXNob2xkKCk7XG4gICAgaWYgKGMgIT09IHVuZGVmaW5lZCkge1xuICAgICAgcmVjb3JkW2NhdGVnb3J5XSA9IGM7XG4gICAgfVxuICB9XG59XG5cbi8qKlxuICogUHJvcGVydGllcyBmb3IgUXVldWVBbGFybXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZUFsYXJtc1Byb3BzIGV4dGVuZHMgUXVldWVBbGFybXNPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhlIHF1ZXVlIHRvIG9ic2VydmUuXG4gICAqL1xuICByZWFkb25seSBxdWV1ZTogUXVldWU7XG59XG5cbi8vIFRPRE8gTmVlZCB0byBjb252ZXJ0IHRvIHVzaW5nIEFsYXJtc0Jhc2VcblxuLyoqXG4gKiBDcmVhdGVzIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBRdWV1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZUFsYXJtcyBleHRlbmRzIENvbnN0cnVjdCB7XG5cbiAgLyoqXG4gICAqIFRoZSBNb25pdG9yaW5nRmFjYWRlIGluc3RhbmNlIGVpdGhlciBwYXNzZWQgaW4gb3IgZ2VuZXJhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgbW9uaXRvcmluZ0ZhY2FkZTogTW9uaXRvcmluZ0ZhY2FkZTtcblxuICAvKipcbiAgICogR2VuZXJhdGVkIGNyaXRpY2FsIGFsYXJtcy5cbiAgICovXG4gIHJlYWRvbmx5IGNyaXRpY2FsQWxhcm1zOiBBbGFybVtdO1xuXG4gIC8qKlxuICAgKiBHZW5lcmF0ZWQgd2FybmluZyBhbGFybXMuXG4gICAqL1xuICByZWFkb25seSB3YXJuaW5nQWxhcm1zOiBBbGFybVtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHM6IFF1ZXVlQWxhcm1zUHJvcHM7XG5cbiAgcHJpdmF0ZSBhZGRSZWNvcmRWYWx1ZShyZWNvcmQ6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFsYXJtVGhyZXNob2xkPixcbiAgICAgICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeTogUXVldWVBbGFybUNhdGVnb3J5LFxuICAgICAgICAgICAgICAgICAgICAgICAgIHNwcm9wOiBrZXlvZiBRdWV1ZUFsYXJtc0NhdGVnb3J5UHJvcHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgdHByb3A6IHN0cmluZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VGhyZXNob2xkPzogbnVtYmVyfER1cmF0aW9uKSB7XG4gICAgY29uc3QgZnByb3BzID0gZ2V0UXVldWVBbGFybUNhdGVnb3J5UHJvcHModGhpcy5wcm9wcywgY2F0ZWdvcnkpO1xuICAgIG5ldyBRdWV1ZUFsYXJtRmFjYWRlKHtcbiAgICAgIHByb3A6IHRwcm9wLFxuICAgICAgdGhyZXNob2xkOiBmcHJvcHM/LltzcHJvcF0gYXMgbnVtYmVyIHwgRHVyYXRpb24sXG4gICAgICBkZWZhdWx0VGhyZXNob2xkLFxuICAgICAgdG9waWNzOiBmcHJvcHM/Lm5vdGlmeVRvcGljcyxcbiAgICAgIGFjdGlvbnM6IGZwcm9wcz8ubm90aWZ5QWN0aW9ucyxcbiAgICB9KS5hZGRDdXN0b21BbGFybVRocmVzaG9sZChjYXRlZ29yeSwgcmVjb3JkKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9SZWNvcmQoc3Byb3A6IGtleW9mIFF1ZXVlQWxhcm1zQ2F0ZWdvcnlQcm9wcywgdHByb3A6IHN0cmluZywgZGVmYXVsdFRocmVzaG9sZD86IG51bWJlcnxEdXJhdGlvbik6IFJlY29yZDxzdHJpbmcsIEN1c3RvbUFsYXJtVGhyZXNob2xkPiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgcmVjb3JkOiBSZWNvcmQ8c3RyaW5nLCBDdXN0b21BbGFybVRocmVzaG9sZD4gPSB7fTtcbiAgICB0aGlzLmFkZFJlY29yZFZhbHVlKHJlY29yZCwgUXVldWVBbGFybUNhdGVnb3J5LkNyaXRpY2FsLCBzcHJvcCwgdHByb3AsIGRlZmF1bHRUaHJlc2hvbGQpO1xuICAgIHRoaXMuYWRkUmVjb3JkVmFsdWUocmVjb3JkLCBRdWV1ZUFsYXJtQ2F0ZWdvcnkuV2FybmluZywgc3Byb3AsIHRwcm9wLCBkZWZhdWx0VGhyZXNob2xkKTtcbiAgICByZXR1cm4gT2JqZWN0LmtleXMocmVjb3JkKS5sZW5ndGggPiAwID8gcmVjb3JkIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRBbGFybShjYXRlZ29yeTogUXVldWVBbGFybUNhdGVnb3J5LCAuLi5hbGFybTogQWxhcm1bXSkge1xuICAgIGNvbnN0IGFyciA9IGNhdGVnb3J5ID09PSBRdWV1ZUFsYXJtQ2F0ZWdvcnkuQ3JpdGljYWwgPyB0aGlzLmNyaXRpY2FsQWxhcm1zIDogdGhpcy53YXJuaW5nQWxhcm1zO1xuICAgIGFyci5wdXNoKC4uLmFsYXJtKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBRdWV1ZUFsYXJtc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICB0aGlzLnByb3BzID0gcHJvcHM7XG4gICAgdGhpcy5jcml0aWNhbEFsYXJtcyA9IFtdO1xuICAgIHRoaXMud2FybmluZ0FsYXJtcyA9IFtdO1xuXG4gICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlID0gcHJvcHMubW9uaXRvcmluZ0ZhY2FkZT8/bmV3IE1vbml0b3JpbmdGYWNhZGUodGhpcywgJ01vbml0b3JpbmdGYWNhZGUnLCB7XG4gICAgICBtZXRyaWNGYWN0b3J5RGVmYXVsdHM6IHt9LFxuICAgICAgYWxhcm1GYWN0b3J5RGVmYXVsdHM6IHtcbiAgICAgICAgYWN0aW9uc0VuYWJsZWQ6IHRydWUsXG4gICAgICAgIGFsYXJtTmFtZVByZWZpeDogcHJvcHMuYWxhcm1OYW1lUHJlZml4Pz9gJHtTdGFjay5vZih0aGlzKS5zdGFja05hbWV9YFxuICAgICAgfSxcbiAgICAgIGRhc2hib2FyZEZhY3Rvcnk6IHByb3BzLmRhc2hib2FyZEZhY3RvcnlcbiAgICB9KTtcblxuICAgIGlmIChwcm9wcy5jcmVhdGVBbGFybXMgPz8gdHJ1ZSkge1xuICAgICAgaWYgKHByb3BzLnF1ZXVlLmRlYWRMZXR0ZXJRdWV1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHRoaXMubW9uaXRvcmluZ0ZhY2FkZS5tb25pdG9yU3FzUXVldWUoe1xuICAgICAgICAgIHF1ZXVlOiBwcm9wcy5xdWV1ZSxcbiAgICAgICAgICBhZGRRdWV1ZU1pblNpemVBbGFybTogdGhpcy50b1JlY29yZCgnbWluU2l6ZScsICdtaW5NZXNzYWdlQ291bnQnKSBhcyBSZWNvcmQ8c3RyaW5nLCBNaW5NZXNzYWdlQ291bnRUaHJlc2hvbGQ+LFxuICAgICAgICAgIGFkZFF1ZXVlTWF4U2l6ZUFsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhTaXplJywgJ21heE1lc3NhZ2VDb3VudCcpIGFzIFJlY29yZDxzdHJpbmcsIE1heE1lc3NhZ2VDb3VudFRocmVzaG9sZD4sXG4gICAgICAgICAgYWRkUXVldWVNYXhNZXNzYWdlQWdlQWxhcm06IHRoaXMudG9SZWNvcmQoJ21heEFnZUluU2Vjb25kcycsICdtYXhBZ2VJblNlY29uZHMnLCAxNSkgYXMgUmVjb3JkPHN0cmluZywgTWF4TWVzc2FnZUFnZVRocmVzaG9sZD4sXG4gICAgICAgICAgYWRkUXVldWVNYXhUaW1lVG9EcmFpbk1lc3NhZ2VzQWxhcm06IHRoaXMudG9SZWNvcmQoJ21heFRpbWVUb0RyYWluJywgJ21heFRpbWVUb0RyYWluJykgYXMgUmVjb3JkPHN0cmluZywgTWF4VGltZVRvRHJhaW5UaHJlc2hvbGQ+LFxuICAgICAgICAgIGFkZFF1ZXVlTWluSW5jb21pbmdNZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdtaW5JbmNvbWluZycsICdtaW5JbmNvbWluZ01lc3NhZ2VzQ291bnQnKSBhcyBSZWNvcmQ8c3RyaW5nLCBNaW5JbmNvbWluZ01lc3NhZ2VzQ291bnRUaHJlc2hvbGQ+LFxuICAgICAgICAgIGFkZFF1ZXVlTWF4SW5jb21pbmdNZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhJbmNvbWluZycsICdtYXhJbmNvbWluZ01lc3NhZ2VzQ291bnQnKSAgYXMgUmVjb3JkPHN0cmluZywgTWF4SW5jb21pbmdNZXNzYWdlc0NvdW50VGhyZXNob2xkPlxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9uaXRvcmluZ0ZhY2FkZS5tb25pdG9yU3FzUXVldWVXaXRoRGxxKHtcbiAgICAgICAgICBxdWV1ZTogcHJvcHMucXVldWUsXG4gICAgICAgICAgZGVhZExldHRlclF1ZXVlOiBwcm9wcy5xdWV1ZS5kZWFkTGV0dGVyUXVldWUucXVldWUsXG4gICAgICAgICAgYWRkUXVldWVNaW5TaXplQWxhcm06IHRoaXMudG9SZWNvcmQoJ21pblNpemUnLCAnbWluTWVzc2FnZUNvdW50JykgYXMgUmVjb3JkPHN0cmluZywgTWluTWVzc2FnZUNvdW50VGhyZXNob2xkPixcbiAgICAgICAgICBhZGRRdWV1ZU1heFNpemVBbGFybTogdGhpcy50b1JlY29yZCgnbWF4U2l6ZScsICdtYXhNZXNzYWdlQ291bnQnKSBhcyBSZWNvcmQ8c3RyaW5nLCBNYXhNZXNzYWdlQ291bnRUaHJlc2hvbGQ+LFxuICAgICAgICAgIGFkZFF1ZXVlTWF4TWVzc2FnZUFnZUFsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhBZ2VJblNlY29uZHMnLCAnbWF4QWdlSW5TZWNvbmRzJywgMTUpIGFzIFJlY29yZDxzdHJpbmcsIE1heE1lc3NhZ2VBZ2VUaHJlc2hvbGQ+LFxuICAgICAgICAgIGFkZFF1ZXVlTWF4VGltZVRvRHJhaW5NZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhUaW1lVG9EcmFpbicsICdtYXhUaW1lVG9EcmFpbicpIGFzIFJlY29yZDxzdHJpbmcsIE1heFRpbWVUb0RyYWluVGhyZXNob2xkPixcbiAgICAgICAgICBhZGRRdWV1ZU1pbkluY29taW5nTWVzc2FnZXNBbGFybTogdGhpcy50b1JlY29yZCgnbWluSW5jb21pbmcnLCAnbWluSW5jb21pbmdNZXNzYWdlc0NvdW50JykgYXMgUmVjb3JkPHN0cmluZywgTWluSW5jb21pbmdNZXNzYWdlc0NvdW50VGhyZXNob2xkPixcbiAgICAgICAgICBhZGRRdWV1ZU1heEluY29taW5nTWVzc2FnZXNBbGFybTogdGhpcy50b1JlY29yZCgnbWF4SW5jb21pbmcnLCAnbWF4SW5jb21pbmdNZXNzYWdlc0NvdW50JykgYXMgUmVjb3JkPHN0cmluZywgTWF4SW5jb21pbmdNZXNzYWdlc0NvdW50VGhyZXNob2xkPixcbiAgICAgICAgICBhZGREZWFkTGV0dGVyUXVldWVNYXhTaXplQWxhcm06IHRoaXMudG9SZWNvcmQoJ2RlYWRMZXR0ZXJRdWV1ZU1heFNpemUnLCAnbWF4TWVzc2FnZUNvdW50JywgMCkgYXMgUmVjb3JkPHN0cmluZywgTWF4TWVzc2FnZUNvdW50VGhyZXNob2xkPixcbiAgICAgICAgICBhZGREZWFkTGV0dGVyUXVldWVNYXhNZXNzYWdlQWdlQWxhcm06IHRoaXMudG9SZWNvcmQoJ2RlYWRMZXR0ZXJRdWV1ZU1heEFnZUluU2Vjb25kcycsICdtYXhBZ2VJblNlY29uZHMnKSBhcyBSZWNvcmQ8c3RyaW5nLCBNYXhNZXNzYWdlQWdlVGhyZXNob2xkPixcbiAgICAgICAgICBhZGREZWFkTGV0dGVyUXVldWVNYXhJbmNvbWluZ01lc3NhZ2VzQWxhcm06IHRoaXMudG9SZWNvcmQoJ2RlYWRMZXR0ZXJRdWV1ZU1heEluY29taW5nJywgJ21heEluY29taW5nTWVzc2FnZXNDb3VudCcpIGFzIFJlY29yZDxzdHJpbmcsIE1heEluY29taW5nTWVzc2FnZXNDb3VudFRocmVzaG9sZD4sXG4gICAgICAgICAgYWRkRGVhZExldHRlclF1ZXVlVG9TdW1tYXJ5RGFzaGJvYXJkOiB0cnVlXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWRkQWxhcm0oUXVldWVBbGFybUNhdGVnb3J5LkNyaXRpY2FsLCAuLi50aGlzLm1vbml0b3JpbmdGYWNhZGUuY3JlYXRlZEFsYXJtc1dpdGhEaXNhbWJpZ3VhdG9yKFF1ZXVlQWxhcm1DYXRlZ29yeS5Dcml0aWNhbCkubWFwKChhd2EpID0+IGF3YS5hbGFybSkpO1xuICAgICAgICB0aGlzLmFkZEFsYXJtKFF1ZXVlQWxhcm1DYXRlZ29yeS5XYXJuaW5nLCAuLi50aGlzLm1vbml0b3JpbmdGYWNhZGUuY3JlYXRlZEFsYXJtc1dpdGhEaXNhbWJpZ3VhdG9yKFF1ZXVlQWxhcm1DYXRlZ29yeS5XYXJuaW5nKS5tYXAoKGF3YSkgPT4gYXdhLmFsYXJtKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVldWUtYWxhcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicXVldWUtYWxhcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQVNBLHlEQUFzRjtBQW9GdEY7O0dBRUc7QUFDSCxNQUFhLFdBQVksU0FBUSwyQkFBd0Q7SUFFL0Usa0JBQWtCO1FBQ3hCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxLQUFLLFNBQVMsRUFBRTtZQUNsRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO2dCQUNwQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQjtnQkFDL0MsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztnQkFDdkIsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ2pFLG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDO2dCQUNqRSwwQkFBMEIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFFLGlCQUFpQixFQUFFLEVBQUUsQ0FBQztnQkFDbkYsbUNBQW1DLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztnQkFDdEYsZ0NBQWdDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUM7Z0JBQzFGLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDO2FBQzNGLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUM7Z0JBQzNDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCO2dCQUMvQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLO2dCQUN2QixlQUFlLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsZUFBZSxDQUFDLEtBQUs7Z0JBQ3ZELG9CQUFvQixFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLGlCQUFpQixDQUFDO2dCQUNqRSxvQkFBb0IsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxpQkFBaUIsQ0FBQztnQkFDakUsMEJBQTBCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxFQUFFLENBQUM7Z0JBQ25GLG1DQUFtQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLENBQUM7Z0JBQ3RGLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDO2dCQUMxRixnQ0FBZ0MsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBRSwwQkFBMEIsQ0FBQztnQkFDMUYsOEJBQThCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUM7Z0JBQzdGLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsZ0NBQWdDLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3hHLDBDQUEwQyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsNEJBQTRCLEVBQUUsMEJBQTBCLENBQUM7Z0JBQ25ILG9DQUFvQyxFQUFFLElBQUk7YUFDM0MsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUF1Qjs7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDeEIsVUFBSSxLQUFLLENBQUMsWUFBWSxtQ0FBSSxJQUFJLEVBQUU7WUFDOUIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FDM0I7SUFDSCxDQUFDO0NBQ0Y7QUF2Q0Qsa0NBdUNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBNYXhJbmNvbWluZ01lc3NhZ2VzQ291bnRUaHJlc2hvbGQsXG4gIE1heE1lc3NhZ2VBZ2VUaHJlc2hvbGQsXG4gIE1heE1lc3NhZ2VDb3VudFRocmVzaG9sZCwgTWF4VGltZVRvRHJhaW5UaHJlc2hvbGQsIE1pbkluY29taW5nTWVzc2FnZXNDb3VudFRocmVzaG9sZCxcbiAgTWluTWVzc2FnZUNvdW50VGhyZXNob2xkXG59IGZyb20gXCJjZGstbW9uaXRvcmluZy1jb25zdHJ1Y3RzXCI7XG5pbXBvcnQge1F1ZXVlfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0FsYXJtc0Jhc2UsIEFsYXJtc0NhdGVnb3J5T3B0aW9ucywgQWxhcm1zT3B0aW9uc30gZnJvbSBcIi4uLy4uL2F3cy1tb25pdG9yaW5nXCI7XG5cbi8qKlxuICogQ2F0ZWdvcnkgb3B0aW9ucyBmb3IgQ2xvdWRXYXRjaCBhbGFybXMgZm9yIFF1ZXVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZUFsYXJtc0NhdGVnb3J5T3B0aW9ucyBleHRlbmRzIEFsYXJtc0NhdGVnb3J5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIG51bWJlciBvZiBtZXNzYWdlcyB2aXNpYmxlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWluU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgbWVzc2FnZXMgdmlzaWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IG1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYXBwcm94aW1hdGUgYWdlIG9mIHRoZSBvbGRlc3QgbWVzc2FnZSBpbiB0aGUgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDE1IGZvciBjcml0aWNhbCBhbGFybVxuICAgKi9cbiAgcmVhZG9ubHkgbWF4QWdlSW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXhpbXVtIHRpbWUgdG8gZHJhaW4gdGhlIHF1ZXVlLlxuICAgKi9cbiAgcmVhZG9ubHkgbWF4VGltZVRvRHJhaW4/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogTWluaW11bSBudW1iZXIgb2YgaW5jb21pbmcgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSBtaW5JbmNvbWluZz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgaW5jb21pbmcgbWVzc2FnZXMuXG4gICAqL1xuICByZWFkb25seSBtYXhJbmNvbWluZz86IG51bWJlcjtcblxuICAvKipcbiAgICogTWF4aW11bSBudW1iZXIgb2YgdmlzaWJsZSBtZXNzYWdlcyBpbiB0aGUgZGVhZC1sZXR0ZXIgcXVldWVcbiAgICpcbiAgICogQGRlZmF1bHQgMCBmb3IgY3JpdGljYWwgYWxhcm1cbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJRdWV1ZU1heFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gYWdlIG9mIHRoZSBvbGRlc3QgbWVzc2FnZXMgaW4gdGhlIGRlYWQtbGV0dGVyIHF1ZXVlXG4gICAqL1xuICByZWFkb25seSBkZWFkTGV0dGVyUXVldWVNYXhBZ2VJblNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIGluY29taW5nIG1lc3NhZ2VzIGluIHRoZSBkZWFkLWxldHRlciBxdWV1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlclF1ZXVlTWF4SW5jb21pbmc/OiBudW1iZXI7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQ2xvdWRXYXRjaCBhbGFybXMgZm9yIFF1ZXVlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBRdWV1ZUFsYXJtc09wdGlvbnMgZXh0ZW5kcyBBbGFybXNPcHRpb25zPFF1ZXVlQWxhcm1zQ2F0ZWdvcnlPcHRpb25zPiB7XG5cbiAgLyoqXG4gICAqIEZsYWcgdG8gY3JlYXRlIGFsYXJtcy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY3JlYXRlQWxhcm1zPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogTmFtZSB0byB1c2UgZm9yIGFsYXJtLCBkZWZhdWx0IGlzIGNvbnN0cnVjdCBJRC5cbiAgICovXG4gIHJlYWRvbmx5IGFsYXJtRnJpZW5kbHlOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIFF1ZXVlQWxhcm1zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUXVldWVBbGFybXNQcm9wcyBleHRlbmRzIFF1ZXVlQWxhcm1zT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgcXVldWUgdG8gb2JzZXJ2ZS5cbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlOiBRdWV1ZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIENsb3VkV2F0Y2ggYWxhcm1zIGZvciBRdWV1ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBRdWV1ZUFsYXJtcyBleHRlbmRzIEFsYXJtc0Jhc2U8UXVldWVBbGFybXNDYXRlZ29yeU9wdGlvbnMsIFF1ZXVlQWxhcm1zUHJvcHM+IHtcblxuICBwcml2YXRlIGFkZFF1ZXVlTW9uaXRvcmluZygpIHtcbiAgICBpZiAodGhpcy5wcm9wcy5xdWV1ZS5kZWFkTGV0dGVyUXVldWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlLm1vbml0b3JTcXNRdWV1ZSh7XG4gICAgICAgIGFsYXJtRnJpZW5kbHlOYW1lOiB0aGlzLnByb3BzLmFsYXJtRnJpZW5kbHlOYW1lLFxuICAgICAgICBxdWV1ZTogdGhpcy5wcm9wcy5xdWV1ZSxcbiAgICAgICAgYWRkUXVldWVNaW5TaXplQWxhcm06IHRoaXMudG9SZWNvcmQoJ21pblNpemUnLCAnbWluTWVzc2FnZUNvdW50JyksXG4gICAgICAgIGFkZFF1ZXVlTWF4U2l6ZUFsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhTaXplJywgJ21heE1lc3NhZ2VDb3VudCcpLFxuICAgICAgICBhZGRRdWV1ZU1heE1lc3NhZ2VBZ2VBbGFybTogdGhpcy50b1JlY29yZCgnbWF4QWdlSW5TZWNvbmRzJywgJ21heEFnZUluU2Vjb25kcycsIDE1KSxcbiAgICAgICAgYWRkUXVldWVNYXhUaW1lVG9EcmFpbk1lc3NhZ2VzQWxhcm06IHRoaXMudG9SZWNvcmQoJ21heFRpbWVUb0RyYWluJywgJ21heFRpbWVUb0RyYWluJyksXG4gICAgICAgIGFkZFF1ZXVlTWluSW5jb21pbmdNZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdtaW5JbmNvbWluZycsICdtaW5JbmNvbWluZ01lc3NhZ2VzQ291bnQnKSxcbiAgICAgICAgYWRkUXVldWVNYXhJbmNvbWluZ01lc3NhZ2VzQWxhcm06IHRoaXMudG9SZWNvcmQoJ21heEluY29taW5nJywgJ21heEluY29taW5nTWVzc2FnZXNDb3VudCcpXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb25pdG9yaW5nRmFjYWRlLm1vbml0b3JTcXNRdWV1ZVdpdGhEbHEoe1xuICAgICAgICBhbGFybUZyaWVuZGx5TmFtZTogdGhpcy5wcm9wcy5hbGFybUZyaWVuZGx5TmFtZSxcbiAgICAgICAgcXVldWU6IHRoaXMucHJvcHMucXVldWUsXG4gICAgICAgIGRlYWRMZXR0ZXJRdWV1ZTogdGhpcy5wcm9wcy5xdWV1ZS5kZWFkTGV0dGVyUXVldWUucXVldWUsXG4gICAgICAgIGFkZFF1ZXVlTWluU2l6ZUFsYXJtOiB0aGlzLnRvUmVjb3JkKCdtaW5TaXplJywgJ21pbk1lc3NhZ2VDb3VudCcpLFxuICAgICAgICBhZGRRdWV1ZU1heFNpemVBbGFybTogdGhpcy50b1JlY29yZCgnbWF4U2l6ZScsICdtYXhNZXNzYWdlQ291bnQnKSxcbiAgICAgICAgYWRkUXVldWVNYXhNZXNzYWdlQWdlQWxhcm06IHRoaXMudG9SZWNvcmQoJ21heEFnZUluU2Vjb25kcycsICdtYXhBZ2VJblNlY29uZHMnLCAxNSksXG4gICAgICAgIGFkZFF1ZXVlTWF4VGltZVRvRHJhaW5NZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhUaW1lVG9EcmFpbicsICdtYXhUaW1lVG9EcmFpbicpLFxuICAgICAgICBhZGRRdWV1ZU1pbkluY29taW5nTWVzc2FnZXNBbGFybTogdGhpcy50b1JlY29yZCgnbWluSW5jb21pbmcnLCAnbWluSW5jb21pbmdNZXNzYWdlc0NvdW50JyksXG4gICAgICAgIGFkZFF1ZXVlTWF4SW5jb21pbmdNZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdtYXhJbmNvbWluZycsICdtYXhJbmNvbWluZ01lc3NhZ2VzQ291bnQnKSxcbiAgICAgICAgYWRkRGVhZExldHRlclF1ZXVlTWF4U2l6ZUFsYXJtOiB0aGlzLnRvUmVjb3JkKCdkZWFkTGV0dGVyUXVldWVNYXhTaXplJywgJ21heE1lc3NhZ2VDb3VudCcsIDApLFxuICAgICAgICBhZGREZWFkTGV0dGVyUXVldWVNYXhNZXNzYWdlQWdlQWxhcm06IHRoaXMudG9SZWNvcmQoJ2RlYWRMZXR0ZXJRdWV1ZU1heEFnZUluU2Vjb25kcycsICdtYXhBZ2VJblNlY29uZHMnKSxcbiAgICAgICAgYWRkRGVhZExldHRlclF1ZXVlTWF4SW5jb21pbmdNZXNzYWdlc0FsYXJtOiB0aGlzLnRvUmVjb3JkKCdkZWFkTGV0dGVyUXVldWVNYXhJbmNvbWluZycsICdtYXhJbmNvbWluZ01lc3NhZ2VzQ291bnQnKSxcbiAgICAgICAgYWRkRGVhZExldHRlclF1ZXVlVG9TdW1tYXJ5RGFzaGJvYXJkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUXVldWVBbGFybXNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGlmIChwcm9wcy5jcmVhdGVBbGFybXMgPz8gdHJ1ZSkge1xuICAgICAgdGhpcy5hZGRRdWV1ZU1vbml0b3JpbmcoKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -3,7 +3,7 @@ import { Duration, RemovalPolicy, ResourceEnvironment, Stack } from "aws-cdk-lib
3
3
  import { IQueue } from "aws-cdk-lib/aws-sqs";
4
4
  import * as kms from 'aws-cdk-lib/aws-kms';
5
5
  import { QueueAlarmsOptions } from "./queue-alarms";
6
- import { ObservedQueue } from "./observed-queue";
6
+ import { ExtendedQueue } from "./extended-queue";
7
7
  import { MetricOptions, Metric } from "aws-cdk-lib/aws-cloudwatch";
8
8
  import { PolicyStatement, AddToResourcePolicyResult, IGrantable, Grant } from "aws-cdk-lib/aws-iam";
9
9
  /**
@@ -50,7 +50,7 @@ export interface StandardQueueProps extends QueueAlarmsOptions {
50
50
  export declare class StandardQueue extends Construct implements IQueue {
51
51
  static readonly DEFAULT_MAX_RECEIVE_COUNT = 3;
52
52
  static readonly DEFAULT_RETENTION_PERIOD: Duration;
53
- readonly queue: ObservedQueue;
53
+ readonly queue: ExtendedQueue;
54
54
  readonly queueArn: string;
55
55
  readonly queueUrl: string;
56
56
  readonly queueName: string;
@@ -58,7 +58,7 @@ export declare class StandardQueue extends Construct implements IQueue {
58
58
  readonly fifo: boolean;
59
59
  readonly stack: Stack;
60
60
  readonly env: ResourceEnvironment;
61
- constructor(scope: Construct, id: string, props: StandardQueueProps);
61
+ constructor(scope: Construct, id: string, props?: StandardQueueProps);
62
62
  addToResourcePolicy(statement: PolicyStatement): AddToResourcePolicyResult;
63
63
  grantConsumeMessages(grantee: IGrantable): Grant;
64
64
  grantSendMessages(grantee: IGrantable): Grant;
@@ -4,15 +4,15 @@ exports.StandardQueue = void 0;
4
4
  const constructs_1 = require("constructs");
5
5
  const aws_cdk_lib_1 = require("aws-cdk-lib");
6
6
  const aws_sqs_1 = require("aws-cdk-lib/aws-sqs");
7
- const observed_queue_1 = require("./observed-queue");
7
+ const extended_queue_1 = require("./extended-queue");
8
8
  class StandardQueue extends constructs_1.Construct {
9
9
  constructor(scope, id, props) {
10
- var _a, _b, _c, _d, _e;
10
+ var _a, _b, _c, _d, _e, _f;
11
11
  super(scope, id);
12
- const maxReceiveCount = (_a = props.maxReceiveCount) !== null && _a !== void 0 ? _a : StandardQueue.DEFAULT_MAX_RECEIVE_COUNT;
13
- const encryption = props.encryptionMasterKey === undefined ? aws_sqs_1.QueueEncryption.KMS_MANAGED : aws_sqs_1.QueueEncryption.KMS;
14
- const encryptionMasterKey = props.encryptionMasterKey;
15
- const dataKeyReuse = (_b = props.dataKeyReuse) !== null && _b !== void 0 ? _b : aws_cdk_lib_1.Duration.minutes(15);
12
+ const maxReceiveCount = (_a = props === null || props === void 0 ? void 0 : props.maxReceiveCount) !== null && _a !== void 0 ? _a : StandardQueue.DEFAULT_MAX_RECEIVE_COUNT;
13
+ const encryption = (props === null || props === void 0 ? void 0 : props.encryptionMasterKey) === undefined ? aws_sqs_1.QueueEncryption.KMS_MANAGED : aws_sqs_1.QueueEncryption.KMS;
14
+ const encryptionMasterKey = props === null || props === void 0 ? void 0 : props.encryptionMasterKey;
15
+ const dataKeyReuse = (_b = props === null || props === void 0 ? void 0 : props.dataKeyReuse) !== null && _b !== void 0 ? _b : aws_cdk_lib_1.Duration.minutes(15);
16
16
  const deadLetterQueue = maxReceiveCount <= 0 ? undefined : {
17
17
  queue: new aws_sqs_1.Queue(this, 'DeadLetterQueue', {
18
18
  encryption,
@@ -22,15 +22,16 @@ class StandardQueue extends constructs_1.Construct {
22
22
  }),
23
23
  maxReceiveCount
24
24
  };
25
- this.queue = new observed_queue_1.ObservedQueue(this, 'Queue', {
25
+ this.queue = new extended_queue_1.ExtendedQueue(this, 'Queue', {
26
26
  ...props,
27
27
  deadLetterQueue,
28
28
  encryption,
29
29
  encryptionMasterKey,
30
30
  dataKeyReuse,
31
- retentionPeriod: (_c = props.retentionPeriod) !== null && _c !== void 0 ? _c : StandardQueue.DEFAULT_RETENTION_PERIOD,
32
- visibilityTimeout: (_d = props.visibilityTimeout) !== null && _d !== void 0 ? _d : aws_cdk_lib_1.Duration.seconds(30),
33
- alarmNamePrefix: (_e = props.alarmNamePrefix) !== null && _e !== void 0 ? _e : aws_cdk_lib_1.Stack.of(this).stackName + "-" + id
31
+ alarmFriendlyName: (_c = props === null || props === void 0 ? void 0 : props.alarmFriendlyName) !== null && _c !== void 0 ? _c : id,
32
+ retentionPeriod: (_d = props === null || props === void 0 ? void 0 : props.retentionPeriod) !== null && _d !== void 0 ? _d : StandardQueue.DEFAULT_RETENTION_PERIOD,
33
+ visibilityTimeout: (_e = props === null || props === void 0 ? void 0 : props.visibilityTimeout) !== null && _e !== void 0 ? _e : aws_cdk_lib_1.Duration.seconds(30),
34
+ alarmNamePrefix: (_f = props === null || props === void 0 ? void 0 : props.alarmNamePrefix) !== null && _f !== void 0 ? _f : aws_cdk_lib_1.Stack.of(this).stackName + "-" + id
34
35
  });
35
36
  this.queueArn = this.queue.queueArn;
36
37
  this.queueUrl = this.queue.queueUrl;
@@ -93,4 +94,4 @@ class StandardQueue extends constructs_1.Construct {
93
94
  exports.StandardQueue = StandardQueue;
94
95
  StandardQueue.DEFAULT_MAX_RECEIVE_COUNT = 3;
95
96
  StandardQueue.DEFAULT_RETENTION_PERIOD = aws_cdk_lib_1.Duration.seconds(1209600);
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsNkNBQWdGO0FBQ2hGLGlEQUFvRjtBQUdwRixxREFBK0M7QUFtRC9DLE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBZ0IxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXlCOztRQUNqRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sZUFBZSxTQUFHLEtBQUssQ0FBQyxlQUFlLG1DQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztRQUN6RixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsbUJBQW1CLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyx5QkFBZSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMseUJBQWUsQ0FBQyxHQUFHLENBQUM7UUFDL0csTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUM7UUFDdEQsTUFBTSxZQUFZLFNBQUcsS0FBSyxDQUFDLFlBQVksbUNBQUksc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFaEUsTUFBTSxlQUFlLEdBQWdDLGVBQWUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDdEYsS0FBSyxFQUFFLElBQUksZUFBSyxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtnQkFDeEMsVUFBVTtnQkFDVixtQkFBbUI7Z0JBQ25CLFlBQVk7Z0JBQ1osZUFBZSxFQUFFLGFBQWEsQ0FBQyx3QkFBd0I7YUFDeEQsQ0FBQztZQUNGLGVBQWU7U0FDaEIsQ0FBQztRQUVGLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSw4QkFBYSxDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDNUMsR0FBRyxLQUFLO1lBQ1IsZUFBZTtZQUNmLFVBQVU7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LENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBcUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFxQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQXFCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBcUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBdEhILHNDQXVIQztBQXJIaUIsdUNBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLHNDQUF3QixHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0R1cmF0aW9uLCBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZUVudmlyb25tZW50LCBTdGFja30gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0RlYWRMZXR0ZXJRdWV1ZSwgSVF1ZXVlLCBRdWV1ZSwgUXVldWVFbmNyeXB0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHtRdWV1ZUFsYXJtc09wdGlvbnN9IGZyb20gXCIuL3F1ZXVlLWFsYXJtc1wiO1xuaW1wb3J0IHtPYnNlcnZlZFF1ZXVlfSBmcm9tIFwiLi9vYnNlcnZlZC1xdWV1ZVwiO1xuaW1wb3J0IHtNZXRyaWNPcHRpb25zLCBNZXRyaWN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHtQb2xpY3lTdGF0ZW1lbnQsIEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQsIElHcmFudGFibGUsIEdyYW50fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgU3RhbmRhcmRRdWV1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkUXVldWVQcm9wcyBleHRlbmRzIFF1ZXVlQWxhcm1zT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBBbWF6b24gU1FTIHJldGFpbnMgYSBtZXNzYWdlLiBWYWx1ZSBtdXN0IGJlIGJldHdlZW5cbiAgICogNjAgYW5kIDEyMDk2MDAgc2Vjb25kcyAoMTQgZGF5cykuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMTIwOTYwMClcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvblBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYSBjb25zdW1lciBoYXMgdG8gaGFuZGxlIHRoZSBtZXNzYWdlIGFuZCBkZWxldGUgaXRcbiAgICogZnJvbSB0aGUgcXVldWUgYmVmb3JlIGl0IGJlY29tZXMgdmlzaWJsZSBhZ2FpbiBmb3IgYW5vdGhlciBjb25zdW1lci4gVmFsdWVcbiAgICogbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDQzMjAwIHNlY29uZHMgKDEyIGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHZpc2liaWxpdHlUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi4gSWYgbm90IHNldCwgdGhlIEFXUyBtYXN0ZXIga2V5IGZvciBTUVNcbiAgICogd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbk1hc3RlcktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhhdCBBbWF6b24gU1FTIHJldXNlcyBhIGRhdGEga2V5IGJlZm9yZSBjYWxsaW5nIEtNUyBhZ2Fpbi5cbiAgICogVGhpcyB2YWx1ZSBhZmZlY3RzIHByaWNpbmcgYXMgeW91IGFyZSBjaGFyZ2VkIGZvciBLTVMgdXNhZ2UuIFZhbHVlIG11c3QgYmVcbiAgICogYmV0d2VlbiA2MCBhbmQgODYsNDAwIHNlY29uZHMgKDI0IGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFLZXlSZXVzZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYSBtZXNzYWdlIGNhbiBiZSB1bnN1Y2Nlc3NmdWwgYmVmb3JlIGJlaW5nIG1vdmVkXG4gICAqIHRvIHRoZSBkZWFkLWxldHRlciBxdWV1ZS4gU2V0IHRoaXMgdmFsdWUgdG8gLTEgdG8gZGlzYWJsZSB0aGUgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IG1heFJlY2VpdmVDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUXVldWUgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUXVldWUge1xuXG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX01BWF9SRUNFSVZFX0NPVU5UID0gMztcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUkVURU5USU9OX1BFUklPRCA9IER1cmF0aW9uLnNlY29uZHMoMTIwOTYwMCk7XG5cbiAgcmVhZG9ubHkgcXVldWU6IE9ic2VydmVkUXVldWU7XG5cbiAgLy8gRnJvbSBJUXVldWVcbiAgcmVhZG9ubHkgcXVldWVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuY3J5cHRpb25NYXN0ZXJLZXk/OiBrbXMuSUtleSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrO1xuICByZWFkb25seSBlbnY6IFJlc291cmNlRW52aXJvbm1lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFN0YW5kYXJkUXVldWVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBjb25zdCBtYXhSZWNlaXZlQ291bnQgPSBwcm9wcy5tYXhSZWNlaXZlQ291bnQgPz8gU3RhbmRhcmRRdWV1ZS5ERUZBVUxUX01BWF9SRUNFSVZFX0NPVU5UO1xuICAgIGNvbnN0IGVuY3J5cHRpb24gPSBwcm9wcy5lbmNyeXB0aW9uTWFzdGVyS2V5ID09PSB1bmRlZmluZWQgPyBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRUQgOiBRdWV1ZUVuY3J5cHRpb24uS01TO1xuICAgIGNvbnN0IGVuY3J5cHRpb25NYXN0ZXJLZXkgPSBwcm9wcy5lbmNyeXB0aW9uTWFzdGVyS2V5O1xuICAgIGNvbnN0IGRhdGFLZXlSZXVzZSA9IHByb3BzLmRhdGFLZXlSZXVzZSA/PyBEdXJhdGlvbi5taW51dGVzKDE1KTtcblxuICAgIGNvbnN0IGRlYWRMZXR0ZXJRdWV1ZTogRGVhZExldHRlclF1ZXVlIHwgdW5kZWZpbmVkID0gbWF4UmVjZWl2ZUNvdW50IDw9IDAgPyB1bmRlZmluZWQgOiB7XG4gICAgICBxdWV1ZTogbmV3IFF1ZXVlKHRoaXMsICdEZWFkTGV0dGVyUXVldWUnLCB7XG4gICAgICAgIGVuY3J5cHRpb24sXG4gICAgICAgIGVuY3J5cHRpb25NYXN0ZXJLZXksXG4gICAgICAgIGRhdGFLZXlSZXVzZSxcbiAgICAgICAgcmV0ZW50aW9uUGVyaW9kOiBTdGFuZGFyZFF1ZXVlLkRFRkFVTFRfUkVURU5USU9OX1BFUklPRFxuICAgICAgfSksXG4gICAgICBtYXhSZWNlaXZlQ291bnRcbiAgICB9O1xuXG4gICAgdGhpcy5xdWV1ZSA9IG5ldyBPYnNlcnZlZFF1ZXVlKHRoaXMsICdRdWV1ZScsIHtcbiAgICAgIC4uLnByb3BzLFxuICAgICAgZGVhZExldHRlclF1ZXVlLFxuICAgICAgZW5jcnlwdGlvbixcbiAgICAgIGVuY3J5cHRpb25NYXN0ZXJLZXksXG4gICAgICBkYXRhS2V5UmV1c2UsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IHByb3BzLnJldGVudGlvblBlcmlvZCA/PyBTdGFuZGFyZFF1ZXVlLkRFRkFVTFRfUkVURU5USU9OX1BFUklPRCxcbiAgICAgIHZpc2liaWxpdHlUaW1lb3V0OiBwcm9wcy52aXNpYmlsaXR5VGltZW91dCA/PyBEdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICAgIGFsYXJtTmFtZVByZWZpeDogcHJvcHMuYWxhcm1OYW1lUHJlZml4Pz9TdGFjay5vZih0aGlzKS5zdGFja05hbWUgKyBcIi1cIiArIGlkXG4gICAgfSk7XG5cbiAgICB0aGlzLnF1ZXVlQXJuID0gdGhpcy5xdWV1ZS5xdWV1ZUFybjtcbiAgICB0aGlzLnF1ZXVlVXJsID0gdGhpcy5xdWV1ZS5xdWV1ZVVybDtcbiAgICB0aGlzLnF1ZXVlTmFtZSA9IHRoaXMucXVldWUucXVldWVOYW1lO1xuICAgIHRoaXMuZW5jcnlwdGlvbk1hc3RlcktleSA9IHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleTtcbiAgICB0aGlzLmZpZm8gPSB0aGlzLnF1ZXVlLmZpZm87XG4gICAgdGhpcy5zdGFjayA9IHRoaXMucXVldWUuc3RhY2s7XG4gICAgdGhpcy5lbnYgPSB0aGlzLnF1ZXVlLmVudjtcbiAgfVxuXG4gIC8vIEZyb20gSVF1ZXVlXG5cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50KTtcbiAgfVxuXG4gIGdyYW50Q29uc3VtZU1lc3NhZ2VzKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMoZ3JhbnRlZSk7XG4gIH1cblxuICBncmFudFNlbmRNZXNzYWdlcyhncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWUpO1xuICB9XG5cbiAgZ3JhbnRQdXJnZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50UHVyZ2UoZ3JhbnRlZSk7XG4gIH1cblxuICBncmFudChncmFudGVlOiBJR3JhbnRhYmxlLCAuLi5xdWV1ZUFjdGlvbnM6IHN0cmluZ1tdKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50KGdyYW50ZWUsIC4uLnF1ZXVlQWN0aW9ucyk7XG4gIH1cblxuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpYyhtZXRyaWNOYW1lLCBwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZUFnZU9mT2xkZXN0TWVzc2FnZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY0FwcHJveGltYXRlQWdlT2ZPbGRlc3RNZXNzYWdlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc0RlbGF5ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNEZWxheWVkKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc05vdFZpc2libGUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc1Zpc2libGUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY051bWJlck9mRW1wdHlSZWNlaXZlcyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mRW1wdHlSZWNlaXZlcyhwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRGVsZXRlZChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNEZWxldGVkKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY051bWJlck9mTWVzc2FnZXNSZWNlaXZlZChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNSZWNlaXZlZChwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzU2VudChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNTZW50KHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY1NlbnRNZXNzYWdlU2l6ZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY1NlbnRNZXNzYWdlU2l6ZShwcm9wcyk7XG4gIH1cblxuICBhcHBseVJlbW92YWxQb2xpY3kocG9saWN5OiBSZW1vdmFsUG9saWN5KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeSk7XG4gIH1cbn1cbiJdfQ==
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcXVldWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1xdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyQ0FBcUM7QUFDckMsNkNBQWdGO0FBQ2hGLGlEQUFvRjtBQUdwRixxREFBK0M7QUFtRC9DLE1BQWEsYUFBYyxTQUFRLHNCQUFTO0lBZ0IxQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTBCOztRQUNsRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sZUFBZSxTQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxlQUFlLG1DQUFJLGFBQWEsQ0FBQyx5QkFBeUIsQ0FBQztRQUMxRixNQUFNLFVBQVUsR0FBRyxDQUFBLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxtQkFBbUIsTUFBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLHlCQUFlLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyx5QkFBZSxDQUFDLEdBQUcsQ0FBQztRQUNoSCxNQUFNLG1CQUFtQixHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRSxtQkFBbUIsQ0FBQztRQUN2RCxNQUFNLFlBQVksU0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsWUFBWSxtQ0FBSSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVqRSxNQUFNLGVBQWUsR0FBZ0MsZUFBZSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN0RixLQUFLLEVBQUUsSUFBSSxlQUFLLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO2dCQUN4QyxVQUFVO2dCQUNWLG1CQUFtQjtnQkFDbkIsWUFBWTtnQkFDWixlQUFlLEVBQUUsYUFBYSxDQUFDLHdCQUF3QjthQUN4RCxDQUFDO1lBQ0YsZUFBZTtTQUNoQixDQUFDO1FBRUYsSUFB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QUFJLENBQUMsS0FBSyxDQUFDLHdDQUF3QyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCwyQkFBMkIsQ0FBQyxLQUFxQjtRQUMvQyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELDZCQUE2QixDQUFDLEtBQXFCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsOEJBQThCLENBQUMsS0FBcUI7UUFDbEQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCwwQkFBMEIsQ0FBQyxLQUFxQjtRQUM5QyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsMEJBQTBCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQXFCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsTUFBcUI7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQy9DLENBQUM7O0FBdkhILHNDQXdIQztBQXRIaUIsdUNBQXlCLEdBQUcsQ0FBQyxDQUFDO0FBQzlCLHNDQUF3QixHQUFHLHNCQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0R1cmF0aW9uLCBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZUVudmlyb25tZW50LCBTdGFja30gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge0RlYWRMZXR0ZXJRdWV1ZSwgSVF1ZXVlLCBRdWV1ZSwgUXVldWVFbmNyeXB0aW9ufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHtRdWV1ZUFsYXJtc09wdGlvbnN9IGZyb20gXCIuL3F1ZXVlLWFsYXJtc1wiO1xuaW1wb3J0IHtFeHRlbmRlZFF1ZXVlfSBmcm9tIFwiLi9leHRlbmRlZC1xdWV1ZVwiO1xuaW1wb3J0IHtNZXRyaWNPcHRpb25zLCBNZXRyaWN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiO1xuaW1wb3J0IHtQb2xpY3lTdGF0ZW1lbnQsIEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQsIElHcmFudGFibGUsIEdyYW50fSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgU3RhbmRhcmRRdWV1ZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YW5kYXJkUXVldWVQcm9wcyBleHRlbmRzIFF1ZXVlQWxhcm1zT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2Vjb25kcyBBbWF6b24gU1FTIHJldGFpbnMgYSBtZXNzYWdlLiBWYWx1ZSBtdXN0IGJlIGJldHdlZW5cbiAgICogNjAgYW5kIDEyMDk2MDAgc2Vjb25kcyAoMTQgZGF5cykuXG4gICAqXG4gICAqIEBkZWZhdWx0IER1cmF0aW9uLnNlY29uZHMoMTIwOTYwMClcbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHJldGVudGlvblBlcmlvZD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgYSBjb25zdW1lciBoYXMgdG8gaGFuZGxlIHRoZSBtZXNzYWdlIGFuZCBkZWxldGUgaXRcbiAgICogZnJvbSB0aGUgcXVldWUgYmVmb3JlIGl0IGJlY29tZXMgdmlzaWJsZSBhZ2FpbiBmb3IgYW5vdGhlciBjb25zdW1lci4gVmFsdWVcbiAgICogbXVzdCBiZSBiZXR3ZWVuIDAgYW5kIDQzMjAwIHNlY29uZHMgKDEyIGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHZpc2liaWxpdHlUaW1lb3V0PzogRHVyYXRpb247XG5cbiAgLyoqXG4gICAqIFRoZSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi4gSWYgbm90IHNldCwgdGhlIEFXUyBtYXN0ZXIga2V5IGZvciBTUVNcbiAgICogd2lsbCBiZSB1c2VkLlxuICAgKi9cbiAgcmVhZG9ubHkgZW5jcnlwdGlvbk1hc3RlcktleT86IGttcy5JS2V5O1xuXG4gIC8qKlxuICAgKiBUaGUgbGVuZ3RoIG9mIHRpbWUgdGhhdCBBbWF6b24gU1FTIHJldXNlcyBhIGRhdGEga2V5IGJlZm9yZSBjYWxsaW5nIEtNUyBhZ2Fpbi5cbiAgICogVGhpcyB2YWx1ZSBhZmZlY3RzIHByaWNpbmcgYXMgeW91IGFyZSBjaGFyZ2VkIGZvciBLTVMgdXNhZ2UuIFZhbHVlIG11c3QgYmVcbiAgICogYmV0d2VlbiA2MCBhbmQgODYsNDAwIHNlY29uZHMgKDI0IGhvdXJzKS5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24ubWludXRlcygxNSlcbiAgICovXG4gIHJlYWRvbmx5IGRhdGFLZXlSZXVzZT86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgdGltZXMgYSBtZXNzYWdlIGNhbiBiZSB1bnN1Y2Nlc3NmdWwgYmVmb3JlIGJlaW5nIG1vdmVkXG4gICAqIHRvIHRoZSBkZWFkLWxldHRlciBxdWV1ZS4gU2V0IHRoaXMgdmFsdWUgdG8gLTEgdG8gZGlzYWJsZSB0aGUgZGVhZC1sZXR0ZXIgcXVldWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IG1heFJlY2VpdmVDb3VudD86IG51bWJlcjtcbn1cblxuZXhwb3J0IGNsYXNzIFN0YW5kYXJkUXVldWUgZXh0ZW5kcyBDb25zdHJ1Y3QgaW1wbGVtZW50cyBJUXVldWUge1xuXG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX01BWF9SRUNFSVZFX0NPVU5UID0gMztcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUkVURU5USU9OX1BFUklPRCA9IER1cmF0aW9uLnNlY29uZHMoMTIwOTYwMCk7XG5cbiAgcmVhZG9ubHkgcXVldWU6IEV4dGVuZGVkUXVldWU7XG5cbiAgLy8gRnJvbSBJUXVldWVcbiAgcmVhZG9ubHkgcXVldWVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVVcmw6IHN0cmluZztcbiAgcmVhZG9ubHkgcXVldWVOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVuY3J5cHRpb25NYXN0ZXJLZXk/OiBrbXMuSUtleSB8IHVuZGVmaW5lZDtcbiAgcmVhZG9ubHkgZmlmbzogYm9vbGVhbjtcbiAgcmVhZG9ubHkgc3RhY2s6IFN0YWNrO1xuICByZWFkb25seSBlbnY6IFJlc291cmNlRW52aXJvbm1lbnQ7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBTdGFuZGFyZFF1ZXVlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbWF4UmVjZWl2ZUNvdW50ID0gcHJvcHM/Lm1heFJlY2VpdmVDb3VudCA/PyBTdGFuZGFyZFF1ZXVlLkRFRkFVTFRfTUFYX1JFQ0VJVkVfQ09VTlQ7XG4gICAgY29uc3QgZW5jcnlwdGlvbiA9IHByb3BzPy5lbmNyeXB0aW9uTWFzdGVyS2V5ID09PSB1bmRlZmluZWQgPyBRdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRUQgOiBRdWV1ZUVuY3J5cHRpb24uS01TO1xuICAgIGNvbnN0IGVuY3J5cHRpb25NYXN0ZXJLZXkgPSBwcm9wcz8uZW5jcnlwdGlvbk1hc3RlcktleTtcbiAgICBjb25zdCBkYXRhS2V5UmV1c2UgPSBwcm9wcz8uZGF0YUtleVJldXNlID8/IER1cmF0aW9uLm1pbnV0ZXMoMTUpO1xuXG4gICAgY29uc3QgZGVhZExldHRlclF1ZXVlOiBEZWFkTGV0dGVyUXVldWUgfCB1bmRlZmluZWQgPSBtYXhSZWNlaXZlQ291bnQgPD0gMCA/IHVuZGVmaW5lZCA6IHtcbiAgICAgIHF1ZXVlOiBuZXcgUXVldWUodGhpcywgJ0RlYWRMZXR0ZXJRdWV1ZScsIHtcbiAgICAgICAgZW5jcnlwdGlvbixcbiAgICAgICAgZW5jcnlwdGlvbk1hc3RlcktleSxcbiAgICAgICAgZGF0YUtleVJldXNlLFxuICAgICAgICByZXRlbnRpb25QZXJpb2Q6IFN0YW5kYXJkUXVldWUuREVGQVVMVF9SRVRFTlRJT05fUEVSSU9EXG4gICAgICB9KSxcbiAgICAgIG1heFJlY2VpdmVDb3VudFxuICAgIH07XG5cbiAgICB0aGlzLnF1ZXVlID0gbmV3IEV4dGVuZGVkUXVldWUodGhpcywgJ1F1ZXVlJywge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBkZWFkTGV0dGVyUXVldWUsXG4gICAgICBlbmNyeXB0aW9uLFxuICAgICAgZW5jcnlwdGlvbk1hc3RlcktleSxcbiAgICAgIGRhdGFLZXlSZXVzZSxcbiAgICAgIGFsYXJtRnJpZW5kbHlOYW1lOiBwcm9wcz8uYWxhcm1GcmllbmRseU5hbWUgPz8gaWQsXG4gICAgICByZXRlbnRpb25QZXJpb2Q6IHByb3BzPy5yZXRlbnRpb25QZXJpb2QgPz8gU3RhbmRhcmRRdWV1ZS5ERUZBVUxUX1JFVEVOVElPTl9QRVJJT0QsXG4gICAgICB2aXNpYmlsaXR5VGltZW91dDogcHJvcHM/LnZpc2liaWxpdHlUaW1lb3V0ID8/IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgICAgYWxhcm1OYW1lUHJlZml4OiBwcm9wcz8uYWxhcm1OYW1lUHJlZml4Pz9TdGFjay5vZih0aGlzKS5zdGFja05hbWUgKyBcIi1cIiArIGlkXG4gICAgfSk7XG5cbiAgICB0aGlzLnF1ZXVlQXJuID0gdGhpcy5xdWV1ZS5xdWV1ZUFybjtcbiAgICB0aGlzLnF1ZXVlVXJsID0gdGhpcy5xdWV1ZS5xdWV1ZVVybDtcbiAgICB0aGlzLnF1ZXVlTmFtZSA9IHRoaXMucXVldWUucXVldWVOYW1lO1xuICAgIHRoaXMuZW5jcnlwdGlvbk1hc3RlcktleSA9IHRoaXMucXVldWUuZW5jcnlwdGlvbk1hc3RlcktleTtcbiAgICB0aGlzLmZpZm8gPSB0aGlzLnF1ZXVlLmZpZm87XG4gICAgdGhpcy5zdGFjayA9IHRoaXMucXVldWUuc3RhY2s7XG4gICAgdGhpcy5lbnYgPSB0aGlzLnF1ZXVlLmVudjtcbiAgfVxuXG4gIC8vIEZyb20gSVF1ZXVlXG5cbiAgYWRkVG9SZXNvdXJjZVBvbGljeShzdGF0ZW1lbnQ6IFBvbGljeVN0YXRlbWVudCk6IEFkZFRvUmVzb3VyY2VQb2xpY3lSZXN1bHQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmFkZFRvUmVzb3VyY2VQb2xpY3koc3RhdGVtZW50KTtcbiAgfVxuXG4gIGdyYW50Q29uc3VtZU1lc3NhZ2VzKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMoZ3JhbnRlZSk7XG4gIH1cblxuICBncmFudFNlbmRNZXNzYWdlcyhncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGdyYW50ZWUpO1xuICB9XG5cbiAgZ3JhbnRQdXJnZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50UHVyZ2UoZ3JhbnRlZSk7XG4gIH1cblxuICBncmFudChncmFudGVlOiBJR3JhbnRhYmxlLCAuLi5xdWV1ZUFjdGlvbnM6IHN0cmluZ1tdKTogR3JhbnQge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLmdyYW50KGdyYW50ZWUsIC4uLnF1ZXVlQWN0aW9ucyk7XG4gIH1cblxuICBtZXRyaWMobWV0cmljTmFtZTogc3RyaW5nLCBwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpYyhtZXRyaWNOYW1lLCBwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNBcHByb3hpbWF0ZUFnZU9mT2xkZXN0TWVzc2FnZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY0FwcHJveGltYXRlQWdlT2ZPbGRlc3RNZXNzYWdlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc0RlbGF5ZWQocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNEZWxheWVkKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc05vdFZpc2libGUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNOb3RWaXNpYmxlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY0FwcHJveGltYXRlTnVtYmVyT2ZNZXNzYWdlc1Zpc2libGUocHJvcHM/OiBNZXRyaWNPcHRpb25zKTogTWV0cmljIHtcbiAgICByZXR1cm4gdGhpcy5xdWV1ZS5tZXRyaWNBcHByb3hpbWF0ZU51bWJlck9mTWVzc2FnZXNWaXNpYmxlKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY051bWJlck9mRW1wdHlSZWNlaXZlcyhwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mRW1wdHlSZWNlaXZlcyhwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzRGVsZXRlZChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNEZWxldGVkKHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY051bWJlck9mTWVzc2FnZXNSZWNlaXZlZChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNSZWNlaXZlZChwcm9wcyk7XG4gIH1cblxuICBtZXRyaWNOdW1iZXJPZk1lc3NhZ2VzU2VudChwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY051bWJlck9mTWVzc2FnZXNTZW50KHByb3BzKTtcbiAgfVxuXG4gIG1ldHJpY1NlbnRNZXNzYWdlU2l6ZShwcm9wcz86IE1ldHJpY09wdGlvbnMpOiBNZXRyaWMge1xuICAgIHJldHVybiB0aGlzLnF1ZXVlLm1ldHJpY1NlbnRNZXNzYWdlU2l6ZShwcm9wcyk7XG4gIH1cblxuICBhcHBseVJlbW92YWxQb2xpY3kocG9saWN5OiBSZW1vdmFsUG9saWN5KTogdm9pZCB7XG4gICAgcmV0dXJuIHRoaXMucXVldWUuYXBwbHlSZW1vdmFsUG9saWN5KHBvbGljeSk7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "truemark-cdk-lib",
3
- "version": "0.0.36",
3
+ "version": "0.0.37",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "scripts": {
@@ -49,5 +49,5 @@
49
49
  "@aws-cdk/aws-synthetics-alpha": "^2.18.0-alpha.0",
50
50
  "cdk-monitoring-constructs": "^1.10.0"
51
51
  },
52
- "gitHead": "fb767e531a1eb5839fe1dc235da96747cea4a86d"
52
+ "gitHead": "f2ef6f417c0e3125a4f812f2478cdaaaba47cf2e"
53
53
  }
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const assertions_1 = require("aws-cdk-lib/assertions");
4
+ const aws_lambda_1 = require("../../aws-lambda");
5
+ const test_helper_1 = require("../test-helper");
6
+ test("Test PythonFunction", () => {
7
+ const stack = test_helper_1.TestHelper.stack();
8
+ new aws_lambda_1.StandardPythonFunction(stack, "TestFunction", {
9
+ entry: test_helper_1.TestHelper.resolveTestFiles("python-lambda")
10
+ });
11
+ const template = assertions_1.Template.fromStack(stack);
12
+ template.hasResourceProperties(test_helper_1.ResourceType.LAMBDA_FUNCTION, {
13
+ Runtime: "python3.9"
14
+ });
15
+ template.resourceCountIs(test_helper_1.ResourceType.CLOUDWATCH_ALARM, 3);
16
+ });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcHl0aG9uLWZ1bmN0aW9uLnRlc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFuZGFyZC1weXRob24tZnVuY3Rpb24udGVzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLHVEQUFnRDtBQUNoRCxpREFBd0Q7QUFDeEQsZ0RBQXdEO0FBRXhELElBQUksQ0FBQyxxQkFBcUIsRUFBRSxHQUFHLEVBQUU7SUFDL0IsTUFBTSxLQUFLLEdBQUcsd0JBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqQyxJQUFJLG1DQUFzQixDQUFDLEtBQUssRUFBRSxjQUFjLEVBQUU7UUFDaEQsS0FBSyxFQUFFLHdCQUFVLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDO0tBQ3BELENBQUMsQ0FBQztJQUNILE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQywwQkFBWSxDQUFDLGVBQWUsRUFBRTtRQUMzRCxPQUFPLEVBQUUsV0FBVztLQUNyQixDQUFDLENBQUM7SUFDSCxRQUFRLENBQUMsZUFBZSxDQUFDLDBCQUFZLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1RlbXBsYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuaW1wb3J0IHtTdGFuZGFyZFB5dGhvbkZ1bmN0aW9ufSBmcm9tIFwiLi4vLi4vYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtSZXNvdXJjZVR5cGUsIFRlc3RIZWxwZXJ9IGZyb20gXCIuLi90ZXN0LWhlbHBlclwiO1xuXG50ZXN0KFwiVGVzdCBQeXRob25GdW5jdGlvblwiLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuICBuZXcgU3RhbmRhcmRQeXRob25GdW5jdGlvbihzdGFjaywgXCJUZXN0RnVuY3Rpb25cIiwge1xuICAgIGVudHJ5OiBUZXN0SGVscGVyLnJlc29sdmVUZXN0RmlsZXMoXCJweXRob24tbGFtYmRhXCIpXG4gIH0pO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhSZXNvdXJjZVR5cGUuTEFNQkRBX0ZVTkNUSU9OLCB7XG4gICAgUnVudGltZTogXCJweXRob24zLjlcIlxuICB9KTtcbiAgdGVtcGxhdGUucmVzb3VyY2VDb3VudElzKFJlc291cmNlVHlwZS5DTE9VRFdBVENIX0FMQVJNLCAzKTtcbn0pO1xuIl19
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- const cdk = require("aws-cdk-lib");
4
3
  const aws_sqs_1 = require("../../aws-sqs");
5
4
  const assertions_1 = require("aws-cdk-lib/assertions");
5
+ const test_helper_1 = require("../test-helper");
6
6
  test("Standard Queue Test", () => {
7
- const app = new cdk.App();
8
- const stack = new cdk.Stack(app, "TestStack");
9
- new aws_sqs_1.StandardQueue(stack, 'Test1', {});
10
- new aws_sqs_1.StandardQueue(stack, 'Test2', {});
7
+ const stack = test_helper_1.TestHelper.stack();
8
+ new aws_sqs_1.StandardQueue(stack, "Test1");
9
+ new aws_sqs_1.StandardQueue(stack, "Test2");
11
10
  const template = assertions_1.Template.fromStack(stack);
12
11
  template.hasResourceProperties("AWS::SQS::Queue", {});
12
+ test_helper_1.TestHelper.logResources(template, "AWS::CloudWatch::Alarm");
13
13
  // console.log(template.findResources("AWS::CloudWatch::Alarm"));
14
14
  // console.log(template.findResources("AWS::SQS::Queue"));
15
15
  });
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcXVldWUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YW5kYXJkLXF1ZXVlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxtQ0FBbUM7QUFDbkMsMkNBQTRDO0FBQzVDLHVEQUFnRDtBQUVoRCxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQzFCLE1BQU0sS0FBSyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDOUMsSUFBSSx1QkFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsSUFBSSx1QkFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDdEMsTUFBTSxRQUFRLEdBQUcscUJBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDM0MsUUFBUSxDQUFDLHFCQUFxQixDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELGlFQUFpRTtJQUNqRSwwREFBMEQ7QUFDNUQsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1N0YW5kYXJkUXVldWV9IGZyb20gXCIuLi8uLi9hd3Mtc3FzXCI7XG5pbXBvcnQge1RlbXBsYXRlfSBmcm9tIFwiYXdzLWNkay1saWIvYXNzZXJ0aW9uc1wiO1xuXG50ZXN0KFwiU3RhbmRhcmQgUXVldWUgVGVzdFwiLCAoKSA9PiB7XG4gIGNvbnN0IGFwcCA9IG5ldyBjZGsuQXBwKCk7XG4gIGNvbnN0IHN0YWNrID0gbmV3IGNkay5TdGFjayhhcHAsIFwiVGVzdFN0YWNrXCIpO1xuICBuZXcgU3RhbmRhcmRRdWV1ZShzdGFjaywgJ1Rlc3QxJywge30pO1xuICBuZXcgU3RhbmRhcmRRdWV1ZShzdGFjaywgJ1Rlc3QyJywge30pO1xuICBjb25zdCB0ZW1wbGF0ZSA9IFRlbXBsYXRlLmZyb21TdGFjayhzdGFjayk7XG4gIHRlbXBsYXRlLmhhc1Jlc291cmNlUHJvcGVydGllcyhcIkFXUzo6U1FTOjpRdWV1ZVwiLCB7fSk7XG4gIC8vIGNvbnNvbGUubG9nKHRlbXBsYXRlLmZpbmRSZXNvdXJjZXMoXCJBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtXCIpKTtcbiAgLy8gY29uc29sZS5sb2codGVtcGxhdGUuZmluZFJlc291cmNlcyhcIkFXUzo6U1FTOjpRdWV1ZVwiKSk7XG59KTtcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQtcXVldWUudGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YW5kYXJkLXF1ZXVlLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSwyQ0FBNEM7QUFDNUMsdURBQWdEO0FBQ2hELGdEQUEwQztBQUUxQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sS0FBSyxHQUFHLHdCQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsSUFBSSx1QkFBYSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsQyxJQUFJLHVCQUFhLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xDLE1BQU0sUUFBUSxHQUFHLHFCQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCx3QkFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsd0JBQXdCLENBQUMsQ0FBQztJQUM1RCxpRUFBaUU7SUFDakUsMERBQTBEO0FBQzVELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTdGFuZGFyZFF1ZXVlfSBmcm9tIFwiLi4vLi4vYXdzLXNxc1wiO1xuaW1wb3J0IHtUZW1wbGF0ZX0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7VGVzdEhlbHBlcn0gZnJvbSBcIi4uL3Rlc3QtaGVscGVyXCI7XG5cbnRlc3QoXCJTdGFuZGFyZCBRdWV1ZSBUZXN0XCIsICgpID0+IHtcbiAgY29uc3Qgc3RhY2sgPSBUZXN0SGVscGVyLnN0YWNrKCk7XG4gIG5ldyBTdGFuZGFyZFF1ZXVlKHN0YWNrLCBcIlRlc3QxXCIpO1xuICBuZXcgU3RhbmRhcmRRdWV1ZShzdGFjaywgXCJUZXN0MlwiKTtcbiAgY29uc3QgdGVtcGxhdGUgPSBUZW1wbGF0ZS5mcm9tU3RhY2soc3RhY2spO1xuICB0ZW1wbGF0ZS5oYXNSZXNvdXJjZVByb3BlcnRpZXMoXCJBV1M6OlNRUzo6UXVldWVcIiwge30pO1xuICBUZXN0SGVscGVyLmxvZ1Jlc291cmNlcyh0ZW1wbGF0ZSwgXCJBV1M6OkNsb3VkV2F0Y2g6OkFsYXJtXCIpO1xuICAvLyBjb25zb2xlLmxvZyh0ZW1wbGF0ZS5maW5kUmVzb3VyY2VzKFwiQVdTOjpDbG91ZFdhdGNoOjpBbGFybVwiKSk7XG4gIC8vIGNvbnNvbGUubG9nKHRlbXBsYXRlLmZpbmRSZXNvdXJjZXMoXCJBV1M6OlNRUzo6UXVldWVcIikpO1xufSk7XG4iXX0=
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BundledFunction = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const helpers_1 = require("../../helpers");
6
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
7
- const extended_function_1 = require("./extended-function");
8
- class BundledFunction extends extended_function_1.ExtendedFunction {
9
- constructor(scope, id, props) {
10
- var _a;
11
- const local = props.disableLocalBundling ? undefined : {
12
- tryBundle(outputDir, options) {
13
- var _a;
14
- try {
15
- if (!props.isLocalBundlingSupported()) {
16
- return false;
17
- }
18
- }
19
- catch (_b) {
20
- return false;
21
- }
22
- return helpers_1.ShellHelper.executeBash({
23
- script: (_a = props.bundlingScript) !== null && _a !== void 0 ? _a : props.defaultBundlingScript,
24
- workingDirectory: props.entry,
25
- environment: {
26
- ...options.environment,
27
- CDK_BUNDLING_OUTPUT_DIR: outputDir,
28
- }
29
- });
30
- }
31
- };
32
- const command = props.disableDockerBundling ? undefined : ['bash', '-c', (_a = props.bundlingScript) !== null && _a !== void 0 ? _a : props.defaultBundlingScript];
33
- super(scope, id, {
34
- ...props,
35
- code: aws_lambda_1.Code.fromAsset(props.entry, {
36
- bundling: {
37
- image: props.defaultBundlingImage,
38
- local,
39
- command,
40
- environment: {
41
- CDK_BUNDLING_OUTPUT_DIR: '/asset-output/',
42
- ...props.bundlingEnvironment
43
- },
44
- outputType: aws_cdk_lib_1.BundlingOutput.NOT_ARCHIVED,
45
- ...props.bundling,
46
- }
47
- })
48
- });
49
- }
50
- }
51
- exports.BundledFunction = BundledFunction;
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlZC1mdW5jdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1bmRsZWQtZnVuY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsNkNBQTREO0FBQzVELDJDQUEwQztBQUMxQyx1REFBc0U7QUFFdEUsMkRBQThFO0FBZ0Y5RSxNQUFhLGVBQWdCLFNBQVEsb0NBQWdCO0lBRW5ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMkI7O1FBRW5FLE1BQU0sS0FBSyxHQUErQixLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDakYsU0FBUyxDQUFDLFNBQWlCLEVBQUUsT0FBd0I7O2dCQUNuRCxJQUFJO29CQUNGLElBQUksQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEVBQUUsRUFBQzt3QkFDcEMsT0FBTyxLQUFLLENBQUM7cUJBQ2Q7aUJBQ0Y7Z0JBQUMsV0FBTTtvQkFDTixPQUFPLEtBQUssQ0FBQztpQkFDZDtnQkFDRCxPQUFPLHFCQUFXLENBQUMsV0FBVyxDQUFDO29CQUM3QixNQUFNLFFBQUUsS0FBSyxDQUFDLGNBQWMsbUNBQUUsS0FBSyxDQUFDLHFCQUFxQjtvQkFDekQsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQzdCLFdBQVcsRUFBRTt3QkFDWCxHQUFHLE9BQU8sQ0FBQyxXQUFXO3dCQUN0Qix1QkFBdUIsRUFBRSxTQUFTO3FCQUNuQztpQkFDRixDQUFDLENBQUM7WUFDTCxDQUFDO1NBQ0YsQ0FBQTtRQUVELE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxJQUFJLFFBQUUsS0FBSyxDQUFDLGNBQWMsbUNBQUUsS0FBSyxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFNUgsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLEtBQUs7WUFDUixJQUFJLEVBQUUsaUJBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtnQkFDaEMsUUFBUSxFQUFFO29CQUNSLEtBQUssRUFBRSxLQUFLLENBQUMsb0JBQW9CO29CQUNqQyxLQUFLO29CQUNMLE9BQU87b0JBQ1AsV0FBVyxFQUFFO3dCQUNYLHVCQUF1QixFQUFFLGdCQUFnQjt3QkFDekMsR0FBRyxLQUFLLENBQUMsbUJBQW1CO3FCQUM3QjtvQkFDRCxVQUFVLEVBQUUsNEJBQWMsQ0FBQyxZQUFZO29CQUN2QyxHQUFHLEtBQUssQ0FBQyxRQUFRO2lCQUNsQjthQUNGLENBQUM7U0FDSCxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUEzQ0QsMENBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb25zdHJ1Y3R9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQge0RvY2tlckltYWdlLCBJTG9jYWxCdW5kbGluZ30gZnJvbSBcImF3cy1jZGstbGliL2NvcmUvbGliL2J1bmRsaW5nXCI7XG5pbXBvcnQge0J1bmRsaW5nT3B0aW9ucywgQnVuZGxpbmdPdXRwdXR9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtTaGVsbEhlbHBlcn0gZnJvbSBcIi4uLy4uL2hlbHBlcnNcIjtcbmltcG9ydCB7Q29kZSwgRnVuY3Rpb25PcHRpb25zLCBSdW50aW1lfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtGdW5jdGlvbkFsYXJtc09wdGlvbnN9IGZyb20gXCIuL2Z1bmN0aW9uLWFsYXJtc1wiO1xuaW1wb3J0IHtEZXBsb3llZEZ1bmN0aW9uT3B0aW9ucywgRXh0ZW5kZWRGdW5jdGlvbn0gZnJvbSBcIi4vZXh0ZW5kZWQtZnVuY3Rpb25cIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBCdW5kbGVkRnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlZEZ1bmN0aW9uT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFR1cm5zIG9mZiBsb2NhbCBidW5kbGluZy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRpc2FibGVMb2NhbEJ1bmRsaW5nPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBUdXJucyBvZmYgZG9ja2VyIGJ1bmRsaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZURvY2tlckJ1bmRsaW5nPzogYm9vbGVhblxuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgdGhlIGRlZmF1bHQgYnVuZGxpbmcgc2NyaXB0LlxuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmdTY3JpcHQ/OiBzdHJpbmdcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBiZSBwYXNzZWQgdG8gdGhlIGJ1bmRsaW5nIHNjcmlwdC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRW52aXJvbm1lbnQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogc3RyaW5nO1xuICB9O1xuXG4gIC8qKlxuICAgKiBCdW5kbGluZyBvcHRpb25zIHRvIHVzZSBmb3IgdGhpcyBmdW5jdGlvbi4gVXNlIHRoaXMgdG8gc3BlY2lmeSBjdXN0b20gYnVuZGxpbmcgb3B0aW9ucyBsaWtlXG4gICAqIHRoZSBidW5kbGluZyBEb2NrZXIgaW1hZ2UsIGFzc2V0IGhhc2ggdHlwZSwgY3VzdG9tIGhhc2gsIGFyY2hpdGVjdHVyZSwgZXRjLlxuICAgKlxuICAgKiBAZGVmYXVsdFxuICAgKi9cbiAgcmVhZG9ubHkgYnVuZGxpbmc/OiBCdW5kbGluZ09wdGlvbnM7XG5cbiAgLyoqXG4gICAqIFBhdGggdG8gdGhlIHNvdXJjZSBvZiB0aGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEV4YW1wbGU6IHBhdGguam9pbihfX2Rpcm5hbWUsICcuLicsICdteWxhbWJkYScpXG4gICAqL1xuICByZWFkb25seSBlbnRyeTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEJ1bmRsZWRGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJ1bmRsZWRGdW5jdGlvblByb3BzIGV4dGVuZHMgRnVuY3Rpb25PcHRpb25zLCBGdW5jdGlvbkFsYXJtc09wdGlvbnMsIERlcGxveWVkRnVuY3Rpb25PcHRpb25zLCBCdW5kbGVkRnVuY3Rpb25PcHRpb25zIHtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgZnVuY3Rpb24gdG8gY2hlY2sgaWYgbG9jYWwgYnVuZGxpbmcgaXMgc3VwcG9ydGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgaXNMb2NhbEJ1bmRsaW5nU3VwcG9ydGVkOiAoKSA9PiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBidW5kbGluZyBzY3JpcHQgdG8gdXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdEJ1bmRsaW5nU2NyaXB0OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IGJ1bmRsaW5nIGltYWdlIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IGRlZmF1bHRCdW5kbGluZ0ltYWdlOiBEb2NrZXJJbWFnZTtcblxuICAvKipcbiAgICogVGhlIHJ1bnRpbWUgZW52aXJvbm1lbnQgZm9yIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqL1xuICByZWFkb25seSBydW50aW1lOiBSdW50aW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgbWV0aG9kIHRvIGV4ZWN1dGUgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICovXG4gIHJlYWRvbmx5IGhhbmRsZXI6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEJ1bmRsZWRGdW5jdGlvbiBleHRlbmRzIEV4dGVuZGVkRnVuY3Rpb24ge1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdW5kbGVkRnVuY3Rpb25Qcm9wcykge1xuXG4gICAgY29uc3QgbG9jYWw6IElMb2NhbEJ1bmRsaW5nIHwgdW5kZWZpbmVkID0gcHJvcHMuZGlzYWJsZUxvY2FsQnVuZGxpbmcgPyB1bmRlZmluZWQgOiB7XG4gICAgICB0cnlCdW5kbGUob3V0cHV0RGlyOiBzdHJpbmcsIG9wdGlvbnM6IEJ1bmRsaW5nT3B0aW9ucyk6IGJvb2xlYW4ge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGlmICghcHJvcHMuaXNMb2NhbEJ1bmRsaW5nU3VwcG9ydGVkKCkpe1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBTaGVsbEhlbHBlci5leGVjdXRlQmFzaCh7XG4gICAgICAgICAgc2NyaXB0OiBwcm9wcy5idW5kbGluZ1NjcmlwdD8/cHJvcHMuZGVmYXVsdEJ1bmRsaW5nU2NyaXB0LFxuICAgICAgICAgIHdvcmtpbmdEaXJlY3Rvcnk6IHByb3BzLmVudHJ5LFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmVudmlyb25tZW50LFxuICAgICAgICAgICAgQ0RLX0JVTkRMSU5HX09VVFBVVF9ESVI6IG91dHB1dERpcixcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGNvbW1hbmQgPSBwcm9wcy5kaXNhYmxlRG9ja2VyQnVuZGxpbmcgPyB1bmRlZmluZWQgOiBbJ2Jhc2gnLCAnLWMnLCBwcm9wcy5idW5kbGluZ1NjcmlwdD8/cHJvcHMuZGVmYXVsdEJ1bmRsaW5nU2NyaXB0XTtcblxuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwcm9wcy5lbnRyeSwge1xuICAgICAgICBidW5kbGluZzoge1xuICAgICAgICAgIGltYWdlOiBwcm9wcy5kZWZhdWx0QnVuZGxpbmdJbWFnZSxcbiAgICAgICAgICBsb2NhbCxcbiAgICAgICAgICBjb21tYW5kLFxuICAgICAgICAgIGVudmlyb25tZW50OiB7XG4gICAgICAgICAgICBDREtfQlVORExJTkdfT1VUUFVUX0RJUjogJy9hc3NldC1vdXRwdXQvJyxcbiAgICAgICAgICAgIC4uLnByb3BzLmJ1bmRsaW5nRW52aXJvbm1lbnRcbiAgICAgICAgICB9LFxuICAgICAgICAgIG91dHB1dFR5cGU6IEJ1bmRsaW5nT3V0cHV0Lk5PVF9BUkNISVZFRCxcbiAgICAgICAgICAuLi5wcm9wcy5idW5kbGluZyxcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,51 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BundledPythonFunction = void 0;
4
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- const aws_logs_1 = require("aws-cdk-lib/aws-logs");
7
- const helpers_1 = require("../../helpers");
8
- const bundled_function_1 = require("./bundled-function");
9
- const path = require("path");
10
- const fs = require("fs");
11
- /**
12
- * Python based Lambda Function
13
- */
14
- class BundledPythonFunction extends bundled_function_1.BundledFunction {
15
- static isLocalBundlingSupported() {
16
- return helpers_1.ShellHelper.pythonVersion() !== null;
17
- }
18
- /**
19
- * Creates a new Lambda Function
20
- */
21
- constructor(scope, id, props) {
22
- var _a, _b, _c;
23
- const runtime = (_a = props.runtime) !== null && _a !== void 0 ? _a : aws_lambda_1.Runtime.PYTHON_3_9;
24
- if (runtime.family !== aws_lambda_1.RuntimeFamily.PYTHON) {
25
- throw new Error('Runtime must be a Python runtime');
26
- }
27
- const handler = ((_b = props.index) !== null && _b !== void 0 ? _b : 'index.py').replace('.py', '') + '.' + ((_c = props.handler) !== null && _c !== void 0 ? _c : 'handler');
28
- const defaultBundlingScript = fs.readFileSync(path.join(path.dirname(fs.realpathSync(__filename)), 'bundle-python.sh'), 'utf-8');
29
- super(scope, id, {
30
- // defaults which may be overridden by ...props
31
- tracing: aws_lambda_1.Tracing.PASS_THROUGH,
32
- logRetention: aws_logs_1.RetentionDays.THREE_DAYS,
33
- architecture: aws_lambda_1.Architecture.ARM_64,
34
- memorySize: 768,
35
- timeout: aws_cdk_lib_1.Duration.seconds(30),
36
- ...props,
37
- bundlingEnvironment: {
38
- PIP_PROGRESS_BAR: 'off',
39
- PIP_DISABLE_PIP_VERSION_CHECK: '1',
40
- ...props.bundlingEnvironment
41
- },
42
- runtime,
43
- handler,
44
- defaultBundlingScript,
45
- defaultBundlingImage: runtime.bundlingImage,
46
- isLocalBundlingSupported: BundledPythonFunction.isLocalBundlingSupported
47
- });
48
- }
49
- }
50
- exports.BundledPythonFunction = BundledPythonFunction;
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlZC1weXRob24tZnVuY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJidW5kbGVkLXB5dGhvbi1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1REFBc0c7QUFFdEcsNkNBQXFDO0FBQ3JDLG1EQUFtRDtBQUNuRCwyQ0FBMEM7QUFDMUMseURBQTJFO0FBRzNFLDZCQUE2QjtBQUM3Qix5QkFBeUI7QUE2QnpCOztHQUVHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxrQ0FBZTtJQUV4RCxNQUFNLENBQUMsd0JBQXdCO1FBQzdCLE9BQU8scUJBQVcsQ0FBQyxhQUFhLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDOUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFpQzs7UUFFekUsTUFBTSxPQUFPLFNBQUcsS0FBSyxDQUFDLE9BQU8sbUNBQUUsb0JBQU8sQ0FBQyxVQUFVLENBQUE7UUFDakQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLDBCQUFhLENBQUMsTUFBTSxFQUFFO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQztTQUNyRDtRQUVELE1BQU0sT0FBTyxHQUFHLE9BQUMsS0FBSyxDQUFDLEtBQUssbUNBQUUsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsR0FBRyxHQUFHLEdBQUcsT0FBQyxLQUFLLENBQUMsT0FBTyxtQ0FBRSxTQUFTLENBQUMsQ0FBQztRQUNoRyxNQUFNLHFCQUFxQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsRUFBRSxrQkFBa0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpJLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsK0NBQStDO1lBQy9DLE9BQU8sRUFBRSxvQkFBTyxDQUFDLFlBQVk7WUFDN0IsWUFBWSxFQUFFLHdCQUFhLENBQUMsVUFBVTtZQUN0QyxZQUFZLEVBQUUseUJBQVksQ0FBQyxNQUFNO1lBQ2pDLFVBQVUsRUFBRSxHQUFHO1lBQ2YsT0FBTyxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUM3QixHQUFHLEtBQUs7WUFDUixtQkFBbUIsRUFBRTtnQkFDbkIsZ0JBQWdCLEVBQUUsS0FBSztnQkFDdkIsNkJBQTZCLEVBQUUsR0FBRztnQkFDbEMsR0FBRyxLQUFLLENBQUMsbUJBQW1CO2FBQzdCO1lBQ0QsT0FBTztZQUNQLE9BQU87WUFDUCxxQkFBcUI7WUFDckIsb0JBQW9CLEVBQUUsT0FBTyxDQUFDLGFBQWE7WUFDM0Msd0JBQXdCLEVBQUUscUJBQXFCLENBQUMsd0JBQXdCO1NBQ3pFLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQXZDRCxzREF1Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FyY2hpdGVjdHVyZSwgRnVuY3Rpb25PcHRpb25zLCBSdW50aW1lLCBSdW50aW1lRmFtaWx5LCBUcmFjaW5nfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCB7Q29uc3RydWN0fSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtEdXJhdGlvbn0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1JldGVudGlvbkRheXN9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiO1xuaW1wb3J0IHtTaGVsbEhlbHBlcn0gZnJvbSBcIi4uLy4uL2hlbHBlcnNcIjtcbmltcG9ydCB7QnVuZGxlZEZ1bmN0aW9uLCBCdW5kbGVkRnVuY3Rpb25PcHRpb25zfSBmcm9tIFwiLi9idW5kbGVkLWZ1bmN0aW9uXCI7XG5pbXBvcnQge0RlcGxveWVkRnVuY3Rpb25PcHRpb25zfSBmcm9tIFwiLi9leHRlbmRlZC1mdW5jdGlvblwiO1xuaW1wb3J0IHtGdW5jdGlvbkFsYXJtc09wdGlvbnN9IGZyb20gXCIuL2Z1bmN0aW9uLWFsYXJtc1wiO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcblxuLyoqXG4gKiBQcm9wZXJ0aWVzIGZvciBCdW5kbGVkUHl0aG9uRnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQnVuZGxlZFB5dGhvbkZ1bmN0aW9uUHJvcHMgZXh0ZW5kcyBGdW5jdGlvbk9wdGlvbnMsIEZ1bmN0aW9uQWxhcm1zT3B0aW9ucywgRGVwbG95ZWRGdW5jdGlvbk9wdGlvbnMsIEJ1bmRsZWRGdW5jdGlvbk9wdGlvbnMge1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0aCAocmVsYXRpdmUgdG8gZW50cnkpIHRvIHRoZSBpbmRleCBmaWxlIGNvbnRhaW5pbmcgdGhlIGV4cG9ydGVkIGhhbmRsZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdpbmRleC5weSdcbiAgICovXG4gIHJlYWRvbmx5IGluZGV4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgZXhwb3J0ZWQgaGFuZGxlciBpbiB0aGUgaW5kZXggZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2hhbmRsZXInXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcnVudGltZSBlbnZpcm9ubWVudC4gT25seSBydW50aW1lcyBvZiB0aGUgUHl0aG9uIGZhbWlseSBhcmUgc3VwcG9ydGVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSdW50aW1lLlBZVEhPTl8zXzlcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBSdW50aW1lO1xufVxuXG4vKipcbiAqIFB5dGhvbiBiYXNlZCBMYW1iZGEgRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEJ1bmRsZWRQeXRob25GdW5jdGlvbiBleHRlbmRzIEJ1bmRsZWRGdW5jdGlvbiB7XG5cbiAgc3RhdGljIGlzTG9jYWxCdW5kbGluZ1N1cHBvcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gU2hlbGxIZWxwZXIucHl0aG9uVmVyc2lvbigpICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBuZXcgTGFtYmRhIEZ1bmN0aW9uXG4gICAqL1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVuZGxlZFB5dGhvbkZ1bmN0aW9uUHJvcHMpIHtcblxuICAgIGNvbnN0IHJ1bnRpbWUgPSBwcm9wcy5ydW50aW1lPz9SdW50aW1lLlBZVEhPTl8zXzlcbiAgICBpZiAocnVudGltZS5mYW1pbHkgIT09IFJ1bnRpbWVGYW1pbHkuUFlUSE9OKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1J1bnRpbWUgbXVzdCBiZSBhIFB5dGhvbiBydW50aW1lJyk7XG4gICAgfVxuXG4gICAgY29uc3QgaGFuZGxlciA9IChwcm9wcy5pbmRleD8/J2luZGV4LnB5JykucmVwbGFjZSgnLnB5JywgJycpICsgJy4nICsgKHByb3BzLmhhbmRsZXI/PydoYW5kbGVyJyk7XG4gICAgY29uc3QgZGVmYXVsdEJ1bmRsaW5nU2NyaXB0ID0gZnMucmVhZEZpbGVTeW5jKHBhdGguam9pbihwYXRoLmRpcm5hbWUoZnMucmVhbHBhdGhTeW5jKF9fZmlsZW5hbWUpKSwgJ2J1bmRsZS1weXRob24uc2gnKSwgJ3V0Zi04Jyk7XG5cbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC8vIGRlZmF1bHRzIHdoaWNoIG1heSBiZSBvdmVycmlkZGVuIGJ5IC4uLnByb3BzXG4gICAgICB0cmFjaW5nOiBUcmFjaW5nLlBBU1NfVEhST1VHSCxcbiAgICAgIGxvZ1JldGVudGlvbjogUmV0ZW50aW9uRGF5cy5USFJFRV9EQVlTLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgbWVtb3J5U2l6ZTogNzY4LFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcygzMCksXG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGJ1bmRsaW5nRW52aXJvbm1lbnQ6IHtcbiAgICAgICAgUElQX1BST0dSRVNTX0JBUjogJ29mZicsXG4gICAgICAgIFBJUF9ESVNBQkxFX1BJUF9WRVJTSU9OX0NIRUNLOiAnMScsXG4gICAgICAgIC4uLnByb3BzLmJ1bmRsaW5nRW52aXJvbm1lbnRcbiAgICAgIH0sXG4gICAgICBydW50aW1lLFxuICAgICAgaGFuZGxlcixcbiAgICAgIGRlZmF1bHRCdW5kbGluZ1NjcmlwdCxcbiAgICAgIGRlZmF1bHRCdW5kbGluZ0ltYWdlOiBydW50aW1lLmJ1bmRsaW5nSW1hZ2UsXG4gICAgICBpc0xvY2FsQnVuZGxpbmdTdXBwb3J0ZWQ6IEJ1bmRsZWRQeXRob25GdW5jdGlvbi5pc0xvY2FsQnVuZGxpbmdTdXBwb3J0ZWRcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const assertions_1 = require("aws-cdk-lib/assertions");
4
- const aws_lambda_1 = require("../../aws-lambda");
5
- const test_helper_1 = require("../test-helper");
6
- test("Test PythonFunction", () => {
7
- const stack = test_helper_1.TestHelper.stack();
8
- new aws_lambda_1.BundledPythonFunction(stack, "TestFunction", {
9
- entry: test_helper_1.TestHelper.resolveTestFiles("python-lambda")
10
- });
11
- const template = assertions_1.Template.fromStack(stack);
12
- template.hasResourceProperties(test_helper_1.ResourceType.LAMBDA_FUNCTION, {
13
- Runtime: "python3.9"
14
- });
15
- template.resourceCountIs(test_helper_1.ResourceType.CLOUDWATCH_ALARM, 3);
16
- });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVuZGxlZC1weXRob24tZnVuY3Rpb24udGVzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImJ1bmRsZWQtcHl0aG9uLWZ1bmN0aW9uLnRlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx1REFBZ0Q7QUFDaEQsaURBQXVEO0FBQ3ZELGdEQUF3RDtBQUV4RCxJQUFJLENBQUMscUJBQXFCLEVBQUUsR0FBRyxFQUFFO0lBQy9CLE1BQU0sS0FBSyxHQUFHLHdCQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakMsSUFBSSxrQ0FBcUIsQ0FBQyxLQUFLLEVBQUUsY0FBYyxFQUFFO1FBQy9DLEtBQUssRUFBRSx3QkFBVSxDQUFDLGdCQUFnQixDQUFDLGVBQWUsQ0FBQztLQUNwRCxDQUFDLENBQUM7SUFDSCxNQUFNLFFBQVEsR0FBRyxxQkFBUSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQyxRQUFRLENBQUMscUJBQXFCLENBQUMsMEJBQVksQ0FBQyxlQUFlLEVBQUU7UUFDM0QsT0FBTyxFQUFFLFdBQVc7S0FDckIsQ0FBQyxDQUFDO0lBQ0gsUUFBUSxDQUFDLGVBQWUsQ0FBQywwQkFBWSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzdELENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUZW1wbGF0ZX0gZnJvbSBcImF3cy1jZGstbGliL2Fzc2VydGlvbnNcIjtcbmltcG9ydCB7QnVuZGxlZFB5dGhvbkZ1bmN0aW9ufSBmcm9tIFwiLi4vLi4vYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHtSZXNvdXJjZVR5cGUsIFRlc3RIZWxwZXJ9IGZyb20gXCIuLi90ZXN0LWhlbHBlclwiO1xuXG50ZXN0KFwiVGVzdCBQeXRob25GdW5jdGlvblwiLCAoKSA9PiB7XG4gIGNvbnN0IHN0YWNrID0gVGVzdEhlbHBlci5zdGFjaygpO1xuICBuZXcgQnVuZGxlZFB5dGhvbkZ1bmN0aW9uKHN0YWNrLCBcIlRlc3RGdW5jdGlvblwiLCB7XG4gICAgZW50cnk6IFRlc3RIZWxwZXIucmVzb2x2ZVRlc3RGaWxlcyhcInB5dGhvbi1sYW1iZGFcIilcbiAgfSk7XG4gIGNvbnN0IHRlbXBsYXRlID0gVGVtcGxhdGUuZnJvbVN0YWNrKHN0YWNrKTtcbiAgdGVtcGxhdGUuaGFzUmVzb3VyY2VQcm9wZXJ0aWVzKFJlc291cmNlVHlwZS5MQU1CREFfRlVOQ1RJT04sIHtcbiAgICBSdW50aW1lOiBcInB5dGhvbjMuOVwiXG4gIH0pO1xuICB0ZW1wbGF0ZS5yZXNvdXJjZUNvdW50SXMoUmVzb3VyY2VUeXBlLkNMT1VEV0FUQ0hfQUxBUk0sIDMpO1xufSk7XG4iXX0=