@fjall/components-infrastructure 0.89.5 → 0.89.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (378) hide show
  1. package/LICENSE +50 -21
  2. package/dist/index.d.ts +1 -1
  3. package/dist/index.js +1 -18
  4. package/dist/lib/app.d.ts +12 -12
  5. package/dist/lib/app.js +61 -56
  6. package/dist/lib/aspects/index.d.ts +1 -1
  7. package/dist/lib/aspects/index.js +1 -6
  8. package/dist/lib/aspects/resourceInventory.js +6 -13
  9. package/dist/lib/config/audit.js +1 -5
  10. package/dist/lib/config/aws/accessAnalyser.d.ts +11 -0
  11. package/dist/lib/config/aws/accessAnalyser.js +17 -0
  12. package/dist/lib/config/aws/accountAuditRole.js +11 -15
  13. package/dist/lib/config/aws/accountMonitoringRole.js +25 -29
  14. package/dist/lib/config/aws/alarmTopic.d.ts +8 -0
  15. package/dist/lib/config/aws/alarmTopic.js +19 -0
  16. package/dist/lib/config/aws/cloudTrail.js +4 -9
  17. package/dist/lib/config/aws/configRecorder.d.ts +16 -0
  18. package/dist/lib/config/aws/configRecorder.js +51 -0
  19. package/dist/lib/config/aws/configRulePreset.d.ts +13 -0
  20. package/dist/lib/config/aws/configRulePreset.js +62 -0
  21. package/dist/lib/config/aws/disasterRecovery.d.ts +1 -1
  22. package/dist/lib/config/aws/disasterRecovery.js +56 -73
  23. package/dist/lib/config/aws/ebsDefaultEncryption.d.ts +8 -0
  24. package/dist/lib/config/aws/ebsDefaultEncryption.js +41 -0
  25. package/dist/lib/config/aws/ecrDefaultImage.js +25 -30
  26. package/dist/lib/config/aws/eventBus.js +8 -11
  27. package/dist/lib/config/aws/guardDutyDetector.d.ts +16 -0
  28. package/dist/lib/config/aws/guardDutyDetector.js +26 -0
  29. package/dist/lib/config/aws/identityCenter.d.ts +1 -1
  30. package/dist/lib/config/aws/identityCenter.js +23 -25
  31. package/dist/lib/config/aws/identityCenterGroupMembership.js +18 -22
  32. package/dist/lib/config/aws/index.d.ts +19 -8
  33. package/dist/lib/config/aws/index.js +19 -25
  34. package/dist/lib/config/aws/inspectorEnablement.d.ts +9 -0
  35. package/dist/lib/config/aws/inspectorEnablement.js +51 -0
  36. package/dist/lib/config/aws/ipam.js +9 -13
  37. package/dist/lib/config/aws/oidcConnector.js +8 -12
  38. package/dist/lib/config/aws/platform.js +1 -5
  39. package/dist/lib/config/aws/s3BlockPublicAccess.d.ts +9 -0
  40. package/dist/lib/config/aws/s3BlockPublicAccess.js +55 -0
  41. package/dist/lib/config/aws/scpPreset.d.ts +21 -0
  42. package/dist/lib/config/aws/scpPreset.js +311 -0
  43. package/dist/lib/config/aws/securityBaseline.d.ts +15 -0
  44. package/dist/lib/config/aws/securityBaseline.js +27 -0
  45. package/dist/lib/config/aws/securityHubHub.d.ts +15 -0
  46. package/dist/lib/config/aws/securityHubHub.js +28 -0
  47. package/dist/lib/config/aws/securityServicesAdmin.d.ts +20 -0
  48. package/dist/lib/config/aws/securityServicesAdmin.js +115 -0
  49. package/dist/lib/config/index.d.ts +2 -2
  50. package/dist/lib/config/index.js +2 -21
  51. package/dist/lib/index.d.ts +4 -4
  52. package/dist/lib/index.js +5 -26
  53. package/dist/lib/patterns/aws/account.d.ts +17 -1
  54. package/dist/lib/patterns/aws/account.js +60 -33
  55. package/dist/lib/patterns/aws/apexDomainPattern.d.ts +26 -0
  56. package/dist/lib/patterns/aws/apexDomainPattern.js +91 -0
  57. package/dist/lib/patterns/aws/auditRole.js +13 -16
  58. package/dist/lib/patterns/aws/buildkite.d.ts +1 -1
  59. package/dist/lib/patterns/aws/buildkite.js +70 -75
  60. package/dist/lib/patterns/aws/cdn.d.ts +5 -5
  61. package/dist/lib/patterns/aws/cdn.js +22 -28
  62. package/dist/lib/patterns/aws/compute.d.ts +1 -1
  63. package/dist/lib/patterns/aws/compute.js +31 -44
  64. package/dist/lib/patterns/aws/computeEc2.d.ts +1 -1
  65. package/dist/lib/patterns/aws/computeEc2.js +11 -14
  66. package/dist/lib/patterns/aws/computeEcs.d.ts +18 -2
  67. package/dist/lib/patterns/aws/computeEcs.js +41 -31
  68. package/dist/lib/patterns/aws/computeLambda.d.ts +2 -2
  69. package/dist/lib/patterns/aws/computeLambda.js +24 -31
  70. package/dist/lib/patterns/aws/database.d.ts +16 -7
  71. package/dist/lib/patterns/aws/database.js +81 -73
  72. package/dist/lib/patterns/aws/delegatedDomainPattern.d.ts +17 -0
  73. package/dist/lib/patterns/aws/delegatedDomainPattern.js +54 -0
  74. package/dist/lib/patterns/aws/dnsRecordComposer.d.ts +25 -0
  75. package/dist/lib/patterns/aws/dnsRecordComposer.js +225 -0
  76. package/dist/lib/patterns/aws/domain.d.ts +32 -0
  77. package/dist/lib/patterns/aws/domain.js +115 -0
  78. package/dist/lib/patterns/aws/domainDelegation.d.ts +3 -3
  79. package/dist/lib/patterns/aws/domainDelegation.js +28 -37
  80. package/dist/lib/patterns/aws/domainFactory.d.ts +20 -5
  81. package/dist/lib/patterns/aws/domainFactory.js +48 -10
  82. package/dist/lib/patterns/aws/domainValidation.d.ts +11 -0
  83. package/dist/lib/patterns/aws/domainValidation.js +145 -0
  84. package/dist/lib/patterns/aws/externalRecordsPattern.d.ts +18 -0
  85. package/dist/lib/patterns/aws/externalRecordsPattern.js +141 -0
  86. package/dist/lib/patterns/aws/fivetranProxy.d.ts +1 -1
  87. package/dist/lib/patterns/aws/fivetranProxy.js +6 -11
  88. package/dist/lib/patterns/aws/index.d.ts +21 -19
  89. package/dist/lib/patterns/aws/index.js +25 -36
  90. package/dist/lib/patterns/aws/interfaces/cdn.js +1 -5
  91. package/dist/lib/patterns/aws/interfaces/compute.js +4 -11
  92. package/dist/lib/patterns/aws/interfaces/connector.js +1 -15
  93. package/dist/lib/patterns/aws/interfaces/database.d.ts +1 -1
  94. package/dist/lib/patterns/aws/interfaces/database.js +6 -15
  95. package/dist/lib/patterns/aws/interfaces/domain.d.ts +80 -2
  96. package/dist/lib/patterns/aws/interfaces/domain.js +1 -6
  97. package/dist/lib/patterns/aws/interfaces/index.js +8 -41
  98. package/dist/lib/patterns/aws/interfaces/messaging.js +4 -11
  99. package/dist/lib/patterns/aws/interfaces/organisation.d.ts +1 -1
  100. package/dist/lib/patterns/aws/interfaces/organisation.js +4 -11
  101. package/dist/lib/patterns/aws/interfaces/pattern.js +2 -7
  102. package/dist/lib/patterns/aws/interfaces/storage.js +1 -5
  103. package/dist/lib/patterns/aws/managedIdentityCenter.js +7 -12
  104. package/dist/lib/patterns/aws/messaging.d.ts +7 -7
  105. package/dist/lib/patterns/aws/messaging.js +22 -33
  106. package/dist/lib/patterns/aws/network.d.ts +2 -2
  107. package/dist/lib/patterns/aws/network.js +9 -14
  108. package/dist/lib/patterns/aws/organisation.d.ts +6 -2
  109. package/dist/lib/patterns/aws/organisation.js +34 -35
  110. package/dist/lib/patterns/aws/organisationFactory.d.ts +3 -3
  111. package/dist/lib/patterns/aws/organisationFactory.js +7 -12
  112. package/dist/lib/patterns/aws/pattern.js +6 -12
  113. package/dist/lib/patterns/aws/payload.js +73 -63
  114. package/dist/lib/patterns/aws/platform.d.ts +6 -3
  115. package/dist/lib/patterns/aws/platform.js +15 -15
  116. package/dist/lib/patterns/aws/storage.d.ts +6 -4
  117. package/dist/lib/patterns/aws/storage.js +35 -40
  118. package/dist/lib/patterns/aws/subdomainHostedZone.js +11 -16
  119. package/dist/lib/patterns/aws/targets/fjallTargets.d.ts +37 -0
  120. package/dist/lib/patterns/aws/targets/fjallTargets.js +66 -0
  121. package/dist/lib/patterns/aws/targets/index.d.ts +2 -0
  122. package/dist/lib/patterns/aws/targets/index.js +2 -0
  123. package/dist/lib/patterns/aws/targets/targetResolution.d.ts +76 -0
  124. package/dist/lib/patterns/aws/targets/targetResolution.js +119 -0
  125. package/dist/lib/patterns/index.d.ts +1 -0
  126. package/dist/lib/patterns/index.js +1 -0
  127. package/dist/lib/resources/aws/analytics/clickhouse.d.ts +15 -0
  128. package/dist/lib/resources/aws/analytics/clickhouse.js +292 -0
  129. package/dist/lib/resources/aws/analytics/clickhouseConstants.d.ts +73 -0
  130. package/dist/lib/resources/aws/analytics/clickhouseConstants.js +87 -0
  131. package/dist/lib/resources/aws/analytics/clickhouseSecurityGroup.d.ts +13 -0
  132. package/dist/lib/resources/aws/analytics/clickhouseSecurityGroup.js +28 -0
  133. package/dist/lib/resources/aws/analytics/clickhouseTypes.d.ts +47 -0
  134. package/dist/lib/resources/aws/analytics/clickhouseTypes.js +1 -0
  135. package/dist/lib/resources/aws/analytics/clickhouseUserData.d.ts +5 -0
  136. package/dist/lib/resources/aws/analytics/clickhouseUserData.js +248 -0
  137. package/dist/lib/resources/aws/analytics/index.d.ts +2 -0
  138. package/dist/lib/resources/aws/analytics/index.js +1 -0
  139. package/dist/lib/resources/aws/audit/auditRole.js +10 -15
  140. package/dist/lib/resources/aws/audit/index.d.ts +1 -1
  141. package/dist/lib/resources/aws/audit/index.js +1 -6
  142. package/dist/lib/resources/aws/backup/backupPlan.d.ts +1 -1
  143. package/dist/lib/resources/aws/backup/backupPlan.js +14 -16
  144. package/dist/lib/resources/aws/backup/backupVault.d.ts +1 -1
  145. package/dist/lib/resources/aws/backup/backupVault.js +13 -15
  146. package/dist/lib/resources/aws/backup/index.d.ts +2 -2
  147. package/dist/lib/resources/aws/backup/index.js +2 -19
  148. package/dist/lib/resources/aws/base/awsStack.js +17 -19
  149. package/dist/lib/resources/aws/base/index.d.ts +1 -1
  150. package/dist/lib/resources/aws/base/index.js +1 -18
  151. package/dist/lib/resources/aws/cdn/cloudFront.js +40 -42
  152. package/dist/lib/resources/aws/cdn/index.d.ts +1 -1
  153. package/dist/lib/resources/aws/cdn/index.js +1 -18
  154. package/dist/lib/resources/aws/compute/ec2.js +39 -39
  155. package/dist/lib/resources/aws/compute/ecs.d.ts +18 -396
  156. package/dist/lib/resources/aws/compute/ecs.js +105 -976
  157. package/dist/lib/resources/aws/compute/ecsCapacityProviderAspect.d.ts +22 -0
  158. package/dist/lib/resources/aws/compute/ecsCapacityProviderAspect.js +35 -0
  159. package/dist/lib/resources/aws/compute/ecsConstants.d.ts +20 -0
  160. package/dist/lib/resources/aws/compute/ecsConstants.js +49 -0
  161. package/dist/lib/resources/aws/compute/ecsContext.d.ts +12 -0
  162. package/dist/lib/resources/aws/compute/ecsContext.js +1 -0
  163. package/dist/lib/resources/aws/compute/ecsImages.d.ts +4 -0
  164. package/dist/lib/resources/aws/compute/ecsImages.js +35 -0
  165. package/dist/lib/resources/aws/compute/ecsNetworking.d.ts +28 -0
  166. package/dist/lib/resources/aws/compute/ecsNetworking.js +290 -0
  167. package/dist/lib/resources/aws/compute/ecsRoles.d.ts +15 -0
  168. package/dist/lib/resources/aws/compute/ecsRoles.js +110 -0
  169. package/dist/lib/resources/aws/compute/ecsServiceFactory.d.ts +33 -0
  170. package/dist/lib/resources/aws/compute/ecsServiceFactory.js +183 -0
  171. package/dist/lib/resources/aws/compute/ecsTaskDefinition.d.ts +30 -0
  172. package/dist/lib/resources/aws/compute/ecsTaskDefinition.js +168 -0
  173. package/dist/lib/resources/aws/compute/ecsTypes.d.ts +337 -0
  174. package/dist/lib/resources/aws/compute/ecsTypes.js +10 -0
  175. package/dist/lib/resources/aws/compute/ecsValidation.d.ts +18 -0
  176. package/dist/lib/resources/aws/compute/ecsValidation.js +72 -0
  177. package/dist/lib/resources/aws/compute/index.d.ts +3 -3
  178. package/dist/lib/resources/aws/compute/index.js +3 -20
  179. package/dist/lib/resources/aws/compute/lambda.d.ts +10 -2
  180. package/dist/lib/resources/aws/compute/lambda.js +81 -71
  181. package/dist/lib/resources/aws/database/dynamodb.js +24 -27
  182. package/dist/lib/resources/aws/database/index.d.ts +7 -7
  183. package/dist/lib/resources/aws/database/index.js +14 -33
  184. package/dist/lib/resources/aws/database/rdsAurora.d.ts +10 -2
  185. package/dist/lib/resources/aws/database/rdsAurora.js +76 -61
  186. package/dist/lib/resources/aws/database/rdsAuroraGlobal.d.ts +2 -2
  187. package/dist/lib/resources/aws/database/rdsAuroraGlobal.js +24 -21
  188. package/dist/lib/resources/aws/database/rdsDefaults.js +3 -7
  189. package/dist/lib/resources/aws/database/rdsHelpers.d.ts +2 -2
  190. package/dist/lib/resources/aws/database/rdsHelpers.js +21 -29
  191. package/dist/lib/resources/aws/database/rdsInstance.d.ts +11 -3
  192. package/dist/lib/resources/aws/database/rdsInstance.js +101 -83
  193. package/dist/lib/resources/aws/database/rdsProxyOutput.js +5 -9
  194. package/dist/lib/resources/aws/iam/delegationRole.d.ts +18 -0
  195. package/dist/lib/resources/aws/iam/delegationRole.js +60 -0
  196. package/dist/lib/resources/aws/iam/identityCenter/assignment.js +4 -9
  197. package/dist/lib/resources/aws/iam/identityCenter/group.js +5 -9
  198. package/dist/lib/resources/aws/iam/identityCenter/index.d.ts +3 -3
  199. package/dist/lib/resources/aws/iam/identityCenter/index.js +3 -20
  200. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.d.ts +1 -1
  201. package/dist/lib/resources/aws/iam/identityCenter/permissionSet.js +5 -9
  202. package/dist/lib/resources/aws/iam/index.d.ts +5 -4
  203. package/dist/lib/resources/aws/iam/index.js +5 -21
  204. package/dist/lib/resources/aws/iam/instanceProfile.js +2 -7
  205. package/dist/lib/resources/aws/iam/managedPolicy.js +2 -7
  206. package/dist/lib/resources/aws/iam/policy.js +2 -7
  207. package/dist/lib/resources/aws/iam/role.js +2 -7
  208. package/dist/lib/resources/aws/index.d.ts +7 -7
  209. package/dist/lib/resources/aws/index.js +7 -24
  210. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +1 -1
  211. package/dist/lib/resources/aws/logging/cloudTrail.js +18 -22
  212. package/dist/lib/resources/aws/logging/index.d.ts +2 -2
  213. package/dist/lib/resources/aws/logging/index.js +2 -19
  214. package/dist/lib/resources/aws/logging/logGroup.js +4 -10
  215. package/dist/lib/resources/aws/messaging/eventbridge.js +11 -14
  216. package/dist/lib/resources/aws/messaging/index.d.ts +4 -4
  217. package/dist/lib/resources/aws/messaging/index.js +4 -21
  218. package/dist/lib/resources/aws/messaging/sns.js +11 -14
  219. package/dist/lib/resources/aws/messaging/sqs.js +32 -34
  220. package/dist/lib/resources/aws/messaging/utils.d.ts +1 -1
  221. package/dist/lib/resources/aws/messaging/utils.js +1 -6
  222. package/dist/lib/resources/aws/monitoring/alarmDefaults.d.ts +36 -0
  223. package/dist/lib/resources/aws/monitoring/alarmDefaults.js +34 -0
  224. package/dist/lib/resources/aws/monitoring/ecsAlarms.d.ts +21 -0
  225. package/dist/lib/resources/aws/monitoring/ecsAlarms.js +88 -0
  226. package/dist/lib/resources/aws/monitoring/index.d.ts +4 -0
  227. package/dist/lib/resources/aws/monitoring/index.js +4 -5
  228. package/dist/lib/resources/aws/monitoring/lambdaAlarms.d.ts +18 -0
  229. package/dist/lib/resources/aws/monitoring/lambdaAlarms.js +44 -0
  230. package/dist/lib/resources/aws/monitoring/rdsAlarms.d.ts +20 -0
  231. package/dist/lib/resources/aws/monitoring/rdsAlarms.js +52 -0
  232. package/dist/lib/resources/aws/networking/crossAccountDelegationRecord.d.ts +17 -0
  233. package/dist/lib/resources/aws/networking/crossAccountDelegationRecord.js +26 -0
  234. package/dist/lib/resources/aws/networking/dnsRecord/aRecord.d.ts +12 -0
  235. package/dist/lib/resources/aws/networking/dnsRecord/aRecord.js +21 -0
  236. package/dist/lib/resources/aws/networking/dnsRecord/aaaaRecord.d.ts +12 -0
  237. package/dist/lib/resources/aws/networking/dnsRecord/aaaaRecord.js +22 -0
  238. package/dist/lib/resources/aws/networking/dnsRecord/aliasRecord.d.ts +12 -0
  239. package/dist/lib/resources/aws/networking/dnsRecord/aliasRecord.js +23 -0
  240. package/dist/lib/resources/aws/networking/dnsRecord/caaRecord.d.ts +17 -0
  241. package/dist/lib/resources/aws/networking/dnsRecord/caaRecord.js +21 -0
  242. package/dist/lib/resources/aws/networking/dnsRecord/cnameRecord.d.ts +12 -0
  243. package/dist/lib/resources/aws/networking/dnsRecord/cnameRecord.js +22 -0
  244. package/dist/lib/resources/aws/networking/dnsRecord/dnsRecordBase.d.ts +17 -0
  245. package/dist/lib/resources/aws/networking/dnsRecord/dnsRecordBase.js +17 -0
  246. package/dist/lib/resources/aws/networking/dnsRecord/index.d.ts +10 -0
  247. package/dist/lib/resources/aws/networking/dnsRecord/index.js +10 -0
  248. package/dist/lib/resources/aws/networking/dnsRecord/mxRecord.d.ts +16 -0
  249. package/dist/lib/resources/aws/networking/dnsRecord/mxRecord.js +21 -0
  250. package/dist/lib/resources/aws/networking/dnsRecord/nsRecord.d.ts +12 -0
  251. package/dist/lib/resources/aws/networking/dnsRecord/nsRecord.js +21 -0
  252. package/dist/lib/resources/aws/networking/dnsRecord/srvRecord.d.ts +18 -0
  253. package/dist/lib/resources/aws/networking/dnsRecord/srvRecord.js +21 -0
  254. package/dist/lib/resources/aws/networking/dnsRecord/txtRecord.d.ts +12 -0
  255. package/dist/lib/resources/aws/networking/dnsRecord/txtRecord.js +21 -0
  256. package/dist/lib/resources/aws/networking/domain.d.ts +1 -1
  257. package/dist/lib/resources/aws/networking/domain.js +32 -34
  258. package/dist/lib/resources/aws/networking/domainCertificate.d.ts +8 -3
  259. package/dist/lib/resources/aws/networking/domainCertificate.js +22 -16
  260. package/dist/lib/resources/aws/networking/hostedZone.d.ts +23 -19
  261. package/dist/lib/resources/aws/networking/hostedZone.js +70 -134
  262. package/dist/lib/resources/aws/networking/index.d.ts +8 -7
  263. package/dist/lib/resources/aws/networking/index.js +8 -24
  264. package/dist/lib/resources/aws/networking/ipam.js +2 -7
  265. package/dist/lib/resources/aws/networking/ipamPool.d.ts +1 -1
  266. package/dist/lib/resources/aws/networking/ipamPool.js +45 -55
  267. package/dist/lib/resources/aws/networking/securityGroup.js +2 -7
  268. package/dist/lib/resources/aws/networking/vpc.d.ts +1 -1
  269. package/dist/lib/resources/aws/networking/vpc.js +17 -21
  270. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.d.ts +1 -1
  271. package/dist/lib/resources/aws/organisation/costAllocationTagActivator.js +11 -15
  272. package/dist/lib/resources/aws/organisation/index.d.ts +5 -5
  273. package/dist/lib/resources/aws/organisation/index.js +4 -12
  274. package/dist/lib/resources/aws/organisation/organisation.js +5 -7
  275. package/dist/lib/resources/aws/organisation/organisationAccount.js +7 -10
  276. package/dist/lib/resources/aws/organisation/organisationPolicy.js +5 -9
  277. package/dist/lib/resources/aws/organisation/organisationalUnit.js +1 -3
  278. package/dist/lib/resources/aws/secrets/alias.js +2 -7
  279. package/dist/lib/resources/aws/secrets/index.d.ts +4 -4
  280. package/dist/lib/resources/aws/secrets/index.js +4 -21
  281. package/dist/lib/resources/aws/secrets/kms.js +15 -18
  282. package/dist/lib/resources/aws/secrets/parameter.d.ts +3 -3
  283. package/dist/lib/resources/aws/secrets/parameter.js +19 -22
  284. package/dist/lib/resources/aws/secrets/secret.d.ts +2 -2
  285. package/dist/lib/resources/aws/secrets/secret.js +12 -14
  286. package/dist/lib/resources/aws/storage/ecr.d.ts +2 -2
  287. package/dist/lib/resources/aws/storage/ecr.js +7 -13
  288. package/dist/lib/resources/aws/storage/index.d.ts +2 -2
  289. package/dist/lib/resources/aws/storage/index.js +2 -19
  290. package/dist/lib/resources/aws/storage/s3.d.ts +1 -1
  291. package/dist/lib/resources/aws/storage/s3.js +24 -12
  292. package/dist/lib/resources/aws/utilities/awsCustomResource.js +3 -7
  293. package/dist/lib/resources/aws/utilities/codeBuild.js +7 -12
  294. package/dist/lib/resources/aws/utilities/customResource.js +14 -17
  295. package/dist/lib/resources/aws/utilities/customResourceProvider.js +2 -7
  296. package/dist/lib/resources/aws/utilities/index.d.ts +5 -5
  297. package/dist/lib/resources/aws/utilities/index.js +5 -22
  298. package/dist/lib/resources/aws/utilities/resourceShare.js +2 -7
  299. package/dist/lib/resources/index.d.ts +1 -1
  300. package/dist/lib/resources/index.js +1 -18
  301. package/dist/lib/types.js +1 -3
  302. package/dist/lib/utils/accountsUtils.d.ts +5 -0
  303. package/dist/lib/utils/accountsUtils.js +18 -0
  304. package/dist/lib/utils/addSuffixToEmail.js +1 -5
  305. package/dist/lib/utils/backupTierMapping.js +2 -6
  306. package/dist/lib/utils/capitaliseString.js +1 -10
  307. package/dist/lib/utils/connections.js +9 -13
  308. package/dist/lib/utils/connector.js +10 -23
  309. package/dist/lib/utils/constructMap.d.ts +33 -0
  310. package/dist/lib/utils/constructMap.js +154 -0
  311. package/dist/lib/utils/databaseTypes.js +4 -10
  312. package/dist/lib/utils/dnsRecords.d.ts +1 -1
  313. package/dist/lib/utils/dnsRecords.js +23 -27
  314. package/dist/lib/utils/domainTypes.d.ts +0 -1
  315. package/dist/lib/utils/domainTypes.js +2 -10
  316. package/dist/lib/utils/env.js +14 -26
  317. package/dist/lib/utils/getAccountId.js +3 -7
  318. package/dist/lib/utils/getAsync.js +7 -10
  319. package/dist/lib/utils/getConfig.d.ts +0 -2
  320. package/dist/lib/utils/getConfig.js +29 -47
  321. package/dist/lib/utils/getStackOutput.js +4 -8
  322. package/dist/lib/utils/index.d.ts +12 -12
  323. package/dist/lib/utils/index.js +12 -29
  324. package/dist/lib/utils/manifestWriter.d.ts +14 -3
  325. package/dist/lib/utils/manifestWriter.js +60 -43
  326. package/dist/lib/utils/orgConfigParser.d.ts +14 -0
  327. package/dist/lib/utils/orgConfigParser.js +49 -0
  328. package/dist/lib/utils/removalPolicy.js +5 -9
  329. package/dist/lib/utils/resourceNaming.js +11 -16
  330. package/dist/lib/utils/standardTagsAspect.js +9 -16
  331. package/dist/lib/utils/stripAndCamelCase.js +1 -5
  332. package/dist/lib/utils/validationLogger.js +12 -18
  333. package/dist/lib/utils/vpcUtils.js +5 -10
  334. package/package.json +25 -8
  335. package/dist/lib/config/aws/accountId.d.ts +0 -6
  336. package/dist/lib/config/aws/accountId.js +0 -32
  337. package/dist/lib/config/aws/backupGlobalSettings.d.ts +0 -29
  338. package/dist/lib/config/aws/backupGlobalSettings.js +0 -49
  339. package/dist/lib/config/aws/costAllocationTags.d.ts +0 -12
  340. package/dist/lib/config/aws/costAllocationTags.js +0 -47
  341. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +0 -8
  342. package/dist/lib/config/aws/ipamDelegateAdmin.js +0 -57
  343. package/dist/lib/config/aws/ipamPoolId.d.ts +0 -16
  344. package/dist/lib/config/aws/ipamPoolId.js +0 -42
  345. package/dist/lib/config/aws/organisation.d.ts +0 -30
  346. package/dist/lib/config/aws/organisation.js +0 -92
  347. package/dist/lib/config/aws/organisationId.d.ts +0 -7
  348. package/dist/lib/config/aws/organisationId.js +0 -45
  349. package/dist/lib/config/aws/organisationsAccess.d.ts +0 -10
  350. package/dist/lib/config/aws/organisationsAccess.js +0 -49
  351. package/dist/lib/config/aws/ramSharing.d.ts +0 -4
  352. package/dist/lib/config/aws/ramSharing.js +0 -34
  353. package/dist/lib/config/monitoring.d.ts +0 -18
  354. package/dist/lib/config/monitoring.js +0 -22
  355. package/dist/lib/patterns/aws/connections.d.ts +0 -46
  356. package/dist/lib/patterns/aws/connections.js +0 -159
  357. package/dist/lib/patterns/aws/hostedZone.d.ts +0 -28
  358. package/dist/lib/patterns/aws/hostedZone.js +0 -150
  359. package/dist/lib/patterns/aws/managedAccount.d.ts +0 -9
  360. package/dist/lib/patterns/aws/managedAccount.js +0 -55
  361. package/dist/lib/patterns/aws/managedOrganisation.d.ts +0 -36
  362. package/dist/lib/patterns/aws/managedOrganisation.js +0 -97
  363. package/dist/lib/patterns/aws/managedPlatform.d.ts +0 -12
  364. package/dist/lib/patterns/aws/managedPlatform.js +0 -29
  365. package/dist/lib/resources/aws/database/database.d.ts +0 -14
  366. package/dist/lib/resources/aws/database/database.js +0 -28
  367. package/dist/lib/resources/aws/database/databaseInstance.d.ts +0 -15
  368. package/dist/lib/resources/aws/database/databaseInstance.js +0 -30
  369. package/dist/lib/resources/aws/database/migrationLambda.d.ts +0 -80
  370. package/dist/lib/resources/aws/database/migrationLambda.js +0 -119
  371. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.d.ts +0 -13
  372. package/dist/lib/resources/aws/iam/identityCenter/attachManagedPolicy.js +0 -51
  373. package/dist/lib/resources/aws/iam/securityGroup.d.ts +0 -5
  374. package/dist/lib/resources/aws/iam/securityGroup.js +0 -14
  375. package/dist/lib/resources/aws/monitoring/monitoringRole.d.ts +0 -29
  376. package/dist/lib/resources/aws/monitoring/monitoringRole.js +0 -120
  377. package/dist/lib/utils/capitalizeString.d.ts +0 -12
  378. package/dist/lib/utils/capitalizeString.js +0 -30
