@rio-cloud/cdk-v2-constructs 9.0.0-alpha.4 → 9.0.0-alpha.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 (131) hide show
  1. package/.jsii +19 -19
  2. package/docs/AGENTS_DOCUMENTATION.md +213 -0
  3. package/lib/backup/backup-policy.d.ts +1 -1
  4. package/lib/backup/backup-policy.js +1 -1
  5. package/lib/certificate/cloud-front-certificate.d.ts +1 -1
  6. package/lib/certificate/cloud-front-certificate.js +4 -3
  7. package/lib/certificate/lambda/handler.cjs +21 -7
  8. package/lib/contributions/cop-frontend/cloudfront/contentSecurityPolicy.js +2 -2
  9. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.d.ts +1 -1
  10. package/lib/contributions/cop-frontend/cloudfront/rio-cloudfront-distribution.js +3 -3
  11. package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.d.ts +4 -4
  12. package/lib/contributions/smart-route/gitlab-runner/autoscaling-runner.js +1 -1
  13. package/lib/contributions/smart-route/gitlab-runner/runner-roles.d.ts +1 -1
  14. package/lib/contributions/smart-route/gitlab-runner/runner-roles.js +1 -1
  15. package/lib/contributions/team-claid/aws-backup-monitoring/aws-backup-monitoring.js +2 -2
  16. package/lib/contributions/team-claid/aws-glue/view-table.d.ts +1 -1
  17. package/lib/contributions/team-claid/aws-glue/view-table.js +1 -1
  18. package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.d.ts +2 -2
  19. package/lib/contributions/team-claid/datadog-usage-monitoring/datadog-usage-monitoring.js +2 -2
  20. package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.d.ts +1 -1
  21. package/lib/contributions/team-outbound-order-book/aws-ecs-abruptly-stopped-monitor/aws-ecs-abruptly-stopped-monitor.js +3 -3
  22. package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.d.ts +2 -2
  23. package/lib/contributions/team-shipper-inbound-blue/pipeline/pipeline-build-stage-actions.js +1 -1
  24. package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.d.ts +1 -1
  25. package/lib/contributions/team-transport/datadog/datadog-dashboard-construct.js +3 -3
  26. package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.d.ts +1 -1
  27. package/lib/contributions/team-transport/datadog/datadog-dashboard-downloader.js +2 -2
  28. package/lib/contributions/team-transport/datadog-synthetics/datadog-synthetics-test.js +4 -4
  29. package/lib/contributions/team-transport/pipeline/application-stage.d.ts +3 -3
  30. package/lib/contributions/team-transport/pipeline/application-stage.js +1 -1
  31. package/lib/contributions/team-transport/pipeline/build-project.d.ts +2 -2
  32. package/lib/contributions/team-transport/pipeline/build-project.js +1 -1
  33. package/lib/contributions/team-transport/pipeline/buildspecs.d.ts +1 -1
  34. package/lib/contributions/team-transport/pipeline/buildspecs.js +1 -1
  35. package/lib/contributions/team-transport/pipeline/datadog-monitors.d.ts +3 -3
  36. package/lib/contributions/team-transport/pipeline/datadog-monitors.js +1 -1
  37. package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.d.ts +1 -1
  38. package/lib/contributions/team-transport/pipeline/monitoring-deploy-step.js +2 -5
  39. package/lib/contributions/team-transport/pipeline/pipeline-stack.d.ts +5 -5
  40. package/lib/contributions/team-transport/pipeline/pipeline-stack.js +3 -3
  41. package/lib/datadog/datadog-log-index-monitoring.d.ts +1 -1
  42. package/lib/datadog/datadog-log-index-monitoring.js +1 -1
  43. package/lib/datadog/datadog-monitor.d.ts +1 -1
  44. package/lib/datadog/datadog-monitor.js +1 -1
  45. package/lib/datadogv2/datadog-dashboard.js +2 -2
  46. package/lib/datadogv2/datadog-lambda-instrumentation.d.ts +2 -2
  47. package/lib/datadogv2/datadog-lambda-instrumentation.js +1 -1
  48. package/lib/datadogv2/datadog-log-index-monitoring.d.ts +1 -1
  49. package/lib/datadogv2/datadog-log-index-monitoring.js +1 -1
  50. package/lib/datadogv2/datadog-monitor.d.ts +1 -1
  51. package/lib/datadogv2/datadog-monitor.js +1 -1
  52. package/lib/datadogv2/datadog-notification.d.ts +1 -1
  53. package/lib/datadogv2/datadog-notification.js +1 -1
  54. package/lib/datadogv2/datadog-service-catalog-entry.js +2 -2
  55. package/lib/datadogv2/datadog-shared-secrets.js +2 -2
  56. package/lib/datadogv2/secret-locator-custom-resource/on-create.cjs +3 -1
  57. package/lib/datadogv2/service-catalog-custom-resource/on-create.cjs +3 -1
  58. package/lib/datadogv2/validate-lambda-environment.d.ts +1 -1
  59. package/lib/datadogv2/validate-lambda-environment.js +1 -1
  60. package/lib/ecr/docker-hub-pull-through-cache.d.ts +1 -1
  61. package/lib/ecr/docker-hub-pull-through-cache.js +1 -1
  62. package/lib/fargate/codedeploy-custom-resources/run-monitoring-test-suite-runner.cjs +1 -1
  63. package/lib/fargate/datadog.d.ts +3 -3
  64. package/lib/fargate/datadog.js +1 -1
  65. package/lib/fargate/rio-fargate-service-blue-green-alpha.d.ts +1 -1
  66. package/lib/fargate/rio-fargate-service-blue-green-alpha.js +5 -5
  67. package/lib/fargate/rio-fargate-service.d.ts +1 -1
  68. package/lib/fargate/rio-fargate-service.js +1 -1
  69. package/lib/fargate/spring.d.ts +1 -1
  70. package/lib/fargate/spring.js +1 -1
  71. package/lib/iam/sonatype-oss-index-credentials.d.ts +2 -2
  72. package/lib/iam/sonatype-oss-index-credentials.js +1 -1
  73. package/lib/kafka/kafka-topic.d.ts +1 -1
  74. package/lib/kafka/kafka-topic.js +1 -1
  75. package/lib/kafka/rio-kafka-event-source.d.ts +2 -2
  76. package/lib/kafka/rio-kafka-event-source.js +1 -1
  77. package/lib/pipeline/delivery-performance-monitoring-override.d.ts +2 -2
  78. package/lib/pipeline/delivery-performance-monitoring-override.js +1 -1
  79. package/lib/pipeline/rio-backup-secrets-restore-stage.d.ts +1 -1
  80. package/lib/pipeline/rio-backup-secrets-restore-stage.js +4 -4
  81. package/lib/pipeline/rio-bitbucket-source-action.d.ts +2 -2
  82. package/lib/pipeline/rio-bitbucket-source-action.js +1 -1
  83. package/lib/pipeline/rio-pipeline-type.d.ts +1 -1
  84. package/lib/pipeline/rio-pipeline-type.js +1 -1
  85. package/lib/rio-landing-zone.d.ts +1 -1
  86. package/lib/rio-landing-zone.js +1 -1
  87. package/lib/rio-load-balancer.d.ts +1 -1
  88. package/lib/rio-load-balancer.js +1 -1
  89. package/lib/sbom-catalog/catalog-project.d.ts +1 -1
  90. package/lib/sbom-catalog/catalog-project.js +12 -9
  91. package/lib/sbom-catalog/lambda/handler.cjs +2 -1
  92. package/lib/ses/helper.js +2 -2
  93. package/lib/ses/ses-observability.js +2 -2
  94. package/lib/test/normalized-test-template.d.ts +1 -1
  95. package/lib/test/normalized-test-template.js +1 -1
  96. package/lib/toggle.d.ts +1 -1
  97. package/lib/toggle.js +2 -3
  98. package/lib/watchful/alb.d.ts +1 -1
  99. package/lib/watchful/alb.js +1 -1
  100. package/lib/watchful/aspect.d.ts +3 -3
  101. package/lib/watchful/aspect.js +1 -1
  102. package/lib/watchful/cloudfront.d.ts +2 -2
  103. package/lib/watchful/cloudfront.js +1 -1
  104. package/lib/watchful/datadog-log-alarm.d.ts +1 -1
  105. package/lib/watchful/datadog-log-alarm.js +2 -2
  106. package/lib/watchful/datadog-metric-alarm.d.ts +1 -1
  107. package/lib/watchful/datadog-metric-alarm.js +1 -3
  108. package/lib/watchful/docdb.d.ts +2 -2
  109. package/lib/watchful/docdb.js +1 -1
  110. package/lib/watchful/dynamodb.d.ts +2 -2
  111. package/lib/watchful/dynamodb.js +1 -1
  112. package/lib/watchful/ecs.d.ts +2 -2
  113. package/lib/watchful/ecs.js +1 -1
  114. package/lib/watchful/lambda.d.ts +2 -2
  115. package/lib/watchful/lambda.js +1 -1
  116. package/lib/watchful/metric-alarm.d.ts +1 -1
  117. package/lib/watchful/metric-alarm.js +1 -1
  118. package/lib/watchful/rds.d.ts +2 -2
  119. package/lib/watchful/rds.js +1 -1
  120. package/lib/watchful/targetgroup.d.ts +1 -1
  121. package/lib/watchful/targetgroup.js +1 -1
  122. package/lib/watchful/watchful.d.ts +11 -11
  123. package/lib/watchful/watchful.js +1 -1
  124. package/lib/watchfulv2/datadog-log-alarm.d.ts +2 -2
  125. package/lib/watchfulv2/datadog-log-alarm.js +2 -2
  126. package/lib/watchfulv2/datadog-metric-alarm.d.ts +2 -2
  127. package/lib/watchfulv2/datadog-metric-alarm.js +1 -3
  128. package/lib/watchfulv2/watchful.d.ts +4 -4
  129. package/lib/watchfulv2/watchful.js +1 -1
  130. package/package.json +2 -2
  131. package/version.json +1 -1
package/.jsii CHANGED
@@ -26011,7 +26011,7 @@
26011
26011
  "kind": "interface",
