cdk-opennext 0.4.5 → 0.4.6

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/.jsii CHANGED
@@ -8796,6 +8796,6 @@
8796
8796
  "symbolId": "src/open-next:NextjsSiteProps"
8797
8797
  }
8798
8798
  },
8799
- "version": "0.4.5",
8800
- "fingerprint": "9YQdSxTxYC5Uwk/c38qPOjcwYSL1rE6RfZsh4abr1BE="
8799
+ "version": "0.4.6",
8800
+ "fingerprint": "DcAx7TfN0iJeViDSyjFgTyne0FWtBKw9gPkYcm+2JEM="
8801
8801
  }
package/AGENTS.md CHANGED
@@ -29,3 +29,4 @@ CDK construct to deploy a Next.js 15+ application to AWS using the OpenNext AWS
29
29
 
30
30
  - Managed by Projen - edit `.projenrc.ts` then run `npx projen` to regenerate config
31
31
  - Main export: `NextjsSite` construct (renamed from OpenNextCdk for SST v2 compatibility)
32
+ - `package.json`: managed by projen, update via `.projenrc.ts`
package/CLAUDE.md CHANGED
@@ -29,3 +29,4 @@ CDK construct to deploy a Next.js 15+ application to AWS using the OpenNext AWS
29
29
 
30
30
  - Managed by Projen - edit `.projenrc.ts` then run `npx projen` to regenerate config
31
31
  - Main export: `NextjsSite` construct (renamed from OpenNextCdk for SST v2 compatibility)
32
+ - `package.json`: managed by projen, update via `.projenrc.ts`
@@ -1,3 +1,23 @@
1
1
  module.exports = {
2
2
  extends: ["@commitlint/config-conventional"],
3
+ rules: {
4
+ "type-enum": [
5
+ 2,
6
+ "always",
7
+ [
8
+ "docs",
9
+ "feat",
10
+ "fix",
11
+ "chore",
12
+ "ci",
13
+ "vendor",
14
+ "build",
15
+ "perf",
16
+ "refactor",
17
+ "revert",
18
+ "style",
19
+ "test",
20
+ ],
21
+ ],
22
+ },
3
23
  }
package/lib/open-next.js CHANGED
@@ -427,5 +427,5 @@ if(request.headers["cloudfront-viewer-longitude"]) {
427
427
  }
428
428
  exports.NextjsSite = NextjsSite;
429
429
  _a = JSII_RTTI_SYMBOL_1;
