@liflig/cdk-cloudfront-auth 1.9.2 → 1.10.0
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/dist/lambda-config-handler/index.js +22 -0
- package/lib/cloudfront-auth.js +2 -2
- package/lib/cross-region-params.d.ts +57 -0
- package/lib/cross-region-params.js +96 -0
- package/lib/index.d.ts +2 -0
- package/lib/index.js +3 -1
- package/lib/lambda-config/lambda-config.d.ts +38 -0
- package/lib/lambda-config/lambda-config.js +59 -0
- package/lib/lambdas.d.ts +6 -6
- package/lib/lambdas.js +3 -3
- package/package.json +10 -11
package/lib/cloudfront-auth.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { LambdaConfig } from "@liflig/cdk-lambda-config";
|
|
2
1
|
import * as cloudfront from "aws-cdk-lib/aws-cloudfront";
|
|
3
2
|
import { ViewerProtocolPolicy, } from "aws-cdk-lib/aws-cloudfront";
|
|
4
3
|
import { Construct } from "constructs";
|
|
5
4
|
import { RetrieveClientSecret } from "./client-secret";
|
|
6
5
|
import { ClientUpdate } from "./client-update";
|
|
7
6
|
import { GenerateSecret } from "./generate-secret";
|
|
7
|
+
import { LambdaConfig } from "./lambda-config/lambda-config";
|
|
8
8
|
/**
|
|
9
9
|
* Configure previously deployed lambda functions, Cognito client
|
|
10
10
|
* and CloudFront distribution.
|
|
@@ -250,4 +250,4 @@ export class CloudFrontAuth extends Construct {
|
|
|
250
250
|
});
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nsb3VkZnJvbnQtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDeEQsT0FBTyxLQUFLLFVBQVUsTUFBTSw0QkFBNEIsQ0FBQTtBQUN4RCxPQUFPLEVBSUwsb0JBQW9CLEdBQ3JCLE1BQU0sNEJBQTRCLENBQUE7QUFJbkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBbUVsRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0IsWUFBWSxDQUFRO0lBQ3BCLGlCQUFpQixDQUFRO0lBQ3pCLFdBQVcsQ0FBUTtJQUNuQixlQUFlLENBQVE7SUFFdEIsUUFBUSxDQUFtQjtJQUMzQixhQUFhLENBQVM7SUFDdkIsTUFBTSxDQUF3QjtJQUU3QixXQUFXLENBQWlCO0lBQzVCLGFBQWEsQ0FBaUI7SUFDOUIsV0FBVyxDQUFpQjtJQUM1QixhQUFhLENBQWlCO0lBQzlCLFNBQVMsQ0FBaUI7SUFFMUIsV0FBVyxDQUFVO0lBRXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUE7UUFDMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUE7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FB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V0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGlCQUFpQixFQUNmLEtBQUssQ0FBQyxpQkFBaUI7Z0JBQ3ZCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUM3RDtTQUNKLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbWJkYUNvbmZpZyB9IGZyb20gXCJAbGlmbGlnL2Nkay1sYW1iZGEtY29uZmlnXCJcbmltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCB7XG4gIHR5cGUgQWRkQmVoYXZpb3JPcHRpb25zLFxuICB0eXBlIEJlaGF2aW9yT3B0aW9ucyxcbiAgdHlwZSBJT3JpZ2luLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCB0eXBlICogYXMgY29nbml0byBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cIlxuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0IHR5cGUgeyBJVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB7IFJldHJpZXZlQ2xpZW50U2VjcmV0IH0gZnJvbSBcIi4vY2xpZW50LXNlY3JldFwiXG5pbXBvcnQgeyBDbGllbnRVcGRhdGUgfSBmcm9tIFwiLi9jbGllbnQtdXBkYXRlXCJcbmltcG9ydCB7IEdlbmVyYXRlU2VjcmV0IH0gZnJvbSBcIi4vZ2VuZXJhdGUtc2VjcmV0XCJcbmltcG9ydCB0eXBlIHsgU3RvcmVkQ29uZmlnIH0gZnJvbSBcIi4vaGFuZGxlcnMvdXRpbC9jb25maWdcIlxuaW1wb3J0IHR5cGUgeyBBdXRoTGFtYmRhcyB9IGZyb20gXCIuL2xhbWJkYXNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRBdXRoUHJvcHMge1xuICAvKipcbiAgICogQ29nbml0byBDbGllbnQgdGhhdCB3aWxsIGJlIHVzZWQgdG8gYXV0aGVudGljYXRlIHRoZSB1c2VyLlxuICAgKlxuICAgKiBJZiBhIGN1c3RvbSBjbGllbnQgaXMgcHJvdmlkZWQsIHRoZSB1cGRhdGVDbGllbnQgbWV0aG9kIGNhbm5vdFxuICAgKiBiZSB1c2VkIHNpbmNlIHdlIGNhbm5vdCBrbm93IHdoaWNoIHBhcmFtZXRlcnMgd2FzIHNldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhIG5ldyBjbGllbnQgd2lsbCBiZSBnZW5lcmF0ZWRcbiAgICovXG4gIGNsaWVudD86IGNvZ25pdG8uVXNlclBvb2xDbGllbnRcbiAgdXNlclBvb2w6IGNvZ25pdG8uSVVzZXJQb29sXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIHRoYXQgaXMgdXNlZCBmb3IgQ29nbml0byBBdXRoLlxuICAgKlxuICAgKiBJZiBub3QgdXNpbmcgY3VzdG9tIGRvbWFpbnMgdGhpcyB3aWxsIGJlIGEgbmFtZSB1bmRlciBhbWF6b25jb2duaXRvLmNvbS5cbiAgICpcbiAgICogQGV4YW1wbGUgYCR7ZG9tYWluLmRvbWFpbk5hbWV9LmF1dGguJHtyZWdpb259LmFtYXpvbmNvZ25pdG8uY29tYFxuICAgKi9cbiAgY29nbml0b0F1dGhEb21haW46IHN0cmluZ1xuICBhdXRoTGFtYmRhczogQXV0aExhbWJkYXNcbiAgLyoqXG4gICAqIEBkZWZhdWx0IC9hdXRoL2NhbGxiYWNrXG4gICAqL1xuICBjYWxsYmFja1BhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IC9cbiAgICovXG4gIHNpZ25PdXRSZWRpcmVjdFRvPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAvYXV0aC9zaWduLW91dFxuICAgKi9cbiAgc2lnbk91dFBhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IC9hdXRoL3JlZnJlc2hcbiAgICovXG4gIHJlZnJlc2hBdXRoUGF0aD86IHN0cmluZ1xuICAvKipcbiAgICogTG9nIGxldmVsLlxuICAgKlxuICAgKiBBIGxvZyBsZXZlbCBvZiBkZWJ1ZyB3aWxsIGxvZyBzZWNyZXRzIGFuZCBzaG91bGQgb25seSBiZSB1c2VkIGluXG4gICAqIGEgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IHdhcm5cbiAgICovXG4gIGxvZ0xldmVsPzogXCJub25lXCIgfCBcImVycm9yXCIgfCBcIndhcm5cIiB8IFwiaW5mb1wiIHwgXCJkZWJ1Z1wiXG4gIC8qKlxuICAgKiBSZXF1aXJlIHRoZSB1c2VyIHRvIGJlIHBhcnQgb2YgYSBzcGVjaWZpYyBDb2duaXRvIGdyb3VwIHRvXG4gICAqIGFjY2VzcyBhbnkgcmVzb3VyY2UuXG4gICAqL1xuICByZXF1aXJlR3JvdXBBbnlPZj86IHN0cmluZ1tdXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlQ2xpZW50UHJvcHMge1xuICBzaWduT3V0VXJsOiBzdHJpbmdcbiAgY2FsbGJhY2tVcmw6IHN0cmluZ1xuICAvKipcbiAgICogTGlzdCBvZiBpZGVudGl0eSBwcm92aWRlcnMgdXNlZCBmb3IgdGhlIGNsaWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBDT0dOSVRPIGFuZCBpZGVudGl0eSBwcm92aWRlcnMgcmVnaXN0ZXJlZCBpbiB0aGUgVXNlclBvb2wgY29uc3RydWN0XG4gICAqL1xuICBpZGVudGl0eVByb3ZpZGVycz86IHN0cmluZ1tdXG59XG5cbi8qKlxuICogQ29uZmlndXJlIHByZXZpb3VzbHkgZGVwbG95ZWQgbGFtYmRhIGZ1bmN0aW9ucywgQ29nbml0byBjbGllbnRcbiAqIGFuZCBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRBdXRoIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IGNhbGxiYWNrUGF0aDogc3RyaW5nXG4gIHB1YmxpYyByZWFkb25seSBzaWduT3V0UmVkaXJlY3RUbzogc3RyaW5nXG4gIHB1YmxpYyByZWFkb25seSBzaWduT3V0UGF0aDogc3RyaW5nXG4gIHB1YmxpYyByZWFkb25seSByZWZyZXNoQXV0aFBhdGg6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclBvb2w6IGNvZ25pdG8uSVVzZXJQb29sXG4gIHByaXZhdGUgcmVhZG9ubHkgY2xpZW50Q3JlYXRlZDogYm9vbGVhblxuICBwdWJsaWMgcmVhZG9ubHkgY2xpZW50OiBjb2duaXRvLlVzZXJQb29sQ2xpZW50XG5cbiAgcHJpdmF0ZSByZWFkb25seSBjaGVja0F1dGhGbjogbGFtYmRhLklWZXJzaW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgaHR0cEhlYWRlcnNGbjogbGFtYmRhLklWZXJzaW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgcGFyc2VBdXRoRm46IGxhbWJkYS5JVmVyc2lvblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZnJlc2hBdXRoRm46IGxhbWJkYS5JVmVyc2lvblxuICBwcml2YXRlIHJlYWRvbmx5IHNpZ25PdXRGbjogbGFtYmRhLklWZXJzaW9uXG5cbiAgcHJpdmF0ZSByZWFkb25seSBvYXV0aFNjb3Blczogc3RyaW5nW11cblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRGcm9udEF1dGhQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIHRoaXMuY2FsbGJhY2tQYXRoID0gcHJvcHMuY2FsbGJhY2tQYXRoID8/IFwiL2F1dGgvY2FsbGJhY2tcIlxuICAgIHRoaXMuc2lnbk91dFJlZGlyZWN0VG8gPSBwcm9wcy5zaWduT3V0UmVkaXJlY3RUbyA/PyBcIi9cIlxuICAgIHRoaXMuc2lnbk91dFBhdGggPSBwcm9wcy5zaWduT3V0UGF0aCA/PyBcIi9hdXRoL3NpZ24tb3V0XCJcbiAgICB0aGlzLnJlZnJlc2hBdXRoUGF0aCA9IHByb3BzLnJlZnJlc2hBdXRoUGF0aCA/PyBcIi9hdXRoL3JlZnJlc2hcIlxuXG4gICAgdGhpcy5vYXV0aFNjb3BlcyA9IFtcbiAgICAgIFwicGhvbmVcIixcbiAgICAgIFwiZW1haWxcIixcbiAgICAgIFwicHJvZmlsZVwiLFxuICAgICAgXCJvcGVuaWRcIixcbiAgICAgIFwiYXdzLmNvZ25pdG8uc2lnbmluLnVzZXIuYWRtaW5cIixcbiAgICBdXG5cbiAgICB0aGlzLnVzZXJQb29sID0gcHJvcHMudXNlclBvb2xcblxuICAgIHRoaXMuY2xpZW50Q3JlYXRlZCA9ICFwcm9wcy5jbGllbnRcbiAgICB0aGlzLmNsaWVudCA9XG4gICAgICBwcm9wcy5jbGllbnQgPz9cbiAgICAgIHByb3BzLnVzZXJQb29sLmFkZENsaWVudChcIlVzZXJQb29sQ2xpZW50XCIsIHtcbiAgICAgICAgLy8gTm90ZTogVGhlIGZvbGxvd2luZyBtdXN0IGJlIGtlcHQgaW4gc3luYyB3aXRoIHRoZSBBUElcbiAgICAgICAgLy8gY2FsbCBwZXJmb3JtZWQgaW4gQ2xpZW50VXBkYXRlLlxuICAgICAgICBhdXRoRmxvd3M6IHtcbiAgICAgICAgICB1c2VyUGFzc3dvcmQ6IHRydWUsXG4gICAgICAgICAgdXNlclNycDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgb0F1dGg6IHtcbiAgICAgICAgICBmbG93czoge1xuICAgICAgICAgICAgYXV0aG9yaXphdGlvbkNvZGVHcmFudDogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwcmV2ZW50VXNlckV4aXN0ZW5jZUVycm9yczogdHJ1ZSxcbiAgICAgICAgZ2VuZXJhdGVTZWNyZXQ6IHRydWUsXG4gICAgICB9KVxuXG4gICAgY29uc3Qgbm9uY2VTaWduaW5nU2VjcmV0ID0gbmV3IEdlbmVyYXRlU2VjcmV0KHRoaXMsIFwiTm9uY2VTaWduaW5nU2VjcmV0XCIpXG4gICAgICAudmFsdWVcblxuICAgIGNvbnN0IHsgY2xpZW50U2VjcmV0VmFsdWUgfSA9IG5ldyBSZXRyaWV2ZUNsaWVudFNlY3JldChcbiAgICAgIHRoaXMsXG4gICAgICBcIkNsaWVudFNlY3JldFwiLFxuICAgICAge1xuICAgICAgICBjbGllbnQ6IHRoaXMuY2xpZW50LFxuICAgICAgICB1c2VyUG9vbDogdGhpcy51c2VyUG9vbCxcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgY29uc3QgY29uZmlnOiBTdG9yZWRDb25maWcgPSB7XG4gICAgICBodHRwSGVhZGVyczoge1xuICAgICAgICBcIkNvbnRlbnQtU2VjdXJpdHktUG9saWN5XCI6XG4gICAgICAgICAgXCJkZWZhdWx0LXNyYyAnbm9uZSc7IGltZy1zcmMgJ3NlbGYnOyBzY3JpcHQtc3JjICdzZWxmJzsgc3R5bGUtc3JjICdzZWxmJyAndW5zYWZlLWlubGluZSc7IG9iamVjdC1zcmMgJ25vbmUnOyBjb25uZWN0LXNyYyAnc2VsZidcIixcbiAgICAgICAgXCJTdHJpY3QtVHJhbnNwb3J0LVNlY3VyaXR5XCI6XG4gICAgICAgICAgXCJtYXgtYWdlPTMxNTM2MDAwOyBpbmNsdWRlU3ViZG9tYWluczsgcHJlbG9hZFwiLFxuICAgICAgICBcIlJlZmVycmVyLVBvbGljeVwiOiBcInNhbWUtb3JpZ2luXCIsXG4gICAgICAgIFwiWC1YU1MtUHJvdGVjdGlvblwiOiBcIjE7IG1vZGU9YmxvY2tcIixcbiAgICAgICAgXCJYLUZyYW1lLU9wdGlvbnNcIjogXCJERU5ZXCIsXG4gICAgICAgIFwiWC1Db250ZW50LVR5cGUtT3B0aW9uc1wiOiBcIm5vc25pZmZcIixcbiAgICAgICAgXCJDYWNoZS1Db250cm9sXCI6IFwibm8tY2FjaGVcIixcbiAgICAgIH0sXG4gICAgICBsb2dMZXZlbDogcHJvcHMubG9nTGV2ZWwgPz8gXCJ3YXJuXCIsXG4gICAgICB1c2VyUG9vbElkOiB0aGlzLnVzZXJQb29sLnVzZXJQb29sSWQsXG4gICAgICBjbGllbnRJZDogdGhpcy5jbGllbnQudXNlclBvb2xDbGllbnRJZCxcbiAgICAgIGNsaWVudFNlY3JldDogY2xpZW50U2VjcmV0VmFsdWUsXG4gICAgICBvYXV0aFNjb3BlczogdGhpcy5vYXV0aFNjb3BlcyxcbiAgICAgIGNvZ25pdG9BdXRoRG9tYWluOiBwcm9wcy5jb2duaXRvQXV0aERvbWFpbixcbiAgICAgIGNhbGxiYWNrUGF0aDogdGhpcy5jYWxsYmFja1BhdGgsXG4gICAgICBzaWduT3V0UmVkaXJlY3RUbzogdGhpcy5zaWduT3V0UmVkaXJlY3RUbyxcbiAgICAgIHNpZ25PdXRQYXRoOiB0aGlzLnNpZ25PdXRQYXRoLFxuICAgICAgcmVmcmVzaEF1dGhQYXRoOiB0aGlzLnJlZnJlc2hBdXRoUGF0aCxcbiAgICAgIHJlcXVpcmVHcm91cEFueU9mOiBwcm9wcy5yZXF1aXJlR3JvdXBBbnlPZixcbiAgICAgIGNvb2tpZVNldHRpbmdzOiB7XG4gICAgICAgIC8qXG4gICAgICAgIHNwYU1vZGUgLSBjb25zaWRlciBpZiB0aGlzIHNob3VsZCBiZSBzdXBwb3J0ZWRcbiAgICAgICAgaWRUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIGFjY2Vzc1Rva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgcmVmcmVzaFRva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgbm9uY2U6IFwiUGF0aD0vOyBTZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgKi9cbiAgICAgICAgaWRUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICBhY2Nlc3NUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgSHR0cE9ubHk7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICByZWZyZXNoVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgbm9uY2U6IFwiUGF0aD0vOyBTZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgIH0sXG4gICAgICBub25jZVNpZ25pbmdTZWNyZXQsXG4gICAgfVxuXG4gICAgdGhpcy5jaGVja0F1dGhGbiA9IG5ldyBMYW1iZGFDb25maWcodGhpcywgXCJDaGVja0F1dGhGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMuY2hlY2tBdXRoRm4uZ2V0KHRoaXMsIFwiQ2hlY2tBdXRoRm5JbXBvcnRcIiksXG4gICAgICBjb25maWcsXG4gICAgfSkudmVyc2lvblxuXG4gICAgdGhpcy5odHRwSGVhZGVyc0ZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIkh0dHBIZWFkZXJzRm5cIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLmF1dGhMYW1iZGFzLmh0dHBIZWFkZXJzRm4uZ2V0KFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIkh0dHBIZWFkZXJzRm5JbXBvcnRcIixcbiAgICAgICksXG4gICAgICBjb25maWcsXG4gICAgfSkudmVyc2lvblxuXG4gICAgdGhpcy5wYXJzZUF1dGhGbiA9IG5ldyBMYW1iZGFDb25maWcodGhpcywgXCJQYXJzZUF1dGhGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMucGFyc2VBdXRoRm4uZ2V0KHRoaXMsIFwiUGFyc2VBdXRoRm5JbXBvcnRcIiksXG4gICAgICBjb25maWcsXG4gICAgfSkudmVyc2lvblxuXG4gICAgdGhpcy5yZWZyZXNoQXV0aEZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIlJlZnJlc2hBdXRoRm5cIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLmF1dGhMYW1iZGFzLnJlZnJlc2hBdXRoRm4uZ2V0KFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIlJlZnJlc2hBdXRoRm5JbXBvcnRcIixcbiAgICAgICksXG4gICAgICBjb25maWcsXG4gICAgfSkudmVyc2lvblxuXG4gICAgdGhpcy5zaWduT3V0Rm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiU2lnbk91dEZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5zaWduT3V0Rm4uZ2V0KHRoaXMsIFwiU2lnbk91dEZuSW1wb3J0XCIpLFxuICAgICAgY29uZmlnLFxuICAgIH0pLnZlcnNpb25cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUGF0aExhbWJkYShcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgZm46IGxhbWJkYS5JVmVyc2lvbixcbiAgKTogY2xvdWRmcm9udC5CZWhhdmlvciB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGhQYXR0ZXJuOiBwYXRoLFxuICAgICAgZm9yd2FyZGVkVmFsdWVzOiB7XG4gICAgICAgIHF1ZXJ5U3RyaW5nOiB0cnVlLFxuICAgICAgfSxcbiAgICAgIGxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25zOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgICBsYW1iZGFGdW5jdGlvbjogZm4sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYmVoYXZpb3JzIGZvciBhdXRoZW50aWNhdGlvbiBwYWdlczpcbiAgICpcbiAgICogLSBjYWxsYmFjayBwYWdlXG4gICAqIC0gcmVmcmVzaCBwYWdlXG4gICAqIC0gc2lnbiBvdXQgcGFnZVxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCBDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uLiBTZWVcbiAgICogY3JlYXRlQXV0aFBhZ2VzQmVoYXZpb3JzIGlmIHVzaW5nIERpc3RyaWJ1dGlvbi5cbiAgICovXG4gIHB1YmxpYyBnZXQgYXV0aFBhZ2VzKCk6IGNsb3VkZnJvbnQuQmVoYXZpb3JbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHRoaXMuY3JlYXRlUGF0aExhbWJkYSh0aGlzLmNhbGxiYWNrUGF0aCwgdGhpcy5wYXJzZUF1dGhGbiksXG4gICAgICB0aGlzLmNyZWF0ZVBhdGhMYW1iZGEodGhpcy5yZWZyZXNoQXV0aFBhdGgsIHRoaXMucmVmcmVzaEF1dGhGbiksXG4gICAgICB0aGlzLmNyZWF0ZVBhdGhMYW1iZGEodGhpcy5zaWduT3V0UGF0aCwgdGhpcy5zaWduT3V0Rm4pLFxuICAgIF1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYmVoYXZpb3JzIGZvciBhdXRoZW50aWNhdGlvbiBwYWdlcy5cbiAgICpcbiAgICogLSBjYWxsYmFjayBwYWdlXG4gICAqIC0gcmVmcmVzaCBwYWdlXG4gICAqIC0gc2lnbiBvdXQgcGFnZVxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCBEaXN0cmlidXRpb24uXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlQXV0aFBhZ2VzQmVoYXZpb3JzKFxuICAgIG9yaWdpbjogSU9yaWdpbixcbiAgICBvcHRpb25zPzogQWRkQmVoYXZpb3JPcHRpb25zLFxuICApOiBSZWNvcmQ8c3RyaW5nLCBCZWhhdmlvck9wdGlvbnM+IHtcbiAgICBmdW5jdGlvbiBwYXRoKHBhdGg6IHN0cmluZywgZm46IElWZXJzaW9uKTogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBbcGF0aF06IHtcbiAgICAgICAgICBvcmlnaW4sXG4gICAgICAgICAgY29tcHJlc3M6IHRydWUsXG4gICAgICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgICAgIGVkZ2VMYW1iZGFzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICAgICAgICBmdW5jdGlvblZlcnNpb246IGZuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnBhdGgodGhpcy5jYWxsYmFja1BhdGgsIHRoaXMucGFyc2VBdXRoRm4pLFxuICAgICAgLi4ucGF0aCh0aGlzLnJlZnJlc2hBdXRoUGF0aCwgdGhpcy5yZWZyZXNoQXV0aEZuKSxcbiAgICAgIC4uLnBhdGgodGhpcy5zaWduT3V0UGF0aCwgdGhpcy5zaWduT3V0Rm4pLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgbGFtYmRhIGZ1bmN0aW9uIGFzc29jaWF0aW9uIGZvciB2aWV3ZXIgcmVxdWVzdCB0byBjaGVja1xuICAgKiBhdXRoZW50aWNhdGlvbiBhbmQgb3JpZ2luYWwgcmVzcG9uc2UgdG8gYWRkIGhlYWRlcnMuXG4gICAqXG4gICAqIFRoaXMgaXMgdG8gYmUgdXNlZCB3aXRoIENsb3VkRnJvbnRXZWJEaXN0cmlidXRpb24uIFNlZVxuICAgKiBjcmVhdGVQcm90ZWN0ZWRCZWhhdmlvciBpZiB1c2luZyBEaXN0cmlidXRpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGF1dGhGaWx0ZXJzKCk6IGNsb3VkZnJvbnQuTGFtYmRhRnVuY3Rpb25Bc3NvY2lhdGlvbltdIHtcbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgbGFtYmRhRnVuY3Rpb246IHRoaXMuY2hlY2tBdXRoRm4sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0UsXG4gICAgICAgIGxhbWJkYUZ1bmN0aW9uOiB0aGlzLmh0dHBIZWFkZXJzRm4sXG4gICAgICB9LFxuICAgIF1cbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYmVoYXZpb3IgdGhhdCBpbmNsdWRlcyBhdXRob3JpemF0aW9uIGNoZWNrLlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCBEaXN0cmlidXRpb24uXG4gICAqL1xuICBwdWJsaWMgY3JlYXRlUHJvdGVjdGVkQmVoYXZpb3IoXG4gICAgb3JpZ2luOiBJT3JpZ2luLFxuICAgIG9wdGlvbnM/OiBBZGRCZWhhdmlvck9wdGlvbnMsXG4gICk6IEJlaGF2aW9yT3B0aW9ucyB7XG4gICAgaWYgKG9wdGlvbnM/LmVkZ2VMYW1iZGFzICE9IG51bGwpIHtcbiAgICAgIHRocm93IEVycm9yKFwiVXNlci1kZWZpbmVkIGVkZ2VMYW1iZGFzIGlzIGN1cnJlbnRseSBub3Qgc3VwcG9ydGVkXCIpXG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG9yaWdpbixcbiAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgdmlld2VyUHJvdG9jb2xQb2xpY3k6IFZpZXdlclByb3RvY29sUG9saWN5LlJFRElSRUNUX1RPX0hUVFBTLFxuICAgICAgZWRnZUxhbWJkYXM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLlZJRVdFUl9SRVFVRVNULFxuICAgICAgICAgIGZ1bmN0aW9uVmVyc2lvbjogdGhpcy5jaGVja0F1dGhGbixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGV2ZW50VHlwZTogY2xvdWRmcm9udC5MYW1iZGFFZGdlRXZlbnRUeXBlLk9SSUdJTl9SRVNQT05TRSxcbiAgICAgICAgICBmdW5jdGlvblZlcnNpb246IHRoaXMuaHR0cEhlYWRlcnNGbixcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgICAuLi5vcHRpb25zLFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgQ29nbml0byBjbGllbnQgdG8gdXNlIHRoZSBwcm9wZXIgVVJMcyBhbmQgT0F1dGggc2NvcGVzLlxuICAgKlxuICAgKiBUT0RPOiBJbiBjYXNlIHRoZSBjbGllbnQgY29uZmlndXJhdGlvbiBjaGFuZ2VzIGFuZCBpcyB1cGRhdGVkXG4gICAqICBieSBDbG91ZEZvcm1hdGlvbiwgdGhpcyB3aWxsIG5vdCBiZSByZWFwcGxpZWQgY2F1c2luZyB0aGUgY2xpZW50XG4gICAqICB0byBub3QgYmUgY29ycmVjdGx5IGNvbmZpZ3VyZWQuXG4gICAqICBIb3cgY2FuIHdlIGF2b2lkIHRoaXMgc2NlbmFyaW8/XG4gICAqL1xuICBwdWJsaWMgdXBkYXRlQ2xpZW50KGlkOiBzdHJpbmcsIHByb3BzOiBVcGRhdGVDbGllbnRQcm9wcyk6IENsaWVudFVwZGF0ZSB7XG4gICAgaWYgKCF0aGlzLmNsaWVudENyZWF0ZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJZb3UgY2Fubm90IHVzZSB1cGRhdGVDbGllbnQgd2l0aCBhIHVzZXItcHJvdmlkZWQgQ29nbml0byBDbGllbnQgXCIgK1xuICAgICAgICAgIFwic2luY2UgaXQgd291bGQgb3ZlcnJpZGUgdGhlIHVzZXItcHJvdmlkZWQgc2V0dGluZ3NcIixcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IENsaWVudFVwZGF0ZSh0aGlzLCBpZCwge1xuICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgc2lnbk91dFVybDogcHJvcHMuc2lnbk91dFVybCxcbiAgICAgIGNhbGxiYWNrVXJsOiBwcm9wcy5jYWxsYmFja1VybCxcbiAgICAgIG9hdXRoU2NvcGVzOiB0aGlzLm9hdXRoU2NvcGVzLFxuICAgICAgaWRlbnRpdHlQcm92aWRlcnM6XG4gICAgICAgIHByb3BzLmlkZW50aXR5UHJvdmlkZXJzID8/XG4gICAgICAgIFtcIkNPR05JVE9cIl0uY29uY2F0KFxuICAgICAgICAgIHRoaXMudXNlclBvb2wuaWRlbnRpdHlQcm92aWRlcnMubWFwKChpdCkgPT4gaXQucHJvdmlkZXJOYW1lKSxcbiAgICAgICAgKSxcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
253
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWRmcm9udC1hdXRoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nsb3VkZnJvbnQtYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssVUFBVSxNQUFNLDRCQUE0QixDQUFBO0FBQ3hELE9BQU8sRUFJTCxvQkFBb0IsR0FDckIsTUFBTSw0QkFBNEIsQ0FBQTtBQUluQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBQ3RDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQ3RELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUM5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFFbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLCtCQUErQixDQUFBO0FBa0U1RDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sY0FBZSxTQUFRLFNBQVM7SUFDM0IsWUFBWSxDQUFRO0lBQ3BCLGlCQUFpQixDQUFRO0lBQ3pCLFdBQVcsQ0FBUTtJQUNuQixlQUFlLENBQVE7SUFFdEIsUUFBUSxDQUFtQjtJQUMzQixhQUFhLENBQVM7SUFDdkIsTUFBTSxDQUF3QjtJQUU3QixXQUFXLENBQWlCO0lBQzVCLGFBQWEsQ0FBaUI7SUFDOUIsV0FBVyxDQUFpQjtJQUM1QixhQUFhLENBQWlCO0lBQzlCLFNBQVMsQ0FBaUI7SUFFMUIsV0FBVyxDQUFVO0lBRXRDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZLElBQUksZ0JBQWdCLENBQUE7UUFDMUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUE7UUFDdkQsSUFBSSxDQUFDLFdBQVcsR0FB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V0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGlCQUFpQixFQUNmLEtBQUssQ0FBQyxpQkFBaUI7Z0JBQ3ZCLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUM3RDtTQUNKLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNsb3VkZnJvbnQgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCB7XG4gIHR5cGUgQWRkQmVoYXZpb3JPcHRpb25zLFxuICB0eXBlIEJlaGF2aW9yT3B0aW9ucyxcbiAgdHlwZSBJT3JpZ2luLFxuICBWaWV3ZXJQcm90b2NvbFBvbGljeSxcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZGZyb250XCJcbmltcG9ydCB0eXBlICogYXMgY29nbml0byBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cIlxuaW1wb3J0IHR5cGUgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0IHR5cGUgeyBJVmVyc2lvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCB7IFJldHJpZXZlQ2xpZW50U2VjcmV0IH0gZnJvbSBcIi4vY2xpZW50LXNlY3JldFwiXG5pbXBvcnQgeyBDbGllbnRVcGRhdGUgfSBmcm9tIFwiLi9jbGllbnQtdXBkYXRlXCJcbmltcG9ydCB7IEdlbmVyYXRlU2VjcmV0IH0gZnJvbSBcIi4vZ2VuZXJhdGUtc2VjcmV0XCJcbmltcG9ydCB0eXBlIHsgU3RvcmVkQ29uZmlnIH0gZnJvbSBcIi4vaGFuZGxlcnMvdXRpbC9jb25maWdcIlxuaW1wb3J0IHsgTGFtYmRhQ29uZmlnIH0gZnJvbSBcIi4vbGFtYmRhLWNvbmZpZy9sYW1iZGEtY29uZmlnXCJcbmltcG9ydCB0eXBlIHsgQXV0aExhbWJkYXMgfSBmcm9tIFwiLi9sYW1iZGFzXCJcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZEZyb250QXV0aFByb3BzIHtcbiAgLyoqXG4gICAqIENvZ25pdG8gQ2xpZW50IHRoYXQgd2lsbCBiZSB1c2VkIHRvIGF1dGhlbnRpY2F0ZSB0aGUgdXNlci5cbiAgICpcbiAgICogSWYgYSBjdXN0b20gY2xpZW50IGlzIHByb3ZpZGVkLCB0aGUgdXBkYXRlQ2xpZW50IG1ldGhvZCBjYW5ub3RcbiAgICogYmUgdXNlZCBzaW5jZSB3ZSBjYW5ub3Qga25vdyB3aGljaCBwYXJhbWV0ZXJzIHdhcyBzZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYSBuZXcgY2xpZW50IHdpbGwgYmUgZ2VuZXJhdGVkXG4gICAqL1xuICBjbGllbnQ/OiBjb2duaXRvLlVzZXJQb29sQ2xpZW50XG4gIHVzZXJQb29sOiBjb2duaXRvLklVc2VyUG9vbFxuICAvKipcbiAgICogVGhlIGRvbWFpbiB0aGF0IGlzIHVzZWQgZm9yIENvZ25pdG8gQXV0aC5cbiAgICpcbiAgICogSWYgbm90IHVzaW5nIGN1c3RvbSBkb21haW5zIHRoaXMgd2lsbCBiZSBhIG5hbWUgdW5kZXIgYW1hem9uY29nbml0by5jb20uXG4gICAqXG4gICAqIEBleGFtcGxlIGAke2RvbWFpbi5kb21haW5OYW1lfS5hdXRoLiR7cmVnaW9ufS5hbWF6b25jb2duaXRvLmNvbWBcbiAgICovXG4gIGNvZ25pdG9BdXRoRG9tYWluOiBzdHJpbmdcbiAgYXV0aExhbWJkYXM6IEF1dGhMYW1iZGFzXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAvYXV0aC9jYWxsYmFja1xuICAgKi9cbiAgY2FsbGJhY2tQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAvXG4gICAqL1xuICBzaWduT3V0UmVkaXJlY3RUbz86IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgL2F1dGgvc2lnbi1vdXRcbiAgICovXG4gIHNpZ25PdXRQYXRoPzogc3RyaW5nXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAvYXV0aC9yZWZyZXNoXG4gICAqL1xuICByZWZyZXNoQXV0aFBhdGg/OiBzdHJpbmdcbiAgLyoqXG4gICAqIExvZyBsZXZlbC5cbiAgICpcbiAgICogQSBsb2cgbGV2ZWwgb2YgZGVidWcgd2lsbCBsb2cgc2VjcmV0cyBhbmQgc2hvdWxkIG9ubHkgYmUgdXNlZCBpblxuICAgKiBhIGRldmVsb3BtZW50IGVudmlyb25tZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCB3YXJuXG4gICAqL1xuICBsb2dMZXZlbD86IFwibm9uZVwiIHwgXCJlcnJvclwiIHwgXCJ3YXJuXCIgfCBcImluZm9cIiB8IFwiZGVidWdcIlxuICAvKipcbiAgICogUmVxdWlyZSB0aGUgdXNlciB0byBiZSBwYXJ0IG9mIGEgc3BlY2lmaWMgQ29nbml0byBncm91cCB0b1xuICAgKiBhY2Nlc3MgYW55IHJlc291cmNlLlxuICAgKi9cbiAgcmVxdWlyZUdyb3VwQW55T2Y/OiBzdHJpbmdbXVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUNsaWVudFByb3BzIHtcbiAgc2lnbk91dFVybDogc3RyaW5nXG4gIGNhbGxiYWNrVXJsOiBzdHJpbmdcbiAgLyoqXG4gICAqIExpc3Qgb2YgaWRlbnRpdHkgcHJvdmlkZXJzIHVzZWQgZm9yIHRoZSBjbGllbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ09HTklUTyBhbmQgaWRlbnRpdHkgcHJvdmlkZXJzIHJlZ2lzdGVyZWQgaW4gdGhlIFVzZXJQb29sIGNvbnN0cnVjdFxuICAgKi9cbiAgaWRlbnRpdHlQcm92aWRlcnM/OiBzdHJpbmdbXVxufVxuXG4vKipcbiAqIENvbmZpZ3VyZSBwcmV2aW91c2x5IGRlcGxveWVkIGxhbWJkYSBmdW5jdGlvbnMsIENvZ25pdG8gY2xpZW50XG4gKiBhbmQgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG91ZEZyb250QXV0aCBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBjYWxsYmFja1BhdGg6IHN0cmluZ1xuICBwdWJsaWMgcmVhZG9ubHkgc2lnbk91dFJlZGlyZWN0VG86IHN0cmluZ1xuICBwdWJsaWMgcmVhZG9ubHkgc2lnbk91dFBhdGg6IHN0cmluZ1xuICBwdWJsaWMgcmVhZG9ubHkgcmVmcmVzaEF1dGhQYXRoOiBzdHJpbmdcblxuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJQb29sOiBjb2duaXRvLklVc2VyUG9vbFxuICBwcml2YXRlIHJlYWRvbmx5IGNsaWVudENyZWF0ZWQ6IGJvb2xlYW5cbiAgcHVibGljIHJlYWRvbmx5IGNsaWVudDogY29nbml0by5Vc2VyUG9vbENsaWVudFxuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2hlY2tBdXRoRm46IGxhbWJkYS5JVmVyc2lvblxuICBwcml2YXRlIHJlYWRvbmx5IGh0dHBIZWFkZXJzRm46IGxhbWJkYS5JVmVyc2lvblxuICBwcml2YXRlIHJlYWRvbmx5IHBhcnNlQXV0aEZuOiBsYW1iZGEuSVZlcnNpb25cbiAgcHJpdmF0ZSByZWFkb25seSByZWZyZXNoQXV0aEZuOiBsYW1iZGEuSVZlcnNpb25cbiAgcHJpdmF0ZSByZWFkb25seSBzaWduT3V0Rm46IGxhbWJkYS5JVmVyc2lvblxuXG4gIHByaXZhdGUgcmVhZG9ubHkgb2F1dGhTY29wZXM6IHN0cmluZ1tdXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IENsb3VkRnJvbnRBdXRoUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICB0aGlzLmNhbGxiYWNrUGF0aCA9IHByb3BzLmNhbGxiYWNrUGF0aCA/PyBcIi9hdXRoL2NhbGxiYWNrXCJcbiAgICB0aGlzLnNpZ25PdXRSZWRpcmVjdFRvID0gcHJvcHMuc2lnbk91dFJlZGlyZWN0VG8gPz8gXCIvXCJcbiAgICB0aGlzLnNpZ25PdXRQYXRoID0gcHJvcHMuc2lnbk91dFBhdGggPz8gXCIvYXV0aC9zaWduLW91dFwiXG4gICAgdGhpcy5yZWZyZXNoQXV0aFBhdGggPSBwcm9wcy5yZWZyZXNoQXV0aFBhdGggPz8gXCIvYXV0aC9yZWZyZXNoXCJcblxuICAgIHRoaXMub2F1dGhTY29wZXMgPSBbXG4gICAgICBcInBob25lXCIsXG4gICAgICBcImVtYWlsXCIsXG4gICAgICBcInByb2ZpbGVcIixcbiAgICAgIFwib3BlbmlkXCIsXG4gICAgICBcImF3cy5jb2duaXRvLnNpZ25pbi51c2VyLmFkbWluXCIsXG4gICAgXVxuXG4gICAgdGhpcy51c2VyUG9vbCA9IHByb3BzLnVzZXJQb29sXG5cbiAgICB0aGlzLmNsaWVudENyZWF0ZWQgPSAhcHJvcHMuY2xpZW50XG4gICAgdGhpcy5jbGllbnQgPVxuICAgICAgcHJvcHMuY2xpZW50ID8/XG4gICAgICBwcm9wcy51c2VyUG9vbC5hZGRDbGllbnQoXCJVc2VyUG9vbENsaWVudFwiLCB7XG4gICAgICAgIC8vIE5vdGU6IFRoZSBmb2xsb3dpbmcgbXVzdCBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aGUgQVBJXG4gICAgICAgIC8vIGNhbGwgcGVyZm9ybWVkIGluIENsaWVudFVwZGF0ZS5cbiAgICAgICAgYXV0aEZsb3dzOiB7XG4gICAgICAgICAgdXNlclBhc3N3b3JkOiB0cnVlLFxuICAgICAgICAgIHVzZXJTcnA6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIG9BdXRoOiB7XG4gICAgICAgICAgZmxvd3M6IHtcbiAgICAgICAgICAgIGF1dGhvcml6YXRpb25Db2RlR3JhbnQ6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcHJldmVudFVzZXJFeGlzdGVuY2VFcnJvcnM6IHRydWUsXG4gICAgICAgIGdlbmVyYXRlU2VjcmV0OiB0cnVlLFxuICAgICAgfSlcblxuICAgIGNvbnN0IG5vbmNlU2lnbmluZ1NlY3JldCA9IG5ldyBHZW5lcmF0ZVNlY3JldCh0aGlzLCBcIk5vbmNlU2lnbmluZ1NlY3JldFwiKVxuICAgICAgLnZhbHVlXG5cbiAgICBjb25zdCB7IGNsaWVudFNlY3JldFZhbHVlIH0gPSBuZXcgUmV0cmlldmVDbGllbnRTZWNyZXQoXG4gICAgICB0aGlzLFxuICAgICAgXCJDbGllbnRTZWNyZXRcIixcbiAgICAgIHtcbiAgICAgICAgY2xpZW50OiB0aGlzLmNsaWVudCxcbiAgICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICB9LFxuICAgIClcblxuICAgIGNvbnN0IGNvbmZpZzogU3RvcmVkQ29uZmlnID0ge1xuICAgICAgaHR0cEhlYWRlcnM6IHtcbiAgICAgICAgXCJDb250ZW50LVNlY3VyaXR5LVBvbGljeVwiOlxuICAgICAgICAgIFwiZGVmYXVsdC1zcmMgJ25vbmUnOyBpbWctc3JjICdzZWxmJzsgc2NyaXB0LXNyYyAnc2VsZic7IHN0eWxlLXNyYyAnc2VsZicgJ3Vuc2FmZS1pbmxpbmUnOyBvYmplY3Qtc3JjICdub25lJzsgY29ubmVjdC1zcmMgJ3NlbGYnXCIsXG4gICAgICAgIFwiU3RyaWN0LVRyYW5zcG9ydC1TZWN1cml0eVwiOlxuICAgICAgICAgIFwibWF4LWFnZT0zMTUzNjAwMDsgaW5jbHVkZVN1YmRvbWFpbnM7IHByZWxvYWRcIixcbiAgICAgICAgXCJSZWZlcnJlci1Qb2xpY3lcIjogXCJzYW1lLW9yaWdpblwiLFxuICAgICAgICBcIlgtWFNTLVByb3RlY3Rpb25cIjogXCIxOyBtb2RlPWJsb2NrXCIsXG4gICAgICAgIFwiWC1GcmFtZS1PcHRpb25zXCI6IFwiREVOWVwiLFxuICAgICAgICBcIlgtQ29udGVudC1UeXBlLU9wdGlvbnNcIjogXCJub3NuaWZmXCIsXG4gICAgICAgIFwiQ2FjaGUtQ29udHJvbFwiOiBcIm5vLWNhY2hlXCIsXG4gICAgICB9LFxuICAgICAgbG9nTGV2ZWw6IHByb3BzLmxvZ0xldmVsID8/IFwid2FyblwiLFxuICAgICAgdXNlclBvb2xJZDogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgICAgY2xpZW50SWQ6IHRoaXMuY2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgICBjbGllbnRTZWNyZXQ6IGNsaWVudFNlY3JldFZhbHVlLFxuICAgICAgb2F1dGhTY29wZXM6IHRoaXMub2F1dGhTY29wZXMsXG4gICAgICBjb2duaXRvQXV0aERvbWFpbjogcHJvcHMuY29nbml0b0F1dGhEb21haW4sXG4gICAgICBjYWxsYmFja1BhdGg6IHRoaXMuY2FsbGJhY2tQYXRoLFxuICAgICAgc2lnbk91dFJlZGlyZWN0VG86IHRoaXMuc2lnbk91dFJlZGlyZWN0VG8sXG4gICAgICBzaWduT3V0UGF0aDogdGhpcy5zaWduT3V0UGF0aCxcbiAgICAgIHJlZnJlc2hBdXRoUGF0aDogdGhpcy5yZWZyZXNoQXV0aFBhdGgsXG4gICAgICByZXF1aXJlR3JvdXBBbnlPZjogcHJvcHMucmVxdWlyZUdyb3VwQW55T2YsXG4gICAgICBjb29raWVTZXR0aW5nczoge1xuICAgICAgICAvKlxuICAgICAgICBzcGFNb2RlIC0gY29uc2lkZXIgaWYgdGhpcyBzaG91bGQgYmUgc3VwcG9ydGVkXG4gICAgICAgIGlkVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IFNhbWVTaXRlPUxheFwiLFxuICAgICAgICBhY2Nlc3NUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIHJlZnJlc2hUb2tlbjogXCJQYXRoPS87IFNlY3VyZTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIG5vbmNlOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgICovXG4gICAgICAgIGlkVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgYWNjZXNzVG9rZW46IFwiUGF0aD0vOyBTZWN1cmU7IEh0dHBPbmx5OyBTYW1lU2l0ZT1MYXhcIixcbiAgICAgICAgcmVmcmVzaFRva2VuOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICAgIG5vbmNlOiBcIlBhdGg9LzsgU2VjdXJlOyBIdHRwT25seTsgU2FtZVNpdGU9TGF4XCIsXG4gICAgICB9LFxuICAgICAgbm9uY2VTaWduaW5nU2VjcmV0LFxuICAgIH1cblxuICAgIHRoaXMuY2hlY2tBdXRoRm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiQ2hlY2tBdXRoRm5cIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLmF1dGhMYW1iZGFzLmNoZWNrQXV0aEZuLmdldCh0aGlzLCBcIkNoZWNrQXV0aEZuSW1wb3J0XCIpLFxuICAgICAgY29uZmlnLFxuICAgIH0pLnZlcnNpb25cblxuICAgIHRoaXMuaHR0cEhlYWRlcnNGbiA9IG5ldyBMYW1iZGFDb25maWcodGhpcywgXCJIdHRwSGVhZGVyc0ZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5odHRwSGVhZGVyc0ZuLmdldChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJIdHRwSGVhZGVyc0ZuSW1wb3J0XCIsXG4gICAgICApLFxuICAgICAgY29uZmlnLFxuICAgIH0pLnZlcnNpb25cblxuICAgIHRoaXMucGFyc2VBdXRoRm4gPSBuZXcgTGFtYmRhQ29uZmlnKHRoaXMsIFwiUGFyc2VBdXRoRm5cIiwge1xuICAgICAgZnVuY3Rpb246IHByb3BzLmF1dGhMYW1iZGFzLnBhcnNlQXV0aEZuLmdldCh0aGlzLCBcIlBhcnNlQXV0aEZuSW1wb3J0XCIpLFxuICAgICAgY29uZmlnLFxuICAgIH0pLnZlcnNpb25cblxuICAgIHRoaXMucmVmcmVzaEF1dGhGbiA9IG5ldyBMYW1iZGFDb25maWcodGhpcywgXCJSZWZyZXNoQXV0aEZuXCIsIHtcbiAgICAgIGZ1bmN0aW9uOiBwcm9wcy5hdXRoTGFtYmRhcy5yZWZyZXNoQXV0aEZuLmdldChcbiAgICAgICAgdGhpcyxcbiAgICAgICAgXCJSZWZyZXNoQXV0aEZuSW1wb3J0XCIsXG4gICAgICApLFxuICAgICAgY29uZmlnLFxuICAgIH0pLnZlcnNpb25cblxuICAgIHRoaXMuc2lnbk91dEZuID0gbmV3IExhbWJkYUNvbmZpZyh0aGlzLCBcIlNpZ25PdXRGblwiLCB7XG4gICAgICBmdW5jdGlvbjogcHJvcHMuYXV0aExhbWJkYXMuc2lnbk91dEZuLmdldCh0aGlzLCBcIlNpZ25PdXRGbkltcG9ydFwiKSxcbiAgICAgIGNvbmZpZyxcbiAgICB9KS52ZXJzaW9uXG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVBhdGhMYW1iZGEoXG4gICAgcGF0aDogc3RyaW5nLFxuICAgIGZuOiBsYW1iZGEuSVZlcnNpb24sXG4gICk6IGNsb3VkZnJvbnQuQmVoYXZpb3Ige1xuICAgIHJldHVybiB7XG4gICAgICBwYXRoUGF0dGVybjogcGF0aCxcbiAgICAgIGZvcndhcmRlZFZhbHVlczoge1xuICAgICAgICBxdWVyeVN0cmluZzogdHJ1ZSxcbiAgICAgIH0sXG4gICAgICBsYW1iZGFGdW5jdGlvbkFzc29jaWF0aW9uczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgICAgbGFtYmRhRnVuY3Rpb246IGZuLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGJlaGF2aW9ycyBmb3IgYXV0aGVudGljYXRpb24gcGFnZXM6XG4gICAqXG4gICAqIC0gY2FsbGJhY2sgcGFnZVxuICAgKiAtIHJlZnJlc2ggcGFnZVxuICAgKiAtIHNpZ24gb3V0IHBhZ2VcbiAgICpcbiAgICogVGhpcyBpcyB0byBiZSB1c2VkIHdpdGggQ2xvdWRGcm9udFdlYkRpc3RyaWJ1dGlvbi4gU2VlXG4gICAqIGNyZWF0ZUF1dGhQYWdlc0JlaGF2aW9ycyBpZiB1c2luZyBEaXN0cmlidXRpb24uXG4gICAqL1xuICBwdWJsaWMgZ2V0IGF1dGhQYWdlcygpOiBjbG91ZGZyb250LkJlaGF2aW9yW10ge1xuICAgIHJldHVybiBbXG4gICAgICB0aGlzLmNyZWF0ZVBhdGhMYW1iZGEodGhpcy5jYWxsYmFja1BhdGgsIHRoaXMucGFyc2VBdXRoRm4pLFxuICAgICAgdGhpcy5jcmVhdGVQYXRoTGFtYmRhKHRoaXMucmVmcmVzaEF1dGhQYXRoLCB0aGlzLnJlZnJlc2hBdXRoRm4pLFxuICAgICAgdGhpcy5jcmVhdGVQYXRoTGFtYmRhKHRoaXMuc2lnbk91dFBhdGgsIHRoaXMuc2lnbk91dEZuKSxcbiAgICBdXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGJlaGF2aW9ycyBmb3IgYXV0aGVudGljYXRpb24gcGFnZXMuXG4gICAqXG4gICAqIC0gY2FsbGJhY2sgcGFnZVxuICAgKiAtIHJlZnJlc2ggcGFnZVxuICAgKiAtIHNpZ24gb3V0IHBhZ2VcbiAgICpcbiAgICogVGhpcyBpcyB0byBiZSB1c2VkIHdpdGggRGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUF1dGhQYWdlc0JlaGF2aW9ycyhcbiAgICBvcmlnaW46IElPcmlnaW4sXG4gICAgb3B0aW9ucz86IEFkZEJlaGF2aW9yT3B0aW9ucyxcbiAgKTogUmVjb3JkPHN0cmluZywgQmVoYXZpb3JPcHRpb25zPiB7XG4gICAgZnVuY3Rpb24gcGF0aChwYXRoOiBzdHJpbmcsIGZuOiBJVmVyc2lvbik6IFJlY29yZDxzdHJpbmcsIEJlaGF2aW9yT3B0aW9ucz4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgW3BhdGhdOiB7XG4gICAgICAgICAgb3JpZ2luLFxuICAgICAgICAgIGNvbXByZXNzOiB0cnVlLFxuICAgICAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgICAgICBlZGdlTGFtYmRhczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgICAgICAgZnVuY3Rpb25WZXJzaW9uOiBmbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAuLi5wYXRoKHRoaXMuY2FsbGJhY2tQYXRoLCB0aGlzLnBhcnNlQXV0aEZuKSxcbiAgICAgIC4uLnBhdGgodGhpcy5yZWZyZXNoQXV0aFBhdGgsIHRoaXMucmVmcmVzaEF1dGhGbiksXG4gICAgICAuLi5wYXRoKHRoaXMuc2lnbk91dFBhdGgsIHRoaXMuc2lnbk91dEZuKSxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGxhbWJkYSBmdW5jdGlvbiBhc3NvY2lhdGlvbiBmb3Igdmlld2VyIHJlcXVlc3QgdG8gY2hlY2tcbiAgICogYXV0aGVudGljYXRpb24gYW5kIG9yaWdpbmFsIHJlc3BvbnNlIHRvIGFkZCBoZWFkZXJzLlxuICAgKlxuICAgKiBUaGlzIGlzIHRvIGJlIHVzZWQgd2l0aCBDbG91ZEZyb250V2ViRGlzdHJpYnV0aW9uLiBTZWVcbiAgICogY3JlYXRlUHJvdGVjdGVkQmVoYXZpb3IgaWYgdXNpbmcgRGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcHVibGljIGdldCBhdXRoRmlsdGVycygpOiBjbG91ZGZyb250LkxhbWJkYUZ1bmN0aW9uQXNzb2NpYXRpb25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuVklFV0VSX1JFUVVFU1QsXG4gICAgICAgIGxhbWJkYUZ1bmN0aW9uOiB0aGlzLmNoZWNrQXV0aEZuLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgZXZlbnRUeXBlOiBjbG91ZGZyb250LkxhbWJkYUVkZ2VFdmVudFR5cGUuT1JJR0lOX1JFU1BPTlNFLFxuICAgICAgICBsYW1iZGFGdW5jdGlvbjogdGhpcy5odHRwSGVhZGVyc0ZuLFxuICAgICAgfSxcbiAgICBdXG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGJlaGF2aW9yIHRoYXQgaW5jbHVkZXMgYXV0aG9yaXphdGlvbiBjaGVjay5cbiAgICpcbiAgICogVGhpcyBpcyB0byBiZSB1c2VkIHdpdGggRGlzdHJpYnV0aW9uLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZVByb3RlY3RlZEJlaGF2aW9yKFxuICAgIG9yaWdpbjogSU9yaWdpbixcbiAgICBvcHRpb25zPzogQWRkQmVoYXZpb3JPcHRpb25zLFxuICApOiBCZWhhdmlvck9wdGlvbnMge1xuICAgIGlmIChvcHRpb25zPy5lZGdlTGFtYmRhcyAhPSBudWxsKSB7XG4gICAgICB0aHJvdyBFcnJvcihcIlVzZXItZGVmaW5lZCBlZGdlTGFtYmRhcyBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZFwiKVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBvcmlnaW4sXG4gICAgICBjb21wcmVzczogdHJ1ZSxcbiAgICAgIHZpZXdlclByb3RvY29sUG9saWN5OiBWaWV3ZXJQcm90b2NvbFBvbGljeS5SRURJUkVDVF9UT19IVFRQUyxcbiAgICAgIGVkZ2VMYW1iZGFzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuTGFtYmRhRWRnZUV2ZW50VHlwZS5WSUVXRVJfUkVRVUVTVCxcbiAgICAgICAgICBmdW5jdGlvblZlcnNpb246IHRoaXMuY2hlY2tBdXRoRm4sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBldmVudFR5cGU6IGNsb3VkZnJvbnQuTGFtYmRhRWRnZUV2ZW50VHlwZS5PUklHSU5fUkVTUE9OU0UsXG4gICAgICAgICAgZnVuY3Rpb25WZXJzaW9uOiB0aGlzLmh0dHBIZWFkZXJzRm4sXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVXBkYXRlIENvZ25pdG8gY2xpZW50IHRvIHVzZSB0aGUgcHJvcGVyIFVSTHMgYW5kIE9BdXRoIHNjb3Blcy5cbiAgICpcbiAgICogVE9ETzogSW4gY2FzZSB0aGUgY2xpZW50IGNvbmZpZ3VyYXRpb24gY2hhbmdlcyBhbmQgaXMgdXBkYXRlZFxuICAgKiAgYnkgQ2xvdWRGb3JtYXRpb24sIHRoaXMgd2lsbCBub3QgYmUgcmVhcHBsaWVkIGNhdXNpbmcgdGhlIGNsaWVudFxuICAgKiAgdG8gbm90IGJlIGNvcnJlY3RseSBjb25maWd1cmVkLlxuICAgKiAgSG93IGNhbiB3ZSBhdm9pZCB0aGlzIHNjZW5hcmlvP1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZUNsaWVudChpZDogc3RyaW5nLCBwcm9wczogVXBkYXRlQ2xpZW50UHJvcHMpOiBDbGllbnRVcGRhdGUge1xuICAgIGlmICghdGhpcy5jbGllbnRDcmVhdGVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiWW91IGNhbm5vdCB1c2UgdXBkYXRlQ2xpZW50IHdpdGggYSB1c2VyLXByb3ZpZGVkIENvZ25pdG8gQ2xpZW50IFwiICtcbiAgICAgICAgICBcInNpbmNlIGl0IHdvdWxkIG92ZXJyaWRlIHRoZSB1c2VyLXByb3ZpZGVkIHNldHRpbmdzXCIsXG4gICAgICApXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBDbGllbnRVcGRhdGUodGhpcywgaWQsIHtcbiAgICAgIGNsaWVudDogdGhpcy5jbGllbnQsXG4gICAgICB1c2VyUG9vbDogdGhpcy51c2VyUG9vbCxcbiAgICAgIHNpZ25PdXRVcmw6IHByb3BzLnNpZ25PdXRVcmwsXG4gICAgICBjYWxsYmFja1VybDogcHJvcHMuY2FsbGJhY2tVcmwsXG4gICAgICBvYXV0aFNjb3BlczogdGhpcy5vYXV0aFNjb3BlcyxcbiAgICAgIGlkZW50aXR5UHJvdmlkZXJzOlxuICAgICAgICBwcm9wcy5pZGVudGl0eVByb3ZpZGVycyA/P1xuICAgICAgICBbXCJDT0dOSVRPXCJdLmNvbmNhdChcbiAgICAgICAgICB0aGlzLnVzZXJQb29sLmlkZW50aXR5UHJvdmlkZXJzLm1hcCgoaXQpID0+IGl0LnByb3ZpZGVyTmFtZSksXG4gICAgICAgICksXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Construct } from "constructs";
|
|
2
|
+
export interface CrossRegionParamProps<T> {
|
|
3
|
+
/**
|
|
4
|
+
* Nonce to force the stack to re-check for updated values.
|
|
5
|
+
*
|
|
6
|
+
* @default Date.now().toString()
|
|
7
|
+
*/
|
|
8
|
+
nonce?: string;
|
|
9
|
+
/**
|
|
10
|
+
* SSM Parameter name used to store the reference.
|
|
11
|
+
*/
|
|
12
|
+
parameterName: string;
|
|
13
|
+
/**
|
|
14
|
+
* The resource to make available cross-region.
|
|
15
|
+
*/
|
|
16
|
+
resource: T;
|
|
17
|
+
/**
|
|
18
|
+
* Convert the resource to a string representation for storage in SSM.
|
|
19
|
+
*/
|
|
20
|
+
resourceToReference(resource: T): string;
|
|
21
|
+
/**
|
|
22
|
+
* Reconstruct the resource from its stored string representation.
|
|
23
|
+
*/
|
|
24
|
+
referenceToResource(scope: Construct, id: string, reference: string): T;
|
|
25
|
+
/**
|
|
26
|
+
* Regions where this reference should be available.
|
|
27
|
+
*/
|
|
28
|
+
regions: string[];
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Makes a CDK resource available in other AWS regions by storing a
|
|
32
|
+
* string reference in SSM Parameter Store.
|
|
33
|
+
*
|
|
34
|
+
* On the producer side (constructor), the resource's string representation
|
|
35
|
+
* is written to SSM in each target region via custom resources.
|
|
36
|
+
*
|
|
37
|
+
* On the consumer side (get), the reference is read back from SSM and
|
|
38
|
+
* used to reconstruct the resource. If producer and consumer are in the
|
|
39
|
+
* same region, the resource is returned directly without SSM.
|
|
40
|
+
*/
|
|
41
|
+
export declare class CrossRegionParam<T> extends Construct {
|
|
42
|
+
private readonly nonce;
|
|
43
|
+
private readonly parameterName;
|
|
44
|
+
private readonly resource;
|
|
45
|
+
private readonly referenceToResource;
|
|
46
|
+
private readonly regions;
|
|
47
|
+
constructor(scope: Construct, id: string, props: CrossRegionParamProps<T>);
|
|
48
|
+
/**
|
|
49
|
+
* Retrieve the resource. Returns it directly when in the same region
|
|
50
|
+
* as the producer, otherwise resolves it from SSM Parameter Store.
|
|
51
|
+
*/
|
|
52
|
+
get(scope: Construct, id: string): T;
|
|
53
|
+
/**
|
|
54
|
+
* Write an SSM Parameter to a specific region using a custom resource.
|
|
55
|
+
*/
|
|
56
|
+
private putParameterInRegion;
|
|
57
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { CfnParameter, Stack } from "aws-cdk-lib";
|
|
2
|
+
import * as ssm from "aws-cdk-lib/aws-ssm";
|
|
3
|
+
import * as cr from "aws-cdk-lib/custom-resources";
|
|
4
|
+
import { Construct } from "constructs";
|
|
5
|
+
/**
|
|
6
|
+
* Makes a CDK resource available in other AWS regions by storing a
|
|
7
|
+
* string reference in SSM Parameter Store.
|
|
8
|
+
*
|
|
9
|
+
* On the producer side (constructor), the resource's string representation
|
|
10
|
+
* is written to SSM in each target region via custom resources.
|
|
11
|
+
*
|
|
12
|
+
* On the consumer side (get), the reference is read back from SSM and
|
|
13
|
+
* used to reconstruct the resource. If producer and consumer are in the
|
|
14
|
+
* same region, the resource is returned directly without SSM.
|
|
15
|
+
*/
|
|
16
|
+
export class CrossRegionParam extends Construct {
|
|
17
|
+
nonce;
|
|
18
|
+
parameterName;
|
|
19
|
+
resource;
|
|
20
|
+
referenceToResource;
|
|
21
|
+
regions;
|
|
22
|
+
constructor(scope, id, props) {
|
|
23
|
+
super(scope, id);
|
|
24
|
+
this.nonce = props.nonce ?? Date.now().toString();
|
|
25
|
+
this.parameterName = props.parameterName;
|
|
26
|
+
this.resource = props.resource;
|
|
27
|
+
this.referenceToResource = props.referenceToResource;
|
|
28
|
+
this.regions = props.regions;
|
|
29
|
+
const value = props.resourceToReference(props.resource);
|
|
30
|
+
for (const region of props.regions) {
|
|
31
|
+
this.putParameterInRegion(`Param${region}`, {
|
|
32
|
+
name: this.parameterName,
|
|
33
|
+
region,
|
|
34
|
+
value,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Retrieve the resource. Returns it directly when in the same region
|
|
40
|
+
* as the producer, otherwise resolves it from SSM Parameter Store.
|
|
41
|
+
*/
|
|
42
|
+
get(scope, id) {
|
|
43
|
+
const producerRegion = Stack.of(this).region;
|
|
44
|
+
const consumerRegion = Stack.of(scope).region;
|
|
45
|
+
if (producerRegion === consumerRegion) {
|
|
46
|
+
return this.resource;
|
|
47
|
+
}
|
|
48
|
+
if (!this.regions.includes(consumerRegion)) {
|
|
49
|
+
throw new Error(`Region ${consumerRegion} is not registered for parameter ${this.parameterName}`);
|
|
50
|
+
}
|
|
51
|
+
scope.node.addDependency(this);
|
|
52
|
+
new CfnParameter(scope, `${id}Nonce`, {
|
|
53
|
+
default: this.nonce,
|
|
54
|
+
});
|
|
55
|
+
const reference = ssm.StringParameter.valueForStringParameter(scope, this.parameterName);
|
|
56
|
+
return this.referenceToResource(scope, id, reference);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Write an SSM Parameter to a specific region using a custom resource.
|
|
60
|
+
*/
|
|
61
|
+
putParameterInRegion(id, props) {
|
|
62
|
+
const physicalResourceId = cr.PhysicalResourceId.of(props.name);
|
|
63
|
+
// "Resoure" is an intentional typo preserved for backward compatibility.
|
|
64
|
+
// Changing it would alter CloudFormation logical IDs and cause resource
|
|
65
|
+
// replacement in existing deployments.
|
|
66
|
+
const paramScope = new Construct(this, id);
|
|
67
|
+
new cr.AwsCustomResource(paramScope, "Resoure", {
|
|
68
|
+
onUpdate: {
|
|
69
|
+
service: "SSM",
|
|
70
|
+
action: "putParameter",
|
|
71
|
+
parameters: {
|
|
72
|
+
Name: props.name,
|
|
73
|
+
Value: props.value,
|
|
74
|
+
Type: "String",
|
|
75
|
+
Overwrite: true,
|
|
76
|
+
},
|
|
77
|
+
region: props.region,
|
|
78
|
+
physicalResourceId,
|
|
79
|
+
},
|
|
80
|
+
onDelete: {
|
|
81
|
+
service: "SSM",
|
|
82
|
+
action: "deleteParameter",
|
|
83
|
+
parameters: {
|
|
84
|
+
Name: props.name,
|
|
85
|
+
},
|
|
86
|
+
region: props.region,
|
|
87
|
+
physicalResourceId,
|
|
88
|
+
},
|
|
89
|
+
policy: cr.AwsCustomResourcePolicy.fromSdkCalls({
|
|
90
|
+
resources: cr.AwsCustomResourcePolicy.ANY_RESOURCE,
|
|
91
|
+
}),
|
|
92
|
+
installLatestAwsSdk: false,
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3Jvc3MtcmVnaW9uLXBhcmFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jcm9zcy1yZWdpb24tcGFyYW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sYUFBYSxDQUFBO0FBQ2pELE9BQU8sS0FBSyxHQUFHLE1BQU0scUJBQXFCLENBQUE7QUFDMUMsT0FBTyxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBO0FBK0J0Qzs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBTSxPQUFPLGdCQUFvQixTQUFRLFNBQVM7SUFDL0IsS0FBSyxDQUFRO0lBQ2IsYUFBYSxDQUFRO0lBQ3JCLFFBQVEsQ0FBRztJQUNYLG1CQUFtQixDQUFpRDtJQUNwRSxPQUFPLENBQVU7SUFFbEMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN2RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUE7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFBO1FBQ3hDLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQTtRQUM5QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFBO1FBQ3BELElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQTtRQUU1QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFBO1FBRXZELEtBQUssTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ25DLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxRQUFRLE1BQU0sRUFBRSxFQUFFO2dCQUMxQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ3hCLE1BQU07Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksR0FBRyxDQUFDLEtBQWdCLEVBQUUsRUFBVTtRQUNyQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUM1QyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUU3QyxJQUFJLGNBQWMsS0FBSyxjQUFjLEVBQUUsQ0FBQztZQUN0QyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDdEIsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQ2IsVUFBVSxjQUFjLG9DQUFvQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQ2pGLENBQUE7UUFDSCxDQUFDO1FBRUQsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFOUIsSUFBSSxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLEVBQUU7WUFDcEMsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLO1NBQ3BCLENBQUMsQ0FBQTtRQUVGLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxlQUFlLENBQUMsdUJBQXVCLENBQzNELEtBQUssRUFDTCxJQUFJLENBQUMsYUFBYSxDQUNuQixDQUFBO1FBQ0QsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLENBQUMsQ0FBQTtJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSyxvQkFBb0IsQ0FDMUIsRUFBVSxFQUNWLEtBQXNEO1FBRXRELE1BQU0sa0JBQWtCLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFFL0QseUVBQXlFO1FBQ3pFLHdFQUF3RTtRQUN4RSx1Q0FBdUM7UUFDdkMsTUFBTSxVQUFVLEdBQUcsSUFBSSxTQUFTLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQzFDLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUU7WUFDOUMsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO29CQUNoQixLQUFLLEVBQUUsS0FBSyxDQUFDLEtBQUs7b0JBQ2xCLElBQUksRUFBRSxRQUFRO29CQUNkLFNBQVMsRUFBRSxJQUFJO2lCQUNoQjtnQkFDRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLGtCQUFrQjthQUNuQjtZQUNELFFBQVEsRUFBRTtnQkFDUixPQUFPLEVBQUUsS0FBSztnQkFDZCxNQUFNLEVBQUUsaUJBQWlCO2dCQUN6QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxJQUFJO2lCQUNqQjtnQkFDRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLGtCQUFrQjthQUNuQjtZQUNELE1BQU0sRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsWUFBWSxDQUFDO2dCQUM5QyxTQUFTLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVk7YUFDbkQsQ0FBQztZQUNGLG1CQUFtQixFQUFFLEtBQUs7U0FDM0IsQ0FBQyxDQUFBO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2ZuUGFyYW1ldGVyLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBzc20gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIlxuaW1wb3J0ICogYXMgY3IgZnJvbSBcImF3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXNcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIENyb3NzUmVnaW9uUGFyYW1Qcm9wczxUPiB7XG4gIC8qKlxuICAgKiBOb25jZSB0byBmb3JjZSB0aGUgc3RhY2sgdG8gcmUtY2hlY2sgZm9yIHVwZGF0ZWQgdmFsdWVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEYXRlLm5vdygpLnRvU3RyaW5nKClcbiAgICovXG4gIG5vbmNlPzogc3RyaW5nXG4gIC8qKlxuICAgKiBTU00gUGFyYW1ldGVyIG5hbWUgdXNlZCB0byBzdG9yZSB0aGUgcmVmZXJlbmNlLlxuICAgKi9cbiAgcGFyYW1ldGVyTmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgcmVzb3VyY2UgdG8gbWFrZSBhdmFpbGFibGUgY3Jvc3MtcmVnaW9uLlxuICAgKi9cbiAgcmVzb3VyY2U6IFRcbiAgLyoqXG4gICAqIENvbnZlcnQgdGhlIHJlc291cmNlIHRvIGEgc3RyaW5nIHJlcHJlc2VudGF0aW9uIGZvciBzdG9yYWdlIGluIFNTTS5cbiAgICovXG4gIHJlc291cmNlVG9SZWZlcmVuY2UocmVzb3VyY2U6IFQpOiBzdHJpbmdcbiAgLyoqXG4gICAqIFJlY29uc3RydWN0IHRoZSByZXNvdXJjZSBmcm9tIGl0cyBzdG9yZWQgc3RyaW5nIHJlcHJlc2VudGF0aW9uLlxuICAgKi9cbiAgcmVmZXJlbmNlVG9SZXNvdXJjZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCByZWZlcmVuY2U6IHN0cmluZyk6IFRcbiAgLyoqXG4gICAqIFJlZ2lvbnMgd2hlcmUgdGhpcyByZWZlcmVuY2Ugc2hvdWxkIGJlIGF2YWlsYWJsZS5cbiAgICovXG4gIHJlZ2lvbnM6IHN0cmluZ1tdXG59XG5cbi8qKlxuICogTWFrZXMgYSBDREsgcmVzb3VyY2UgYXZhaWxhYmxlIGluIG90aGVyIEFXUyByZWdpb25zIGJ5IHN0b3JpbmcgYVxuICogc3RyaW5nIHJlZmVyZW5jZSBpbiBTU00gUGFyYW1ldGVyIFN0b3JlLlxuICpcbiAqIE9uIHRoZSBwcm9kdWNlciBzaWRlIChjb25zdHJ1Y3RvciksIHRoZSByZXNvdXJjZSdzIHN0cmluZyByZXByZXNlbnRhdGlvblxuICogaXMgd3JpdHRlbiB0byBTU00gaW4gZWFjaCB0YXJnZXQgcmVnaW9uIHZpYSBjdXN0b20gcmVzb3VyY2VzLlxuICpcbiAqIE9uIHRoZSBjb25zdW1lciBzaWRlIChnZXQpLCB0aGUgcmVmZXJlbmNlIGlzIHJlYWQgYmFjayBmcm9tIFNTTSBhbmRcbiAqIHVzZWQgdG8gcmVjb25zdHJ1Y3QgdGhlIHJlc291cmNlLiBJZiBwcm9kdWNlciBhbmQgY29uc3VtZXIgYXJlIGluIHRoZVxuICogc2FtZSByZWdpb24sIHRoZSByZXNvdXJjZSBpcyByZXR1cm5lZCBkaXJlY3RseSB3aXRob3V0IFNTTS5cbiAqL1xuZXhwb3J0IGNsYXNzIENyb3NzUmVnaW9uUGFyYW08VD4gZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IG5vbmNlOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJOYW1lOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogVFxuICBwcml2YXRlIHJlYWRvbmx5IHJlZmVyZW5jZVRvUmVzb3VyY2U6IENyb3NzUmVnaW9uUGFyYW1Qcm9wczxUPltcInJlZmVyZW5jZVRvUmVzb3VyY2VcIl1cbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25zOiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDcm9zc1JlZ2lvblBhcmFtUHJvcHM8VD4pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG4gICAgdGhpcy5ub25jZSA9IHByb3BzLm5vbmNlID8/IERhdGUubm93KCkudG9TdHJpbmcoKVxuICAgIHRoaXMucGFyYW1ldGVyTmFtZSA9IHByb3BzLnBhcmFtZXRlck5hbWVcbiAgICB0aGlzLnJlc291cmNlID0gcHJvcHMucmVzb3VyY2VcbiAgICB0aGlzLnJlZmVyZW5jZVRvUmVzb3VyY2UgPSBwcm9wcy5yZWZlcmVuY2VUb1Jlc291cmNlXG4gICAgdGhpcy5yZWdpb25zID0gcHJvcHMucmVnaW9uc1xuXG4gICAgY29uc3QgdmFsdWUgPSBwcm9wcy5yZXNvdXJjZVRvUmVmZXJlbmNlKHByb3BzLnJlc291cmNlKVxuXG4gICAgZm9yIChjb25zdCByZWdpb24gb2YgcHJvcHMucmVnaW9ucykge1xuICAgICAgdGhpcy5wdXRQYXJhbWV0ZXJJblJlZ2lvbihgUGFyYW0ke3JlZ2lvbn1gLCB7XG4gICAgICAgIG5hbWU6IHRoaXMucGFyYW1ldGVyTmFtZSxcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlIHRoZSByZXNvdXJjZS4gUmV0dXJucyBpdCBkaXJlY3RseSB3aGVuIGluIHRoZSBzYW1lIHJlZ2lvblxuICAgKiBhcyB0aGUgcHJvZHVjZXIsIG90aGVyd2lzZSByZXNvbHZlcyBpdCBmcm9tIFNTTSBQYXJhbWV0ZXIgU3RvcmUuXG4gICAqL1xuICBwdWJsaWMgZ2V0KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCBwcm9kdWNlclJlZ2lvbiA9IFN0YWNrLm9mKHRoaXMpLnJlZ2lvblxuICAgIGNvbnN0IGNvbnN1bWVyUmVnaW9uID0gU3RhY2sub2Yoc2NvcGUpLnJlZ2lvblxuXG4gICAgaWYgKHByb2R1Y2VyUmVnaW9uID09PSBjb25zdW1lclJlZ2lvbikge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb3VyY2VcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucmVnaW9ucy5pbmNsdWRlcyhjb25zdW1lclJlZ2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFJlZ2lvbiAke2NvbnN1bWVyUmVnaW9ufSBpcyBub3QgcmVnaXN0ZXJlZCBmb3IgcGFyYW1ldGVyICR7dGhpcy5wYXJhbWV0ZXJOYW1lfWAsXG4gICAgICApXG4gICAgfVxuXG4gICAgc2NvcGUubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMpXG5cbiAgICBuZXcgQ2ZuUGFyYW1ldGVyKHNjb3BlLCBgJHtpZH1Ob25jZWAsIHtcbiAgICAgIGRlZmF1bHQ6IHRoaXMubm9uY2UsXG4gICAgfSlcblxuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMucGFyYW1ldGVyTmFtZSxcbiAgICApXG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlVG9SZXNvdXJjZShzY29wZSwgaWQsIHJlZmVyZW5jZSlcbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSBhbiBTU00gUGFyYW1ldGVyIHRvIGEgc3BlY2lmaWMgcmVnaW9uIHVzaW5nIGEgY3VzdG9tIHJlc291cmNlLlxuICAgKi9cbiAgcHJpdmF0ZSBwdXRQYXJhbWV0ZXJJblJlZ2lvbihcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiB7IG5hbWU6IHN0cmluZzsgcmVnaW9uOiBzdHJpbmc7IHZhbHVlOiBzdHJpbmcgfSxcbiAgKSB7XG4gICAgY29uc3QgcGh5c2ljYWxSZXNvdXJjZUlkID0gY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHByb3BzLm5hbWUpXG5cbiAgICAvLyBcIlJlc291cmVcIiBpcyBhbiBpbnRlbnRpb25hbCB0eXBvIHByZXNlcnZlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS5cbiAgICAvLyBDaGFuZ2luZyBpdCB3b3VsZCBhbHRlciBDbG91ZEZvcm1hdGlvbiBsb2dpY2FsIElEcyBhbmQgY2F1c2UgcmVzb3VyY2VcbiAgICAvLyByZXBsYWNlbWVudCBpbiBleGlzdGluZyBkZXBsb3ltZW50cy5cbiAgICBjb25zdCBwYXJhbVNjb3BlID0gbmV3IENvbnN0cnVjdCh0aGlzLCBpZClcbiAgICBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UocGFyYW1TY29wZSwgXCJSZXNvdXJlXCIsIHtcbiAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiU1NNXCIsXG4gICAgICAgIGFjdGlvbjogXCJwdXRQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgICAgVmFsdWU6IHByb3BzLnZhbHVlLFxuICAgICAgICAgIFR5cGU6IFwiU3RyaW5nXCIsXG4gICAgICAgICAgT3ZlcndyaXRlOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkLFxuICAgICAgfSxcbiAgICAgIG9uRGVsZXRlOiB7XG4gICAgICAgIHNlcnZpY2U6IFwiU1NNXCIsXG4gICAgICAgIGFjdGlvbjogXCJkZWxldGVQYXJhbWV0ZXJcIixcbiAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgIE5hbWU6IHByb3BzLm5hbWUsXG4gICAgICAgIH0sXG4gICAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQsXG4gICAgICB9LFxuICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICByZXNvdXJjZXM6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LkFOWV9SRVNPVVJDRSxcbiAgICAgIH0pLFxuICAgICAgaW5zdGFsbExhdGVzdEF3c1NkazogZmFsc2UsXG4gICAgfSlcbiAgfVxufVxuIl19
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export * from "./cloudfront-auth";
|
|
2
|
+
export * from "./cross-region-params";
|
|
3
|
+
export * from "./lambda-config/lambda-config";
|
|
2
4
|
export * from "./lambdas";
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQTtBQUNqQyxjQUFjLHVCQUF1QixDQUFBO0FBQ3JDLGNBQWMsK0JBQStCLENBQUE7QUFDN0MsY0FBYyxXQUFXLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jbG91ZGZyb250LWF1dGhcIlxuZXhwb3J0ICogZnJvbSBcIi4vY3Jvc3MtcmVnaW9uLXBhcmFtc1wiXG5leHBvcnQgKiBmcm9tIFwiLi9sYW1iZGEtY29uZmlnL2xhbWJkYS1jb25maWdcIlxuZXhwb3J0ICogZnJvbSBcIi4vbGFtYmRhc1wiXG4iXX0=
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { aws_lambda as lambda } from "aws-cdk-lib";
|
|
2
|
+
import { Construct } from "constructs";
|
|
3
|
+
export interface LambdaConfigProps {
|
|
4
|
+
/**
|
|
5
|
+
* The Lambda Function to be updated.
|
|
6
|
+
*
|
|
7
|
+
* If this points to a specific version, the version qualifier
|
|
8
|
+
* will be ignored, but will be used for invalidation instead
|
|
9
|
+
* of providing a separate nonce value.
|
|
10
|
+
*
|
|
11
|
+
* A Lambda Function can only receive a new version based on
|
|
12
|
+
* the latest version.
|
|
13
|
+
*/
|
|
14
|
+
function: lambda.IFunction;
|
|
15
|
+
/**
|
|
16
|
+
* The configuration to be added to the Lambda Function. Must be
|
|
17
|
+
* a valid JSON structure and cannot contain null values since it
|
|
18
|
+
* is not supported by CloudFormation custom resource properties.
|
|
19
|
+
*/
|
|
20
|
+
config: Record<string, any>;
|
|
21
|
+
/**
|
|
22
|
+
* Nonce to force new version.
|
|
23
|
+
*
|
|
24
|
+
* If the function provided does not point to a specific
|
|
25
|
+
* version, specify nonce to ensure the function is updated
|
|
26
|
+
* after every change.
|
|
27
|
+
*/
|
|
28
|
+
nonce?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Modify a Lambda Function by adding a config.json file using
|
|
32
|
+
* the provided object, and provide a new version for the
|
|
33
|
+
* Lambda Function.
|
|
34
|
+
*/
|
|
35
|
+
export declare class LambdaConfig extends Construct {
|
|
36
|
+
readonly version: lambda.IVersion;
|
|
37
|
+
constructor(scope: Construct, id: string, props: LambdaConfigProps);
|
|
38
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import * as path from "node:path";
|
|
2
|
+
import { fileURLToPath } from "node:url";
|
|
3
|
+
import { CustomResource, custom_resources as cr, Duration, aws_iam as iam, aws_lambda as lambda, Stack, } from "aws-cdk-lib";
|
|
4
|
+
import { Construct } from "constructs";
|
|
5
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
6
|
+
const __dirname = path.dirname(__filename);
|
|
7
|
+
/**
|
|
8
|
+
* Modify a Lambda Function by adding a config.json file using
|
|
9
|
+
* the provided object, and provide a new version for the
|
|
10
|
+
* Lambda Function.
|
|
11
|
+
*/
|
|
12
|
+
export class LambdaConfig extends Construct {
|
|
13
|
+
version;
|
|
14
|
+
constructor(scope, id, props) {
|
|
15
|
+
super(scope, id);
|
|
16
|
+
const updateCodeResource = new CustomResource(this, "Resource", {
|
|
17
|
+
serviceToken: LambdaConfigProvider.getOrCreate(this).serviceToken,
|
|
18
|
+
properties: {
|
|
19
|
+
FunctionArn: props.function.functionArn,
|
|
20
|
+
Config: props.config,
|
|
21
|
+
Nonce: props.nonce ?? "",
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
this.version = lambda.Version.fromVersionArn(this, "Version", updateCodeResource.getAttString("FunctionArn"));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
class LambdaConfigProvider extends Construct {
|
|
28
|
+
static getOrCreate(scope) {
|
|
29
|
+
const stack = Stack.of(scope);
|
|
30
|
+
const id = "liflig-infra.lambda-config.provider";
|
|
31
|
+
return (stack.node.tryFindChild(id) ||
|
|
32
|
+
new LambdaConfigProvider(stack, id));
|
|
33
|
+
}
|
|
34
|
+
provider;
|
|
35
|
+
serviceToken;
|
|
36
|
+
constructor(scope, id) {
|
|
37
|
+
super(scope, id);
|
|
38
|
+
this.provider = new cr.Provider(this, "Provider", {
|
|
39
|
+
onEventHandler: new lambda.Function(this, "UpdateCodeFn", {
|
|
40
|
+
code: lambda.Code.fromAsset(path.join(__dirname, "../../dist/lambda-config-handler")),
|
|
41
|
+
handler: "index.handler",
|
|
42
|
+
runtime: lambda.Runtime.NODEJS_24_X,
|
|
43
|
+
timeout: Duration.minutes(2),
|
|
44
|
+
initialPolicy: [
|
|
45
|
+
new iam.PolicyStatement({
|
|
46
|
+
actions: [
|
|
47
|
+
"lambda:GetFunction",
|
|
48
|
+
"lambda:GetFunctionConfiguration",
|
|
49
|
+
"lambda:UpdateFunctionCode",
|
|
50
|
+
],
|
|
51
|
+
resources: ["*"],
|
|
52
|
+
}),
|
|
53
|
+
],
|
|
54
|
+
}),
|
|
55
|
+
});
|
|
56
|
+
this.serviceToken = this.provider.serviceToken;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sYW1iZGEtY29uZmlnL2xhbWJkYS1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLElBQUksTUFBTSxXQUFXLENBQUE7QUFDakMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQTtBQUN4QyxPQUFPLEVBQ0wsY0FBYyxFQUNkLGdCQUFnQixJQUFJLEVBQUUsRUFDdEIsUUFBUSxFQUNSLE9BQU8sSUFBSSxHQUFHLEVBQ2QsVUFBVSxJQUFJLE1BQU0sRUFDcEIsS0FBSyxHQUNOLE1BQU0sYUFBYSxDQUFBO0FBQ3BCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFFdEMsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQThCMUM7Ozs7R0FJRztBQUNILE1BQU0sT0FBTyxZQUFhLFNBQVEsU0FBUztJQUN6QixPQUFPLENBQWlCO0lBRXhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBd0I7UUFDaEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDOUQsWUFBWSxFQUFFLG9CQUFvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZO1lBQ2pFLFVBQVUsRUFBRTtnQkFDVixXQUFXLEVBQUUsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXO2dCQUN2QyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLEtBQUssRUFBRSxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUU7YUFDekI7U0FDRixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUMxQyxJQUFJLEVBQ0osU0FBUyxFQUNULGtCQUFrQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FDL0MsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQUVELE1BQU0sb0JBQXFCLFNBQVEsU0FBUztJQUNuQyxNQUFNLENBQUMsV0FBVyxDQUFDLEtBQWdCO1FBQ3hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDN0IsTUFBTSxFQUFFLEdBQUcscUNBQXFDLENBQUE7UUFDaEQsT0FBTyxDQUNKLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBMEI7WUFDckQsSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQ3BDLENBQUE7SUFDSCxDQUFDO0lBRWdCLFFBQVEsQ0FBYTtJQUN0QixZQUFZLENBQVE7SUFFcEMsWUFBWSxLQUFnQixFQUFFLEVBQVU7UUFDdEMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2hELGNBQWMsRUFBRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRTtnQkFDeEQsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxrQ0FBa0MsQ0FBQyxDQUN6RDtnQkFDRCxPQUFPLEVBQUUsZUFBZTtnQkFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztnQkFDbkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO2dCQUM1QixhQUFhLEVBQUU7b0JBQ2IsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO3dCQUN0QixPQUFPLEVBQUU7NEJBQ1Asb0JBQW9COzRCQUNwQixpQ0FBaUM7NEJBQ2pDLDJCQUEyQjt5QkFDNUI7d0JBQ0QsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO3FCQUNqQixDQUFDO2lCQUNIO2FBQ0YsQ0FBQztTQUNILENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUE7SUFDaEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwibm9kZTpwYXRoXCJcbmltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tIFwibm9kZTp1cmxcIlxuaW1wb3J0IHtcbiAgQ3VzdG9tUmVzb3VyY2UsXG4gIGN1c3RvbV9yZXNvdXJjZXMgYXMgY3IsXG4gIER1cmF0aW9uLFxuICBhd3NfaWFtIGFzIGlhbSxcbiAgYXdzX2xhbWJkYSBhcyBsYW1iZGEsXG4gIFN0YWNrLFxufSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIlxuXG5jb25zdCBfX2ZpbGVuYW1lID0gZmlsZVVSTFRvUGF0aChpbXBvcnQubWV0YS51cmwpXG5jb25zdCBfX2Rpcm5hbWUgPSBwYXRoLmRpcm5hbWUoX19maWxlbmFtZSlcblxuZXhwb3J0IGludGVyZmFjZSBMYW1iZGFDb25maWdQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgTGFtYmRhIEZ1bmN0aW9uIHRvIGJlIHVwZGF0ZWQuXG4gICAqXG4gICAqIElmIHRoaXMgcG9pbnRzIHRvIGEgc3BlY2lmaWMgdmVyc2lvbiwgdGhlIHZlcnNpb24gcXVhbGlmaWVyXG4gICAqIHdpbGwgYmUgaWdub3JlZCwgYnV0IHdpbGwgYmUgdXNlZCBmb3IgaW52YWxpZGF0aW9uIGluc3RlYWRcbiAgICogb2YgcHJvdmlkaW5nIGEgc2VwYXJhdGUgbm9uY2UgdmFsdWUuXG4gICAqXG4gICAqIEEgTGFtYmRhIEZ1bmN0aW9uIGNhbiBvbmx5IHJlY2VpdmUgYSBuZXcgdmVyc2lvbiBiYXNlZCBvblxuICAgKiB0aGUgbGF0ZXN0IHZlcnNpb24uXG4gICAqL1xuICBmdW5jdGlvbjogbGFtYmRhLklGdW5jdGlvblxuICAvKipcbiAgICogVGhlIGNvbmZpZ3VyYXRpb24gdG8gYmUgYWRkZWQgdG8gdGhlIExhbWJkYSBGdW5jdGlvbi4gTXVzdCBiZVxuICAgKiBhIHZhbGlkIEpTT04gc3RydWN0dXJlIGFuZCBjYW5ub3QgY29udGFpbiBudWxsIHZhbHVlcyBzaW5jZSBpdFxuICAgKiBpcyBub3Qgc3VwcG9ydGVkIGJ5IENsb3VkRm9ybWF0aW9uIGN1c3RvbSByZXNvdXJjZSBwcm9wZXJ0aWVzLlxuICAgKi9cbiAgY29uZmlnOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gIC8qKlxuICAgKiBOb25jZSB0byBmb3JjZSBuZXcgdmVyc2lvbi5cbiAgICpcbiAgICogSWYgdGhlIGZ1bmN0aW9uIHByb3ZpZGVkIGRvZXMgbm90IHBvaW50IHRvIGEgc3BlY2lmaWNcbiAgICogdmVyc2lvbiwgc3BlY2lmeSBub25jZSB0byBlbnN1cmUgdGhlIGZ1bmN0aW9uIGlzIHVwZGF0ZWRcbiAgICogYWZ0ZXIgZXZlcnkgY2hhbmdlLlxuICAgKi9cbiAgbm9uY2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBNb2RpZnkgYSBMYW1iZGEgRnVuY3Rpb24gYnkgYWRkaW5nIGEgY29uZmlnLmpzb24gZmlsZSB1c2luZ1xuICogdGhlIHByb3ZpZGVkIG9iamVjdCwgYW5kIHByb3ZpZGUgYSBuZXcgdmVyc2lvbiBmb3IgdGhlXG4gKiBMYW1iZGEgRnVuY3Rpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBMYW1iZGFDb25maWcgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogbGFtYmRhLklWZXJzaW9uXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IExhbWJkYUNvbmZpZ1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgdXBkYXRlQ29kZVJlc291cmNlID0gbmV3IEN1c3RvbVJlc291cmNlKHRoaXMsIFwiUmVzb3VyY2VcIiwge1xuICAgICAgc2VydmljZVRva2VuOiBMYW1iZGFDb25maWdQcm92aWRlci5nZXRPckNyZWF0ZSh0aGlzKS5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIEZ1bmN0aW9uQXJuOiBwcm9wcy5mdW5jdGlvbi5mdW5jdGlvbkFybixcbiAgICAgICAgQ29uZmlnOiBwcm9wcy5jb25maWcsXG4gICAgICAgIE5vbmNlOiBwcm9wcy5ub25jZSA/PyBcIlwiLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgdGhpcy52ZXJzaW9uID0gbGFtYmRhLlZlcnNpb24uZnJvbVZlcnNpb25Bcm4oXG4gICAgICB0aGlzLFxuICAgICAgXCJWZXJzaW9uXCIsXG4gICAgICB1cGRhdGVDb2RlUmVzb3VyY2UuZ2V0QXR0U3RyaW5nKFwiRnVuY3Rpb25Bcm5cIiksXG4gICAgKVxuICB9XG59XG5cbmNsYXNzIExhbWJkYUNvbmZpZ1Byb3ZpZGVyIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHN0YXRpYyBnZXRPckNyZWF0ZShzY29wZTogQ29uc3RydWN0KSB7XG4gICAgY29uc3Qgc3RhY2sgPSBTdGFjay5vZihzY29wZSlcbiAgICBjb25zdCBpZCA9IFwibGlmbGlnLWluZnJhLmxhbWJkYS1jb25maWcucHJvdmlkZXJcIlxuICAgIHJldHVybiAoXG4gICAgICAoc3RhY2subm9kZS50cnlGaW5kQ2hpbGQoaWQpIGFzIExhbWJkYUNvbmZpZ1Byb3ZpZGVyKSB8fFxuICAgICAgbmV3IExhbWJkYUNvbmZpZ1Byb3ZpZGVyKHN0YWNrLCBpZClcbiAgICApXG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyOiBjci5Qcm92aWRlclxuICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZVRva2VuOiBzdHJpbmdcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5wcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCBcIlByb3ZpZGVyXCIsIHtcbiAgICAgIG9uRXZlbnRIYW5kbGVyOiBuZXcgbGFtYmRhLkZ1bmN0aW9uKHRoaXMsIFwiVXBkYXRlQ29kZUZuXCIsIHtcbiAgICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vZGlzdC9sYW1iZGEtY29uZmlnLWhhbmRsZXJcIiksXG4gICAgICAgICksXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMjRfWCxcbiAgICAgICAgdGltZW91dDogRHVyYXRpb24ubWludXRlcygyKSxcbiAgICAgICAgaW5pdGlhbFBvbGljeTogW1xuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgXCJsYW1iZGE6R2V0RnVuY3Rpb25cIixcbiAgICAgICAgICAgICAgXCJsYW1iZGE6R2V0RnVuY3Rpb25Db25maWd1cmF0aW9uXCIsXG4gICAgICAgICAgICAgIFwibGFtYmRhOlVwZGF0ZUZ1bmN0aW9uQ29kZVwiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIH0pXG5cbiAgICB0aGlzLnNlcnZpY2VUb2tlbiA9IHRoaXMucHJvdmlkZXIuc2VydmljZVRva2VuXG4gIH1cbn1cbiJdfQ==
|
package/lib/lambdas.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { ParameterResource } from "@henrist/cdk-cross-region-params";
|
|
2
1
|
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
3
2
|
import { Construct } from "constructs";
|
|
3
|
+
import { CrossRegionParam } from "./cross-region-params";
|
|
4
4
|
interface AuthLambdasProps {
|
|
5
5
|
/**
|
|
6
6
|
* List of regions this can be used in. This should contain the region
|
|
@@ -20,11 +20,11 @@ interface AuthLambdasProps {
|
|
|
20
20
|
* distribution is deployed from, so that it can be used cross-region.
|
|
21
21
|
*/
|
|
22
22
|
export declare class AuthLambdas extends Construct {
|
|
23
|
-
readonly checkAuthFn:
|
|
24
|
-
readonly httpHeadersFn:
|
|
25
|
-
readonly parseAuthFn:
|
|
26
|
-
readonly refreshAuthFn:
|
|
27
|
-
readonly signOutFn:
|
|
23
|
+
readonly checkAuthFn: CrossRegionParam<lambda.IVersion>;
|
|
24
|
+
readonly httpHeadersFn: CrossRegionParam<lambda.IVersion>;
|
|
25
|
+
readonly parseAuthFn: CrossRegionParam<lambda.IVersion>;
|
|
26
|
+
readonly refreshAuthFn: CrossRegionParam<lambda.IVersion>;
|
|
27
|
+
readonly signOutFn: CrossRegionParam<lambda.IVersion>;
|
|
28
28
|
private readonly regions;
|
|
29
29
|
private readonly nonce;
|
|
30
30
|
constructor(scope: Construct, id: string, props: AuthLambdasProps);
|
package/lib/lambdas.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as path from "node:path";
|
|
2
2
|
import { fileURLToPath } from "node:url";
|
|
3
|
-
import { ParameterResource } from "@henrist/cdk-cross-region-params";
|
|
4
3
|
import { Duration, Stack } from "aws-cdk-lib";
|
|
5
4
|
import * as iam from "aws-cdk-lib/aws-iam";
|
|
6
5
|
import * as lambda from "aws-cdk-lib/aws-lambda";
|
|
7
6
|
import { Construct } from "constructs";
|
|
7
|
+
import { CrossRegionParam } from "./cross-region-params";
|
|
8
8
|
const __filename = fileURLToPath(import.meta.url);
|
|
9
9
|
const __dirname = path.dirname(__filename);
|
|
10
10
|
const isSnapshot = process.env.IS_SNAPSHOT === "true";
|
|
@@ -58,7 +58,7 @@ export class AuthLambdas extends Construct {
|
|
|
58
58
|
if (this.node.addr === undefined) {
|
|
59
59
|
throw new Error("node.addr not found - ensure aws-cdk is up-to-update");
|
|
60
60
|
}
|
|
61
|
-
return new
|
|
61
|
+
return new CrossRegionParam(this, `${id}VersionParam`, {
|
|
62
62
|
nonce: isSnapshot ? "snapshot" : undefined,
|
|
63
63
|
parameterName: `/cf/region/${region}/stack/${stackName}/${this.node.addr}-${id}-function-arn`,
|
|
64
64
|
referenceToResource: (scope, id, reference) => lambda.Version.fromVersionArn(scope, id, reference),
|
|
@@ -68,4 +68,4 @@ export class AuthLambdas extends Construct {
|
|
|
68
68
|
});
|
|
69
69
|
}
|
|
70
70
|
}
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9sYW1iZGFzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQ2pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDeEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUE7QUFDN0MsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUMxQyxPQUFPLEtBQUssTUFBTSxNQUFNLHdCQUF3QixDQUFBO0FBQ2hELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxZQUFZLENBQUE7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdUJBQXVCLENBQUE7QUFFeEQsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDakQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUMxQyxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUE7QUFlckQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sV0FBWSxTQUFRLFNBQVM7SUFDeEIsV0FBVyxDQUFtQztJQUM5QyxhQUFhLENBQW1DO0lBQ2hELFdBQVcsQ0FBbUM7SUFDOUMsYUFBYSxDQUFtQztJQUNoRCxTQUFTLENBQW1DO0lBRTNDLE9BQU8sQ0FBVTtJQUNqQixLQUFLLENBQW9CO0lBRTFDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQTtRQUNwQyxJQUFJLENBQUMs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LGFBQWEsRUFBRSxjQUFjLE1BQU0sVUFBVSxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxlQUFlO1lBQzdGLG1CQUFtQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUM1QyxNQUFNLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLFNBQVMsQ0FBQztZQUNyRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU87WUFDckIsUUFBUSxFQUFFLEVBQUUsQ0FBQyxjQUFjO1lBQzNCLG1CQUFtQixFQUFFLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVztTQUN4RCxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJub2RlOnBhdGhcIlxuaW1wb3J0IHsgZmlsZVVSTFRvUGF0aCB9IGZyb20gXCJub2RlOnVybFwiXG5pbXBvcnQgeyBEdXJhdGlvbiwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgeyBDcm9zc1JlZ2lvblBhcmFtIH0gZnJvbSBcIi4vY3Jvc3MtcmVnaW9uLXBhcmFtc1wiXG5cbmNvbnN0IF9fZmlsZW5hbWUgPSBmaWxlVVJMVG9QYXRoKGltcG9ydC5tZXRhLnVybClcbmNvbnN0IF9fZGlybmFtZSA9IHBhdGguZGlybmFtZShfX2ZpbGVuYW1lKVxuY29uc3QgaXNTbmFwc2hvdCA9IHByb2Nlc3MuZW52LklTX1NOQVBTSE9UID09PSBcInRydWVcIlxuXG5pbnRlcmZhY2UgQXV0aExhbWJkYXNQcm9wcyB7XG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlZ2lvbnMgdGhpcyBjYW4gYmUgdXNlZCBpbi4gVGhpcyBzaG91bGQgY29udGFpbiB0aGUgcmVnaW9uXG4gICAqIHdoZXJlIHRoZSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvbiBpcyBkZXBsb3llZCAodGhlIENsb3VkRm9ybWF0aW9uIHN0YWNrKS5cbiAgICovXG4gIHJlZ2lvbnM6IHN0cmluZ1tdXG4gIC8qKlxuICAgKiBBIG5vbmNlIHZhbHVlIHRoYXQgY2FuIGJlIHVzZWQgdG8gZm9yY2UgbmV3IGxhbWJkYSBmdW5jdGlvbnNcbiAgICogdG8gYWxsb3cgbmV3IHZlcnNpb25zIHRvIGJlIGNyZWF0ZWQuXG4gICAqL1xuICBub25jZT86IHN0cmluZ1xufVxuXG4vKipcbiAqIExhbWJkYXMgdXNlZCBmb3IgQ2xvdWRGcm9udC4gTXVzdCBiZSBkZXBsb3llZCBpbiB1cy1lYXN0LTEuXG4gKlxuICogVGhpcyB3aWxsIHByb3Zpc2lvbiBTU00gUGFyYW1ldGVycyB0aGUgcmVnaW9uIHdoZXJlIHRoZSBDbG91ZEZyb250XG4gKiBkaXN0cmlidXRpb24gaXMgZGVwbG95ZWQgZnJvbSwgc28gdGhhdCBpdCBjYW4gYmUgdXNlZCBjcm9zcy1yZWdpb24uXG4gKi9cbmV4cG9ydCBjbGFzcyBBdXRoTGFtYmRhcyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBjaGVja0F1dGhGbjogQ3Jvc3NSZWdpb25QYXJhbTxsYW1iZGEuSVZlcnNpb24+XG4gIHB1YmxpYyByZWFkb25seSBodHRwSGVhZGVyc0ZuOiBDcm9zc1JlZ2lvblBhcmFtPGxhbWJkYS5JVmVyc2lvbj5cbiAgcHVibGljIHJlYWRvbmx5IHBhcnNlQXV0aEZuOiBDcm9zc1JlZ2lvblBhcmFtPGxhbWJkYS5JVmVyc2lvbj5cbiAgcHVibGljIHJlYWRvbmx5IHJlZnJlc2hBdXRoRm46IENyb3NzUmVnaW9uUGFyYW08bGFtYmRhLklWZXJzaW9uPlxuICBwdWJsaWMgcmVhZG9ubHkgc2lnbk91dEZuOiBDcm9zc1JlZ2lvblBhcmFtPGxhbWJkYS5JVmVyc2lvbj5cblxuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lvbnM6IHN0cmluZ1tdXG4gIHByaXZhdGUgcmVhZG9ubHkgbm9uY2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBBdXRoTGFtYmRhc1Byb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgcmVnaW9uID0gU3RhY2sub2YodGhpcykucmVnaW9uXG4gICAgdGhpcy5yZWdpb25zID0gcHJvcHMucmVnaW9uc1xuXG4gICAgdGhpcy5ub25jZSA9IHByb3BzLm5vbmNlXG5cbiAgICBpZiAocmVnaW9uICE9PSBcInVzLWVhc3QtMVwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWdpb24gbXVzdCBiZSB1cy1lYXN0LTEgZHVlIHRvIExhbWJkYUBlZGdlXCIpXG4gICAgfVxuXG4gICAgY29uc3Qgcm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIlNlcnZpY2VSb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5Db21wb3NpdGVQcmluY2lwYWwoXG4gICAgICAgIG5ldyBpYW0uU2VydmljZVByaW5jaXBhbChcImxhbWJkYS5hbWF6b25hd3MuY29tXCIpLFxuICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJlZGdlbGFtYmRhLmFtYXpvbmF3cy5jb21cIiksXG4gICAgICApLFxuICAgICAgbWFuYWdlZFBvbGljaWVzOiBbXG4gICAgICAgIGlhbS5NYW5hZ2VkUG9saWN5LmZyb21Bd3NNYW5hZ2VkUG9saWN5TmFtZShcbiAgICAgICAgICBcInNlcnZpY2Utcm9sZS9BV1NMYW1iZGFCYXNpY0V4ZWN1dGlvblJvbGVcIixcbiAgICAgICAgKSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIHRoaXMuY2hlY2tBdXRoRm4gPSB0aGlzLmFkZEZ1bmN0aW9uKFwiQ2hlY2tBdXRoRnVuY3Rpb25cIiwgXCJjaGVjay1hdXRoXCIsIHJvbGUpXG4gICAgdGhpcy5odHRwSGVhZGVyc0ZuID0gdGhpcy5hZGRGdW5jdGlvbihcbiAgICAgIFwiSHR0cEhlYWRlcnNGdW5jdGlvblwiLFxuICAgICAgXCJodHRwLWhlYWRlcnNcIixcbiAgICAgIHJvbGUsXG4gICAgKVxuICAgIHRoaXMucGFyc2VBdXRoRm4gPSB0aGlzLmFkZEZ1bmN0aW9uKFwiUGFyc2VBdXRoRnVuY3Rpb25cIiwgXCJwYXJzZS1hdXRoXCIsIHJvbGUpXG4gICAgdGhpcy5yZWZyZXNoQXV0aEZuID0gdGhpcy5hZGRGdW5jdGlvbihcbiAgICAgIFwiUmVmcmVzaEF1dGhGdW5jdGlvblwiLFxuICAgICAgXCJyZWZyZXNoLWF1dGhcIixcbiAgICAgIHJvbGUsXG4gICAgKVxuICAgIHRoaXMuc2lnbk91dEZuID0gdGhpcy5hZGRGdW5jdGlvbihcIlNpZ25PdXRGdW5jdGlvblwiLCBcInNpZ24tb3V0XCIsIHJvbGUpXG4gIH1cblxuICBwcml2YXRlIGFkZEZ1bmN0aW9uKGlkOiBzdHJpbmcsIGFzc2V0TmFtZTogc3RyaW5nLCByb2xlOiBpYW0uSVJvbGUpIHtcbiAgICBjb25zdCByZWdpb24gPSBTdGFjay5vZih0aGlzKS5yZWdpb25cbiAgICBjb25zdCBzdGFja05hbWUgPSBTdGFjay5vZih0aGlzKS5zdGFja05hbWVcblxuICAgIGNvbnN0IGZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBpZCwge1xuICAgICAgY29kZTpcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09IFwidGVzdFwiXG4gICAgICAgICAgPyBsYW1iZGEuQ29kZS5mcm9tSW5saW5lKFwic25hcHNob3QtdmFsdWVcIilcbiAgICAgICAgICA6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCBgLi4vZGlzdC8ke2Fzc2V0TmFtZX1gKSksXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18yNF9YLFxuICAgICAgdGltZW91dDogRHVyYXRpb24uc2Vjb25kcyg1KSxcbiAgICAgIHJvbGUsXG4gICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgdGhpcy5ub25jZSA9PSBudWxsID8gdW5kZWZpbmVkIDogYE5vbmNlIHZhbHVlOiAke3RoaXMubm9uY2V9YCxcbiAgICB9KVxuXG4gICAgaWYgKHRoaXMubm9kZS5hZGRyID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcIm5vZGUuYWRkciBub3QgZm91bmQgLSBlbnN1cmUgYXdzLWNkayBpcyB1cC10by11cGRhdGVcIilcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IENyb3NzUmVnaW9uUGFyYW08bGFtYmRhLklWZXJzaW9uPih0aGlzLCBgJHtpZH1WZXJzaW9uUGFyYW1gLCB7XG4gICAgICBub25jZTogaXNTbmFwc2hvdCA/IFwic25hcHNob3RcIiA6IHVuZGVmaW5lZCxcbiAgICAgIHBhcmFtZXRlck5hbWU6IGAvY2YvcmVnaW9uLyR7cmVnaW9ufS9zdGFjay8ke3N0YWNrTmFtZX0vJHt0aGlzLm5vZGUuYWRkcn0tJHtpZH0tZnVuY3Rpb24tYXJuYCxcbiAgICAgIHJlZmVyZW5jZVRvUmVzb3VyY2U6IChzY29wZSwgaWQsIHJlZmVyZW5jZSkgPT5cbiAgICAgICAgbGFtYmRhLlZlcnNpb24uZnJvbVZlcnNpb25Bcm4oc2NvcGUsIGlkLCByZWZlcmVuY2UpLFxuICAgICAgcmVnaW9uczogdGhpcy5yZWdpb25zLFxuICAgICAgcmVzb3VyY2U6IGZuLmN1cnJlbnRWZXJzaW9uLFxuICAgICAgcmVzb3VyY2VUb1JlZmVyZW5jZTogKHJlc291cmNlKSA9PiByZXNvdXJjZS5mdW5jdGlvbkFybixcbiAgICB9KVxuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@liflig/cdk-cloudfront-auth",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.0",
|
|
4
4
|
"description": "CDK Constructs for adding authentication for a CloudFront Distribution",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"repository": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"prepare": "bun run build && bunx husky",
|
|
17
17
|
"semantic-release": "semantic-release",
|
|
18
18
|
"clean": "rm -rf dist lib",
|
|
19
|
-
"upgrade-deps": "
|
|
19
|
+
"upgrade-deps": "bun update"
|
|
20
20
|
},
|
|
21
21
|
"keywords": [
|
|
22
22
|
"cdk",
|
|
@@ -35,31 +35,30 @@
|
|
|
35
35
|
"provenance": true
|
|
36
36
|
},
|
|
37
37
|
"devDependencies": {
|
|
38
|
+
"@aws-sdk/client-lambda": "^3.1005.0",
|
|
38
39
|
"@biomejs/biome": "2.4.6",
|
|
39
|
-
"@commitlint/cli": "20.4.
|
|
40
|
-
"@commitlint/config-conventional": "20.4.
|
|
40
|
+
"@commitlint/cli": "20.4.4",
|
|
41
|
+
"@commitlint/config-conventional": "20.4.4",
|
|
42
|
+
"@types/adm-zip": "^0.5.7",
|
|
41
43
|
"@types/aws-lambda": "8.10.161",
|
|
42
44
|
"@types/jest": "30.0.0",
|
|
43
45
|
"@types/jsonwebtoken": "9.0.10",
|
|
44
46
|
"@types/node": "24.12.0",
|
|
45
|
-
"
|
|
47
|
+
"adm-zip": "^0.5.16",
|
|
48
|
+
"aws-cdk-lib": "2.243.0",
|
|
46
49
|
"axios": "1.13.6",
|
|
47
50
|
"constructs": "10.5.1",
|
|
48
51
|
"cookie": "1.1.1",
|
|
49
52
|
"husky": "9.1.7",
|
|
50
|
-
"jest": "30.
|
|
53
|
+
"jest": "30.3.0",
|
|
51
54
|
"jest-cdk-snapshot": "2.3.6",
|
|
52
55
|
"jsonwebtoken": "9.0.3",
|
|
53
56
|
"jwks-rsa": "3.2.2",
|
|
54
|
-
"npm-check-updates": "19.6.3",
|
|
55
57
|
"semantic-release": "25.0.3",
|
|
56
58
|
"ts-jest": "29.4.6",
|
|
57
59
|
"typescript": "5.9.3"
|
|
58
60
|
},
|
|
59
|
-
"dependencies": {
|
|
60
|
-
"@henrist/cdk-cross-region-params": "^2.0.1",
|
|
61
|
-
"@liflig/cdk-lambda-config": "1.7.36"
|
|
62
|
-
},
|
|
61
|
+
"dependencies": {},
|
|
63
62
|
"peerDependencies": {
|
|
64
63
|
"aws-cdk-lib": "^2.0.0"
|
|
65
64
|
},
|