26012
26012
  "locationInModule": {
26013
26013
  "filename": "src/watchfulv2/watchful.ts",
26014
- "line": 11
26014
+ "line": 16
26015
26015
  },
26016
26016
  "name": "LogErrorMonitorProps",
26017
26017
  "namespace": "watchfulv2",
@@ -26027,7 +26027,7 @@
26027
26027
  "immutable": true,
26028
26028
  "locationInModule": {
26029
26029
  "filename": "src/watchfulv2/watchful.ts",
26030
- "line": 31
26030
+ "line": 36
26031
26031
  },
26032
26032
  "name": "createCasesFromErrorLogMonitors",
26033
26033
  "optional": true,
@@ -26046,7 +26046,7 @@
26046
26046
  "immutable": true,
26047
26047
  "locationInModule": {
26048
26048
  "filename": "src/watchfulv2/watchful.ts",
26049
- "line": 16
26049
+ "line": 21
26050
26050
  },
26051
26051
  "name": "disableAutoClose",
26052
26052
  "optional": true,
@@ -26064,7 +26064,7 @@
26064
26064
  "immutable": true,
26065
26065
  "locationInModule": {
26066
26066
  "filename": "src/watchfulv2/watchful.ts",
26067
- "line": 22
26067
+ "line": 27
26068
26068
  },
26069
26069
  "name": "priority",
26070
26070
  "optional": true,
@@ -26081,7 +26081,7 @@
26081
26081
  "immutable": true,
26082
26082
  "locationInModule": {
26083
26083
  "filename": "src/watchfulv2/watchful.ts",
26084
- "line": 36
26084
+ "line": 41
26085
26085
  },
26086
26086
  "name": "renotifyInterval",
26087
26087
  "optional": true,
@@ -26103,7 +26103,7 @@
26103
26103
  "kind": "interface",
26104
26104
  "locationInModule": {
26105
26105
  "filename": "src/watchfulv2/watchful.ts",
26106
- "line": 42
26106
+ "line": 47
26107
26107
  },
26108
26108
  "name": "QueryErrorMonitorProps",
26109
26109
  "namespace": "watchfulv2",
@@ -26118,7 +26118,7 @@
26118
26118
  "immutable": true,
26119
26119
  "locationInModule": {
26120
26120
  "filename": "src/watchfulv2/watchful.ts",
26121
- "line": 47
26121
+ "line": 52
26122
26122
  },
26123
26123
  "name": "priority",
26124
26124
  "optional": true,
@@ -26144,7 +26144,7 @@
26144
26144
  },
26145
26145
  "locationInModule": {
26146
26146
  "filename": "src/watchfulv2/watchful.ts",
26147
- "line": 107
26147
+ "line": 112
26148
26148
  },
26149
26149
  "parameters": [
26150
26150
  {
@@ -26171,7 +26171,7 @@
26171
26171
  "kind": "class",
26172
26172
  "locationInModule": {
26173
26173
  "filename": "src/watchfulv2/watchful.ts",
26174
- "line": 100
26174
+ "line": 105
26175
26175
  },
26176
26176
  "methods": [
26177
26177
  {
@@ -26181,7 +26181,7 @@
26181
26181
  },
26182
26182
  "locationInModule": {
26183
26183
  "filename": "src/watchfulv2/watchful.ts",
26184
- "line": 132
26184
+ "line": 137
26185
26185
  },
26186
26186
  "name": "createAlarm",
26187
26187
  "overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
@@ -26222,7 +26222,7 @@
26222
26222
  },
26223
26223
  "locationInModule": {
26224
26224
  "filename": "src/watchfulv2/watchful.ts",
26225
- "line": 157
26225
+ "line": 162
26226
26226
  },
26227
26227
  "name": "createLogAlarm",
26228
26228
  "overrides": "@rio-cloud/cdk-v2-constructs.AbstractWatchful",
@@ -26263,7 +26263,7 @@
26263
26263
  },
26264
26264
  "locationInModule": {
26265
26265
  "filename": "src/watchfulv2/watchful.ts",
26266
- "line": 187
26266
+ "line": 192
26267
26267
  },
26268
26268
  "name": "watchScope",
26269
26269
  "parameters": [
@@ -26291,7 +26291,7 @@
26291
26291
  "kind": "interface",
26292
26292
  "locationInModule": {
26293
26293
  "filename": "src/watchfulv2/watchful.ts",
26294
- "line": 53
26294
+ "line": 58
26295
26295
  },
26296
26296
  "name": "WatchfulProps",
26297
26297
  "namespace": "watchfulv2",
@@ -26307,7 +26307,7 @@
26307
26307
  "immutable": true,
26308
26308
  "locationInModule": {
26309
26309
  "filename": "src/watchfulv2/watchful.ts",
26310
- "line": 74
26310
+ "line": 79
26311
26311
  },
26312
26312
  "name": "createCasesFromErrorLogMonitors",
26313
26313
  "optional": true,
@@ -26324,7 +26324,7 @@
26324
26324
  "immutable": true,
26325
26325
  "locationInModule": {
26326
26326
  "filename": "src/watchfulv2/watchful.ts",
26327
- "line": 79
26327
+ "line": 84
26328
26328
  },
26329
26329
  "name": "logErrorMonitorConfig",
26330
26330
  "optional": true,
@@ -26342,7 +26342,7 @@
26342
26342
  "immutable": true,
26343
26343
  "locationInModule": {
26344
26344
  "filename": "src/watchfulv2/watchful.ts",
26345
- "line": 66
26345
+ "line": 71
26346
26346
  },
26347
26347
  "name": "notification",
26348
26348
  "optional": true,
@@ -26360,7 +26360,7 @@
26360
26360
  "immutable": true,
26361
26361
  "locationInModule": {
26362
26362
  "filename": "src/watchfulv2/watchful.ts",
26363
- "line": 85
26363
+ "line": 90
26364
26364
  },
26365
26365
  "name": "queryErrorMonitorConfig",
26366
26366
  "optional": true,
@@ -26378,7 +26378,7 @@
26378
26378
  "immutable": true,
26379
26379
  "locationInModule": {
26380
26380
  "filename": "src/watchfulv2/watchful.ts",
26381
- "line": 59
26381
+ "line": 64
26382
26382
  },
26383
26383
  "name": "serviceName",
26384
26384
  "optional": true,
@@ -26391,5 +26391,5 @@
26391
26391
  }
26392
26392
  },
26393
26393
  "version": "0.0.0",
26394
- "fingerprint": "DM0z77ZqYH2Ll9DPbqGYVtKiVTvy9jG0XDPvlY1THiQ="
26394
+ "fingerprint": "AYkDPRqbh5GgyWZva6DirHBb6v4/dAjoo2IfXNLSsMc="
26395
26395
  }
@@ -30,6 +30,219 @@ Prefer `import * as rio from '@rio-cloud/cdk-v2-constructs';` unless an exported
30
30
 
31
31
  Read the relevant declaration comments and examples before writing or changing infrastructure code.
32
32
 