430
- NextjsSite[_a] = { fqn: "cdk-opennext.NextjsSite", version: "0.4.5" };
430
+ NextjsSite[_a] = { fqn: "cdk-opennext.NextjsSite", version: "0.4.6" };
431
431
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3Blbi1uZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL29wZW4tbmV4dC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQywyQkFBaUM7QUFDakMsNkJBQTRCO0FBQzVCLCtFQUEwRjtBQUMxRiwrREFnQm1DO0FBQ25DLCtFQUErRTtBQUMvRSwyREFBbUY7QUFDbkYsdURBQXVEO0FBQ3ZELHVFQUErRDtBQUUvRCx1REFTK0I7QUFDL0IsbUZBQXFFO0FBQ3JFLG1EQUE4RDtBQUM5RCx5REFBd0Y7QUFDeEYseUVBQWtFO0FBQ2xFLCtDQUE4RDtBQUM5RCxxRUFBd0U7QUFDeEUsaURBQTJDO0FBQzNDLDJDQU95QjtBQUN6QixtRUFBdUQ7QUFDdkQsMkNBQXNDO0FBZ0p0QyxNQUFhLFVBQVcsU0FBUSxzQkFBUztJQWlCdkMsSUFBVyxxQkFBcUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUE7SUFDcEMsQ0FBQztJQUVELElBQVcsR0FBRztRQUNaLE9BQU8sV0FBVyxJQUFJLENBQUMsWUFBWSxDQUFDLHNCQUFzQixFQUFFLENBQUE7SUFDOUQsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxpQkFBaUI7WUFDM0IsQ0FBQyxDQUFDLFdBQVcsSUFBSSxDQUFDLGlCQUFpQixFQUFFO1lBQ3JDLENBQUMsQ0FBQyxXQUFXLElBQUksQ0FBQyxZQUFZLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtJQUMzRCxDQUFDO0lBRUQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFBO1FBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUE7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENB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O1lBQ3hELG1CQUFtQixFQUFFLHlDQUF3QixDQUFDLEdBQUcsRUFBRTtZQUNuRCxjQUFjLEVBQUUsb0NBQW1CLENBQUMsU0FBUyxDQUMzQyxRQUFRLEVBQ1IsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxzQkFBc0IsRUFDdEIsd0JBQXdCLEVBQ3hCLFVBQVUsRUFDVix3QkFBd0IsQ0FDekI7WUFDRCxjQUFjLEVBQUUsb0NBQW1CLENBQUMsSUFBSSxFQUFFO1lBQzFDLFVBQVUsRUFBRSxlQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUM1QixNQUFNLEVBQUUsZUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDMUIsTUFBTSxFQUFFLGVBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3pCLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFTyx1QkFBdUI7UUFDN0IsT0FBTyw0QkFBVyxDQUFDLGlCQUFpQixDQUFBO0lBQ3RDLENBQUM7O0FBcmdCSCxnQ0FzZ0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlSGFzaCB9IGZyb20gXCJjcnlwdG9cIlxuaW1wb3J0IHsgcmVhZEZpbGVTeW5jIH0gZnJvbSBcImZzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHsgRG5zVmFsaWRhdGVkQ2VydGlmaWNhdGUsIElDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCJcbmltcG9ydCB7XG4gIEFsbG93ZWRNZXRob2RzLFxuICB0eXBlIEJlaGF2aW9yT3B0aW9ucyxcbiAgQ2FjaGVDb29raWVCZWhhdmlvcixcbiAgQ2FjaGVIZWFkZXJCZWhhdmlvcixcbiAgQ2FjaGVQb2xpY3ksXG4gIENhY2hlUXVlcnlTdHJpbmdCZWhhdmlvcixcbiAgQ2FjaGVkTWV0aG9kcyxcbiAgRGlzdHJpYnV0aW9uLFxuICB0eXBlIElDYWNoZVBvbGljeSxcbiAgdHlwZSBJT3JpZ2luLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbiAgRnVuY3Rpb25FdmVudFR5cGUsXG4gIE9yaWdpblJlcXVlc3RQb2xpY3ksXG4gIEZ1bmN0aW9uIGFzIENsb3VkZnJvbnRGdW5jdGlvbixcbiAgRnVuY3Rpb25Db2RlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnRcIlxuaW1wb3J0IHsgSHR0cE9yaWdpbiwgUzNCdWNrZXRPcmlnaW4gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3VkZnJvbnQtb3JpZ2luc1wiXG5pbXBvcnQgeyBUYWJsZVYyIGFzIFRhYmxlLCBBdHRyaWJ1dGVUeXBlLCBCaWxsaW5nIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1keW5hbW9kYlwiXG5pbXBvcnQgeyBSdWxlLCBTY2hlZHVsZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCJcbmltcG9ydCB7IExhbWJkYUZ1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ldmVudHMtdGFyZ2V0c1wiXG5pbXBvcnQgeyB0eXBlIElHcmFudGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQge1xuICBDb2RlLFxuICBGdW5jdGlvbiBhcyBDZGtGdW5jdGlvbixcbiAgdHlwZSBGdW5jdGlvbk9wdGlvbnMsXG4gIEZ1bmN0aW9uVXJsQXV0aFR5cGUsXG4gIEludm9rZU1vZGUsXG4gIExvZ2dpbmdGb3JtYXQsXG4gIFJ1bnRpbWUsXG4gIEFyY2hpdGVjdHVyZSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0IHsgU3FzRXZlbnRTb3VyY2UgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYS1ldmVudC1zb3VyY2VzXCJcbmltcG9ydCB7IExvZ0dyb3VwLCBSZXRlbnRpb25EYXlzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCJcbmltcG9ydCB7IEFhYWFSZWNvcmQsIEFSZWNvcmQsIElIb3N0ZWRab25lLCBSZWNvcmRUYXJnZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIlxuaW1wb3J0IHsgQ2xvdWRGcm9udFRhcmdldCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1My10YXJnZXRzXCJcbmltcG9ydCB7IEJsb2NrUHVibGljQWNjZXNzLCBCdWNrZXQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCJcbmltcG9ydCB7IEJ1Y2tldERlcGxveW1lbnQsIFNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiXG5pbXBvcnQgeyBRdWV1ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3FzXCJcbmltcG9ydCB7XG4gIEFubm90YXRpb25zLFxuICBDdXN0b21SZXNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIEZuLFxuICBSZW1vdmFsUG9saWN5LFxuICBTdGFjayxcbn0gZnJvbSBcImF3cy1jZGstbGliL2NvcmVcIlxuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5cbnR5cGUgQmFzZUZ1bmN0aW9uID0ge1xuICBoYW5kbGVyOiBzdHJpbmdcbiAgYnVuZGxlOiBzdHJpbmdcbn1cblxudHlwZSBPcGVuTmV4dEZ1bmN0aW9uT3JpZ2luID0ge1xuICB0eXBlOiBcImZ1bmN0aW9uXCJcbiAgc3RyZWFtaW5nPzogYm9vbGVhblxufSAmIEJhc2VGdW5jdGlvblxuXG50eXBlIE9wZW5OZXh0UzNPcmlnaW4gPSB7XG4gIHR5cGU6IFwiczNcIlxuICBvcmlnaW5QYXRoOiBzdHJpbmdcbiAgY29weToge1xuICAgIGZyb206IHN0cmluZ1xuICAgIHRvOiBzdHJpbmdcbiAgICBjYWNoZWQ6IGJvb2xlYW5cbiAgICB2ZXJzaW9uZWRTdWJEaXI/OiBzdHJpbmdcbiAgfVtdXG59XG5cbnR5cGUgT3Blbk5leHRPcmlnaW5zID0gT3Blbk5leHRGdW5jdGlvbk9yaWdpbiB8IE9wZW5OZXh0UzNPcmlnaW5cblxuaW50ZXJmYWNlIE9wZW5OZXh0T3V0cHV0IHtcbiAgZWRnZUZ1bmN0aW9uczoge1xuICAgIFtrZXk6IHN0cmluZ106IEJhc2VGdW5jdGlvblxuICB9XG4gIG9yaWdpbnM6IHtcbiAgICBzMzogT3Blbk5leHRTM09yaWdpblxuICAgIGRlZmF1bHQ6IE9wZW5OZXh0RnVuY3Rpb25PcmlnaW5cbiAgICBpbWFnZU9wdGltaXplcjogT3Blbk5leHRGdW5jdGlvbk9yaWdpblxuICAgIFtrZXk6IHN0cmluZ106IE9wZW5OZXh0T3JpZ2luc1xuICB9XG4gIGJlaGF2aW9yczoge1xuICAgIHBhdHRlcm46IHN0cmluZ1xuICAgIG9yaWdpbj86IHN0cmluZ1xuICAgIGVkZ2VGdW5jdGlvbj86IHN0cmluZ1xuICB9W11cbiAgYWRkaXRpb25hbFByb3BzPzoge1xuICAgIGRpc2FibGVJbmNyZW1lbnRhbENhY2hlPzogYm9vbGVhblxuICAgIGRpc2FibGVUYWdDYWNoZT86IGJvb2xlYW5cbiAgICBpbml0aWFsaXphdGlvbkZ1bmN0aW9uPzogQmFzZUZ1bmN0aW9uXG4gICAgd2FybWVyPzogQmFzZUZ1bmN0aW9uXG4gICAgcmV2YWxpZGF0aW9uRnVuY3Rpb24/OiBCYXNlRnVuY3Rpb25cbiAgfVxufVxuXG4vKipcbiAqIFByb3BzIGZvciBMYW1iZGEgZnVuY3Rpb25zLCBleGNsdWRpbmcgaGFuZGxlciBhbmQgY29kZSB3aGljaCBhcmUgc2V0IGJ5IHRoZSBjb25zdHJ1Y3QuXG4gKiBFeHRlbmRzIEZ1bmN0aW9uT3B0aW9ucyBhbmQgYWRkcyBydW50aW1lLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmF1bHRGdW5jdGlvblByb3BzIGV4dGVuZHMgRnVuY3Rpb25PcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBydW50aW1lIGVudmlyb25tZW50IGZvciB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSdW50aW1lLk5PREVKU18yNF9YXG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogUnVudGltZVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERpc3RyaWJ1dGlvbkRvbWFpblByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBkb21haW4gdG8gYmUgYXNzaWduZWQgdG8gdGhlIHdlYnNpdGUgVVJMIChpZS4gZG9tYWluLmNvbSkuXG4gICAqXG4gICAqIFN1cHBvcnRzIGRvbWFpbnMgdGhhdCBhcmUgaG9zdGVkIGVpdGhlciBvbiBbUm91dGUgNTNdKGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vcm91dGU1My8pIG9yIGV4dGVybmFsbHkuXG4gICAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmdcblxuICAvKipcbiAgICogSW1wb3J0IHRoZSB1bmRlcmx5aW5nIFJvdXRlIDUzIGhvc3RlZCB6b25lLlxuICAgKlxuICAgKiBSZXF1aXJlZCBpZiBgY2VydGlmaWNhdGVgIGlzIG5vdCBwcm92aWRlZC4gV2hlbiBwcm92aWRlZCwgYSBETlMtdmFsaWRhdGVkXG4gICAqIGNlcnRpZmljYXRlIHdpbGwgYmUgY3JlYXRlZCBhdXRvbWF0aWNhbGx5IGFuZCBETlMgYWxpYXNlcyB3aWxsIGJlIHNldCB1cC5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RlZFpvbmU/OiBJSG9zdGVkWm9uZVxuXG4gIC8qKlxuICAgKiBUaGUgQUNNIGNlcnRpZmljYXRlIHRvIHVzZSBmb3IgdGhlIGN1c3RvbSBkb21haW4uXG4gICAqXG4gICAqIFJlcXVpcmVkIGlmIGBob3N0ZWRab25lYCBpcyBub3QgcHJvdmlkZWQuIFRoZSBjZXJ0aWZpY2F0ZSBtdXN0IGJlIGluXG4gICAqIHVzLWVhc3QtMSBmb3IgQ2xvdWRGcm9udCBkaXN0cmlidXRpb25zLlxuICAgKlxuICAgKiBXaGVuIHByb3ZpZGVkIHdpdGhvdXQgYGhvc3RlZFpvbmVgLCBubyBETlMgYWxpYXNlcyB3aWxsIGJlIGNyZWF0ZWRcbiAgICogYW5kIHlvdSBtdXN0IGNvbmZpZ3VyZSBETlMgcmVjb3JkcyBleHRlcm5hbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGU/OiBJQ2VydGlmaWNhdGVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBOZXh0anNTaXRlUHJvcHMge1xuICAvKipcbiAgICogVGhlIGN1c3RvbURvbWFpbiBmb3IgdGhpcyB3ZWJzaXRlLiBUaGlzIGRvbWFpbiBtdXN0IGJlIGhvc3RlZCBpblxuICAgKiByb3V0ZTUzLCBhbmQgd2UgbXVzdCBiZSBhYmxlIHRvIGNyZWF0ZSBhbiBBQ00gY2VydGlmaWNhdGUgZm9yIHRoaXNcbiAgICogZG9tYWluLlxuICAgKlxuICAgKiBOb3RlIHRoYXQgeW91IGNhbiBhbHNvIG1pZ3JhdGUgZXh0ZXJuYWxseSBob3N0ZWQgZG9tYWlucyB0byBSb3V0ZSA1MyBieVxuICAgKiBbZm9sbG93aW5nIHRoaXMgZ3VpZGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9Sb3V0ZTUzL2xhdGVzdC9EZXZlbG9wZXJHdWlkZS9NaWdyYXRpbmdETlMuaHRtbCkuXG4gICAqL1xuICByZWFkb25seSBjdXN0b21Eb21haW4/OiBEaXN0cmlidXRpb25Eb21haW5Qcm9wc1xuXG4gIC8qKlxuICAgKiBTaG91bGQgcG9pbnQgdG8gdGhlIC5vcGVuLW5leHQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIi5vcGVuLW5leHRcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3Blbk5leHRQYXRoPzogc3RyaW5nIHwgdW5kZWZpbmVkXG5cbiAgLyoqXG4gICAqIERlZmF1bHQgcHJvcHMgdG8gYXBwbHkgdG8gYWxsIExhbWJkYSBmdW5jdGlvbnMgY3JlYXRlZCBieSB0aGlzIGNvbnN0cnVjdC5cbiAgICogVGhlc2UgY2FuIGJlIG92ZXJyaWRkZW4gYnkgc3BlY2lmaWMgZnVuY3Rpb24gY29uZmlndXJhdGlvbnMuXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0RnVuY3Rpb25Qcm9wcz86IERlZmF1bHRGdW5jdGlvblByb3BzXG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2VydmVyIGluc3RhbmNlcyB0byBrZWVwIHdhcm0uIFNldCB0byBmYWxzZSB0byBkaXNhYmxlIHdhcm1pbmcuXG4gICAqIE11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyICg+PSAxKSBpZiBzcGVjaWZpZWQuIFZhbHVlcyA8PSAwIHdpbGwgZGlzYWJsZSB3YXJtaW5nLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEBleGFtcGxlXG4gICAqIHdhcm06IDUgLy8gS2VlcCA1IGNvbmN1cnJlbnQgaW5zdGFuY2VzIHdhcm1cbiAgICogd2FybTogZmFsc2UgLy8gRGlzYWJsZSB3YXJtaW5nXG4gICAqL1xuICByZWFkb25seSB3YXJtPzogbnVtYmVyIHwgZmFsc2VcblxuICAvKipcbiAgICogSG93IG9mdGVuIHRvIGludm9rZSB0aGUgd2FybWVyIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEdXJhdGlvbi5taW51dGVzKDUpXG4gICAqIEBleGFtcGxlXG4gICAqIHdhcm1lckludGVydmFsOiBEdXJhdGlvbi5taW51dGVzKDEwKVxuICAgKi9cbiAgcmVhZG9ubHkgd2FybWVySW50ZXJ2YWw/OiBEdXJhdGlvblxuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGludm9rZSB0aGUgd2FybWVyIGZ1bmN0aW9uIGltbWVkaWF0ZWx5IGFmdGVyIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICogQGV4YW1wbGVcbiAgICogcHJld2FybU9uRGVwbG95OiBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgcHJld2FybU9uRGVwbG95PzogYm9vbGVhblxufVxuXG5leHBvcnQgY2xhc3MgTmV4dGpzU2l0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgb3Blbk5leHRPdXRwdXQ6IE9wZW5OZXh0T3V0cHV0XG4gIHByaXZhdGUgYnVja2V0OiBCdWNrZXRcbiAgcHJpdmF0ZSB0YWJsZTogVGFibGVcbiAgcHJpdmF0ZSBxdWV1ZTogUXVldWVcblxuICBwcml2YXRlIHN0YXRpY0NhY2hlUG9saWN5OiBJQ2FjaGVQb2xpY3lcbiAgcHJpdmF0ZSBzZXJ2ZXJDYWNoZVBvbGljeTogQ2FjaGVQb2xpY3lcblxuICBwcml2YXRlIG9wZW5OZXh0UGF0aDogc3RyaW5nXG5cbiAgcHVibGljIHJlYWRvbmx5IGRpc3RyaWJ1dGlvbjogRGlzdHJpYnV0aW9uXG4gIHByaXZhdGUgX2RlZmF1bHRTZXJ2ZXJGdW5jdGlvbiE6IENka0Z1bmN0aW9uXG4gIHByaXZhdGUgX2N1c3RvbURvbWFpbk5hbWU/OiBzdHJpbmdcbiAgcHJpdmF0ZSB3YXJtZXJGdW5jdGlvbj86IENka0Z1bmN0aW9uXG4gIHByaXZhdGUgcHJvcHM6IE5leHRqc1NpdGVQcm9wc1xuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdFNlcnZlckZ1bmN0aW9uKCk6IENka0Z1bmN0aW9uIHtcbiAgICByZXR1cm4gdGhpcy5fZGVmYXVsdFNlcnZlckZ1bmN0aW9uXG4gIH1cblxuICBwdWJsaWMgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiBgaHR0cHM6Ly8ke3RoaXMuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWV9YFxuICB9XG5cbiAgcHVibGljIGdldCBjdXN0b21Eb21haW5VcmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fY3VzdG9tRG9tYWluTmFtZVxuICAgICAgPyBgaHR0cHM6Ly8ke3RoaXMuX2N1c3RvbURvbWFpbk5hbWV9YFxuICAgICAgOiBgaHR0cHM6Ly8ke3RoaXMuZGlzdHJpYnV0aW9uLmRpc3RyaWJ1dGlvbkRvbWFpbk5hbWV9YFxuICB9XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE5leHRqc1NpdGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcbiAgICB0aGlzLnByb3BzID0gcHJvcHNcbiAgICB0aGlzLm9wZW5OZXh0UGF0aCA9IHByb3BzLm9wZW5OZXh0UGF0aCA/PyBcIi5vcGVuLW5leHRcIlxuICAgIHRoaXMub3Blbk5leHRPdXRwdXQgPSBKU09OLnBhcnNlKFxuICAgICAgcmVhZEZpbGVTeW5jKHBhdGguam9pbih0aGlzLm9wZW5OZXh0UGF0aCwgXCJvcGVuLW5leHQub3V0cHV0Lmpzb25cIiksIFwidXRmLThcIilcbiAgICApIGFzIE9wZW5OZXh0T3V0cHV0XG5cbiAgICB0aGlzLl9jdXN0b21Eb21haW5OYW1lID0gcHJvcHMuY3VzdG9tRG9tYWluPy5kb21haW5OYW1lXG5cbiAgICAvLyBWYWxpZGF0ZSBjdXN0b21Eb21haW4gcHJvcHM6IGVpdGhlciBjZXJ0aWZpY2F0ZSBvciBob3N0ZWRab25lIG11c3QgYmUgcHJvdmlkZWRcbiAgICBpZiAoXG4gICAgICBwcm9wcy5jdXN0b21Eb21haW4gJiZcbiAgICAgICFwcm9wcy5jdXN0b21Eb21haW4uY2VydGlmaWNhdGUgJiZcbiAgICAgICFwcm9wcy5jdXN0b21Eb21haW4uaG9zdGVkWm9uZVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcImN1c3RvbURvbWFpbiByZXF1aXJlcyBlaXRoZXIgYSBjZXJ0aWZpY2F0ZSBvciBhIGhvc3RlZFpvbmUuIFwiICtcbiAgICAgICAgICBcIlByb3ZpZGUgYSBob3N0ZWRab25lIHRvIGF1dG9tYXRpY2FsbHkgY3JlYXRlIGEgRE5TLXZhbGlkYXRlZCBjZXJ0aWZpY2F0ZSwgXCIgK1xuICAgICAgICAgIFwib3IgcHJvdmlkZSB5b3VyIG93biBjZXJ0aWZpY2F0ZS5cIlxuICAgICAgKVxuICAgIH1cblxuICAgIHRoaXMuYnVja2V0ID0gbmV3IEJ1Y2tldCh0aGlzLCBcIlMzQnVja2V0XCIsIHtcbiAgICAgIHB1YmxpY1JlYWRBY2Nlc3M6IGZhbHNlLFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGF1dG9EZWxldGVPYmplY3RzOiB0cnVlLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICB9KVxuICAgIHRoaXMudGFibGUgPSB0aGlzLmNyZWF0ZVJldmFsaWRhdGlvblRhYmxlKClcbiAgICB0aGlzLnF1ZXVlID0gdGhpcy5jcmVhdGVSZXZhbGlkYXRpb25RdWV1ZSgpXG5cbiAgICAvLyBVc2UgcHJvdmlkZWQgY2VydGlmaWNhdGUgb3IgY3JlYXRlIG9uZSBpZiBob3N0ZWRab25lIGlzIGF2YWlsYWJsZVxuICAgIGNvbnN0IGNlcnRpZmljYXRlID1cbiAgICAgIHByb3BzLmN1c3RvbURvbWFpbj8uY2VydGlmaWNhdGUgPz9cbiAgICAgIChwcm9wcy5jdXN0b21Eb21haW4/Lmhvc3RlZFpvbmVcbiAgICAgICAgPyB0aGlzLmNyZWF0ZUNlcnRpZmljYXRlKFxuICAgICAgICAgICAgcHJvcHMuY3VzdG9tRG9tYWluLmRvbWFpbk5hbWUsXG4gICAgICAgICAgICBwcm9wcy5jdXN0b21Eb21haW4uaG9zdGVkWm9uZVxuICAgICAgICAgIClcbiAgICAgICAgOiB1bmRlZmluZWQpXG5cbiAgICBjb25zdCBvcmlnaW5zID0gdGhpcy5jcmVhdGVPcmlnaW5zKHByb3BzLmRlZmF1bHRGdW5jdGlvblByb3BzKVxuICAgIHRoaXMuc2VydmVyQ2FjaGVQb2xpY3kgPSB0aGlzLmNyZWF0ZVNlcnZlckNhY2hlUG9saWN5KClcbiAgICB0aGlzLnN0YXRpY0NhY2hlUG9saWN5ID0gdGhpcy5jcmVhdGVTdGF0aWNDYWNoZVBvbGljeSgpXG4gICAgdGhpcy5kaXN0cmlidXRpb24gPSB0aGlzLmNyZWF0ZURpc3RyaWJ1dGlvbihvcmlnaW5zLCBwcm9wcywgY2VydGlmaWNhdGUpXG4gICAgdGhpcy5jcmVhdGVXYXJtZXIoKVxuICAgIGlmIChwcm9wcy5jdXN0b21Eb21haW4gJiYgcHJvcHMuY3VzdG9tRG9tYWluLmhvc3RlZFpvbmUpIHtcbiAgICAgIG5ldyBBUmVjb3JkKHRoaXMsIFwiQWxpYXNSZWNvcmRcIiwge1xuICAgICAgICB6b25lOiBwcm9wcy5jdXN0b21Eb21haW4uaG9zdGVkWm9uZSxcbiAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuY3VzdG9tRG9tYWluLmRvbWFpbk5hbWUsXG4gICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQ2xvdWRGcm9udFRhcmdldCh0aGlzLmRpc3RyaWJ1dGlvbikpLFxuICAgICAgfSlcblxuICAgICAgbmV3IEFhYWFSZWNvcmQodGhpcywgXCJBbGlhc1JlY29yZEFBQUFcIiwge1xuICAgICAgICB6b25lOiBwcm9wcy5jdXN0b21Eb21haW4uaG9zdGVkWm9uZSxcbiAgICAgICAgcmVjb3JkTmFtZTogcHJvcHMuY3VzdG9tRG9tYWluLmRvbWFpbk5hbWUsXG4gICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21BbGlhcyhuZXcgQ2xvdWRGcm9udFRhcmdldCh0aGlzLmRpc3RyaWJ1dGlvbikpLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUNlcnRpZmljYXRlKGRvbWFpbk5hbWU6IHN0cmluZywgaG9zdGVkWm9uZTogSUhvc3RlZFpvbmUpIHtcbiAgICAvLyBDbG91ZEZyb250IHJlcXVpcmVzIGNlcnRpZmljYXRlcyB0byBiZSBpbiB1cy1lYXN0LTFcbiAgICAvLyBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSBoYW5kbGVzIGNyb3NzLXJlZ2lvbiBjZXJ0aWZpY2F0ZSBjcmVhdGlvbiBhdXRvbWF0aWNhbGx5XG4gICAgcmV0dXJuIG5ldyBEbnNWYWxpZGF0ZWRDZXJ0aWZpY2F0ZSh0aGlzLCBcIkNlcnRpZmljYXRlXCIsIHtcbiAgICAgIGRvbWFpbk5hbWUsXG4gICAgICBob3N0ZWRab25lLFxuICAgICAgcmVnaW9uOiBcInVzLWVhc3QtMVwiLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJldmFsaWRhdGlvblRhYmxlKCkge1xuICAgIGNvbnN0IHRhYmxlID0gbmV3IFRhYmxlKHRoaXMsIFwiUmV2YWxpZGF0aW9uVGFibGVcIiwge1xuICAgICAgcGFydGl0aW9uS2V5OiB7IG5hbWU6IFwidGFnXCIsIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICBzb3J0S2V5OiB7IG5hbWU6IFwicGF0aFwiLCB0eXBlOiBBdHRyaWJ1dGVUeXBlLlNUUklORyB9LFxuICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb246IHtcbiAgICAgICAgcG9pbnRJblRpbWVSZWNvdmVyeUVuYWJsZWQ6IHRydWUsXG4gICAgICB9LFxuICAgICAgYmlsbGluZzogQmlsbGluZy5vbkRlbWFuZCgpLFxuICAgICAgZ2xvYmFsU2Vjb25kYXJ5SW5kZXhlczogW1xuICAgICAgICB7XG4gICAgICAgICAgaW5kZXhOYW1lOiBcInJldmFsaWRhdGVcIixcbiAgICAgICAgICBwYXJ0aXRpb25LZXk6IHsgbmFtZTogXCJwYXRoXCIsIHR5cGU6IEF0dHJpYnV0ZVR5cGUuU1RSSU5HIH0sXG4gICAgICAgICAgc29ydEtleTogeyBuYW1lOiBcInJldmFsaWRhdGVkQXRcIiwgdHlwZTogQXR0cmlidXRlVHlwZS5OVU1CRVIgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICByZW1vdmFsUG9saWN5OiBSZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgfSlcblxuICAgIGNvbnN0IGluaXRGbiA9IHRoaXMub3Blbk5leHRPdXRwdXQuYWRkaXRpb25hbFByb3BzPy5pbml0aWFsaXphdGlvbkZ1bmN0aW9uXG5cbiAgICBjb25zdCBpbnNlcnRGbiA9IG5ldyBDZGtGdW5jdGlvbih0aGlzLCBcIlJldmFsaWRhdGlvbkluc2VydEZ1bmN0aW9uXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk5leHQuanMgcmV2YWxpZGF0aW9uIGRhdGEgaW5zZXJ0XCIsXG4gICAgICBoYW5kbGVyOiBpbml0Rm4/LmhhbmRsZXIgPz8gXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAvLyBjb2RlOiBDb2RlLmZyb21Bc3NldChpbml0Rm4/LmJ1bmRsZSA/PyBcIlwiKSxcbiAgICAgIGNvZGU6IENvZGUuZnJvbUFzc2V0KHBhdGguam9pbih0aGlzLm9wZW5OZXh0UGF0aCwgXCJkeW5hbW9kYi1wcm92aWRlclwiKSksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18yNF9YLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygxNSksXG4gICAgICBtZW1vcnlTaXplOiAxMjgsXG4gICAgICBsb2dnaW5nRm9ybWF0OiBMb2dnaW5nRm9ybWF0LkpTT04sXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBDQUNIRV9EWU5BTU9fVEFCTEU6IHRhYmxlLnRhYmxlTmFtZSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIGNvbnN0IHByb3ZpZGVyTG9nR3JvdXAgPSBuZXcgTG9nR3JvdXAodGhpcywgXCJSZXZhbGlkYXRpb25Qcm92aWRlckxvZ0dyb3VwXCIsIHtcbiAgICAgIHJldGVudGlvbjogUmV0ZW50aW9uRGF5cy5PTkVfREFZLFxuICAgICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5ERVNUUk9ZLFxuICAgIH0pXG5cbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBQcm92aWRlcih0aGlzLCBcIlJldmFsaWRhdGlvblByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBpbnNlcnRGbixcbiAgICAgIGxvZ0dyb3VwOiBwcm92aWRlckxvZ0dyb3VwLFxuICAgIH0pXG5cbiAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJSZXZhbGlkYXRpb25SZXNvdXJjZVwiLCB7XG4gICAgICBzZXJ2aWNlVG9rZW46IHByb3ZpZGVyLnNlcnZpY2VUb2tlbixcbiAgICAgIHByb3BlcnRpZXM6IHtcbiAgICAgICAgdmVyc2lvbjogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgcmV0dXJuIHRhYmxlXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9yaWdpbnMoZGVmYXVsdEZ1bmN0aW9uUHJvcHM/OiBEZWZhdWx0RnVuY3Rpb25Qcm9wcykge1xuICAgIGNvbnN0IHtcbiAgICAgIHMzOiBzM09yaWdpbixcbiAgICAgIGRlZmF1bHQ6IGRlZmF1bHRPcmlnaW4sXG4gICAgICBpbWFnZU9wdGltaXplcjogaW1hZ2VPcmlnaW4sXG4gICAgICAuLi5yZXN0T3JpZ2luc1xuICAgIH0gPSB0aGlzLm9wZW5OZXh0T3V0cHV0Lm9yaWdpbnNcbiAgICBmb3IgKGNvbnN0IGNvcHkgb2YgczNPcmlnaW4uY29weSkge1xuICAgICAgbmV3IEJ1Y2tldERlcGxveW1lbnQodGhpcywgYE9wZW5OZXh0QnVja2V0RGVwbG95bWVudCR7Y29weS5mcm9tfWAsIHtcbiAgICAgICAgc291cmNlczogW1NvdXJjZS5hc3NldChwYXRoLmpvaW4odGhpcy5vcGVuTmV4dFBhdGgsIFwiLi5cIiwgY29weS5mcm9tKSldLFxuICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdGhpcy5idWNrZXQsXG4gICAgICAgIGRlc3RpbmF0aW9uS2V5UHJlZml4OiBjb3B5LnRvLFxuICAgICAgICBwcnVuZTogZmFsc2UsXG4gICAgICB9KVxuICAgIH1cbiAgICBjb25zdCBvcmlnaW5zID0ge1xuICAgICAgczM6IFMzQnVja2V0T3JpZ2luLndpdGhPcmlnaW5BY2Nlc3NDb250cm9sKHRoaXMuYnVja2V0LCB7XG4gICAgICAgIG9yaWdpbklkOiBcIlMzQnVja2V0XCIsXG4gICAgICAgIG9yaWdpblBhdGg6IHMzT3JpZ2luLm9yaWdpblBhdGgsXG4gICAgICB9KSxcbiAgICAgIGRlZmF1bHQ6IHRoaXMuY3JlYXRlRnVuY3Rpb25PcmlnaW4oXG4gICAgICAgIFwiZGVmYXVsdFwiLFxuICAgICAgICBkZWZhdWx0T3JpZ2luLFxuICAgICAgICBcIk5leHRKc1NlcnZlclwiLFxuICAgICAgICBkZWZhdWx0RnVuY3Rpb25Qcm9wc1xuICAgICAgKSxcbiAgICAgIGltYWdlT3B0aW1pemVyOiB0aGlzLmNyZWF0ZUZ1bmN0aW9uT3JpZ2luKFxuICAgICAgICBcImltYWdlT3B0aW1pemVyXCIsXG4gICAgICAgIGltYWdlT3JpZ2luLFxuICAgICAgICBcIkltYWdlT3B0aW1pemVyXCJcbiAgICAgICksXG4gICAgICAuLi5PYmplY3QuZW50cmllcyhyZXN0T3JpZ2lucykucmVkdWNlKFxuICAgICAgICAoYWNjLCBba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBjb25zdCBvcmlnaW5JZCA9IGtleS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIGtleS5zbGljZSgxKVxuICAgICAgICAgIGlmICh2YWx1ZS50eXBlID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgICAgIGFjY1trZXldID0gdGhpcy5jcmVhdGVGdW5jdGlvbk9yaWdpbihrZXksIHZhbHVlLCBvcmlnaW5JZClcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGFjY1xuICAgICAgICB9LFxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBIdHRwT3JpZ2luPlxuICAgICAgKSxcbiAgICB9XG4gICAgcmV0dXJuIG9yaWdpbnNcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmV2YWxpZGF0aW9uUXVldWUoKSB7XG4gICAgY29uc3QgcXVldWUgPSBuZXcgUXVldWUodGhpcywgXCJSZXZhbGlkYXRpb25RdWV1ZVwiLCB7XG4gICAgICBmaWZvOiB0cnVlLFxuICAgICAgcmVjZWl2ZU1lc3NhZ2VXYWl0VGltZTogRHVyYXRpb24uc2Vjb25kcygyMCksXG4gICAgfSlcbiAgICBjb25zdCBjb25zdW1lciA9IG5ldyBDZGtGdW5jdGlvbih0aGlzLCBcIlJldmFsaWRhdGlvbkZ1bmN0aW9uXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk5leHQuanMgcmV2YWxpZGF0b3JcIixcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIHRoaXMub3Blbk5leHRPdXRwdXQuYWRkaXRpb25hbFByb3BzPy5yZXZhbGlkYXRpb25GdW5jdGlvbj8uYnVuZGxlXG4gICAgICAgICAgPyBwYXRoLmpvaW4oXG4gICAgICAgICAgICAgIHRoaXMub3Blbk5leHRQYXRoLFxuICAgICAgICAgICAgICBcIi4uXCIsXG4gICAgICAgICAgICAgIHRoaXMub3Blbk5leHRPdXRwdXQuYWRkaXRpb25hbFByb3BzPy5yZXZhbGlkYXRpb25GdW5jdGlvbj8uYnVuZGxlXG4gICAgICAgICAgICApXG4gICAgICAgICAgOiBcIlwiXG4gICAgICApLFxuICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMjRfWCxcbiAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIHRpbWVvdXQ6IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgICAgbG9nZ2luZ0Zvcm1hdDogTG9nZ2luZ0Zvcm1hdC5KU09OLFxuICAgIH0pXG4gICAgY29uc3VtZXIuYWRkRXZlbnRTb3VyY2UobmV3IFNxc0V2ZW50U291cmNlKHF1ZXVlLCB7IGJhdGNoU2l6ZTogNSB9KSlcbiAgICByZXR1cm4gcXVldWVcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlV2FybWVyKCkge1xuICAgIC8vIERlZmF1bHQ6IHdhcm06IDEsIHVzZXJzIGNhbiBkaXNhYmxlIHdpdGggd2FybTogZmFsc2VcbiAgICBjb25zdCB3YXJtQ29uY3VycmVuY3kgPSB0aGlzLnByb3BzLndhcm0gPT09IGZhbHNlID8gdW5kZWZpbmVkIDogKHRoaXMucHJvcHMud2FybSA/PyAxKVxuXG4gICAgLy8gU2tpcCBpZiB3YXJtaW5nIGlzIGRpc2FibGVkIG9yIGludmFsaWRcbiAgICBpZiAoIXdhcm1Db25jdXJyZW5jeSB8fCB3YXJtQ29uY3VycmVuY3kgPD0gMCkgcmV0dXJuXG5cbiAgICAvLyBHZXQgd2FybWVyIGJ1bmRsZSBmcm9tIE9wZW5OZXh0XG4gICAgY29uc3Qgd2FybWVyID0gdGhpcy5vcGVuTmV4dE91dHB1dC5hZGRpdGlvbmFsUHJvcHM/Lndhcm1lclxuICAgIGlmICghd2FybWVyKSB7XG4gICAgICBBbm5vdGF0aW9ucy5vZih0aGlzKS5hZGRXYXJuaW5nKFxuICAgICAgICBcIldhcm1pbmcgaXMgZW5hYmxlZCBidXQgT3Blbk5leHQgZGlkIG5vdCBwcm92aWRlIGEgd2FybWVyIGJ1bmRsZS4gXCIgK1xuICAgICAgICAgIFwiU2tpcHBpbmcgd2FybWVyIGNyZWF0aW9uLiBFbnN1cmUgeW91J3JlIHVzaW5nIE9wZW5OZXh0IDMueCsgd2l0aCB3YXJtaW5nIHN1cHBvcnQuXCJcbiAgICAgIClcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IHdhcm1lckJ1bmRsZSA9IHBhdGguam9pbih0aGlzLm9wZW5OZXh0UGF0aCwgXCIuLlwiLCB3YXJtZXIuYnVuZGxlKVxuICAgIGNvbnN0IHdhcm1lckhhbmRsZXIgPSB3YXJtZXIuaGFuZGxlclxuXG4gICAgLy8gQ29uZmlndXJlIFdBUk1fUEFSQU1TXG4gICAgY29uc3Qgd2FybVBhcmFtcyA9IFtcbiAgICAgIHtcbiAgICAgICAgY29uY3VycmVuY3k6IHdhcm1Db25jdXJyZW5jeSxcbiAgICAgICAgZnVuY3Rpb246IHRoaXMuX2RlZmF1bHRTZXJ2ZXJGdW5jdGlvbi5mdW5jdGlvbk5hbWUsXG4gICAgICB9LFxuICAgIF1cblxuICAgIC8vIENyZWF0ZSB3YXJtZXIgTGFtYmRhXG4gICAgdGhpcy53YXJtZXJGdW5jdGlvbiA9IG5ldyBDZGtGdW5jdGlvbih0aGlzLCBcIldhcm1lckZ1bmN0aW9uXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBcIk5leHQuanMgd2FybWVyXCIsXG4gICAgICBoYW5kbGVyOiB3YXJtZXJIYW5kbGVyLFxuICAgICAgY29kZTogQ29kZS5mcm9tQXNzZXQod2FybWVyQnVuZGxlKSxcbiAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gICAgICBhcmNoaXRlY3R1cmU6IEFyY2hpdGVjdHVyZS5BUk1fNjQsXG4gICAgICB0aW1lb3V0OiBEdXJhdGlvbi5taW51dGVzKDEpLFxuICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgbG9nZ2luZ0Zvcm1hdDogTG9nZ2luZ0Zvcm1hdC5KU09OLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgV0FSTV9QQVJBTVM6IEpTT04uc3RyaW5naWZ5KHdhcm1QYXJhbXMpLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgLy8gR3JhbnQgaW52b2tlIHBlcm1pc3Npb25zXG4gICAgdGhpcy5fZGVmYXVsdFNlcnZlckZ1bmN0aW9uLmdyYW50SW52b2tlKHRoaXMud2FybWVyRnVuY3Rpb24pXG4gICAgdGhpcy5fZGVmYXVsdFNlcnZlckZ1bmN0aW9uLmFkZEVudmlyb25tZW50KFwiV0FSTUVSX0VOQUJMRURcIiwgXCJ0cnVlXCIpXG5cbiAgICAvLyBDcmVhdGUgRXZlbnRCcmlkZ2UgcnVsZVxuICAgIGNvbnN0IGludGVydmFsID0gdGhpcy5wcm9wcy53YXJtZXJJbnRlcnZhbCA/PyBEdXJhdGlvbi5taW51dGVzKDUpXG4gICAgbmV3IFJ1bGUodGhpcywgXCJXYXJtZXJSdWxlXCIsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiBgSW52b2tlIHdhcm1lciBldmVyeSAke2ludGVydmFsLnRvTWludXRlcygpfSBtaW51dGVzYCxcbiAgICAgIHNjaGVkdWxlOiBTY2hlZHVsZS5yYXRlKGludGVydmFsKSxcbiAgICAgIHRhcmdldHM6IFtuZXcgTGFtYmRhRnVuY3Rpb24odGhpcy53YXJtZXJGdW5jdGlvbiwgeyByZXRyeUF0dGVtcHRzOiAwIH0pXSxcbiAgICB9KVxuXG4gICAgLy8gQ3JlYXRlIHByZS13YXJtZXIgaWYgZW5hYmxlZCAoZGVmYXVsdDogdHJ1ZSlcbiAgICBpZiAodGhpcy5wcm9wcy5wcmV3YXJtT25EZXBsb3kgIT09IGZhbHNlKSB7XG4gICAgICBjb25zdCBwcmV3YXJtZXJMb2dHcm91cCA9IG5ldyBMb2dHcm91cCh0aGlzLCBcIlByZXdhcm1lckxvZ0dyb3VwXCIsIHtcbiAgICAgICAgcmV0ZW50aW9uOiBSZXRlbnRpb25EYXlzLk9ORV9EQVksXG4gICAgICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuREVTVFJPWSxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHByZXdhcm1lckZuID0gbmV3IENka0Z1bmN0aW9uKHRoaXMsIFwiUHJld2FybWVyRnVuY3Rpb25cIiwge1xuICAgICAgICBkZXNjcmlwdGlvbjogXCJOZXh0LmpzIHByZS13YXJtZXJcIixcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAgIGNvZGU6IENvZGUuZnJvbUlubGluZShgXG4gICAgICAgICAgY29uc3QgeyBMYW1iZGFDbGllbnQsIEludm9rZUNvbW1hbmQgfSA9IHJlcXVpcmUoXCJAYXdzLXNkay9jbGllbnQtbGFtYmRhXCIpXG4gICAgICAgICAgY29uc3QgbGFtYmRhID0gbmV3IExhbWJkYUNsaWVudCh7fSlcblxuICAgICAgICAgIGV4cG9ydHMuaGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4ge1xuICAgICAgICAgICAgaWYgKGV2ZW50LlJlcXVlc3RUeXBlID09PSBcIkRlbGV0ZVwiKSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IFBoeXNpY2FsUmVzb3VyY2VJZDogXCJwcmV3YXJtZXJcIiB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIGF3YWl0IGxhbWJkYS5zZW5kKFxuICAgICAgICAgICAgICAgIG5ldyBJbnZva2VDb21tYW5kKHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uTmFtZTogZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICAgICAgICAgIEludm9jYXRpb25UeXBlOiBcIlJlcXVlc3RSZXNwb25zZVwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJQcmUtd2FybWluZyBmYWlsZWQ6XCIsIGVycm9yKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4geyBQaHlzaWNhbFJlc291cmNlSWQ6IFwicHJld2FybWVyXCIgfVxuICAgICAgICAgIH1cbiAgICAgICAgYCksXG4gICAgICAgIHJ1bnRpbWU6IFJ1bnRpbWUuTk9ERUpTXzI0X1gsXG4gICAgICAgIGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogMTI4LFxuICAgICAgICBsb2dnaW5nRm9ybWF0OiBMb2dnaW5nRm9ybWF0LkpTT04sXG4gICAgICAgIGxvZ0dyb3VwOiBwcmV3YXJtZXJMb2dHcm91cCxcbiAgICAgIH0pXG5cbiAgICAgIHRoaXMud2FybWVyRnVuY3Rpb24uZ3JhbnRJbnZva2UocHJld2FybWVyRm4pXG5cbiAgICAgIGNvbnN0IHByb3ZpZGVyID0gbmV3IFByb3ZpZGVyKHRoaXMsIFwiUHJld2FybWVyUHJvdmlkZXJcIiwge1xuICAgICAgICBvbkV2ZW50SGFuZGxlcjogcHJld2FybWVyRm4sXG4gICAgICAgIGxvZ0dyb3VwOiBwcmV3YXJtZXJMb2dHcm91cCxcbiAgICAgIH0pXG5cbiAgICAgIC8vIENyZWF0ZSBhIGRldGVybWluaXN0aWMgdmVyc2lvbiBoYXNoIGJhc2VkIG9uIHdhcm1lciBjb25maWd1cmF0aW9uXG4gICAgICAvLyBUaGlzIGVuc3VyZXMgcHJlLXdhcm1pbmcgb25seSB0cmlnZ2VycyB3aGVuIGNvbmZpZyBhY3R1YWxseSBjaGFuZ2VzXG4gICAgICBjb25zdCBjb25maWdIYXNoID0gY3JlYXRlSGFzaChcInNoYTI1NlwiKVxuICAgICAgICAudXBkYXRlKFxuICAgICAgICAgIEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgIGNvbmN1cnJlbmN5OiB3YXJtQ29uY3VycmVuY3ksXG4gICAgICAgICAgICBpbnRlcnZhbDogaW50ZXJ2YWwudG9NaW51dGVzKCksXG4gICAgICAgICAgICBwcmV3YXJtRW5hYmxlZDogdGhpcy5wcm9wcy5wcmV3YXJtT25EZXBsb3ksXG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuZGlnZXN0KFwiaGV4XCIpXG4gICAgICAgIC5zdWJzdHJpbmcoMCwgMTYpIC8vIFRydW5jYXRlIGZvciByZWFkYWJpbGl0eVxuXG4gICAgICBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgXCJQcmV3YXJtZXJSZXNvdXJjZVwiLCB7XG4gICAgICAgIHNlcnZpY2VUb2tlbjogcHJvdmlkZXIuc2VydmljZVRva2VuLFxuICAgICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgICAgRnVuY3Rpb25OYW1lOiB0aGlzLndhcm1lckZ1bmN0aW9uLmZ1bmN0aW9uTmFtZSxcbiAgICAgICAgICBWZXJzaW9uOiBjb25maWdIYXNoLFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldEVudmlyb25tZW50KCkge1xuICAgIHJldHVybiB7XG4gICAgICBDQUNIRV9CVUNLRVRfTkFNRTogdGhpcy5idWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIENBQ0hFX0JVQ0tFVF9LRVlfUFJFRklYOiBcIl9jYWNoZVwiLFxuICAgICAgQ0FDSEVfQlVDS0VUX1JFR0lPTjogU3RhY2sub2YodGhpcykucmVnaW9uLFxuICAgICAgUkVWQUxJREFUSU9OX1FVRVVFX1VSTDogdGhpcy5xdWV1ZS5xdWV1ZVVybCxcbiAgICAgIFJFVkFMSURBVElPTl9RVUVVRV9SRUdJT046IFN0YWNrLm9mKHRoaXMpLnJlZ2lvbixcbiAgICAgIENBQ0hFX0RZTkFNT19UQUJMRTogdGhpcy50YWJsZS50YWJsZU5hbWUsXG4gICAgICAvLyBUaG9zZSAyIGFyZSB1c2VkIG9ubHkgZm9yIGltYWdlIG9wdGltaXplclxuICAgICAgQlVDS0VUX05BTUU6IHRoaXMuYnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICBCVUNLRVRfS0VZX1BSRUZJWDogXCJfYXNzZXRzXCIsXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBncmFudFBlcm1pc3Npb25zKGdyYW50YWJsZTogSUdyYW50YWJsZSkge1xuICAgIHRoaXMuYnVja2V0LmdyYW50UmVhZFdyaXRlKGdyYW50YWJsZSlcbiAgICB0aGlzLnRhYmxlLmdyYW50UmVhZFdyaXRlRGF0YShncmFudGFibGUpXG4gICAgdGhpcy5xdWV1ZS5ncmFudFNlbmRNZXNzYWdlcyhncmFudGFibGUpXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZ1bmN0aW9uT3JpZ2luKFxuICAgIGtleTogc3RyaW5nLFxuICAgIG9yaWdpbjogT3Blbk5leHRGdW5jdGlvbk9yaWdpbixcbiAgICBvcmlnaW5JZD86IHN0cmluZyxcbiAgICBmblByb3BzPzogRGVmYXVsdEZ1bmN0aW9uUHJvcHNcbiAgKSB7XG4gICAgY29uc3QgZW52aXJvbm1lbnQgPSB0aGlzLmdldEVudmlyb25tZW50KClcbiAgICBjb25zdCBmbiA9IG5ldyBDZGtGdW5jdGlvbih0aGlzLCBgJHtrZXl9RnVuY3Rpb25gLCB7XG4gICAgICAuLi5mblByb3BzLFxuICAgICAgcnVudGltZTogZm5Qcm9wcz8ucnVudGltZSA/PyBSdW50aW1lLk5PREVKU18yNF9YLFxuICAgICAgYXJjaGl0ZWN0dXJlOiBmblByb3BzPy5hcmNoaXRlY3R1cmUgPz8gQXJjaGl0ZWN0dXJlLkFSTV82NCxcbiAgICAgIG1lbW9yeVNpemU6IGZuUHJvcHM/Lm1lbW9yeVNpemUgPz8gMTAyNCxcbiAgICAgIGxvZ2dpbmdGb3JtYXQ6IGZuUHJvcHM/LmxvZ2dpbmdGb3JtYXQgPz8gTG9nZ2luZ0Zvcm1hdC5KU09OLFxuICAgICAgaGFuZGxlcjogb3JpZ2luLmhhbmRsZXIsXG4gICAgICBjb2RlOiBDb2RlLmZyb21Bc3NldChwYXRoLmpvaW4odGhpcy5vcGVuTmV4dFBhdGgsIFwiLi5cIiwgb3JpZ2luLmJ1bmRsZSkpLFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgLi4uZm5Qcm9wcz8uZW52aXJvbm1lbnQsXG4gICAgICAgIC4uLmVudmlyb25tZW50LFxuICAgICAgfSxcbiAgICB9KVxuICAgIGNvbnN0IGZuVXJsID0gZm4uYWRkRnVuY3Rpb25Vcmwoe1xuICAgICAgYXV0aFR5cGU6IEZ1bmN0aW9uVXJsQXV0aFR5cGUuTk9ORSxcbiAgICAgIGludm9rZU1vZGU6IG9yaWdpbi5zdHJlYW1pbmcgPyBJbnZva2VNb2RlLlJFU1BPTlNFX1NUUkVBTSA6IEludm9rZU1vZGUuQlVGRkVSRUQsXG4gICAgfSlcbiAgICB0aGlzLmdyYW50UGVybWlzc2lvbnMoZm4pXG5cbiAgICAvLyBTdG9yZSByZWZlcmVuY2UgdG8gZGVmYXVsdCBzZXJ2ZXIgZnVuY3Rpb25cbiAgICBpZiAoa2V5ID09PSBcImRlZmF1bHRcIikge1xuICAgICAgdGhpcy5fZGVmYXVsdFNlcnZlckZ1bmN0aW9uID0gZm5cbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IEh0dHBPcmlnaW4oRm4ucGFyc2VEb21haW5OYW1lKGZuVXJsLnVybCksIHtcbiAgICAgIC4uLihvcmlnaW5JZCA/IHsgb3JpZ2luSWQgfSA6IHt9KSxcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRHZW9IZWFkZXJzSW5qZWN0aW9uKCkge1xuICAgIHJldHVybiBgXG5pZihyZXF1ZXN0LmhlYWRlcnNbXCJjbG91ZGZyb250LXZpZXdlci1jaXR5XCJdKSB7XG4gIHJlcXVlc3QuaGVhZGVyc1tcIngtb3Blbi1uZXh0LWNpdHlcIl0gPSByZXF1ZXN0LmhlYWRlcnNbXCJjbG91ZGZyb250LXZpZXdlci1jaXR5XCJdO1xufVxuaWYocmVxdWVzdC5oZWFkZXJzW1wiY2xvdWRmcm9udC12aWV3ZXItY291bnRyeVwiXSkge1xuICByZXF1ZXN0LmhlYWRlcnNbXCJ4LW9wZW4tbmV4dC1jb3VudHJ5XCJdID0gcmVxdWVzdC5oZWFkZXJzW1wiY2xvdWRmcm9udC12aWV3ZXItY291bnRyeVwiXTtcbn1cbmlmKHJlcXVlc3QuaGVhZGVyc1tcImNsb3VkZnJvbnQtdmlld2VyLXJlZ2lvblwiXSkge1xuICByZXF1ZXN0LmhlYWRlcnNbXCJ4LW9wZW4tbmV4dC1yZWdpb25cIl0gPSByZXF1ZXN0LmhlYWRlcnNbXCJjbG91ZGZyb250LXZpZXdlci1yZWdpb25cIl07XG59XG5pZihyZXF1ZXN0LmhlYWRlcnNbXCJjbG91ZGZyb250LXZpZXdlci1sYXRpdHVkZVwiXSkge1xuICByZXF1ZXN0LmhlYWRlcnNbXCJ4LW9wZW4tbmV4dC1sYXRpdHVkZVwiXSA9IHJlcXVlc3QuaGVhZGVyc1tcImNsb3VkZnJvbnQtdmlld2VyLWxhdGl0dWRlXCJdO1xufVxuaWYocmVxdWVzdC5oZWFkZXJzW1wiY2xvdWRmcm9udC12aWV3ZXItbG9uZ2l0dWRlXCJdKSB7XG4gIHJlcXVlc3QuaGVhZGVyc1tcIngtb3Blbi1uZXh0LWxvbmdpdHVkZVwiXSA9IHJlcXVlc3QuaGVhZGVyc1tcImNsb3VkZnJvbnQtdmlld2VyLWxvbmdpdHVkZVwiXTtcbn1cbiAgICBgLnRyaW0oKVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEaXN0cmlidXRpb24oXG4gICAgb3JpZ2luczogUmVjb3JkPHN0cmluZywgSU9yaWdpbj4sXG4gICAgcHJvcHM6IE5leHRqc1NpdGVQcm9wcyxcbiAgICBjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZVxuICApIHtcbiAgICBjb25zdCBjbG91ZGZyb250RnVuY3Rpb24gPSBuZXcgQ2xvdWRmcm9udEZ1bmN0aW9uKHRoaXMsIFwiQ2xvdWRGcm9udEZ1bmN0aW9uXCIsIHtcbiAgICAgIGNvZGU6IEZ1bmN0aW9uQ29kZS5mcm9tSW5saW5lKGBcblx0XHRcdGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHtcblx0XHRcdFx0dmFyIHJlcXVlc3QgPSBldmVudC5yZXF1ZXN0O1xuXHRcdFx0XHRyZXF1ZXN0LmhlYWRlcnNbXCJ4LWZvcndhcmRlZC1ob3N0XCJdID0gcmVxdWVzdC5oZWFkZXJzLmhvc3Q7XG5cdFx0XHRcdCR7dGhpcy5nZXRHZW9IZWFkZXJzSW5qZWN0aW9uKCl9XG5cdFx0XHRcdHJldHVybiByZXF1ZXN0O1xuXHRcdFx0fVxuXHRcdFx0YCksXG4gICAgfSlcbiAgICBjb25zdCBmbkFzc29jaWF0aW9ucyA9IFtcbiAgICAgIHtcbiAgICAgICAgZnVuY3Rpb246IGNsb3VkZnJvbnRGdW5jdGlvbixcbiAgICAgICAgZXZlbnRUeXBlOiBGdW5jdGlvbkV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgIH0sXG4gICAgXVxuXG4gICAgY29uc3QgZGlzdHJpYnV0aW9uID0gbmV3IERpc3RyaWJ1dGlvbih0aGlzLCBcIkRpc3RyaWJ1dGlvblwiLCB7XG4gICAgICBkb21haW5OYW1lczogcHJvcHMuY3VzdG9tRG9tYWluID8gW3Byb3BzLmN1c3RvbURvbWFpbi5kb21haW5OYW1lXSA6IHVuZGVmaW5lZCxcbiAgICAgIGNlcnRpZmljYXRlLFxuICAgICAgZGVmYXVsdEJlaGF2aW9yOiB7XG4gICAgICAgIG9yaWdpbjogb3JpZ2lucy5kZWZhdWx0ISwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0FMTCxcbiAgICAgICAgY2FjaGVkTWV0aG9kczogQ2FjaGVkTWV0aG9kcy5DQUNIRV9HRVRfSEVBRF9PUFRJT05TLFxuICAgICAgICBjYWNoZVBvbGljeTogdGhpcy5zZXJ2ZXJDYWNoZVBvbGljeSxcbiAgICAgICAgb3JpZ2luUmVxdWVzdFBvbGljeTogT3JpZ2luUmVxdWVzdFBvbGljeS5BTExfVklFV0VSX0VYQ0VQVF9IT1NUX0hFQURFUixcbiAgICAgICAgZnVuY3Rpb25Bc3NvY2lhdGlvbnM6IGZuQXNzb2NpYXRpb25zLFxuICAgICAgfSxcbiAgICAgIGFkZGl0aW9uYWxCZWhhdmlvcnM6IHRoaXMub3Blbk5leHRPdXRwdXQuYmVoYXZpb3JzXG4gICAgICAgIC5maWx0ZXIoKGIpID0+IGIucGF0dGVybiAhPT0gXCIqXCIpXG4gICAgICAgIC5yZWR1Y2UoXG4gICAgICAgICAgKGFjYywgYmVoYXZpb3IpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGJlaGF2aW9yT3B0aW9uczogQmVoYXZpb3JPcHRpb25zID0ge1xuICAgICAgICAgICAgICBvcmlnaW46IChiZWhhdmlvci5vcmlnaW4gPyBvcmlnaW5zW2JlaGF2aW9yLm9yaWdpbl0gOiBvcmlnaW5zLmRlZmF1bHQpISwgLy8gZXNsaW50LWRpc2FibGUtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uXG4gICAgICAgICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgICAgICAgYWxsb3dlZE1ldGhvZHM6IEFsbG93ZWRNZXRob2RzLkFMTE9XX0dFVF9IRUFEX09QVElPTlMsXG4gICAgICAgICAgICAgIGNhY2hlZE1ldGhvZHM6IENhY2hlZE1ldGhvZHMuQ0FDSEVfR0VUX0hFQURfT1BUSU9OUyxcbiAgICAgICAgICAgICAgY2FjaGVQb2xpY3k6XG4gICAgICAgICAgICAgICAgYmVoYXZpb3Iub3JpZ2luID09PSBcInMzXCJcbiAgICAgICAgICAgICAgICAgID8gdGhpcy5zdGF0aWNDYWNoZVBvbGljeVxuICAgICAgICAgICAgICAgICAgOiB0aGlzLnNlcnZlckNhY2hlUG9saWN5LFxuICAgICAgICAgICAgICAuLi4oYmVoYXZpb3Iub3JpZ2luID09PSBcInMzXCJcbiAgICAgICAgICAgICAgICA/IHt9XG4gICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpblJlcXVlc3RQb2xpY3k6XG4gICAgICAgICAgICAgICAgICAgICAgT3JpZ2luUmVxdWVzdFBvbGljeS5BTExfVklFV0VSX0VYQ0VQVF9IT1NUX0hFQURFUixcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICBmdW5jdGlvbkFzc29jaWF0aW9uczogZm5Bc3NvY2lhdGlvbnMsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBhY2NbYmVoYXZpb3IucGF0dGVybl0gPSBiZWhhdmlvck9wdGlvbnNcbiAgICAgICAgICAgIHJldHVybiBhY2NcbiAgICAgICAgICB9LFxuICAgICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz5cbiAgICAgICAgKSxcbiAgICB9KVxuICAgIHJldHVybiBkaXN0cmlidXRpb25cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlU2VydmVyQ2FjaGVQb2xpY3koKSB7XG4gICAgcmV0dXJuIG5ldyBDYWNoZVBvbGljeSh0aGlzLCBcIk9wZW5OZXh0U2VydmVyQ2FjaGVQb2xpY3lcIiwge1xuICAgICAgcXVlcnlTdHJpbmdCZWhhdmlvcjogQ2FjaGVRdWVyeVN0cmluZ0JlaGF2aW9yLmFsbCgpLFxuICAgICAgaGVhZGVyQmVoYXZpb3I6IENhY2hlSGVhZGVyQmVoYXZpb3IuYWxsb3dMaXN0KFxuICAgICAgICBcImFjY2VwdFwiLFxuICAgICAgICBcImFjY2VwdC1lbmNvZGluZ1wiLFxuICAgICAgICBcInJzY1wiLFxuICAgICAgICBcIm5leHQtcm91dGVyLXByZWZldGNoXCIsXG4gICAgICAgIFwibmV4dC1yb3V0ZXItc3RhdGUtdHJlZVwiLFxuICAgICAgICBcIm5leHQtdXJsXCIsXG4gICAgICAgIFwieC1wcmVyZW5kZXItcmV2YWxpZGF0ZVwiXG4gICAgICApLFxuICAgICAgY29va2llQmVoYXZpb3I6IENhY2hlQ29va2llQmVoYXZpb3Iubm9uZSgpLFxuICAgICAgZGVmYXVsdFR0bDogRHVyYXRpb24uZGF5cygwKSxcbiAgICAgIG1heFR0bDogRHVyYXRpb24uZGF5cygzNjUpLFxuICAgICAgbWluVHRsOiBEdXJhdGlvbi5kYXlzKDApLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN0YXRpY0NhY2hlUG9saWN5KCkge1xuICAgIHJldHVybiBDYWNoZVBvbGljeS5DQUNISU5HX09QVElNSVpFRFxuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -36,8 +36,8 @@
36
36
  "organization": false
