@btc-embedded/cdk-extensions 0.5.5 → 0.5.7

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.
Files changed (40) hide show
  1. package/.gitlab-ci.yml +45 -0
  2. package/.jsii +321 -3
  3. package/API.md +2319 -898
  4. package/CHANGELOG.md +25 -0
  5. package/lib/constructs/SecureRestApi.js +1 -1
  6. package/lib/extensions/ApiGatewayExtension.js +1 -1
  7. package/lib/extensions/ApplicationLoadBalancerExtension.js +1 -1
  8. package/lib/extensions/CloudMapExtension.js +1 -1
  9. package/lib/extensions/DocumentDbAccessExtension.js +1 -1
  10. package/lib/extensions/DomainEventMessagingExtension.js +1 -1
  11. package/lib/extensions/ExtraContainerExtension.js +1 -1
  12. package/lib/extensions/LogExtension.js +1 -1
  13. package/lib/extensions/ModifyContainerDefinitionExtension.d.ts +10 -5
  14. package/lib/extensions/ModifyContainerDefinitionExtension.js +8 -5
  15. package/lib/extensions/ModifyTaskDefinitionExtension.d.ts +3 -6
  16. package/lib/extensions/ModifyTaskDefinitionExtension.js +3 -6
  17. package/lib/extensions/OpenTelemetryExtension.d.ts +30 -0
  18. package/lib/extensions/OpenTelemetryExtension.js +70 -0
  19. package/lib/extensions/PostgresDbAccessExtension.js +1 -1
  20. package/lib/extensions/SharedVolumeExtension.js +1 -1
  21. package/lib/extensions/TcpKeepAliveExtension.js +1 -1
  22. package/lib/extensions/index.d.ts +3 -0
  23. package/lib/extensions/index.js +4 -1
  24. package/lib/platform/ApiGateway.js +1 -1
  25. package/lib/platform/ApplicationLoadBalancer.js +1 -1
  26. package/lib/platform/DefaultUserPoolClients.js +1 -1
  27. package/lib/platform/DocumentDB.js +1 -1
  28. package/lib/platform/PrivateDnsNamespace.js +1 -1
  29. package/lib/platform/Vpc.js +1 -1
  30. package/package.json +12 -12
  31. package/lib/extensions/ImportValue.d.ts +0 -2
  32. package/lib/extensions/ImportValue.js +0 -12
  33. package/lib/extensions/S3BucketAccessExtension.d.ts +0 -13
  34. package/lib/extensions/S3BucketAccessExtension.js +0 -32
  35. package/lib/platform/AuthenticationStack.d.ts +0 -19
  36. package/lib/platform/AuthenticationStack.js +0 -92
  37. package/lib/platform/CloudMap.d.ts +0 -16
  38. package/lib/platform/CloudMap.js +0 -48
  39. package/lib/platform/MessageQueue.d.ts +0 -23
  40. package/lib/platform/MessageQueue.js +0 -166
@@ -75,5 +75,5 @@ class DefaultUserPoolClients extends constructs_1.Construct {
75
75
  }
76
76
  exports.DefaultUserPoolClients = DefaultUserPoolClients;
77
77
  _a = JSII_RTTI_SYMBOL_1;
78
- DefaultUserPoolClients[_a] = { fqn: "@btc-embedded/cdk-extensions.DefaultUserPoolClients", version: "0.5.5" };
78
+ DefaultUserPoolClients[_a] = { fqn: "@btc-embedded/cdk-extensions.DefaultUserPoolClients", version: "0.5.7" };
79
79
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFVzZXJQb29sQ2xpZW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9EZWZhdWx0VXNlclBvb2xDbGllbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEseURBT2lDO0FBQ2pDLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFrQzFDOztHQUVHO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxzQkFBUztJQUluRCxZQUNFLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQztRQUVsQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLE1BQU0sY0FBYyxHQUFHLElBQUksaUNBQW1CLENBQUM7WUFDN0MsU0FBUyxFQUFFLFlBQVk7WUFDdkIsZ0JBQWdCLEVBQUUsNEJBQTRCO1NBQy9DLENBQUMsQ0FBQztRQUVILE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsdUJBQXVCLEVBQUU7WUFDdkUsVUFBVSxFQUFFLEdBQUcsRUFBRSxTQUFTO1lBQzFCLE1BQU0sRUFBRSxDQUFDLGNBQWMsQ0FBQztTQUN6QixDQUFDLENBQUM7UUFFSCxNQUFNLGFBQWEsR0FDakIsS0FBSyxDQUFDLGtDQUFrQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ3JELDRDQUE4QixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FDNUMsSUFBSSxFQUFFLENBQUM7UUFFVixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsWUFBWSxJQUFJLEVBQUUsQ0FBQztRQUU5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDakUsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLGNBQWMsRUFBRSxJQUFJO1lBQ3BCLEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUU7b0JBQ0wsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEI7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsd0JBQVUsQ0FBQyxjQUFjLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2FBQzVEO1lBQ0QsMEJBQTBCLEVBQUU7Z0JBQzFCLDRDQUE4QixDQUFDLE9BQU87Z0JBQ3RDLEdBQUcsYUFBYTthQUNqQjtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSx3QkFBd0IsRUFBRTtZQUN2RSxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7WUFFeEIscURBQXFEO1lBQ3JELGNBQWMsRUFBRSxJQUFJO1lBQ3BCLFNBQVMsRUFBRTtnQkFDVCxZQUFZLEVBQUUsSUFBSTthQUNuQjtZQUVELEtBQUssRUFBRTtnQkFDTCxLQUFLLEVBQUU7b0JBQ0wsc0JBQXNCLEVBQUUsSUFBSTtpQkFDN0I7Z0JBQ0QsTUFBTSxFQUFFLENBQUMsd0JBQVUsQ0FBQyxNQUFNLEVBQUUsd0JBQVUsQ0FBQyxPQUFPLENBQUM7Z0JBQy9DLFlBQVksRUFBRTtvQkFDWiwyQkFBMkI7b0JBQzNCLFdBQVcsS0FBSyxDQUFDLElBQUkscUJBQXFCO29CQUMxQyxHQUFHLFlBQVk7aUJBQ2hCO2dCQUNELFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVTthQUM3QjtZQUNELDBCQUEwQixFQUFFO2dCQUMxQiw0Q0FBOEIsQ0FBQyxPQUFPO2dCQUN0QyxHQUFHLGFBQWE7YUFDakI7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFdBQVcsR0FBRyxJQUFBLHNCQUFjLEVBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXBELFdBQVcsQ0FBQztZQUNWLElBQUksRUFBRSwrQkFBK0I7WUFDckMsR0FBRyxFQUFFLHVCQUF1QjtZQUM1QixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0I7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLDZCQUE2QjtZQUNuQyxHQUFHLEVBQUUscUJBQXFCO1lBQzFCLEtBQUssRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQjtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQW5GSCx3REFvRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBJVXNlclBvb2wsXG4gIElVc2VyUG9vbENsaWVudCxcbiAgT0F1dGhTY29wZSxcbiAgUmVzb3VyY2VTZXJ2ZXJTY29wZSxcbiAgVXNlclBvb2xDbGllbnQsXG4gIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlcixcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlRXhwb3J0ZXIgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEZWZhdWx0VXNlclBvb2xDbGllbnRzUHJvcHMge1xuICAvKipcbiAgICogVGhlIHVzZXIgcG9vbCB3aGljaCBzaG91bGQgYmUgYXR0YWNoZWQgdG8gdGhlIGNsaWVudHMuXG4gICAqL1xuICByZWFkb25seSB1c2VyUG9vbDogSVVzZXJQb29sO1xuXG4gIC8qKlxuICAgKiBUaGUgZnVsbHkgcXVhbGlmaWVkIGRvbWFpbiBuYW1lIHdoaWNoIHRoZSBBTEIgd2lsbCBsaXN0ZW4gdG8uXG4gICAqXG4gICAqIFRoaXMgc2V0dGluZyBpcyB1c2VkIHRvIGNvbmZpZ3VyZSB0aGUgY29ycmVjdCBjYWxsYmFjayBVUkwgZm9yIHVzZXIgcG9vbFxuICAgKiBjbGllbnQgc3VjaCB0aGF0IHRoZSBBTEIgY2FuIHBlcmZvcm0gYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBmcWRuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdmFsaWQgbG9nb3V0IFVSTHMgd2hpY2ggc2hvdWxkIGJlIGFkZGVkIHRvIHRoZSBmcm9udGVuZCB1c2VyIHBvb2wgY2xpZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9nb3V0VXJscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGFkZGl0aW9uYWwgY2FsbGJhY2sgVVJMcyB3aGljaCB0aGUgZnJvbnRlbmQgdXNlcyBmb3IgT0lEQyBhdXRoZW50aWNhdGlvbi5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IGNhbGxiYWNrVXJscz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZ5IGFkZGl0aW9uYWwgdXNlciBwb29sIGlkZW50aXR5IHByb3ZpZGVycyB0byBlbmFibGUgZmVkZXJhdGVkIGxvZ2luLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRkaXRvbmFsVXNlclBvb2xJZGVudGl0eVByb3ZpZGVycz86IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIENyZWF0ZSBkZWZhdWx0IHVzZXIgcG9vbCBjbGllbnRzIGZvciB0aGUgZnJvbnRlbmQgYW5kIEFQSSBhY2Nlc3MuXG4gKi9cbmV4cG9ydCBjbGFzcyBEZWZhdWx0VXNlclBvb2xDbGllbnRzIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIGZyb250ZW5kQ2xpZW50OiBJVXNlclBvb2xDbGllbnQ7XG4gIHB1YmxpYyBhcGlDbGllbnQ6IElVc2VyUG9vbENsaWVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogQ29uc3RydWN0LFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcHJvcHM6IERlZmF1bHRVc2VyUG9vbENsaWVudHNQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIGNvbnN0IGFwaUFjY2Vzc1Njb3BlID0gbmV3IFJlc291cmNlU2VydmVyU2NvcGUoe1xuICAgICAgc2NvcGVOYW1lOiBcImFwaV9hY2Nlc3NcIixcbiAgICAgIHNjb3BlRGVzY3JpcHRpb246IFwiUkVTVCBBUEkgZnVsbCBhY2Nlc3Mgc2NvcGVcIixcbiAgICB9KTtcblxuICAgIGNvbnN0IHNlcnZlciA9IHByb3BzLnVzZXJQb29sLmFkZFJlc291cmNlU2VydmVyKFwiUkVTVEFQSVJlc291cmNlU2VydmVyXCIsIHtcbiAgICAgIGlkZW50aWZpZXI6IGAke2lkfVJFU1RBUElgLFxuICAgICAgc2NvcGVzOiBbYXBpQWNjZXNzU2NvcGVdLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcHJvdmlkZXJOYW1lcyA9XG4gICAgICBwcm9wcy5hZGRpdG9uYWxVc2VyUG9vbElkZW50aXR5UHJvdmlkZXJzPy5tYXAoKG5hbWUpID0+XG4gICAgICAgIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5jdXN0b20obmFtZSksXG4gICAgICApID8/IFtdO1xuXG4gICAgY29uc3QgY2FsbGJhY2tVcmxzID0gcHJvcHMuY2FsbGJhY2tVcmxzID8/IFtdO1xuXG4gICAgdGhpcy5hcGlDbGllbnQgPSBuZXcgVXNlclBvb2xDbGllbnQodGhpcywgXCJSRVNUQVBJVXNlclBvb2xDbGllbnRcIiwge1xuICAgICAgdXNlclBvb2w6IHByb3BzLnVzZXJQb29sLFxuICAgICAgZ2VuZXJhdGVTZWNyZXQ6IHRydWUsXG4gICAgICBvQXV0aDoge1xuICAgICAgICBmbG93czoge1xuICAgICAgICAgIGNsaWVudENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9LFxuICAgICAgICBzY29wZXM6IFtPQXV0aFNjb3BlLnJlc291cmNlU2VydmVyKHNlcnZlciwgYXBpQWNjZXNzU2NvcGUpXSxcbiAgICAgIH0sXG4gICAgICBzdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyczogW1xuICAgICAgICBVc2VyUG9vbENsaWVudElkZW50aXR5UHJvdmlkZXIuQ09HTklUTyxcbiAgICAgICAgLi4ucHJvdmlkZXJOYW1lcyxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmZyb250ZW5kQ2xpZW50ID0gbmV3IFVzZXJQb29sQ2xpZW50KHRoaXMsIFwiRnJvbnRlbmRVc2VyUG9vbENsaWVudFwiLCB7XG4gICAgICB1c2VyUG9vbDogcHJvcHMudXNlclBvb2wsXG5cbiAgICAgIC8vIFJlcXVpcmVkIG1pbmltYWwgY29uZmlndXJhdGlvbiBmb3IgdXNlIHdpdGggYW4gRUxCXG4gICAgICBnZW5lcmF0ZVNlY3JldDogdHJ1ZSxcbiAgICAgIGF1dGhGbG93czoge1xuICAgICAgICB1c2VyUGFzc3dvcmQ6IHRydWUsXG4gICAgICB9LFxuXG4gICAgICBvQXV0aDoge1xuICAgICAgICBmbG93czoge1xuICAgICAgICAgIGF1dGhvcml6YXRpb25Db2RlR3JhbnQ6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNjb3BlczogW09BdXRoU2NvcGUuT1BFTklELCBPQXV0aFNjb3BlLlBST0ZJTEVdLFxuICAgICAgICBjYWxsYmFja1VybHM6IFtcbiAgICAgICAgICAvLyBhZGQgY2FsbGJhY2sgVVJMIGZvciBBTEJcbiAgICAgICAgICBgaHR0cHM6Ly8ke3Byb3BzLmZxZG59L29hdXRoMi9pZHByZXNwb25zZWAsXG4gICAgICAgICAgLi4uY2FsbGJhY2tVcmxzLFxuICAgICAgICBdLFxuICAgICAgICBsb2dvdXRVcmxzOiBwcm9wcy5sb2dvdXRVcmxzLFxuICAgICAgfSxcbiAgICAgIHN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzOiBbXG4gICAgICAgIFVzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5DT0dOSVRPLFxuICAgICAgICAuLi5wcm92aWRlck5hbWVzLFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJjb2duaXRvXCIpO1xuXG4gICAgZXhwb3J0VmFsdWUoe1xuICAgICAgbmFtZTogXCJDb2duaXRvIEZ1bGwgQWNjZXNzIENsaWVudCBJZFwiLFxuICAgICAga2V5OiBcImZ1bGwtYWNjZXNzLWNsaWVudC1pZFwiLFxuICAgICAgdmFsdWU6IHRoaXMuYXBpQ2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIkNvZ25pdG8gVXNlciBQb29sIENsaWVudCBJZFwiLFxuICAgICAga2V5OiBcInVzZXItcG9vbC1jbGllbnQtaWRcIixcbiAgICAgIHZhbHVlOiB0aGlzLmZyb250ZW5kQ2xpZW50LnVzZXJQb29sQ2xpZW50SWQsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -43,5 +43,5 @@ class DocumentDB extends constructs_1.Construct {
43
43
  }
