@ashishpandeyone/cdk-lambda-web-function 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,7 @@ const iam = __importStar(require("aws-cdk-lib/aws-iam"));
41
41
  */
42
42
  class WebFunctionGrants {
43
43
  endpoint;
44
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionGrants", version: "0.1.0" };
44
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunctionGrants", version: "0.1.1" };
45
45
  /**
46
46
  * @internal
47
47
  */
@@ -7,20 +7,9 @@ import { WebFunctionAuthType } from './enums';
7
7
  import { WebFunctionEndpoint, type WebFunctionEndpointOptions } from './web-function-endpoint';
8
8
  import { WebFunctionGrants } from './web-function-grants';
9
9
  /**
10
- * Properties for a `WebFunction`.
10
+ * Options shared by `WebFunction` and `NodejsWebFunction`: everything except how the code is supplied.
11
11
  */
12
- export interface WebFunctionProps {
13
- /**
14
- * The Node.js runtime, e.g. `lambda.Runtime.NODEJS_24_X`.
15
- */
16
- readonly runtime: lambda.Runtime;
17
- /**
18
- * The code: a zip in S3 (`Code.fromAsset`, `Code.fromBucket`, `Code.fromCustomCommand`, `Code.fromDockerBuild`).
19
- * Inline code and container images aren't supported.
20
- *
21
- * The code is copied into the stack's code bucket, which Lambda Web Functions can read.
22
- */
23
- readonly code: lambda.Code;
12
+ export interface WebFunctionOptions {
24
13
  /**
25
14
  * How callers of the endpoint are authenticated.
26
15
  */
@@ -31,12 +20,6 @@ export interface WebFunctionProps {
31
20
  * @default - a HOME_REGION endpoint
32
21
  */
33
22
  readonly endpoint?: WebFunctionEndpointOptions;
34
- /**
35
- * The file that starts your server, relative to the root of the code.
36
- *
37
- * @default 'index.js'
38
- */
39
- readonly entrypoint?: string;
40
23
  /**
41
24
  * The function's name. Renaming a function replaces it, and its endpoint gets a new URL.
42
25
  *
@@ -105,6 +88,28 @@ export interface WebFunctionProps {
105
88
  */
106
89
  readonly systemLogLevelV2?: lambda.SystemLogLevel;
107
90
  }
91
+ /**
92
+ * Properties for a `WebFunction`.
93
+ */
94
+ export interface WebFunctionProps extends WebFunctionOptions {
95
+ /**
96
+ * The Node.js runtime, e.g. `lambda.Runtime.NODEJS_24_X`.
97
+ */
98
+ readonly runtime: lambda.Runtime;
99
+ /**
100
+ * The code: a zip in S3 (`Code.fromAsset`, `Code.fromBucket`, `Code.fromCustomCommand`, `Code.fromDockerBuild`).
101
+ * Inline code and container images aren't supported.
102
+ *
103
+ * The code is copied into the stack's code bucket, which Lambda Web Functions can read.
104
+ */
105
+ readonly code: lambda.Code;
106
+ /**
107
+ * The file that starts your server, relative to the root of the code.
108
+ *
109
+ * @default 'index.js'
110
+ */
111
+ readonly entrypoint?: string;
112
+ }
108
113
  /**
109
114
  * A Lambda Web Function.
110
115
  */
@@ -55,7 +55,7 @@ const web_function_grants_1 = require("./web-function-grants");
55
55
  * @resource AWS::Lambda::WebFunction
56
56
  */
57
57
  class WebFunction extends aws_cdk_lib_1.Resource {
58
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunction", version: "0.1.0" };
58
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@ashishpandeyone/cdk-lambda-web-function.WebFunction", version: "0.1.1" };
59
59
  webFunctionName;
60
60
  webFunctionArn;
61
61
  /** The ID of the current revision. */
@@ -200,4 +200,4 @@ class WebFunction extends aws_cdk_lib_1.Resource {
200
200
  }
201
201
  }
202
202
  exports.WebFunction = WebFunction;
203
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYi1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQXdIO0FBQ3hILHlEQUEyQztBQUMzQywrREFBaUQ7QUFDakQsMkRBQTZDO0FBRzdDLHlDQUFpRDtBQUNqRCxtREFBMEQ7QUFDMUQscURBQXFGO0FBQ3JGLG1FQUErRjtBQUMvRiwrREFBMEQ7QUFxSTFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFROztJQUN2QixlQUFlLENBQVM7SUFDeEIsY0FBYyxDQUFTO0lBRXZDLHNDQUFzQztJQUN0QixVQUFVLENBQVM7SUFFbkMsK0JBQStCO0lBQ2YsUUFBUSxDQUFzQjtJQUU5QyxnRUFBZ0U7SUFDaEQsTUFBTSxDQUFvQjtJQUUxQywwQkFBMEI7SUFDVixJQUFJLENBQVk7SUFFaEMsa0VBQWtFO0lBQ2xELGNBQWMsQ0FBaUI7SUFFL0M7OztPQUdHO0lBQ2EsUUFBUSxDQUFpQjtJQUV4QixXQUFXLEdBQThCLEVBQUUsQ0FBQztJQUU3RCxtRkFBbUY7SUFDbkYsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksZ0RBQWdELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6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QUFFLFlBQVksRUFBRSxLQUFLLENBQUM7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxRQUFRLEVBQUUsS0FBSyxDQUFDO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQUMsWUFBb0IsRUFBRSxLQUF1QjtRQUN6RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxZQUFZLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFFTyxVQUFVLENBQUMsRUFBVSxFQUFFLE1BQWMsRUFBRSxJQUFZLEVBQUUsS0FBdUI7UUFDbEYsT0FBTyxJQUFJLCtCQUFtQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdkMsTUFBTTtZQUNOLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztZQUM3RCxhQUFhLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixJQUFJLDJCQUFhLENBQUMsTUFBTTtTQUM5RCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRLSCxrQ0F1S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgdHlwZSBJUmVzb3VyY2UsIExhenksIE5hbWVzLCBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZSwgU3RhY2ssIFRva2VuLCBWYWxpZGF0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkF1dGhUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkNvZGUgfSBmcm9tICcuL3ByaXZhdGUvY29kZSc7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkxvZ0dyb3VwIH0gZnJvbSAnLi9wcml2YXRlL2xvZy1ncm91cCc7XG5pbXBvcnQgeyBDRk5fVkFMSURBVEVfVU5LTk9XTl9UWVBFLCBhc3NlcnRSZXNvdXJjZU5hbWUgfSBmcm9tICcuL3ByaXZhdGUvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkVuZHBvaW50LCB0eXBlIFdlYkZ1bmN0aW9uRW5kcG9pbnRPcHRpb25zIH0gZnJvbSAnLi93ZWItZnVuY3Rpb24tZW5kcG9pbnQnO1xuaW1wb3J0IHsgV2ViRnVuY3Rpb25HcmFudHMgfSBmcm9tICcuL3dlYi1mdW5jdGlvbi1ncmFudHMnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgYFdlYkZ1bmN0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIHJ1bnRpbWUsIGUuZy4gYGxhbWJkYS5SdW50aW1lLk5PREVKU18yNF9YYC5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgY29kZTogYSB6aXAgaW4gUzMgKGBDb2RlLmZyb21Bc3NldGAsIGBDb2RlLmZyb21CdWNrZXRgLCBgQ29kZS5mcm9tQ3VzdG9tQ29tbWFuZGAsIGBDb2RlLmZyb21Eb2NrZXJCdWlsZGApLlxuICAgKiBJbmxpbmUgY29kZSBhbmQgY29udGFpbmVyIGltYWdlcyBhcmVuJ3Qgc3VwcG9ydGVkLlxuICAgKlxuICAgKiBUaGUgY29kZSBpcyBjb3BpZWQgaW50byB0aGUgc3RhY2sncyBjb2RlIGJ1Y2tldCwgd2hpY2ggTGFtYmRhIFdlYiBGdW5jdGlvbnMgY2FuIHJlYWQuXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBsYW1iZGEuQ29kZTtcblxuICAvKipcbiAgICogSG93IGNhbGxlcnMgb2YgdGhlIGVuZHBvaW50IGFyZSBhdXRoZW50aWNhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aFR5cGU6IFdlYkZ1bmN0aW9uQXV0aFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludDogd2hlcmUgaXQgc2VydmVzIGZyb20sIGFuZCBpdHMgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIEhPTUVfUkVHSU9OIGVuZHBvaW50XG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludD86IFdlYkZ1bmN0aW9uRW5kcG9pbnRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgZmlsZSB0aGF0IHN0YXJ0cyB5b3VyIHNlcnZlciwgcmVsYXRpdmUgdG8gdGhlIHJvb3Qgb2YgdGhlIGNvZGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdpbmRleC5qcydcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5cG9pbnQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBmdW5jdGlvbidzIG5hbWUuIFJlbmFtaW5nIGEgZnVuY3Rpb24gcmVwbGFjZXMgaXQsIGFuZCBpdHMgZW5kcG9pbnQgZ2V0cyBhIG5ldyBVUkwuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSB1bmlxdWUgbmFtZSBnZW5lcmF0ZWQgZnJvbSB0aGUgY29uc3RydWN0IHBhdGggKG1vdmluZyB0aGUgY29uc3RydWN0IGNoYW5nZXMgaXQpXG4gICAqL1xuICByZWFkb25seSB3ZWJGdW5jdGlvbk5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uJ3MgY29kZSBhbmQgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBleGVjdXRpb24gcm9sZS5cbiAgICpcbiAgICogQW4gYGlhbS5JUm9sZWAgKG5vdCBgSVJvbGVSZWZgKSBiZWNhdXNlIHRoZSBmdW5jdGlvbiBhZGRzIHN0YXRlbWVudHMgdG8gaXQgYW5kIGdyYW50cyB0aHJvdWdoIGl0LlxuICAgKiBbZGlzYWJsZS1hd3NsaW50OnByZWZlci1yZWYtaW50ZXJmYWNlXVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgcm9sZSB0cnVzdGluZyBgbGFtYmRhLmFtYXpvbmF3cy5jb21gIHdpdGggYEFXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZWBcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU/OiBpYW0uSVJvbGU7XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcy4gTmFtZXMgc3RhcnRpbmcgd2l0aCBgQVdTX2AgYXJlIHJlc2VydmVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcblxuICAvKipcbiAgICogSG93IGxvbmcgYSBzaW5nbGUgcmVxdWVzdCBtYXkgcnVuLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5zZWNvbmRzKDMwKVxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IER1cmF0aW9uO1xuXG4gIC8qKlxuICAgKiBIb3cgbWFueSByZXF1ZXN0cyBvbmUgZXhlY3V0aW9uIGVudmlyb25tZW50IGhhbmRsZXMgYXQgdGhlIHNhbWUgdGltZSAoMS0xMjgpLlxuICAgKiBSZXF1ZXN0cyBzaGFyZSBtb2R1bGUtbGV2ZWwgc3RhdGUsIHNvIGhhbmRsZXJzIG11c3QgYmUgY29uY3VycmVuY3ktc2FmZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNjRcbiAgICovXG4gIHJlYWRvbmx5IG1heENvbmN1cnJlbmN5UGVyRW52aXJvbm1lbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFJldGVudGlvbiBmb3IgZXZlcnkgbG9nIGdyb3VwIG9mIHRoZSBmdW5jdGlvbiwgaW4gZXZlcnkgcmVnaW9uIGl0IHNlcnZlcyBmcm9tLlxuICAgKlxuICAgKiBAZGVmYXVsdCBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRIXG4gICAqL1xuICByZWFkb25seSBsb2dSZXRlbnRpb24/OiBsb2dzLlJldGVudGlvbkRheXM7XG5cbiAgLyoqXG4gICAqIFdoYXQgaGFwcGVucyB0byB0aGUgbG9nIGdyb3VwcyB3aGVuIHRoZSBmdW5jdGlvbiBpcyByZW1vdmVkOiBSRVRBSU4gb3IgREVTVFJPWS5cbiAgICogV2l0aCBERVNUUk9ZLCBkZWxldGlvbiB3YWl0cyBhYm91dCBhIG1pbnV0ZSBmb3IgZW52aXJvbm1lbnRzIHRvIGZsdXNoIHRoZWlyIGxhc3QgbGluZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IFJlbW92YWxQb2xpY3kuUkVUQUlOXG4gICAqL1xuICByZWFkb25seSBsb2dSZW1vdmFsUG9saWN5PzogUmVtb3ZhbFBvbGljeTtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gbGV2ZWwgb2YgYXBwbGljYXRpb24gbG9ncyB0byBrZWVwLlxuICAgKlxuICAgKiBAZGVmYXVsdCBsYW1iZGEuQXBwbGljYXRpb25Mb2dMZXZlbC5JTkZPXG4gICAqL1xuICByZWFkb25seSBhcHBsaWNhdGlvbkxvZ0xldmVsVjI/OiBsYW1iZGEuQXBwbGljYXRpb25Mb2dMZXZlbDtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gbGV2ZWwgb2YgcGxhdGZvcm0gbG9ncyB0byBrZWVwIChERUJVRywgSU5GTyBvciBXQVJOKS5cbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLlN5c3RlbUxvZ0xldmVsLklORk9cbiAgICovXG4gIHJlYWRvbmx5IHN5c3RlbUxvZ0xldmVsVjI/OiBsYW1iZGEuU3lzdGVtTG9nTGV2ZWw7XG59XG5cbi8qKlxuICogQSBMYW1iZGEgV2ViIEZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElXZWJGdW5jdGlvbiBleHRlbmRzIElSZXNvdXJjZSwgbGFtYmRhLklXZWJGdW5jdGlvblJlZiB7XG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24ncyBuYW1lLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3ZWJGdW5jdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uJ3MgQVJOLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3ZWJGdW5jdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgTm9kZS5qcyBIVFRQIHNlcnZlciBydW5uaW5nIGFzIGFuIEFXUyBMYW1iZGEgV2ViIEZ1bmN0aW9uLCBzZXJ2ZWQgZnJvbSBvbmUgb3IgbW9yZSByZWdpb25zLlxuICpcbiAqIENyZWF0ZXMgdGhlIGZ1bmN0aW9uLCBpdHMgY3VycmVudCByZXZpc2lvbiAoY29kZSBhbmQgY29uZmlndXJhdGlvbjsgYW55IGNoYW5nZSByZXBsYWNlcyBpdCksXG4gKiBhbiBIVFRQUyBlbmRwb2ludCwgYW4gZXhlY3V0aW9uIHJvbGUsIGFuZCBvd25zIHRoZSBmdW5jdGlvbidzIGxvZyBncm91cHMgaW4gZXZlcnkgcmVnaW9uLlxuICpcbiAqIEltcG9ydGluZyBleGlzdGluZyBmdW5jdGlvbnMgKGBmcm9tWHh4YCBtZXRob2RzKSBpcyBwbGFubmVkIGFmdGVyIDAuMS5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpMYW1iZGE6OldlYkZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWJGdW5jdGlvbiBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVdlYkZ1bmN0aW9uLCBpYW0uSUdyYW50YWJsZSB7XG4gIHB1YmxpYyByZWFkb25seSB3ZWJGdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdlYkZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBJRCBvZiB0aGUgY3VycmVudCByZXZpc2lvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcblxuICAvKiogVGhlIGZ1bmN0aW9uJ3MgZW5kcG9pbnQuICovXG4gIHB1YmxpYyByZWFkb25seSBlbmRwb2ludDogV2ViRnVuY3Rpb25FbmRwb2ludDtcblxuICAvKiogR3JhbnRzIG9uIHRoZSBmdW5jdGlvbiAoZS5nLiBgZ3JhbnRzLmludm9rZShwcmluY2lwYWwpYCkuICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudHM6IFdlYkZ1bmN0aW9uR3JhbnRzO1xuXG4gIC8qKiBUaGUgZXhlY3V0aW9uIHJvbGUuICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gKHRoZSBleGVjdXRpb24gcm9sZSkuICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBob21lLXJlZ2lvbiBsb2cgZ3JvdXAgdGhhdCByZWNlaXZlcyB0aGUgbG9ncyBvZiBldmVyeSByZWdpb24gdGhlIGZ1bmN0aW9uIHNlcnZlcyBmcm9tLlxuICAgKiBTdWJzY3JpYmUgdG8gdGhpcyBvbmUgb25seTogZWFjaCByZWdpb24ncyBgLmxvY2FsYCBncm91cCBob2xkcyBhIGNvcHkgb2YgdGhlIHNhbWUgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ0dyb3VwOiBsb2dzLklMb2dHcm91cDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgLyoqIEEgcmVmZXJlbmNlIHRvIHRoaXMgZnVuY3Rpb24sIGZvciBBUElzIHRoYXQgYWNjZXB0IGBsYW1iZGEuSVdlYkZ1bmN0aW9uUmVmYC4gKi9cbiAgcHVibGljIGdldCB3ZWJGdW5jdGlvblJlZigpOiBsYW1iZGEuV2ViRnVuY3Rpb25SZWZlcmVuY2Uge1xuICAgIHJldHVybiB7IGZ1bmN0aW9uQXJuOiB0aGlzLndlYkZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2ViRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMucnVudGltZS5mYW1pbHkgIT09IGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubm9kZS5wYXRofTogTGFtYmRhIFdlYiBGdW5jdGlvbnMgcnVuIE5vZGUuanMgb25seSwgZ290ICR7cHJvcHMucnVudGltZS5uYW1lfWApO1xuICAgIH1cbiAgICBjb25zdCB0aW1lb3V0ID0gcHJvcHMudGltZW91dD8udG9TZWNvbmRzKCkgPz8gMzA7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodGltZW91dCkgJiYgKHRpbWVvdXQgPCAzIHx8IHRpbWVvdXQgPiA5MDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5ub2RlLnBhdGh9OiB0aW1lb3V0IG11c3QgYmUgYmV0d2VlbiAzIHNlY29uZHMgYW5kIDE1IG1pbnV0ZXMsIGdvdCAke3RpbWVvdXR9c2ApO1xuICAgIH1cbiAgICBjb25zdCBtYXhDb25jdXJyZW5jeSA9IHByb3BzLm1heENvbmN1cnJlbmN5UGVyRW52aXJvbm1lbnQ7XG4gICAgY29uc3QgdmFsaWRDb25jdXJyZW5jeSA9IChuOiBudW1iZXIpID0+IE51bWJlci5pc0ludGVnZXIobikgJiYgbiA+PSAxICYmIG4gPD0gMTI4O1xuICAgIGlmIChtYXhDb25jdXJyZW5jeSAhPT0gdW5kZWZpbmVkICYmICFUb2tlbi5pc1VucmVzb2x2ZWQobWF4Q29uY3VycmVuY3kpICYmICF2YWxpZENvbmN1cnJlbmN5KG1heENvbmN1cnJlbmN5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubm9kZS5wYXRofTogbWF4Q29uY3VycmVuY3lQZXJFbnZpcm9ubWVudCBtdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxIHRvIDEyOCwgZ290ICR7bWF4Q29uY3VycmVuY3l9YCk7XG4gICAgfVxuICAgIGNvbnN0IHN5c3RlbUxvZ0xldmVscyA9IFtsYW1iZGEuU3lzdGVtTG9nTGV2ZWwuREVCVUcsIGxhbWJkYS5TeXN0ZW1Mb2dMZXZlbC5JTkZPLCBsYW1iZGEuU3lzdGVtTG9nTGV2ZWwuV0FSTl07XG4gICAgaWYgKHByb3BzLnN5c3RlbUxvZ0xldmVsVjIgIT09IHVuZGVmaW5lZCAmJiAhc3lzdGVtTG9nTGV2ZWxzLmluY2x1ZGVzKHByb3BzLnN5c3RlbUxvZ0xldmVsVjIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5ub2RlLnBhdGh9OiBzeXN0ZW1Mb2dMZXZlbFYyIG11c3QgYmUgREVCVUcsIElORk8gb3IgV0FSTiBmb3IgTGFtYmRhIFdlYiBGdW5jdGlvbnNgKTtcbiAgICB9XG5cbiAgICB0aGlzLndlYkZ1bmN0aW9uTmFtZSA9IHByb3BzLndlYkZ1bmN0aW9uTmFtZSA/PyBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDY0LCBzZXBhcmF0b3I6ICctJyB9KTtcbiAgICBhc3NlcnRSZXNvdXJjZU5hbWUodGhpcywgJ3dlYkZ1bmN0aW9uTmFtZScsIHRoaXMud2ViRnVuY3Rpb25OYW1lKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzLmVudmlyb25tZW50ID8/IHt9KSkge1xuICAgICAgdGhpcy5hZGRFbnZpcm9ubWVudChrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmVudHJ5cG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbnZpcm9ubWVudC5BV1NfTEFNQkRBX05PREVKU19FTlRSWVBPSU5UID0gcHJvcHMuZW50cnlwb2ludDtcbiAgICB9XG5cbiAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlID8/IG5ldyBpYW0uUm9sZSh0aGlzLCAnU2VydmljZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpXSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuXG4gICAgLy8gTG9nIGdyb3VwcyBmaXJzdDogdGhlIHNlcnZpY2Ugd291bGQgb3RoZXJ3aXNlIGNyZWF0ZSB0aGVtIHdpdGhvdXQgcmV0ZW50aW9uLlxuICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGAvYXdzL2xhbWJkYS93ZWIvJHt0aGlzLndlYkZ1bmN0aW9uTmFtZX1gO1xuICAgIGNvbnN0IGxvZ0dyb3VwcyA9IHRoaXMuY3JlYXRlTG9nR3JvdXBzKGxvZ0dyb3VwTmFtZSwgcHJvcHMpO1xuICAgIHRoaXMubG9nR3JvdXAgPSBsb2dzLkxvZ0dyb3VwLmZyb21Mb2dHcm91cE5hbWUodGhpcywgJ0xvZ0dyb3VwJywgbG9nR3JvdXBOYW1lKTtcblxuICAgIGNvbnN0IGNvZGUgPSBuZXcgV2ViRnVuY3Rpb25Db2RlKHRoaXMsICdDb2RlJywgcHJvcHMuY29kZSkubG9jYXRpb247XG5cbiAgICBjb25zdCBmbiA9IG5ldyBsYW1iZGEuQ2ZuV2ViRnVuY3Rpb24odGhpcywgJ1Jlc291cmNlJywgeyBmdW5jdGlvbk5hbWU6IHRoaXMud2ViRnVuY3Rpb25OYW1lIH0pO1xuICAgIC8vIFRoZSBmdW5jdGlvbiBpcyBkZWxldGVkIGJlZm9yZSBpdHMgbG9nIGdyb3Vwcywgd2hpY2ggdGhlbiB3YWl0IGZvciBsYXRlIGZsdXNoZXMuXG4gICAgZm9yIChjb25zdCBncm91cCBvZiBsb2dHcm91cHMpIGZuLm5vZGUuYWRkRGVwZW5kZW5jeShncm91cC5yZXNvdXJjZSk7XG4gICAgVmFsaWRhdGlvbnMub2YoZm4pLmFja25vd2xlZGdlKENGTl9WQUxJREFURV9VTktOT1dOX1RZUEUpO1xuICAgIHRoaXMud2ViRnVuY3Rpb25Bcm4gPSBmbi5hdHRyRnVuY3Rpb25Bcm47XG5cbiAgICBjb25zdCByZXZpc2lvbiA9IG5ldyBsYW1iZGEuQ2ZuV2ViRnVuY3Rpb25SZXZpc2lvbih0aGlzLCAnUmV2aXNpb24nLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IGZuLmF0dHJGdW5jdGlvbkFybixcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGJ1aWxkQ29uZmlnOiB7XG4gICAgICAgIGNvZGVDb25maWc6IHsgczNPYmplY3Q6IHsgYnVja2V0OiBjb2RlLmJ1Y2tldE5hbWUsIGtleTogY29kZS5vYmplY3RLZXksIHZlcnNpb25JZDogY29kZS5vYmplY3RWZXJzaW9uIH0gfSxcbiAgICAgICAgcnVudGltZUNvbmZpZzogeyBydW50aW1lOiBwcm9wcy5ydW50aW1lLm5hbWUgfSxcbiAgICAgIH0sXG4gICAgICBzZXJ2aWNlQ29uZmlnOiB7XG4gICAgICAgIGV4ZWN1dGlvblJvbGVBcm46IHRoaXMucm9sZS5yb2xlQXJuLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogTGF6eS5hbnkoeyBwcm9kdWNlOiAoKSA9PiAoT2JqZWN0LmtleXModGhpcy5lbnZpcm9ubWVudCkubGVuZ3RoID4gMCA/IHsgLi4udGhpcy5lbnZpcm9ubWVudCB9IDogdW5kZWZpbmVkKSB9KSxcbiAgICAgICAgdGltZW91dFNlY29uZHM6IHRpbWVvdXQsXG4gICAgICAgIG1heENvbmN1cnJlbmN5UGVyRW52aXJvbm1lbnQ6IG1heENvbmN1cnJlbmN5LFxuICAgICAgICB0ZWxlbWV0cnlDb25maWc6IHtcbiAgICAgICAgICBsb2dnaW5nQ29uZmlnOiB7XG4gICAgICAgICAgICBsb2dHcm91cDogbG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgYXBwbGljYXRpb25Mb2dMZXZlbDogcHJvcHMuYXBwbGljYXRpb25Mb2dMZXZlbFYyLFxuICAgICAgICAgICAgc3lzdGVtTG9nTGV2ZWw6IHByb3BzLnN5c3RlbUxvZ0xldmVsVjIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgLy8gV2FpdCBmb3IgdGhlIHJvbGUncyBwb2xpY2llcywgc28gdGhlIGZpcnN0IGVudmlyb25tZW50IHN0YXJ0cyB3aXRoIGl0cyBwZXJtaXNzaW9ucy5cbiAgICByZXZpc2lvbi5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5yb2xlKTtcbiAgICBWYWxpZGF0aW9ucy5vZihyZXZpc2lvbikuYWNrbm93bGVkZ2UoQ0ZOX1ZBTElEQVRFX1VOS05PV05fVFlQRSk7XG4gICAgdGhpcy5yZXZpc2lvbklkID0gcmV2aXNpb24uYXR0clJldmlzaW9uSWQ7XG5cbiAgICB0aGlzLmVuZHBvaW50ID0gV2ViRnVuY3Rpb25FbmRwb2ludC5fY3JlYXRlKHRoaXMsICdFbmRwb2ludCcsIHtcbiAgICAgIC4uLnByb3BzLmVuZHBvaW50LFxuICAgICAgZnVuY3Rpb25OYW1lOiB0aGlzLndlYkZ1bmN0aW9uTmFtZSxcbiAgICAgIGZ1bmN0aW9uQXJuOiBmbi5hdHRyRnVuY3Rpb25Bcm4sXG4gICAgICByZXZpc2lvbklkOiByZXZpc2lvbi5hdHRyUmV2aXNpb25JZCxcbiAgICAgIGF1dGhUeXBlOiBwcm9wcy5hdXRoVHlwZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZ3JhbnRzID0gV2ViRnVuY3Rpb25HcmFudHMuX2ZvckVuZHBvaW50KHRoaXMuZW5kcG9pbnQpO1xuXG4gICAgLy8gUmVtb3RlIHJlZ2lvbnMnIC5sb2NhbCBncm91cHMgY2FuIG9ubHkgYmUgY3JlYXRlZCBvbmNlIHRoZSByZWdpb25zIGFyZSBrbm93bi5cbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuY3JlYXRlUmVtb3RlTG9nR3JvdXBzKGxvZ0dyb3VwTmFtZSwgcHJvcHMpKSBmbi5ub2RlLmFkZERlcGVuZGVuY3koZ3JvdXAucmVzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuIE5hbWVzIHN0YXJ0aW5nIHdpdGggYEFXU19gIGFyZSByZXNlcnZlZC5cbiAgICovXG4gIHB1YmxpYyBhZGRFbnZpcm9ubWVudChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFdlYkZ1bmN0aW9uIHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0FXU18nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubm9kZS5wYXRofTogZW52aXJvbm1lbnQgdmFyaWFibGUgJHtrZXl9IGlzIHJlc2VydmVkIChuYW1lcyBzdGFydGluZyB3aXRoIEFXU18gYXJlIHNldCBieSB0aGUgcnVudGltZSkke2tleSA9PT0gJ0FXU19MQU1CREFfTk9ERUpTX0VOVFJZUE9JTlQnID8gJzsgdXNlIHRoZSBlbnRyeXBvaW50IHByb3BlcnR5JyA6ICcnfWApO1xuICAgIH1cbiAgICB0aGlzLmVudmlyb25tZW50W2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBleGVjdXRpb24gcm9sZSdzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIGBncmFudGVlYCB0byBjYWxsIHRoZSBlbmRwb2ludC4gU2hvcnRjdXQgZm9yIGBncmFudHMuaW52b2tlKGdyYW50ZWUpYCwgYXMgb24gYGxhbWJkYS5GdW5jdGlvbmAuXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudHMuaW52b2tlKGdyYW50ZWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMb2dHcm91cHMobG9nR3JvdXBOYW1lOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvblByb3BzKTogV2ViRnVuY3Rpb25Mb2dHcm91cFtdIHtcbiAgICBjb25zdCBob21lID0gU3RhY2sub2YodGhpcykucmVnaW9uO1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmxvZ0dyb3VwSW4oJ0xvZ3MnLCBob21lLCBsb2dHcm91cE5hbWUsIHByb3BzKSxcbiAgICAgIHRoaXMubG9nR3JvdXBJbignTG9jYWxMb2dzJywgaG9tZSwgYCR7bG9nR3JvdXBOYW1lfS5sb2NhbGAsIHByb3BzKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZW1vdGVMb2dHcm91cHMobG9nR3JvdXBOYW1lOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvblByb3BzKTogV2ViRnVuY3Rpb25Mb2dHcm91cFtdIHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5yZWdpb25zLnNsaWNlKDEpLm1hcCgocmVnaW9uKSA9PiB0aGlzLmxvZ0dyb3VwSW4oYExvY2FsTG9ncy0ke3JlZ2lvbn1gLCByZWdpb24sIGAke2xvZ0dyb3VwTmFtZX0ubG9jYWxgLCBwcm9wcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dHcm91cEluKGlkOiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvblByb3BzKTogV2ViRnVuY3Rpb25Mb2dHcm91cCB7XG4gICAgcmV0dXJuIG5ldyBXZWJGdW5jdGlvbkxvZ0dyb3VwKHRoaXMsIGlkLCB7XG4gICAgICByZWdpb24sXG4gICAgICBsb2dHcm91cE5hbWU6IG5hbWUsXG4gICAgICByZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMubG9nUmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICB9KTtcbiAgfVxufVxuIl19
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViLWZ1bmN0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3dlYi1mdW5jdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQXdIO0FBQ3hILHlEQUEyQztBQUMzQywrREFBaUQ7QUFDakQsMkRBQTZDO0FBRzdDLHlDQUFpRDtBQUNqRCxtREFBMEQ7QUFDMUQscURBQXFGO0FBQ3JGLG1FQUErRjtBQUMvRiwrREFBMEQ7QUEySTFEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQWEsV0FBWSxTQUFRLHNCQUFROztJQUN2QixlQUFlLENBQVM7SUFDeEIsY0FBYyxDQUFTO0lBRXZDLHNDQUFzQztJQUN0QixVQUFVLENBQVM7SUFFbkMsK0JBQStCO0lBQ2YsUUFBUSxDQUFzQjtJQUU5QyxnRUFBZ0U7SUFDaEQsTUFBTSxDQUFvQjtJQUUxQywwQkFBMEI7SUFDVixJQUFJLENBQVk7SUFFaEMsa0VBQWtFO0lBQ2xELGNBQWMsQ0FBaUI7SUFFL0M7OztPQUdHO0lBQ2EsUUFBUSxDQUFpQjtJQUV4QixXQUFXLEdBQThCLEVBQUUsQ0FBQztJQUU3RCxtRkFBbUY7SUFDbkYsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzlDLENBQUM7SUFFRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXVCO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxNQUFNLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ3pELE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksZ0RBQWdELEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6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QUFFLFlBQVksRUFBRSxLQUFLLENBQUM7WUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsSUFBSSxFQUFFLEdBQUcsWUFBWSxRQUFRLEVBQUUsS0FBSyxDQUFDO1NBQ25FLENBQUM7SUFDSixDQUFDO0lBRU8scUJBQXFCLENBQUMsWUFBb0IsRUFBRSxLQUF1QjtRQUN6RSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsR0FBRyxZQUFZLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3hJLENBQUM7SUFFTyxVQUFVLENBQUMsRUFBVSxFQUFFLE1BQWMsRUFBRSxJQUFZLEVBQUUsS0FBdUI7UUFDbEYsT0FBTyxJQUFJLCtCQUFtQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdkMsTUFBTTtZQUNOLFlBQVksRUFBRSxJQUFJO1lBQ2xCLFNBQVMsRUFBRSxLQUFLLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUztZQUM3RCxhQUFhLEVBQUUsS0FBSyxDQUFDLGdCQUFnQixJQUFJLDJCQUFhLENBQUMsTUFBTTtTQUM5RCxDQUFDLENBQUM7SUFDTCxDQUFDOztBQXRLSCxrQ0F1S0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEdXJhdGlvbiwgdHlwZSBJUmVzb3VyY2UsIExhenksIE5hbWVzLCBSZW1vdmFsUG9saWN5LCBSZXNvdXJjZSwgU3RhY2ssIFRva2VuLCBWYWxpZGF0aW9ucyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkF1dGhUeXBlIH0gZnJvbSAnLi9lbnVtcyc7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkNvZGUgfSBmcm9tICcuL3ByaXZhdGUvY29kZSc7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkxvZ0dyb3VwIH0gZnJvbSAnLi9wcml2YXRlL2xvZy1ncm91cCc7XG5pbXBvcnQgeyBDRk5fVkFMSURBVEVfVU5LTk9XTl9UWVBFLCBhc3NlcnRSZXNvdXJjZU5hbWUgfSBmcm9tICcuL3ByaXZhdGUvdmFsaWRhdGlvbic7XG5pbXBvcnQgeyBXZWJGdW5jdGlvbkVuZHBvaW50LCB0eXBlIFdlYkZ1bmN0aW9uRW5kcG9pbnRPcHRpb25zIH0gZnJvbSAnLi93ZWItZnVuY3Rpb24tZW5kcG9pbnQnO1xuaW1wb3J0IHsgV2ViRnVuY3Rpb25HcmFudHMgfSBmcm9tICcuL3dlYi1mdW5jdGlvbi1ncmFudHMnO1xuXG4vKipcbiAqIE9wdGlvbnMgc2hhcmVkIGJ5IGBXZWJGdW5jdGlvbmAgYW5kIGBOb2RlanNXZWJGdW5jdGlvbmA6IGV2ZXJ5dGhpbmcgZXhjZXB0IGhvdyB0aGUgY29kZSBpcyBzdXBwbGllZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJGdW5jdGlvbk9wdGlvbnMge1xuICAvKipcbiAgICogSG93IGNhbGxlcnMgb2YgdGhlIGVuZHBvaW50IGFyZSBhdXRoZW50aWNhdGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aFR5cGU6IFdlYkZ1bmN0aW9uQXV0aFR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBlbmRwb2ludDogd2hlcmUgaXQgc2VydmVzIGZyb20sIGFuZCBpdHMgbmFtZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIEhPTUVfUkVHSU9OIGVuZHBvaW50XG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludD86IFdlYkZ1bmN0aW9uRW5kcG9pbnRPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24ncyBuYW1lLiBSZW5hbWluZyBhIGZ1bmN0aW9uIHJlcGxhY2VzIGl0LCBhbmQgaXRzIGVuZHBvaW50IGdldHMgYSBuZXcgVVJMLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGEgdW5pcXVlIG5hbWUgZ2VuZXJhdGVkIGZyb20gdGhlIGNvbnN0cnVjdCBwYXRoIChtb3ZpbmcgdGhlIGNvbnN0cnVjdCBjaGFuZ2VzIGl0KVxuICAgKi9cbiAgcmVhZG9ubHkgd2ViRnVuY3Rpb25OYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmdW5jdGlvbidzIGNvZGUgYW5kIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZXhlY3V0aW9uIHJvbGUuXG4gICAqXG4gICAqIEFuIGBpYW0uSVJvbGVgIChub3QgYElSb2xlUmVmYCkgYmVjYXVzZSB0aGUgZnVuY3Rpb24gYWRkcyBzdGF0ZW1lbnRzIHRvIGl0IGFuZCBncmFudHMgdGhyb3VnaCBpdC5cbiAgICogW2Rpc2FibGUtYXdzbGludDpwcmVmZXItcmVmLWludGVyZmFjZV1cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIHJvbGUgdHJ1c3RpbmcgYGxhbWJkYS5hbWF6b25hd3MuY29tYCB3aXRoIGBBV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGVgXG4gICAqL1xuICByZWFkb25seSByb2xlPzogaWFtLklSb2xlO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMuIE5hbWVzIHN0YXJ0aW5nIHdpdGggYEFXU19gIGFyZSByZXNlcnZlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBlbnZpcm9ubWVudD86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIEhvdyBsb25nIGEgc2luZ2xlIHJlcXVlc3QgbWF5IHJ1bi5cbiAgICpcbiAgICogQGRlZmF1bHQgRHVyYXRpb24uc2Vjb25kcygzMClcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBEdXJhdGlvbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgcmVxdWVzdHMgb25lIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCBoYW5kbGVzIGF0IHRoZSBzYW1lIHRpbWUgKDEtMTI4KS5cbiAgICogUmVxdWVzdHMgc2hhcmUgbW9kdWxlLWxldmVsIHN0YXRlLCBzbyBoYW5kbGVycyBtdXN0IGJlIGNvbmN1cnJlbmN5LXNhZmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IDY0XG4gICAqL1xuICByZWFkb25seSBtYXhDb25jdXJyZW5jeVBlckVudmlyb25tZW50PzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBSZXRlbnRpb24gZm9yIGV2ZXJ5IGxvZyBncm91cCBvZiB0aGUgZnVuY3Rpb24sIGluIGV2ZXJ5IHJlZ2lvbiBpdCBzZXJ2ZXMgZnJvbS5cbiAgICpcbiAgICogQGRlZmF1bHQgbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USFxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmV0ZW50aW9uPzogbG9ncy5SZXRlbnRpb25EYXlzO1xuXG4gIC8qKlxuICAgKiBXaGF0IGhhcHBlbnMgdG8gdGhlIGxvZyBncm91cHMgd2hlbiB0aGUgZnVuY3Rpb24gaXMgcmVtb3ZlZDogUkVUQUlOIG9yIERFU1RST1kuXG4gICAqIFdpdGggREVTVFJPWSwgZGVsZXRpb24gd2FpdHMgYWJvdXQgYSBtaW51dGUgZm9yIGVudmlyb25tZW50cyB0byBmbHVzaCB0aGVpciBsYXN0IGxpbmVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUmVtb3ZhbFBvbGljeT86IFJlbW92YWxQb2xpY3k7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGxldmVsIG9mIGFwcGxpY2F0aW9uIGxvZ3MgdG8ga2VlcC5cbiAgICpcbiAgICogQGRlZmF1bHQgbGFtYmRhLkFwcGxpY2F0aW9uTG9nTGV2ZWwuSU5GT1xuICAgKi9cbiAgcmVhZG9ubHkgYXBwbGljYXRpb25Mb2dMZXZlbFYyPzogbGFtYmRhLkFwcGxpY2F0aW9uTG9nTGV2ZWw7XG5cbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIGxldmVsIG9mIHBsYXRmb3JtIGxvZ3MgdG8ga2VlcCAoREVCVUcsIElORk8gb3IgV0FSTikuXG4gICAqXG4gICAqIEBkZWZhdWx0IGxhbWJkYS5TeXN0ZW1Mb2dMZXZlbC5JTkZPXG4gICAqL1xuICByZWFkb25seSBzeXN0ZW1Mb2dMZXZlbFYyPzogbGFtYmRhLlN5c3RlbUxvZ0xldmVsO1xufVxuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIGEgYFdlYkZ1bmN0aW9uYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXZWJGdW5jdGlvblByb3BzIGV4dGVuZHMgV2ViRnVuY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBOb2RlLmpzIHJ1bnRpbWUsIGUuZy4gYGxhbWJkYS5SdW50aW1lLk5PREVKU18yNF9YYC5cbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lO1xuXG4gIC8qKlxuICAgKiBUaGUgY29kZTogYSB6aXAgaW4gUzMgKGBDb2RlLmZyb21Bc3NldGAsIGBDb2RlLmZyb21CdWNrZXRgLCBgQ29kZS5mcm9tQ3VzdG9tQ29tbWFuZGAsIGBDb2RlLmZyb21Eb2NrZXJCdWlsZGApLlxuICAgKiBJbmxpbmUgY29kZSBhbmQgY29udGFpbmVyIGltYWdlcyBhcmVuJ3Qgc3VwcG9ydGVkLlxuICAgKlxuICAgKiBUaGUgY29kZSBpcyBjb3BpZWQgaW50byB0aGUgc3RhY2sncyBjb2RlIGJ1Y2tldCwgd2hpY2ggTGFtYmRhIFdlYiBGdW5jdGlvbnMgY2FuIHJlYWQuXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBsYW1iZGEuQ29kZTtcblxuICAvKipcbiAgICogVGhlIGZpbGUgdGhhdCBzdGFydHMgeW91ciBzZXJ2ZXIsIHJlbGF0aXZlIHRvIHRoZSByb290IG9mIHRoZSBjb2RlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnaW5kZXguanMnXG4gICAqL1xuICByZWFkb25seSBlbnRyeXBvaW50Pzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQSBMYW1iZGEgV2ViIEZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElXZWJGdW5jdGlvbiBleHRlbmRzIElSZXNvdXJjZSwgbGFtYmRhLklXZWJGdW5jdGlvblJlZiB7XG4gIC8qKlxuICAgKiBUaGUgZnVuY3Rpb24ncyBuYW1lLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3ZWJGdW5jdGlvbk5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGZ1bmN0aW9uJ3MgQVJOLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICByZWFkb25seSB3ZWJGdW5jdGlvbkFybjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgTm9kZS5qcyBIVFRQIHNlcnZlciBydW5uaW5nIGFzIGFuIEFXUyBMYW1iZGEgV2ViIEZ1bmN0aW9uLCBzZXJ2ZWQgZnJvbSBvbmUgb3IgbW9yZSByZWdpb25zLlxuICpcbiAqIENyZWF0ZXMgdGhlIGZ1bmN0aW9uLCBpdHMgY3VycmVudCByZXZpc2lvbiAoY29kZSBhbmQgY29uZmlndXJhdGlvbjsgYW55IGNoYW5nZSByZXBsYWNlcyBpdCksXG4gKiBhbiBIVFRQUyBlbmRwb2ludCwgYW4gZXhlY3V0aW9uIHJvbGUsIGFuZCBvd25zIHRoZSBmdW5jdGlvbidzIGxvZyBncm91cHMgaW4gZXZlcnkgcmVnaW9uLlxuICpcbiAqIEltcG9ydGluZyBleGlzdGluZyBmdW5jdGlvbnMgKGBmcm9tWHh4YCBtZXRob2RzKSBpcyBwbGFubmVkIGFmdGVyIDAuMS5cbiAqXG4gKiBAcmVzb3VyY2UgQVdTOjpMYW1iZGE6OldlYkZ1bmN0aW9uXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWJGdW5jdGlvbiBleHRlbmRzIFJlc291cmNlIGltcGxlbWVudHMgSVdlYkZ1bmN0aW9uLCBpYW0uSUdyYW50YWJsZSB7XG4gIHB1YmxpYyByZWFkb25seSB3ZWJGdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHdlYkZ1bmN0aW9uQXJuOiBzdHJpbmc7XG5cbiAgLyoqIFRoZSBJRCBvZiB0aGUgY3VycmVudCByZXZpc2lvbi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHJldmlzaW9uSWQ6IHN0cmluZztcblxuICAvKiogVGhlIGZ1bmN0aW9uJ3MgZW5kcG9pbnQuICovXG4gIHB1YmxpYyByZWFkb25seSBlbmRwb2ludDogV2ViRnVuY3Rpb25FbmRwb2ludDtcblxuICAvKiogR3JhbnRzIG9uIHRoZSBmdW5jdGlvbiAoZS5nLiBgZ3JhbnRzLmludm9rZShwcmluY2lwYWwpYCkuICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudHM6IFdlYkZ1bmN0aW9uR3JhbnRzO1xuXG4gIC8qKiBUaGUgZXhlY3V0aW9uIHJvbGUuICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlOiBpYW0uSVJvbGU7XG5cbiAgLyoqIFRoZSBwcmluY2lwYWwgdG8gZ3JhbnQgcGVybWlzc2lvbnMgdG8gKHRoZSBleGVjdXRpb24gcm9sZSkuICovXG4gIHB1YmxpYyByZWFkb25seSBncmFudFByaW5jaXBhbDogaWFtLklQcmluY2lwYWw7XG5cbiAgLyoqXG4gICAqIFRoZSBob21lLXJlZ2lvbiBsb2cgZ3JvdXAgdGhhdCByZWNlaXZlcyB0aGUgbG9ncyBvZiBldmVyeSByZWdpb24gdGhlIGZ1bmN0aW9uIHNlcnZlcyBmcm9tLlxuICAgKiBTdWJzY3JpYmUgdG8gdGhpcyBvbmUgb25seTogZWFjaCByZWdpb24ncyBgLmxvY2FsYCBncm91cCBob2xkcyBhIGNvcHkgb2YgdGhlIHNhbWUgZXZlbnRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxvZ0dyb3VwOiBsb2dzLklMb2dHcm91cDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGVudmlyb25tZW50OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG5cbiAgLyoqIEEgcmVmZXJlbmNlIHRvIHRoaXMgZnVuY3Rpb24sIGZvciBBUElzIHRoYXQgYWNjZXB0IGBsYW1iZGEuSVdlYkZ1bmN0aW9uUmVmYC4gKi9cbiAgcHVibGljIGdldCB3ZWJGdW5jdGlvblJlZigpOiBsYW1iZGEuV2ViRnVuY3Rpb25SZWZlcmVuY2Uge1xuICAgIHJldHVybiB7IGZ1bmN0aW9uQXJuOiB0aGlzLndlYkZ1bmN0aW9uQXJuIH07XG4gIH1cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogV2ViRnVuY3Rpb25Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMucnVudGltZS5mYW1pbHkgIT09IGxhbWJkYS5SdW50aW1lRmFtaWx5Lk5PREVKUykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubm9kZS5wYXRofTogTGFtYmRhIFdlYiBGdW5jdGlvbnMgcnVuIE5vZGUuanMgb25seSwgZ290ICR7cHJvcHMucnVudGltZS5uYW1lfWApO1xuICAgIH1cbiAgICBjb25zdCB0aW1lb3V0ID0gcHJvcHMudGltZW91dD8udG9TZWNvbmRzKCkgPz8gMzA7XG4gICAgaWYgKCFUb2tlbi5pc1VucmVzb2x2ZWQodGltZW91dCkgJiYgKHRpbWVvdXQgPCAzIHx8IHRpbWVvdXQgPiA5MDApKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5ub2RlLnBhdGh9OiB0aW1lb3V0IG11c3QgYmUgYmV0d2VlbiAzIHNlY29uZHMgYW5kIDE1IG1pbnV0ZXMsIGdvdCAke3RpbWVvdXR9c2ApO1xuICAgIH1cbiAgICBjb25zdCBtYXhDb25jdXJyZW5jeSA9IHByb3BzLm1heENvbmN1cnJlbmN5UGVyRW52aXJvbm1lbnQ7XG4gICAgY29uc3QgdmFsaWRDb25jdXJyZW5jeSA9IChuOiBudW1iZXIpID0+IE51bWJlci5pc0ludGVnZXIobikgJiYgbiA+PSAxICYmIG4gPD0gMTI4O1xuICAgIGlmIChtYXhDb25jdXJyZW5jeSAhPT0gdW5kZWZpbmVkICYmICFUb2tlbi5pc1VucmVzb2x2ZWQobWF4Q29uY3VycmVuY3kpICYmICF2YWxpZENvbmN1cnJlbmN5KG1heENvbmN1cnJlbmN5KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubm9kZS5wYXRofTogbWF4Q29uY3VycmVuY3lQZXJFbnZpcm9ubWVudCBtdXN0IGJlIGFuIGludGVnZXIgZnJvbSAxIHRvIDEyOCwgZ290ICR7bWF4Q29uY3VycmVuY3l9YCk7XG4gICAgfVxuICAgIGNvbnN0IHN5c3RlbUxvZ0xldmVscyA9IFtsYW1iZGEuU3lzdGVtTG9nTGV2ZWwuREVCVUcsIGxhbWJkYS5TeXN0ZW1Mb2dMZXZlbC5JTkZPLCBsYW1iZGEuU3lzdGVtTG9nTGV2ZWwuV0FSTl07XG4gICAgaWYgKHByb3BzLnN5c3RlbUxvZ0xldmVsVjIgIT09IHVuZGVmaW5lZCAmJiAhc3lzdGVtTG9nTGV2ZWxzLmluY2x1ZGVzKHByb3BzLnN5c3RlbUxvZ0xldmVsVjIpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dGhpcy5ub2RlLnBhdGh9OiBzeXN0ZW1Mb2dMZXZlbFYyIG11c3QgYmUgREVCVUcsIElORk8gb3IgV0FSTiBmb3IgTGFtYmRhIFdlYiBGdW5jdGlvbnNgKTtcbiAgICB9XG5cbiAgICB0aGlzLndlYkZ1bmN0aW9uTmFtZSA9IHByb3BzLndlYkZ1bmN0aW9uTmFtZSA/PyBOYW1lcy51bmlxdWVSZXNvdXJjZU5hbWUodGhpcywgeyBtYXhMZW5ndGg6IDY0LCBzZXBhcmF0b3I6ICctJyB9KTtcbiAgICBhc3NlcnRSZXNvdXJjZU5hbWUodGhpcywgJ3dlYkZ1bmN0aW9uTmFtZScsIHRoaXMud2ViRnVuY3Rpb25OYW1lKTtcblxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzLmVudmlyb25tZW50ID8/IHt9KSkge1xuICAgICAgdGhpcy5hZGRFbnZpcm9ubWVudChrZXksIHZhbHVlKTtcbiAgICB9XG4gICAgaWYgKHByb3BzLmVudHJ5cG9pbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5lbnZpcm9ubWVudC5BV1NfTEFNQkRBX05PREVKU19FTlRSWVBPSU5UID0gcHJvcHMuZW50cnlwb2ludDtcbiAgICB9XG5cbiAgICB0aGlzLnJvbGUgPSBwcm9wcy5yb2xlID8/IG5ldyBpYW0uUm9sZSh0aGlzLCAnU2VydmljZVJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW2lhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZSgnc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZScpXSxcbiAgICB9KTtcbiAgICB0aGlzLmdyYW50UHJpbmNpcGFsID0gdGhpcy5yb2xlO1xuXG4gICAgLy8gTG9nIGdyb3VwcyBmaXJzdDogdGhlIHNlcnZpY2Ugd291bGQgb3RoZXJ3aXNlIGNyZWF0ZSB0aGVtIHdpdGhvdXQgcmV0ZW50aW9uLlxuICAgIGNvbnN0IGxvZ0dyb3VwTmFtZSA9IGAvYXdzL2xhbWJkYS93ZWIvJHt0aGlzLndlYkZ1bmN0aW9uTmFtZX1gO1xuICAgIGNvbnN0IGxvZ0dyb3VwcyA9IHRoaXMuY3JlYXRlTG9nR3JvdXBzKGxvZ0dyb3VwTmFtZSwgcHJvcHMpO1xuICAgIHRoaXMubG9nR3JvdXAgPSBsb2dzLkxvZ0dyb3VwLmZyb21Mb2dHcm91cE5hbWUodGhpcywgJ0xvZ0dyb3VwJywgbG9nR3JvdXBOYW1lKTtcblxuICAgIGNvbnN0IGNvZGUgPSBuZXcgV2ViRnVuY3Rpb25Db2RlKHRoaXMsICdDb2RlJywgcHJvcHMuY29kZSkubG9jYXRpb247XG5cbiAgICBjb25zdCBmbiA9IG5ldyBsYW1iZGEuQ2ZuV2ViRnVuY3Rpb24odGhpcywgJ1Jlc291cmNlJywgeyBmdW5jdGlvbk5hbWU6IHRoaXMud2ViRnVuY3Rpb25OYW1lIH0pO1xuICAgIC8vIFRoZSBmdW5jdGlvbiBpcyBkZWxldGVkIGJlZm9yZSBpdHMgbG9nIGdyb3Vwcywgd2hpY2ggdGhlbiB3YWl0IGZvciBsYXRlIGZsdXNoZXMuXG4gICAgZm9yIChjb25zdCBncm91cCBvZiBsb2dHcm91cHMpIGZuLm5vZGUuYWRkRGVwZW5kZW5jeShncm91cC5yZXNvdXJjZSk7XG4gICAgVmFsaWRhdGlvbnMub2YoZm4pLmFja25vd2xlZGdlKENGTl9WQUxJREFURV9VTktOT1dOX1RZUEUpO1xuICAgIHRoaXMud2ViRnVuY3Rpb25Bcm4gPSBmbi5hdHRyRnVuY3Rpb25Bcm47XG5cbiAgICBjb25zdCByZXZpc2lvbiA9IG5ldyBsYW1iZGEuQ2ZuV2ViRnVuY3Rpb25SZXZpc2lvbih0aGlzLCAnUmV2aXNpb24nLCB7XG4gICAgICBmdW5jdGlvbk5hbWU6IGZuLmF0dHJGdW5jdGlvbkFybixcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIGJ1aWxkQ29uZmlnOiB7XG4gICAgICAgIGNvZGVDb25maWc6IHsgczNPYmplY3Q6IHsgYnVja2V0OiBjb2RlLmJ1Y2tldE5hbWUsIGtleTogY29kZS5vYmplY3RLZXksIHZlcnNpb25JZDogY29kZS5vYmplY3RWZXJzaW9uIH0gfSxcbiAgICAgICAgcnVudGltZUNvbmZpZzogeyBydW50aW1lOiBwcm9wcy5ydW50aW1lLm5hbWUgfSxcbiAgICAgIH0sXG4gICAgICBzZXJ2aWNlQ29uZmlnOiB7XG4gICAgICAgIGV4ZWN1dGlvblJvbGVBcm46IHRoaXMucm9sZS5yb2xlQXJuLFxuICAgICAgICBlbnZpcm9ubWVudFZhcmlhYmxlczogTGF6eS5hbnkoeyBwcm9kdWNlOiAoKSA9PiAoT2JqZWN0LmtleXModGhpcy5lbnZpcm9ubWVudCkubGVuZ3RoID4gMCA/IHsgLi4udGhpcy5lbnZpcm9ubWVudCB9IDogdW5kZWZpbmVkKSB9KSxcbiAgICAgICAgdGltZW91dFNlY29uZHM6IHRpbWVvdXQsXG4gICAgICAgIG1heENvbmN1cnJlbmN5UGVyRW52aXJvbm1lbnQ6IG1heENvbmN1cnJlbmN5LFxuICAgICAgICB0ZWxlbWV0cnlDb25maWc6IHtcbiAgICAgICAgICBsb2dnaW5nQ29uZmlnOiB7XG4gICAgICAgICAgICBsb2dHcm91cDogbG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgYXBwbGljYXRpb25Mb2dMZXZlbDogcHJvcHMuYXBwbGljYXRpb25Mb2dMZXZlbFYyLFxuICAgICAgICAgICAgc3lzdGVtTG9nTGV2ZWw6IHByb3BzLnN5c3RlbUxvZ0xldmVsVjIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgLy8gV2FpdCBmb3IgdGhlIHJvbGUncyBwb2xpY2llcywgc28gdGhlIGZpcnN0IGVudmlyb25tZW50IHN0YXJ0cyB3aXRoIGl0cyBwZXJtaXNzaW9ucy5cbiAgICByZXZpc2lvbi5ub2RlLmFkZERlcGVuZGVuY3kodGhpcy5yb2xlKTtcbiAgICBWYWxpZGF0aW9ucy5vZihyZXZpc2lvbikuYWNrbm93bGVkZ2UoQ0ZOX1ZBTElEQVRFX1VOS05PV05fVFlQRSk7XG4gICAgdGhpcy5yZXZpc2lvbklkID0gcmV2aXNpb24uYXR0clJldmlzaW9uSWQ7XG5cbiAgICB0aGlzLmVuZHBvaW50ID0gV2ViRnVuY3Rpb25FbmRwb2ludC5fY3JlYXRlKHRoaXMsICdFbmRwb2ludCcsIHtcbiAgICAgIC4uLnByb3BzLmVuZHBvaW50LFxuICAgICAgZnVuY3Rpb25OYW1lOiB0aGlzLndlYkZ1bmN0aW9uTmFtZSxcbiAgICAgIGZ1bmN0aW9uQXJuOiBmbi5hdHRyRnVuY3Rpb25Bcm4sXG4gICAgICByZXZpc2lvbklkOiByZXZpc2lvbi5hdHRyUmV2aXNpb25JZCxcbiAgICAgIGF1dGhUeXBlOiBwcm9wcy5hdXRoVHlwZSxcbiAgICB9KTtcblxuICAgIHRoaXMuZ3JhbnRzID0gV2ViRnVuY3Rpb25HcmFudHMuX2ZvckVuZHBvaW50KHRoaXMuZW5kcG9pbnQpO1xuXG4gICAgLy8gUmVtb3RlIHJlZ2lvbnMnIC5sb2NhbCBncm91cHMgY2FuIG9ubHkgYmUgY3JlYXRlZCBvbmNlIHRoZSByZWdpb25zIGFyZSBrbm93bi5cbiAgICBmb3IgKGNvbnN0IGdyb3VwIG9mIHRoaXMuY3JlYXRlUmVtb3RlTG9nR3JvdXBzKGxvZ0dyb3VwTmFtZSwgcHJvcHMpKSBmbi5ub2RlLmFkZERlcGVuZGVuY3koZ3JvdXAucmVzb3VyY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuIE5hbWVzIHN0YXJ0aW5nIHdpdGggYEFXU19gIGFyZSByZXNlcnZlZC5cbiAgICovXG4gIHB1YmxpYyBhZGRFbnZpcm9ubWVudChrZXk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IFdlYkZ1bmN0aW9uIHtcbiAgICBpZiAoa2V5LnN0YXJ0c1dpdGgoJ0FXU18nKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMubm9kZS5wYXRofTogZW52aXJvbm1lbnQgdmFyaWFibGUgJHtrZXl9IGlzIHJlc2VydmVkIChuYW1lcyBzdGFydGluZyB3aXRoIEFXU18gYXJlIHNldCBieSB0aGUgcnVudGltZSkke2tleSA9PT0gJ0FXU19MQU1CREFfTk9ERUpTX0VOVFJZUE9JTlQnID8gJzsgdXNlIHRoZSBlbnRyeXBvaW50IHByb3BlcnR5JyA6ICcnfWApO1xuICAgIH1cbiAgICB0aGlzLmVudmlyb25tZW50W2tleV0gPSB2YWx1ZTtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgc3RhdGVtZW50IHRvIHRoZSBleGVjdXRpb24gcm9sZSdzIHBvbGljeS5cbiAgICovXG4gIHB1YmxpYyBhZGRUb1JvbGVQb2xpY3koc3RhdGVtZW50OiBpYW0uUG9saWN5U3RhdGVtZW50KTogdm9pZCB7XG4gICAgdGhpcy5yb2xlLmFkZFRvUHJpbmNpcGFsUG9saWN5KHN0YXRlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQWxsb3dzIGBncmFudGVlYCB0byBjYWxsIHRoZSBlbmRwb2ludC4gU2hvcnRjdXQgZm9yIGBncmFudHMuaW52b2tlKGdyYW50ZWUpYCwgYXMgb24gYGxhbWJkYS5GdW5jdGlvbmAuXG4gICAqIFtkaXNhYmxlLWF3c2xpbnQ6bm8tZ3JhbnRzXVxuICAgKi9cbiAgcHVibGljIGdyYW50SW52b2tlKGdyYW50ZWU6IGlhbS5JR3JhbnRhYmxlKTogaWFtLkdyYW50IHtcbiAgICByZXR1cm4gdGhpcy5ncmFudHMuaW52b2tlKGdyYW50ZWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVMb2dHcm91cHMobG9nR3JvdXBOYW1lOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvblByb3BzKTogV2ViRnVuY3Rpb25Mb2dHcm91cFtdIHtcbiAgICBjb25zdCBob21lID0gU3RhY2sub2YodGhpcykucmVnaW9uO1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmxvZ0dyb3VwSW4oJ0xvZ3MnLCBob21lLCBsb2dHcm91cE5hbWUsIHByb3BzKSxcbiAgICAgIHRoaXMubG9nR3JvdXBJbignTG9jYWxMb2dzJywgaG9tZSwgYCR7bG9nR3JvdXBOYW1lfS5sb2NhbGAsIHByb3BzKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVSZW1vdGVMb2dHcm91cHMobG9nR3JvdXBOYW1lOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvblByb3BzKTogV2ViRnVuY3Rpb25Mb2dHcm91cFtdIHtcbiAgICByZXR1cm4gdGhpcy5lbmRwb2ludC5yZWdpb25zLnNsaWNlKDEpLm1hcCgocmVnaW9uKSA9PiB0aGlzLmxvZ0dyb3VwSW4oYExvY2FsTG9ncy0ke3JlZ2lvbn1gLCByZWdpb24sIGAke2xvZ0dyb3VwTmFtZX0ubG9jYWxgLCBwcm9wcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dHcm91cEluKGlkOiBzdHJpbmcsIHJlZ2lvbjogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIHByb3BzOiBXZWJGdW5jdGlvblByb3BzKTogV2ViRnVuY3Rpb25Mb2dHcm91cCB7XG4gICAgcmV0dXJuIG5ldyBXZWJGdW5jdGlvbkxvZ0dyb3VwKHRoaXMsIGlkLCB7XG4gICAgICByZWdpb24sXG4gICAgICBsb2dHcm91cE5hbWU6IG5hbWUsXG4gICAgICByZXRlbnRpb246IHByb3BzLmxvZ1JldGVudGlvbiA/PyBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgcmVtb3ZhbFBvbGljeTogcHJvcHMubG9nUmVtb3ZhbFBvbGljeSA/PyBSZW1vdmFsUG9saWN5LlJFVEFJTixcbiAgICB9KTtcbiAgfVxufVxuIl19
package/package.json CHANGED
@@ -77,6 +77,7 @@
77
77
  "jsii-pacmak": "^1.141.0",
78
78
  "jsii-rosetta": "~6.0.0",
79
79
  "projen": "^0.104.5",
80
+ "supports-color": "^7",
80
81
  "ts-jest": "^29.4.15",
81
82
  "ts-node": "^10.9.2",
82
83
  "tsx": "^4.23.15",
@@ -108,7 +109,7 @@
108
109
  "main": "lib/index.js",
109
110
  "license": "Apache-2.0",
110
111
  "stability": "experimental",
111
- "version": "0.1.0",
112
+ "version": "0.1.1",
112
113
  "jest": {
113
114
  "coverageProvider": "v8",
114
115
  "testMatch": [
@@ -164,7 +165,8 @@
164
165
  "awslint": {
165
166
  "exclude": [
166
167
  "construct-ctor:@ashishpandeyone/cdk-lambda-web-function.WebFunctionEndpoint",
167
- "from-method:@ashishpandeyone/cdk-lambda-web-function.WebFunction"
168
+ "from-method:@ashishpandeyone/cdk-lambda-web-function.WebFunction",
169
+ "resource-interface:@ashishpandeyone/cdk-lambda-web-function.NodejsWebFunction"
168
170
  ]
169
171
  },
170
172
  "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."