37
37
  },
38
38
  "devDependencies": {
39
- "@commitlint/cli": "^19",
40
- "@commitlint/config-conventional": "^19",
39
+ "@commitlint/cli": "^20",
40
+ "@commitlint/config-conventional": "^20",
41
41
  "@types/jest": "^30.0.0",
42
42
  "@types/node": "^24.10.1",
43
43
  "@typescript-eslint/eslint-plugin": "^8",
@@ -58,7 +58,7 @@
58
58
  "jsii-docgen": "^10.5.0",
59
59
  "jsii-pacmak": "^1.120.0",
60
60
  "jsii-rosetta": "~5.9.0",
61
- "prettier": "^3.7.3",
61
+ "prettier": "^3.7.4",
62
62
  "projen": "^0.98.28",
63
63
  "ts-jest": "^29.4.6",
64
64
  "ts-node": "^10.9.2",
@@ -82,7 +82,7 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "version": "0.4.5",
85
+ "version": "0.4.6",
86
86
  "jest": {
87
87
  "coverageProvider": "v8",
88
88
  "testMatch": [
@@ -141,7 +141,27 @@
141
141
  "commitlint": {
142
142
  "extends": [
143
143
  "@commitlint/config-conventional"
144
- ]
144
+ ],
145
+ "rules": {
146
+ "type-enum": [
147
+ 2,
148
+ "always",
149
+ [
150
+ "docs",
151
+ "feat",
152
+ "fix",
153
+ "chore",
154
+ "ci",
155
+ "vendor",
156
+ "build",
157
+ "perf",
158
+ "refactor",
159
+ "revert",
160
+ "style",
161
+ "test"
162
+ ]
163
+ ]
164
+ }
145
165
  },
146
166
  "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\"."
147
167
  }