44
44
  exports.DocumentDB = DocumentDB;
45
45
  _a = JSII_RTTI_SYMBOL_1;
46
- DocumentDB[_a] = { fqn: "@btc-embedded/cdk-extensions.DocumentDB", version: "0.5.5" };
46
+ DocumentDB[_a] = { fqn: "@btc-embedded/cdk-extensions.DocumentDB", version: "0.5.7" };
47
47
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRG9jdW1lbnREQi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9Eb2N1bWVudERCLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTBDO0FBQzFDLHFEQUF3RDtBQUN4RCxpREFLNkI7QUFDN0IsdUVBQXdEO0FBQ3hELDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFTMUMsTUFBYSxVQUFXLFNBQVEsc0JBQVM7SUFHdkMsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtRQUM5RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRWpCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSwyQkFBZSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDckQsVUFBVSxFQUFFO2dCQUNWLFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUM1QixpQkFBaUIsRUFBRSxrQ0FBa0M7YUFDdEQ7WUFDRCxZQUFZLEVBQUUsc0JBQVksQ0FBQyxFQUFFLENBQUMsdUJBQWEsQ0FBQyxFQUFFLEVBQUUsc0JBQVksQ0FBQyxNQUFNLENBQUM7WUFDcEUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1NBQ2YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxRQUFRLEdBQUcsMkJBQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDdkUsbUJBQW1CLENBQUMsVUFBVSxDQUFDO1lBQ2hDLDRFQUE0RTthQUMzRSxZQUFZLEVBQUUsQ0FBQztRQUVsQixNQUFNLE1BQU0sR0FBRyxJQUFJLDJCQUFNLENBQUMsSUFBSSxFQUFFLGVBQWUsRUFBRTtZQUMvQyxpQkFBaUIsRUFBRSxJQUFJLHlCQUFXLENBQ2hDLGFBQWEsS0FBSyxDQUFDLFFBQVEsSUFBSSxRQUFRLElBQ3JDLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLFFBQy9CLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLCtFQUErRSxDQUMvSDtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLENBQUM7UUFFeEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLDhCQUE4QjtZQUNwQyxHQUFHLEVBQUUsbUJBQW1CO1lBQ3hCLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWU7U0FDcEMsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixHQUFHLEVBQUUsWUFBWTtZQUNqQixLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVM7U0FDeEIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUExQ0gsZ0NBMkNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2VjcmV0VmFsdWUgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IERhdGFiYXNlQ2x1c3RlciB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZG9jZGJcIjtcbmltcG9ydCB7XG4gIElWcGMsXG4gIEluc3RhbmNlQ2xhc3MsXG4gIEluc3RhbmNlU2l6ZSxcbiAgSW5zdGFuY2VUeXBlLFxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgU2VjcmV0IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGNyZWF0ZUV4cG9ydGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnREQlByb3BzIHtcbiAgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHVzZXJuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlY3JldE5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xufVxuXG5leHBvcnQgY2xhc3MgRG9jdW1lbnREQiBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHByaXZhdGUgY2x1c3RlcjogRGF0YWJhc2VDbHVzdGVyO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBEb2N1bWVudERCUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy5jbHVzdGVyID0gbmV3IERhdGFiYXNlQ2x1c3Rlcih0aGlzLCBgRG9jdW1lbnREYmAsIHtcbiAgICAgIG1hc3RlclVzZXI6IHtcbiAgICAgICAgdXNlcm5hbWU6IHByb3BzLnVzZXJuYW1lLFxuICAgICAgICBzZWNyZXROYW1lOiBwcm9wcy5zZWNyZXROYW1lLFxuICAgICAgICBleGNsdWRlQ2hhcmFjdGVyczogXCJcXFwiQCUmL1xcXFx7fSgpW108PnxgJyw6Oys/fio9IV4jXy1cIixcbiAgICAgIH0sXG4gICAgICBpbnN0YW5jZVR5cGU6IEluc3RhbmNlVHlwZS5vZihJbnN0YW5jZUNsYXNzLlQzLCBJbnN0YW5jZVNpemUuTUVESVVNKSxcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFzc3dvcmQgPSBTZWNyZXQuZnJvbVNlY3JldE5hbWVWMih0aGlzLCBcIlNlY3JldFwiLCBwcm9wcy5zZWNyZXROYW1lKVxuICAgICAgLnNlY3JldFZhbHVlRnJvbUpzb24oXCJwYXNzd29yZFwiKVxuICAgICAgLy8gVW5zYWZlIHVud3JhcCBpcyBva2F5LCBzaW5jZSB0aGUgb25seSB1c2UgaXMgdG8gd3JhcCBpdCBpbiBhbm90aGVyIHNlY3JldFxuICAgICAgLnVuc2FmZVVud3JhcCgpO1xuXG4gICAgY29uc3Qgc2VjcmV0ID0gbmV3IFNlY3JldCh0aGlzLCBcImRiLXVybC1zZWNyZXRcIiwge1xuICAgICAgc2VjcmV0U3RyaW5nVmFsdWU6IG5ldyBTZWNyZXRWYWx1ZShcbiAgICAgICAgYG1vbmdvZGI6Ly8ke3Byb3BzLnVzZXJuYW1lfToke3Bhc3N3b3JkfUAke1xuICAgICAgICAgIHRoaXMuY2x1c3Rlci5jbHVzdGVyRW5kcG9pbnQuaG9zdG5hbWVcbiAgICAgICAgfToke3RoaXMuY2x1c3Rlci5jbHVzdGVyRW5kcG9pbnQucG9ydEFzU3RyaW5nKCl9Lz90bHM9dHJ1ZSZyZXBsaWNhU2V0PXJzMCZyZWFkUHJlZmVyZW5jZT1zZWNvbmRhcnlQcmVmZXJyZWQmcmV0cnlXcml0ZXM9ZmFsc2VgLFxuICAgICAgKSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJkb2N1bWVudC1kYlwiKTtcblxuICAgIGV4cG9ydFZhbHVlKHtcbiAgICAgIG5hbWU6IFwiRG9jdW1lbnREQiBTZWN1cml0eSBHcm91cCBJZFwiLFxuICAgICAga2V5OiBcInNlY3VyaXR5LWdyb3VwLWlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy5jbHVzdGVyLnNlY3VyaXR5R3JvdXBJZCxcbiAgICB9KTtcblxuICAgIGV4cG9ydFZhbHVlKHtcbiAgICAgIG5hbWU6IFwiRG9jdW1lbnREQiBTZWNyZXQgQVJOXCIsXG4gICAgICBrZXk6IFwic2VjcmV0LWFyblwiLFxuICAgICAgdmFsdWU6IHNlY3JldC5zZWNyZXRBcm4sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -46,5 +46,5 @@ class PrivateDnsNamespace extends constructs_1.Construct {
46
46
  }
47
47
  exports.PrivateDnsNamespace = PrivateDnsNamespace;
48
48
  _a = JSII_RTTI_SYMBOL_1;
49
- PrivateDnsNamespace[_a] = { fqn: "@btc-embedded/cdk-extensions.PrivateDnsNamespace", version: "0.5.5" };
49
+ PrivateDnsNamespace[_a] = { fqn: "@btc-embedded/cdk-extensions.PrivateDnsNamespace", version: "0.5.7" };
50
50
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJpdmF0ZURuc05hbWVzcGFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9Qcml2YXRlRG5zTmFtZXNwYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQ0EsMkVBRzBDO0FBQzFDLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFjMUMsTUFBYSxtQkFBb0IsU0FBUSxzQkFBUztJQUVoRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsSUFBSSxLQUFLLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLDBDQUFtQixDQUFDLGlDQUFpQyxDQUNwRSxJQUFJLEVBQ0osWUFBWSxFQUNaO2dCQUNFLGFBQWEsRUFBRSxLQUFLLENBQUMsMEJBQTBCLENBQUMsU0FBUztnQkFDekQsV0FBVyxFQUFFLEtBQUssQ0FBQywwQkFBMEIsQ0FBQyxFQUFFO2dCQUNoRCxZQUFZLEVBQUUsS0FBSyxDQUFDLDBCQUEwQixDQUFDLEdBQUc7YUFDbkQsQ0FDRixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSwwQ0FBbUIsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7Z0JBQ3BFLElBQUksRUFBRSxLQUFLLENBQUMsYUFBYTtnQkFDekIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dCQUNkLFdBQVcsRUFBRSxtQkFBbUI7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUNiLHVFQUF1RSxDQUN4RSxDQUFDO1FBQ0osQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGVBQWU7WUFDckIsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZO1NBQ25DLENBQUMsQ0FBQztRQUVILFdBQVcsQ0FBQztZQUNWLElBQUksRUFBRSxjQUFjO1lBQ3BCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVztTQUNsQyxDQUFDLENBQUM7UUFFSCxXQUFXLENBQUM7WUFDVixJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLEdBQUcsRUFBRSxNQUFNO1lBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTdDSCxrREE4Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVnBjIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7XG4gIFByaXZhdGVEbnNOYW1lc3BhY2UgYXMgQVdTUHJpdmF0ZU5hbWVzcGFjZSxcbiAgSVByaXZhdGVEbnNOYW1lc3BhY2UsXG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc2VydmljZWRpc2NvdmVyeVwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGNyZWF0ZUV4cG9ydGVyIH0gZnJvbSBcIi4uL3V0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGVmaW5lZFByaXZhdGVEbnNOYW1lc3BhY2VQcm9wcyB7XG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlRG5zTmFtZXNwYWNlUHJvcHMge1xuICByZWFkb25seSBkZWZpbmVkUHJpdmF0ZURuc05hbWVzcGFjZT86IFByZWRlZmluZWRQcml2YXRlRG5zTmFtZXNwYWNlUHJvcHM7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZU5hbWU/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZwYzogSVZwYztcbn1cblxuZXhwb3J0IGNsYXNzIFByaXZhdGVEbnNOYW1lc3BhY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBJUHJpdmF0ZURuc05hbWVzcGFjZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByaXZhdGVEbnNOYW1lc3BhY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMuZGVmaW5lZFByaXZhdGVEbnNOYW1lc3BhY2UpIHtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gQVdTUHJpdmF0ZU5hbWVzcGFjZS5mcm9tUHJpdmF0ZURuc05hbWVzcGFjZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUHJpdmF0ZURuc1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZXNwYWNlTmFtZTogcHJvcHMuZGVmaW5lZFByaXZhdGVEbnNOYW1lc3BhY2UubmFtZXNwYWNlLFxuICAgICAgICAgIG5hbWVzcGFjZUlkOiBwcm9wcy5kZWZpbmVkUHJpdmF0ZURuc05hbWVzcGFjZS5pZCxcbiAgICAgICAgICBuYW1lc3BhY2VBcm46IHByb3BzLmRlZmluZWRQcml2YXRlRG5zTmFtZXNwYWNlLmFybixcbiAgICAgICAgfSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5uYW1lc3BhY2VOYW1lKSB7XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IG5ldyBBV1NQcml2YXRlTmFtZXNwYWNlKHRoaXMsIFwiUHJpdmF0ZURuc05hbWVzcGFjZVwiLCB7XG4gICAgICAgIG5hbWU6IHByb3BzLm5hbWVzcGFjZU5hbWUsXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcml2YXRlIE5hbWVzcGFjZVwiLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJFaXRoZXIgYSBkZWZpbmVkUHJpdmF0ZURuc05hbWVzcGFjZSBvciBhIG5hbWVzcGFjZU5hbWUgaGFzIHRvIGJlIHNldC5cIixcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJuYW1lc3BhY2VcIik7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBBUk5cIixcbiAgICAgIGtleTogXCJhcm5cIixcbiAgICAgIHZhbHVlOiB0aGlzLm5hbWVzcGFjZS5uYW1lc3BhY2VBcm4sXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBJRFwiLFxuICAgICAga2V5OiBcImlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy5uYW1lc3BhY2UubmFtZXNwYWNlSWQsXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBOYW1lXCIsXG4gICAgICBrZXk6IFwibmFtZVwiLFxuICAgICAgdmFsdWU6IHRoaXMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -67,5 +67,5 @@ class Vpc extends constructs_1.Construct {
67
67
  }