@@ -0,0 +1,154 @@
1
+ /**
2
+ * Local construct map utilities for the infrastructure package.
3
+ *
4
+ * These are local copies of functions from @fjall/util, needed because
5
+ * the infrastructure package compiles to CommonJS but @fjall/util is ESM.
6
+ * Type-only imports from @fjall/util are fine (compiled away), but runtime
7
+ * imports cause Jest/Node CJS-ESM boundary errors.
8
+ */
9
+ import { readFileSync } from "fs";
10
+ import { join } from "path";
11
+ /** Manifest file name — must match FJALL_MANIFEST_FILENAME in @fjall/util. */
12
+ export const FJALL_MANIFEST_FILENAME = "fjall-manifest.json";
13
+ /** Current manifest schema version. Must match @fjall/util. */
14
+ export const MANIFEST_SCHEMA_VERSION = 1;
15
+ /**
16
+ * Account stack construct-to-group mapping.
17
+ * Keys are CDK construct IDs (first segment after stack name in construct path).
18
+ */
19
+ export const ACCOUNT_CONSTRUCT_GROUPS = Object.freeze({
20
+ CloudTrail: "monitoring",
21
+ MonitoringRole: "monitoring",
22
+ AuditRole: "security",
23
+ OidcConnector: "security",
24
+ EcrDefaultImage: "registry",
25
+ EventBus: "events",
26
+ DisasterRecovery: "backup"
27
+ });
28
+ /** Simplified resource categorisation for infrastructure package use. */
29
+ const RESOURCE_CATEGORY_MAP = Object.freeze({
30
+ "AWS::IAM::Role": "security",
31
+ "AWS::IAM::Policy": "security",
32
+ "AWS::IAM::OIDCProvider": "security",
33
+ "AWS::EC2::SecurityGroup": "security",
34
+ "AWS::KMS::Key": "security",
35
+ "AWS::KMS::Alias": "security",
36
+ "AWS::EC2::VPC": "network",
37
+ "AWS::EC2::Subnet": "network",
38
+ "AWS::EC2::InternetGateway": "network",
39
+ "AWS::EC2::NatGateway": "network",
40
+ "AWS::EC2::RouteTable": "network",
41
+ "AWS::EC2::Route": "network",
42
+ "AWS::ECS::Cluster": "compute",
43
+ "AWS::ECS::Service": "compute",
44
+ "AWS::ECS::TaskDefinition": "compute",
45
+ "AWS::Lambda::Function": "compute",
46
+ "AWS::RDS::DBInstance": "database",
47
+ "AWS::RDS::DBCluster": "database",
48
+ "AWS::S3::Bucket": "storage",
49
+ "AWS::CloudTrail::Trail": "monitoring",
50
+ "AWS::Logs::LogGroup": "monitoring",
51
+ "AWS::Events::EventBus": "events",
52
+ "AWS::ECR::Repository": "registry",
53
+ "AWS::Route53::RecordSet": "dns",
54
+ "AWS::CertificateManager::Certificate": "dns",
55
+ "AWS::CloudFront::Distribution": "dns",
56
+ "AWS::Backup::BackupVault": "backup",
57
+ "AWS::Backup::BackupPlan": "backup",
58
+ "AWS::Backup::BackupSelection": "backup"
59
+ });
60
+ function categoriseResource(resourceType) {
61
+ if (!resourceType)
62
+ return "compute";
63
+ if (resourceType.startsWith("Custom::")) {
64
+ return RESOURCE_CATEGORY_MAP[resourceType] ?? "compute";
65
+ }
66
+ return RESOURCE_CATEGORY_MAP[resourceType] ?? "compute";
67
+ }
68
+ function deriveGroupFromPath(constructPath, constructGroups) {
69
+ const segments = constructPath.split("/").filter(Boolean);
70
+ if (segments.length < 2)
71
+ return undefined;
72
+ const topLevelConstruct = segments[1];
73
+ return constructGroups[topLevelConstruct];
74
+ }
75
+ function readTemplateResourceTypes(cdkOutPath, templateFile) {
76
+ const result = new Map();
77
+ if (!templateFile)
78
+ return result;
79
+ try {
80
+ const content = readFileSync(join(cdkOutPath, templateFile), "utf-8");
81
+ const parsed = JSON.parse(content);
82
+ if (typeof parsed !== "object" || parsed === null) {
83
+ return result;
84
+ }
85
+ const template = parsed;
86
+ if (template.Resources && typeof template.Resources === "object") {
87
+ for (const [logicalId, resource] of Object.entries(template.Resources)) {
88
+ if (typeof resource === "object" &&
89
+ resource !== null &&
90
+ resource.Type) {
91
+ result.set(logicalId, resource.Type);
92
+ }
93
+ }
94
+ }
95
+ }
96
+ catch {
97
+ // Template not readable — non-critical, return empty map
98
+ }
99
+ return result;
100
+ }
101
+ /**
102
+ * Builds a construct map from CDK's manifest.json metadata.
103
+ */
104
+ export function buildConstructMap(cdkOutPath, constructGroups) {
105
+ const result = new Map();
106
+ let manifest;
107
+ try {
108
+ const content = readFileSync(join(cdkOutPath, "manifest.json"), "utf-8");
109
+ const parsed = JSON.parse(content);
110
+ if (typeof parsed !== "object" || parsed === null) {
111
+ return result;
112
+ }
113
+ manifest = parsed;
114
+ }
115
+ catch {
116
+ // CDK manifest not readable — non-critical, return empty map
117
+ return result;
118
+ }
119
+ if (!manifest.artifacts)
120
+ return result;
121
+ for (const artifact of Object.values(manifest.artifacts)) {
122
+ if (artifact.type !== "aws:cloudformation:stack")
123
+ continue;
124
+ if (!artifact.metadata)
125
+ continue;
126
+ const resourceTypes = readTemplateResourceTypes(cdkOutPath, artifact.properties?.templateFile);
127
+ for (const [constructPath, entries] of Object.entries(artifact.metadata)) {
128
+ for (const entry of entries) {
129
+ if (entry.type !== "aws:cdk:logicalId")
130
+ continue;
131
+ const logicalId = entry.data;
132
+ const resourceType = resourceTypes.get(logicalId) ?? "";
133
+ const group = deriveGroupFromPath(constructPath, constructGroups) ??
134
+ categoriseResource(resourceType);
135
+ result.set(logicalId, {
136
+ constructPath,
137
+ group,
138
+ resourceType
139
+ });
140
+ }
141
+ }
142
+ }
143
+ return result;
144
+ }
145
+ /**
146
+ * Converts a construct map to a plain object for JSON serialisation.
147
+ */
148
+ export function constructMapToRecord(map) {
149
+ const result = {};
150
+ for (const [key, value] of map) {
151
+ result[key] = value;
152
+ }
153
+ return result;
154
+ }
@@ -1,10 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.USE_CMK = exports.AWS_MANAGED = void 0;
4
- exports.isAwsManagedKey = isAwsManagedKey;
5
- exports.isCMKRequested = isCMKRequested;
6
1
  // Type guard to check if the encryption key spec is AWS managed.