33
+ ## Migration guidance for `9.0.0`
34
+
35
+ This section applies when upgrading a consuming project to `9.0.0` or
36
+ later. Confirm the installed package version and its `package.json` exports
37
+ before applying it. The guidance below is based on the implementation and
38
+ tests in this release; it intentionally does not prescribe replacements for
39
+ environment variables for which this wrapper exposes no one-to-one prop.
40
+
41
+ ### Datadog Lambda instrumentation: Datadog v5 environment handling
42
+
43
+ `DatadogLambdaInstrumentation` now uses `datadog-cdk-constructs-v2` v5. Before
44
+ calling `addLambdaFunctions()`, the construct rejects a Lambda whose CDK
45
+ environment already contains any of these variables:
46
+
47
+ ```text
48
+ DD_TRACE_ENABLED
49
+ DD_MERGE_XRAY_TRACES
50
+ DD_LOGS_INJECTION
51
+ DD_SERVERLESS_LOGS_ENABLED
52
+ DD_CAPTURE_LAMBDA_PAYLOAD
53
+ DD_TRACE_CLOUD_REQUEST_PAYLOAD_TAGGING
54
+ DD_TRACE_CLOUD_RESPONSE_PAYLOAD_TAGGING
55
+ DD_LOG_LEVEL
56
+ DD_APPSEC_ENABLED
57
+ DD_SERVERLESS_APPSEC_ENABLED
58
+ AWS_LAMBDA_EXEC_WRAPPER
59
+ DD_TAGS
60
+ ```
61
+
62
+ Datadog v4 read existing values differently. With v5, values configured
63
+ before instrumentation can be overwritten, so remove these settings from the
64
+ Lambda constructor and from any `addEnvironment()` call made before
65
+ `addLambdaFunctions()`.
66
+
67
+ Use the instrumentation props for settings that have a corresponding public
68
+ prop. The direct mappings established by this package are:
69
+
70
+ | Lambda environment variable | `DatadogLambdaInstrumentation` prop |
71
+ | --- | --- |
72
+ | `DD_TRACE_ENABLED` | `enableDatadogTracing` |
73
+ | `DD_MERGE_XRAY_TRACES` | `enableMergeXrayTraces` |
74
+ | `DD_LOGS_INJECTION` | `injectLogContext` |
75
+ | `DD_SERVERLESS_LOGS_ENABLED` | `enableDatadogLogs` |
76
+ | `DD_CAPTURE_LAMBDA_PAYLOAD` | `captureLambdaPayload` |
77
+ | `DD_LOG_LEVEL` | `logLevel` |
78
+ | `DD_TAGS` | `tags` |
79
+
80
+ The wrapper also exposes `enableDatadogASM` and `datadogAppSecMode`, but the
81
+ repository does not document a mechanical mapping for every AppSec-related
82
+ environment variable. Do not invent one; inspect the installed declarations
83
+ and the Datadog v5 behavior for the desired AppSec configuration. The same
84
+ applies to the two cloud-payload-tagging variables and
85
+ `AWS_LAMBDA_EXEC_WRAPPER`, for which this wrapper has no same-named prop.
86
+
87
+ If a per-function override is intentional, apply it only after instrumentation:
88
+
89
+ ```typescript
90
+ datadog.addLambdaFunctions([handler]);
91
+ handler.addEnvironment('DD_LOG_LEVEL', 'debug');
92
+ ```
93
+
94
+ An override of `DD_TAGS` at that point replaces all tags generated by the
95
+ construct, including Git metadata added through `addGitCommitMetadata()`.
96
+ `addLambdaFunctions()` validates the complete batch before changing any of its
97
+ functions. The validation covers the underlying CDK `Function` environment,
98
+ including `SingletonFunction` and values added with `addEnvironment()`; it
99
+ does not inspect `CfnFunction` escape-hatch overrides.
100
+
101
+ Source-code integration is enabled by default and can change generated
102
+ `DD_TAGS`. For snapshot tests that must disable it, set this exact context key
103
+ on the test `App` to either boolean `false` or string `"false"`:
104
+
105
+ ```typescript
106
+ const app = new App({
107
+ context: {
108
+ '@rio-cloud/cdk-v2-constructs:enableSourceCodeIntegration': false,
109
+ },
110
+ });
111
+ ```
112
+
113
+ Do not substitute the unrelated `datadog-cdk-constructs-v2` context key. Layer
114
+ version props remain required; choose versions compatible with the installed
115
+ Datadog Lambda Node and extension layer releases rather than copying stale
116
+ values from tests.
117
+
118
+ ### Pipeline license-checker prerequisite
119
+
120
+ Before upgrading a project that uses the Team Transport pipeline, add
121
+ `@rio-cloud/rio-license-checker` as a direct dev dependency and commit the
122
+ corresponding lockfile:
123
+
124
+ ```bash
125
+ npm install --save-dev @rio-cloud/rio-license-checker
126
+ ```
127
+
128
+ The generated buildspecs call `npx rio-license-checker` after `npm ci`; the
129
+ construct no longer supplies this package transitively. Add it to the package
130
+ whose `npm ci` precedes the call:
131
+
132
+ | Generated pipeline feature | Workspace in which the checker is invoked | Package that needs the dev dependency |
133
+ | --- | --- | --- |
134
+ | Infrastructure synth | `infrastructure/` | `infrastructure/package.json` |
135
+ | `gradleBuild` | repository root | root `package.json` |
136
+ | `npmBuild` | repository root | root `package.json` |
137
+
138
+ If a project enables more than one of these generated build paths, make the
139
+ checker available in each corresponding workspace. A custom main/branch or
140
+ vulnerability buildspec is loaded instead of the generated one, so inspect
141
+ that file separately for its own license-check command and install location.
142
+ The package's release notes link to the internal [RIO license-check
143
+ guidance](https://confluence.collaboration-man.com/spaces/RIOSHIPPER/pages/448924008/License+Checks).
144
+
145
+ ### Contribution imports and package dependencies
146
+
147
+ Contribution constructs are no longer exported from the package root. Use the
148
+ owner-level subpaths that are present in the installed package's `exports` map:
149
+
150
+ | Owner | Public import path in `9.0.0` |
151
+ | --- | --- |
152
+ | Team Claid | `@rio-cloud/cdk-v2-constructs/contributions/team-claid` |
153
+ | Team Outbound Order Book | `@rio-cloud/cdk-v2-constructs/contributions/team-outbound-order-book` |
154
+ | Team Shipper Inbound Blue | `@rio-cloud/cdk-v2-constructs/contributions/team-shipper-inbound-blue` |
155
+ | Smart Route / GitLab Runner | `@rio-cloud/cdk-v2-constructs/contributions/smart-route` |
156
+ | Team Transport | `@rio-cloud/cdk-v2-constructs/contributions/team-transport` |
157
+ | CoP Frontend | `@rio-cloud/cdk-v2-constructs/contributions/cop-frontend` |
158
+
159
+ For example, change a root import while keeping the named imports:
160
+
161
+ ```diff
162
+ -import { PipelineStack, PipelineType } from '@rio-cloud/cdk-v2-constructs';
163
+ +import { PipelineStack, PipelineType } from '@rio-cloud/cdk-v2-constructs/contributions/team-transport';
164
+ ```
165
+
166
+ Team Transport was renamed from `team-transport-two` to `team-transport`.
167
+ Import its pipeline, Datadog, and synthetics constructs from the single
168
+ owner-level path above. Do not infer additional public subpaths from the
169
+ source directory layout; the installed `package.json` `exports` map is the
170
+ authority.
171
+
172
+ GitLab Runner consumers must also install
173
+ `@pepperize/cdk-autoscaling-gitlab-runner` as a direct project dependency:
174
+
175
+ ```bash
176
+ npm install @pepperize/cdk-autoscaling-gitlab-runner
177
+ ```
178
+
179
+ It is an optional peer dependency of this package, not a regular dependency
180
+ that a consuming project can obtain transitively. This additional dependency
181
+ is required only by projects importing the Smart Route GitLab Runner
182
+ constructs.
183
+
184
+ ### TypeScript resolver required for contribution subpaths
185
+
186
+ The contribution imports depend on Node package export maps. A legacy
187
+ `moduleResolution: "node"` configuration does not resolve these imports
188
+ reliably. Use a resolver that honors `exports` and keep the `module` and
189
+ `moduleResolution` settings compatible. For example, a CommonJS-oriented
190
+ project can use:
191
+
192
+ ```json
193
+ {
194
+ "compilerOptions": {
195
+ "module": "Node16",
196
+ "moduleResolution": "node16"
197
+ }
198
+ }
199
+ ```
200
+
201
+ A bundler-managed project can instead use the corresponding `bundler`
202
+ resolution mode with its existing bundler-compatible module setting. Do not
203
+ change only `moduleResolution` in a configuration whose `module` setting is
204
+ incompatible; preserve the consuming project's module model and verify it with
205
+ the project's typecheck and synth commands.
206
+
207
+ ### Team Transport CodeBuild runtime options
208
+
209
+ This is an alpha.4 pipeline feature rather than a breaking migration, but it
210
+ is relevant when updating pipeline code. Generated main, branch, and
211
+ vulnerability buildspecs continue to use Node.js 24 by default. To require an
212
+ exact toolchain, set `codeBuildOptions.nodejsVersion` and/or
213
+ `codeBuildOptions.npmVersion` to an exact `major.minor.patch` value. The
214
+ generated install phase checks the selected versions before installing project
215
+ dependencies; it does not install npm globally. These options affect only
216
+ generated buildspecs. A custom buildspec supplied through
217
+ `partialBuildSpecPath` or `vulnerabilityPartialBuildSpecPath` is responsible
218
+ for its own runtime and version checks.
219
+
220
+ ### CloudFront certificates added in v9
221
+
222
+ `CloudFrontCertificate` is exported from the package root. It creates a
223
+ DNS-validated ACM certificate in `us-east-1` for a stack in any region and
224
+ requires a public Route 53 hosted zone in the same account:
225
+
226
+ ```typescript
227
+ import { CloudFrontCertificate } from '@rio-cloud/cdk-v2-constructs';
228
+ import { Distribution } from 'aws-cdk-lib/aws-cloudfront';
229
+
230
+ const certificate = new CloudFrontCertificate(this, 'CloudFrontCertificate', {
231
+ domainName: 'www.example.com',
232
+ hostedZone,
233
+ });
234
+
235
+ new Distribution(this, 'Distribution', {
236
+ certificate: certificate.certificate,
237
+ // ...other required Distribution props
238
+ });
239
+ ```
240
+
241
+ Use `certificate` (`acm.ICertificate`) when another CDK construct accepts a
242
+ certificate. Use `certificateArn` only for integrations that require a string
243
+ ARN. Changing the domain or hosted zone replaces the certificate; validation
244
+ CNAME records are retained for renewal.
245
+
33
246
  ## Usage Guidance
34
247
 
35
248
  ### General
@@ -1,4 +1,4 @@
1
- import { IConstruct } from 'constructs';
1
+ import type { IConstruct } from 'constructs';
2
2
  /**
3
3
  * The allowed values for backup criticality levels
4
4
  */
@@ -32,4 +32,4 @@ class BackupPolicy {
32
32
  exports.BackupPolicy = BackupPolicy;
33
33
  _a = JSII_RTTI_SYMBOL_1;
34
34
  BackupPolicy[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.BackupPolicy", version: "0.0.0" };
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwLXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrdXAvYmFja3VwLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFtQztBQUduQzs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQiwwQkFBVyxDQUFBO0lBQ1gsZ0NBQWlCLENBQUE7SUFDakIsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxXQUFXLDJCQUFYLFdBQVcsUUFJdEI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBa0IsRUFBRSxXQUF3QjtRQUN2RCxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7QUFISCxvQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBJQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbi8qKlxuICogVGhlIGFsbG93ZWQgdmFsdWVzIGZvciBiYWNrdXAgY3JpdGljYWxpdHkgbGV2ZWxzXG4gKi9cbmV4cG9ydCBlbnVtIENyaXRpY2FsaXR5IHtcbiAgTE9XID0gJ2xvdycsXG4gIE1FRElVTSA9ICdtZWRpdW0nLFxuICBISUdIID0gJ2hpZ2gnLFxufVxuXG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiB0byB0YWcgY29uc3RydWN0cyB3aXRoIGNvcnJlY3QgYmFja3VwIHZhbHVlcyB0byBiZSBwaWNrZWRcbiAqIHVwIGJ5IHRoZSByaW8gbGFuZGluZyB6b25lIGJhY2t1cCBzb2x1dGlvbi5cbiAqXG4gKiBBcHBseSB0aGlzIHRvIHN0YXRlZnVsIHJlc291cmNlcyB0aGF0IG11c3QgYmUgZGlzY292ZXJlZCBieSB0aGUgUklPIGxhbmRpbmctem9uZSBiYWNrdXAgc29sdXRpb24uXG4gKlxuICogRXhhbXBsZTpcbiAqIGBgYHRzXG4gKiBCYWNrdXBQb2xpY3kuYXBwbHkodGFibGUsIENyaXRpY2FsaXR5LkhJR0gpO1xuICogYGBgXG4gKi9cbmV4cG9ydCBjbGFzcyBCYWNrdXBQb2xpY3kge1xuICBzdGF0aWMgYXBwbHkodGFyZ2V0OiBJQ29uc3RydWN0LCBjcml0aWNhbGl0eTogQ3JpdGljYWxpdHkpIHtcbiAgICBUYWdzLm9mKHRhcmdldCkuYWRkKCdyaW8tbHotYmFja3VwLWNyaXRpY2FsaXR5LWxldmVsJywgY3JpdGljYWxpdHkpO1xuICB9XG59XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja3VwLXBvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYWNrdXAvYmFja3VwLXBvbGljeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUFtQztBQUduQzs7R0FFRztBQUNILElBQVksV0FJWDtBQUpELFdBQVksV0FBVztJQUNyQiwwQkFBVyxDQUFBO0lBQ1gsZ0NBQWlCLENBQUE7SUFDakIsNEJBQWEsQ0FBQTtBQUNmLENBQUMsRUFKVyxXQUFXLDJCQUFYLFdBQVcsUUFJdEI7QUFFRDs7Ozs7Ozs7OztHQVVHO0FBQ0gsTUFBYSxZQUFZO0lBQ3ZCLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBa0IsRUFBRSxXQUF3QjtRQUN2RCxrQkFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsaUNBQWlDLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQzs7QUFISCxvQ0FJQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhZ3MgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgdHlwZSB7IElDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuLyoqXG4gKiBUaGUgYWxsb3dlZCB2YWx1ZXMgZm9yIGJhY2t1cCBjcml0aWNhbGl0eSBsZXZlbHNcbiAqL1xuZXhwb3J0IGVudW0gQ3JpdGljYWxpdHkge1xuICBMT1cgPSAnbG93JyxcbiAgTUVESVVNID0gJ21lZGl1bScsXG4gIEhJR0ggPSAnaGlnaCcsXG59XG5cbi8qKlxuICogSGVscGVyIGZ1bmN0aW9uIHRvIHRhZyBjb25zdHJ1Y3RzIHdpdGggY29ycmVjdCBiYWNrdXAgdmFsdWVzIHRvIGJlIHBpY2tlZFxuICogdXAgYnkgdGhlIHJpbyBsYW5kaW5nIHpvbmUgYmFja3VwIHNvbHV0aW9uLlxuICpcbiAqIEFwcGx5IHRoaXMgdG8gc3RhdGVmdWwgcmVzb3VyY2VzIHRoYXQgbXVzdCBiZSBkaXNjb3ZlcmVkIGJ5IHRoZSBSSU8gbGFuZGluZy16b25lIGJhY2t1cCBzb2x1dGlvbi5cbiAqXG4gKiBFeGFtcGxlOlxuICogYGBgdHNcbiAqIEJhY2t1cFBvbGljeS5hcHBseSh0YWJsZSwgQ3JpdGljYWxpdHkuSElHSCk7XG4gKiBgYGBcbiAqL1xuZXhwb3J0IGNsYXNzIEJhY2t1cFBvbGljeSB7XG4gIHN0YXRpYyBhcHBseSh0YXJnZXQ6IElDb25zdHJ1Y3QsIGNyaXRpY2FsaXR5OiBDcml0aWNhbGl0eSkge1xuICAgIFRhZ3Mub2YodGFyZ2V0KS5hZGQoJ3Jpby1sei1iYWNrdXAtY3JpdGljYWxpdHktbGV2ZWwnLCBjcml0aWNhbGl0eSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import * as acm from 'aws-cdk-lib/aws-certificatemanager';
2
- import * as route53 from 'aws-cdk-lib/aws-route53';
2
+ import type * as route53 from 'aws-cdk-lib/aws-route53';
3
3
  import { Construct } from 'constructs';
4
4
  /** Properties for a DNS-validated CloudFront certificate. */
5
5
  export interface CloudFrontCertificateProps {
@@ -3,6 +3,7 @@ var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.CloudFrontCertificate = void 0;
5
5
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
6
+ const path = require("node:path");
6
7
  const aws_cdk_lib_1 = require("aws-cdk-lib");
7
8
  const acm = require("aws-cdk-lib/aws-certificatemanager");
8
9
  const iam = require("aws-cdk-lib/aws-iam");
@@ -10,7 +11,6 @@ const lambda = require("aws-cdk-lib/aws-lambda");
10
11
  const logs = require("aws-cdk-lib/aws-logs");
11
12
  const custom_resources_1 = require("aws-cdk-lib/custom-resources");
12
13
  const constructs_1 = require("constructs");
13
- const path = require("path");
14
14
  const constants_1 = require("../constants");
15
15
  /**
16
16
  * Creates an ACM certificate in us-east-1, regardless of the stack region.
@@ -57,8 +57,9 @@ CloudFrontCertificate[_a] = { fqn: "@rio-cloud/cdk-v2-constructs.CloudFrontCerti
57
57
  function certificateProvider(stack) {
58
58
  const providerId = 'CloudFrontCertificateProvider';
59
59
  const existing = stack.node.tryFindChild(providerId);
60
- if (existing)
60
+ if (existing) {
61
61
  return existing;
62
+ }
62
63
  const logGroup = new logs.LogGroup(stack, 'CloudFrontCertificateHandlerLogs', {
63
64
  retention: logs.RetentionDays.ONE_WEEK,
64
65
  });
@@ -103,4 +104,4 @@ function certificateProvider(stack) {
103
104
  totalTimeout: aws_cdk_lib_1.Duration.minutes(60),
104
105
  });
105
106
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtY2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2VydGlmaWNhdGUvY2xvdWQtZnJvbnQtY2VydGlmaWNhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSw2Q0FBOEQ7QUFDOUQsMERBQTBEO0FBQzFELDJDQUEyQztBQUMzQyxpREFBaUQ7QUFDakQsNkNBQTZDO0FBRTdDLG1FQUF3RDtBQUN4RCwyQ0FBdUM7QUFDdkMsNkJBQTZCO0FBQzdCLDRDQUFvRDtBQVVwRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBT2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ25ELFFBQVEsQ0FBQyxpQkFBa0IsQ0FBQyxlQUFlLENBQ3pDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztZQUM3QyxTQUFTLEVBQUU7Z0JBQ1QsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN2QixPQUFPLEVBQUUsU0FBUztvQkFDbEIsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFlBQVksRUFBRSxZQUFZO2lCQUMzQixDQUFDO2FBQ0g7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsMkJBQTJCLEVBQUU7b0JBQzNCLDZDQUE2QyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUN4RCx5Q0FBeUMsRUFBRSxDQUFDLFFBQVEsQ0FBQztpQkFDdEQ7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0YsTUFBTSxRQUFRLEdBQUcsSUFBSSw0QkFBYyxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDcEQsWUFBWSxFQUFFLCtCQUErQjtZQUM3QyxZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsVUFBVSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRTtTQUN6RSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDbEcsQ0FBQzs7QUF0Q0gsc0RBdUNDOzs7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQVk7SUFDdkMsTUFBTSxVQUFVLEdBQUcsK0JBQStCLENBQUM7SUFDbkQsTUFBTSxRQUFRLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDckQsSUFBSSxRQUFRO1FBQUUsT0FBTyxRQUFvQixDQUFDO0lBRTFDLE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsa0NBQWtDLEVBQUU7UUFDNUUsU0FBUyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUTtLQUN2QyxDQUFDLENBQUM7SUFDSCxNQUFNLE1BQU0sR0FBRztRQUNiLE9BQU8sRUFBRSxnQ0FBb0I7UUFDN0IsWUFBWSxFQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBTTtRQUN4QyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEVBQUUsQ0FBQztRQUM1RixPQUFPLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQzVCLFFBQVE7S0FDVCxDQUFDO0lBQ0YsTUFBTSxlQUFlLEdBQUc7UUFDdEIsS0FBSyxDQUFDLFNBQVMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FBQztLQUNyRyxDQUFDO0lBQ0YsTUFBTSxPQUFPLEdBQUcsSUFBSSxNQUFNLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLDhCQUE4QixFQUFFO1FBQ2xGLEdBQUcsTUFBTTtRQUNULElBQUksRUFBRSxzQ0FBc0M7UUFDNUMsYUFBYSxFQUFFLDhCQUE4QjtRQUM3QyxPQUFPLEVBQUUsaUJBQWlCO1FBQzFCLGFBQWEsRUFBRTtZQUNiLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsT0FBTyxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ25DLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzthQUNqQixDQUFDO1NBQ0g7S0FDRixDQUFDLENBQUM7SUFDSCxNQUFNLFVBQVUsR0FBRyxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsaUNBQWlDLEVBQUU7UUFDeEYsR0FBRyxNQUFNO1FBQ1QsSUFBSSxFQUFFLHNDQUFzQztRQUM1QyxhQUFhLEVBQUUsaUNBQWlDO1FBQ2hELE9BQU8sRUFBRSxvQkFBb0I7UUFDN0IsYUFBYSxFQUFFO1lBQ2IsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSx1QkFBdUIsQ0FBQztnQkFDN0QsU0FBUyxFQUFFLGVBQWU7YUFDM0IsQ0FBQztTQUNIO0tBQ0YsQ0FBQyxDQUFDO0lBQ0gsT0FBTyxJQUFJLDJCQUFRLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRTtRQUNyQyxjQUFjLEVBQUUsT0FBTztRQUN2QixpQkFBaUIsRUFBRSxVQUFVO1FBQzdCLGFBQWEsRUFBRSxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7UUFDbkMsWUFBWSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztLQUNuQyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3VzdG9tUmVzb3VyY2UsIER1cmF0aW9uLCBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGFjbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgcm91dGU1MyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtcm91dGU1Myc7XG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ2F3cy1jZGstbGliL2N1c3RvbS1yZXNvdXJjZXMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vKiogUHJvcGVydGllcyBmb3IgYSBETlMtdmFsaWRhdGVkIENsb3VkRnJvbnQgY2VydGlmaWNhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRDZXJ0aWZpY2F0ZVByb3BzIHtcbiAgLyoqIERvbWFpbiBuYW1lIHRvIGNlcnRpZnksIGluY2x1ZGluZyBhIHdpbGRjYXJkIGlmIHJlcXVpcmVkLiAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIC8qKiBQdWJsaWMgUm91dGUgNTMgaG9zdGVkIHpvbmUgaW4gdGhpcyBhY2NvdW50IGNvbnRhaW5pbmcgdGhlIGRvbWFpbi4gKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZTogcm91dGU1My5JSG9zdGVkWm9uZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEFDTSBjZXJ0aWZpY2F0ZSBpbiB1cy1lYXN0LTEsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YWNrIHJlZ2lvbi5cbiAqIERlcGxveW1lbnQgd2FpdHMgZm9yIEROUyB2YWxpZGF0aW9uIGJlZm9yZSBleHBvc2luZyB0aGUgY2VydGlmaWNhdGUgQVJOLlxuICogQWxsIGluc3RhbmNlcyBpbiBhIHN0YWNrIHNoYXJlIHRoZSBwcm92aWRlciBhbmQgaXRzIHNpbmdsZXRvbiBMYW1iZGEgaGFuZGxlcnMuXG4gKiBEb21haW4gb3IgaG9zdGVkIHpvbmUgY2hhbmdlcyByZXBsYWNlIHRoZSBjZXJ0aWZpY2F0ZS4gVmFsaWRhdGlvbiBDTkFNRXMgYXJlXG4gKiByZXRhaW5lZCBvbiBkZWxldGlvbiBiZWNhdXNlIEFDTSBjYW4gc2hhcmUgdGhlbSB3aXRoIG90aGVyIGNlcnRpZmljYXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRDZXJ0aWZpY2F0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKiBBUk4gb2YgdGhlIGlzc3VlZCBjZXJ0aWZpY2F0ZSwgc3VpdGFibGUgZm9yIENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuOiBzdHJpbmc7XG5cbiAgLyoqIENlcnRpZmljYXRlIHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gQ0RLIGNvbnN0cnVjdHMuICovXG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZTogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRGcm9udENlcnRpZmljYXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gY2VydGlmaWNhdGVQcm92aWRlcihTdGFjay5vZih0aGlzKSk7XG4gICAgY29uc3QgaG9zdGVkWm9uZUlkID0gcHJvcHMuaG9zdGVkWm9uZS5ob3N0ZWRab25lSWQ7XG4gICAgcHJvdmlkZXIuaXNDb21wbGV0ZUhhbmRsZXIhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydyb3V0ZTUzOkNoYW5nZVJlc291cmNlUmVjb3JkU2V0cyddLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgc2VydmljZTogJ3JvdXRlNTMnLFxuICAgICAgICAgICAgcmVnaW9uOiAnJyxcbiAgICAgICAgICAgIGFjY291bnQ6ICcnLFxuICAgICAgICAgICAgcmVzb3VyY2U6ICdob3N0ZWR6b25lJyxcbiAgICAgICAgICAgIHJlc291cmNlTmFtZTogaG9zdGVkWm9uZUlkLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgJ0ZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHMnOiB7XG4gICAgICAgICAgICAncm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNSZWNvcmRUeXBlcyc6IFsnQ05BTUUnXSxcbiAgICAgICAgICAgICdyb3V0ZTUzOkNoYW5nZVJlc291cmNlUmVjb3JkU2V0c0FjdGlvbnMnOiBbJ1VQU0VSVCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpDbG91ZEZyb250Q2VydGlmaWNhdGUnLFxuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7IERvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsIEhvc3RlZFpvbmVJZDogaG9zdGVkWm9uZUlkIH0sXG4gICAgfSk7XG4gICAgdGhpcy5jZXJ0aWZpY2F0ZUFybiA9IHJlc291cmNlLmdldEF0dFN0cmluZygnQ2VydGlmaWNhdGVBcm4nKTtcbiAgICB0aGlzLmNlcnRpZmljYXRlID0gYWNtLkNlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybih0aGlzLCAnQ2VydGlmaWNhdGUnLCB0aGlzLmNlcnRpZmljYXRlQXJuKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjZXJ0aWZpY2F0ZVByb3ZpZGVyKHN0YWNrOiBTdGFjayk6IFByb3ZpZGVyIHtcbiAgY29uc3QgcHJvdmlkZXJJZCA9ICdDbG91ZEZyb250Q2VydGlmaWNhdGVQcm92aWRlcic7XG4gIGNvbnN0IGV4aXN0aW5nID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQocHJvdmlkZXJJZCk7XG4gIGlmIChleGlzdGluZykgcmV0dXJuIGV4aXN0aW5nIGFzIFByb3ZpZGVyO1xuXG4gIGNvbnN0IGxvZ0dyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAoc3RhY2ssICdDbG91ZEZyb250Q2VydGlmaWNhdGVIYW5kbGVyTG9ncycsIHtcbiAgICByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgfSk7XG4gIGNvbnN0IGNvbW1vbiA9IHtcbiAgICBydW50aW1lOiBERUZBVUxUX05PREVfUlVOVElNRSxcbiAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnbGFtYmRhJyksIHsgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddIH0pLFxuICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgbG9nR3JvdXAsXG4gIH07XG4gIGNvbnN0IGNlcnRpZmljYXRlQXJucyA9IFtcbiAgICBzdGFjay5mb3JtYXRBcm4oeyBzZXJ2aWNlOiAnYWNtJywgcmVnaW9uOiAndXMtZWFzdC0xJywgcmVzb3VyY2U6ICdjZXJ0aWZpY2F0ZScsIHJlc291cmNlTmFtZTogJyonIH0pLFxuICBdO1xuICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbihzdGFjaywgJ0Nsb3VkRnJvbnRDZXJ0aWZpY2F0ZU9uRXZlbnQnLCB7XG4gICAgLi4uY29tbW9uLFxuICAgIHV1aWQ6ICc0NzYyZDUwZS1lNDRlLTQ5OTUtOGM2Yy01MWZhNTllNjIzNzMnLFxuICAgIGxhbWJkYVB1cnBvc2U6ICdDbG91ZEZyb250Q2VydGlmaWNhdGVPbkV2ZW50JyxcbiAgICBoYW5kbGVyOiAnaGFuZGxlci5vbkV2ZW50JyxcbiAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnYWNtOlJlcXVlc3RDZXJ0aWZpY2F0ZSddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSk7XG4gIGNvbnN0IGlzQ29tcGxldGUgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHN0YWNrLCAnQ2xvdWRGcm9udENlcnRpZmljYXRlSXNDb21wbGV0ZScsIHtcbiAgICAuLi5jb21tb24sXG4gICAgdXVpZDogJzQ2NzNkOWRlLWQ5MWUtNDljNS04ZDlmLWM0N2Q5ZTE2ZDBlZScsXG4gICAgbGFtYmRhUHVycG9zZTogJ0Nsb3VkRnJvbnRDZXJ0aWZpY2F0ZUlzQ29tcGxldGUnLFxuICAgIGhhbmRsZXI6ICdoYW5kbGVyLmlzQ29tcGxldGUnLFxuICAgIGluaXRpYWxQb2xpY3k6IFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydhY206RGVzY3JpYmVDZXJ0aWZpY2F0ZScsICdhY206RGVsZXRlQ2VydGlmaWNhdGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBjZXJ0aWZpY2F0ZUFybnMsXG4gICAgICB9KSxcbiAgICBdLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBQcm92aWRlcihzdGFjaywgcHJvdmlkZXJJZCwge1xuICAgIG9uRXZlbnRIYW5kbGVyOiBvbkV2ZW50LFxuICAgIGlzQ29tcGxldGVIYW5kbGVyOiBpc0NvbXBsZXRlLFxuICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgIHRvdGFsVGltZW91dDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gIH0pO1xufVxuIl19
107
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWQtZnJvbnQtY2VydGlmaWNhdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvY2VydGlmaWNhdGUvY2xvdWQtZnJvbnQtY2VydGlmaWNhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsNkNBQThEO0FBQzlELDBEQUEwRDtBQUMxRCwyQ0FBMkM7QUFDM0MsaURBQWlEO0FBQ2pELDZDQUE2QztBQUU3QyxtRUFBd0Q7QUFDeEQsMkNBQXVDO0FBQ3ZDLDRDQUFvRDtBQVVwRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLHFCQUFzQixTQUFRLHNCQUFTO0lBT2xELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBaUM7UUFDekUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO1FBQ25ELFFBQVEsQ0FBQyxpQkFBa0IsQ0FBQyxlQUFlLENBQ3pDLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQyxrQ0FBa0MsQ0FBQztZQUM3QyxTQUFTLEVBQUU7Z0JBQ1QsbUJBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN2QixPQUFPLEVBQUUsU0FBUztvQkFDbEIsTUFBTSxFQUFFLEVBQUU7b0JBQ1YsT0FBTyxFQUFFLEVBQUU7b0JBQ1gsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFlBQVksRUFBRSxZQUFZO2lCQUMzQixDQUFDO2FBQ0g7WUFDRCxVQUFVLEVBQUU7Z0JBQ1YsMkJBQTJCLEVBQUU7b0JBQzNCLDZDQUE2QyxFQUFFLENBQUMsT0FBTyxDQUFDO29CQUN4RCx5Q0FBeUMsRUFBRSxDQUFD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QUFLLEVBQUUsVUFBVSxFQUFFO1FBQ3JDLGNBQWMsRUFBRSxPQUFPO1FBQ3ZCLGlCQUFpQixFQUFFLFVBQVU7UUFDN0IsYUFBYSxFQUFFLHNCQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxZQUFZLEVBQUUsc0JBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO0tBQ25DLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBwYXRoIGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBDdXN0b21SZXNvdXJjZSwgRHVyYXRpb24sIFN0YWNrIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgYWNtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbG9ncyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbG9ncyc7XG5pbXBvcnQgdHlwZSAqIGFzIHJvdXRlNTMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXJvdXRlNTMnO1xuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgREVGQVVMVF9OT0RFX1JVTlRJTUUgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuXG4vKiogUHJvcGVydGllcyBmb3IgYSBETlMtdmFsaWRhdGVkIENsb3VkRnJvbnQgY2VydGlmaWNhdGUuICovXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkRnJvbnRDZXJ0aWZpY2F0ZVByb3BzIHtcbiAgLyoqIERvbWFpbiBuYW1lIHRvIGNlcnRpZnksIGluY2x1ZGluZyBhIHdpbGRjYXJkIGlmIHJlcXVpcmVkLiAqL1xuICByZWFkb25seSBkb21haW5OYW1lOiBzdHJpbmc7XG4gIC8qKiBQdWJsaWMgUm91dGUgNTMgaG9zdGVkIHpvbmUgaW4gdGhpcyBhY2NvdW50IGNvbnRhaW5pbmcgdGhlIGRvbWFpbi4gKi9cbiAgcmVhZG9ubHkgaG9zdGVkWm9uZTogcm91dGU1My5JSG9zdGVkWm9uZTtcbn1cblxuLyoqXG4gKiBDcmVhdGVzIGFuIEFDTSBjZXJ0aWZpY2F0ZSBpbiB1cy1lYXN0LTEsIHJlZ2FyZGxlc3Mgb2YgdGhlIHN0YWNrIHJlZ2lvbi5cbiAqIERlcGxveW1lbnQgd2FpdHMgZm9yIEROUyB2YWxpZGF0aW9uIGJlZm9yZSBleHBvc2luZyB0aGUgY2VydGlmaWNhdGUgQVJOLlxuICogQWxsIGluc3RhbmNlcyBpbiBhIHN0YWNrIHNoYXJlIHRoZSBwcm92aWRlciBhbmQgaXRzIHNpbmdsZXRvbiBMYW1iZGEgaGFuZGxlcnMuXG4gKiBEb21haW4gb3IgaG9zdGVkIHpvbmUgY2hhbmdlcyByZXBsYWNlIHRoZSBjZXJ0aWZpY2F0ZS4gVmFsaWRhdGlvbiBDTkFNRXMgYXJlXG4gKiByZXRhaW5lZCBvbiBkZWxldGlvbiBiZWNhdXNlIEFDTSBjYW4gc2hhcmUgdGhlbSB3aXRoIG90aGVyIGNlcnRpZmljYXRlcy5cbiAqL1xuZXhwb3J0IGNsYXNzIENsb3VkRnJvbnRDZXJ0aWZpY2F0ZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKiBBUk4gb2YgdGhlIGlzc3VlZCBjZXJ0aWZpY2F0ZSwgc3VpdGFibGUgZm9yIENlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybi4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNlcnRpZmljYXRlQXJuOiBzdHJpbmc7XG5cbiAgLyoqIENlcnRpZmljYXRlIHJlZmVyZW5jZSB0aGF0IGNhbiBiZSBwYXNzZWQgZGlyZWN0bHkgdG8gQ0RLIGNvbnN0cnVjdHMuICovXG4gIHB1YmxpYyByZWFkb25seSBjZXJ0aWZpY2F0ZTogYWNtLklDZXJ0aWZpY2F0ZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ2xvdWRGcm9udENlcnRpZmljYXRlUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICAgIGNvbnN0IHByb3ZpZGVyID0gY2VydGlmaWNhdGVQcm92aWRlcihTdGFjay5vZih0aGlzKSk7XG4gICAgY29uc3QgaG9zdGVkWm9uZUlkID0gcHJvcHMuaG9zdGVkWm9uZS5ob3N0ZWRab25lSWQ7XG4gICAgcHJvdmlkZXIuaXNDb21wbGV0ZUhhbmRsZXIhLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydyb3V0ZTUzOkNoYW5nZVJlc291cmNlUmVjb3JkU2V0cyddLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBTdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgc2VydmljZTogJ3JvdXRlNTMnLFxuICAgICAgICAgICAgcmVnaW9uOiAnJyxcbiAgICAgICAgICAgIGFjY291bnQ6ICcnLFxuICAgICAgICAgICAgcmVzb3VyY2U6ICdob3N0ZWR6b25lJyxcbiAgICAgICAgICAgIHJlc291cmNlTmFtZTogaG9zdGVkWm9uZUlkLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgJ0ZvckFsbFZhbHVlczpTdHJpbmdFcXVhbHMnOiB7XG4gICAgICAgICAgICAncm91dGU1MzpDaGFuZ2VSZXNvdXJjZVJlY29yZFNldHNSZWNvcmRUeXBlcyc6IFsnQ05BTUUnXSxcbiAgICAgICAgICAgICdyb3V0ZTUzOkNoYW5nZVJlc291cmNlUmVjb3JkU2V0c0FjdGlvbnMnOiBbJ1VQU0VSVCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICk7XG4gICAgY29uc3QgcmVzb3VyY2UgPSBuZXcgQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgcmVzb3VyY2VUeXBlOiAnQ3VzdG9tOjpDbG91ZEZyb250Q2VydGlmaWNhdGUnLFxuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7IERvbWFpbk5hbWU6IHByb3BzLmRvbWFpbk5hbWUsIEhvc3RlZFpvbmVJZDogaG9zdGVkWm9uZUlkIH0sXG4gICAgfSk7XG4gICAgdGhpcy5jZXJ0aWZpY2F0ZUFybiA9IHJlc291cmNlLmdldEF0dFN0cmluZygnQ2VydGlmaWNhdGVBcm4nKTtcbiAgICB0aGlzLmNlcnRpZmljYXRlID0gYWNtLkNlcnRpZmljYXRlLmZyb21DZXJ0aWZpY2F0ZUFybih0aGlzLCAnQ2VydGlmaWNhdGUnLCB0aGlzLmNlcnRpZmljYXRlQXJuKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBjZXJ0aWZpY2F0ZVByb3ZpZGVyKHN0YWNrOiBTdGFjayk6IFByb3ZpZGVyIHtcbiAgY29uc3QgcHJvdmlkZXJJZCA9ICdDbG91ZEZyb250Q2VydGlmaWNhdGVQcm92aWRlcic7XG4gIGNvbnN0IGV4aXN0aW5nID0gc3RhY2subm9kZS50cnlGaW5kQ2hpbGQocHJvdmlkZXJJZCk7XG4gIGlmIChleGlzdGluZykge1xuICAgIHJldHVybiBleGlzdGluZyBhcyBQcm92aWRlcjtcbiAgfVxuXG4gIGNvbnN0IGxvZ0dyb3VwID0gbmV3IGxvZ3MuTG9nR3JvdXAoc3RhY2ssICdDbG91ZEZyb250Q2VydGlmaWNhdGVIYW5kbGVyTG9ncycsIHtcbiAgICByZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5PTkVfV0VFSyxcbiAgfSk7XG4gIGNvbnN0IGNvbW1vbiA9IHtcbiAgICBydW50aW1lOiBERUZBVUxUX05PREVfUlVOVElNRSxcbiAgICBhcmNoaXRlY3R1cmU6IGxhbWJkYS5BcmNoaXRlY3R1cmUuQVJNXzY0LFxuICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChwYXRoLmpvaW4oX19kaXJuYW1lLCAnbGFtYmRhJyksIHsgZXhjbHVkZTogWycqLmpzJywgJyouZC50cyddIH0pLFxuICAgIHRpbWVvdXQ6IER1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgbG9nR3JvdXAsXG4gIH07XG4gIGNvbnN0IGNlcnRpZmljYXRlQXJucyA9IFtcbiAgICBzdGFjay5mb3JtYXRBcm4oeyBzZXJ2aWNlOiAnYWNtJywgcmVnaW9uOiAndXMtZWFzdC0xJywgcmVzb3VyY2U6ICdjZXJ0aWZpY2F0ZScsIHJlc291cmNlTmFtZTogJyonIH0pLFxuICBdO1xuICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5TaW5nbGV0b25GdW5jdGlvbihzdGFjaywgJ0Nsb3VkRnJvbnRDZXJ0aWZpY2F0ZU9uRXZlbnQnLCB7XG4gICAgLi4uY29tbW9uLFxuICAgIHV1aWQ6ICc0NzYyZDUwZS1lNDRlLTQ5OTUtOGM2Yy01MWZhNTllNjIzNzMnLFxuICAgIGxhbWJkYVB1cnBvc2U6ICdDbG91ZEZyb250Q2VydGlmaWNhdGVPbkV2ZW50JyxcbiAgICBoYW5kbGVyOiAnaGFuZGxlci5vbkV2ZW50JyxcbiAgICBpbml0aWFsUG9saWN5OiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFsnYWNtOlJlcXVlc3RDZXJ0aWZpY2F0ZSddLFxuICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgfSksXG4gICAgXSxcbiAgfSk7XG4gIGNvbnN0IGlzQ29tcGxldGUgPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHN0YWNrLCAnQ2xvdWRGcm9udENlcnRpZmljYXRlSXNDb21wbGV0ZScsIHtcbiAgICAuLi5jb21tb24sXG4gICAgdXVpZDogJzQ2NzNkOWRlLWQ5MWUtNDljNS04ZDlmLWM0N2Q5ZTE2ZDBlZScsXG4gICAgbGFtYmRhUHVycG9zZTogJ0Nsb3VkRnJvbnRDZXJ0aWZpY2F0ZUlzQ29tcGxldGUnLFxuICAgIGhhbmRsZXI6ICdoYW5kbGVyLmlzQ29tcGxldGUnLFxuICAgIGluaXRpYWxQb2xpY3k6IFtcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogWydhY206RGVzY3JpYmVDZXJ0aWZpY2F0ZScsICdhY206RGVsZXRlQ2VydGlmaWNhdGUnXSxcbiAgICAgICAgcmVzb3VyY2VzOiBjZXJ0aWZpY2F0ZUFybnMsXG4gICAgICB9KSxcbiAgICBdLFxuICB9KTtcbiAgcmV0dXJuIG5ldyBQcm92aWRlcihzdGFjaywgcHJvdmlkZXJJZCwge1xuICAgIG9uRXZlbnRIYW5kbGVyOiBvbkV2ZW50LFxuICAgIGlzQ29tcGxldGVIYW5kbGVyOiBpc0NvbXBsZXRlLFxuICAgIHF1ZXJ5SW50ZXJ2YWw6IER1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgIHRvdGFsVGltZW91dDogRHVyYXRpb24ubWludXRlcyg2MCksXG4gIH0pO1xufVxuIl19
@@ -35970,7 +35970,9 @@ async function requestCertificate(event) {
35970
35970
  ValidationMethod: "DNS"
35971
35971
  })
35972
35972
  );
35973
- if (!result.CertificateArn) throw new Error("ACM did not return a certificate ARN");
35973
+ if (!result.CertificateArn) {
35974
+ throw new Error("ACM did not return a certificate ARN");
35975
+ }
35974
35976
  return certificateResponse(result.CertificateArn);
35975
35977
  }
35976
35978
  function onDelete(event) {
@@ -35980,18 +35982,26 @@ async function completeDeletion(event) {
35980
35982
  const arn = event.PhysicalResourceId;
35981
35983
  try {
35982
35984
  const certificate = await describeCertificate(arn);
35983
- if (certificate.InUseBy?.length) return { IsComplete: false };
35985
+ if (certificate.InUseBy?.length) {
35986
+ return { IsComplete: false };
35987
+ }
35984
35988
  await acm.send(new import_client_acm.DeleteCertificateCommand({ CertificateArn: arn }));
35985
35989
  } catch (error2) {
35986
- if (error2 instanceof import_client_acm.ResourceInUseException) return { IsComplete: false };
35987
- if (error2 instanceof import_client_acm.ResourceNotFoundException) return { IsComplete: true };
35990
+ if (error2 instanceof import_client_acm.ResourceInUseException) {
35991
+ return { IsComplete: false };
35992
+ }
35993
+ if (error2 instanceof import_client_acm.ResourceNotFoundException) {
35994
+ return { IsComplete: true };
35995
+ }
35988
35996
  throw error2;
35989
35997
  }
35990
35998
  return { IsComplete: true };
35991
35999
  }
35992
36000
  async function describeCertificate(arn) {
35993
36001
  const { Certificate } = await acm.send(new import_client_acm.DescribeCertificateCommand({ CertificateArn: arn }));
35994
- if (!Certificate) throw new Error("ACM did not return certificate details");
36002
+ if (!Certificate) {
36003
+ throw new Error("ACM did not return certificate details");
36004
+ }
35995
36005
  return Certificate;
35996
36006
  }
35997
36007
  function certificateResponse(arn) {
@@ -36004,14 +36014,18 @@ var route53 = new import_client_route_53.Route53Client({});
36004
36014
  async function completeValidation(event) {
36005
36015
  const arn = event.PhysicalResourceId;
36006
36016
  const certificate = await describeCertificate(arn);
36007
- if (certificate.Status === "ISSUED") return { IsComplete: true };
36017
+ if (certificate.Status === "ISSUED") {
36018
+ return { IsComplete: true };
36019
+ }
36008
36020
  if (certificate.Status !== "PENDING_VALIDATION") {
36009
36021
  throw new Error(
36010
36022
  `Certificate ${arn} has status ${certificate.Status}: ${certificate.FailureReason ?? "unknown reason"}`
36011
36023
  );
36012
36024
  }
36013
36025
  const record = certificate.DomainValidationOptions?.[0]?.ResourceRecord;
36014
- if (!record?.Name || !record.Value || record.Type !== "CNAME") return { IsComplete: false };
36026
+ if (!record?.Name || !record.Value || record.Type !== "CNAME") {
36027
+ return { IsComplete: false };
36028
+ }
36015
36029
  await route53.send(
36016
36030
  new import_client_route_53.ChangeResourceRecordSetsCommand({
36017
36031
  HostedZoneId: event.ResourceProperties.HostedZoneId,
@@ -29,7 +29,7 @@ const createCspFromDirectiveObjects = (directiveObjects) => {
29
29
  exports.createCspFromDirectiveObjects = createCspFromDirectiveObjects;
30
30
  const camelToDash = (str) => {
31
31
  if (str != str.toLowerCase()) {
32
- str = str.replace(/[A-Z]/g, m => '-' + m.toLowerCase());
32
+ str = str.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
33
33
  }
34
34
  return str;
35
35
  };
@@ -58,4 +58,4 @@ const ORDERED_DIRECTIVE_NAMES = [
58
58
  'upgradeInsecureRequests',
59
59
  'childSrc',
60
60
  ];
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudFNlY3VyaXR5UG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvY29udGVudFNlY3VyaXR5UG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlCTyxNQUFNLDZCQUE2QixHQUFHLENBQUMsZ0JBQWlDLEVBQVUsRUFBRTtJQUN6RixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztJQUU5RCxLQUFLLE1BQU0sZUFBZSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDL0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxhQUFhLEdBQUcsR0FBdUIsQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELEtBQUssTUFBTSxLQUFLLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBYSxFQUFFLENBQUM7Z0JBQy9ELFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUU1QixLQUFLLE1BQU0sU0FBUyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDaEQsTUFBTSxNQUFNLEdBQTRCLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLG1CQUFXLEVBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNO1NBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNULE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDO1NBQzFCLElBQUksRUFBRSxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBNUJXLFFBQUEsNkJBQTZCLGlDQTRCeEM7QUFFSyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3pDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQzdCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFMVyxRQUFBLFdBQVcsZUFLdEI7QUFJRixNQUFNLHVCQUF1QixHQUF1QjtJQUNsRCxZQUFZO0lBQ1osWUFBWTtJQUNaLFNBQVM7SUFDVCxRQUFRO0lBQ1IsYUFBYTtJQUNiLFVBQVU7SUFDVixXQUFXO0lBQ1gsV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0lBQ2YsVUFBVTtJQUNWLGNBQWM7SUFDZCxjQUFjO0lBQ2QsV0FBVztJQUNYLFNBQVM7SUFDVCxTQUFTO0lBQ1QsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsVUFBVTtJQUNWLHlCQUF5QjtJQUN6QixVQUFVO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ3NwRGlyZWN0aXZlcyB7XG4gIHJlYWRvbmx5IGRlZmF1bHRTcmM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgY29ubmVjdFNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBmb250U3JjPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGltZ1NyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBtYW5pZmVzdFNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBtZWRpYVNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBvYmplY3RTcmM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2NyaXB0U3JjPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHNjcmlwdFNyY0VsZW0/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2NyaXB0U3JjQXR0cj86IHN0cmluZ1tdO1xuICByZWFkb25seSBzdHlsZVNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBzdHlsZVNyY0VsZW0/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc3R5bGVTcmNBdHRyPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHdvcmtlclNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBiYXNlVXJpPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHNhbmRib3g/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZm9ybUFjdGlvbj86IHN0cmluZ1tdO1xuICByZWFkb25seSBmcmFtZUFuY2VzdG9ycz86IHN0cmluZ1tdO1xuICByZWFkb25seSBmcmFtZVNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSByZXBvcnRUbz86IHN0cmluZ1tdO1xuICByZWFkb25seSB1cGdyYWRlSW5zZWN1cmVSZXF1ZXN0cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBjaGlsZFNyYz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ3NwRnJvbURpcmVjdGl2ZU9iamVjdHMgPSAoZGlyZWN0aXZlT2JqZWN0czogQ3NwRGlyZWN0aXZlc1tdKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZGlyZWN0aXZlTWFwID0gbmV3IE1hcDxDc3BEaXJlY3RpdmVOYW1lLCBTZXQ8c3RyaW5nPj4oKTtcblxuICBmb3IgKGNvbnN0IGRpcmVjdGl2ZU9iamVjdCBvZiBkaXJlY3RpdmVPYmplY3RzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGlyZWN0aXZlT2JqZWN0KSkge1xuICAgICAgY29uc3QgZGlyZWN0aXZlTmFtZSA9IGtleSBhcyBDc3BEaXJlY3RpdmVOYW1lO1xuICAgICAgaWYgKCFkaXJlY3RpdmVNYXAuaGFzKGRpcmVjdGl2ZU5hbWUpKSB7XG4gICAgICAgIGRpcmVjdGl2ZU1hcC5zZXQoZGlyZWN0aXZlTmFtZSwgbmV3IFNldCgpKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgZGlyZWN0aXZlT2JqZWN0W2RpcmVjdGl2ZU5hbWVdIGFzIHN0cmluZ1tdKSB7XG4gICAgICAgIGRpcmVjdGl2ZU1hcC5nZXQoZGlyZWN0aXZlTmFtZSkhLmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgZGlyZWN0aXZlIG9mIE9SREVSRURfRElSRUNUSVZFX05BTUVTKSB7XG4gICAgY29uc3QgdmFsdWVzOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCA9IGRpcmVjdGl2ZU1hcC5nZXQoZGlyZWN0aXZlKTtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICBvdXRwdXQucHVzaChgJHtjYW1lbFRvRGFzaChkaXJlY3RpdmUpfSAke0FycmF5LmZyb20odmFsdWVzKS5qb2luKCcgJyl9O2ApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbiAgICAuam9pbignICcpXG4gICAgLnJlcGxhY2UoL1tcXHJcXG5cXHNdKy9nLCAnICcpXG4gICAgLnRyaW0oKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYW1lbFRvRGFzaCA9IChzdHI6IHN0cmluZykgPT4ge1xuICBpZiAoc3RyICE9IHN0ci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1tBLVpdL2csIG0gPT4gJy0nICsgbS50b0xvd2VyQ2FzZSgpKTtcbiAgfVxuICByZXR1cm4gc3RyO1xufTtcblxudHlwZSBDc3BEaXJlY3RpdmVOYW1lID0ga2V5b2YgQ3NwRGlyZWN0aXZlcztcblxuY29uc3QgT1JERVJFRF9ESVJFQ1RJVkVfTkFNRVM6IENzcERpcmVjdGl2ZU5hbWVbXSA9IFtcbiAgJ2RlZmF1bHRTcmMnLFxuICAnY29ubmVjdFNyYycsXG4gICdmb250U3JjJyxcbiAgJ2ltZ1NyYycsXG4gICdtYW5pZmVzdFNyYycsXG4gICdtZWRpYVNyYycsXG4gICdvYmplY3RTcmMnLFxuICAnc2NyaXB0U3JjJyxcbiAgJ3NjcmlwdFNyY0VsZW0nLFxuICAnc2NyaXB0U3JjQXR0cicsXG4gICdzdHlsZVNyYycsXG4gICdzdHlsZVNyY0VsZW0nLFxuICAnc3R5bGVTcmNBdHRyJyxcbiAgJ3dvcmtlclNyYycsXG4gICdiYXNlVXJpJyxcbiAgJ3NhbmRib3gnLFxuICAnZm9ybUFjdGlvbicsXG4gICdmcmFtZUFuY2VzdG9ycycsXG4gICdmcmFtZVNyYycsXG4gICdyZXBvcnRUbycsXG4gICd1cGdyYWRlSW5zZWN1cmVSZXF1ZXN0cycsXG4gICdjaGlsZFNyYycsXG5dO1xuIl19
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudFNlY3VyaXR5UG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbnRyaWJ1dGlvbnMvY29wLWZyb250ZW5kL2Nsb3VkZnJvbnQvY29udGVudFNlY3VyaXR5UG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQXlCTyxNQUFNLDZCQUE2QixHQUFHLENBQUMsZ0JBQWlDLEVBQVUsRUFBRTtJQUN6RixNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsRUFBaUMsQ0FBQztJQUU5RCxLQUFLLE1BQU0sZUFBZSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDL0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxFQUFFLENBQUM7WUFDL0MsTUFBTSxhQUFhLEdBQUcsR0FBdUIsQ0FBQztZQUM5QyxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO2dCQUNyQyxZQUFZLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7WUFDN0MsQ0FBQztZQUNELEtBQUssTUFBTSxLQUFLLElBQUksZUFBZSxDQUFDLGFBQWEsQ0FBYSxFQUFFLENBQUM7Z0JBQy9ELFlBQVksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzlDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUU1QixLQUFLLE1BQU0sU0FBUyxJQUFJLHVCQUF1QixFQUFFLENBQUM7UUFDaEQsTUFBTSxNQUFNLEdBQTRCLFlBQVksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEUsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNYLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFBLG1CQUFXLEVBQUMsU0FBUyxDQUFDLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzVFLENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxNQUFNO1NBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNULE9BQU8sQ0FBQyxZQUFZLEVBQUUsR0FBRyxDQUFDO1NBQzFCLElBQUksRUFBRSxDQUFDO0FBQ1osQ0FBQyxDQUFDO0FBNUJXLFFBQUEsNkJBQTZCLGlDQTRCeEM7QUFFSyxNQUFNLFdBQVcsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQ3pDLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO1FBQzdCLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDLENBQUM7QUFMVyxRQUFBLFdBQVcsZUFLdEI7QUFJRixNQUFNLHVCQUF1QixHQUF1QjtJQUNsRCxZQUFZO0lBQ1osWUFBWTtJQUNaLFNBQVM7SUFDVCxRQUFRO0lBQ1IsYUFBYTtJQUNiLFVBQVU7SUFDVixXQUFXO0lBQ1gsV0FBVztJQUNYLGVBQWU7SUFDZixlQUFlO0lBQ2YsVUFBVTtJQUNWLGNBQWM7SUFDZCxjQUFjO0lBQ2QsV0FBVztJQUNYLFNBQVM7SUFDVCxTQUFTO0lBQ1QsWUFBWTtJQUNaLGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsVUFBVTtJQUNWLHlCQUF5QjtJQUN6QixVQUFVO0NBQ1gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQ3NwRGlyZWN0aXZlcyB7XG4gIHJlYWRvbmx5IGRlZmF1bHRTcmM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgY29ubmVjdFNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBmb250U3JjPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IGltZ1NyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBtYW5pZmVzdFNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBtZWRpYVNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBvYmplY3RTcmM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2NyaXB0U3JjPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHNjcmlwdFNyY0VsZW0/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc2NyaXB0U3JjQXR0cj86IHN0cmluZ1tdO1xuICByZWFkb25seSBzdHlsZVNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBzdHlsZVNyY0VsZW0/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgc3R5bGVTcmNBdHRyPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHdvcmtlclNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSBiYXNlVXJpPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHNhbmRib3g/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgZm9ybUFjdGlvbj86IHN0cmluZ1tdO1xuICByZWFkb25seSBmcmFtZUFuY2VzdG9ycz86IHN0cmluZ1tdO1xuICByZWFkb25seSBmcmFtZVNyYz86IHN0cmluZ1tdO1xuICByZWFkb25seSByZXBvcnRUbz86IHN0cmluZ1tdO1xuICByZWFkb25seSB1cGdyYWRlSW5zZWN1cmVSZXF1ZXN0cz86IHN0cmluZ1tdO1xuICByZWFkb25seSBjaGlsZFNyYz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgY29uc3QgY3JlYXRlQ3NwRnJvbURpcmVjdGl2ZU9iamVjdHMgPSAoZGlyZWN0aXZlT2JqZWN0czogQ3NwRGlyZWN0aXZlc1tdKTogc3RyaW5nID0+IHtcbiAgY29uc3QgZGlyZWN0aXZlTWFwID0gbmV3IE1hcDxDc3BEaXJlY3RpdmVOYW1lLCBTZXQ8c3RyaW5nPj4oKTtcblxuICBmb3IgKGNvbnN0IGRpcmVjdGl2ZU9iamVjdCBvZiBkaXJlY3RpdmVPYmplY3RzKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgT2JqZWN0LmtleXMoZGlyZWN0aXZlT2JqZWN0KSkge1xuICAgICAgY29uc3QgZGlyZWN0aXZlTmFtZSA9IGtleSBhcyBDc3BEaXJlY3RpdmVOYW1lO1xuICAgICAgaWYgKCFkaXJlY3RpdmVNYXAuaGFzKGRpcmVjdGl2ZU5hbWUpKSB7XG4gICAgICAgIGRpcmVjdGl2ZU1hcC5zZXQoZGlyZWN0aXZlTmFtZSwgbmV3IFNldCgpKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgdmFsdWUgb2YgZGlyZWN0aXZlT2JqZWN0W2RpcmVjdGl2ZU5hbWVdIGFzIHN0cmluZ1tdKSB7XG4gICAgICAgIGRpcmVjdGl2ZU1hcC5nZXQoZGlyZWN0aXZlTmFtZSkhLmFkZCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgY29uc3Qgb3V0cHV0OiBzdHJpbmdbXSA9IFtdO1xuXG4gIGZvciAoY29uc3QgZGlyZWN0aXZlIG9mIE9SREVSRURfRElSRUNUSVZFX05BTUVTKSB7XG4gICAgY29uc3QgdmFsdWVzOiBTZXQ8c3RyaW5nPiB8IHVuZGVmaW5lZCA9IGRpcmVjdGl2ZU1hcC5nZXQoZGlyZWN0aXZlKTtcbiAgICBpZiAodmFsdWVzKSB7XG4gICAgICBvdXRwdXQucHVzaChgJHtjYW1lbFRvRGFzaChkaXJlY3RpdmUpfSAke0FycmF5LmZyb20odmFsdWVzKS5qb2luKCcgJyl9O2ApO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBvdXRwdXRcbiAgICAuam9pbignICcpXG4gICAgLnJlcGxhY2UoL1tcXHJcXG5cXHNdKy9nLCAnICcpXG4gICAgLnRyaW0oKTtcbn07XG5cbmV4cG9ydCBjb25zdCBjYW1lbFRvRGFzaCA9IChzdHI6IHN0cmluZykgPT4ge1xuICBpZiAoc3RyICE9IHN0ci50b0xvd2VyQ2FzZSgpKSB7XG4gICAgc3RyID0gc3RyLnJlcGxhY2UoL1tBLVpdL2csIG0gPT4gYC0ke20udG9Mb3dlckNhc2UoKX1gKTtcbiAgfVxuICByZXR1cm4gc3RyO1xufTtcblxudHlwZSBDc3BEaXJlY3RpdmVOYW1lID0ga2V5b2YgQ3NwRGlyZWN0aXZlcztcblxuY29uc3QgT1JERVJFRF9ESVJFQ1RJVkVfTkFNRVM6IENzcERpcmVjdGl2ZU5hbWVbXSA9IFtcbiAgJ2RlZmF1bHRTcmMnLFxuICAnY29ubmVjdFNyYycsXG4gICdmb250U3JjJyxcbiAgJ2ltZ1NyYycsXG4gICdtYW5pZmVzdFNyYycsXG4gICdtZWRpYVNyYycsXG4gICdvYmplY3RTcmMnLFxuICAnc2NyaXB0U3JjJyxcbiAgJ3NjcmlwdFNyY0VsZW0nLFxuICAnc2NyaXB0U3JjQXR0cicsXG4gICdzdHlsZVNyYycsXG4gICdzdHlsZVNyY0VsZW0nLFxuICAnc3R5bGVTcmNBdHRyJyxcbiAgJ3dvcmtlclNyYycsXG4gICdiYXNlVXJpJyxcbiAgJ3NhbmRib3gnLFxuICAnZm9ybUFjdGlvbicsXG4gICdmcmFtZUFuY2VzdG9ycycsXG4gICdmcmFtZVNyYycsXG4gICdyZXBvcnRUbycsXG4gICd1cGdyYWRlSW5zZWN1cmVSZXF1ZXN0cycsXG4gICdjaGlsZFNyYycsXG5dO1xuIl19
@@ -1,7 +1,7 @@
1
1
  import * as cloudfront from 'aws-cdk-lib/aws-cloudfront';
2
2
  import * as route53 from 'aws-cdk-lib/aws-route53';
3
3
  import { Construct } from 'constructs';
4
- import { CspDirectives } from './contentSecurityPolicy';
4
+ import { type CspDirectives } from './contentSecurityPolicy';
5
5
  /** Properties for defining a RioCloudfrontDistribution. */
6
6
  export interface RioCloudfrontDistributionProps {
7
7
  /** The reference to the S3 bucket containing the files to serve. */