@fjall/components-infrastructure 0.87.20 → 0.88.3
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/lib/app.d.ts +14 -18
- package/dist/lib/app.js +58 -41
- package/dist/lib/config/aws/accountId.js +1 -2
- package/dist/lib/config/aws/backupGlobalSettings.js +1 -2
- package/dist/lib/config/aws/costAllocationTags.js +3 -4
- package/dist/lib/config/aws/identityCenter.d.ts +4 -4
- package/dist/lib/config/aws/identityCenter.js +17 -63
- package/dist/lib/config/aws/identityCenterGroupMembership.js +27 -42
- package/dist/lib/config/aws/index.d.ts +0 -8
- package/dist/lib/config/aws/index.js +1 -9
- package/dist/lib/config/aws/ipamDelegateAdmin.js +1 -2
- package/dist/lib/config/aws/ipamPoolId.js +1 -2
- package/dist/lib/config/aws/organisationId.js +1 -2
- package/dist/lib/config/aws/organisationsAccess.js +1 -2
- package/dist/lib/config/aws/ramSharing.js +1 -2
- package/dist/lib/layers/layers/secrets-resolver/bin/resolve-secrets +30 -0
- package/dist/lib/layers/layers/secrets-resolver/bin/resolve-secrets.mjs +212 -0
- package/dist/lib/layers/secrets-resolver/bin/resolve-secrets +30 -0
- package/dist/lib/layers/secrets-resolver/bin/resolve-secrets.mjs +212 -0
- package/dist/lib/patterns/aws/account.d.ts +12 -0
- package/dist/lib/patterns/aws/account.js +73 -0
- package/dist/lib/patterns/aws/buildkite.js +1 -2
- package/dist/lib/patterns/aws/cdn.d.ts +5 -10
- package/dist/lib/patterns/aws/cdn.js +5 -13
- package/dist/lib/patterns/aws/compute.d.ts +20 -3
- package/dist/lib/patterns/aws/compute.js +29 -5
- package/dist/lib/patterns/aws/database.d.ts +3 -3
- package/dist/lib/patterns/aws/database.js +18 -15
- package/dist/lib/patterns/aws/index.d.ts +4 -3
- package/dist/lib/patterns/aws/index.js +6 -4
- package/dist/lib/patterns/aws/interfaces/index.d.ts +2 -1
- package/dist/lib/patterns/aws/interfaces/index.js +8 -5
- package/dist/lib/patterns/aws/interfaces/organisation.d.ts +22 -0
- package/dist/lib/patterns/aws/interfaces/organisation.js +28 -0
- package/dist/lib/patterns/aws/interfaces/pattern.d.ts +5 -5
- package/dist/lib/patterns/aws/interfaces/pattern.js +1 -1
- package/dist/lib/patterns/aws/interfaces/storage.d.ts +10 -120
- package/dist/lib/patterns/aws/interfaces/storage.js +6 -43
- package/dist/lib/patterns/aws/organisation.d.ts +38 -0
- package/dist/lib/patterns/aws/organisation.js +92 -0
- package/dist/lib/patterns/aws/organisationFactory.d.ts +20 -0
- package/dist/lib/patterns/aws/organisationFactory.js +24 -0
- package/dist/lib/patterns/aws/pattern.d.ts +1 -1
- package/dist/lib/patterns/aws/pattern.js +1 -1
- package/dist/lib/patterns/aws/payload.d.ts +6 -5
- package/dist/lib/patterns/aws/payload.js +92 -42
- package/dist/lib/patterns/aws/platform.d.ts +11 -0
- package/dist/lib/patterns/aws/platform.js +29 -0
- package/dist/lib/patterns/aws/storage.d.ts +40 -125
- package/dist/lib/patterns/aws/storage.js +63 -191
- package/dist/lib/resources/aws/compute/ec2.d.ts +1 -1
- package/dist/lib/resources/aws/compute/ec2.js +3 -4
- package/dist/lib/resources/aws/compute/ecs.d.ts +6 -9
- package/dist/lib/resources/aws/compute/ecs.js +58 -26
- package/dist/lib/resources/aws/compute/lambda.d.ts +14 -1
- package/dist/lib/resources/aws/compute/lambda.js +45 -13
- package/dist/lib/resources/aws/database/rdsAurora.d.ts +1 -0
- package/dist/lib/resources/aws/database/rdsAurora.js +16 -16
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +1 -0
- package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +14 -10
- package/dist/lib/resources/aws/database/rdsInstance.d.ts +5 -4
- package/dist/lib/resources/aws/database/rdsInstance.js +18 -7
- package/dist/lib/resources/aws/iam/identityCenter/assignment.d.ts +0 -2
- package/dist/lib/resources/aws/iam/identityCenter/assignment.js +9 -46
- package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +1 -2
- package/dist/lib/resources/aws/iam/identityCenter/group.d.ts +1 -3
- package/dist/lib/resources/aws/iam/identityCenter/group.js +7 -85
- package/dist/lib/resources/aws/iam/identityCenter/permissionSet.d.ts +1 -3
- package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +9 -96
- package/dist/lib/resources/aws/index.d.ts +1 -0
- package/dist/lib/resources/aws/index.js +2 -1
- package/dist/lib/resources/aws/logging/cloudTrail.js +7 -4
- package/dist/lib/resources/aws/networking/ipamPool.js +76 -5
- package/dist/lib/resources/aws/organisation/index.d.ts +4 -0
- package/dist/lib/resources/aws/organisation/index.js +10 -0
- package/dist/lib/resources/aws/organisation/organisation.d.ts +12 -0
- package/dist/lib/resources/aws/organisation/organisation.js +14 -0
- package/dist/lib/resources/aws/organisation/organisationAccount.d.ts +18 -0
- package/dist/lib/resources/aws/organisation/organisationAccount.js +31 -0
- package/dist/lib/resources/aws/organisation/organisationPolicy.d.ts +13 -0
- package/dist/lib/resources/aws/organisation/organisationPolicy.js +32 -0
- package/dist/lib/resources/aws/organisation/organisationalUnit.d.ts +10 -0
- package/dist/lib/resources/aws/organisation/organisationalUnit.js +9 -0
- package/dist/lib/resources/aws/secrets/kms.js +10 -7
- package/dist/lib/resources/aws/secrets/parameter.js +5 -4
- package/dist/lib/resources/aws/storage/ecr.d.ts +3 -1
- package/dist/lib/resources/aws/storage/ecr.js +3 -3
- package/dist/lib/resources/aws/storage/s3.d.ts +6 -39
- package/dist/lib/resources/aws/storage/s3.js +31 -34
- package/dist/lib/utils/capitaliseString.d.ts +12 -0
- package/dist/lib/utils/capitaliseString.js +30 -0
- package/dist/lib/utils/capitalizeString.d.ts +11 -0
- package/dist/lib/utils/capitalizeString.js +24 -1
- package/dist/lib/utils/getConfig.d.ts +5 -1
- package/dist/lib/utils/getConfig.js +9 -1
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.js +2 -1
- package/dist/lib/utils/resourceNaming.d.ts +22 -19
- package/dist/lib/utils/resourceNaming.js +39 -35
- package/package.json +5 -6
|
@@ -33,4 +33,4 @@ function isPattern(resource) {
|
|
|
33
33
|
"patternType" in resource &&
|
|
34
34
|
typeof resource.patternType === "string");
|
|
35
35
|
}
|
|
36
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvaW50ZXJmYWNlcy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBNGNILDRDQUVDO0FBS0QsOEJBT0M7QUFqQkQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFpQjtJQUNoRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxRQUFpQjtJQUN6QyxPQUFPLENBQ0wsUUFBUSxLQUFLLElBQUk7UUFDakIsT0FBTyxRQUFRLEtBQUssUUFBUTtRQUM1QixhQUFhLElBQUksUUFBUTtRQUN6QixPQUFRLFFBQXFCLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUtc2FmZSBwYXR0ZXJuIGludGVyZmFjZXMuXG4gKlxuICogVGhlc2UgaW50ZXJmYWNlcyBwcm92aWRlIGNvbXBpbGUtdGltZSB0eXBlIHNhZmV0eSBmb3IgcGF0dGVybiByZXNvdXJjZXMuXG4gKiBQYXR0ZXJucyBhcmUgaGlnaC1sZXZlbCBjb25zdHJ1Y3RzIHRoYXQgY29tcG9zZSBtdWx0aXBsZSBpbmZyYXN0cnVjdHVyZSByZXNvdXJjZXNcbiAqIGludG8gYSBjb2hlc2l2ZSwgb3BpbmlvbmF0ZWQgZGVwbG95bWVudCAoZS5nLiwgUGF5bG9hZCBDTVMsIE5leHQuanMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwYXlsb2FkID0gYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCIsXG4gKiAgIHNvdXJjZTogXCIuLi8uLlwiXG4gKiB9KSk7XG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqIHBheWxvYWQuZ2V0U2VydmVyKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIElDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyB0eXBlIENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7XG4gIHR5cGUgUmVsYXRpb25hbERhdGFiYXNlLFxuICB0eXBlIER5bmFtb0RCRGF0YWJhc2UsXG4gIHR5cGUgUHJveHlDb25maWcsXG4gIHR5cGUgUmVhZFJlcGxpY2FDb25maWcsXG4gIHR5cGUgQ3JlZGVudGlhbHNDb25maWcsXG4gIHR5cGUgRW5jcnlwdGlvbkNvbmZpZyxcbiAgdHlwZSBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnLFxuICB0eXBlIEF1cm9yYVdyaXRlckNvbmZpZyxcbiAgdHlwZSBBdXJvcmFSZWFkZXJzQ29uZmlnLFxuICB0eXBlIFBlcmZvcm1hbmNlSW5zaWdodHNDb25maWcsXG4gIHR5cGUgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFxufSBmcm9tIFwiLi4vZGF0YWJhc2UuanNcIjtcbmltcG9ydCB7IHR5cGUgTGFtYmRhQ29tcHV0ZSB9IGZyb20gXCIuLi9jb21wdXRlLmpzXCI7XG5pbXBvcnQgeyB0eXBlIFByaXZhdGVTdG9yYWdlIH0gZnJvbSBcIi4uL3N0b3JhZ2UuanNcIjtcbmltcG9ydCB7IHR5cGUgUXVldWVNZXNzYWdpbmcgfSBmcm9tIFwiLi4vbWVzc2FnaW5nLmpzXCI7XG5pbXBvcnQgeyB0eXBlIENkbiwgdHlwZSBTbWFydENkbkJlaGF2aW91ciB9IGZyb20gXCIuLi9jZG4uanNcIjtcblxuLy8gUmUtZXhwb3J0IGRhdGFiYXNlIHR5cGVzIGZvciBjb25zdW1lciBjb252ZW5pZW5jZVxuZXhwb3J0IHR5cGUge1xuICBQcm94eUNvbmZpZyxcbiAgUmVhZFJlcGxpY2FDb25maWcsXG4gIENyZWRlbnRpYWxzQ29uZmlnLFxuICBFbmNyeXB0aW9uQ29uZmlnLFxuICBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnLFxuICBBdXJvcmFXcml0ZXJDb25maWcsXG4gIEF1cm9yYVJlYWRlcnNDb25maWcsXG4gIFBlcmZvcm1hbmNlSW5zaWdodHNDb25maWcsXG4gIFBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2Rcbn07XG5cbi8qKlxuICogRnVsbCBkYXRhYmFzZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqIEV4dGVuZHMgdW5kZXJseWluZyBEYXRhYmFzZUZhY3RvcnkgcHJvcHMgd2l0aCBwYXR0ZXJuLXNwZWNpZmljIGRlZmF1bHRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNaW5pbWFsIC0gdXNlIGRlZmF1bHRzXG4gKiBkYXRhYmFzZTogeyB0eXBlOiBcIkluc3RhbmNlXCIgfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBQcm9kdWN0aW9uLXJlYWR5IEluc3RhbmNlXG4gKiBkYXRhYmFzZToge1xuICogICB0eXBlOiBcIkluc3RhbmNlXCIsXG4gKiAgIGluc3RhbmNlVHlwZTogXCJ0NGcubGFyZ2VcIixcbiAqICAgYWxsb2NhdGVkU3RvcmFnZTogNTAsXG4gKiAgIG11bHRpQXo6IHRydWUsXG4gKiAgIHBlcmZvcm1hbmNlSW5zaWdodHM6IHsgcmV0ZW50aW9uUGVyaW9kOiAzMSB9LFxuICogICBlbmNyeXB0aW9uOiB7IHN0b3JhZ2VLZXk6IHsgdXNlQ01LOiB0cnVlIH0gfVxuICogfVxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBBdXJvcmEgd2l0aCByZWFkZXJzXG4gKiBkYXRhYmFzZToge1xuICogICB0eXBlOiBcIkF1cm9yYVwiLFxuICogICByZWFkZXJzOiB7IGNvdW50OiAyIH0sXG4gKiAgIGFsbG93VnBjQWNjZXNzOiB0cnVlXG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZERhdGFiYXNlQ29uZmlnIHtcbiAgLy8gLS0tIEJhc2UgQ29uZmlndXJhdGlvbiAtLS1cblxuICAvKiogRGF0YWJhc2UgdHlwZTogXCJJbnN0YW5jZVwiIG9yIFwiQXVyb3JhXCIuIERlZmF1bHQ6IFwiSW5zdGFuY2VcIiAqL1xuICB0eXBlPzogXCJJbnN0YW5jZVwiIHwgXCJBdXJvcmFcIjtcbiAgLyoqIERhdGFiYXNlIG5hbWUuIERlZmF1bHQ6IGRlcml2ZWQgZnJvbSBwYXR0ZXJuIG5hbWUgKi9cbiAgZGF0YWJhc2VOYW1lPzogc3RyaW5nO1xuICAvKiogRGF0YWJhc2UgZW5naW5lLiBEZWZhdWx0OiBcInBvc3RncmVzcWxcIiAqL1xuICBkYXRhYmFzZUVuZ2luZT86IFwicG9zdGdyZXNxbFwiIHwgXCJteXNxbFwiO1xuXG4gIC8vIC0tLSBDb21tb24gQ29uZmlndXJhdGlvbiAtLS1cblxuICAvKiogRW5hYmxlIGRlbGV0aW9uIHByb3RlY3Rpb24uIERlZmF1bHQ6IHRydWUgKi9cbiAgZGVsZXRpb25Qcm90ZWN0aW9uPzogYm9vbGVhbjtcbiAgLyoqIEJhY2t1cCByZXRlbnRpb24gaW4gZGF5cyAoMS0zNSkuIERlZmF1bHQ6IDcgKi9cbiAgYmFja3VwUmV0ZW50aW9uPzogbnVtYmVyO1xuICAvKiogRGF0YWJhc2UgcG9ydC4gRGVmYXVsdDogZW5naW5lLXNwZWNpZmljICg1NDMyIGZvciBQb3N0Z3JlU1FMKSAqL1xuICBwb3J0PzogbnVtYmVyO1xuXG4gIC8vIC0tLSBQdWJsaWMgQWNjZXNzIChEZXZlbG9wbWVudCBVc2UpIC0tLVxuXG4gIC8qKiBNYWtlIGRhdGFiYXNlIHB1YmxpY2x5IGFjY2Vzc2libGUgKGZvciBsb2NhbCBkZXZlbG9wbWVudCkuIERlZmF1bHQ6IGZhbHNlICovXG4gIHB1YmxpY2x5QWNjZXNzaWJsZT86IGJvb2xlYW47XG4gIC8qKiBJUCBDSURSIHRvIGFsbG93IHdoZW4gcHVibGljbHkgYWNjZXNzaWJsZSAoZS5nLiwgXCIyMDMuMC4xMTMuMC8zMlwiKSAqL1xuICBhbGxvd2VkSXBDaWRyPzogc3RyaW5nO1xuXG4gIC8vIC0tLSBJbnN0YW5jZS1TcGVjaWZpYyBDb25maWd1cmF0aW9uIC0tLVxuXG4gIC8qKlxuICAgKiBJbnN0YW5jZSB0eXBlIGZvciBSRFMgSW5zdGFuY2UgZGF0YWJhc2VzLlxuICAgKiBFeGFtcGxlczogXCJ0NGcubWljcm9cIiwgXCJ0NGcuc21hbGxcIiwgXCJ0NGcubGFyZ2VcIiwgXCJyNmcubGFyZ2VcIlxuICAgKiBEZWZhdWx0OiBcInQ0Zy5zbWFsbFwiXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiSW5zdGFuY2VcIlxuICAgKi9cbiAgaW5zdGFuY2VUeXBlPzogc3RyaW5nO1xuICAvKipcbiAgICogQWxsb2NhdGVkIHN0b3JhZ2UgaW4gR0IgZm9yIFJEUyBJbnN0YW5jZS5cbiAgICogRGVmYXVsdDogMjBcbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJJbnN0YW5jZVwiXG4gICAqL1xuICBhbGxvY2F0ZWRTdG9yYWdlPzogbnVtYmVyO1xuICAvKipcbiAgICogRW5hYmxlIE11bHRpLUFaIGRlcGxveW1lbnQgZm9yIGhpZ2ggYXZhaWxhYmlsaXR5LlxuICAgKiBDcmVhdGVzIGEgc3RhbmRieSByZXBsaWNhIGluIGEgZGlmZmVyZW50IEFaLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIG11bHRpQXo/OiBib29sZWFuO1xuICAvKipcbiAgICogUmVhZCByZXBsaWNhIGNvbmZpZ3VyYXRpb24gZm9yIFJEUyBJbnN0YW5jZS5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJJbnN0YW5jZVwiXG4gICAqL1xuICByZWFkUmVwbGljYT86IFJlYWRSZXBsaWNhQ29uZmlnIHwgZmFsc2U7XG5cbiAgLy8gLS0tIEF1cm9yYS1TcGVjaWZpYyBDb25maWd1cmF0aW9uIC0tLVxuXG4gIC8qKlxuICAgKiBBdXJvcmEgd3JpdGVyIGluc3RhbmNlIGNvbmZpZ3VyYXRpb24uXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiQXVyb3JhXCJcbiAgICovXG4gIHdyaXRlcj86IEF1cm9yYVdyaXRlckNvbmZpZztcbiAgLyoqXG4gICAqIEF1cm9yYSByZWFkZXIgaW5zdGFuY2VzIGNvbmZpZ3VyYXRpb24uXG4gICAqIFNldCB0byBmYWxzZSB0byBleHBsaWNpdGx5IGRpc2FibGUgcmVhZGVycy5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgcmVhZGVycz86IEF1cm9yYVJlYWRlcnNDb25maWcgfCBmYWxzZTtcbiAgLyoqXG4gICAqIEFsbG93IGFjY2VzcyBmcm9tIFZQQyBDSURSIChhdm9pZHMgY3Jvc3Mtc3RhY2sgY3ljbGljIGRlcGVuZGVuY2llcykuXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiQXVyb3JhXCJcbiAgICovXG4gIGFsbG93VnBjQWNjZXNzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEVuaGFuY2VkIG1vbml0b3JpbmcgaW50ZXJ2YWwuXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiQXVyb3JhXCJcbiAgICovXG4gIG1vbml0b3JpbmdJbnRlcnZhbD86IER1cmF0aW9uO1xuICAvKipcbiAgICogUHJlZmVycmVkIG1haW50ZW5hbmNlIHdpbmRvdyAoZS5nLiwgXCJzdW46MDU6MDAtc3VuOjA2OjAwXCIpLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkF1cm9yYVwiXG4gICAqL1xuICBwcmVmZXJyZWRNYWludGVuYW5jZVdpbmRvdz86IHN0cmluZztcblxuICAvLyAtLS0gU2hhcmVkIEFkdmFuY2VkIENvbmZpZ3VyYXRpb24gLS0tXG5cbiAgLyoqXG4gICAqIFBlcmZvcm1hbmNlIEluc2lnaHRzIGNvbmZpZ3VyYXRpb24uXG4gICAqIFNldCB0byBmYWxzZSB0byBleHBsaWNpdGx5IGRpc2FibGUuXG4gICAqIEBleGFtcGxlIHsgcmV0ZW50aW9uUGVyaW9kOiAzMSB9XG4gICAqL1xuICBwZXJmb3JtYW5jZUluc2lnaHRzPzogUGVyZm9ybWFuY2VJbnNpZ2h0c0NvbmZpZyB8IGZhbHNlO1xuICAvKipcbiAgICogUkRTIFByb3h5IGNvbmZpZ3VyYXRpb24gZm9yIGNvbm5lY3Rpb24gcG9vbGluZy5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICogQGV4YW1wbGUgeyBtYXhDb25uZWN0aW9uczogMTAwIH1cbiAgICovXG4gIHByb3h5PzogUHJveHlDb25maWcgfCBmYWxzZTtcbiAgLyoqXG4gICAqIENyZWRlbnRpYWxzIGNvbmZpZ3VyYXRpb24gKHVzZXJuYW1lLCByb3RhdGlvbikuXG4gICAqL1xuICBjcmVkZW50aWFscz86IENyZWRlbnRpYWxzQ29uZmlnO1xuICAvKipcbiAgICogRW5jcnlwdGlvbiBjb25maWd1cmF0aW9uLlxuICAgKiBGb3IgSW5zdGFuY2U6IEVuY3J5cHRpb25Db25maWdcbiAgICogRm9yIEF1cm9yYTogQXVyb3JhRW5jcnlwdGlvbkNvbmZpZ1xuICAgKiBAZXhhbXBsZSB7IHN0b3JhZ2VLZXk6IHsgdXNlQ01LOiB0cnVlIH0gfVxuICAgKi9cbiAgZW5jcnlwdGlvbj86IEVuY3J5cHRpb25Db25maWcgfCBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnO1xuXG4gIC8vIC0tLSBTbmFwc2hvdCBSZXN0b3JlIC0tLVxuXG4gIC8qKiBBUk4gb3IgaWRlbnRpZmllciBvZiBzbmFwc2hvdCB0byByZXN0b3JlIGZyb20gKi9cbiAgc25hcHNob3RJZGVudGlmaWVyPzogc3RyaW5nO1xuICAvKiogVXNlcm5hbWUgZnJvbSB0aGUgc25hcHNob3QgKHJlcXVpcmVkIHdoZW4gcmVzdG9yaW5nKSAqL1xuICBzbmFwc2hvdFVzZXJuYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIExhbWJkYSBmdW5jdGlvbiBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJuIHN1Yi1mdW5jdGlvbnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIHNlcnZlcjogeyBtZW1vcnlTaXplOiAyMDQ4LCB0aW1lb3V0OiA2MCB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVybkxhbWJkYUNvbmZpZyB7XG4gIC8qKiBNZW1vcnkgc2l6ZSBpbiBNQi4gUmFuZ2U6IDEyOC0xMDI0MC4gKi9cbiAgbWVtb3J5U2l6ZT86IG51bWJlcjtcbiAgLyoqIFRpbWVvdXQgaW4gc2Vjb25kcy4gUmFuZ2U6IDEtOTAwLiAqL1xuICB0aW1lb3V0PzogbnVtYmVyO1xuICAvKiogRXBoZW1lcmFsIHN0b3JhZ2Ugc2l6ZSBpbiBNQi4gUmFuZ2U6IDUxMi0xMDI0MC4gRGVmYXVsdDogNTEyLiAqL1xuICBlcGhlbWVyYWxTdG9yYWdlU2l6ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBGdWxsIGNvbXB1dGUgY29uZmlndXJhdGlvbiBmb3IgcGF0dGVybnMuXG4gKiBBbGxvd3MgcGVyLWZ1bmN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGVhY2ggTGFtYmRhIGluIHRoZSBwYXR0ZXJuLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDb25maWd1cmUgaW5kaXZpZHVhbCBmdW5jdGlvbnNcbiAqIGNvbXB1dGU6IHtcbiAqICAgc2VydmVyOiB7IG1lbW9yeVNpemU6IDIwNDgsIHRpbWVvdXQ6IDYwIH0sXG4gKiAgIGltYWdlT3B0aW1pc2F0aW9uOiB7IG1lbW9yeVNpemU6IDIwNDggfSxcbiAqICAgcmV2YWxpZGF0aW9uOiB7IG1lbW9yeVNpemU6IDEwMjQsIHRpbWVvdXQ6IDYwMCB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZENvbXB1dGVDb25maWcge1xuICAvKipcbiAgICogU2VydmVyIExhbWJkYSBjb25maWd1cmF0aW9uLlxuICAgKiBIYW5kbGVzIG1haW4gYXBwbGljYXRpb24gcmVxdWVzdHMuXG4gICAqIERlZmF1bHRzOiBtZW1vcnlTaXplPTE1MzYsIHRpbWVvdXQ9MzBcbiAgICovXG4gIHNlcnZlcj86IFBhdHRlcm5MYW1iZGFDb25maWc7XG4gIC8qKlxuICAgKiBJbWFnZSBvcHRpbWlzYXRpb24gTGFtYmRhIGNvbmZpZ3VyYXRpb24uXG4gICAqIEhhbmRsZXMgTmV4dC5qcyBpbWFnZSBvcHRpbWl6YXRpb24uXG4gICAqIERlZmF1bHRzOiBtZW1vcnlTaXplPTE1MzYsIHRpbWVvdXQ9MzBcbiAgICovXG4gIGltYWdlT3B0aW1pc2F0aW9uPzogUGF0dGVybkxhbWJkYUNvbmZpZztcbiAgLyoqXG4gICAqIFJldmFsaWRhdGlvbiBMYW1iZGEgY29uZmlndXJhdGlvbi5cbiAgICogSGFuZGxlcyBJU1IgcmV2YWxpZGF0aW9uIGZyb20gU1FTIHF1ZXVlLlxuICAgKiBEZWZhdWx0czogbWVtb3J5U2l6ZT03NjgsIHRpbWVvdXQ9MzAwXG4gICAqL1xuICByZXZhbGlkYXRpb24/OiBQYXR0ZXJuTGFtYmRhQ29uZmlnO1xufVxuXG4vKipcbiAqIFMzIGJ1Y2tldCBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJuIHN1Yi1idWNrZXRzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnIHtcbiAgLyoqIEVuYWJsZSB2ZXJzaW9uaW5nLiBEZWZhdWx0OiBmYWxzZSAqL1xuICB2ZXJzaW9uZWQ/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEZ1bGwgc3RvcmFnZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqIEFsbG93cyBwZXItYnVja2V0IGNvbmZpZ3VyYXRpb24gZm9yIGVhY2ggUzMgYnVja2V0IGluIHRoZSBwYXR0ZXJuLlxuICpcbiAqIEBleGFtcGxlXG4gKiBzdG9yYWdlOiB7XG4gKiAgIGFzc2V0czogeyB2ZXJzaW9uZWQ6IHRydWUgfSxcbiAqICAgY2FjaGU6IHsgdmVyc2lvbmVkOiBmYWxzZSB9LFxuICogICBtZWRpYTogeyB2ZXJzaW9uZWQ6IHRydWUgfVxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWRTdG9yYWdlQ29uZmlnIHtcbiAgLyoqIEFzc2V0cyBidWNrZXQgKHN0YXRpYyBmaWxlcykgKi9cbiAgYXNzZXRzPzogUGF0dGVyblN0b3JhZ2VCdWNrZXRDb25maWc7XG4gIC8qKiBDYWNoZSBidWNrZXQgKElTUiBjYWNoZSkgKi9cbiAgY2FjaGU/OiBQYXR0ZXJuU3RvcmFnZUJ1Y2tldENvbmZpZztcbiAgLyoqIE1lZGlhIGJ1Y2tldCAodXBsb2FkcykgKi9cbiAgbWVkaWE/OiBQYXR0ZXJuU3RvcmFnZUJ1Y2tldENvbmZpZztcbn1cblxuLyoqXG4gKiBTUVMgcXVldWUgY29uZmlndXJhdGlvbiBmb3IgcGF0dGVybiBtZXNzYWdpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVyblF1ZXVlQ29uZmlnIHtcbiAgLyoqIFZpc2liaWxpdHkgdGltZW91dCBpbiBzZWNvbmRzLiBEZWZhdWx0OiBtYXRjaGVzIHJldmFsaWRhdGlvbiB0aW1lb3V0ICovXG4gIHZpc2liaWxpdHlUaW1lb3V0PzogbnVtYmVyO1xuICAvKiogTWVzc2FnZSByZXRlbnRpb24gcGVyaW9kIGluIHNlY29uZHMuIERlZmF1bHQ6IDM0NTYwMCAoNCBkYXlzKSAqL1xuICBtZXNzYWdlUmV0ZW50aW9uUGVyaW9kPzogbnVtYmVyO1xuICAvKiogTWF4aW11bSBtZXNzYWdlIHNpemUgaW4gYnl0ZXMuIERlZmF1bHQ6IDI2MjE0NCAoMjU2IEtCKSAqL1xuICBtYXhNZXNzYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqXG4gICAqIERlYWQgbGV0dGVyIHF1ZXVlIGNvbmZpZ3VyYXRpb24uXG4gICAqIFNldCB0byBmYWxzZSB0byBleHBsaWNpdGx5IGRpc2FibGUuXG4gICAqL1xuICBkZWFkTGV0dGVyUXVldWU/OlxuICAgIHwge1xuICAgICAgICBlbmFibGVkPzogYm9vbGVhbjtcbiAgICAgICAgbWF4UmVjZWl2ZUNvdW50PzogbnVtYmVyO1xuICAgICAgfVxuICAgIHwgZmFsc2U7XG59XG5cbi8qKlxuICogRnVsbCBtZXNzYWdpbmcgY29uZmlndXJhdGlvbiBmb3IgcGF0dGVybnMuXG4gKlxuICogQGV4YW1wbGVcbiAqIG1lc3NhZ2luZzoge1xuICogICByZXZhbGlkYXRpb25RdWV1ZToge1xuICogICAgIHZpc2liaWxpdHlUaW1lb3V0OiA2MDAsXG4gKiAgICAgZGVhZExldHRlclF1ZXVlOiB7IGVuYWJsZWQ6IHRydWUsIG1heFJlY2VpdmVDb3VudDogNSB9XG4gKiAgIH1cbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkTWVzc2FnaW5nQ29uZmlnIHtcbiAgLyoqIFJldmFsaWRhdGlvbiBxdWV1ZSBjb25maWd1cmF0aW9uICovXG4gIHJldmFsaWRhdGlvblF1ZXVlPzogUGF0dGVyblF1ZXVlQ29uZmlnO1xufVxuXG4vKipcbiAqIENETiBjb25maWd1cmF0aW9uIGZvciBQYXlsb2FkIHBhdHRlcm4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZENkbkNvbmZpZyB7XG4gIC8qKiBDdXN0b20gZG9tYWluIG5hbWVzIGZvciBDbG91ZEZyb250ICovXG4gIGRvbWFpbk5hbWVzPzogc3RyaW5nW107XG4gIC8qKiBBQ00gY2VydGlmaWNhdGUgZm9yIGN1c3RvbSBkb21haW5zIChtdXN0IGJlIGluIHVzLWVhc3QtMSkgKi9cbiAgY2VydGlmaWNhdGU/OiBJQ2VydGlmaWNhdGU7XG4gIC8qKiBBQ00gY2VydGlmaWNhdGUgQVJOIChhbHRlcm5hdGl2ZSB0byBjZXJ0aWZpY2F0ZSAtIG11c3QgYmUgaW4gdXMtZWFzdC0xKSAqL1xuICBjZXJ0aWZpY2F0ZUFybj86IHN0cmluZztcbiAgLyoqIEFkZGl0aW9uYWwgQ0ROIGJlaGF2aW91cnMgKi9cbiAgYmVoYXZpb3Vycz86IFNtYXJ0Q2RuQmVoYXZpb3VyW107XG59XG5cbi8qKlxuICogUGF5bG9hZCBwYXR0ZXJuIHByb3BzLlxuICpcbiAqIENvbmZpZ3VyZXMgYSBQYXlsb2FkIENNUyBkZXBsb3ltZW50IHdpdGggYWxsIHJlcXVpcmVkIGluZnJhc3RydWN0dXJlOlxuICogLSBSRFMgUG9zdGdyZVNRTCBkYXRhYmFzZSAoQXVyb3JhIG9yIEluc3RhbmNlKVxuICogLSBTMyBidWNrZXRzIChhc3NldHMsIGNhY2hlLCBtZWRpYSlcbiAqIC0gRHluYW1vREIgdGFibGUgKHRhZyBjYWNoZSlcbiAqIC0gU1FTIEZJRk8gcXVldWUgKHJldmFsaWRhdGlvbilcbiAqIC0gTGFtYmRhIGZ1bmN0aW9ucyAoc2VydmVyLCBpbWFnZSBvcHRpbWlzYXRpb24sIHJldmFsaWRhdGlvbilcbiAqIC0gQ2xvdWRGcm9udCBkaXN0cmlidXRpb25cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gTWluaW1hbCAtIHdvcmtzIG91dCBvZiBib3hcbiAqIGFwcC5hZGRQYXR0ZXJuKFBhdHRlcm5GYWN0b3J5LmJ1aWxkKFwiUGF5bG9hZEFwcFwiLCB7XG4gKiAgIHR5cGU6IFwicGF5bG9hZFwiLFxuICogICBuYW1lOiBcIm15LWNtc1wiXG4gKiB9KSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFdpdGggY3VzdG9tIGRvbWFpbiAoYXV0by1jcmVhdGVzIGNlcnRpZmljYXRlICsgRE5TKVxuICogYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCIsXG4gKiAgIGRvbWFpbjogXCJjbXMuZXhhbXBsZS5jb21cIlxuICogfSkpO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDdXN0b21pc2VkXG4gKiBhcHAuYWRkUGF0dGVybihQYXR0ZXJuRmFjdG9yeS5idWlsZChcIlBheWxvYWRBcHBcIiwge1xuICogICB0eXBlOiBcInBheWxvYWRcIixcbiAqICAgbmFtZTogXCJteS1jbXNcIixcbiAqICAgZGF0YWJhc2U6IHtcbiAqICAgICB0eXBlOiBcIkluc3RhbmNlXCIsXG4gKiAgICAgcHVibGljbHlBY2Nlc3NpYmxlOiB0cnVlXG4gKiAgIH0sXG4gKiAgIGNvbXB1dGU6IHtcbiAqICAgICBzZXJ2ZXI6IHsgbWVtb3J5U2l6ZTogMjA0OCB9XG4gKiAgIH1cbiAqIH0pKTtcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGF5bG9hZFByb3BzIHtcbiAgLyoqIFBhdHRlcm4gdHlwZSBkaXNjcmltaW5hdG9yICovXG4gIHR5cGU6IFwicGF5bG9hZFwiO1xuICAvKiogUGF0dGVybiBuYW1lICh1c2VkIGZvciByZXNvdXJjZSBuYW1pbmcpICovXG4gIG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogQ3VzdG9tIGRvbWFpbiBmb3IgdGhlIFBheWxvYWQgYXBwbGljYXRpb24uXG4gICAqIFdoZW4gcHJvdmlkZWQsIGF1dG9tYXRpY2FsbHk6XG4gICAqIC0gTG9va3MgdXAgdGhlIFJvdXRlNTMgaG9zdGVkIHpvbmVcbiAgICogLSBDcmVhdGVzIGFuIEFDTSBjZXJ0aWZpY2F0ZSB3aXRoIEROUyB2YWxpZGF0aW9uIChpbiB1cy1lYXN0LTEpXG4gICAqIC0gQ29uZmlndXJlcyBDbG91ZEZyb250IHdpdGggdGhlIGNlcnRpZmljYXRlXG4gICAqIC0gQ3JlYXRlcyBhbiBBIHJlY29yZCAoYWxpYXMpIHBvaW50aW5nIHRvIENsb3VkRnJvbnRcbiAgICpcbiAgICogUmVxdWlyZXM6IEEgUm91dGU1MyBob3N0ZWQgem9uZSBmb3IgdGhlIGRvbWFpbiBtdXN0IGV4aXN0LlxuICAgKlxuICAgKiBAZXhhbXBsZSBcImNtcy5leGFtcGxlLmNvbVwiXG4gICAqL1xuICBkb21haW4/OiBzdHJpbmc7XG5cbiAgLyoqIERhdGFiYXNlIGNvbmZpZ3VyYXRpb24gKi9cbiAgZGF0YWJhc2U/OiBQYXlsb2FkRGF0YWJhc2VDb25maWc7XG4gIC8qKiBDb21wdXRlIChMYW1iZGEpIGNvbmZpZ3VyYXRpb24gKi9cbiAgY29tcHV0ZT86IFBheWxvYWRDb21wdXRlQ29uZmlnO1xuICAvKiogU3RvcmFnZSAoUzMpIGNvbmZpZ3VyYXRpb24gKi9cbiAgc3RvcmFnZT86IFBheWxvYWRTdG9yYWdlQ29uZmlnO1xuICAvKiogTWVzc2FnaW5nIChTUVMpIGNvbmZpZ3VyYXRpb24gKi9cbiAgbWVzc2FnaW5nPzogUGF5bG9hZE1lc3NhZ2luZ0NvbmZpZztcbiAgLyoqIENETiAoQ2xvdWRGcm9udCkgY29uZmlndXJhdGlvbiAtIGZvciBhZHZhbmNlZCB1c2UuIFVzZSBgZG9tYWluYCBmb3Igc2ltcGxlIHNldHVwLiAqL1xuICBjZG4/OiBQYXlsb2FkQ2RuQ29uZmlnO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyBmb3Igc2VydmVyIExhbWJkYSAqL1xuICBlbnZpcm9ubWVudD86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG59XG5cbi8qKlxuICogVW5pb24gb2YgYWxsIHBhdHRlcm4gcHJvcHMuXG4gKiBFeHRlbmQgdGhpcyB3aGVuIGFkZGluZyBuZXcgcGF0dGVybnMgKGUuZy4sIElOZXh0anNQcm9wcywgSVJlbWl4UHJvcHMpLlxuICovXG5leHBvcnQgdHlwZSBJUGF0dGVyblByb3BzID0gSVBheWxvYWRQcm9wczsgLy8gfCBJTmV4dGpzUHJvcHMgfCBJUmVtaXhQcm9wcyBpbiBmdXR1cmVcblxuLyoqXG4gKiBQYXR0ZXJuIHR5cGUgZGlzY3JpbWluYXRvci5cbiAqL1xuZXhwb3J0IHR5cGUgUGF0dGVyblR5cGUgPSBcInBheWxvYWRcIjsgLy8gfCBcIm5leHRqc1wiIHwgXCJyZW1peFwiIGluIGZ1dHVyZVxuXG4vKipcbiAqIEJhc2UgcGF0dGVybiBpbnRlcmZhY2UuXG4gKiBBbGwgcGF0dGVybnMgaW1wbGVtZW50IHRoaXMgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXR0ZXJuIHtcbiAgLyoqIFRoZSB0eXBlIG9mIHBhdHRlcm4uIFVzZWQgZm9yIHJ1bnRpbWUgdHlwZSBuYXJyb3dpbmcuICovXG4gIHJlYWRvbmx5IHBhdHRlcm5UeXBlOiBQYXR0ZXJuVHlwZTtcblxuICAvKiogVGhlIHVuZGVybHlpbmcgQ0RLIGNvbnN0cnVjdCBub2RlLiAqL1xuICByZWFkb25seSBub2RlOiBDb25zdHJ1Y3RbXCJub2RlXCJdO1xufVxuXG4vKipcbiAqIFBheWxvYWQgcGF0dGVybiBpbnRlcmZhY2UuXG4gKiBQcm92aWRlcyBhY2Nlc3MgdG8gYWxsIHVuZGVybHlpbmcgcmVzb3VyY2VzIGZvciBlc2NhcGUgaGF0Y2hlcy5cbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gRXNjYXBlIGhhdGNoZXMgLSBmdWxsIGFjY2VzcyB0byB1bmRlcmx5aW5nIHJlc291cmNlc1xuICogcGF5bG9hZC5nZXREYXRhYmFzZSgpLmdyYW50Q29ubmVjdChzb21lT3RoZXJMYW1iZGEpO1xuICogcGF5bG9hZC5nZXRTZXJ2ZXIoKS5nZXRMYW1iZGFGdW5jdGlvbigpLmFkZEVudmlyb25tZW50KFwiQ1VTVE9NX1ZBUlwiLCBcInZhbHVlXCIpO1xuICogcGF5bG9hZC5nZXRDZG4oKS5nZXREaXN0cmlidXRpb24oKS5hZGRCZWhhdmlvcihcIi9jdXN0b20vKlwiLCBjdXN0b21PcmlnaW4pO1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXlsb2FkIGV4dGVuZHMgSVBhdHRlcm4ge1xuICByZWFkb25seSBwYXR0ZXJuVHlwZTogXCJwYXlsb2FkXCI7XG5cbiAgLyoqIEdldCB0aGUgUG9zdGdyZVNRTCBkYXRhYmFzZSAoQXVyb3JhIG9yIEluc3RhbmNlKSAqL1xuICBnZXREYXRhYmFzZSgpOiBSZWxhdGlvbmFsRGF0YWJhc2U7XG5cbiAgLyoqIEdldCB0aGUgU2VydmVyIExhbWJkYSBmdW5jdGlvbiAqL1xuICBnZXRTZXJ2ZXIoKTogTGFtYmRhQ29tcHV0ZTtcblxuICAvKiogR2V0IHRoZSBJbWFnZSBPcHRpbWlzYXRpb24gTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldEltYWdlT3B0aW1pc2F0aW9uKCk6IExhbWJkYUNvbXB1dGU7XG5cbiAgLyoqIEdldCB0aGUgUmV2YWxpZGF0aW9uIExhbWJkYSBmdW5jdGlvbiAqL1xuICBnZXRSZXZhbGlkYXRpb24oKTogTGFtYmRhQ29tcHV0ZTtcblxuICAvKiogR2V0IHRoZSBBc3NldHMgUzMgYnVja2V0IChzdGF0aWMgZmlsZXMpICovXG4gIGdldEFzc2V0c0J1Y2tldCgpOiBQcml2YXRlU3RvcmFnZTtcblxuICAvKiogR2V0IHRoZSBDYWNoZSBTMyBidWNrZXQgKElTUiBjYWNoZSkgKi9cbiAgZ2V0Q2FjaGVCdWNrZXQoKTogUHJpdmF0ZVN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgTWVkaWEgUzMgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBnZXRNZWRpYUJ1Y2tldCgpOiBQcml2YXRlU3RvcmFnZTtcblxuICAvKiogR2V0IHRoZSBUYWcgQ2FjaGUgRHluYW1vREIgdGFibGUgKi9cbiAgZ2V0VGFnQ2FjaGUoKTogRHluYW1vREJEYXRhYmFzZTtcblxuICAvKiogR2V0IHRoZSBSZXZhbGlkYXRpb24gU1FTIHF1ZXVlICovXG4gIGdldFJldmFsaWRhdGlvblF1ZXVlKCk6IFF1ZXVlTWVzc2FnaW5nO1xuXG4gIC8qKiBHZXQgdGhlIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uICovXG4gIGdldENkbigpOiBDZG47XG59XG5cbi8qKlxuICogVW5pb24gdHlwZSByZXByZXNlbnRpbmcgYW55IHBhdHRlcm4gaW50ZXJmYWNlLlxuICogVXNlIHdpdGggdHlwZSBndWFyZHMgZm9yIGdlbmVyaWMgaGFuZGxpbmcuXG4gKi9cbmV4cG9ydCB0eXBlIEFueVBhdHRlcm4gPSBJUGF5bG9hZDsgLy8gfCBJTmV4dGpzIHwgSVJlbWl4IGluIGZ1dHVyZVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSBwYXR0ZXJuIGlzIFBheWxvYWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BheWxvYWRQYXR0ZXJuKHBhdHRlcm46IElQYXR0ZXJuKTogcGF0dGVybiBpcyBJUGF5bG9hZCB7XG4gIHJldHVybiBwYXR0ZXJuLnBhdHRlcm5UeXBlID09PSBcInBheWxvYWRcIjtcbn1cblxuLyoqXG4gKiBUeXBlIGd1YXJkIHRvIGNoZWNrIGlmIGEgcmVzb3VyY2UgaXMgYW55IHBhdHRlcm4gdHlwZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGF0dGVybihyZXNvdXJjZTogdW5rbm93bik6IHJlc291cmNlIGlzIElQYXR0ZXJuIHtcbiAgcmV0dXJuIChcbiAgICByZXNvdXJjZSAhPT0gbnVsbCAmJlxuICAgIHR5cGVvZiByZXNvdXJjZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIFwicGF0dGVyblR5cGVcIiBpbiByZXNvdXJjZSAmJlxuICAgIHR5cGVvZiAocmVzb3VyY2UgYXMgSVBhdHRlcm4pLnBhdHRlcm5UeXBlID09PSBcInN0cmluZ1wiXG4gICk7XG59XG4iXX0=
|
|
36
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvaW50ZXJmYWNlcy9wYXR0ZXJuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7O0FBNGNILDRDQUVDO0FBS0QsOEJBT0M7QUFqQkQ7O0dBRUc7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxPQUFpQjtJQUNoRCxPQUFPLE9BQU8sQ0FBQyxXQUFXLEtBQUssU0FBUyxDQUFDO0FBQzNDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLFNBQVMsQ0FBQyxRQUFpQjtJQUN6QyxPQUFPLENBQ0wsUUFBUSxLQUFLLElBQUk7UUFDakIsT0FBTyxRQUFRLEtBQUssUUFBUTtRQUM1QixhQUFhLElBQUksUUFBUTtRQUN6QixPQUFRLFFBQXFCLENBQUMsV0FBVyxLQUFLLFFBQVEsQ0FDdkQsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFR5cGUtc2FmZSBwYXR0ZXJuIGludGVyZmFjZXMuXG4gKlxuICogVGhlc2UgaW50ZXJmYWNlcyBwcm92aWRlIGNvbXBpbGUtdGltZSB0eXBlIHNhZmV0eSBmb3IgcGF0dGVybiByZXNvdXJjZXMuXG4gKiBQYXR0ZXJucyBhcmUgaGlnaC1sZXZlbCBjb25zdHJ1Y3RzIHRoYXQgY29tcG9zZSBtdWx0aXBsZSBpbmZyYXN0cnVjdHVyZSByZXNvdXJjZXNcbiAqIGludG8gYSBjb2hlc2l2ZSwgb3BpbmlvbmF0ZWQgZGVwbG95bWVudCAoZS5nLiwgUGF5bG9hZCBDTVMsIE5leHQuanMpLlxuICpcbiAqIEBleGFtcGxlXG4gKiBjb25zdCBwYXlsb2FkID0gYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCIsXG4gKiAgIHNvdXJjZTogXCIuLi8uLlwiXG4gKiB9KSk7XG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqIHBheWxvYWQuZ2V0U2VydmVyKCk7IC8vIOKckyBBdmFpbGFibGUgb24gSVBheWxvYWRcbiAqL1xuXG5pbXBvcnQgeyB0eXBlIElDZXJ0aWZpY2F0ZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCI7XG5pbXBvcnQgeyB0eXBlIER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyB0eXBlIENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5cbmltcG9ydCB7XG4gIHR5cGUgUmVsYXRpb25hbERhdGFiYXNlLFxuICB0eXBlIER5bmFtb0RCRGF0YWJhc2UsXG4gIHR5cGUgUHJveHlDb25maWcsXG4gIHR5cGUgUmVhZFJlcGxpY2FDb25maWcsXG4gIHR5cGUgQ3JlZGVudGlhbHNDb25maWcsXG4gIHR5cGUgRW5jcnlwdGlvbkNvbmZpZyxcbiAgdHlwZSBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnLFxuICB0eXBlIEF1cm9yYVdyaXRlckNvbmZpZyxcbiAgdHlwZSBBdXJvcmFSZWFkZXJzQ29uZmlnLFxuICB0eXBlIFBlcmZvcm1hbmNlSW5zaWdodHNDb25maWcsXG4gIHR5cGUgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFxufSBmcm9tIFwiLi4vZGF0YWJhc2UuanNcIjtcbmltcG9ydCB7IHR5cGUgTGFtYmRhQ29tcHV0ZSB9IGZyb20gXCIuLi9jb21wdXRlLmpzXCI7XG5pbXBvcnQgeyB0eXBlIFN0b3JhZ2UgfSBmcm9tIFwiLi4vc3RvcmFnZS5qc1wiO1xuaW1wb3J0IHsgdHlwZSBRdWV1ZU1lc3NhZ2luZyB9IGZyb20gXCIuLi9tZXNzYWdpbmcuanNcIjtcbmltcG9ydCB7IHR5cGUgQ2RuLCB0eXBlIFNtYXJ0Q2RuQmVoYXZpb3VyIH0gZnJvbSBcIi4uL2Nkbi5qc1wiO1xuXG4vLyBSZS1leHBvcnQgZGF0YWJhc2UgdHlwZXMgZm9yIGNvbnN1bWVyIGNvbnZlbmllbmNlXG5leHBvcnQgdHlwZSB7XG4gIFByb3h5Q29uZmlnLFxuICBSZWFkUmVwbGljYUNvbmZpZyxcbiAgQ3JlZGVudGlhbHNDb25maWcsXG4gIEVuY3J5cHRpb25Db25maWcsXG4gIEF1cm9yYUVuY3J5cHRpb25Db25maWcsXG4gIEF1cm9yYVdyaXRlckNvbmZpZyxcbiAgQXVyb3JhUmVhZGVyc0NvbmZpZyxcbiAgUGVyZm9ybWFuY2VJbnNpZ2h0c0NvbmZpZyxcbiAgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZFxufTtcblxuLyoqXG4gKiBGdWxsIGRhdGFiYXNlIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm5zLlxuICogRXh0ZW5kcyB1bmRlcmx5aW5nIERhdGFiYXNlRmFjdG9yeSBwcm9wcyB3aXRoIHBhdHRlcm4tc3BlY2lmaWMgZGVmYXVsdHMuXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIE1pbmltYWwgLSB1c2UgZGVmYXVsdHNcbiAqIGRhdGFiYXNlOiB7IHR5cGU6IFwiSW5zdGFuY2VcIiB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIFByb2R1Y3Rpb24tcmVhZHkgSW5zdGFuY2VcbiAqIGRhdGFiYXNlOiB7XG4gKiAgIHR5cGU6IFwiSW5zdGFuY2VcIixcbiAqICAgaW5zdGFuY2VUeXBlOiBcInQ0Zy5sYXJnZVwiLFxuICogICBhbGxvY2F0ZWRTdG9yYWdlOiA1MCxcbiAqICAgbXVsdGlBejogdHJ1ZSxcbiAqICAgcGVyZm9ybWFuY2VJbnNpZ2h0czogeyByZXRlbnRpb25QZXJpb2Q6IDMxIH0sXG4gKiAgIGVuY3J5cHRpb246IHsgc3RvcmFnZUtleTogeyB1c2VDTUs6IHRydWUgfSB9XG4gKiB9XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEF1cm9yYSB3aXRoIHJlYWRlcnNcbiAqIGRhdGFiYXNlOiB7XG4gKiAgIHR5cGU6IFwiQXVyb3JhXCIsXG4gKiAgIHJlYWRlcnM6IHsgY291bnQ6IDIgfSxcbiAqICAgYWxsb3dWcGNBY2Nlc3M6IHRydWVcbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkRGF0YWJhc2VDb25maWcge1xuICAvLyAtLS0gQmFzZSBDb25maWd1cmF0aW9uIC0tLVxuXG4gIC8qKiBEYXRhYmFzZSB0eXBlOiBcIkluc3RhbmNlXCIgb3IgXCJBdXJvcmFcIi4gRGVmYXVsdDogXCJJbnN0YW5jZVwiICovXG4gIHR5cGU/OiBcIkluc3RhbmNlXCIgfCBcIkF1cm9yYVwiO1xuICAvKiogRGF0YWJhc2UgbmFtZS4gRGVmYXVsdDogZGVyaXZlZCBmcm9tIHBhdHRlcm4gbmFtZSAqL1xuICBkYXRhYmFzZU5hbWU/OiBzdHJpbmc7XG4gIC8qKiBEYXRhYmFzZSBlbmdpbmUuIERlZmF1bHQ6IFwicG9zdGdyZXNxbFwiICovXG4gIGRhdGFiYXNlRW5naW5lPzogXCJwb3N0Z3Jlc3FsXCIgfCBcIm15c3FsXCI7XG5cbiAgLy8gLS0tIENvbW1vbiBDb25maWd1cmF0aW9uIC0tLVxuXG4gIC8qKiBFbmFibGUgZGVsZXRpb24gcHJvdGVjdGlvbi4gRGVmYXVsdDogdHJ1ZSAqL1xuICBkZWxldGlvblByb3RlY3Rpb24/OiBib29sZWFuO1xuICAvKiogQmFja3VwIHJldGVudGlvbiBpbiBkYXlzICgxLTM1KS4gRGVmYXVsdDogNyAqL1xuICBiYWNrdXBSZXRlbnRpb24/OiBudW1iZXI7XG4gIC8qKiBEYXRhYmFzZSBwb3J0LiBEZWZhdWx0OiBlbmdpbmUtc3BlY2lmaWMgKDU0MzIgZm9yIFBvc3RncmVTUUwpICovXG4gIHBvcnQ/OiBudW1iZXI7XG5cbiAgLy8gLS0tIFB1YmxpYyBBY2Nlc3MgKERldmVsb3BtZW50IFVzZSkgLS0tXG5cbiAgLyoqIE1ha2UgZGF0YWJhc2UgcHVibGljbHkgYWNjZXNzaWJsZSAoZm9yIGxvY2FsIGRldmVsb3BtZW50KS4gRGVmYXVsdDogZmFsc2UgKi9cbiAgcHVibGljbHlBY2Nlc3NpYmxlPzogYm9vbGVhbjtcbiAgLyoqIElQIENJRFIgdG8gYWxsb3cgd2hlbiBwdWJsaWNseSBhY2Nlc3NpYmxlIChlLmcuLCBcIjIwMy4wLjExMy4wLzMyXCIpICovXG4gIGFsbG93ZWRJcENpZHI/OiBzdHJpbmc7XG5cbiAgLy8gLS0tIEluc3RhbmNlLVNwZWNpZmljIENvbmZpZ3VyYXRpb24gLS0tXG5cbiAgLyoqXG4gICAqIEluc3RhbmNlIHR5cGUgZm9yIFJEUyBJbnN0YW5jZSBkYXRhYmFzZXMuXG4gICAqIEV4YW1wbGVzOiBcInQ0Zy5taWNyb1wiLCBcInQ0Zy5zbWFsbFwiLCBcInQ0Zy5sYXJnZVwiLCBcInI2Zy5sYXJnZVwiXG4gICAqIERlZmF1bHQ6IFwidDRnLnNtYWxsXCJcbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJJbnN0YW5jZVwiXG4gICAqL1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBBbGxvY2F0ZWQgc3RvcmFnZSBpbiBHQiBmb3IgUkRTIEluc3RhbmNlLlxuICAgKiBEZWZhdWx0OiAyMFxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIGFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBFbmFibGUgTXVsdGktQVogZGVwbG95bWVudCBmb3IgaGlnaCBhdmFpbGFiaWxpdHkuXG4gICAqIENyZWF0ZXMgYSBzdGFuZGJ5IHJlcGxpY2EgaW4gYSBkaWZmZXJlbnQgQVouXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiSW5zdGFuY2VcIlxuICAgKi9cbiAgbXVsdGlBej86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBSZWFkIHJlcGxpY2EgY29uZmlndXJhdGlvbiBmb3IgUkRTIEluc3RhbmNlLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkluc3RhbmNlXCJcbiAgICovXG4gIHJlYWRSZXBsaWNhPzogUmVhZFJlcGxpY2FDb25maWcgfCBmYWxzZTtcblxuICAvLyAtLS0gQXVyb3JhLVNwZWNpZmljIENvbmZpZ3VyYXRpb24gLS0tXG5cbiAgLyoqXG4gICAqIEF1cm9yYSB3cml0ZXIgaW5zdGFuY2UgY29uZmlndXJhdGlvbi5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgd3JpdGVyPzogQXVyb3JhV3JpdGVyQ29uZmlnO1xuICAvKipcbiAgICogQXVyb3JhIHJlYWRlciBpbnN0YW5jZXMgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZSByZWFkZXJzLlxuICAgKiBPbmx5IGFwcGxpZXMgd2hlbiB0eXBlOiBcIkF1cm9yYVwiXG4gICAqL1xuICByZWFkZXJzPzogQXVyb3JhUmVhZGVyc0NvbmZpZyB8IGZhbHNlO1xuICAvKipcbiAgICogQWxsb3cgYWNjZXNzIGZyb20gVlBDIENJRFIgKGF2b2lkcyBjcm9zcy1zdGFjayBjeWNsaWMgZGVwZW5kZW5jaWVzKS5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgYWxsb3dWcGNBY2Nlc3M/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5oYW5jZWQgbW9uaXRvcmluZyBpbnRlcnZhbC5cbiAgICogT25seSBhcHBsaWVzIHdoZW4gdHlwZTogXCJBdXJvcmFcIlxuICAgKi9cbiAgbW9uaXRvcmluZ0ludGVydmFsPzogRHVyYXRpb247XG4gIC8qKlxuICAgKiBQcmVmZXJyZWQgbWFpbnRlbmFuY2Ugd2luZG93IChlLmcuLCBcInN1bjowNTowMC1zdW46MDY6MDBcIikuXG4gICAqIE9ubHkgYXBwbGllcyB3aGVuIHR5cGU6IFwiQXVyb3JhXCJcbiAgICovXG4gIHByZWZlcnJlZE1haW50ZW5hbmNlV2luZG93Pzogc3RyaW5nO1xuXG4gIC8vIC0tLSBTaGFyZWQgQWR2YW5jZWQgQ29uZmlndXJhdGlvbiAtLS1cblxuICAvKipcbiAgICogUGVyZm9ybWFuY2UgSW5zaWdodHMgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICogQGV4YW1wbGUgeyByZXRlbnRpb25QZXJpb2Q6IDMxIH1cbiAgICovXG4gIHBlcmZvcm1hbmNlSW5zaWdodHM/OiBQZXJmb3JtYW5jZUluc2lnaHRzQ29uZmlnIHwgZmFsc2U7XG4gIC8qKlxuICAgKiBSRFMgUHJveHkgY29uZmlndXJhdGlvbiBmb3IgY29ubmVjdGlvbiBwb29saW5nLlxuICAgKiBTZXQgdG8gZmFsc2UgdG8gZXhwbGljaXRseSBkaXNhYmxlLlxuICAgKiBAZXhhbXBsZSB7IG1heENvbm5lY3Rpb25zOiAxMDAgfVxuICAgKi9cbiAgcHJveHk/OiBQcm94eUNvbmZpZyB8IGZhbHNlO1xuICAvKipcbiAgICogQ3JlZGVudGlhbHMgY29uZmlndXJhdGlvbiAodXNlcm5hbWUsIHJvdGF0aW9uKS5cbiAgICovXG4gIGNyZWRlbnRpYWxzPzogQ3JlZGVudGlhbHNDb25maWc7XG4gIC8qKlxuICAgKiBFbmNyeXB0aW9uIGNvbmZpZ3VyYXRpb24uXG4gICAqIEZvciBJbnN0YW5jZTogRW5jcnlwdGlvbkNvbmZpZ1xuICAgKiBGb3IgQXVyb3JhOiBBdXJvcmFFbmNyeXB0aW9uQ29uZmlnXG4gICAqIEBleGFtcGxlIHsgc3RvcmFnZUtleTogeyB1c2VDTUs6IHRydWUgfSB9XG4gICAqL1xuICBlbmNyeXB0aW9uPzogRW5jcnlwdGlvbkNvbmZpZyB8IEF1cm9yYUVuY3J5cHRpb25Db25maWc7XG5cbiAgLy8gLS0tIFNuYXBzaG90IFJlc3RvcmUgLS0tXG5cbiAgLyoqIEFSTiBvciBpZGVudGlmaWVyIG9mIHNuYXBzaG90IHRvIHJlc3RvcmUgZnJvbSAqL1xuICBzbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmc7XG4gIC8qKiBVc2VybmFtZSBmcm9tIHRoZSBzbmFwc2hvdCAocmVxdWlyZWQgd2hlbiByZXN0b3JpbmcpICovXG4gIHNuYXBzaG90VXNlcm5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogTGFtYmRhIGZ1bmN0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm4gc3ViLWZ1bmN0aW9ucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogc2VydmVyOiB7IG1lbW9yeVNpemU6IDIwNDgsIHRpbWVvdXQ6IDYwIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuTGFtYmRhQ29uZmlnIHtcbiAgLyoqIE1lbW9yeSBzaXplIGluIE1CLiBSYW5nZTogMTI4LTEwMjQwLiAqL1xuICBtZW1vcnlTaXplPzogbnVtYmVyO1xuICAvKiogVGltZW91dCBpbiBzZWNvbmRzLiBSYW5nZTogMS05MDAuICovXG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBFcGhlbWVyYWwgc3RvcmFnZSBzaXplIGluIE1CLiBSYW5nZTogNTEyLTEwMjQwLiBEZWZhdWx0OiA1MTIuICovXG4gIGVwaGVtZXJhbFN0b3JhZ2VTaXplPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEZ1bGwgY29tcHV0ZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqIEFsbG93cyBwZXItZnVuY3Rpb24gY29uZmlndXJhdGlvbiBmb3IgZWFjaCBMYW1iZGEgaW4gdGhlIHBhdHRlcm4uXG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIENvbmZpZ3VyZSBpbmRpdmlkdWFsIGZ1bmN0aW9uc1xuICogY29tcHV0ZToge1xuICogICBzZXJ2ZXI6IHsgbWVtb3J5U2l6ZTogMjA0OCwgdGltZW91dDogNjAgfSxcbiAqICAgaW1hZ2VPcHRpbWlzYXRpb246IHsgbWVtb3J5U2l6ZTogMjA0OCB9LFxuICogICByZXZhbGlkYXRpb246IHsgbWVtb3J5U2l6ZTogMTAyNCwgdGltZW91dDogNjAwIH1cbiAqIH1cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkQ29tcHV0ZUNvbmZpZyB7XG4gIC8qKlxuICAgKiBTZXJ2ZXIgTGFtYmRhIGNvbmZpZ3VyYXRpb24uXG4gICAqIEhhbmRsZXMgbWFpbiBhcHBsaWNhdGlvbiByZXF1ZXN0cy5cbiAgICogRGVmYXVsdHM6IG1lbW9yeVNpemU9MTUzNiwgdGltZW91dD0zMFxuICAgKi9cbiAgc2VydmVyPzogUGF0dGVybkxhbWJkYUNvbmZpZztcbiAgLyoqXG4gICAqIEltYWdlIG9wdGltaXNhdGlvbiBMYW1iZGEgY29uZmlndXJhdGlvbi5cbiAgICogSGFuZGxlcyBOZXh0LmpzIGltYWdlIG9wdGltaXNhdGlvbi5cbiAgICogRGVmYXVsdHM6IG1lbW9yeVNpemU9MTUzNiwgdGltZW91dD0zMFxuICAgKi9cbiAgaW1hZ2VPcHRpbWlzYXRpb24/OiBQYXR0ZXJuTGFtYmRhQ29uZmlnO1xuICAvKipcbiAgICogUmV2YWxpZGF0aW9uIExhbWJkYSBjb25maWd1cmF0aW9uLlxuICAgKiBIYW5kbGVzIElTUiByZXZhbGlkYXRpb24gZnJvbSBTUVMgcXVldWUuXG4gICAqIERlZmF1bHRzOiBtZW1vcnlTaXplPTc2OCwgdGltZW91dD0zMDBcbiAgICovXG4gIHJldmFsaWRhdGlvbj86IFBhdHRlcm5MYW1iZGFDb25maWc7XG59XG5cbi8qKlxuICogUzMgYnVja2V0IGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm4gc3ViLWJ1Y2tldHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF0dGVyblN0b3JhZ2VCdWNrZXRDb25maWcge1xuICAvKiogRW5hYmxlIHZlcnNpb25pbmcuIERlZmF1bHQ6IGZhbHNlICovXG4gIHZlcnNpb25lZD86IGJvb2xlYW47XG59XG5cbi8qKlxuICogRnVsbCBzdG9yYWdlIGNvbmZpZ3VyYXRpb24gZm9yIHBhdHRlcm5zLlxuICogQWxsb3dzIHBlci1idWNrZXQgY29uZmlndXJhdGlvbiBmb3IgZWFjaCBTMyBidWNrZXQgaW4gdGhlIHBhdHRlcm4uXG4gKlxuICogQGV4YW1wbGVcbiAqIHN0b3JhZ2U6IHtcbiAqICAgYXNzZXRzOiB7IHZlcnNpb25lZDogdHJ1ZSB9LFxuICogICBjYWNoZTogeyB2ZXJzaW9uZWQ6IGZhbHNlIH0sXG4gKiAgIG1lZGlhOiB7IHZlcnNpb25lZDogdHJ1ZSB9XG4gKiB9XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZFN0b3JhZ2VDb25maWcge1xuICAvKiogQXNzZXRzIGJ1Y2tldCAoc3RhdGljIGZpbGVzKSAqL1xuICBhc3NldHM/OiBQYXR0ZXJuU3RvcmFnZUJ1Y2tldENvbmZpZztcbiAgLyoqIENhY2hlIGJ1Y2tldCAoSVNSIGNhY2hlKSAqL1xuICBjYWNoZT86IFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnO1xuICAvKiogTWVkaWEgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBtZWRpYT86IFBhdHRlcm5TdG9yYWdlQnVja2V0Q29uZmlnO1xufVxuXG4vKipcbiAqIFNRUyBxdWV1ZSBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJuIG1lc3NhZ2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXR0ZXJuUXVldWVDb25maWcge1xuICAvKiogVmlzaWJpbGl0eSB0aW1lb3V0IGluIHNlY29uZHMuIERlZmF1bHQ6IG1hdGNoZXMgcmV2YWxpZGF0aW9uIHRpbWVvdXQgKi9cbiAgdmlzaWJpbGl0eVRpbWVvdXQ/OiBudW1iZXI7XG4gIC8qKiBNZXNzYWdlIHJldGVudGlvbiBwZXJpb2QgaW4gc2Vjb25kcy4gRGVmYXVsdDogMzQ1NjAwICg0IGRheXMpICovXG4gIG1lc3NhZ2VSZXRlbnRpb25QZXJpb2Q/OiBudW1iZXI7XG4gIC8qKiBNYXhpbXVtIG1lc3NhZ2Ugc2l6ZSBpbiBieXRlcy4gRGVmYXVsdDogMjYyMTQ0ICgyNTYgS0IpICovXG4gIG1heE1lc3NhZ2VTaXplPzogbnVtYmVyO1xuICAvKipcbiAgICogRGVhZCBsZXR0ZXIgcXVldWUgY29uZmlndXJhdGlvbi5cbiAgICogU2V0IHRvIGZhbHNlIHRvIGV4cGxpY2l0bHkgZGlzYWJsZS5cbiAgICovXG4gIGRlYWRMZXR0ZXJRdWV1ZT86XG4gICAgfCB7XG4gICAgICAgIGVuYWJsZWQ/OiBib29sZWFuO1xuICAgICAgICBtYXhSZWNlaXZlQ291bnQ/OiBudW1iZXI7XG4gICAgICB9XG4gICAgfCBmYWxzZTtcbn1cblxuLyoqXG4gKiBGdWxsIG1lc3NhZ2luZyBjb25maWd1cmF0aW9uIGZvciBwYXR0ZXJucy5cbiAqXG4gKiBAZXhhbXBsZVxuICogbWVzc2FnaW5nOiB7XG4gKiAgIHJldmFsaWRhdGlvblF1ZXVlOiB7XG4gKiAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IDYwMCxcbiAqICAgICBkZWFkTGV0dGVyUXVldWU6IHsgZW5hYmxlZDogdHJ1ZSwgbWF4UmVjZWl2ZUNvdW50OiA1IH1cbiAqICAgfVxuICogfVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBheWxvYWRNZXNzYWdpbmdDb25maWcge1xuICAvKiogUmV2YWxpZGF0aW9uIHF1ZXVlIGNvbmZpZ3VyYXRpb24gKi9cbiAgcmV2YWxpZGF0aW9uUXVldWU/OiBQYXR0ZXJuUXVldWVDb25maWc7XG59XG5cbi8qKlxuICogQ0ROIGNvbmZpZ3VyYXRpb24gZm9yIFBheWxvYWQgcGF0dGVybi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkQ2RuQ29uZmlnIHtcbiAgLyoqIEN1c3RvbSBkb21haW4gbmFtZXMgZm9yIENsb3VkRnJvbnQgKi9cbiAgZG9tYWluTmFtZXM/OiBzdHJpbmdbXTtcbiAgLyoqIEFDTSBjZXJ0aWZpY2F0ZSBmb3IgY3VzdG9tIGRvbWFpbnMgKG11c3QgYmUgaW4gdXMtZWFzdC0xKSAqL1xuICBjZXJ0aWZpY2F0ZT86IElDZXJ0aWZpY2F0ZTtcbiAgLyoqIEFDTSBjZXJ0aWZpY2F0ZSBBUk4gKGFsdGVybmF0aXZlIHRvIGNlcnRpZmljYXRlIC0gbXVzdCBiZSBpbiB1cy1lYXN0LTEpICovXG4gIGNlcnRpZmljYXRlQXJuPzogc3RyaW5nO1xuICAvKiogQWRkaXRpb25hbCBDRE4gYmVoYXZpb3VycyAqL1xuICBiZWhhdmlvdXJzPzogU21hcnRDZG5CZWhhdmlvdXJbXTtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIHBhdHRlcm4gcHJvcHMuXG4gKlxuICogQ29uZmlndXJlcyBhIFBheWxvYWQgQ01TIGRlcGxveW1lbnQgd2l0aCBhbGwgcmVxdWlyZWQgaW5mcmFzdHJ1Y3R1cmU6XG4gKiAtIFJEUyBQb3N0Z3JlU1FMIGRhdGFiYXNlIChBdXJvcmEgb3IgSW5zdGFuY2UpXG4gKiAtIFMzIGJ1Y2tldHMgKGFzc2V0cywgY2FjaGUsIG1lZGlhKVxuICogLSBEeW5hbW9EQiB0YWJsZSAodGFnIGNhY2hlKVxuICogLSBTUVMgRklGTyBxdWV1ZSAocmV2YWxpZGF0aW9uKVxuICogLSBMYW1iZGEgZnVuY3Rpb25zIChzZXJ2ZXIsIGltYWdlIG9wdGltaXNhdGlvbiwgcmV2YWxpZGF0aW9uKVxuICogLSBDbG91ZEZyb250IGRpc3RyaWJ1dGlvblxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNaW5pbWFsIC0gd29ya3Mgb3V0IG9mIGJveFxuICogYXBwLmFkZFBhdHRlcm4oUGF0dGVybkZhY3RvcnkuYnVpbGQoXCJQYXlsb2FkQXBwXCIsIHtcbiAqICAgdHlwZTogXCJwYXlsb2FkXCIsXG4gKiAgIG5hbWU6IFwibXktY21zXCJcbiAqIH0pKTtcbiAqXG4gKiBAZXhhbXBsZVxuICogLy8gV2l0aCBjdXN0b20gZG9tYWluIChhdXRvLWNyZWF0ZXMgY2VydGlmaWNhdGUgKyBETlMpXG4gKiBhcHAuYWRkUGF0dGVybihQYXR0ZXJuRmFjdG9yeS5idWlsZChcIlBheWxvYWRBcHBcIiwge1xuICogICB0eXBlOiBcInBheWxvYWRcIixcbiAqICAgbmFtZTogXCJteS1jbXNcIixcbiAqICAgZG9tYWluOiBcImNtcy5leGFtcGxlLmNvbVwiXG4gKiB9KSk7XG4gKlxuICogQGV4YW1wbGVcbiAqIC8vIEN1c3RvbWlzZWRcbiAqIGFwcC5hZGRQYXR0ZXJuKFBhdHRlcm5GYWN0b3J5LmJ1aWxkKFwiUGF5bG9hZEFwcFwiLCB7XG4gKiAgIHR5cGU6IFwicGF5bG9hZFwiLFxuICogICBuYW1lOiBcIm15LWNtc1wiLFxuICogICBkYXRhYmFzZToge1xuICogICAgIHR5cGU6IFwiSW5zdGFuY2VcIixcbiAqICAgICBwdWJsaWNseUFjY2Vzc2libGU6IHRydWVcbiAqICAgfSxcbiAqICAgY29tcHV0ZToge1xuICogICAgIHNlcnZlcjogeyBtZW1vcnlTaXplOiAyMDQ4IH1cbiAqICAgfVxuICogfSkpO1xuICovXG5leHBvcnQgaW50ZXJmYWNlIElQYXlsb2FkUHJvcHMge1xuICAvKiogUGF0dGVybiB0eXBlIGRpc2NyaW1pbmF0b3IgKi9cbiAgdHlwZTogXCJwYXlsb2FkXCI7XG4gIC8qKiBQYXR0ZXJuIG5hbWUgKHVzZWQgZm9yIHJlc291cmNlIG5hbWluZykgKi9cbiAgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gZG9tYWluIGZvciB0aGUgUGF5bG9hZCBhcHBsaWNhdGlvbi5cbiAgICogV2hlbiBwcm92aWRlZCwgYXV0b21hdGljYWxseTpcbiAgICogLSBMb29rcyB1cCB0aGUgUm91dGU1MyBob3N0ZWQgem9uZVxuICAgKiAtIENyZWF0ZXMgYW4gQUNNIGNlcnRpZmljYXRlIHdpdGggRE5TIHZhbGlkYXRpb24gKGluIHVzLWVhc3QtMSlcbiAgICogLSBDb25maWd1cmVzIENsb3VkRnJvbnQgd2l0aCB0aGUgY2VydGlmaWNhdGVcbiAgICogLSBDcmVhdGVzIGFuIEEgcmVjb3JkIChhbGlhcykgcG9pbnRpbmcgdG8gQ2xvdWRGcm9udFxuICAgKlxuICAgKiBSZXF1aXJlczogQSBSb3V0ZTUzIGhvc3RlZCB6b25lIGZvciB0aGUgZG9tYWluIG11c3QgZXhpc3QuXG4gICAqXG4gICAqIEBleGFtcGxlIFwiY21zLmV4YW1wbGUuY29tXCJcbiAgICovXG4gIGRvbWFpbj86IHN0cmluZztcblxuICAvKiogRGF0YWJhc2UgY29uZmlndXJhdGlvbiAqL1xuICBkYXRhYmFzZT86IFBheWxvYWREYXRhYmFzZUNvbmZpZztcbiAgLyoqIENvbXB1dGUgKExhbWJkYSkgY29uZmlndXJhdGlvbiAqL1xuICBjb21wdXRlPzogUGF5bG9hZENvbXB1dGVDb25maWc7XG4gIC8qKiBTdG9yYWdlIChTMykgY29uZmlndXJhdGlvbiAqL1xuICBzdG9yYWdlPzogUGF5bG9hZFN0b3JhZ2VDb25maWc7XG4gIC8qKiBNZXNzYWdpbmcgKFNRUykgY29uZmlndXJhdGlvbiAqL1xuICBtZXNzYWdpbmc/OiBQYXlsb2FkTWVzc2FnaW5nQ29uZmlnO1xuICAvKiogQ0ROIChDbG91ZEZyb250KSBjb25maWd1cmF0aW9uIC0gZm9yIGFkdmFuY2VkIHVzZS4gVXNlIGBkb21haW5gIGZvciBzaW1wbGUgc2V0dXAuICovXG4gIGNkbj86IFBheWxvYWRDZG5Db25maWc7XG5cbiAgLyoqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIGZvciBzZXJ2ZXIgTGFtYmRhICovXG4gIGVudmlyb25tZW50PzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBVbmlvbiBvZiBhbGwgcGF0dGVybiBwcm9wcy5cbiAqIEV4dGVuZCB0aGlzIHdoZW4gYWRkaW5nIG5ldyBwYXR0ZXJucyAoZS5nLiwgSU5leHRqc1Byb3BzLCBJUmVtaXhQcm9wcykuXG4gKi9cbmV4cG9ydCB0eXBlIElQYXR0ZXJuUHJvcHMgPSBJUGF5bG9hZFByb3BzOyAvLyB8IElOZXh0anNQcm9wcyB8IElSZW1peFByb3BzIGluIGZ1dHVyZVxuXG4vKipcbiAqIFBhdHRlcm4gdHlwZSBkaXNjcmltaW5hdG9yLlxuICovXG5leHBvcnQgdHlwZSBQYXR0ZXJuVHlwZSA9IFwicGF5bG9hZFwiOyAvLyB8IFwibmV4dGpzXCIgfCBcInJlbWl4XCIgaW4gZnV0dXJlXG5cbi8qKlxuICogQmFzZSBwYXR0ZXJuIGludGVyZmFjZS5cbiAqIEFsbCBwYXR0ZXJucyBpbXBsZW1lbnQgdGhpcyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBhdHRlcm4ge1xuICAvKiogVGhlIHR5cGUgb2YgcGF0dGVybi4gVXNlZCBmb3IgcnVudGltZSB0eXBlIG5hcnJvd2luZy4gKi9cbiAgcmVhZG9ubHkgcGF0dGVyblR5cGU6IFBhdHRlcm5UeXBlO1xuXG4gIC8qKiBUaGUgdW5kZXJseWluZyBDREsgY29uc3RydWN0IG5vZGUuICovXG4gIHJlYWRvbmx5IG5vZGU6IENvbnN0cnVjdFtcIm5vZGVcIl07XG59XG5cbi8qKlxuICogUGF5bG9hZCBwYXR0ZXJuIGludGVyZmFjZS5cbiAqIFByb3ZpZGVzIGFjY2VzcyB0byBhbGwgdW5kZXJseWluZyByZXNvdXJjZXMgZm9yIGVzY2FwZSBoYXRjaGVzLlxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBFc2NhcGUgaGF0Y2hlcyAtIGZ1bGwgYWNjZXNzIHRvIHVuZGVybHlpbmcgcmVzb3VyY2VzXG4gKiBwYXlsb2FkLmdldERhdGFiYXNlKCkuZ3JhbnRDb25uZWN0KHNvbWVPdGhlckxhbWJkYSk7XG4gKiBwYXlsb2FkLmdldFNlcnZlcigpLmdldExhbWJkYUZ1bmN0aW9uKCkuYWRkRW52aXJvbm1lbnQoXCJDVVNUT01fVkFSXCIsIFwidmFsdWVcIik7XG4gKiBwYXlsb2FkLmdldENkbigpLmdldERpc3RyaWJ1dGlvbigpLmFkZEJlaGF2aW9yKFwiL2N1c3RvbS8qXCIsIGN1c3RvbU9yaWdpbik7XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBheWxvYWQgZXh0ZW5kcyBJUGF0dGVybiB7XG4gIHJlYWRvbmx5IHBhdHRlcm5UeXBlOiBcInBheWxvYWRcIjtcblxuICAvKiogR2V0IHRoZSBQb3N0Z3JlU1FMIGRhdGFiYXNlIChBdXJvcmEgb3IgSW5zdGFuY2UpICovXG4gIGdldERhdGFiYXNlKCk6IFJlbGF0aW9uYWxEYXRhYmFzZTtcblxuICAvKiogR2V0IHRoZSBTZXJ2ZXIgTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldFNlcnZlcigpOiBMYW1iZGFDb21wdXRlO1xuXG4gIC8qKiBHZXQgdGhlIEltYWdlIE9wdGltaXNhdGlvbiBMYW1iZGEgZnVuY3Rpb24gKi9cbiAgZ2V0SW1hZ2VPcHRpbWlzYXRpb24oKTogTGFtYmRhQ29tcHV0ZTtcblxuICAvKiogR2V0IHRoZSBSZXZhbGlkYXRpb24gTGFtYmRhIGZ1bmN0aW9uICovXG4gIGdldFJldmFsaWRhdGlvbigpOiBMYW1iZGFDb21wdXRlO1xuXG4gIC8qKiBHZXQgdGhlIEFzc2V0cyBTMyBidWNrZXQgKHN0YXRpYyBmaWxlcykgKi9cbiAgZ2V0QXNzZXRzQnVja2V0KCk6IFN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgQ2FjaGUgUzMgYnVja2V0IChJU1IgY2FjaGUpICovXG4gIGdldENhY2hlQnVja2V0KCk6IFN0b3JhZ2U7XG5cbiAgLyoqIEdldCB0aGUgTWVkaWEgUzMgYnVja2V0ICh1cGxvYWRzKSAqL1xuICBnZXRNZWRpYUJ1Y2tldCgpOiBTdG9yYWdlO1xuXG4gIC8qKiBHZXQgdGhlIFRhZyBDYWNoZSBEeW5hbW9EQiB0YWJsZSAqL1xuICBnZXRUYWdDYWNoZSgpOiBEeW5hbW9EQkRhdGFiYXNlO1xuXG4gIC8qKiBHZXQgdGhlIFJldmFsaWRhdGlvbiBTUVMgcXVldWUgKi9cbiAgZ2V0UmV2YWxpZGF0aW9uUXVldWUoKTogUXVldWVNZXNzYWdpbmc7XG5cbiAgLyoqIEdldCB0aGUgQ2xvdWRGcm9udCBkaXN0cmlidXRpb24gKi9cbiAgZ2V0Q2RuKCk6IENkbjtcbn1cblxuLyoqXG4gKiBVbmlvbiB0eXBlIHJlcHJlc2VudGluZyBhbnkgcGF0dGVybiBpbnRlcmZhY2UuXG4gKiBVc2Ugd2l0aCB0eXBlIGd1YXJkcyBmb3IgZ2VuZXJpYyBoYW5kbGluZy5cbiAqL1xuZXhwb3J0IHR5cGUgQW55UGF0dGVybiA9IElQYXlsb2FkOyAvLyB8IElOZXh0anMgfCBJUmVtaXggaW4gZnV0dXJlXG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBhIHBhdHRlcm4gaXMgUGF5bG9hZC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUGF5bG9hZFBhdHRlcm4ocGF0dGVybjogSVBhdHRlcm4pOiBwYXR0ZXJuIGlzIElQYXlsb2FkIHtcbiAgcmV0dXJuIHBhdHRlcm4ucGF0dGVyblR5cGUgPT09IFwicGF5bG9hZFwiO1xufVxuXG4vKipcbiAqIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgYSByZXNvdXJjZSBpcyBhbnkgcGF0dGVybiB0eXBlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQYXR0ZXJuKHJlc291cmNlOiB1bmtub3duKTogcmVzb3VyY2UgaXMgSVBhdHRlcm4ge1xuICByZXR1cm4gKFxuICAgIHJlc291cmNlICE9PSBudWxsICYmXG4gICAgdHlwZW9mIHJlc291cmNlID09PSBcIm9iamVjdFwiICYmXG4gICAgXCJwYXR0ZXJuVHlwZVwiIGluIHJlc291cmNlICYmXG4gICAgdHlwZW9mIChyZXNvdXJjZSBhcyBJUGF0dGVybikucGF0dGVyblR5cGUgPT09IFwic3RyaW5nXCJcbiAgKTtcbn1cbiJdfQ==
|
|
@@ -1,136 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* const assets = app.addStorage(StorageFactory.build("Assets", { bucketType: "private" }));
|
|
10
|
-
* assets.getBucketName(); // ✓ Available on all storage types
|
|
11
|
-
*
|
|
12
|
-
* const website = app.addStorage(StorageFactory.build("Site", { bucketType: "website" }));
|
|
13
|
-
* website.getWebsiteUrl(); // ✓ Available on IWebsiteStorage
|
|
14
|
-
*/
|
|
15
|
-
import { type IBucket, type EventType, type IBucketNotificationDestination, type NotificationKeyFilter } from "aws-cdk-lib/aws-s3";
|
|
16
|
-
import { type IGrantable, type Grant } from "aws-cdk-lib/aws-iam";
|
|
17
|
-
import { type Construct } from "constructs";
|
|
18
|
-
/**
|
|
19
|
-
* Storage type discriminator.
|
|
20
|
-
* Maps to S3 bucket configurations.
|
|
21
|
-
*/
|
|
22
|
-
export type StorageType = "private" | "website" | "publicRead";
|
|
23
|
-
/**
|
|
24
|
-
* Base storage interface.
|
|
25
|
-
* All storage types implement this interface.
|
|
26
|
-
*/
|
|
1
|
+
import type { Construct } from "constructs";
|
|
2
|
+
import type { IBucket } from "aws-cdk-lib/aws-s3";
|
|
3
|
+
import type { Grant } from "aws-cdk-lib/aws-iam";
|
|
4
|
+
import type { IGrantable } from "aws-cdk-lib/aws-iam";
|
|
5
|
+
import type { EventType, NotificationKeyFilter, IBucketNotificationDestination } from "aws-cdk-lib/aws-s3";
|
|
6
|
+
import type { BucketDeployment } from "aws-cdk-lib/aws-s3-deployment";
|
|
27
7
|
export interface IStorage {
|
|
28
|
-
/** The type of storage resource. Used for runtime type narrowing. */
|
|
29
|
-
readonly storageType: StorageType;
|
|
30
|
-
/** The underlying CDK construct node. */
|
|
31
8
|
readonly node: Construct["node"];
|
|
32
|
-
/** Get the underlying S3 bucket. */
|
|
33
9
|
getBucket(): IBucket;
|
|
34
|
-
/** Get the bucket ARN. */
|
|
35
|
-
getBucketArn(): string;
|
|
36
|
-
/** Get the bucket name. */
|
|
37
10
|
getBucketName(): string;
|
|
38
|
-
|
|
11
|
+
getBucketArn(): string;
|
|
39
12
|
getBucketDomainName(): string;
|
|
40
|
-
/** Get the regional bucket domain name. */
|
|
41
13
|
getBucketRegionalDomainName(): string;
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
* @param grantee The principal to grant read permissions to
|
|
45
|
-
*/
|
|
14
|
+
getWebsiteUrl(): string | undefined;
|
|
15
|
+
getDeployment(): BucketDeployment | undefined;
|
|
46
16
|
grantRead(grantee: IGrantable): Grant;
|
|
47
|
-
/**
|
|
48
|
-
* Grant write permissions to a grantee.
|
|
49
|
-
* @param grantee The principal to grant write permissions to
|
|
50
|
-
*/
|
|
51
17
|
grantWrite(grantee: IGrantable): Grant;
|
|
52
|
-
/**
|
|
53
|
-
* Grant read and write permissions to a grantee.
|
|
54
|
-
* @param grantee The principal to grant permissions to
|
|
55
|
-
*/
|
|
56
18
|
grantReadWrite(grantee: IGrantable): Grant;
|
|
57
|
-
/**
|
|
58
|
-
* Grant delete permissions to a grantee.
|
|
59
|
-
* @param grantee The principal to grant delete permissions to
|
|
60
|
-
*/
|
|
61
19
|
grantDelete(grantee: IGrantable): Grant;
|
|
62
|
-
/**
|
|
63
|
-
* Grant put permissions to a grantee.
|
|
64
|
-
* @param grantee The principal to grant put permissions to
|
|
65
|
-
*/
|
|
66
20
|
grantPut(grantee: IGrantable): Grant;
|
|
67
|
-
|
|
68
|
-
* Add an event notification to the bucket.
|
|
69
|
-
* @param event The event type to trigger on
|
|
70
|
-
* @param dest The notification destination
|
|
71
|
-
* @param filters Optional key filters
|
|
72
|
-
*/
|
|
21
|
+
grantPublicAccess(...keyPrefix: string[]): Grant;
|
|
73
22
|
addEventNotification(event: EventType, dest: IBucketNotificationDestination, ...filters: NotificationKeyFilter[]): void;
|
|
74
|
-
/**
|
|
75
|
-
* Add an object created notification.
|
|
76
|
-
* @param dest The notification destination
|
|
77
|
-
* @param filters Optional key filters
|
|
78
|
-
*/
|
|
79
23
|
addObjectCreatedNotification(dest: IBucketNotificationDestination, ...filters: NotificationKeyFilter[]): void;
|
|
80
|
-
/**
|
|
81
|
-
* Add an object removed notification.
|
|
82
|
-
* @param dest The notification destination
|
|
83
|
-
* @param filters Optional key filters
|
|
84
|
-
*/
|
|
85
24
|
addObjectRemovedNotification(dest: IBucketNotificationDestination, ...filters: NotificationKeyFilter[]): void;
|
|
86
25
|
}
|
|
87
|
-
/**
|
|
88
|
-
* Private storage interface.
|
|
89
|
-
* Standard S3 bucket with optional encryption and versioning.
|
|
90
|
-
*/
|
|
91
|
-
export interface IPrivateStorage extends IStorage {
|
|
92
|
-
readonly storageType: "private";
|
|
93
|
-
/**
|
|
94
|
-
* Grant public access to objects under a prefix.
|
|
95
|
-
* Use with caution - makes objects publicly readable.
|
|
96
|
-
* @param keyPrefix Key prefixes to grant public access to
|
|
97
|
-
*/
|
|
98
|
-
grantPublicAccess(...keyPrefix: string[]): Grant;
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Website storage interface.
|
|
102
|
-
* S3 bucket configured for static website hosting.
|
|
103
|
-
*/
|
|
104
|
-
export interface IWebsiteStorage extends IStorage {
|
|
105
|
-
readonly storageType: "website";
|
|
106
|
-
/** Get the website URL. */
|
|
107
|
-
getWebsiteUrl(): string;
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Public read storage interface.
|
|
111
|
-
* S3 bucket with public read access enabled.
|
|
112
|
-
*/
|
|
113
|
-
export interface IPublicStorage extends IStorage {
|
|
114
|
-
readonly storageType: "publicRead";
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Union type representing any storage interface.
|
|
118
|
-
* Use with type guards for generic handling.
|
|
119
|
-
*/
|
|
120
|
-
export type AnyStorage = IPrivateStorage | IWebsiteStorage | IPublicStorage;
|
|
121
|
-
/**
|
|
122
|
-
* Type guard to check if a storage is private.
|
|
123
|
-
*/
|
|
124
|
-
export declare function isPrivateStorage(storage: IStorage): storage is IPrivateStorage;
|
|
125
|
-
/**
|
|
126
|
-
* Type guard to check if a storage is a website bucket.
|
|
127
|
-
*/
|
|
128
|
-
export declare function isWebsiteStorage(storage: IStorage): storage is IWebsiteStorage;
|
|
129
|
-
/**
|
|
130
|
-
* Type guard to check if a storage is public read.
|
|
131
|
-
*/
|
|
132
|
-
export declare function isPublicStorage(storage: IStorage): storage is IPublicStorage;
|
|
133
|
-
/**
|
|
134
|
-
* Type guard to check if a resource is any storage type.
|
|
135
|
-
*/
|
|
136
26
|
export declare function isStorage(resource: unknown): resource is IStorage;
|
|
@@ -1,48 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Type-safe storage interfaces.
|
|
4
|
-
*
|
|
5
|
-
* These interfaces provide compile-time type safety for storage resources.
|
|
6
|
-
* All S3 bucket types are grouped under the Storage umbrella, with specific
|
|
7
|
-
* interfaces for each bucket type.
|
|
8
|
-
*
|
|
9
|
-
* @example
|
|
10
|
-
* const assets = app.addStorage(StorageFactory.build("Assets", { bucketType: "private" }));
|
|
11
|
-
* assets.getBucketName(); // ✓ Available on all storage types
|
|
12
|
-
*
|
|
13
|
-
* const website = app.addStorage(StorageFactory.build("Site", { bucketType: "website" }));
|
|
14
|
-
* website.getWebsiteUrl(); // ✓ Available on IWebsiteStorage
|
|
15
|
-
*/
|
|
16
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.isPrivateStorage = isPrivateStorage;
|
|
18
|
-
exports.isWebsiteStorage = isWebsiteStorage;
|
|
19
|
-
exports.isPublicStorage = isPublicStorage;
|
|
20
3
|
exports.isStorage = isStorage;
|
|
21
|
-
/**
|
|
22
|
-
* Type guard to check if a storage is private.
|
|
23
|
-
*/
|
|
24
|
-
function isPrivateStorage(storage) {
|
|
25
|
-
return storage.storageType === "private";
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Type guard to check if a storage is a website bucket.
|
|
29
|
-
*/
|
|
30
|
-
function isWebsiteStorage(storage) {
|
|
31
|
-
return storage.storageType === "website";
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Type guard to check if a storage is public read.
|
|
35
|
-
*/
|
|
36
|
-
function isPublicStorage(storage) {
|
|
37
|
-
return storage.storageType === "publicRead";
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Type guard to check if a resource is any storage type.
|
|
41
|
-
*/
|
|
42
4
|
function isStorage(resource) {
|
|
43
|
-
return (resource
|
|
44
|
-
|
|
45
|
-
"
|
|
46
|
-
|
|
5
|
+
return (typeof resource === "object" &&
|
|
6
|
+
resource !== null &&
|
|
7
|
+
"getBucket" in resource &&
|
|
8
|
+
"grantRead" in resource &&
|
|
9
|
+
"grantWrite" in resource);
|
|
47
10
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvaW50ZXJmYWNlcy9zdG9yYWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBNkNBLDhCQVFDO0FBUkQsU0FBZ0IsU0FBUyxDQUFDLFFBQWlCO0lBQ3pDLE9BQU8sQ0FDTCxPQUFPLFFBQVEsS0FBSyxRQUFRO1FBQzVCLFFBQVEsS0FBSyxJQUFJO1FBQ2pCLFdBQVcsSUFBSSxRQUFRO1FBQ3ZCLFdBQVcsSUFBSSxRQUFRO1FBQ3ZCLFlBQVksSUFBSSxRQUFRLENBQ3pCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHR5cGUgeyBJQnVja2V0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiO1xuaW1wb3J0IHR5cGUgeyBHcmFudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgdHlwZSB7IElHcmFudGFibGUgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHR5cGUge1xuICBFdmVudFR5cGUsXG4gIE5vdGlmaWNhdGlvbktleUZpbHRlcixcbiAgSUJ1Y2tldE5vdGlmaWNhdGlvbkRlc3RpbmF0aW9uXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIjtcbmltcG9ydCB0eXBlIHsgQnVja2V0RGVwbG95bWVudCB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczMtZGVwbG95bWVudFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdG9yYWdlIHtcbiAgcmVhZG9ubHkgbm9kZTogQ29uc3RydWN0W1wibm9kZVwiXTtcblxuICBnZXRCdWNrZXQoKTogSUJ1Y2tldDtcbiAgZ2V0QnVja2V0TmFtZSgpOiBzdHJpbmc7XG4gIGdldEJ1Y2tldEFybigpOiBzdHJpbmc7XG4gIGdldEJ1Y2tldERvbWFpbk5hbWUoKTogc3RyaW5nO1xuICBnZXRCdWNrZXRSZWdpb25hbERvbWFpbk5hbWUoKTogc3RyaW5nO1xuXG4gIGdldFdlYnNpdGVVcmwoKTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICBnZXREZXBsb3ltZW50KCk6IEJ1Y2tldERlcGxveW1lbnQgfCB1bmRlZmluZWQ7XG5cbiAgZ3JhbnRSZWFkKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudDtcbiAgZ3JhbnRXcml0ZShncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQ7XG4gIGdyYW50UmVhZFdyaXRlKGdyYW50ZWU6IElHcmFudGFibGUpOiBHcmFudDtcbiAgZ3JhbnREZWxldGUoZ3JhbnRlZTogSUdyYW50YWJsZSk6IEdyYW50O1xuICBncmFudFB1dChncmFudGVlOiBJR3JhbnRhYmxlKTogR3JhbnQ7XG4gIGdyYW50UHVibGljQWNjZXNzKC4uLmtleVByZWZpeDogc3RyaW5nW10pOiBHcmFudDtcblxuICBhZGRFdmVudE5vdGlmaWNhdGlvbihcbiAgICBldmVudDogRXZlbnRUeXBlLFxuICAgIGRlc3Q6IElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbixcbiAgICAuLi5maWx0ZXJzOiBOb3RpZmljYXRpb25LZXlGaWx0ZXJbXVxuICApOiB2b2lkO1xuICBhZGRPYmplY3RDcmVhdGVkTm90aWZpY2F0aW9uKFxuICAgIGRlc3Q6IElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbixcbiAgICAuLi5maWx0ZXJzOiBOb3RpZmljYXRpb25LZXlGaWx0ZXJbXVxuICApOiB2b2lkO1xuICBhZGRPYmplY3RSZW1vdmVkTm90aWZpY2F0aW9uKFxuICAgIGRlc3Q6IElCdWNrZXROb3RpZmljYXRpb25EZXN0aW5hdGlvbixcbiAgICAuLi5maWx0ZXJzOiBOb3RpZmljYXRpb25LZXlGaWx0ZXJbXVxuICApOiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTdG9yYWdlKHJlc291cmNlOiB1bmtub3duKTogcmVzb3VyY2UgaXMgSVN0b3JhZ2Uge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZiByZXNvdXJjZSA9PT0gXCJvYmplY3RcIiAmJlxuICAgIHJlc291cmNlICE9PSBudWxsICYmXG4gICAgXCJnZXRCdWNrZXRcIiBpbiByZXNvdXJjZSAmJlxuICAgIFwiZ3JhbnRSZWFkXCIgaW4gcmVzb3VyY2UgJiZcbiAgICBcImdyYW50V3JpdGVcIiBpbiByZXNvdXJjZVxuICApO1xufVxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type Environment, Stack, type StackProps } from "aws-cdk-lib";
|
|
2
|
+
import { OrganisationResource } from "../../resources/aws/organisation";
|
|
3
|
+
type ExtendedStackProps = Omit<StackProps, "env"> & {
|
|
4
|
+
env?: Required<Pick<Environment, "region" | "account">> & Partial<Omit<Environment, "region" | "account">>;
|
|
5
|
+
};
|
|
6
|
+
export type AccountsConfig = {
|
|
7
|
+
readonly [key: string]: readonly string[] | string;
|
|
8
|
+
};
|
|
9
|
+
export interface OrganisationProps extends ExtendedStackProps {
|
|
10
|
+
organisationName: string;
|
|
11
|
+
accounts: AccountsConfig;
|
|
12
|
+
orgEmail: string;
|
|
13
|
+
accountIds?: Record<string, string>;
|
|
14
|
+
identityCenter?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Organisation CDK stack.
|
|
18
|
+
*
|
|
19
|
+
* OU creation, account-to-OU placement, IPAM delegation, RAM sharing, trusted
|
|
20
|
+
* access, cost allocation tags, and backup settings are handled by CLI pre-deploy
|
|
21
|
+
* steps (AwsAccountService). This stack focuses on:
|
|
22
|
+
* - Account CfnOutput references (for cross-stack consumption)
|
|
23
|
+
* - Identity Centre configuration
|
|
24
|
+
*/
|
|
25
|
+
export declare class Organisation extends Stack {
|
|
26
|
+
readonly organisationType: "organisation";
|
|
27
|
+
private org;
|
|
28
|
+
private accountRefs;
|
|
29
|
+
private accountMap;
|
|
30
|
+
private accountsConfig;
|
|
31
|
+
constructor(id: string, props: OrganisationProps);
|
|
32
|
+
private createAccountReferences;
|
|
33
|
+
private setupOrganisationFeatures;
|
|
34
|
+
private setupIdentityCenter;
|
|
35
|
+
getOrganisation(): OrganisationResource;
|
|
36
|
+
getAccounts(): Record<string, string>;
|
|
37
|
+
}
|
|
38
|
+
export {};
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Organisation = void 0;
|
|
4
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
5
|
+
const app_1 = require("../../app");
|
|
6
|
+
const identityCenter_1 = require("../../config/aws/identityCenter");
|
|
7
|
+
const organisation_1 = require("../../resources/aws/organisation");
|
|
8
|
+
const stripAndCamelCase_1 = require("../../utils/stripAndCamelCase");
|
|
9
|
+
const getConfig_1 = require("../../utils/getConfig");
|
|
10
|
+
/**
|
|
11
|
+
* Organisation CDK stack.
|
|
12
|
+
*
|
|
13
|
+
* OU creation, account-to-OU placement, IPAM delegation, RAM sharing, trusted
|
|
14
|
+
* access, cost allocation tags, and backup settings are handled by CLI pre-deploy
|
|
15
|
+
* steps (AwsAccountService). This stack focuses on:
|
|
16
|
+
* - Account CfnOutput references (for cross-stack consumption)
|
|
17
|
+
* - Identity Centre configuration
|
|
18
|
+
*/
|
|
19
|
+
class Organisation extends aws_cdk_lib_1.Stack {
|
|
20
|
+
constructor(id, props) {
|
|
21
|
+
const config = (0, getConfig_1.getConfig)();
|
|
22
|
+
const env = props.env ?? {
|
|
23
|
+
region: config.region,
|
|
24
|
+
account: config.accountId ?? ""
|
|
25
|
+
};
|
|
26
|
+
if (!env.account) {
|
|
27
|
+
throw new Error("Organisation requires an account ID. Provide it via env.account or ensure CDK context includes accountId.");
|
|
28
|
+
}
|
|
29
|
+
super(app_1.default.getInstance(), id, { ...props, env });
|
|
30
|
+
this.organisationType = "organisation";
|
|
31
|
+
this.accountRefs = [];
|
|
32
|
+
// Normalise account map keys to lowercase for case-insensitive lookups.
|
|
33
|
+
// providerAccounts stores names as lowercase; ACCOUNTS config uses PascalCase.
|
|
34
|
+
const rawMap = props.accountIds ?? config.accountIds ?? {};
|
|
35
|
+
this.accountMap = {};
|
|
36
|
+
for (const [key, value] of Object.entries(rawMap)) {
|
|
37
|
+
this.accountMap[key.toLowerCase()] = value;
|
|
38
|
+
}
|
|
39
|
+
this.accountsConfig = props.accounts;
|
|
40
|
+
const orgId = this.node.tryGetContext("orgId");
|
|
41
|
+
const rootId = this.node.tryGetContext("rootId");
|
|
42
|
+
const managementAccountId = this.node.tryGetContext("managementAccountId") ?? this.account;
|
|
43
|
+
if (!orgId || !rootId) {
|
|
44
|
+
throw new Error("orgId and rootId must be provided via CDK context. Run deployment through the Fjall CLI.");
|
|
45
|
+
}
|
|
46
|
+
this.org = new organisation_1.OrganisationResource(this, "Organisation", {
|
|
47
|
+
orgId,
|
|
48
|
+
rootId,
|
|
49
|
+
managementAccountId
|
|
50
|
+
});
|
|
51
|
+
this.createAccountReferences(props);
|
|
52
|
+
this.setupOrganisationFeatures(props.identityCenter ?? true);
|
|
53
|
+
}
|
|
54
|
+
createAccountReferences(props) {
|
|
55
|
+
for (const [, accountList] of Object.entries(props.accounts)) {
|
|
56
|
+
const accountsArray = Array.isArray(accountList)
|
|
57
|
+
? accountList
|
|
58
|
+
: [accountList];
|
|
59
|
+
for (const accountName of accountsArray) {
|
|
60
|
+
const accountNameId = (0, stripAndCamelCase_1.stripAndCamelCase)(accountName);
|
|
61
|
+
const accountId = this.accountMap[accountName.toLowerCase()];
|
|
62
|
+
if (!accountId) {
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
const ref = new organisation_1.OrganisationAccount(this, `${accountNameId}Account`, {
|
|
66
|
+
accountId,
|
|
67
|
+
managementAccountId: this.account,
|
|
68
|
+
orgId: this.org.orgId
|
|
69
|
+
});
|
|
70
|
+
this.accountRefs.push(ref);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
setupOrganisationFeatures(identityCenter) {
|
|
75
|
+
this.setupIdentityCenter(identityCenter);
|
|
76
|
+
}
|
|
77
|
+
setupIdentityCenter(identityCenter) {
|
|
78
|
+
if (identityCenter) {
|
|
79
|
+
new identityCenter_1.IdentityCenter(this, "IdentityCenter", {
|
|
80
|
+
accounts: this.accountMap
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
getOrganisation() {
|
|
85
|
+
return this.org;
|
|
86
|
+
}
|
|
87
|
+
getAccounts() {
|
|
88
|
+
return this.accountMap;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
exports.Organisation = Organisation;
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9vcmdhbmlzYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVFO0FBRXZFLG1DQUE0QjtBQUU1QixvRUFBaUU7QUFDakUsbUVBRzBDO0FBQzFDLHFFQUFrRTtBQUNsRSxxREFBa0Q7QUFtQmxEOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxZQUFhLFNBQVEsbUJBQUs7SUFPckMsWUFBWSxFQUFVLEVBQUUsS0FBd0I7UUFDOUMsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBUyxHQUFFLENBQUM7UUFFM0IsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLEdBQUcsSUFBSTtZQUN2QixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRTtTQUNoQyxDQUFDO1FBRUYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksS0FBSyxDQUNiLDJHQUEyRyxDQUM1RyxDQUFDO1FBQ0osQ0FBQztRQUVELEtBQUssQ0FBQyxhQUFHLENBQUMsV0FBVyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztRQXBCbEMscUJBQWdCLEdBQUcsY0FBdUIsQ0FBQztRQUVuRCxnQkFBVyxHQUEwQixFQUFFLENBQUM7UUFvQjlDLHdFQUF3RTtRQUN4RSwrRUFBK0U7UUFDL0UsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUUsQ0FBQztRQUMzRCxJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2xELElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUM7UUFFckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDL0MsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakQsTUFBTSxtQkFBbUIsR0FDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMscUJBQXFCLENBQUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRWpFLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUNiLDBGQUEwRixDQUMzRixDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxtQ0FBb0IsQ0FBQyxJQUFJLEVBQUUsY0FBYyxFQUFFO1lBQ3hELEtBQUs7WUFDTCxNQUFNO1lBQ04sbUJBQW1CO1NBQ3BCLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBd0I7UUFDdEQsS0FBSyxNQUFNLENBQUMsRUFBRSxXQUFXLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQzdELE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO2dCQUM5QyxDQUFDLENBQUMsV0FBVztnQkFDYixDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQztZQUVsQixLQUFLLE1BQU0sV0FBVyxJQUFJLGFBQWEsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLGFBQWEsR0FBRyxJQUFBLHFDQUFpQixFQUFDLFdBQVcsQ0FBQyxDQUFDO2dCQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO2dCQUU3RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2YsU0FBUztnQkFDWCxDQUFDO2dCQUVELE1BQU0sR0FBRyxHQUFHLElBQUksa0NBQW1CLENBQUMsSUFBSSxFQUFFLEdBQUcsYUFBYSxTQUFTLEVBQUU7b0JBQ25FLFNBQVM7b0JBQ1QsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE9BQU87b0JBQ2pDLEtBQUssRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUs7aUJBQ3RCLENBQUMsQ0FBQztnQkFFSCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTyx5QkFBeUIsQ0FBQyxjQUF1QjtRQUN2RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVPLG1CQUFtQixDQUFDLGNBQXVCO1FBQ2pELElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSwrQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsRUFBRTtnQkFDekMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVO2FBQzFCLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO0lBRU0sZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7Q0FDRjtBQWhHRCxvQ0FnR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIEVudmlyb25tZW50LCBTdGFjaywgdHlwZSBTdGFja1Byb3BzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbmltcG9ydCBBcHAgZnJvbSBcIi4uLy4uL2FwcFwiO1xuXG5pbXBvcnQgeyBJZGVudGl0eUNlbnRlciB9IGZyb20gXCIuLi8uLi9jb25maWcvYXdzL2lkZW50aXR5Q2VudGVyXCI7XG5pbXBvcnQge1xuICBPcmdhbmlzYXRpb25SZXNvdXJjZSxcbiAgT3JnYW5pc2F0aW9uQWNjb3VudFxufSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9vcmdhbmlzYXRpb25cIjtcbmltcG9ydCB7IHN0cmlwQW5kQ2FtZWxDYXNlIH0gZnJvbSBcIi4uLy4uL3V0aWxzL3N0cmlwQW5kQ2FtZWxDYXNlXCI7XG5pbXBvcnQgeyBnZXRDb25maWcgfSBmcm9tIFwiLi4vLi4vdXRpbHMvZ2V0Q29uZmlnXCI7XG5cbnR5cGUgRXh0ZW5kZWRTdGFja1Byb3BzID0gT21pdDxTdGFja1Byb3BzLCBcImVudlwiPiAmIHtcbiAgZW52PzogUmVxdWlyZWQ8UGljazxFbnZpcm9ubWVudCwgXCJyZWdpb25cIiB8IFwiYWNjb3VudFwiPj4gJlxuICAgIFBhcnRpYWw8T21pdDxFbnZpcm9ubWVudCwgXCJyZWdpb25cIiB8IFwiYWNjb3VudFwiPj47XG59O1xuXG5leHBvcnQgdHlwZSBBY2NvdW50c0NvbmZpZyA9IHtcbiAgcmVhZG9ubHkgW2tleTogc3RyaW5nXTogcmVhZG9ubHkgc3RyaW5nW10gfCBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIE9yZ2FuaXNhdGlvblByb3BzIGV4dGVuZHMgRXh0ZW5kZWRTdGFja1Byb3BzIHtcbiAgb3JnYW5pc2F0aW9uTmFtZTogc3RyaW5nO1xuICBhY2NvdW50czogQWNjb3VudHNDb25maWc7XG4gIG9yZ0VtYWlsOiBzdHJpbmc7XG4gIGFjY291bnRJZHM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBpZGVudGl0eUNlbnRlcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3JnYW5pc2F0aW9uIENESyBzdGFjay5cbiAqXG4gKiBPVSBjcmVhdGlvbiwgYWNjb3VudC10by1PVSBwbGFjZW1lbnQsIElQQU0gZGVsZWdhdGlvbiwgUkFNIHNoYXJpbmcsIHRydXN0ZWRcbiAqIGFjY2VzcywgY29zdCBhbGxvY2F0aW9uIHRhZ3MsIGFuZCBiYWNrdXAgc2V0dGluZ3MgYXJlIGhhbmRsZWQgYnkgQ0xJIHByZS1kZXBsb3lcbiAqIHN0ZXBzIChBd3NBY2NvdW50U2VydmljZSkuIFRoaXMgc3RhY2sgZm9jdXNlcyBvbjpcbiAqIC0gQWNjb3VudCBDZm5PdXRwdXQgcmVmZXJlbmNlcyAoZm9yIGNyb3NzLXN0YWNrIGNvbnN1bXB0aW9uKVxuICogLSBJZGVudGl0eSBDZW50cmUgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgT3JnYW5pc2F0aW9uIGV4dGVuZHMgU3RhY2sge1xuICBwdWJsaWMgcmVhZG9ubHkgb3JnYW5pc2F0aW9uVHlwZSA9IFwib3JnYW5pc2F0aW9uXCIgYXMgY29uc3Q7XG4gIHByaXZhdGUgb3JnOiBPcmdhbmlzYXRpb25SZXNvdXJjZTtcbiAgcHJpdmF0ZSBhY2NvdW50UmVmczogT3JnYW5pc2F0aW9uQWNjb3VudFtdID0gW107XG4gIHByaXZhdGUgYWNjb3VudE1hcDogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcHJpdmF0ZSBhY2NvdW50c0NvbmZpZzogQWNjb3VudHNDb25maWc7XG5cbiAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgcHJvcHM6IE9yZ2FuaXNhdGlvblByb3BzKSB7XG4gICAgY29uc3QgY29uZmlnID0gZ2V0Q29uZmlnKCk7XG5cbiAgICBjb25zdCBlbnYgPSBwcm9wcy5lbnYgPz8ge1xuICAgICAgcmVnaW9uOiBjb25maWcucmVnaW9uLFxuICAgICAgYWNjb3VudDogY29uZmlnLmFjY291bnRJZCA/PyBcIlwiXG4gICAgfTtcblxuICAgIGlmICghZW52LmFjY291bnQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJPcmdhbmlzYXRpb24gcmVxdWlyZXMgYW4gYWNjb3VudCBJRC4gUHJvdmlkZSBpdCB2aWEgZW52LmFjY291bnQgb3IgZW5zdXJlIENESyBjb250ZXh0IGluY2x1ZGVzIGFjY291bnRJZC5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBzdXBlcihBcHAuZ2V0SW5zdGFuY2UoKSwgaWQsIHsgLi4ucHJvcHMsIGVudiB9KTtcblxuICAgIC8vIE5vcm1hbGlzZSBhY2NvdW50IG1hcCBrZXlzIHRvIGxvd2VyY2FzZSBmb3IgY2FzZS1pbnNlbnNpdGl2ZSBsb29rdXBzLlxuICAgIC8vIHByb3ZpZGVyQWNjb3VudHMgc3RvcmVzIG5hbWVzIGFzIGxvd2VyY2FzZTsgQUNDT1VOVFMgY29uZmlnIHVzZXMgUGFzY2FsQ2FzZS5cbiAgICBjb25zdCByYXdNYXAgPSBwcm9wcy5hY2NvdW50SWRzID8/IGNvbmZpZy5hY2NvdW50SWRzID8/IHt9O1xuICAgIHRoaXMuYWNjb3VudE1hcCA9IHt9O1xuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHJhd01hcCkpIHtcbiAgICAgIHRoaXMuYWNjb3VudE1hcFtrZXkudG9Mb3dlckNhc2UoKV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgdGhpcy5hY2NvdW50c0NvbmZpZyA9IHByb3BzLmFjY291bnRzO1xuXG4gICAgY29uc3Qgb3JnSWQgPSB0aGlzLm5vZGUudHJ5R2V0Q29udGV4dChcIm9yZ0lkXCIpO1xuICAgIGNvbnN0IHJvb3RJZCA9IHRoaXMubm9kZS50cnlHZXRDb250ZXh0KFwicm9vdElkXCIpO1xuICAgIGNvbnN0IG1hbmFnZW1lbnRBY2NvdW50SWQgPVxuICAgICAgdGhpcy5ub2RlLnRyeUdldENvbnRleHQoXCJtYW5hZ2VtZW50QWNjb3VudElkXCIpID8/IHRoaXMuYWNjb3VudDtcblxuICAgIGlmICghb3JnSWQgfHwgIXJvb3RJZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIm9yZ0lkIGFuZCByb290SWQgbXVzdCBiZSBwcm92aWRlZCB2aWEgQ0RLIGNvbnRleHQuIFJ1biBkZXBsb3ltZW50IHRocm91Z2ggdGhlIEZqYWxsIENMSS5cIlxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLm9yZyA9IG5ldyBPcmdhbmlzYXRpb25SZXNvdXJjZSh0aGlzLCBcIk9yZ2FuaXNhdGlvblwiLCB7XG4gICAgICBvcmdJZCxcbiAgICAgIHJvb3RJZCxcbiAgICAgIG1hbmFnZW1lbnRBY2NvdW50SWRcbiAgICB9KTtcbiAgICB0aGlzLmNyZWF0ZUFjY291bnRSZWZlcmVuY2VzKHByb3BzKTtcbiAgICB0aGlzLnNldHVwT3JnYW5pc2F0aW9uRmVhdHVyZXMocHJvcHMuaWRlbnRpdHlDZW50ZXIgPz8gdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUFjY291bnRSZWZlcmVuY2VzKHByb3BzOiBPcmdhbmlzYXRpb25Qcm9wcykge1xuICAgIGZvciAoY29uc3QgWywgYWNjb3VudExpc3RdIG9mIE9iamVjdC5lbnRyaWVzKHByb3BzLmFjY291bnRzKSkge1xuICAgICAgY29uc3QgYWNjb3VudHNBcnJheSA9IEFycmF5LmlzQXJyYXkoYWNjb3VudExpc3QpXG4gICAgICAgID8gYWNjb3VudExpc3RcbiAgICAgICAgOiBbYWNjb3VudExpc3RdO1xuXG4gICAgICBmb3IgKGNvbnN0IGFjY291bnROYW1lIG9mIGFjY291bnRzQXJyYXkpIHtcbiAgICAgICAgY29uc3QgYWNjb3VudE5hbWVJZCA9IHN0cmlwQW5kQ2FtZWxDYXNlKGFjY291bnROYW1lKTtcbiAgICAgICAgY29uc3QgYWNjb3VudElkID0gdGhpcy5hY2NvdW50TWFwW2FjY291bnROYW1lLnRvTG93ZXJDYXNlKCldO1xuXG4gICAgICAgIGlmICghYWNjb3VudElkKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCByZWYgPSBuZXcgT3JnYW5pc2F0aW9uQWNjb3VudCh0aGlzLCBgJHthY2NvdW50TmFtZUlkfUFjY291bnRgLCB7XG4gICAgICAgICAgYWNjb3VudElkLFxuICAgICAgICAgIG1hbmFnZW1lbnRBY2NvdW50SWQ6IHRoaXMuYWNjb3VudCxcbiAgICAgICAgICBvcmdJZDogdGhpcy5vcmcub3JnSWRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hY2NvdW50UmVmcy5wdXNoKHJlZik7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXR1cE9yZ2FuaXNhdGlvbkZlYXR1cmVzKGlkZW50aXR5Q2VudGVyOiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXR1cElkZW50aXR5Q2VudGVyKGlkZW50aXR5Q2VudGVyKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0dXBJZGVudGl0eUNlbnRlcihpZGVudGl0eUNlbnRlcjogYm9vbGVhbikge1xuICAgIGlmIChpZGVudGl0eUNlbnRlcikge1xuICAgICAgbmV3IElkZW50aXR5Q2VudGVyKHRoaXMsIFwiSWRlbnRpdHlDZW50ZXJcIiwge1xuICAgICAgICBhY2NvdW50czogdGhpcy5hY2NvdW50TWFwXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0T3JnYW5pc2F0aW9uKCk6IE9yZ2FuaXNhdGlvblJlc291cmNlIHtcbiAgICByZXR1cm4gdGhpcy5vcmc7XG4gIH1cblxuICBwdWJsaWMgZ2V0QWNjb3VudHMoKTogUmVjb3JkPHN0cmluZywgc3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3VudE1hcDtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type Construct } from "constructs";
|
|
2
|
+
import { Organisation, type OrganisationProps, type AccountsConfig } from "./organisation";
|
|
3
|
+
import { Platform, type PlatformProps } from "./platform";
|
|
4
|
+
import { Account, type AccountProps } from "./account";
|
|
5
|
+
export interface IOrganisationProps extends OrganisationProps {
|
|
6
|
+
type: "organisation";
|
|
7
|
+
}
|
|
8
|
+
export interface IPlatformProps extends PlatformProps {
|
|
9
|
+
type: "platform";
|
|
10
|
+
}
|
|
11
|
+
export interface IAccountProps extends AccountProps {
|
|
12
|
+
type: "account";
|
|
13
|
+
}
|
|
14
|
+
export type AnyOrganisationProps = IOrganisationProps | IPlatformProps | IAccountProps;
|
|
15
|
+
export declare class OrganisationFactory {
|
|
16
|
+
static build(id: string, props: IOrganisationProps): Organisation;
|
|
17
|
+
static build(id: string, props: IPlatformProps): (scope: Construct) => Platform;
|
|
18
|
+
static build(id: string, props: IAccountProps): (scope: Construct) => Account;
|
|
19
|
+
}
|
|
20
|
+
export type { AccountsConfig };
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OrganisationFactory = void 0;
|
|
4
|
+
const organisation_1 = require("./organisation");
|
|
5
|
+
const platform_1 = require("./platform");
|
|
6
|
+
const account_1 = require("./account");
|
|
7
|
+
class OrganisationFactory {
|
|
8
|
+
static build(id, props) {
|
|
9
|
+
switch (props.type) {
|
|
10
|
+
case "organisation":
|
|
11
|
+
return new organisation_1.Organisation(id, props);
|
|
12
|
+
case "platform":
|
|
13
|
+
return (scope) => new platform_1.Platform(scope, id, props);
|
|
14
|
+
case "account":
|
|
15
|
+
return (scope) => new account_1.Account(scope, id, props);
|
|
16
|
+
default: {
|
|
17
|
+
const _exhaustive = props;
|
|
18
|
+
throw new Error(`Unsupported organisation type: ${String(_exhaustive.type)}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.OrganisationFactory = OrganisationFactory;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3JnYW5pc2F0aW9uRmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3Mvb3JnYW5pc2F0aW9uRmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxpREFJd0I7QUFDeEIseUNBQTBEO0FBQzFELHVDQUF1RDtBQW1CdkQsTUFBYSxtQkFBbUI7SUFPOUIsTUFBTSxDQUFDLEtBQUssQ0FDVixFQUFVLEVBQ1YsS0FBMkI7UUFFM0IsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbkIsS0FBSyxjQUFjO2dCQUNqQixPQUFPLElBQUksMkJBQVksQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDckMsS0FBSyxVQUFVO2dCQUNiLE9BQU8sQ0FBQyxLQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLG1CQUFRLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5RCxLQUFLLFNBQVM7Z0JBQ1osT0FBTyxDQUFDLEtBQWdCLEVBQUUsRUFBRSxDQUFDLElBQUksaUJBQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzdELE9BQU8sQ0FBQyxDQUFDLENBQUM7Z0JBQ1IsTUFBTSxXQUFXLEdBQVUsS0FBSyxDQUFDO2dCQUNqQyxNQUFNLElBQUksS0FBSyxDQUNiLGtDQUFrQyxNQUFNLENBQUUsV0FBb0MsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUN2RixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUExQkQsa0RBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHtcbiAgT3JnYW5pc2F0aW9uLFxuICB0eXBlIE9yZ2FuaXNhdGlvblByb3BzLFxuICB0eXBlIEFjY291bnRzQ29uZmlnXG59IGZyb20gXCIuL29yZ2FuaXNhdGlvblwiO1xuaW1wb3J0IHsgUGxhdGZvcm0sIHR5cGUgUGxhdGZvcm1Qcm9wcyB9IGZyb20gXCIuL3BsYXRmb3JtXCI7XG5pbXBvcnQgeyBBY2NvdW50LCB0eXBlIEFjY291bnRQcm9wcyB9IGZyb20gXCIuL2FjY291bnRcIjtcblxuZXhwb3J0IGludGVyZmFjZSBJT3JnYW5pc2F0aW9uUHJvcHMgZXh0ZW5kcyBPcmdhbmlzYXRpb25Qcm9wcyB7XG4gIHR5cGU6IFwib3JnYW5pc2F0aW9uXCI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBsYXRmb3JtUHJvcHMgZXh0ZW5kcyBQbGF0Zm9ybVByb3BzIHtcbiAgdHlwZTogXCJwbGF0Zm9ybVwiO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElBY2NvdW50UHJvcHMgZXh0ZW5kcyBBY2NvdW50UHJvcHMge1xuICB0eXBlOiBcImFjY291bnRcIjtcbn1cblxuZXhwb3J0IHR5cGUgQW55T3JnYW5pc2F0aW9uUHJvcHMgPVxuICB8IElPcmdhbmlzYXRpb25Qcm9wc1xuICB8IElQbGF0Zm9ybVByb3BzXG4gIHwgSUFjY291bnRQcm9wcztcblxuZXhwb3J0IGNsYXNzIE9yZ2FuaXNhdGlvbkZhY3Rvcnkge1xuICBzdGF0aWMgYnVpbGQoaWQ6IHN0cmluZywgcHJvcHM6IElPcmdhbmlzYXRpb25Qcm9wcyk6IE9yZ2FuaXNhdGlvbjtcbiAgc3RhdGljIGJ1aWxkKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IElQbGF0Zm9ybVByb3BzXG4gICk6IChzY29wZTogQ29uc3RydWN0KSA9PiBQbGF0Zm9ybTtcbiAgc3RhdGljIGJ1aWxkKGlkOiBzdHJpbmcsIHByb3BzOiBJQWNjb3VudFByb3BzKTogKHNjb3BlOiBDb25zdHJ1Y3QpID0+IEFjY291bnQ7XG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBBbnlPcmdhbmlzYXRpb25Qcm9wc1xuICApOiBPcmdhbmlzYXRpb24gfCAoKHNjb3BlOiBDb25zdHJ1Y3QpID0+IFBsYXRmb3JtIHwgQWNjb3VudCkge1xuICAgIHN3aXRjaCAocHJvcHMudHlwZSkge1xuICAgICAgY2FzZSBcIm9yZ2FuaXNhdGlvblwiOlxuICAgICAgICByZXR1cm4gbmV3IE9yZ2FuaXNhdGlvbihpZCwgcHJvcHMpO1xuICAgICAgY2FzZSBcInBsYXRmb3JtXCI6XG4gICAgICAgIHJldHVybiAoc2NvcGU6IENvbnN0cnVjdCkgPT4gbmV3IFBsYXRmb3JtKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgICAgY2FzZSBcImFjY291bnRcIjpcbiAgICAgICAgcmV0dXJuIChzY29wZTogQ29uc3RydWN0KSA9PiBuZXcgQWNjb3VudChzY29wZSwgaWQsIHByb3BzKTtcbiAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gcHJvcHM7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgVW5zdXBwb3J0ZWQgb3JnYW5pc2F0aW9uIHR5cGU6ICR7U3RyaW5nKChfZXhoYXVzdGl2ZSBhcyBBbnlPcmdhbmlzYXRpb25Qcm9wcykudHlwZSl9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5leHBvcnQgdHlwZSB7IEFjY291bnRzQ29uZmlnIH07XG4iXX0=
|
|
@@ -49,7 +49,7 @@ export declare class PatternFactory {
|
|
|
49
49
|
* - S3 buckets (assets, cache, media)
|
|
50
50
|
* - DynamoDB table (tag cache)
|
|
51
51
|
* - SQS FIFO queue (revalidation)
|
|
52
|
-
* - Lambda functions (server, image
|
|
52
|
+
* - Lambda functions (server, image optimisation, revalidation)
|
|
53
53
|
* - CloudFront distribution
|
|
54
54
|
*
|
|
55
55
|
* @param id - Construct ID (used for resource naming)
|
|
@@ -66,4 +66,4 @@ exports.PatternFactory = PatternFactory;
|
|
|
66
66
|
var pattern_js_1 = require("./interfaces/pattern.js");
|
|
67
67
|
Object.defineProperty(exports, "isPayloadPattern", { enumerable: true, get: function () { return pattern_js_1.isPayloadPattern; } });
|
|
68
68
|
Object.defineProperty(exports, "isPattern", { enumerable: true, get: function () { return pattern_js_1.isPattern; } });
|
|
69
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF0dGVybi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvcGF0dGVybi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQkc7OztBQUtILDZDQUF1QztBQWtFOUIsd0ZBbEVBLG9CQUFPLE9Ba0VBO0FBM0RoQjs7Ozs7R0FLRztBQUNILE1BQWEsY0FBYztJQTZCekI7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FDVixFQUFVLEVBQ1YsS0FBb0I7UUFFcEIsT0FBTyxDQUFDLEdBQVEsRUFBRSxLQUFnQixFQUFjLEVBQUU7WUFDaEQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQztZQUN2QixRQUFRLElBQUksRUFBRSxDQUFDO2dCQUNiLEtBQUssU0FBUztvQkFDWixPQUFPLElBQUksb0JBQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztnQkFDNUMsT0FBTyxDQUFDLENBQUMsQ0FBQztvQkFDUix5REFBeUQ7b0JBQ3pELE1BQU0sV0FBVyxHQUFVLElBQUksQ0FBQztvQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw2QkFBNkIsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDdEUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFsREQsd0NBa0RDO0FBY0Qsd0JBQXdCO0FBQ3hCLHNEQUFzRTtBQUE3RCw4R0FBQSxnQkFBZ0IsT0FBQTtBQUFFLHVHQUFBLFNBQVMsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogUGF0dGVybiBGYWN0b3J5IGZvciBIaWdoLUxldmVsIEluZnJhc3RydWN0dXJlIFBhdHRlcm5zLlxuICpcbiAqIFBhdHRlcm5GYWN0b3J5IGNyZWF0ZXMgY29tcG9zaXRlIGluZnJhc3RydWN0dXJlIHBhdHRlcm5zIHRoYXQgZW5jYXBzdWxhdGVcbiAqIG11bHRpcGxlIHJlbGF0ZWQgcmVzb3VyY2VzIGludG8gYSBzaW5nbGUsIGNvaGVzaXZlIHVuaXQuIFRoaXMgcmVkdWNlc1xuICogYm9pbGVycGxhdGUgYW5kIGVuc3VyZXMgYmVzdCBwcmFjdGljZXMgZm9yIGNvbW1vbiBkZXBsb3ltZW50IHNjZW5hcmlvcy5cbiAqXG4gKiBDdXJyZW50bHkgc3VwcG9ydGVkIHBhdHRlcm5zOlxuICogLSBgcGF5bG9hZGA6IFBheWxvYWQgQ01TIGRlcGxveW1lbnQgd2l0aCBPcGVuTmV4dFxuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBNaW5pbWFsIC0gd29ya3Mgb3V0IG9mIGJveFxuICogY29uc3QgcGF5bG9hZCA9IGFwcC5hZGRQYXR0ZXJuKFBhdHRlcm5GYWN0b3J5LmJ1aWxkKFwiUGF5bG9hZEFwcFwiLCB7XG4gKiAgIHR5cGU6IFwicGF5bG9hZFwiLFxuICogICBuYW1lOiBcIm15LWNtc1wiLFxuICogICBzb3VyY2U6IFwiLi4vLi5cIlxuICogfSkpO1xuICpcbiAqIEBleGFtcGxlXG4gKiAvLyBDdXN0b21pc2VkIHdpdGggZXNjYXBlIGhhdGNoZXNcbiAqIGNvbnN0IHBheWxvYWQgPSBhcHAuYWRkUGF0dGVybihQYXR0ZXJuRmFjdG9yeS5idWlsZChcIlBheWxvYWRBcHBcIiwge1xuICogICB0eXBlOiBcInBheWxvYWRcIixcbiAqICAgbmFtZTogXCJteS1jbXNcIixcbiAqICAgc291cmNlOiBcIi4uLy4uXCIsXG4gKiAgIGRhdGFiYXNlOiB7IHR5cGU6IFwiQXVyb3JhXCIsIHB1YmxpY2x5QWNjZXNzaWJsZTogZmFsc2UgfSxcbiAqICAgY29tcHV0ZTogeyBtZW1vcnlTaXplOiAyMDQ4IH1cbiAqIH0pKTtcbiAqXG4gKiAvLyBBY2Nlc3MgdW5kZXJseWluZyByZXNvdXJjZXMgZm9yIGFkdmFuY2VkIGN1c3RvbWlzYXRpb25cbiAqIHBheWxvYWQuZ2V0RGF0YWJhc2UoKS5ncmFudENvbm5lY3Qob3RoZXJMYW1iZGEpO1xuICogcGF5bG9hZC5nZXRTZXJ2ZXIoKS5nZXRMYW1iZGFGdW5jdGlvbigpLmFkZEVudmlyb25tZW50KFwiQ1VTVE9NXCIsIFwidmFsdWVcIik7XG4gKi9cblxuaW1wb3J0IHsgdHlwZSBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5pbXBvcnQgdHlwZSBBcHAgZnJvbSBcIi4uLy4uL2FwcC5qc1wiO1xuaW1wb3J0IHsgUGF5bG9hZCB9IGZyb20gXCIuL3BheWxvYWQuanNcIjtcbmltcG9ydCB7XG4gIHR5cGUgSVBheWxvYWRQcm9wcyxcbiAgdHlwZSBJUGF0dGVyblByb3BzLFxuICB0eXBlIEFueVBhdHRlcm5cbn0gZnJvbSBcIi4vaW50ZXJmYWNlcy9wYXR0ZXJuLmpzXCI7XG5cbi8qKlxuICogRmFjdG9yeSBmb3IgY3JlYXRpbmcgaGlnaC1sZXZlbCBpbmZyYXN0cnVjdHVyZSBwYXR0ZXJucy5cbiAqXG4gKiBVc2VzIGRpc2NyaW1pbmF0ZWQgdW5pb24gKHR5cGU6IFwicGF5bG9hZFwiIHwgLi4uKSB0byByb3V0ZSB0byBzcGVjaWZpYyBpbXBsZW1lbnRhdGlvbnMuXG4gKiBFYWNoIHBhdHRlcm4gdHlwZSBoYXMgc3BlY2lmaWMgcHJvcHMgYW5kIHJldHVybnMgYSBzcGVjaWZpYyBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBjbGFzcyBQYXR0ZXJuRmFjdG9yeSB7XG4gIC8qKlxuICAgKiBCdWlsZCBhIFBheWxvYWQgQ01TIHBhdHRlcm4uXG4gICAqXG4gICAqIENyZWF0ZXMgYSBjb21wbGV0ZSBQYXlsb2FkIENNUyBpbmZyYXN0cnVjdHVyZTpcbiAgICogLSBSRFMgUG9zdGdyZVNRTCBkYXRhYmFzZSAoQXVyb3JhIG9yIEluc3RhbmNlKVxuICAgKiAtIFMzIGJ1Y2tldHMgKGFzc2V0cywgY2FjaGUsIG1lZGlhKVxuICAgKiAtIER5bmFtb0RCIHRhYmxlICh0YWcgY2FjaGUpXG4gICAqIC0gU1FTIEZJRk8gcXVldWUgKHJldmFsaWRhdGlvbilcbiAgICogLSBMYW1iZGEgZnVuY3Rpb25zIChzZXJ2ZXIsIGltYWdlIG9wdGltaXNhdGlvbiwgcmV2YWxpZGF0aW9uKVxuICAgKiAtIENsb3VkRnJvbnQgZGlzdHJpYnV0aW9uXG4gICAqXG4gICAqIEBwYXJhbSBpZCAtIENvbnN0cnVjdCBJRCAodXNlZCBmb3IgcmVzb3VyY2UgbmFtaW5nKVxuICAgKiBAcGFyYW0gcHJvcHMgLSBQYXlsb2FkIHBhdHRlcm4gY29uZmlndXJhdGlvblxuICAgKiBAcmV0dXJucyBGYWN0b3J5IGZ1bmN0aW9uIHRvIGNyZWF0ZSB0aGUgcGF0dGVyblxuICAgKi9cbiAgc3RhdGljIGJ1aWxkKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IElQYXlsb2FkUHJvcHNcbiAgKTogKGFwcDogQXBwLCBzY29wZTogQ29uc3RydWN0KSA9PiBQYXlsb2FkO1xuXG4gIC8qKlxuICAgKiBHZW5lcmljIGJ1aWxkIG1ldGhvZCAoaW1wbGVtZW50YXRpb24gc2lnbmF0dXJlKS5cbiAgICovXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBJUGF0dGVyblByb3BzXG4gICk6IChhcHA6IEFwcCwgc2NvcGU6IENvbnN0cnVjdCkgPT4gQW55UGF0dGVybjtcblxuICAvKipcbiAgICogSW1wbGVtZW50YXRpb24gb2YgdGhlIGJ1aWxkIG1ldGhvZC5cbiAgICogUm91dGVzIHRvIHNwZWNpZmljIHBhdHRlcm4gaW1wbGVtZW50YXRpb25zIGJhc2VkIG9uIHR5cGUgZGlzY3JpbWluYXRvci5cbiAgICovXG4gIHN0YXRpYyBidWlsZChcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBJUGF0dGVyblByb3BzXG4gICk6IChhcHA6IEFwcCwgc2NvcGU6IENvbnN0cnVjdCkgPT4gQW55UGF0dGVybiB7XG4gICAgcmV0dXJuIChhcHA6IEFwcCwgc2NvcGU6IENvbnN0cnVjdCk6IEFueVBhdHRlcm4gPT4ge1xuICAgICAgY29uc3QgeyB0eXBlIH0gPSBwcm9wcztcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlIFwicGF5bG9hZFwiOlxuICAgICAgICAgIHJldHVybiBuZXcgUGF5bG9hZChzY29wZSwgaWQsIGFwcCwgcHJvcHMpO1xuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgLy8gRXhoYXVzdGl2ZSBjaGVjayBlbnN1cmVzIGFsbCBwYXR0ZXJuIHR5cGVzIGFyZSBoYW5kbGVkXG4gICAgICAgICAgY29uc3QgX2V4aGF1c3RpdmU6IG5ldmVyID0gdHlwZTtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIHBhdHRlcm4gdHlwZTogJHtTdHJpbmcoX2V4aGF1c3RpdmUpfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgfVxufVxuXG4vLyBSZS1leHBvcnQgdHlwZXMgZm9yIGNvbnZlbmllbmNlXG5leHBvcnQgeyBQYXlsb2FkIH07XG5leHBvcnQgdHlwZSB7XG4gIElQYXlsb2FkUHJvcHMsXG4gIElQYXR0ZXJuUHJvcHMsXG4gIEFueVBhdHRlcm4sXG4gIElQYXlsb2FkLFxuICBQYXlsb2FkRGF0YWJhc2VDb25maWcsXG4gIFBheWxvYWRDb21wdXRlQ29uZmlnLFxuICBQYXlsb2FkQ2RuQ29uZmlnXG59IGZyb20gXCIuL2ludGVyZmFjZXMvcGF0dGVybi5qc1wiO1xuXG4vLyBSZS1leHBvcnQgdHlwZSBndWFyZHNcbmV4cG9ydCB7IGlzUGF5bG9hZFBhdHRlcm4sIGlzUGF0dGVybiB9IGZyb20gXCIuL2ludGVyZmFjZXMvcGF0dGVybi5qc1wiO1xuIl19
|
|
@@ -26,7 +26,7 @@ import type App from "../../app.js";
|
|
|
26
26
|
import { type IPayloadProps, type IPayload } from "./interfaces/pattern.js";
|
|
27
27
|
import { type RelationalDatabase, type DynamoDBDatabase } from "./database.js";
|
|
28
28
|
import { type LambdaCompute } from "./compute.js";
|
|
29
|
-
import { type
|
|
29
|
+
import { type Storage } from "./storage.js";
|
|
30
30
|
import { type QueueMessaging } from "./messaging.js";
|
|
31
31
|
import { type Cdn } from "./cdn.js";
|
|
32
32
|
/**
|
|
@@ -39,7 +39,7 @@ export declare class Payload extends Construct implements IPayload {
|
|
|
39
39
|
private readonly app;
|
|
40
40
|
private readonly props;
|
|
41
41
|
private readonly pascalName;
|
|
42
|
-
private
|
|
42
|
+
private _payloadSecret;
|
|
43
43
|
private _database;
|
|
44
44
|
private _server;
|
|
45
45
|
private _imageOptimisation;
|
|
@@ -75,13 +75,14 @@ export declare class Payload extends Construct implements IPayload {
|
|
|
75
75
|
private resolveSimpleDomain;
|
|
76
76
|
private resolveAdvancedDomain;
|
|
77
77
|
private createDnsRecord;
|
|
78
|
+
private exportPatternOutputs;
|
|
78
79
|
getDatabase(): RelationalDatabase;
|
|
79
80
|
getServer(): LambdaCompute;
|
|
80
81
|
getImageOptimisation(): LambdaCompute;
|
|
81
82
|
getRevalidation(): LambdaCompute;
|
|
82
|
-
getAssetsBucket():
|
|
83
|
-
getCacheBucket():
|
|
84
|
-
getMediaBucket():
|
|
83
|
+
getAssetsBucket(): Storage;
|
|
84
|
+
getCacheBucket(): Storage;
|
|
85
|
+
getMediaBucket(): Storage;
|
|
85
86
|
getTagCache(): DynamoDBDatabase;
|
|
86
87
|
getRevalidationQueue(): QueueMessaging;
|
|
87
88
|
getCdn(): Cdn;
|