7
- function isAwsManagedKey(spec) {
2
+ export function isAwsManagedKey(spec) {
8
3
  return (spec !== undefined &&
9
4
  typeof spec === "object" &&
10
5
  "awsManaged" in spec &&
@@ -13,7 +8,7 @@ function isAwsManagedKey(spec) {
13
8
  /**
14
9
  * Type guard to check if CMK is explicitly requested.
15
10
  */
16
- function isCMKRequested(spec) {
11
+ export function isCMKRequested(spec) {
17
12
  return (spec !== undefined &&
18
13
  typeof spec === "object" &&
19
14
  "useCMK" in spec &&
@@ -24,11 +19,10 @@ function isCMKRequested(spec) {
24
19
  * @example
25
20
  * encryption: { storageKey: AWS_MANAGED }
26
21
  */
27
- exports.AWS_MANAGED = { awsManaged: true };
22
+ export const AWS_MANAGED = { awsManaged: true };
28
23
  /**
29
24
  * Convenience constant for explicitly requesting CMK.
30
25
  * @example
31
26
  * encryption: { storageKey: USE_CMK }
32
27
  */
33
- exports.USE_CMK = { useCMK: true };
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YWJhc2VUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9kYXRhYmFzZVR5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTJEQSwwQ0FTQztBQUtELHdDQVNDO0FBeEJELGlFQUFpRTtBQUNqRSxTQUFnQixlQUFlLENBQzdCLElBQW1DO0lBRW5DLE9BQU8sQ0FDTCxJQUFJLEtBQUssU0FBUztRQUNsQixPQUFPLElBQUksS0FBSyxRQUFRO1FBQ3hCLFlBQVksSUFBSSxJQUFJO1FBQ25CLElBQXNCLENBQUMsVUFBVSxLQUFLLElBQUksQ0FDNUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FDNUIsSUFBbUM7SUFFbkMsT0FBTyxDQUNMLElBQUksS0FBSyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxLQUFLLFFBQVE7UUFDeEIsUUFBUSxJQUFJLElBQUk7UUFDZixJQUFpQyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQ25ELENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNVLFFBQUEsV0FBVyxHQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQVcsQ0FBQztBQUV4RTs7OztHQUlHO0FBQ1UsUUFBQSxPQUFPLEdBQTZCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBEdXJhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgdHlwZSBJS2V5IH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1rbXNcIjtcbmltcG9ydCB7IHR5cGUgU3VibmV0U2VsZWN0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcblxuZXhwb3J0IHR5cGUgRGF0YWJhc2VFbmdpbmUgPSBcInBvc3RncmVzcWxcIiB8IFwibXlzcWxcIjtcblxuZXhwb3J0IGludGVyZmFjZSBFbmdpbmVDb25maWcge1xuICBkZWZhdWx0VXNlcm5hbWU6IHN0cmluZztcbiAgc3NsUGFyYW1ldGVyczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgcm90YXRpb25BcHBOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJveHlDb25maWcge1xuICBtYXhDb25uZWN0aW9ucz86IG51bWJlcjtcbiAgbWF4SWRsZUNvbm5lY3Rpb25zPzogbnVtYmVyO1xuICBjb25uZWN0aW9uQm9ycm93VGltZW91dD86IG51bWJlcjtcbiAgcmVxdWlyZVRMUz86IGJvb2xlYW47XG4gIHZwY1N1Ym5ldHM/OiBTdWJuZXRTZWxlY3Rpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZFJlcGxpY2FDb25maWcge1xuICBpbnN0YW5jZVR5cGU/OiBzdHJpbmc7XG4gIGF2YWlsYWJpbGl0eVpvbmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGVudGlhbHNDb25maWcge1xuICB1c2VybmFtZT86IHN0cmluZztcbiAgc2VjcmV0Um90YXRpb24/OiBTZWNyZXRSb3RhdGlvbkNvbmZpZyB8IGZhbHNlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldFJvdGF0aW9uQ29uZmlnIHtcbiAgYXV0b21hdGljYWxseUFmdGVyPzogRHVyYXRpb247XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdGlvbkNvbmZpZyB7XG4gIHN0b3JhZ2VLZXk/OiBFbmNyeXB0aW9uS2V5U3BlYztcbn1cblxuLyoqIENvbmZpZ3VyYXRpb24gZm9yIERhdGFiYXNlIEluc2lnaHRzIChmb3JtZXJseSBQZXJmb3JtYW5jZSBJbnNpZ2h0cykuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFiYXNlSW5zaWdodHNDb25maWcge1xuICBlbmNyeXB0aW9uS2V5PzogRW5jcnlwdGlvbktleVNwZWM7XG4gIC8qKiBEYXRhYmFzZSBJbnNpZ2h0cyBtb2RlLiBEZWZhdWx0OiBcInN0YW5kYXJkXCIuICovXG4gIG1vZGU/OiBcInN0YW5kYXJkXCIgfCBcImFkdmFuY2VkXCI7XG59XG5cbi8vIE1hcmtlciBmb3IgQVdTIG1hbmFnZWQgZW5jcnlwdGlvbiBrZXkgKGF3cy9yZHMsIGF3cy9zMywgZXRjLilcbmV4cG9ydCBpbnRlcmZhY2UgQXdzTWFuYWdlZEtleSB7XG4gIHJlYWRvbmx5IGF3c01hbmFnZWQ6IHRydWU7XG59XG5cbi8vIE1hcmtlciBmb3IgZXhwbGljaXRseSByZXF1ZXN0aW5nIGEgQ3VzdG9tZXIgTWFuYWdlZCBLZXkgKENNSykuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZEtleU1hcmtlciB7XG4gIHJlYWRvbmx5IHVzZUNNSzogdHJ1ZTtcbn1cblxuLy8gRW5jcnlwdGlvbiBrZXkgc3BlY2lmaWNhdGlvbiBmb3IgUkRTIHJlc291cmNlcy5cbmV4cG9ydCB0eXBlIEVuY3J5cHRpb25LZXlTcGVjID0gSUtleSB8IEF3c01hbmFnZWRLZXkgfCBDdXN0b21lck1hbmFnZWRLZXlNYXJrZXI7XG5cbi8vIFR5cGUgZ3VhcmQgdG8gY2hlY2sgaWYgdGhlIGVuY3J5cHRpb24ga2V5IHNwZWMgaXMgQVdTIG1hbmFnZWQuXG5leHBvcnQgZnVuY3Rpb24gaXNBd3NNYW5hZ2VkS2V5KFxuICBzcGVjOiBFbmNyeXB0aW9uS2V5U3BlYyB8IHVuZGVmaW5lZFxuKTogc3BlYyBpcyBBd3NNYW5hZ2VkS2V5IHtcbiAgcmV0dXJuIChcbiAgICBzcGVjICE9PSB1bmRlZmluZWQgJiZcbiAgICB0eXBlb2Ygc3BlYyA9PT0gXCJvYmplY3RcIiAmJlxuICAgIFwiYXdzTWFuYWdlZFwiIGluIHNwZWMgJiZcbiAgICAoc3BlYyBhcyBBd3NNYW5hZ2VkS2V5KS5hd3NNYW5hZ2VkID09PSB0cnVlXG4gICk7XG59XG5cbi8qKlxuICogVHlwZSBndWFyZCB0byBjaGVjayBpZiBDTUsgaXMgZXhwbGljaXRseSByZXF1ZXN0ZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NNS1JlcXVlc3RlZChcbiAgc3BlYzogRW5jcnlwdGlvbktleVNwZWMgfCB1bmRlZmluZWRcbik6IHNwZWMgaXMgQ3VzdG9tZXJNYW5hZ2VkS2V5TWFya2VyIHtcbiAgcmV0dXJuIChcbiAgICBzcGVjICE9PSB1bmRlZmluZWQgJiZcbiAgICB0eXBlb2Ygc3BlYyA9PT0gXCJvYmplY3RcIiAmJlxuICAgIFwidXNlQ01LXCIgaW4gc3BlYyAmJlxuICAgIChzcGVjIGFzIEN1c3RvbWVyTWFuYWdlZEtleU1hcmtlcikudXNlQ01LID09PSB0cnVlXG4gICk7XG59XG5cbi8qKlxuICogQ29udmVuaWVuY2UgY29uc3RhbnQgZm9yIHNwZWNpZnlpbmcgQVdTIG1hbmFnZWQgZW5jcnlwdGlvbiAodGhlIGRlZmF1bHQpLlxuICogQGV4YW1wbGVcbiAqIGVuY3J5cHRpb246IHsgc3RvcmFnZUtleTogQVdTX01BTkFHRUQgfVxuICovXG5leHBvcnQgY29uc3QgQVdTX01BTkFHRUQ6IEF3c01hbmFnZWRLZXkgPSB7IGF3c01hbmFnZWQ6IHRydWUgfSBhcyBjb25zdDtcblxuLyoqXG4gKiBDb252ZW5pZW5jZSBjb25zdGFudCBmb3IgZXhwbGljaXRseSByZXF1ZXN0aW5nIENNSy5cbiAqIEBleGFtcGxlXG4gKiBlbmNyeXB0aW9uOiB7IHN0b3JhZ2VLZXk6IFVTRV9DTUsgfVxuICovXG5leHBvcnQgY29uc3QgVVNFX0NNSzogQ3VzdG9tZXJNYW5hZ2VkS2V5TWFya2VyID0geyB1c2VDTUs6IHRydWUgfSBhcyBjb25zdDtcblxuLyoqXG4gKiAqKkRFU1RSVUNUSVZFKio6IENoYW5naW5nIGBzdG9yYWdlS2V5YCBhZnRlciBjbHVzdGVyIGNyZWF0aW9uIGNhdXNlcyBjbHVzdGVyIFJFUExBQ0VNRU5ULlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1cm9yYUVuY3J5cHRpb25Db25maWcge1xuICAvKiogREVTVFJVQ1RJVkU6IENoYW5naW5nIGFmdGVyIGNyZWF0aW9uIGNhdXNlcyBjbHVzdGVyIHJlcGxhY2VtZW50ICovXG4gIHN0b3JhZ2VLZXk/OiBFbmNyeXB0aW9uS2V5U3BlYztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXJvcmFSZWFkZXJDb25maWcge1xuICBzY2FsZVdpdGhXcml0ZXI/OiBib29sZWFuO1xuICBlbmFibGVEYXRhYmFzZUluc2lnaHRzPzogYm9vbGVhbjtcbiAgaWRlbnRpZmllclN1ZmZpeD86IHN0cmluZztcbiAgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXJvcmFXcml0ZXJDb25maWcge1xuICBlbmFibGVEYXRhYmFzZUluc2lnaHRzPzogYm9vbGVhbjtcbiAgaWRlbnRpZmllclN1ZmZpeD86IHN0cmluZztcbiAgYXZhaWxhYmlsaXR5Wm9uZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBdXJvcmFSZWFkZXJzQ29uZmlnIHtcbiAgLyoqIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGluc3RhbmNlcyAqL1xuICBjb3VudD86IG51bWJlcjtcbiAgLyoqIE11dHVhbGx5IGV4Y2x1c2l2ZSB3aXRoIGNvdW50ICovXG4gIGluc3RhbmNlcz86IEF1cm9yYVJlYWRlckNvbmZpZ1tdO1xuICBkZWZhdWx0RW5hYmxlRGF0YWJhc2VJbnNpZ2h0cz86IGJvb2xlYW47XG59XG4iXX0=
28
+ export const USE_CMK = { useCMK: true };
@@ -1,4 +1,4 @@
1
1
  import { type Construct } from "constructs";
2
2
  import { type IHostedZone } from "aws-cdk-lib/aws-route53";
3
- import type { DnsRecordInput } from "./domainTypes";
3
+ import type { DnsRecordInput } from "./domainTypes.js";
4
4
  export declare function addDnsRecords(scope: Construct, zone: IHostedZone, zoneName: string, records: DnsRecordInput[]): void;
@@ -1,39 +1,36 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addDnsRecords = addDnsRecords;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_route53_1 = require("aws-cdk-lib/aws-route53");
6
- const capitaliseString_1 = require("./capitaliseString");
7
- const domainTypes_1 = require("./domainTypes");
8
- function addDnsRecords(scope, zone, zoneName, records) {
9
- const safeZone = (0, capitaliseString_1.toPascalCase)((0, capitaliseString_1.getSafeZoneName)(zoneName));
1
+ import { Duration } from "aws-cdk-lib";
2
+ import { ARecord, AaaaRecord, CnameRecord, MxRecord, TxtRecord, NsRecord, SrvRecord, CaaRecord, CaaTag, RecordTarget } from "aws-cdk-lib/aws-route53";
3
+ import { toPascalCase, getSafeZoneName } from "./capitaliseString.js";
4
+ import { ALIAS_CDK_PREFIX, DNS_APEX } from "./domainTypes.js";
5
+ export function addDnsRecords(scope, zone, zoneName, records) {
6
+ const safeZone = toPascalCase(getSafeZoneName(zoneName));
10
7
  records.forEach((record, index) => {
11
- if (record.value.startsWith(domainTypes_1.ALIAS_CDK_PREFIX)) {
8
+ if (record.value.startsWith(ALIAS_CDK_PREFIX)) {
12
9
  return;
13
10
  }
14
- const safeName = (0, capitaliseString_1.toPascalCase)(record.name === domainTypes_1.DNS_APEX ? "Apex" : record.name);
11
+ const safeName = toPascalCase(record.name === DNS_APEX ? "Apex" : record.name);
15
12
  const constructId = `${safeZone}${safeName}${record.type}Record${index}`;
16
- const ttl = record.ttl ? aws_cdk_lib_1.Duration.seconds(record.ttl) : undefined;
17
- const recordName = record.name === domainTypes_1.DNS_APEX ? zoneName : `${record.name}.${zoneName}`;
13
+ const ttl = record.ttl ? Duration.seconds(record.ttl) : undefined;
14
+ const recordName = record.name === DNS_APEX ? zoneName : `${record.name}.${zoneName}`;
18
15
  switch (record.type) {
19
16
  case "A":
20
- new aws_route53_1.ARecord(scope, constructId, {
17
+ new ARecord(scope, constructId, {
21
18
  zone,
22
19
  recordName,
23
- target: aws_route53_1.RecordTarget.fromIpAddresses(record.value),
20
+ target: RecordTarget.fromIpAddresses(record.value),
24
21
  ttl
25
22
  });
26
23
  break;
27
24
  case "AAAA":
28
- new aws_route53_1.AaaaRecord(scope, constructId, {
25
+ new AaaaRecord(scope, constructId, {
29
26
  zone,
30
27
  recordName,
31
- target: aws_route53_1.RecordTarget.fromIpAddresses(record.value),
28
+ target: RecordTarget.fromIpAddresses(record.value),
32
29
  ttl
33
30
  });
34
31
  break;
35
32
  case "CNAME":
36
- new aws_route53_1.CnameRecord(scope, constructId, {
33
+ new CnameRecord(scope, constructId, {
37
34
  zone,
38
35
  recordName,
39
36
  domainName: record.value,
@@ -41,7 +38,7 @@ function addDnsRecords(scope, zone, zoneName, records) {
41
38
  });
42
39
  break;
43
40
  case "MX":
44
- new aws_route53_1.MxRecord(scope, constructId, {
41
+ new MxRecord(scope, constructId, {
45
42
  zone,
46
43
  recordName,
47
44
  values: [
@@ -54,7 +51,7 @@ function addDnsRecords(scope, zone, zoneName, records) {
54
51
  });
55
52
  break;
56
53
  case "TXT":
57
- new aws_route53_1.TxtRecord(scope, constructId, {
54
+ new TxtRecord(scope, constructId, {
58
55
  zone,
59
56
  recordName,
60
57
  values: [record.value],
@@ -62,7 +59,7 @@ function addDnsRecords(scope, zone, zoneName, records) {
62
59
  });
63
60
  break;
64
61
  case "NS":
65
- new aws_route53_1.NsRecord(scope, constructId, {
62
+ new NsRecord(scope, constructId, {
66
63
  zone,
67
64
  recordName,
68
65
  values: [record.value],
@@ -70,7 +67,7 @@ function addDnsRecords(scope, zone, zoneName, records) {
70
67
  });
71
68
  break;
72
69
  case "SRV":
73
- new aws_route53_1.SrvRecord(scope, constructId, {
70
+ new SrvRecord(scope, constructId, {
74
71
  zone,
75
72
  recordName,
76
73
  values: [
@@ -85,17 +82,17 @@ function addDnsRecords(scope, zone, zoneName, records) {
85
82
  });
86
83
  break;
87
84
  case "CAA":
88
- new aws_route53_1.CaaRecord(scope, constructId, {
85
+ new CaaRecord(scope, constructId, {
89
86
  zone,
90
87
  recordName,
91
88
  values: [
92
89
  {
93
90
  flag: 0,
94
91
  tag: record.value.includes("issuewild")
95
- ? aws_route53_1.CaaTag.ISSUEWILD
92
+ ? CaaTag.ISSUEWILD
96
93
  : record.value.includes("iodef")
97
- ? aws_route53_1.CaaTag.IODEF
98
- : aws_route53_1.CaaTag.ISSUE,
94
+ ? CaaTag.IODEF
95
+ : CaaTag.ISSUE,
99
96
  value: record.value
100
97
  }
101
98
  ],
@@ -105,4 +102,3 @@ function addDnsRecords(scope, zone, zoneName, records) {
105
102
  }
106
103
  });
107
104
  }
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zUmVjb3Jkcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi91dGlscy9kbnNSZWNvcmRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLHNDQThHQztBQWhJRCw2Q0FBdUM7QUFDdkMseURBWWlDO0FBQ2pDLHlEQUFtRTtBQUVuRSwrQ0FBMkQ7QUFFM0QsU0FBZ0IsYUFBYSxDQUMzQixLQUFnQixFQUNoQixJQUFpQixFQUNqQixRQUFnQixFQUNoQixPQUF5QjtJQUV6QixNQUFNLFFBQVEsR0FBRyxJQUFBLCtCQUFZLEVBQUMsSUFBQSxrQ0FBZSxFQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFFekQsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRTtRQUNoQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLDhCQUFnQixDQUFDLEVBQUUsQ0FBQztZQUM5QyxPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUEsK0JBQVksRUFDM0IsTUFBTSxDQUFDLElBQUksS0FBSyxzQkFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ2hELENBQUM7UUFDRixNQUFNLFdBQVcsR0FBRyxHQUFHLFFBQVEsR0FBRyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksU0FBUyxLQUFLLEVBQUUsQ0FBQztRQUN6RSxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxzQkFBUSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUNsRSxNQUFNLFVBQVUsR0FDZCxNQUFNLENBQUMsSUFBSSxLQUFLLHNCQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLFFBQVEs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LENBQUMsQ0FBQztnQkFDSCxNQUFNO1FBQ1YsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBBUmVjb3JkLFxuICBBYWFhUmVjb3JkLFxuICBDbmFtZVJlY29yZCxcbiAgTXhSZWNvcmQsXG4gIFR4dFJlY29yZCxcbiAgTnNSZWNvcmQsXG4gIFNydlJlY29yZCxcbiAgQ2FhUmVjb3JkLFxuICBDYWFUYWcsXG4gIFJlY29yZFRhcmdldCxcbiAgdHlwZSBJSG9zdGVkWm9uZVxufSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJvdXRlNTNcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSwgZ2V0U2FmZVpvbmVOYW1lIH0gZnJvbSBcIi4vY2FwaXRhbGlzZVN0cmluZ1wiO1xuaW1wb3J0IHR5cGUgeyBEbnNSZWNvcmRJbnB1dCB9IGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG5pbXBvcnQgeyBBTElBU19DREtfUFJFRklYLCBETlNfQVBFWCB9IGZyb20gXCIuL2RvbWFpblR5cGVzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGREbnNSZWNvcmRzKFxuICBzY29wZTogQ29uc3RydWN0LFxuICB6b25lOiBJSG9zdGVkWm9uZSxcbiAgem9uZU5hbWU6IHN0cmluZyxcbiAgcmVjb3JkczogRG5zUmVjb3JkSW5wdXRbXVxuKTogdm9pZCB7XG4gIGNvbnN0IHNhZmVab25lID0gdG9QYXNjYWxDYXNlKGdldFNhZmVab25lTmFtZSh6b25lTmFtZSkpO1xuXG4gIHJlY29yZHMuZm9yRWFjaCgocmVjb3JkLCBpbmRleCkgPT4ge1xuICAgIGlmIChyZWNvcmQudmFsdWUuc3RhcnRzV2l0aChBTElBU19DREtfUFJFRklYKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNhZmVOYW1lID0gdG9QYXNjYWxDYXNlKFxuICAgICAgcmVjb3JkLm5hbWUgPT09IEROU19BUEVYID8gXCJBcGV4XCIgOiByZWNvcmQubmFtZVxuICAgICk7XG4gICAgY29uc3QgY29uc3RydWN0SWQgPSBgJHtzYWZlWm9uZX0ke3NhZmVOYW1lfSR7cmVjb3JkLnR5cGV9UmVjb3JkJHtpbmRleH1gO1xuICAgIGNvbnN0IHR0bCA9IHJlY29yZC50dGwgPyBEdXJhdGlvbi5zZWNvbmRzKHJlY29yZC50dGwpIDogdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlY29yZE5hbWUgPVxuICAgICAgcmVjb3JkLm5hbWUgPT09IEROU19BUEVYID8gem9uZU5hbWUgOiBgJHtyZWNvcmQubmFtZX0uJHt6b25lTmFtZX1gO1xuXG4gICAgc3dpdGNoIChyZWNvcmQudHlwZSkge1xuICAgICAgY2FzZSBcIkFcIjpcbiAgICAgICAgbmV3IEFSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHRhcmdldDogUmVjb3JkVGFyZ2V0LmZyb21JcEFkZHJlc3NlcyhyZWNvcmQudmFsdWUpLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQUFBQVwiOlxuICAgICAgICBuZXcgQWFhYVJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdGFyZ2V0OiBSZWNvcmRUYXJnZXQuZnJvbUlwQWRkcmVzc2VzKHJlY29yZC52YWx1ZSksXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJDTkFNRVwiOlxuICAgICAgICBuZXcgQ25hbWVSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIGRvbWFpbk5hbWU6IHJlY29yZC52YWx1ZSxcbiAgICAgICAgICB0dGxcbiAgICAgICAgfSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIk1YXCI6XG4gICAgICAgIG5ldyBNeFJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhvc3ROYW1lOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiByZWNvcmQucHJpb3JpdHkgPz8gMTBcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiVFhUXCI6XG4gICAgICAgIG5ldyBUeHRSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW3JlY29yZC52YWx1ZV0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJOU1wiOlxuICAgICAgICBuZXcgTnNSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW3JlY29yZC52YWx1ZV0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgXCJTUlZcIjpcbiAgICAgICAgbmV3IFNydlJlY29yZChzY29wZSwgY29uc3RydWN0SWQsIHtcbiAgICAgICAgICB6b25lLFxuICAgICAgICAgIHJlY29yZE5hbWUsXG4gICAgICAgICAgdmFsdWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGhvc3ROYW1lOiByZWNvcmQudmFsdWUsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiByZWNvcmQucHJpb3JpdHkgPz8gMTAsXG4gICAgICAgICAgICAgIHdlaWdodDogcmVjb3JkLndlaWdodCA/PyAwLFxuICAgICAgICAgICAgICBwb3J0OiByZWNvcmQucG9ydCA/PyA0NDNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdLFxuICAgICAgICAgIHR0bFxuICAgICAgICB9KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIFwiQ0FBXCI6XG4gICAgICAgIG5ldyBDYWFSZWNvcmQoc2NvcGUsIGNvbnN0cnVjdElkLCB7XG4gICAgICAgICAgem9uZSxcbiAgICAgICAgICByZWNvcmROYW1lLFxuICAgICAgICAgIHZhbHVlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBmbGFnOiAwLFxuICAgICAgICAgICAgICB0YWc6IHJlY29yZC52YWx1ZS5pbmNsdWRlcyhcImlzc3Vld2lsZFwiKVxuICAgICAgICAgICAgICAgID8gQ2FhVGFnLklTU1VFV0lMRFxuICAgICAgICAgICAgICAgIDogcmVjb3JkLnZhbHVlLmluY2x1ZGVzKFwiaW9kZWZcIilcbiAgICAgICAgICAgICAgICAgID8gQ2FhVGFnLklPREVGXG4gICAgICAgICAgICAgICAgICA6IENhYVRhZy5JU1NVRSxcbiAgICAgICAgICAgICAgdmFsdWU6IHJlY29yZC52YWx1ZVxuICAgICAgICAgICAgfVxuICAgICAgICAgIF0sXG4gICAgICAgICAgdHRsXG4gICAgICAgIH0pO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH0pO1xufVxuIl19
@@ -34,4 +34,3 @@ export interface DomainDelegatedProps {
34
34
  }
35
35
  export type IDomainProps = DomainApexProps | DomainDelegatedProps;
36
36
  export declare const ALIAS_CDK_PREFIX: "ALIAS:";
37
- export { addDnsRecords } from "./dnsRecords";
@@ -1,10 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addDnsRecords = exports.ALIAS_CDK_PREFIX = exports.getDomainExportNames = exports.DNS_APEX = void 0;
4
- var util_1 = require("@fjall/util");
5
- Object.defineProperty(exports, "DNS_APEX", { enumerable: true, get: function () { return util_1.DNS_APEX; } });
6
- Object.defineProperty(exports, "getDomainExportNames", { enumerable: true, get: function () { return util_1.getDomainExportNames; } });
7
- exports.ALIAS_CDK_PREFIX = "ALIAS:";
8
- var dnsRecords_1 = require("./dnsRecords");
9
- Object.defineProperty(exports, "addDnsRecords", { enumerable: true, get: function () { return dnsRecords_1.addDnsRecords; } });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluVHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvZG9tYWluVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0NBSXFCO0FBSG5CLGdHQUFBLFFBQVEsT0FBQTtBQUNSLDRHQUFBLG9CQUFvQixPQUFBO0FBNENULFFBQUEsZ0JBQWdCLEdBQUcsUUFBaUIsQ0FBQztBQUVsRCwyQ0FBNkM7QUFBcEMsMkdBQUEsYUFBYSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgRE5TX0FQRVgsXG4gIGdldERvbWFpbkV4cG9ydE5hbWVzLFxuICB0eXBlIE1hbmFnZWREb21haW5FeHBvcnRzXG59IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERuc1JlY29yZElucHV0IHtcbiAgdHlwZTogXCJBXCIgfCBcIkFBQUFcIiB8IFwiQ05BTUVcIiB8IFwiTVhcIiB8IFwiVFhUXCIgfCBcIk5TXCIgfCBcIlNSVlwiIHwgXCJDQUFcIjtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZTogc3RyaW5nO1xuICB0dGw/OiBudW1iZXI7XG4gIHByaW9yaXR5PzogbnVtYmVyO1xuICB3ZWlnaHQ/OiBudW1iZXI7XG4gIHBvcnQ/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZWdhdGlvbklucHV0IHtcbiAgc3ViZG9tYWluOiBzdHJpbmc7XG4gIHRhcmdldEFjY291bnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZXJ0aWZpY2F0ZUlucHV0IHtcbiAgZG9tYWluTmFtZTogc3RyaW5nO1xuICBzdWJqZWN0QWx0ZXJuYXRpdmVOYW1lcz86IHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERvbWFpbkFwZXhQcm9wcyB7XG4gIHR5cGU6IFwiZG9tYWluXCI7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIHJlY29yZHM/OiBEbnNSZWNvcmRJbnB1dFtdO1xuICBkZWxlZ2F0aW9ucz86IERlbGVnYXRpb25JbnB1dFtdO1xuICBjZXJ0aWZpY2F0ZXM/OiBDZXJ0aWZpY2F0ZUlucHV0W107XG4gIGhvc3RlZFpvbmVJZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEb21haW5EZWxlZ2F0ZWRQcm9wcyB7XG4gIHR5cGU6IFwiZGVsZWdhdGVkXCI7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudFpvbmVOYW1lOiBzdHJpbmc7XG4gIHBhcmVudEFjY291bnROYW1lOiBzdHJpbmc7XG4gIHJlY29yZHM/OiBEbnNSZWNvcmRJbnB1dFtdO1xuICBjZXJ0aWZpY2F0ZXM/OiBDZXJ0aWZpY2F0ZUlucHV0W107XG59XG5cbmV4cG9ydCB0eXBlIElEb21haW5Qcm9wcyA9IERvbWFpbkFwZXhQcm9wcyB8IERvbWFpbkRlbGVnYXRlZFByb3BzO1xuXG5leHBvcnQgY29uc3QgQUxJQVNfQ0RLX1BSRUZJWCA9IFwiQUxJQVM6XCIgYXMgY29uc3Q7XG5cbmV4cG9ydCB7IGFkZERuc1JlY29yZHMgfSBmcm9tIFwiLi9kbnNSZWNvcmRzXCI7XG4iXX0=
1
+ export { DNS_APEX, getDomainExportNames } from "@fjall/util";
2
+ export const ALIAS_CDK_PREFIX = "ALIAS:";
@@ -1,9 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getEnvironment = getEnvironment;
4
- exports.env = env;
5
- exports._resetEnvironmentCache = _resetEnvironmentCache;
6
- const validationLogger_1 = require("./validationLogger");
1
+ import { parseOrgConfig } from "./orgConfigParser.js";
2
+ import { FjallLogger } from "./validationLogger.js";
7
3
  let cachedEnvironment;
8
4
  /**
9
5
  * Resolve the current deployment environment without App dependency.
@@ -16,7 +12,7 @@ let cachedEnvironment;
16
12
  * 5. `-c accountName=<value>` → providerAccounts lookup
17
13
  * 6. `"unknown"` (with warning)
18
14
  */
19
- function getEnvironment() {
15
+ export function getEnvironment() {
20
16
  if (cachedEnvironment !== undefined) {
21
17
  return cachedEnvironment;
22
18
  }
@@ -50,7 +46,7 @@ function getEnvironment() {
50
46
  }
51
47
  }
52
48
  // 5. Fallback
53
- validationLogger_1.FjallLogger.warn("[fjall] Could not determine environment. " +
49
+ FjallLogger.warn("[fjall] Could not determine environment. " +
54
50
  "Set ENVIRONMENT env var or pass -c environment=<value>.");
55
51
  cachedEnvironment = "unknown";
56
52
  return cachedEnvironment;
@@ -61,17 +57,17 @@ function getEnvironment() {
61
57
  * @param config - Object with `default` key and optional environment overrides
62
58
  * @returns The value for the current environment, or the default
63
59
  */
64
- function env(config) {
60
+ export function env(config) {
65
61
  const environment = getEnvironment();
66
62
  if (environment in config) {
67
- return config[environment];
63
+ return config[environment] ?? config.default;
68
64
  }
69
65
  return config.default;
70
66
  }
71
67
  /**
72
68
  * Reset the environment cache. For testing only.
73
69
  */
74
- function _resetEnvironmentCache() {
70
+ export function _resetEnvironmentCache() {
75
71
  cachedEnvironment = undefined;
76
72
  }
77
73
  /**
@@ -81,8 +77,11 @@ function parseContextArg(key) {
81
77
  const args = process.argv;
82
78
  for (let i = 0; i < args.length - 1; i++) {
83
79
  if (args[i] === "-c") {
84
- const parts = args[i + 1].split("=");
85
- if (parts[0] === key && parts.length >= 2) {
80
+ const nextArg = args[i + 1];
81
+ if (!nextArg)
82
+ continue;
83
+ const parts = nextArg.split("=");
84
+ if (parts.length >= 2 && parts[0] === key) {
86
85
  return parts.slice(1).join("=");
87
86
  }
88
87
  }
@@ -90,20 +89,10 @@ function parseContextArg(key) {
90
89
  return undefined;
91
90
  }
92
91
  /**
93
- * Parse orgConfig from CDK context (-c orgConfig=<json>) in process.argv.
92
+ * Get provider accounts from orgConfig in CDK context (-c orgConfig=<json>).
94
93
  */
95
94
  function getProviderAccountsFromContext() {
96
- try {
97
- const raw = parseContextArg("orgConfig");
98
- if (!raw)
99
- return [];
100
- const parsed = JSON.parse(raw);
101
- return parsed.providerAccounts ?? [];
102
- }
103
- catch (error) {
104
- validationLogger_1.FjallLogger.warn(`[fjall] Failed to parse orgConfig from CDK context: ${error instanceof Error ? error.message : String(error)}`);
105
- return [];
106
- }
95
+ return parseOrgConfig(parseContextArg("orgConfig")).providerAccounts;
107
96
  }
108
97
  /**
109
98
  * Look up environment from account ID via orgConfig CDK context.
@@ -119,4 +108,3 @@ function resolveEnvironmentFromAccountName(accountName) {
119
108
  const accounts = getProviderAccountsFromContext();
120
109
  return accounts.find((pa) => pa.name === accountName)?.environment;
121
110
  }
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2Vudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtDQSx3Q0E2Q0M7QUFRRCxrQkFRQztBQUtELHdEQUVDO0FBckdELHlEQUFpRDtBQW9CakQsSUFBSSxpQkFBcUMsQ0FBQztBQUUxQzs7Ozs7Ozs7OztHQVVHO0FBQ0gsU0FBZ0IsY0FBYztJQUM1QixJQUFJLGlCQUFpQixLQUFLLFNBQVMsRUFBRSxDQUFDO1FBQ3BDLE9BQU8saUJBQWlCLENBQUM7SUFDM0IsQ0FBQztJQUVELDZCQUE2QjtJQUM3QixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDNUIsaUJBQWlCLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7UUFDNUMsT0FBTyxpQkFBaUIsQ0FBQztJQUMzQixDQUFDO0lBRUQsOENBQThDO0lBQzlDLE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hCLGlCQUFpQixHQUFHLFdBQVcsQ0FBQztRQUNoQyxPQUFPLGlCQUFpQixDQUFDO0lBQzNCLENBQUM7SUFFRCxtREFBbUQ7SUFDbkQsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQztJQUNsRCxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBQ2QsTUFBTSxHQUFHLEdBQUcsK0JBQStCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUNSLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztZQUN4QixPQUFPLGlCQUFpQixDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsc0RBQXNEO0lBQ3RELE1BQU0sV0FBVyxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNuRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2hC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LEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLEVBQUUsV0FBVyxDQUFDO0FBQ3JFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIFByb3ZpZGVyQWNjb3VudCB9IGZyb20gXCJAZmphbGwvdXRpbFwiO1xuaW1wb3J0IHsgRmphbGxMb2dnZXIgfSBmcm9tIFwiLi92YWxpZGF0aW9uTG9nZ2VyXCI7XG5cbi8qKlxuICogRGVjbGFyYXRpdmUgZW52aXJvbm1lbnQgY29uZmlndXJhdGlvbiB1dGlsaXR5LlxuICpcbiAqIFJlc29sdmVzIGVudmlyb25tZW50LXNwZWNpZmljIHZhbHVlcyBhdCBDREsgc3ludGggdGltZSB3aXRob3V0IHJlcXVpcmluZ1xuICogYW4gQXBwIGluc3RhbmNlLiBUaGlzIGFsbG93cyBgZW52KClgIHRvIGJlIHVzZWQgaW4gYEFwcC5nZXRBcHAoKWAgYXJndW1lbnRzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogaW1wb3J0IHsgQXBwLCBlbnYgfSBmcm9tIFwiQGZqYWxsL2NvbXBvbmVudHMtaW5mcmFzdHJ1Y3R1cmVcIjtcbiAqXG4gKiBjb25zdCBhcHAgPSBBcHAuZ2V0QXBwKFwibXlhcHBcIiwge1xuICogICBuZXR3b3JrOiB7IG1heEF6czogZW52KHsgZGVmYXVsdDogMiwgcHJvZHVjdGlvbjogMyB9KSB9XG4gKiB9KTtcbiAqIGBgYFxuICovXG5cbnR5cGUgRW52Q29uZmlnPFQ+ID0geyBkZWZhdWx0OiBUIH0gJiBQYXJ0aWFsPFJlY29yZDxzdHJpbmcsIFQ+PjtcblxubGV0IGNhY2hlZEVudmlyb25tZW50OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbi8qKlxuICogUmVzb2x2ZSB0aGUgY3VycmVudCBkZXBsb3ltZW50IGVudmlyb25tZW50IHdpdGhvdXQgQXBwIGRlcGVuZGVuY3kuXG4gKlxuICogUmVzb2x1dGlvbiBvcmRlcjpcbiAqIDEuIE1vZHVsZSBjYWNoZSAoY2FjaGVkIGFmdGVyIGZpcnN0IGNhbGwpXG4gKiAyLiBgcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlRgXG4gKiAzLiBgLWMgZW52aXJvbm1lbnQ9PHZhbHVlPmAgZnJvbSBwcm9jZXNzLmFyZ3ZcbiAqIDQuIGBDREtfREVGQVVMVF9BQ0NPVU5UYCDihpIgcHJvdmlkZXJBY2NvdW50cyBsb29rdXBcbiAqIDUuIGAtYyBhY2NvdW50TmFtZT08dmFsdWU+YCDihpIgcHJvdmlkZXJBY2NvdW50cyBsb29rdXBcbiAqIDYuIGBcInVua25vd25cImAgKHdpdGggd2FybmluZylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEVudmlyb25tZW50KCk6IHN0cmluZyB7XG4gIGlmIChjYWNoZWRFbnZpcm9ubWVudCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgcmV0dXJuIGNhY2hlZEVudmlyb25tZW50O1xuICB9XG5cbiAgLy8gMS4gcHJvY2Vzcy5lbnYuRU5WSVJPTk1FTlRcbiAgaWYgKHByb2Nlc3MuZW52LkVOVklST05NRU5UKSB7XG4gICAgY2FjaGVkRW52aXJvbm1lbnQgPSBwcm9jZXNzLmVudi5FTlZJUk9OTUVOVDtcbiAgICByZXR1cm4gY2FjaGVkRW52aXJvbm1lbnQ7XG4gIH1cblxuICAvLyAyLiAtYyBlbnZpcm9ubWVudD08dmFsdWU+IGZyb20gcHJvY2Vzcy5hcmd2XG4gIGNvbnN0IGVudkZyb21Bcmd2ID0gcGFyc2VDb250ZXh0QXJnKFwiZW52aXJvbm1lbnRcIik7XG4gIGlmIChlbnZGcm9tQXJndikge1xuICAgIGNhY2hlZEVudmlyb25tZW50ID0gZW52RnJvbUFyZ3Y7XG4gICAgcmV0dXJuIGNhY2hlZEVudmlyb25tZW50O1xuICB9XG5cbiAgLy8gMy4gQ0RLX0RFRkFVTFRfQUNDT1VOVCDihpIgcHJvdmlkZXJBY2NvdW50cyBsb29rdXBcbiAgY29uc3QgYWNjb3VudElkID0gcHJvY2Vzcy5lbnYuQ0RLX0RFRkFVTFRfQUNDT1VOVDtcbiAgaWYgKGFjY291bnRJZCkge1xuICAgIGNvbnN0IGVudiA9IHJlc29sdmVFbnZpcm9ubWVudEZyb21BY2NvdW50SWQoYWNjb3VudElkKTtcbiAgICBpZiAoZW52KSB7XG4gICAgICBjYWNoZWRFbnZpcm9ubWVudCA9IGVudjtcbiAgICAgIHJldHVybiBjYWNoZWRFbnZpcm9ubWVudDtcbiAgICB9XG4gIH1cblxuICAvLyA0LiAtYyBhY2NvdW50TmFtZT08dmFsdWU+IOKGkiBwcm92aWRlckFjY291bnRzIGxvb2t1cFxuICBjb25zdCBhY2NvdW50TmFtZSA9IHBhcnNlQ29udGV4dEFyZyhcImFjY291bnROYW1lXCIpO1xuICBpZiAoYWNjb3VudE5hbWUpIHtcbiAgICBjb25zdCBlbnYgPSByZXNvbHZlRW52aXJvbm1lbnRGcm9tQWNjb3VudE5hbWUoYWNjb3VudE5hbWUpO1xuICAgIGlmIChlbnYpIHtcbiAgICAgIGNhY2hlZEVudmlyb25tZW50ID0gZW52O1xuICAgICAgcmV0dXJuIGNhY2hlZEVudmlyb25tZW50O1xuICAgIH1cbiAgfVxuXG4gIC8vIDUuIEZhbGxiYWNrXG4gIEZqYWxsTG9nZ2VyLndhcm4oXG4gICAgXCJbZmphbGxdIENvdWxkIG5vdCBkZXRlcm1pbmUgZW52aXJvbm1lbnQuIFwiICtcbiAgICAgIFwiU2V0IEVOVklST05NRU5UIGVudiB2YXIgb3IgcGFzcyAtYyBlbnZpcm9ubWVudD08dmFsdWU+LlwiXG4gICk7XG4gIGNhY2hlZEVudmlyb25tZW50ID0gXCJ1bmtub3duXCI7XG4gIHJldHVybiBjYWNoZWRFbnZpcm9ubWVudDtcbn1cblxuLyoqXG4gKiBSZXNvbHZlIGFuIGVudmlyb25tZW50LXNwZWNpZmljIHZhbHVlIGF0IENESyBzeW50aCB0aW1lLlxuICpcbiAqIEBwYXJhbSBjb25maWcgLSBPYmplY3Qgd2l0aCBgZGVmYXVsdGAga2V5IGFuZCBvcHRpb25hbCBlbnZpcm9ubWVudCBvdmVycmlkZXNcbiAqIEByZXR1cm5zIFRoZSB2YWx1ZSBmb3IgdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQsIG9yIHRoZSBkZWZhdWx0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnY8VD4oY29uZmlnOiBFbnZDb25maWc8VD4pOiBUIHtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBnZXRFbnZpcm9ubWVudCgpO1xuXG4gIGlmIChlbnZpcm9ubWVudCBpbiBjb25maWcpIHtcbiAgICByZXR1cm4gY29uZmlnW2Vudmlyb25tZW50XSBhcyBUO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZy5kZWZhdWx0O1xufVxuXG4vKipcbiAqIFJlc2V0IHRoZSBlbnZpcm9ubWVudCBjYWNoZS4gRm9yIHRlc3Rpbmcgb25seS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIF9yZXNldEVudmlyb25tZW50Q2FjaGUoKTogdm9pZCB7XG4gIGNhY2hlZEVudmlyb25tZW50ID0gdW5kZWZpbmVkO1xufVxuXG4vKipcbiAqIFBhcnNlIGEgYC1jIGtleT12YWx1ZWAgYXJndW1lbnQgZnJvbSBwcm9jZXNzLmFyZ3YuXG4gKi9cbmZ1bmN0aW9uIHBhcnNlQ29udGV4dEFyZyhrZXk6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFyZ3MgPSBwcm9jZXNzLmFyZ3Y7XG4gIGZvciAobGV0IGkgPSAwOyBpIDwgYXJncy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICBpZiAoYXJnc1tpXSA9PT0gXCItY1wiKSB7XG4gICAgICBjb25zdCBwYXJ0cyA9IGFyZ3NbaSArIDFdLnNwbGl0KFwiPVwiKTtcbiAgICAgIGlmIChwYXJ0c1swXSA9PT0ga2V5ICYmIHBhcnRzLmxlbmd0aCA+PSAyKSB7XG4gICAgICAgIHJldHVybiBwYXJ0cy5zbGljZSgxKS5qb2luKFwiPVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBQYXJzZSBvcmdDb25maWcgZnJvbSBDREsgY29udGV4dCAoLWMgb3JnQ29uZmlnPTxqc29uPikgaW4gcHJvY2Vzcy5hcmd2LlxuICovXG5mdW5jdGlvbiBnZXRQcm92aWRlckFjY291bnRzRnJvbUNvbnRleHQoKTogUHJvdmlkZXJBY2NvdW50W10ge1xuICB0cnkge1xuICAgIGNvbnN0IHJhdyA9IHBhcnNlQ29udGV4dEFyZyhcIm9yZ0NvbmZpZ1wiKTtcbiAgICBpZiAoIXJhdykgcmV0dXJuIFtdO1xuICAgIGNvbnN0IHBhcnNlZCA9IEpTT04ucGFyc2UocmF3KSBhcyB7IHByb3ZpZGVyQWNjb3VudHM/OiBQcm92aWRlckFjY291bnRbXSB9O1xuICAgIHJldHVybiBwYXJzZWQucHJvdmlkZXJBY2NvdW50cyA/PyBbXTtcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICBGamFsbExvZ2dlci53YXJuKFxuICAgICAgYFtmamFsbF0gRmFpbGVkIHRvIHBhcnNlIG9yZ0NvbmZpZyBmcm9tIENESyBjb250ZXh0OiAke2Vycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvci5tZXNzYWdlIDogU3RyaW5nKGVycm9yKX1gXG4gICAgKTtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBMb29rIHVwIGVudmlyb25tZW50IGZyb20gYWNjb3VudCBJRCB2aWEgb3JnQ29uZmlnIENESyBjb250ZXh0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlRW52aXJvbm1lbnRGcm9tQWNjb3VudElkKFxuICBhY2NvdW50SWQ6IHN0cmluZ1xuKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgY29uc3QgYWNjb3VudHMgPSBnZXRQcm92aWRlckFjY291bnRzRnJvbUNvbnRleHQoKTtcbiAgcmV0dXJuIGFjY291bnRzLmZpbmQoKHBhKSA9PiBwYS5pZCA9PT0gYWNjb3VudElkKT8uZW52aXJvbm1lbnQ7XG59XG5cbi8qKlxuICogTG9vayB1cCBlbnZpcm9ubWVudCBmcm9tIGFjY291bnQgbmFtZSB2aWEgb3JnQ29uZmlnIENESyBjb250ZXh0LlxuICovXG5mdW5jdGlvbiByZXNvbHZlRW52aXJvbm1lbnRGcm9tQWNjb3VudE5hbWUoXG4gIGFjY291bnROYW1lOiBzdHJpbmdcbik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGFjY291bnRzID0gZ2V0UHJvdmlkZXJBY2NvdW50c0Zyb21Db250ZXh0KCk7XG4gIHJldHVybiBhY2NvdW50cy5maW5kKChwYSkgPT4gcGEubmFtZSA9PT0gYWNjb3VudE5hbWUpPy5lbnZpcm9ubWVudDtcbn1cbiJdfQ==
@@ -1,13 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = getAccountId;
4
- const getConfig_1 = require("./getConfig");
5
- function getAccountId(environment) {
1
+ import { getConfig } from "./getConfig.js";
2
+ export default function getAccountId(environment) {
6
3
  //TODO: in the use cases of getAccountId, we are currently passing in accountName
7
- const config = (0, getConfig_1.getConfig)(environment);
4
+ const config = getConfig(environment);
8
5
  // TODO: need to fix how we handle this in the VPC module
9
6
  if (!config || !config.accountId)
10
7
  return "error";
11
8
  return config.accountId;
12
9
  }
13
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QWNjb3VudElkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL3V0aWxzL2dldEFjY291bnRJZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLCtCQU9DO0FBVEQsMkNBQXdDO0FBRXhDLFNBQXdCLFlBQVksQ0FBQyxXQUFtQjtJQUN0RCxpRkFBaUY7SUFDakYsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBUyxFQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLHlEQUF5RDtJQUN6RCxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFBRSxPQUFPLE9BQU8sQ0FBQztJQUVqRCxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUM7QUFDMUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldENvbmZpZyB9IGZyb20gXCIuL2dldENvbmZpZ1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBnZXRBY2NvdW50SWQoZW52aXJvbm1lbnQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIC8vVE9ETzogaW4gdGhlIHVzZSBjYXNlcyBvZiBnZXRBY2NvdW50SWQsIHdlIGFyZSBjdXJyZW50bHkgcGFzc2luZyBpbiBhY2NvdW50TmFtZVxuICBjb25zdCBjb25maWcgPSBnZXRDb25maWcoZW52aXJvbm1lbnQpO1xuICAvLyBUT0RPOiBuZWVkIHRvIGZpeCBob3cgd2UgaGFuZGxlIHRoaXMgaW4gdGhlIFZQQyBtb2R1bGVcbiAgaWYgKCFjb25maWcgfHwgIWNvbmZpZy5hY2NvdW50SWQpIHJldHVybiBcImVycm9yXCI7XG5cbiAgcmV0dXJuIGNvbmZpZy5hY2NvdW50SWQ7XG59XG4iXX0=
@@ -1,18 +1,17 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const client_organizations_1 = require("@aws-sdk/client-organizations");
4
- const fs = require("fs");
1
+ import { ListAccountsCommand, OrganizationsClient } from "@aws-sdk/client-organizations";
2
+ import * as fs from "fs";
5
3
  /**
6
4
  * This is an example of an async class that will resolve when a synth is run
7
5
  */
8
- class Accounts {
6
+ export default class Accounts {
7
+ ready;
8
+ configFile = "../accounts-config.json";
9
9
  constructor(region) {
10
- this.configFile = "../accounts-config.json";
11
10
  // Make API Call
12
- const client = new client_organizations_1.OrganizationsClient({
11
+ const client = new OrganizationsClient({
13
12
  region: region
14
13
  });
15
- const request = new client_organizations_1.ListAccountsCommand({
14
+ const request = new ListAccountsCommand({
16
15
  MaxResults: Number("20")
17
16
  });
18
17
  this.ready = new Promise((resolve, reject) => {
@@ -31,5 +30,3 @@ class Accounts {
31
30
  return JSON.parse(data);
32
31
  }
33
32
  }
34
- exports.default = Accounts;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0QXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvdXRpbHMvZ2V0QXN5bmMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx3RUFJdUM7QUFDdkMseUJBQXlCO0FBRXpCOztHQUVHO0FBQ0gsTUFBcUIsUUFBUTtJQUszQixZQUFZLE1BQWM7UUFGbEIsZUFBVSxHQUFHLHlCQUF5QixDQUFDO1FBRzdDLGdCQUFnQjtRQUNoQixNQUFNLE1BQU0sR0FBRyxJQUFJLDBDQUFtQixDQUFDO1lBQ3JDLE1BQU0sRUFBRSxNQUFNO1NBQ2YsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQ0FBbUIsQ0FBQztZQUN0QyxVQUFVLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztTQUN6QixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNDLE1BQU07aUJBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDYixJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDZixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDckQsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO2dCQUNoRCxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDO2lCQUNELEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNuQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsTUFBTSxJQUFJLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQWMsQ0FBQztJQUN2QyxDQUFDO0NBQ0Y7QUE3QkQsMkJBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBBY2NvdW50LFxuICBMaXN0QWNjb3VudHNDb21tYW5kLFxuICBPcmdhbml6YXRpb25zQ2xpZW50XG59IGZyb20gXCJAYXdzLXNkay9jbGllbnQtb3JnYW5pemF0aW9uc1wiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCI7XG5cbi8qKlxuICogVGhpcyBpcyBhbiBleGFtcGxlIG9mIGFuIGFzeW5jIGNsYXNzIHRoYXQgd2lsbCByZXNvbHZlIHdoZW4gYSBzeW50aCBpcyBydW5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQWNjb3VudHMge1xuICBwdWJsaWMgcmVhZHk6IFByb21pc2U8dm9pZD47XG5cbiAgcHJpdmF0ZSBjb25maWdGaWxlID0gXCIuLi9hY2NvdW50cy1jb25maWcuanNvblwiO1xuXG4gIGNvbnN0cnVjdG9yKHJlZ2lvbjogc3RyaW5nKSB7XG4gICAgLy8gTWFrZSBBUEkgQ2FsbFxuICAgIGNvbnN0IGNsaWVudCA9IG5ldyBPcmdhbml6YXRpb25zQ2xpZW50KHtcbiAgICAgIHJlZ2lvbjogcmVnaW9uXG4gICAgfSk7XG4gICAgY29uc3QgcmVxdWVzdCA9IG5ldyBMaXN0QWNjb3VudHNDb21tYW5kKHtcbiAgICAgIE1heFJlc3VsdHM6IE51bWJlcihcIjIwXCIpXG4gICAgfSk7XG4gICAgdGhpcy5yZWFkeSA9IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIGNsaWVudFxuICAgICAgICAuc2VuZChyZXF1ZXN0KVxuICAgICAgICAudGhlbigocmVzdWx0KSA9PiB7XG4gICAgICAgICAgY29uc3QgY29uZmlnU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkocmVzdWx0LkFjY291bnRzKTtcbiAgICAgICAgICBmcy53cml0ZUZpbGVTeW5jKHRoaXMuY29uZmlnRmlsZSwgY29uZmlnU3RyaW5nKTtcbiAgICAgICAgICByZXNvbHZlKHVuZGVmaW5lZCk7XG4gICAgICAgIH0pXG4gICAgICAgIC5jYXRjaChyZWplY3QpO1xuICAgIH0pO1xuICB9XG5cbiAgZ2V0QWNjb3VudHMoKTogQWNjb3VudFtdIHtcbiAgICBjb25zdCBkYXRhID0gZnMucmVhZEZpbGVTeW5jKHRoaXMuY29uZmlnRmlsZSwgXCJ1dGYtOFwiKTtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShkYXRhKSBhcyBBY2NvdW50W107XG4gIH1cbn1cbiJdfQ==
@@ -1,8 +1,6 @@
1
- import { type Account } from "@aws-sdk/client-organizations";
2
1
  export interface Config {
3
2
  region: string;
4
3
  environment: string;
5
- existingAccounts: Account[];
6
4
  accountId?: string;
7
5
  accountName?: string;
8
6
  accountIds?: Record<string, string>;