68
68
  exports.Vpc = Vpc;
69
69
  _a = JSII_RTTI_SYMBOL_1;
70
- Vpc[_a] = { fqn: "@btc-embedded/cdk-extensions.Vpc", version: "0.5.5" };
70
+ Vpc[_a] = { fqn: "@btc-embedded/cdk-extensions.Vpc", version: "0.5.7" };
71
71
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVnBjLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsYXRmb3JtL1ZwYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLGlEQUF3RTtBQUN4RSxpREFBNEQ7QUFDNUQsaURBQTBDO0FBQzFDLDJDQUF1QztBQUN2QyxvQ0FBMEM7QUFTMUMsTUFBYSxHQUFJLFNBQVEsc0JBQVM7SUFJaEM7Ozs7Ozs7O09BUUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQWU7UUFDdkQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLGFBQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRTtnQkFDaEQsT0FBTyxFQUFFLEtBQUssQ0FBQyxjQUFjO2FBQzlCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksYUFBTSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUU7Z0JBQ3pDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUM7Z0JBQ3pCLFdBQVcsRUFBRSxLQUFLLENBQUMsT0FBTzthQUMzQixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7UUFDbEUsQ0FBQztRQUVELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyx1QkFBdUIsSUFBSSxLQUFLLENBQUM7UUFDL0QsTUFBTSxZQUFZLEdBQWlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUU1RSxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBRTFELE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFFcEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGdCQUFnQjtZQUN0QixHQUFHLEVBQUUsUUFBUTtZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUs7U0FDOUIsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGNBQWM7WUFDcEIsR0FBRyxFQUFFLE1BQU07WUFDWCxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1NBQ2hDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxlQUF3QjtRQUNqRCxNQUFNLFNBQVMsR0FBRztZQUNoQixHQUFHLEVBQUUsSUFBSSxDQUFDLFdBQVc7U0FDdEIsQ0FBQztRQUVGLElBQUksZUFBZSxFQUFFLENBQUM7WUFDcEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLGFBQUcsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBQ3ZELGlCQUFpQixFQUFFLElBQUk7YUFDeEIsQ0FBQyxDQUFDO1lBRUgsT0FBTztnQkFDTCxHQUFHLFNBQVM7Z0JBQ1osMkJBQTJCLEVBQUUsRUFBRSxNQUFNLEVBQUUsZ0JBQWdCLEVBQUU7YUFDMUQsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDOztBQWxFSCxrQkFtRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBWcGMgYXMgQVdTVnBjLCBJSXBBZGRyZXNzZXMsIElWcGMgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjMlwiO1xuaW1wb3J0IHsgQ2x1c3RlciwgQ2x1c3RlclByb3BzIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIjtcbmltcG9ydCB7IEtleSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mta21zXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlRXhwb3J0ZXIgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBWcGNQcm9wcyB7XG4gIHJlYWRvbmx5IGRlZmluZWRWcGNOYW1lPzogc3RyaW5nO1xuICByZWFkb25seSB2cGNDaWRyPzogSUlwQWRkcmVzc2VzO1xuICByZWFkb25seSBtYXhBenM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGNyZWF0ZUttc0V4ZWNDb21tYW5kS2V5PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFZwYyBleHRlbmRzIENvbnN0cnVjdCB7XG4gIHB1YmxpYyB2cGNJbnN0YW5jZTogSVZwYztcbiAgcHVibGljIGNsdXN0ZXI6IENsdXN0ZXI7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSBzY29wZSBUaGUgcGFyZW50IGNvbnN0cnVjdCB0aGlzIGlzIHBhcnQgb2ZcbiAgICogQHBhcmFtIGlkIElkIG9mIHRoaXMgY29uc3RydWN0IGZvciBDbG91ZGZvcm1hdGlvblxuICAgKiBAcGFyYW0gcHJvcHMgUHJvcGVydGllcyBhbGxvd2luZyB0byBzZXQgYSBwcmVkZWZpbmVkIFZQQ05hbWUsIElQQWRyZXNzQmxvZyxcbiAgICogICAgICAgICAgICAgIG1heE51bWJlciBvZiBBWnMgYW5kIGRlY2lzaW9uIHdldGhlciB0byBjcmVhdGUgYSBLTVNLZXkgZm9yIHVzYWdlXG4gICAqICAgICAgICAgICAgICB3aXRoIHRoZSBFeGVjIGV4dGVuc2lvbi4gRGVmYXVsdHMgdG8gYW4gZW1wdHkgb2JqZWN0IGNyZWF0aW5nIGFcbiAgICogICAgICAgICAgICAgIGRlZGljYXRlZCBWUEMsIHdpdGggbWF4IDIgQVpTIGFuZCBOTyBLZXkgZm9yIEV4ZWNcbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBWcGNQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMuZGVmaW5lZFZwY05hbWUpIHtcbiAgICAgIHRoaXMudnBjSW5zdGFuY2UgPSBBV1NWcGMuZnJvbUxvb2t1cCh0aGlzLCBcIlZwY1wiLCB7XG4gICAgICAgIHZwY05hbWU6IHByb3BzLmRlZmluZWRWcGNOYW1lLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy52cGNDaWRyKSB7XG4gICAgICB0aGlzLnZwY0luc3RhbmNlID0gbmV3IEFXU1ZwYyh0aGlzLCBcIlZwY1wiLCB7XG4gICAgICAgIG1heEF6czogcHJvcHMubWF4QXpzID8/IDIsXG4gICAgICAgIGlwQWRkcmVzc2VzOiBwcm9wcy52cGNDaWRyLFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKFwiRWl0aGVyIGRlZmluZWRWcGNOYW1lIG9yIHZwY0NpZHIgaGF2ZSB0byBiZSBzZXQuXCIpO1xuICAgIH1cblxuICAgIGNvbnN0IHNob3VsZENyZWF0ZUtleSA9IHByb3BzLmNyZWF0ZUttc0V4ZWNDb21tYW5kS2V5ID8/IGZhbHNlO1xuICAgIGNvbnN0IGNsdXN0ZXJQcm9wczogQ2x1c3RlclByb3BzID0gdGhpcy5jcmVhdGVDbHVzdGVyUHJvcHMoc2hvdWxkQ3JlYXRlS2V5KTtcblxuICAgIHRoaXMuY2x1c3RlciA9IG5ldyBDbHVzdGVyKHRoaXMsIFwiQ2x1c3RlclwiLCBjbHVzdGVyUHJvcHMpO1xuXG4gICAgY29uc3QgZXhwb3J0VmFsdWUgPSBjcmVhdGVFeHBvcnRlcih0aGlzLCBcImNsdXN0ZXJcIik7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIkNsdXN0ZXIgVlBDIElEXCIsXG4gICAgICBrZXk6IFwidnBjLWlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy52cGNJbnN0YW5jZS52cGNJZCxcbiAgICB9KTtcblxuICAgIGV4cG9ydFZhbHVlKHtcbiAgICAgIG5hbWU6IFwiQ2x1c3RlciBOYW1lXCIsXG4gICAgICBrZXk6IFwibmFtZVwiLFxuICAgICAgdmFsdWU6IHRoaXMuY2x1c3Rlci5jbHVzdGVyTmFtZSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQ2x1c3RlclByb3BzKHNob3VsZENyZWF0ZUtleTogYm9vbGVhbik6IENsdXN0ZXJQcm9wcyB7XG4gICAgY29uc3QgYmFzZVByb3BzID0ge1xuICAgICAgdnBjOiB0aGlzLnZwY0luc3RhbmNlLFxuICAgIH07XG5cbiAgICBpZiAoc2hvdWxkQ3JlYXRlS2V5KSB7XG4gICAgICBjb25zdCBrbXNFbmNyeXB0aW9uS2V5ID0gbmV3IEtleSh0aGlzLCBcIkNsdXN0ZXJFeGVjS2V5XCIsIHtcbiAgICAgICAgZW5hYmxlS2V5Um90YXRpb246IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uYmFzZVByb3BzLFxuICAgICAgICBleGVjdXRlQ29tbWFuZENvbmZpZ3VyYXRpb246IHsga21zS2V5OiBrbXNFbmNyeXB0aW9uS2V5IH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBiYXNlUHJvcHM7XG4gIH1cbn1cbiJdfQ==
package/package.json CHANGED
@@ -38,31 +38,31 @@
38
38
  "devDependencies": {
39
39
  "@aws-cdk-containers/ecs-service-extensions": "2.0.1-alpha.535",
40
40
  "@types/jest": "^29.5.14",
41
- "@types/lodash": "^4.17.14",
42
- "@types/node": "^22.10.1",
41
+ "@types/lodash": "^4.17.15",
42
+ "@types/node": "^22.13.4",
43
43
  "@typescript-eslint/eslint-plugin": "^8",
44
44
  "@typescript-eslint/parser": "^8",
45
45
  "aws-cdk-lib": "2.172.0",
46
- "cdk-nag": "^2.35.14",
46
+ "cdk-nag": "^2.35.23",
47
47
  "commit-and-tag-version": "^12",
48
48
  "constructs": "10.0.5",
49
49
  "eslint": "^9",
50
50
  "eslint-config-prettier": "^9.1.0",
51
- "eslint-import-resolver-typescript": "^3.7.0",
51
+ "eslint-import-resolver-typescript": "^3.8.1",
52
52
  "eslint-plugin-import": "^2.31.0",
53
- "eslint-plugin-prettier": "^5.2.1",
53
+ "eslint-plugin-prettier": "^5.2.3",
54
54
  "jest": "^29.7.0",
55
- "jest-junit": "^15",
55
+ "jest-junit": "^16",
56
56
  "jsii": "~5.5.0",
57
- "jsii-diff": "^1.105.0",
57
+ "jsii-diff": "^1.106.0",
58
58
  "jsii-docgen": "^10.5.0",
59
- "jsii-pacmak": "^1.105.0",
59
+ "jsii-pacmak": "^1.106.0",
60
60
  "jsii-rosetta": "~5.5.0",
61
- "prettier": "^3.4.2",
62
- "projen": "^0.90.6",
61
+ "prettier": "^3.5.1",
62
+ "projen": "^0.91.11",
63
63
  "ts-jest": "^29.2.5",
64
64
  "ts-node": "^10.9.2",
65
- "typescript": "^5.7.2"
65
+ "typescript": "^5.7.3"
66
66
  },
67
67
  "peerDependencies": {
68
68
  "@aws-cdk-containers/ecs-service-extensions": ">=2.0.1-alpha.535",
@@ -80,7 +80,7 @@
80
80
  ],
81
81
  "main": "lib/index.js",
82
82
  "license": "Apache-2.0",
83
- "version": "0.5.5",
83
+ "version": "0.5.7",
84
84
  "jest": {
85
85
  "coverageProvider": "v8",
86
86
  "testMatch": [
@@ -1,2 +0,0 @@
1
- export declare function importValue(prefix: string, name: string): string;
2
- export declare function createImporter(...prefix: string[]): (...parts: string[]) => string;
@@ -1,12 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.importValue = importValue;
4
- exports.createImporter = createImporter;
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- function importValue(prefix, name) {
7
- return createImporter(prefix)(name);
8
- }
9
- function createImporter(...prefix) {
10
- return (...parts) => aws_cdk_lib_1.Fn.importValue(`${[...prefix, ...parts].join(':')}`);
11
- }
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW1wb3J0VmFsdWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5zaW9ucy9JbXBvcnRWYWx1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLGtDQUVDO0FBRUQsd0NBR0M7QUFURCw2Q0FBaUM7QUFFakMsU0FBZ0IsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFZO0lBQ3RELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDLENBQUM7QUFFRCxTQUFnQixjQUFjLENBQUMsR0FBRyxNQUFnQjtJQUNoRCxPQUFPLENBQUMsR0FBRyxLQUFlLEVBQUUsRUFBRSxDQUM1QixnQkFBRSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGbiB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuZXhwb3J0IGZ1bmN0aW9uIGltcG9ydFZhbHVlKHByZWZpeDogc3RyaW5nLCBuYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGNyZWF0ZUltcG9ydGVyKHByZWZpeCkobmFtZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVJbXBvcnRlciguLi5wcmVmaXg6IHN0cmluZ1tdKSB7XG4gIHJldHVybiAoLi4ucGFydHM6IHN0cmluZ1tdKSA9PlxuICAgIEZuLmltcG9ydFZhbHVlKGAke1suLi5wcmVmaXgsIC4uLnBhcnRzXS5qb2luKCc6Jyl9YCk7XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { ServiceExtension } from '@aws-cdk-containers/ecs-service-extensions';
2
- import { TaskDefinitionProps } from 'aws-cdk-lib/aws-ecs';
3
- export interface ResourceAccessExtensionProps {
4
- arn: string;
5
- actions: Array<string>;
6
- resources: Array<string>;
7
- }
8
- export declare class ResourceAccessExtension extends ServiceExtension {
9
- readonly props: ResourceAccessExtensionProps;
10
- readonly policyName: string;
11
- constructor(name: string, props: ResourceAccessExtensionProps);
12
- modifyTaskDefinitionProps(props: TaskDefinitionProps): TaskDefinitionProps;
13
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ResourceAccessExtension = void 0;
4
- const ecs_service_extensions_1 = require("@aws-cdk-containers/ecs-service-extensions");
5
- const iam = require("aws-cdk-lib/aws-iam");
6
- class ResourceAccessExtension extends ecs_service_extensions_1.ServiceExtension {
7
- constructor(name, props) {
8
- super(`${name}-resource-access-extension`);
9
- this.props = props;
10
- this.policyName = name;
11
- }
12
- modifyTaskDefinitionProps(props) {
13
- const role = props.taskRole ??
14
- new iam.Role(this.scope, 'TaskRole', {
15
- assumedBy: new iam.ServicePrincipal('ecs-tasks.amazonaws.com'),
16
- });
17
- role.attachInlinePolicy(new iam.Policy(this.scope, this.policyName, {
18
- statements: [
19
- new iam.PolicyStatement({
20
- actions: this.props.actions,
21
- resources: this.props.resources,
22
- }),
23
- ],
24
- }));
25
- return {
26
- ...props,
27
- taskRole: role,
28
- };
29
- }
30
- }
31
- exports.ResourceAccessExtension = ResourceAccessExtension;
32
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUzNCdWNrZXRBY2Nlc3NFeHRlbnNpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZXh0ZW5zaW9ucy9TM0J1Y2tldEFjY2Vzc0V4dGVuc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx1RkFBOEU7QUFFOUUsMkNBQTJDO0FBUTNDLE1BQWEsdUJBQXdCLFNBQVEseUNBQWdCO0lBSTNELFlBQVksSUFBWSxFQUFFLEtBQW1DO1FBQzNELEtBQUssQ0FBQyxHQUFHLElBQUksNEJBQTRCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztJQUN6QixDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBMEI7UUFDbEQsTUFBTSxJQUFJLEdBQ1IsS0FBSyxDQUFDLFFBQVE7WUFDZCxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUU7Z0JBQ25DLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQzthQUMvRCxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsa0JBQWtCLENBQ3JCLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDMUMsVUFBVSxFQUFFO2dCQUNWLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztvQkFDdEIsT0FBTyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTztvQkFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUztpQkFDaEMsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRyxLQUFLO1lBQ1IsUUFBUSxFQUFFLElBQUk7U0FDZixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBakNELDBEQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNlcnZpY2VFeHRlbnNpb24gfSBmcm9tICdAYXdzLWNkay1jb250YWluZXJzL2Vjcy1zZXJ2aWNlLWV4dGVuc2lvbnMnO1xuaW1wb3J0IHsgVGFza0RlZmluaXRpb25Qcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3MnO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlQWNjZXNzRXh0ZW5zaW9uUHJvcHMge1xuICBhcm46IHN0cmluZztcbiAgYWN0aW9uczogQXJyYXk8c3RyaW5nPjtcbiAgcmVzb3VyY2VzOiBBcnJheTxzdHJpbmc+O1xufVxuXG5leHBvcnQgY2xhc3MgUmVzb3VyY2VBY2Nlc3NFeHRlbnNpb24gZXh0ZW5kcyBTZXJ2aWNlRXh0ZW5zaW9uIHtcbiAgcmVhZG9ubHkgcHJvcHM6IFJlc291cmNlQWNjZXNzRXh0ZW5zaW9uUHJvcHM7XG4gIHJlYWRvbmx5IHBvbGljeU5hbWU6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihuYW1lOiBzdHJpbmcsIHByb3BzOiBSZXNvdXJjZUFjY2Vzc0V4dGVuc2lvblByb3BzKSB7XG4gICAgc3VwZXIoYCR7bmFtZX0tcmVzb3VyY2UtYWNjZXNzLWV4dGVuc2lvbmApO1xuICAgIHRoaXMucHJvcHMgPSBwcm9wcztcbiAgICB0aGlzLnBvbGljeU5hbWUgPSBuYW1lO1xuICB9XG5cbiAgbW9kaWZ5VGFza0RlZmluaXRpb25Qcm9wcyhwcm9wczogVGFza0RlZmluaXRpb25Qcm9wcyk6IFRhc2tEZWZpbml0aW9uUHJvcHMge1xuICAgIGNvbnN0IHJvbGUgPVxuICAgICAgcHJvcHMudGFza1JvbGUgPz9cbiAgICAgIG5ldyBpYW0uUm9sZSh0aGlzLnNjb3BlLCAnVGFza1JvbGUnLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdlY3MtdGFza3MuYW1hem9uYXdzLmNvbScpLFxuICAgICAgfSk7XG5cbiAgICByb2xlLmF0dGFjaElubGluZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5KHRoaXMuc2NvcGUsIHRoaXMucG9saWN5TmFtZSwge1xuICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogdGhpcy5wcm9wcy5hY3Rpb25zLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiB0aGlzLnByb3BzLnJlc291cmNlcyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucHJvcHMsXG4gICAgICB0YXNrUm9sZTogcm9sZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
@@ -1,19 +0,0 @@
1
- import { NestedStack, NestedStackProps } from "aws-cdk-lib";
2
- import { UserPool, UserPoolClient, UserPoolDomain } from "aws-cdk-lib/aws-cognito";
3
- import { Construct } from "constructs";
4
- export interface AuthenticationStackProps extends NestedStackProps {
5
- readonly instanceName: string;
6
- readonly cognitoUserPoolId: string;
7
- readonly cognitoIssuerURL: string;
8
- readonly cognitoDomainPrefix: string;
9
- readonly supportedIdentityProviders: string[];
10
- readonly defaultCallbackFqdn: string;
11
- }
12
- export declare class AuthenticationStack extends NestedStack {
13
- userPool: UserPool;
14
- userPoolClient: UserPoolClient;
15
- fullAccessApiClient: UserPoolClient;
16
- userPoolDomain: UserPoolDomain;
17
- constructor(scope: Construct, id: string, props: AuthenticationStackProps);
18
- private generateUrls;
19
- }
@@ -1,92 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.AuthenticationStack = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const aws_cognito_1 = require("aws-cdk-lib/aws-cognito");
8
- const utils_1 = require("../utils");
9
- class AuthenticationStack extends aws_cdk_lib_1.NestedStack {
10
- constructor(scope, id, props) {
11
- super(scope, id, props);
12
- if (props.cognitoUserPoolId === undefined) {
13
- this.userPool = new aws_cognito_1.UserPool(this, `${id}UserPool`);
14
- this.userPoolDomain = new aws_cognito_1.UserPoolDomain(this, props.cognitoDomainPrefix, {
15
- userPool: this.userPool,
16
- cognitoDomain: {
17
- domainPrefix: props.cognitoDomainPrefix,
18
- },
19
- });
20
- }
21
- else {
22
- this.userPool = aws_cognito_1.UserPool.fromUserPoolId(this, "ImportedUserPool", props.cognitoUserPoolId);
23
- this.userPoolDomain = aws_cognito_1.UserPoolDomain.fromDomainName(this, props.cognitoDomainPrefix, props.cognitoDomainPrefix);
24
- }
25
- const fullAccessScope = new aws_cognito_1.ResourceServerScope({
26
- scopeName: "full_access",
27
- scopeDescription: "Full access",
28
- });
29
- const server = this.userPool.addResourceServer("user-pool-rest-api", {
30
- identifier: `${props.instanceName}-RESTAPI`,
31
- scopes: [fullAccessScope],
32
- });
33
- this.fullAccessApiClient = new aws_cognito_1.UserPoolClient(this, "FullAccessApiClient", {
34
- userPool: this.userPool,
35
- generateSecret: true,
36
- oAuth: {
37
- flows: {
38
- clientCredentials: true,
39
- },
40
- scopes: [aws_cognito_1.OAuthScope.resourceServer(server, fullAccessScope)],
41
- },
42
- supportedIdentityProviders: [aws_cognito_1.UserPoolClientIdentityProvider.COGNITO],
43
- });
44
- this.userPoolClient = new aws_cognito_1.UserPoolClient(this, "${id}UserPoolClient", {
45
- userPool: this.userPool,
46
- // Required minimal configuration for use with an ELB
47
- generateSecret: true,
48
- authFlows: {
49
- userPassword: true,
50
- },
51
- oAuth: {
52
- flows: {
53
- authorizationCodeGrant: true,
54
- },
55
- scopes: [aws_cognito_1.OAuthScope.OPENID, aws_cognito_1.OAuthScope.PROFILE],
56
- ...this.generateUrls(props.defaultCallbackFqdn),
57
- },
58
- supportedIdentityProviders: [aws_cognito_1.UserPoolClientIdentityProvider.COGNITO],
59
- });
60
- const cfnClient = this.userPoolClient.node
61
- .defaultChild;
62
- cfnClient.addPropertyOverride("RefreshTokenValidity", 1);
63
- cfnClient.addPropertyOverride("SupportedIdentityProviders", props.supportedIdentityProviders);
64
- this.userPoolClient.userPoolClientSecret.toString();
65
- const exportValue = (0, utils_1.createExporter)(this, "cognito");
66
- exportValue({
67
- name: "Cognito Userpool Id",
68
- key: "user-pool-id",
69
- value: this.userPool.userPoolId,
70
- });
71
- exportValue({
72
- name: "Cognito Domain Prefix",
73
- key: "domain-prefix",
74
- value: props.cognitoDomainPrefix,
75
- });
76
- }
77
- generateUrls(fqdn) {
78
- return {
79
- callbackUrls: [
80
- `https://${fqdn}/oauth2/idpresponse`,
81
- `https://${fqdn}/`,
82
- `https://${fqdn}/tm`,
83
- `https://${fqdn}/tm/api/auth/callback/oidc`,
84
- ],
85
- logoutUrls: [`https://${fqdn}/tm`],
86
- };
87
- }
88
- }
89
- exports.AuthenticationStack = AuthenticationStack;
90
- _a = JSII_RTTI_SYMBOL_1;
91
- AuthenticationStack[_a] = { fqn: "@btc-embedded/cdk-extensions.AuthenticationStack", version: "0.0.0" };
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXV0aGVudGljYXRpb25TdGFjay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9wbGF0Zm9ybS9BdXRoZW50aWNhdGlvblN0YWNrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkNBQTREO0FBQzVELHlEQVNpQztBQUVqQyxvQ0FBMEM7QUFXMUMsTUFBYSxtQkFBb0IsU0FBUSx5QkFBVztJQUtsRCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQStCO1FBQ3ZFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3hCLElBQUksS0FBSyxDQUFDLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQzFDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxzQkFBUSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLDRCQUFjLENBQ3RDLElBQUksRUFDSixLQUFLLENBQUMsbUJBQW1CLEVBQ3pCO2dCQUNFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtnQkFDdkIsYUFBYSxFQUFFO29CQUNiLFlBQVksRUFBRSxLQUFLLENBQUMsbUJBQW1CO2lCQUN4QzthQUNGLENBQ0YsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxzQkFBUSxDQUFDLGNBQWMsQ0FDckMsSUFBSSxFQUNKLGtCQUFrQixFQUNsQixLQUFLLENBQUMsaUJBQWlCLENBQ1osQ0FBQztZQUNkLElBQUksQ0FBQyxjQUFjLEdBQUcsNEJBQWMsQ0FBQyxjQUFjLENBQ2pELElBQUksRUFDSixLQUFLLENBQUMsbUJBQW1CLEVBQ3pCLEtBQUssQ0FBQyxtQkFBbUIsQ0FDUixDQUFDO1FBQ3RCLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxJQUFJLGlDQUFtQixDQUFDO1lBQzlDLFNBQVMsRUFBRSxhQUFhO1lBQ3hCLGdCQUFnQixFQUFFLGFBQWE7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxvQkFBb0IsRUFBRTtZQUNuRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsWUFBWSxVQUFVO1lBQzNDLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztTQUMxQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxxQkFBcUIsRUFBRTtZQUN6RSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsY0FBYyxFQUFFLElBQUk7WUFDcEIsS0FBSyxFQUFFO2dCQUNMLEtBQUssRUFBRTtvQkFDTCxpQkFBaUIsRUFBRSxJQUFJO2lCQUN4QjtnQkFDRCxNQUFNLEVBQUUsQ0FBQyx3QkFBVSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsZUFBZSxDQUFDLENBQUM7YUFDN0Q7WUFDRCwwQkFBMEIsRUFBRSxDQUFDLDRDQUE4QixDQUFDLE9BQU8sQ0FBQztTQUNyRSxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksNEJBQWMsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDcEUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLHFEQUFxRDtZQUNyRCxjQUFjLEVBQUUsSUFBSTtZQUNwQixTQUFTLEVBQUU7Z0JBQ1QsWUFBWSxFQUFFLElBQUk7YUFDbkI7WUFFRCxLQUFLLEVBQUU7Z0JBQ0wsS0FBSyxFQUFFO29CQUNMLHNCQUFzQixFQUFFLElBQUk7aUJBQzdCO2dCQUNELE1BQU0sRUFBRSxDQUFDLHdCQUFVLENBQUMsTUFBTSxFQUFFLHdCQUFVLENBQUMsT0FBTyxDQUFDO2dCQUMvQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLG1CQUFtQixDQUFDO2FBQ2hEO1lBQ0QsMEJBQTBCLEVBQUUsQ0FBQyw0Q0FBOEIsQ0FBQyxPQUFPLENBQUM7U0FDckUsQ0FBQyxDQUFDO1FBRUgsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJO2FBQ3ZDLFlBQWlDLENBQUM7UUFDckMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pELFNBQVMsQ0FBQyxtQkFBbUIsQ0FDM0IsNEJBQTRCLEVBQzVCLEtBQUssQ0FBQywwQkFBMEIsQ0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFcEQsTUFBTSxXQUFXLEdBQUcsSUFBQSxzQkFBYyxFQUFDLElBQUksRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVwRCxXQUFXLENBQUM7WUFDVixJQUFJLEVBQUUscUJBQXFCO1lBQzNCLEdBQUcsRUFBRSxjQUFjO1lBQ25CLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVU7U0FDaEMsQ0FBQyxDQUFDO1FBRUgsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLHVCQUF1QjtZQUM3QixHQUFHLEVBQUUsZUFBZTtZQUNwQixLQUFLLEVBQUUsS0FBSyxDQUFDLG1CQUFtQjtTQUNqQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sWUFBWSxDQUNsQixJQUFZO1FBRVosT0FBTztZQUNMLFlBQVksRUFBRTtnQkFDWixXQUFXLElBQUkscUJBQXFCO2dCQUNwQyxXQUFXLElBQUksR0FBRztnQkFDbEIsV0FBVyxJQUFJLEtBQUs7Z0JBQ3BCLFdBQVcsSUFBSSw0QkFBNEI7YUFDNUM7WUFDRCxVQUFVLEVBQUUsQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDO1NBQ25DLENBQUM7SUFDSixDQUFDOztBQTVHSCxrREE2R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZXN0ZWRTdGFjaywgTmVzdGVkU3RhY2tQcm9wcyB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHtcbiAgQ2ZuVXNlclBvb2xDbGllbnQsXG4gIE9BdXRoU2NvcGUsXG4gIE9BdXRoU2V0dGluZ3MsXG4gIFJlc291cmNlU2VydmVyU2NvcGUsXG4gIFVzZXJQb29sLFxuICBVc2VyUG9vbENsaWVudCxcbiAgVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLFxuICBVc2VyUG9vbERvbWFpbixcbn0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgY3JlYXRlRXhwb3J0ZXIgfSBmcm9tIFwiLi4vdXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBBdXRoZW50aWNhdGlvblN0YWNrUHJvcHMgZXh0ZW5kcyBOZXN0ZWRTdGFja1Byb3BzIHtcbiAgcmVhZG9ubHkgaW5zdGFuY2VOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG9Vc2VyUG9vbElkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNvZ25pdG9Jc3N1ZXJVUkw6IHN0cmluZztcbiAgcmVhZG9ubHkgY29nbml0b0RvbWFpblByZWZpeDogc3RyaW5nO1xuICByZWFkb25seSBzdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyczogc3RyaW5nW107XG4gIHJlYWRvbmx5IGRlZmF1bHRDYWxsYmFja0ZxZG46IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uU3RhY2sgZXh0ZW5kcyBOZXN0ZWRTdGFjayB7XG4gIHB1YmxpYyB1c2VyUG9vbDogVXNlclBvb2w7XG4gIHB1YmxpYyB1c2VyUG9vbENsaWVudDogVXNlclBvb2xDbGllbnQ7XG4gIHB1YmxpYyBmdWxsQWNjZXNzQXBpQ2xpZW50OiBVc2VyUG9vbENsaWVudDtcbiAgcHVibGljIHVzZXJQb29sRG9tYWluOiBVc2VyUG9vbERvbWFpbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEF1dGhlbnRpY2F0aW9uU3RhY2tQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuICAgIGlmIChwcm9wcy5jb2duaXRvVXNlclBvb2xJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnVzZXJQb29sID0gbmV3IFVzZXJQb29sKHRoaXMsIGAke2lkfVVzZXJQb29sYCk7XG4gICAgICB0aGlzLnVzZXJQb29sRG9tYWluID0gbmV3IFVzZXJQb29sRG9tYWluKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwcm9wcy5jb2duaXRvRG9tYWluUHJlZml4LFxuICAgICAgICB7XG4gICAgICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICAgICAgY29nbml0b0RvbWFpbjoge1xuICAgICAgICAgICAgZG9tYWluUHJlZml4OiBwcm9wcy5jb2duaXRvRG9tYWluUHJlZml4LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVzZXJQb29sID0gVXNlclBvb2wuZnJvbVVzZXJQb29sSWQoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiSW1wb3J0ZWRVc2VyUG9vbFwiLFxuICAgICAgICBwcm9wcy5jb2duaXRvVXNlclBvb2xJZCxcbiAgICAgICkgYXMgVXNlclBvb2w7XG4gICAgICB0aGlzLnVzZXJQb29sRG9tYWluID0gVXNlclBvb2xEb21haW4uZnJvbURvbWFpbk5hbWUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHByb3BzLmNvZ25pdG9Eb21haW5QcmVmaXgsXG4gICAgICAgIHByb3BzLmNvZ25pdG9Eb21haW5QcmVmaXgsXG4gICAgICApIGFzIFVzZXJQb29sRG9tYWluO1xuICAgIH1cblxuICAgIGNvbnN0IGZ1bGxBY2Nlc3NTY29wZSA9IG5ldyBSZXNvdXJjZVNlcnZlclNjb3BlKHtcbiAgICAgIHNjb3BlTmFtZTogXCJmdWxsX2FjY2Vzc1wiLFxuICAgICAgc2NvcGVEZXNjcmlwdGlvbjogXCJGdWxsIGFjY2Vzc1wiLFxuICAgIH0pO1xuXG4gICAgY29uc3Qgc2VydmVyID0gdGhpcy51c2VyUG9vbC5hZGRSZXNvdXJjZVNlcnZlcihcInVzZXItcG9vbC1yZXN0LWFwaVwiLCB7XG4gICAgICBpZGVudGlmaWVyOiBgJHtwcm9wcy5pbnN0YW5jZU5hbWV9LVJFU1RBUElgLFxuICAgICAgc2NvcGVzOiBbZnVsbEFjY2Vzc1Njb3BlXSxcbiAgICB9KTtcblxuICAgIHRoaXMuZnVsbEFjY2Vzc0FwaUNsaWVudCA9IG5ldyBVc2VyUG9vbENsaWVudCh0aGlzLCBcIkZ1bGxBY2Nlc3NBcGlDbGllbnRcIiwge1xuICAgICAgdXNlclBvb2w6IHRoaXMudXNlclBvb2wsXG4gICAgICBnZW5lcmF0ZVNlY3JldDogdHJ1ZSxcbiAgICAgIG9BdXRoOiB7XG4gICAgICAgIGZsb3dzOiB7XG4gICAgICAgICAgY2xpZW50Q3JlZGVudGlhbHM6IHRydWUsXG4gICAgICAgIH0sXG4gICAgICAgIHNjb3BlczogW09BdXRoU2NvcGUucmVzb3VyY2VTZXJ2ZXIoc2VydmVyLCBmdWxsQWNjZXNzU2NvcGUpXSxcbiAgICAgIH0sXG4gICAgICBzdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVyczogW1VzZXJQb29sQ2xpZW50SWRlbnRpdHlQcm92aWRlci5DT0dOSVRPXSxcbiAgICB9KTtcblxuICAgIHRoaXMudXNlclBvb2xDbGllbnQgPSBuZXcgVXNlclBvb2xDbGllbnQodGhpcywgXCIke2lkfVVzZXJQb29sQ2xpZW50XCIsIHtcbiAgICAgIHVzZXJQb29sOiB0aGlzLnVzZXJQb29sLFxuICAgICAgLy8gUmVxdWlyZWQgbWluaW1hbCBjb25maWd1cmF0aW9uIGZvciB1c2Ugd2l0aCBhbiBFTEJcbiAgICAgIGdlbmVyYXRlU2VjcmV0OiB0cnVlLFxuICAgICAgYXV0aEZsb3dzOiB7XG4gICAgICAgIHVzZXJQYXNzd29yZDogdHJ1ZSxcbiAgICAgIH0sXG5cbiAgICAgIG9BdXRoOiB7XG4gICAgICAgIGZsb3dzOiB7XG4gICAgICAgICAgYXV0aG9yaXphdGlvbkNvZGVHcmFudDogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICAgICAgc2NvcGVzOiBbT0F1dGhTY29wZS5PUEVOSUQsIE9BdXRoU2NvcGUuUFJPRklMRV0sXG4gICAgICAgIC4uLnRoaXMuZ2VuZXJhdGVVcmxzKHByb3BzLmRlZmF1bHRDYWxsYmFja0ZxZG4pLFxuICAgICAgfSxcbiAgICAgIHN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzOiBbVXNlclBvb2xDbGllbnRJZGVudGl0eVByb3ZpZGVyLkNPR05JVE9dLFxuICAgIH0pO1xuXG4gICAgY29uc3QgY2ZuQ2xpZW50ID0gdGhpcy51c2VyUG9vbENsaWVudC5ub2RlXG4gICAgICAuZGVmYXVsdENoaWxkIGFzIENmblVzZXJQb29sQ2xpZW50O1xuICAgIGNmbkNsaWVudC5hZGRQcm9wZXJ0eU92ZXJyaWRlKFwiUmVmcmVzaFRva2VuVmFsaWRpdHlcIiwgMSk7XG4gICAgY2ZuQ2xpZW50LmFkZFByb3BlcnR5T3ZlcnJpZGUoXG4gICAgICBcIlN1cHBvcnRlZElkZW50aXR5UHJvdmlkZXJzXCIsXG4gICAgICBwcm9wcy5zdXBwb3J0ZWRJZGVudGl0eVByb3ZpZGVycyxcbiAgICApO1xuICAgIHRoaXMudXNlclBvb2xDbGllbnQudXNlclBvb2xDbGllbnRTZWNyZXQudG9TdHJpbmcoKTtcblxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJjb2duaXRvXCIpO1xuXG4gICAgZXhwb3J0VmFsdWUoe1xuICAgICAgbmFtZTogXCJDb2duaXRvIFVzZXJwb29sIElkXCIsXG4gICAgICBrZXk6IFwidXNlci1wb29sLWlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy51c2VyUG9vbC51c2VyUG9vbElkLFxuICAgIH0pO1xuXG4gICAgZXhwb3J0VmFsdWUoe1xuICAgICAgbmFtZTogXCJDb2duaXRvIERvbWFpbiBQcmVmaXhcIixcbiAgICAgIGtleTogXCJkb21haW4tcHJlZml4XCIsXG4gICAgICB2YWx1ZTogcHJvcHMuY29nbml0b0RvbWFpblByZWZpeCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2VuZXJhdGVVcmxzKFxuICAgIGZxZG46IHN0cmluZyxcbiAgKTogUGljazxPQXV0aFNldHRpbmdzLCBcImNhbGxiYWNrVXJsc1wiIHwgXCJsb2dvdXRVcmxzXCI+IHtcbiAgICByZXR1cm4ge1xuICAgICAgY2FsbGJhY2tVcmxzOiBbXG4gICAgICAgIGBodHRwczovLyR7ZnFkbn0vb2F1dGgyL2lkcHJlc3BvbnNlYCxcbiAgICAgICAgYGh0dHBzOi8vJHtmcWRufS9gLFxuICAgICAgICBgaHR0cHM6Ly8ke2ZxZG59L3RtYCxcbiAgICAgICAgYGh0dHBzOi8vJHtmcWRufS90bS9hcGkvYXV0aC9jYWxsYmFjay9vaWRjYCxcbiAgICAgIF0sXG4gICAgICBsb2dvdXRVcmxzOiBbYGh0dHBzOi8vJHtmcWRufS90bWBdLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { IVpc } from "aws-cdk-lib/aws-ec2";
2
- import { PrivateDnsNamespace } from "aws-cdk-lib/aws-servicediscovery";
3
- import { Construct } from "constructs";
4
- export interface PrivateDnsNamespaceProps {
5
- readonly arn: string;
6
- readonly id: string;
7
- readonly namespace: string;
8
- }
9
- export interface CloudMapProps {
10
- readonly privateDnsNamespace?: PrivateDnsNamespaceProps;
11
- readonly vpc: IVpc;
12
- }
13
- export declare class CloudMap extends Construct {
14
- readonly namespace: PrivateDnsNamespace;
15
- constructor(scope: Construct, id: string, props: CloudMapProps);
16
- }
@@ -1,48 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.CloudMap = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const aws_servicediscovery_1 = require("aws-cdk-lib/aws-servicediscovery");
7
- const constructs_1 = require("constructs");
8
- const utils_1 = require("../utils");
9
- class CloudMap extends constructs_1.Construct {
10
- constructor(scope, id, props) {
11
- super(scope, id);
12
- // Create a Cloud Map Namespace
13
- if (props.privateDnsNamespace) {
14
- this.namespace = aws_servicediscovery_1.PrivateDnsNamespace.fromPrivateDnsNamespaceAttributes(this, "PrivateDns", {
15
- namespaceName: props.privateDnsNamespace.namespace,
16
- namespaceId: props.privateDnsNamespace.id,
17
- namespaceArn: props.privateDnsNamespace.arn,
18
- });
19
- }
20
- else {
21
- this.namespace = new aws_servicediscovery_1.PrivateDnsNamespace(this, `${id}Namespace`, {
22
- name: `${id}.local`,
23
- vpc: props.vpc,
24
- description: "Private Namespace",
25
- });
26
- }
27
- const exportValue = (0, utils_1.createExporter)(this, "namespace");
28
- exportValue({
29
- name: "Namespace Arn",
30
- key: "arn",
31
- value: this.namespace.namespaceArn,
32
- });
33
- exportValue({
34
- name: "Namespace Id",
35
- key: "id",
36
- value: this.namespace.namespaceId,
37
- });
38
- exportValue({
39
- name: "Namespace Name",
40
- key: "name",
41
- value: this.namespace.namespaceName,
42
- });
43
- }
44
- }
45
- exports.CloudMap = CloudMap;
46
- _a = JSII_RTTI_SYMBOL_1;
47
- CloudMap[_a] = { fqn: "@btc-embedded/cdk-extensions.CloudMap", version: "0.3.0" };
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2xvdWRNYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGxhdGZvcm0vQ2xvdWRNYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFDQSwyRUFBdUU7QUFDdkUsMkNBQXVDO0FBQ3ZDLG9DQUEwQztBQWExQyxNQUFhLFFBQVMsU0FBUSxzQkFBUztJQUVyQyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQW9CO1FBQzVELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFakIsK0JBQStCO1FBQy9CLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRywwQ0FBbUIsQ0FBQyxpQ0FBaUMsQ0FDcEUsSUFBSSxFQUNKLFlBQVksRUFDWjtnQkFDRSxhQUFhLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFNBQVM7Z0JBQ2xELFdBQVcsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsRUFBRTtnQkFDekMsWUFBWSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHO2FBQzVDLENBQ3FCLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMENBQW1CLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUU7Z0JBQy9ELElBQUksRUFBRSxHQUFHLEVBQUUsUUFBUTtnQkFDbkIsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO2dCQUNkLFdBQVcsRUFBRSxtQkFBbUI7YUFDakMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUEsc0JBQWMsRUFBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdEQsV0FBVyxDQUFDO1lBQ1YsSUFBSSxFQUFFLGVBQWU7WUFDckIsR0FBRyxFQUFFLEtBQUs7WUFDVixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZO1NBQ25DLENBQUMsQ0FBQztRQUVILFdBQVcsQ0FBQztZQUNWLElBQUksRUFBRSxjQUFjO1lBQ3BCLEdBQUcsRUFBRSxJQUFJO1lBQ1QsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVztTQUNsQyxDQUFDLENBQUM7UUFFSCxXQUFXLENBQUM7WUFDVixJQUFJLEVBQUUsZ0JBQWdCO1lBQ3RCLEdBQUcsRUFBRSxNQUFNO1lBQ1gsS0FBSyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYTtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDOztBQTFDSCw0QkEyQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJVnBjIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IFByaXZhdGVEbnNOYW1lc3BhY2UgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlcnZpY2VkaXNjb3ZlcnlcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBjcmVhdGVFeHBvcnRlciB9IGZyb20gXCIuLi91dGlsc1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByaXZhdGVEbnNOYW1lc3BhY2VQcm9wcyB7XG4gIHJlYWRvbmx5IGFybjogc3RyaW5nO1xuICByZWFkb25seSBpZDogc3RyaW5nO1xuICByZWFkb25seSBuYW1lc3BhY2U6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZE1hcFByb3BzIHtcbiAgcmVhZG9ubHkgcHJpdmF0ZURuc05hbWVzcGFjZT86IFByaXZhdGVEbnNOYW1lc3BhY2VQcm9wcztcbiAgcmVhZG9ubHkgdnBjOiBJVnBjO1xufVxuXG5leHBvcnQgY2xhc3MgQ2xvdWRNYXAgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlOiBQcml2YXRlRG5zTmFtZXNwYWNlO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRNYXBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICAvLyBDcmVhdGUgYSBDbG91ZCBNYXAgTmFtZXNwYWNlXG4gICAgaWYgKHByb3BzLnByaXZhdGVEbnNOYW1lc3BhY2UpIHtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gUHJpdmF0ZURuc05hbWVzcGFjZS5mcm9tUHJpdmF0ZURuc05hbWVzcGFjZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiUHJpdmF0ZURuc1wiLFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZXNwYWNlTmFtZTogcHJvcHMucHJpdmF0ZURuc05hbWVzcGFjZS5uYW1lc3BhY2UsXG4gICAgICAgICAgbmFtZXNwYWNlSWQ6IHByb3BzLnByaXZhdGVEbnNOYW1lc3BhY2UuaWQsXG4gICAgICAgICAgbmFtZXNwYWNlQXJuOiBwcm9wcy5wcml2YXRlRG5zTmFtZXNwYWNlLmFybixcbiAgICAgICAgfSxcbiAgICAgICkgYXMgUHJpdmF0ZURuc05hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBuZXcgUHJpdmF0ZURuc05hbWVzcGFjZSh0aGlzLCBgJHtpZH1OYW1lc3BhY2VgLCB7XG4gICAgICAgIG5hbWU6IGAke2lkfS5sb2NhbGAsXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICBkZXNjcmlwdGlvbjogXCJQcml2YXRlIE5hbWVzcGFjZVwiLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IGV4cG9ydFZhbHVlID0gY3JlYXRlRXhwb3J0ZXIodGhpcywgXCJuYW1lc3BhY2VcIik7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBBcm5cIixcbiAgICAgIGtleTogXCJhcm5cIixcbiAgICAgIHZhbHVlOiB0aGlzLm5hbWVzcGFjZS5uYW1lc3BhY2VBcm4sXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBJZFwiLFxuICAgICAga2V5OiBcImlkXCIsXG4gICAgICB2YWx1ZTogdGhpcy5uYW1lc3BhY2UubmFtZXNwYWNlSWQsXG4gICAgfSk7XG5cbiAgICBleHBvcnRWYWx1ZSh7XG4gICAgICBuYW1lOiBcIk5hbWVzcGFjZSBOYW1lXCIsXG4gICAgICBrZXk6IFwibmFtZVwiLFxuICAgICAgdmFsdWU6IHRoaXMubmFtZXNwYWNlLm5hbWVzcGFjZU5hbWUsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,23 +0,0 @@
1
- import { IRole } from "aws-cdk-lib/aws-iam";
2
- import * as sqs from "aws-cdk-lib/aws-sqs";
3
- import { Construct } from "constructs";
4
- export interface MessageQueueProps {
5
- readonly scope: Construct;
6
- readonly id: string;
7
- readonly sourceServiceNames: string[];
8
- readonly eventName: string;
9
- readonly listenerServiceNames: string[];
10
- readonly maxReceiveCount?: number;
11
- readonly timeoutSeconds?: number;
12
- readonly endlessRetry?: boolean;
13
- readonly role: IRole;
14
- }
15
- export declare class MessageQueue extends Construct {
16
- readonly queueUrls: Record<string, string>;
17
- private sourceQueues;
18
- private listenerQueues;
19
- constructor(props: MessageQueueProps);
20
- getListenerQueue(serviceName: string): sqs.Queue;
21
- getSourceQueue(serviceName: string): sqs.Queue;
22
- private createQueue;
23
- }
@@ -1,166 +0,0 @@
1
- "use strict";
2
- var _a;
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.MessageQueue = void 0;
5
- const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
- const aws_cdk_lib_1 = require("aws-cdk-lib");
7
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
8
- const aws_lambda_1 = require("aws-cdk-lib/aws-lambda");
9
- const aws_lambda_event_sources_1 = require("aws-cdk-lib/aws-lambda-event-sources");
10
- const aws_lambda_nodejs_1 = require("aws-cdk-lib/aws-lambda-nodejs");
11
- const sns = require("aws-cdk-lib/aws-sns");
12
- const aws_sns_subscriptions_1 = require("aws-cdk-lib/aws-sns-subscriptions");
13
- const sqs = require("aws-cdk-lib/aws-sqs");
14
- const constructs_1 = require("constructs");
15
- const lodash_1 = require("lodash");
16
- const path = require("path");
17
- class MessageQueue extends constructs_1.Construct {
18
- constructor(props) {
19
- super(props.scope, props.id);
20
- this.sourceQueues = {};
21
- this.listenerQueues = {};
22
- const { sourceServiceNames, eventName, listenerServiceNames } = props;
23
- this.queueUrls = {};
24
- if (sourceServiceNames.length === 0 || listenerServiceNames.length === 0) {
25
- throw new Error("At least one source service name and one listener service name must be provided.");
26
- }
27
- const maxReceiveCount = props.maxReceiveCount ?? 10;
28
- if (listenerServiceNames.length === 1) {
29
- // Simple case, 1-to-1 -> Just one SQS queue
30
- const listenerServiceName = listenerServiceNames[0];
31
- // Create a single SQS queue with DLQ for one-to-one communication
32
- const queueName = `${eventName}-${listenerServiceName}`;
33
- const queue = this.createQueue({
34
- queueName,
35
- maxReceiveCount,
36
- timeOutSeconds: props.timeoutSeconds,
37
- endlessRetry: props.endlessRetry,
38
- });
39
- queue.grantSendMessages(props.role);
40
- queue.grantConsumeMessages(props.role);
41
- queue.addToResourcePolicy(new aws_iam_1.PolicyStatement({
42
- actions: ["sqs:*"],
43
- principals: [props.role],
44
- resources: [queue.queueArn],
45
- conditions: {
46
- StringEquals: {
47
- "aws:SourceArn": "*",
48
- },
49
- },
50
- }));
51
- sourceServiceNames.forEach((sourceServiceName) => {
52
- this.queueUrls[sourceServiceName] = queue.queueUrl;
53
- this.sourceQueues[sourceServiceName] = queue;
54
- });
55
- this.queueUrls[listenerServiceName] = queue.queueUrl;
56
- this.listenerQueues[listenerServiceName] = queue;
57
- }
58
- else {
59
- // More complex case 1-to-N -> SqS to SnS fan-out
60
- // Create SNS Topic for fan-out
61
- const topic = new sns.Topic(this, `${eventName}-topic`, {
62
- topicName: `${eventName}-topic`,
63
- fifo: true,
64
- });
65
- // Create input SQS Queue with DLQ for the emitting service
66
- const inputQueueName = `${eventName}-input`;
67
- const inputQueue = this.createQueue({
68
- queueName: inputQueueName,
69
- maxReceiveCount,
70
- timeOutSeconds: props.timeoutSeconds,
71
- endlessRetry: props.endlessRetry,
72
- });
73
- inputQueue.grantSendMessages(props.role);
74
- inputQueue.addToResourcePolicy(new aws_iam_1.PolicyStatement({
75
- actions: ["sqs:*"],
76
- principals: [props.role],
77
- resources: [inputQueue.queueArn],
78
- conditions: {
79
- StringEquals: {
80
- "aws:SourceArn": "*",
81
- },
82
- },
83
- }));
84
- const messageTransferFunc = new aws_lambda_nodejs_1.NodejsFunction(this, "SqsToSnsLambda", {
85
- runtime: aws_lambda_1.Runtime.NODEJS_18_X,
86
- entry: path.join(__dirname, "./functions/transfer.ts"),
87
- handler: "handler",
88
- environment: {
89
- TOPIC_ARN: topic.topicArn,
90
- },
91
- bundling: {
92
- minify: false,
93
- sourceMap: true,
94
- nodeModules: ["aws-lambda", "@types/aws-lambda"],
95
- },
96
- });
97
- inputQueue.grantConsumeMessages(messageTransferFunc);
98
- topic.grantPublish(messageTransferFunc);
99
- messageTransferFunc.addEventSource(new aws_lambda_event_sources_1.SqsEventSource(inputQueue, {
100
- batchSize: 1,
101
- }));
102
- sourceServiceNames.forEach((sourceServiceName) => {
103
- this.queueUrls[sourceServiceName] = inputQueue.queueUrl;
104
- this.sourceQueues[sourceServiceName] = inputQueue;
105
- });
106
- // Create SQS Queues with DLQ and subscribe to the topic
107
- listenerServiceNames.forEach((listenerServiceName) => {
108
- const listenerQueueName = `${listenerServiceName}-${eventName}-listener`;
109
- const listenerQueue = this.createQueue({
110
- queueName: listenerQueueName,
111
- maxReceiveCount,
112
- timeOutSeconds: props.timeoutSeconds,
113
- endlessRetry: props.endlessRetry,
114
- });
115
- listenerQueue.grantConsumeMessages(props.role);
116
- listenerQueue.addToResourcePolicy(new aws_iam_1.PolicyStatement({
117
- actions: ["sqs:*"],
118
- principals: [props.role],
119
- resources: [listenerQueue.queueArn],
120
- conditions: {
121
- StringEquals: {
122
- "aws:SourceArn": "*",
123
- },
124
- },
125
- }));
126
- // Subscribe SQS Queue to SNS Topic
127
- topic.addSubscription(new aws_sns_subscriptions_1.SqsSubscription(listenerQueue, { rawMessageDelivery: true }));
128
- this.queueUrls[listenerServiceName] = listenerQueue.queueUrl;
129
- this.listenerQueues[listenerServiceName] = listenerQueue;
130
- });
131
- }
132
- }
133
- getListenerQueue(serviceName) {
134
- return this.listenerQueues[serviceName];
135
- }
136
- getSourceQueue(serviceName) {
137
- return this.sourceQueues[serviceName];
138
- }
139
- createQueue({ queueName, maxReceiveCount, endlessRetry, timeOutSeconds, }) {
140
- const sharedProps = {
141
- queueName: `${queueName}.fifo`,
142
- fifo: true,
143
- visibilityTimeout: (0, lodash_1.isNil)(timeOutSeconds)
144
- ? aws_cdk_lib_1.Duration.seconds(120)
145
- : aws_cdk_lib_1.Duration.seconds(timeOutSeconds),
146
- };
147
- if (endlessRetry) {
148
- return new sqs.Queue(this, queueName, sharedProps);
149
- }
150
- const dlq = new sqs.Queue(this, `${queueName}-dlq.fifo`, {
151
- queueName: `${queueName}-dlq.fifo`,
152
- fifo: true,
153
- });
154
- return new sqs.Queue(this, queueName, {
155
- ...sharedProps,
156
- deadLetterQueue: {
157
- queue: dlq,
158
- maxReceiveCount,
159
- },
160
- });
161
- }
162
- }
163
- exports.MessageQueue = MessageQueue;
164
- _a = JSII_RTTI_SYMBOL_1;
165
- MessageQueue[_a] = { fqn: "@btc-embedded/cdk-extensions.MessageQueue", version: "0.3.0" };
166
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWVzc2FnZVF1ZXVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BsYXRmb3JtL01lc3NhZ2VRdWV1ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUF1QztBQUN2QyxpREFBNkQ7QUFDN0QsdURBQWlEO0FBQ2pELG1GQUFzRTtBQUN0RSxxRUFBK0Q7QUFDL0QsMkNBQTJDO0FBQzNDLDZFQUFvRTtBQUNwRSwyQ0FBMkM7QUFDM0MsMkNBQXVDO0FBQ3ZDLG1DQUErQjtBQUMvQiw2QkFBOEI7QUFjOUIsTUFBYSxZQUFhLFNBQVEsc0JBQVM7SUFNekMsWUFBWSxLQUF3QjtRQUNsQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFKdkIsaUJBQVksR0FBOEIsRUFBRSxDQUFDO1FBQzdDLG1CQUFjLEdBQThCLEVBQUUsQ0FBQztRQUtyRCxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLEdBQUcsS0FBSyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBRXBCLElBQUksa0JBQWtCLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekUsTUFBTSxJQUFJLEtBQUssQ0FDYixrRkFBa0YsQ0FDbkYsQ0FBQztRQUNKLENBQUM7UUFFRCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUVwRCxJQUFJLG9CQUFvQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0Qyw0Q0FBNEM7WUFDNUMsTUFBTSxtQkFBbUIsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVwRCxrRUFBa0U7WUFDbEUsTUFBTSxTQUFTLEdBQUcsR0FBRyxTQUFTLElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4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UUFDckQsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsR0FBRyxTQUFTLFdBQVcsRUFBRTtZQUN2RCxTQUFTLEVBQUUsR0FBRyxTQUFTLFdBQVc7WUFDbEMsSUFBSSxFQUFFLElBQUk7U0FDWCxDQUFDLENBQUM7UUFFSCxPQUFPLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ3BDLEdBQUcsV0FBVztZQUNkLGVBQWUsRUFBRTtnQkFDZixLQUFLLEVBQUUsR0FBRztnQkFDVixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6TEgsb0NBMExDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IElSb2xlLCBQb2xpY3lTdGF0ZW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgUnVudGltZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCI7XG5pbXBvcnQgeyBTcXNFdmVudFNvdXJjZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXNcIjtcbmltcG9ydCB7IE5vZGVqc0Z1bmN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzXCI7XG5pbXBvcnQgKiBhcyBzbnMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zbnNcIjtcbmltcG9ydCB7IFNxc1N1YnNjcmlwdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc25zLXN1YnNjcmlwdGlvbnNcIjtcbmltcG9ydCAqIGFzIHNxcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNxc1wiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSBcImxvZGFzaFwiO1xuaW1wb3J0IHBhdGggPSByZXF1aXJlKFwicGF0aFwiKTtcblxuZXhwb3J0IGludGVyZmFjZSBNZXNzYWdlUXVldWVQcm9wcyB7XG4gIHJlYWRvbmx5IHNjb3BlOiBDb25zdHJ1Y3Q7XG4gIHJlYWRvbmx5IGlkOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNvdXJjZVNlcnZpY2VOYW1lczogc3RyaW5nW107XG4gIHJlYWRvbmx5IGV2ZW50TmFtZTogc3RyaW5nO1xuICByZWFkb25seSBsaXN0ZW5lclNlcnZpY2VOYW1lczogc3RyaW5nW107XG4gIHJlYWRvbmx5IG1heFJlY2VpdmVDb3VudD86IG51bWJlcjtcbiAgcmVhZG9ubHkgdGltZW91dFNlY29uZHM/OiBudW1iZXI7XG4gIHJlYWRvbmx5IGVuZGxlc3NSZXRyeT86IGJvb2xlYW47XG4gIHJlYWRvbmx5IHJvbGU6IElSb2xlO1xufVxuXG5leHBvcnQgY2xhc3MgTWVzc2FnZVF1ZXVlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHF1ZXVlVXJsczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICBwcml2YXRlIHNvdXJjZVF1ZXVlczogUmVjb3JkPHN0cmluZywgc3FzLlF1ZXVlPiA9IHt9O1xuICBwcml2YXRlIGxpc3RlbmVyUXVldWVzOiBSZWNvcmQ8c3RyaW5nLCBzcXMuUXVldWU+ID0ge307XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IE1lc3NhZ2VRdWV1ZVByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMuc2NvcGUsIHByb3BzLmlkKTtcblxuICAgIGNvbnN0IHsgc291cmNlU2VydmljZU5hbWVzLCBldmVudE5hbWUsIGxpc3RlbmVyU2VydmljZU5hbWVzIH0gPSBwcm9wcztcbiAgICB0aGlzLnF1ZXVlVXJscyA9IHt9O1xuXG4gICAgaWYgKHNvdXJjZVNlcnZpY2VOYW1lcy5sZW5ndGggPT09IDAgfHwgbGlzdGVuZXJTZXJ2aWNlTmFtZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQXQgbGVhc3Qgb25lIHNvdXJjZSBzZXJ2aWNlIG5hbWUgYW5kIG9uZSBsaXN0ZW5lciBzZXJ2aWNlIG5hbWUgbXVzdCBiZSBwcm92aWRlZC5cIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgbWF4UmVjZWl2ZUNvdW50ID0gcHJvcHMubWF4UmVjZWl2ZUNvdW50ID8/IDEwO1xuXG4gICAgaWYgKGxpc3RlbmVyU2VydmljZU5hbWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgLy8gU2ltcGxlIGNhc2UsIDEtdG8tMSAtPiBKdXN0IG9uZSBTUVMgcXVldWVcbiAgICAgIGNvbnN0IGxpc3RlbmVyU2VydmljZU5hbWUgPSBsaXN0ZW5lclNlcnZpY2VOYW1lc1swXTtcblxuICAgICAgLy8gQ3JlYXRlIGEgc2luZ2xlIFNRUyBxdWV1ZSB3aXRoIERMUSBmb3Igb25lLXRvLW9uZSBjb21tdW5pY2F0aW9uXG4gICAgICBjb25zdCBxdWV1ZU5hbWUgPSBgJHtldmVudE5hbWV9LSR7bGlzdGVuZXJTZXJ2aWNlTmFtZX1gO1xuICAgICAgY29uc3QgcXVldWUgPSB0aGlzLmNyZWF0ZVF1ZXVlKHtcbiAgICAgICAgcXVldWVOYW1lLFxuICAgICAgICBtYXhSZWNlaXZlQ291bnQsXG4gICAgICAgIHRpbWVPdXRTZWNvbmRzOiBwcm9wcy50aW1lb3V0U2Vjb25kcyxcbiAgICAgICAgZW5kbGVzc1JldHJ5OiBwcm9wcy5lbmRsZXNzUmV0cnksXG4gICAgICB9KTtcbiAgICAgIHF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKHByb3BzLnJvbGUpO1xuICAgICAgcXVldWUuZ3JhbnRDb25zdW1lTWVzc2FnZXMocHJvcHMucm9sZSk7XG4gICAgICBxdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzcXM6KlwiXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbcHJvcHMucm9sZV0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm5dLFxuICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgICBcImF3czpTb3VyY2VBcm5cIjogXCIqXCIsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgICAgIHNvdXJjZVNlcnZpY2VOYW1lcy5mb3JFYWNoKChzb3VyY2VTZXJ2aWNlTmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXVlVXJsc1tzb3VyY2VTZXJ2aWNlTmFtZV0gPSBxdWV1ZS5xdWV1ZVVybDtcbiAgICAgICAgdGhpcy5zb3VyY2VRdWV1ZXNbc291cmNlU2VydmljZU5hbWVdID0gcXVldWU7XG4gICAgICB9KTtcbiAgICAgIHRoaXMucXVldWVVcmxzW2xpc3RlbmVyU2VydmljZU5hbWVdID0gcXVldWUucXVldWVVcmw7XG4gICAgICB0aGlzLmxpc3RlbmVyUXVldWVzW2xpc3RlbmVyU2VydmljZU5hbWVdID0gcXVldWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE1vcmUgY29tcGxleCBjYXNlIDEtdG8tTiAtPiBTcVMgdG8gU25TIGZhbi1vdXRcblxuICAgICAgLy8gQ3JlYXRlIFNOUyBUb3BpYyBmb3IgZmFuLW91dFxuICAgICAgY29uc3QgdG9waWMgPSBuZXcgc25zLlRvcGljKHRoaXMsIGAke2V2ZW50TmFtZX0tdG9waWNgLCB7XG4gICAgICAgIHRvcGljTmFtZTogYCR7ZXZlbnROYW1lfS10b3BpY2AsXG4gICAgICAgIGZpZm86IHRydWUsXG4gICAgICB9KTtcblxuICAgICAgLy8gQ3JlYXRlIGlucHV0IFNRUyBRdWV1ZSB3aXRoIERMUSBmb3IgdGhlIGVtaXR0aW5nIHNlcnZpY2VcbiAgICAgIGNvbnN0IGlucHV0UXVldWVOYW1lID0gYCR7ZXZlbnROYW1lfS1pbnB1dGA7XG4gICAgICBjb25zdCBpbnB1dFF1ZXVlID0gdGhpcy5jcmVhdGVRdWV1ZSh7XG4gICAgICAgIHF1ZXVlTmFtZTogaW5wdXRRdWV1ZU5hbWUsXG4gICAgICAgIG1heFJlY2VpdmVDb3VudCxcbiAgICAgICAgdGltZU91dFNlY29uZHM6IHByb3BzLnRpbWVvdXRTZWNvbmRzLFxuICAgICAgICBlbmRsZXNzUmV0cnk6IHByb3BzLmVuZGxlc3NSZXRyeSxcbiAgICAgIH0pO1xuXG4gICAgICBpbnB1dFF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKHByb3BzLnJvbGUpO1xuICAgICAgaW5wdXRRdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICBhY3Rpb25zOiBbXCJzcXM6KlwiXSxcbiAgICAgICAgICBwcmluY2lwYWxzOiBbcHJvcHMucm9sZV0sXG4gICAgICAgICAgcmVzb3VyY2VzOiBbaW5wdXRRdWV1ZS5xdWV1ZUFybl0sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgIFwiYXdzOlNvdXJjZUFyblwiOiBcIipcIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSksXG4gICAgICApO1xuICAgICAgY29uc3QgbWVzc2FnZVRyYW5zZmVyRnVuYyA9IG5ldyBOb2RlanNGdW5jdGlvbih0aGlzLCBcIlNxc1RvU25zTGFtYmRhXCIsIHtcbiAgICAgICAgcnVudGltZTogUnVudGltZS5OT0RFSlNfMThfWCxcbiAgICAgICAgZW50cnk6IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi9mdW5jdGlvbnMvdHJhbnNmZXIudHNcIiksXG4gICAgICAgIGhhbmRsZXI6IFwiaGFuZGxlclwiLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFRPUElDX0FSTjogdG9waWMudG9waWNBcm4sXG4gICAgICAgIH0sXG4gICAgICAgIGJ1bmRsaW5nOiB7XG4gICAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgICBzb3VyY2VNYXA6IHRydWUsXG4gICAgICAgICAgbm9kZU1vZHVsZXM6IFtcImF3cy1sYW1iZGFcIiwgXCJAdHlwZXMvYXdzLWxhbWJkYVwiXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgaW5wdXRRdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhtZXNzYWdlVHJhbnNmZXJGdW5jKTtcbiAgICAgIHRvcGljLmdyYW50UHVibGlzaChtZXNzYWdlVHJhbnNmZXJGdW5jKTtcbiAgICAgIG1lc3NhZ2VUcmFuc2ZlckZ1bmMuYWRkRXZlbnRTb3VyY2UoXG4gICAgICAgIG5ldyBTcXNFdmVudFNvdXJjZShpbnB1dFF1ZXVlLCB7XG4gICAgICAgICAgYmF0Y2hTaXplOiAxLFxuICAgICAgICB9KSxcbiAgICAgICk7XG5cbiAgICAgIHNvdXJjZVNlcnZpY2VOYW1lcy5mb3JFYWNoKChzb3VyY2VTZXJ2aWNlTmFtZSkgPT4ge1xuICAgICAgICB0aGlzLnF1ZXVlVXJsc1tzb3VyY2VTZXJ2aWNlTmFtZV0gPSBpbnB1dFF1ZXVlLnF1ZXVlVXJsO1xuICAgICAgICB0aGlzLnNvdXJjZVF1ZXVlc1tzb3VyY2VTZXJ2aWNlTmFtZV0gPSBpbnB1dFF1ZXVlO1xuICAgICAgfSk7XG5cbiAgICAgIC8vIENyZWF0ZSBTUVMgUXVldWVzIHdpdGggRExRIGFuZCBzdWJzY3JpYmUgdG8gdGhlIHRvcGljXG4gICAgICBsaXN0ZW5lclNlcnZpY2VOYW1lcy5mb3JFYWNoKChsaXN0ZW5lclNlcnZpY2VOYW1lKSA9PiB7XG4gICAgICAgIGNvbnN0IGxpc3RlbmVyUXVldWVOYW1lID0gYCR7bGlzdGVuZXJTZXJ2aWNlTmFtZX0tJHtldmVudE5hbWV9LWxpc3RlbmVyYDtcbiAgICAgICAgY29uc3QgbGlzdGVuZXJRdWV1ZSA9IHRoaXMuY3JlYXRlUXVldWUoe1xuICAgICAgICAgIHF1ZXVlTmFtZTogbGlzdGVuZXJRdWV1ZU5hbWUsXG4gICAgICAgICAgbWF4UmVjZWl2ZUNvdW50LFxuICAgICAgICAgIHRpbWVPdXRTZWNvbmRzOiBwcm9wcy50aW1lb3V0U2Vjb25kcyxcbiAgICAgICAgICBlbmRsZXNzUmV0cnk6IHByb3BzLmVuZGxlc3NSZXRyeSxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGlzdGVuZXJRdWV1ZS5ncmFudENvbnN1bWVNZXNzYWdlcyhwcm9wcy5yb2xlKTtcbiAgICAgICAgbGlzdGVuZXJRdWV1ZS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogW1wic3FzOipcIl0sXG4gICAgICAgICAgICBwcmluY2lwYWxzOiBbcHJvcHMucm9sZV0sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFtsaXN0ZW5lclF1ZXVlLnF1ZXVlQXJuXSxcbiAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgXCJhd3M6U291cmNlQXJuXCI6IFwiKlwiLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgKTtcbiAgICAgICAgLy8gU3Vic2NyaWJlIFNRUyBRdWV1ZSB0byBTTlMgVG9waWNcbiAgICAgICAgdG9waWMuYWRkU3Vic2NyaXB0aW9uKFxuICAgICAgICAgIG5ldyBTcXNTdWJzY3JpcHRpb24obGlzdGVuZXJRdWV1ZSwgeyByYXdNZXNzYWdlRGVsaXZlcnk6IHRydWUgfSksXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMucXVldWVVcmxzW2xpc3RlbmVyU2VydmljZU5hbWVdID0gbGlzdGVuZXJRdWV1ZS5xdWV1ZVVybDtcbiAgICAgICAgdGhpcy5saXN0ZW5lclF1ZXVlc1tsaXN0ZW5lclNlcnZpY2VOYW1lXSA9IGxpc3RlbmVyUXVldWU7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0TGlzdGVuZXJRdWV1ZShzZXJ2aWNlTmFtZTogc3RyaW5nKTogc3FzLlF1ZXVlIHtcbiAgICByZXR1cm4gdGhpcy5saXN0ZW5lclF1ZXVlc1tzZXJ2aWNlTmFtZV07XG4gIH1cblxuICBwdWJsaWMgZ2V0U291cmNlUXVldWUoc2VydmljZU5hbWU6IHN0cmluZyk6IHNxcy5RdWV1ZSB7XG4gICAgcmV0dXJuIHRoaXMuc291cmNlUXVldWVzW3NlcnZpY2VOYW1lXTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUXVldWUoe1xuICAgIHF1ZXVlTmFtZSxcbiAgICBtYXhSZWNlaXZlQ291bnQsXG4gICAgZW5kbGVzc1JldHJ5LFxuICAgIHRpbWVPdXRTZWNvbmRzLFxuICB9OiB7XG4gICAgcXVldWVOYW1lOiBzdHJpbmc7XG4gICAgbWF4UmVjZWl2ZUNvdW50OiBudW1iZXI7XG4gICAgZW5kbGVzc1JldHJ5PzogYm9vbGVhbjtcbiAgICB0aW1lT3V0U2Vjb25kcz86IG51bWJlcjtcbiAgfSk6IHNxcy5RdWV1ZSB7XG4gICAgY29uc3Qgc2hhcmVkUHJvcHMgPSB7XG4gICAgICBxdWV1ZU5hbWU6IGAke3F1ZXVlTmFtZX0uZmlmb2AsXG4gICAgICBmaWZvOiB0cnVlLFxuICAgICAgdmlzaWJpbGl0eVRpbWVvdXQ6IGlzTmlsKHRpbWVPdXRTZWNvbmRzKVxuICAgICAgICA/IER1cmF0aW9uLnNlY29uZHMoMTIwKVxuICAgICAgICA6IER1cmF0aW9uLnNlY29uZHModGltZU91dFNlY29uZHMpLFxuICAgIH07XG5cbiAgICBpZiAoZW5kbGVzc1JldHJ5KSB7XG4gICAgICByZXR1cm4gbmV3IHNxcy5RdWV1ZSh0aGlzLCBxdWV1ZU5hbWUsIHNoYXJlZFByb3BzKTtcbiAgICB9XG5cbiAgICBjb25zdCBkbHEgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIGAke3F1ZXVlTmFtZX0tZGxxLmZpZm9gLCB7XG4gICAgICBxdWV1ZU5hbWU6IGAke3F1ZXVlTmFtZX0tZGxxLmZpZm9gLFxuICAgICAgZmlmbzogdHJ1ZSxcbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgc3FzLlF1ZXVlKHRoaXMsIHF1ZXVlTmFtZSwge1xuICAgICAgLi4uc2hhcmVkUHJvcHMsXG4gICAgICBkZWFkTGV0dGVyUXVldWU6IHtcbiAgICAgICAgcXVldWU6IGRscSxcbiAgICAgICAgbWF4UmVjZWl2ZUNvdW50LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19