@webiny/project-aws 6.3.0 → 6.4.0-beta.1

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 (393) hide show
  1. package/_templates/appTemplates/admin/src/index.tsx +0 -3
  2. package/abstractions/ApiGqlClient.js +2 -1
  3. package/abstractions/ApiGqlClient.js.map +1 -1
  4. package/abstractions/InvokeLambdaFunction.js +2 -1
  5. package/abstractions/InvokeLambdaFunction.js.map +1 -1
  6. package/abstractions/features/pulumi/AdminPulumi.js +2 -1
  7. package/abstractions/features/pulumi/AdminPulumi.js.map +1 -1
  8. package/abstractions/features/pulumi/ApiPulumi.js +2 -1
  9. package/abstractions/features/pulumi/ApiPulumi.js.map +1 -1
  10. package/abstractions/features/pulumi/CorePulumi.js +2 -1
  11. package/abstractions/features/pulumi/CorePulumi.js.map +1 -1
  12. package/abstractions/features/pulumi/index.js +0 -2
  13. package/abstractions/index.js +0 -2
  14. package/abstractions/services/AdminStackOutputService.js +2 -1
  15. package/abstractions/services/AdminStackOutputService.js.map +1 -1
  16. package/abstractions/services/ApiStackOutputService.js +2 -1
  17. package/abstractions/services/ApiStackOutputService.js.map +1 -1
  18. package/abstractions/services/CoreStackOutputService.js +2 -1
  19. package/abstractions/services/CoreStackOutputService.js.map +1 -1
  20. package/admin.js +5 -4
  21. package/admin.js.map +1 -1
  22. package/api.js +13 -12
  23. package/api.js.map +1 -1
  24. package/apps/createAdminApp.js +11 -12
  25. package/apps/createAdminApp.js.map +1 -1
  26. package/apps/createAdminAppConfig.js +12 -18
  27. package/apps/createAdminAppConfig.js.map +1 -1
  28. package/apps/createApiApp.js +17 -22
  29. package/apps/createApiApp.js.map +1 -1
  30. package/apps/createBlueGreenApp.js +13 -16
  31. package/apps/createBlueGreenApp.js.map +1 -1
  32. package/apps/createCoreApp.js +12 -13
  33. package/apps/createCoreApp.js.map +1 -1
  34. package/apps/createReactAppConfig.d.ts +0 -7
  35. package/apps/createReactAppConfig.js +56 -69
  36. package/apps/createReactAppConfig.js.map +1 -1
  37. package/apps/createSyncSystemApp.js +8 -7
  38. package/apps/createSyncSystemApp.js.map +1 -1
  39. package/apps/index.js +0 -2
  40. package/cli.js +3 -2
  41. package/cli.js.map +1 -1
  42. package/exports/extensions.js +0 -2
  43. package/exports/infra/admin.js +0 -2
  44. package/exports/infra/api.js +0 -2
  45. package/exports/infra/core.js +0 -2
  46. package/exports/infra.js +1 -3
  47. package/extensions/ApiLambdaFunction.js +45 -56
  48. package/extensions/ApiLambdaFunction.js.map +1 -1
  49. package/extensions/ApiRoute.js +90 -104
  50. package/extensions/ApiRoute.js.map +1 -1
  51. package/extensions/AwsDefaultRegion.js +17 -16
  52. package/extensions/AwsDefaultRegion.js.map +1 -1
  53. package/extensions/Cms/ModelFieldCompression.js +16 -15
  54. package/extensions/Cms/ModelFieldCompression.js.map +1 -1
  55. package/extensions/Encryption.js +30 -29
  56. package/extensions/Encryption.js.map +1 -1
  57. package/extensions/Mailer/Smtp.js +15 -14
  58. package/extensions/Mailer/Smtp.js.map +1 -1
  59. package/extensions/Mailer/Smtp.test.js +117 -131
  60. package/extensions/Mailer/Smtp.test.js.map +1 -1
  61. package/extensions/Mailer/SmtpParamsSchema.js +11 -14
  62. package/extensions/Mailer/SmtpParamsSchema.js.map +1 -1
  63. package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js +25 -30
  64. package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js.map +1 -1
  65. package/extensions/OpenSearch/EnsureOsWasDeployed.js +14 -24
  66. package/extensions/OpenSearch/EnsureOsWasDeployed.js.map +1 -1
  67. package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js +25 -21
  68. package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js.map +1 -1
  69. package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js +26 -22
  70. package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js.map +1 -1
  71. package/extensions/OpenSearch.js +30 -31
  72. package/extensions/OpenSearch.js.map +1 -1
  73. package/extensions/ProjectAws/AdminStackOutputService.js +0 -2
  74. package/extensions/ProjectAws/ApiStackOutputService.js +0 -2
  75. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +65 -74
  76. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -1
  77. package/extensions/ProjectAws/AutoInstall.js +15 -14
  78. package/extensions/ProjectAws/AutoInstall.js.map +1 -1
  79. package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js +15 -19
  80. package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js.map +1 -1
  81. package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js +56 -45
  82. package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js.map +1 -1
  83. package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js +57 -55
  84. package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js.map +1 -1
  85. package/extensions/ProjectAws/BuildAppWorkspace.js +49 -54
  86. package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -1
  87. package/extensions/ProjectAws/CoreStackOutputService.js +0 -2
  88. package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.js +26 -30
  89. package/extensions/ProjectAws/EnsureAwsCredentialsBeforeDeploy.js.map +1 -1
  90. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js +25 -38
  91. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js.map +1 -1
  92. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js +22 -17
  93. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js.map +1 -1
  94. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js +22 -17
  95. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js.map +1 -1
  96. package/extensions/ProjectAws/SetDatabaseSetupOutput.js +20 -21
  97. package/extensions/ProjectAws/SetDatabaseSetupOutput.js.map +1 -1
  98. package/extensions/ProjectAws/UploadAdminAppToS3.js +53 -58
  99. package/extensions/ProjectAws/UploadAdminAppToS3.js.map +1 -1
  100. package/extensions/ProjectAws/definitions.js +13 -6
  101. package/extensions/ProjectAws/definitions.js.map +1 -1
  102. package/extensions/ProjectAws.js +44 -45
  103. package/extensions/ProjectAws.js.map +1 -1
  104. package/extensions/RegisterRoutesPulumi.js +24 -29
  105. package/extensions/RegisterRoutesPulumi.js.map +1 -1
  106. package/extensions/definitions.js +10 -3
  107. package/extensions/definitions.js.map +1 -1
  108. package/extensions/index.js +0 -2
  109. package/features/ApiGqlClient.js +46 -51
  110. package/features/ApiGqlClient.js.map +1 -1
  111. package/features/InvokeLambdaFunction.js +30 -32
  112. package/features/InvokeLambdaFunction.js.map +1 -1
  113. package/features/index.js +0 -2
  114. package/index.js +0 -2
  115. package/infra.js +57 -59
  116. package/infra.js.map +1 -1
  117. package/package.json +16 -16
  118. package/project.js +7 -6
  119. package/project.js.map +1 -1
  120. package/pulumi/apps/admin/createAdminPulumiApp.js +36 -44
  121. package/pulumi/apps/admin/createAdminPulumiApp.js.map +1 -1
  122. package/pulumi/apps/admin/index.js +0 -2
  123. package/pulumi/apps/api/ApiBackgroundTask.js +153 -137
  124. package/pulumi/apps/api/ApiBackgroundTask.js.map +1 -1
  125. package/pulumi/apps/api/ApiCloudfront.js +188 -130
  126. package/pulumi/apps/api/ApiCloudfront.js.map +1 -1
  127. package/pulumi/apps/api/ApiFileManager.js +34 -33
  128. package/pulumi/apps/api/ApiFileManager.js.map +1 -1
  129. package/pulumi/apps/api/ApiGateway.js +67 -74
  130. package/pulumi/apps/api/ApiGateway.js.map +1 -1
  131. package/pulumi/apps/api/ApiGraphql.js +223 -152
  132. package/pulumi/apps/api/ApiGraphql.js.map +1 -1
  133. package/pulumi/apps/api/ApiOutput.js +29 -30
  134. package/pulumi/apps/api/ApiOutput.js.map +1 -1
  135. package/pulumi/apps/api/ApiScheduler.js +94 -92
  136. package/pulumi/apps/api/ApiScheduler.js.map +1 -1
  137. package/pulumi/apps/api/ApiWebsocket.js +141 -133
  138. package/pulumi/apps/api/ApiWebsocket.js.map +1 -1
  139. package/pulumi/apps/api/backgroundTask/definition.js +122 -144
  140. package/pulumi/apps/api/backgroundTask/definition.js.map +1 -1
  141. package/pulumi/apps/api/backgroundTask/policy.js +37 -23
  142. package/pulumi/apps/api/backgroundTask/policy.js.map +1 -1
  143. package/pulumi/apps/api/backgroundTask/role.js +29 -29
  144. package/pulumi/apps/api/backgroundTask/role.js.map +1 -1
  145. package/pulumi/apps/api/backgroundTask/types.js +9 -11
  146. package/pulumi/apps/api/backgroundTask/types.js.map +1 -1
  147. package/pulumi/apps/api/createApiPulumiApp.js +206 -274
  148. package/pulumi/apps/api/createApiPulumiApp.js.map +1 -1
  149. package/pulumi/apps/api/handleGuardDutyEvents.js +54 -51
  150. package/pulumi/apps/api/handleGuardDutyEvents.js.map +1 -1
  151. package/pulumi/apps/api/index.js +0 -2
  152. package/pulumi/apps/awsUtils.js +21 -24
  153. package/pulumi/apps/awsUtils.js.map +1 -1
  154. package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js +37 -40
  155. package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js.map +1 -1
  156. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js +83 -91
  157. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js.map +1 -1
  158. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js +17 -16
  159. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js.map +1 -1
  160. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js +13 -12
  161. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js.map +1 -1
  162. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js +9 -14
  163. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js.map +1 -1
  164. package/pulumi/apps/blueGreen/cloudfront/createOriginId.js +5 -7
  165. package/pulumi/apps/blueGreen/cloudfront/createOriginId.js.map +1 -1
  166. package/pulumi/apps/blueGreen/constants.js +15 -3
  167. package/pulumi/apps/blueGreen/constants.js.map +1 -1
  168. package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js +77 -103
  169. package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js.map +1 -1
  170. package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js +20 -26
  171. package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js.map +1 -1
  172. package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js +17 -20
  173. package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js.map +1 -1
  174. package/pulumi/apps/blueGreen/domains/getApplicationDomains.js +51 -61
  175. package/pulumi/apps/blueGreen/domains/getApplicationDomains.js.map +1 -1
  176. package/pulumi/apps/blueGreen/domains/resolveDomains.js +24 -38
  177. package/pulumi/apps/blueGreen/domains/resolveDomains.js.map +1 -1
  178. package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js +7 -14
  179. package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js.map +1 -1
  180. package/pulumi/apps/blueGreen/functions/handler.js +1 -57
  181. package/pulumi/apps/blueGreen/functions/handler.js.map +1 -1
  182. package/pulumi/apps/blueGreen/types.js +0 -3
  183. package/pulumi/apps/blueGreen/validation/validateDeployments.js +19 -24
  184. package/pulumi/apps/blueGreen/validation/validateDeployments.js.map +1 -1
  185. package/pulumi/apps/common/CoreOutput.js +34 -37
  186. package/pulumi/apps/common/CoreOutput.js.map +1 -1
  187. package/pulumi/apps/common/VpcConfig.js +20 -20
  188. package/pulumi/apps/common/VpcConfig.js.map +1 -1
  189. package/pulumi/apps/common/index.js +0 -2
  190. package/pulumi/apps/core/CoreAuditLogsDynamo.js +245 -182
  191. package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -1
  192. package/pulumi/apps/core/CoreCognito.js +117 -106
  193. package/pulumi/apps/core/CoreCognito.js.map +1 -1
  194. package/pulumi/apps/core/CoreDynamo.js +91 -70
  195. package/pulumi/apps/core/CoreDynamo.js.map +1 -1
  196. package/pulumi/apps/core/CoreEventBus.js +10 -9
  197. package/pulumi/apps/core/CoreEventBus.js.map +1 -1
  198. package/pulumi/apps/core/CoreFileManager.js +76 -68
  199. package/pulumi/apps/core/CoreFileManager.js.map +1 -1
  200. package/pulumi/apps/core/CoreOpenSearch.js +281 -305
  201. package/pulumi/apps/core/CoreOpenSearch.js.map +1 -1
  202. package/pulumi/apps/core/CoreVpc.js +155 -156
  203. package/pulumi/apps/core/CoreVpc.js.map +1 -1
  204. package/pulumi/apps/core/WatchCommand.js +94 -96
  205. package/pulumi/apps/core/WatchCommand.js.map +1 -1
  206. package/pulumi/apps/core/cognitoIdentityProviders/amazon.js +16 -22
  207. package/pulumi/apps/core/cognitoIdentityProviders/amazon.js.map +1 -1
  208. package/pulumi/apps/core/cognitoIdentityProviders/apple.js +16 -17
  209. package/pulumi/apps/core/cognitoIdentityProviders/apple.js.map +1 -1
  210. package/pulumi/apps/core/cognitoIdentityProviders/configure.js +44 -50
  211. package/pulumi/apps/core/cognitoIdentityProviders/configure.js.map +1 -1
  212. package/pulumi/apps/core/cognitoIdentityProviders/facebook.js +16 -17
  213. package/pulumi/apps/core/cognitoIdentityProviders/facebook.js.map +1 -1
  214. package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js +7 -8
  215. package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js.map +1 -1
  216. package/pulumi/apps/core/cognitoIdentityProviders/google.js +16 -17
  217. package/pulumi/apps/core/cognitoIdentityProviders/google.js.map +1 -1
  218. package/pulumi/apps/core/cognitoIdentityProviders/index.js +0 -2
  219. package/pulumi/apps/core/cognitoIdentityProviders/oidc.js +17 -18
  220. package/pulumi/apps/core/cognitoIdentityProviders/oidc.js.map +1 -1
  221. package/pulumi/apps/core/configureS3BucketMalwareProtection.js +251 -188
  222. package/pulumi/apps/core/configureS3BucketMalwareProtection.js.map +1 -1
  223. package/pulumi/apps/core/createCorePulumiApp.js +212 -280
  224. package/pulumi/apps/core/createCorePulumiApp.js.map +1 -1
  225. package/pulumi/apps/core/index.js +0 -2
  226. package/pulumi/apps/core/webinyWatchCommand/handler.js +45 -32
  227. package/pulumi/apps/core/webinyWatchCommand/handler.js.map +1 -1
  228. package/pulumi/apps/createAppBucket.js +157 -146
  229. package/pulumi/apps/createAppBucket.js.map +1 -1
  230. package/pulumi/apps/customDomain.js +7 -6
  231. package/pulumi/apps/customDomain.js.map +1 -1
  232. package/pulumi/apps/extensions/getAwsTagsFromExtension.js +8 -7
  233. package/pulumi/apps/extensions/getAwsTagsFromExtension.js.map +1 -1
  234. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js +6 -7
  235. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js.map +1 -1
  236. package/pulumi/apps/extensions/getOsConfigFromExtension.js +17 -41
  237. package/pulumi/apps/extensions/getOsConfigFromExtension.js.map +1 -1
  238. package/pulumi/apps/extensions/getVpcConfigFromExtension.js +13 -25
  239. package/pulumi/apps/extensions/getVpcConfigFromExtension.js.map +1 -1
  240. package/pulumi/apps/index.js +0 -3
  241. package/pulumi/apps/lambdaUtils.js +57 -61
  242. package/pulumi/apps/lambdaUtils.js.map +1 -1
  243. package/pulumi/apps/react/createReactPulumiApp.js +108 -129
  244. package/pulumi/apps/react/createReactPulumiApp.js.map +1 -1
  245. package/pulumi/apps/react/index.js +0 -2
  246. package/pulumi/apps/syncSystem/SyncSystemDynamo.js +77 -62
  247. package/pulumi/apps/syncSystem/SyncSystemDynamo.js.map +1 -1
  248. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js +74 -57
  249. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -1
  250. package/pulumi/apps/syncSystem/SyncSystemEventBus.js +77 -71
  251. package/pulumi/apps/syncSystem/SyncSystemEventBus.js.map +1 -1
  252. package/pulumi/apps/syncSystem/SyncSystemLambda.js +154 -86
  253. package/pulumi/apps/syncSystem/SyncSystemLambda.js.map +1 -1
  254. package/pulumi/apps/syncSystem/SyncSystemOutput.js +14 -13
  255. package/pulumi/apps/syncSystem/SyncSystemOutput.js.map +1 -1
  256. package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js +56 -60
  257. package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js.map +1 -1
  258. package/pulumi/apps/syncSystem/SyncSystemSQS.js +25 -49
  259. package/pulumi/apps/syncSystem/SyncSystemSQS.js.map +1 -1
  260. package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js +44 -43
  261. package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js.map +1 -1
  262. package/pulumi/apps/syncSystem/addTableItems.js +35 -45
  263. package/pulumi/apps/syncSystem/addTableItems.js.map +1 -1
  264. package/pulumi/apps/syncSystem/api/addServiceManifest.js +12 -14
  265. package/pulumi/apps/syncSystem/api/addServiceManifest.js.map +1 -1
  266. package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js +49 -55
  267. package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js.map +1 -1
  268. package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js +88 -40
  269. package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js.map +1 -1
  270. package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js +37 -43
  271. package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js.map +1 -1
  272. package/pulumi/apps/syncSystem/api/attachS3Permissions.js +51 -47
  273. package/pulumi/apps/syncSystem/api/attachS3Permissions.js.map +1 -1
  274. package/pulumi/apps/syncSystem/api/index.js +28 -46
  275. package/pulumi/apps/syncSystem/api/index.js.map +1 -1
  276. package/pulumi/apps/syncSystem/constants.js +2 -1
  277. package/pulumi/apps/syncSystem/constants.js.map +1 -1
  278. package/pulumi/apps/syncSystem/createSyncResourceName.js +2 -7
  279. package/pulumi/apps/syncSystem/createSyncResourceName.js.map +1 -1
  280. package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js +101 -166
  281. package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js.map +1 -1
  282. package/pulumi/apps/syncSystem/customApp.js +12 -16
  283. package/pulumi/apps/syncSystem/customApp.js.map +1 -1
  284. package/pulumi/apps/syncSystem/getSyncSystemOutput.js +5 -6
  285. package/pulumi/apps/syncSystem/getSyncSystemOutput.js.map +1 -1
  286. package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js +108 -42
  287. package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js.map +1 -1
  288. package/pulumi/apps/syncSystem/types.js +0 -3
  289. package/pulumi/constants.js +2 -1
  290. package/pulumi/constants.js.map +1 -1
  291. package/pulumi/env/awsRegion.js +3 -2
  292. package/pulumi/env/awsRegion.js.map +1 -1
  293. package/pulumi/env/base.js +11 -27
  294. package/pulumi/env/base.js.map +1 -1
  295. package/pulumi/env/env.js +3 -2
  296. package/pulumi/env/env.js.map +1 -1
  297. package/pulumi/env/projectName.js +3 -2
  298. package/pulumi/env/projectName.js.map +1 -1
  299. package/pulumi/env/variant.js +4 -3
  300. package/pulumi/env/variant.js.map +1 -1
  301. package/pulumi/extensions/AdminCustomDomains.js +15 -11
  302. package/pulumi/extensions/AdminCustomDomains.js.map +1 -1
  303. package/pulumi/extensions/AdminPulumi.js +16 -19
  304. package/pulumi/extensions/AdminPulumi.js.map +1 -1
  305. package/pulumi/extensions/ApiCustomDomains.js +15 -11
  306. package/pulumi/extensions/ApiCustomDomains.js.map +1 -1
  307. package/pulumi/extensions/ApiPulumi.js +16 -19
  308. package/pulumi/extensions/ApiPulumi.js.map +1 -1
  309. package/pulumi/extensions/AwsTags.js +11 -10
  310. package/pulumi/extensions/AwsTags.js.map +1 -1
  311. package/pulumi/extensions/BlueGreenDeployments.js +29 -26
  312. package/pulumi/extensions/BlueGreenDeployments.js.map +1 -1
  313. package/pulumi/extensions/CorePulumi.js +16 -19
  314. package/pulumi/extensions/CorePulumi.js.map +1 -1
  315. package/pulumi/extensions/OpenSearch.js +16 -15
  316. package/pulumi/extensions/OpenSearch.js.map +1 -1
  317. package/pulumi/extensions/Vpc.js +21 -20
  318. package/pulumi/extensions/Vpc.js.map +1 -1
  319. package/pulumi/extensions/index.js +12 -10
  320. package/pulumi/extensions/index.js.map +1 -1
  321. package/pulumi/features/AdminPulumi/AdminPulumi.js +18 -14
  322. package/pulumi/features/AdminPulumi/AdminPulumi.js.map +1 -1
  323. package/pulumi/features/AdminPulumi/index.js +0 -2
  324. package/pulumi/features/ApiPulumi/ApiPulumi.js +18 -14
  325. package/pulumi/features/ApiPulumi/ApiPulumi.js.map +1 -1
  326. package/pulumi/features/ApiPulumi/index.js +0 -2
  327. package/pulumi/features/CorePulumi/CorePulumi.js +18 -14
  328. package/pulumi/features/CorePulumi/CorePulumi.js.map +1 -1
  329. package/pulumi/features/CorePulumi/index.js +0 -2
  330. package/pulumi/features/index.js +0 -2
  331. package/pulumi/index.js +0 -2
  332. package/pulumi/types.js +0 -3
  333. package/pulumi/utils/addDomainsUrlsOutputs.js +20 -37
  334. package/pulumi/utils/addDomainsUrlsOutputs.js.map +1 -1
  335. package/pulumi/utils/addServiceManifestTableItem.js +12 -15
  336. package/pulumi/utils/addServiceManifestTableItem.js.map +1 -1
  337. package/pulumi/utils/crawlDirectory.js +10 -15
  338. package/pulumi/utils/crawlDirectory.js.map +1 -1
  339. package/pulumi/utils/createAssetArchive.js +5 -6
  340. package/pulumi/utils/createAssetArchive.js.map +1 -1
  341. package/pulumi/utils/dynamodb.js +26 -27
  342. package/pulumi/utils/dynamodb.js.map +1 -1
  343. package/pulumi/utils/getPresignedPost.js +27 -30
  344. package/pulumi/utils/getPresignedPost.js.map +1 -1
  345. package/pulumi/utils/index.js +1 -3
  346. package/pulumi/utils/lambdaEnvVariables.js +42 -54
  347. package/pulumi/utils/lambdaEnvVariables.js.map +1 -1
  348. package/pulumi/utils/tagResources.js +248 -28
  349. package/pulumi/utils/tagResources.js.map +1 -1
  350. package/pulumi/utils/uploadFolderToS3.js +101 -131
  351. package/pulumi/utils/uploadFolderToS3.js.map +1 -1
  352. package/pulumi/utils/withServiceManifest.js +28 -37
  353. package/pulumi/utils/withServiceManifest.js.map +1 -1
  354. package/services/AdminStackOutputService.js +14 -11
  355. package/services/AdminStackOutputService.js.map +1 -1
  356. package/services/ApiStackOutputService.js +14 -11
  357. package/services/ApiStackOutputService.js.map +1 -1
  358. package/services/CoreStackOutputService.js +14 -11
  359. package/services/CoreStackOutputService.js.map +1 -1
  360. package/utils/getTemplatesFolderPath.js +8 -10
  361. package/utils/getTemplatesFolderPath.js.map +1 -1
  362. package/utils/index.js +0 -2
  363. package/abstractions/features/pulumi/index.js.map +0 -1
  364. package/abstractions/index.js.map +0 -1
  365. package/apps/index.js.map +0 -1
  366. package/exports/extensions.js.map +0 -1
  367. package/exports/infra/admin.js.map +0 -1
  368. package/exports/infra/api.js.map +0 -1
  369. package/exports/infra/core.js.map +0 -1
  370. package/exports/infra.js.map +0 -1
  371. package/extensions/ProjectAws/AdminStackOutputService.js.map +0 -1
  372. package/extensions/ProjectAws/ApiStackOutputService.js.map +0 -1
  373. package/extensions/ProjectAws/CoreStackOutputService.js.map +0 -1
  374. package/extensions/index.js.map +0 -1
  375. package/features/index.js.map +0 -1
  376. package/index.js.map +0 -1
  377. package/pulumi/apps/admin/index.js.map +0 -1
  378. package/pulumi/apps/api/index.js.map +0 -1
  379. package/pulumi/apps/blueGreen/types.js.map +0 -1
  380. package/pulumi/apps/common/index.js.map +0 -1
  381. package/pulumi/apps/core/cognitoIdentityProviders/index.js.map +0 -1
  382. package/pulumi/apps/core/index.js.map +0 -1
  383. package/pulumi/apps/index.js.map +0 -1
  384. package/pulumi/apps/react/index.js.map +0 -1
  385. package/pulumi/apps/syncSystem/types.js.map +0 -1
  386. package/pulumi/features/AdminPulumi/index.js.map +0 -1
  387. package/pulumi/features/ApiPulumi/index.js.map +0 -1
  388. package/pulumi/features/CorePulumi/index.js.map +0 -1
  389. package/pulumi/features/index.js.map +0 -1
  390. package/pulumi/index.js.map +0 -1
  391. package/pulumi/types.js.map +0 -1
  392. package/pulumi/utils/index.js.map +0 -1
  393. package/utils/index.js.map +0 -1
@@ -1,4 +1,3 @@
1
- import * as aws from "@pulumi/aws";
2
1
  import { createPulumiApp, isResourceOfType } from "@webiny/pulumi";
3
2
  import { CoreCognito } from "./CoreCognito.js";
4
3
  import { CoreDynamo } from "./CoreDynamo.js";
@@ -9,7 +8,6 @@ import { CoreVpc } from "./CoreVpc.js";
9
8
  import { WatchCommand } from "./WatchCommand.js";
10
9
  import { withServiceManifest } from "../../utils/withServiceManifest.js";
11
10
  import { addServiceManifestTableItem } from "../../utils/addServiceManifestTableItem.js";
12
- import * as random from "@pulumi/random";
13
11
  import { getProjectSdk } from "@webiny/project";
14
12
  import { CorePulumi } from "../../../abstractions/features/pulumi/index.js";
15
13
  import { corePulumi } from "../../features/CorePulumi/index.js";
@@ -17,293 +15,227 @@ import { getOsConfigFromExtension } from "../extensions/getOsConfigFromExtension
17
15
  import { getVpcConfigFromExtension } from "../extensions/getVpcConfigFromExtension.js";
18
16
  import { applyAwsResourceTags, getAwsRegion } from "../awsUtils.js";
19
17
  import { configureS3BucketMalwareProtection } from "./configureS3BucketMalwareProtection.js";
20
- import * as pulumi from "@pulumi/pulumi";
21
18
  import { CoreAuditLogsDynamo } from "../../index.js";
22
- export function createCorePulumiApp() {
23
- const baseApp = createPulumiApp({
24
- name: "core",
25
- path: "apps/core",
26
- program: async app => {
27
- const sdk = await getProjectSdk();
28
- const projectConfig = await sdk.getProjectConfig();
29
- const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
30
- const coreStackOutput = await sdk.getAppStackOutput("core");
31
- const vpcExtensionsConfig = getVpcConfigFromExtension(projectConfig);
32
- const opensearchExtensionConfig = getOsConfigFromExtension(projectConfig);
33
- const deploymentId = new random.RandomId("deploymentId", {
34
- byteLength: 8
35
- });
36
- let searchEngineType = null;
37
- let searchEngineParams = null;
38
- if (opensearchExtensionConfig) {
39
- searchEngineParams = opensearchExtensionConfig;
40
- searchEngineType = "opensearch";
41
- }
42
- if (searchEngineParams) {
43
- const params = searchEngineParams;
44
- if (typeof params === "object") {
45
- if (params.endpoint) {
46
- process.env.OPENSEARCH_ENDPOINT = params.endpoint;
47
- }
48
- if (params.domainName) {
49
- process.env.AWS_OS_DOMAIN_NAME = params.domainName;
50
- }
51
- if (params.indexPrefix) {
52
- process.env.OPENSEARCH_INDEX_PREFIX = params.indexPrefix;
53
- }
54
- if (params.sharedIndexes) {
55
- process.env.OPENSEARCH_SHARED_INDEXES = "true";
56
- }
57
- if (params.username) {
58
- process.env.OPENSEARCH_USERNAME = params.username;
59
- }
60
- if (params.password) {
61
- process.env.OPENSEARCH_PASSWORD = params.password;
62
- }
63
- }
64
- }
65
- if (pulumiResourceNamePrefix) {
66
- app.onResource(resource => {
67
- if (!resource.name.startsWith(pulumiResourceNamePrefix)) {
68
- resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
69
- }
70
- });
71
- }
72
-
73
- // <-------------------- Enterprise start -------------------->
74
- app.addHandler(async () => {
75
- const usingAdvancedVpcParams = vpcExtensionsConfig && typeof vpcExtensionsConfig !== "boolean";
76
- const featureFlags = await sdk.getFeatureFlags();
77
- if (featureFlags.isFileManagerThreatDetectionEnabled()) {
78
- configureS3BucketMalwareProtection(app);
79
- }
80
-
81
- // Not using advanced VPC params? Then immediately exit.
82
- if (!usingAdvancedVpcParams) {
83
- return;
84
- }
85
- const {
86
- resources,
87
- addResource,
88
- onResource
89
- } = app;
90
- const {
91
- useExistingVpc,
92
- useVpcEndpoints
93
- } = vpcExtensionsConfig;
94
-
95
- // 1. We first deal with "existing VPC" setup.
96
- if (useExistingVpc) {
97
- if ("useVpcEndpoints" in vpcExtensionsConfig) {
98
- throw new Error("Cannot specify `useVpcEndpoints` parameter when using an existing VPC. The VPC endpoints configurations should be already defined within the existing VPC.");
99
- }
100
- if (opensearchExtensionConfig) {
101
- if (!useExistingVpc.openSearchDomainVpcConfig) {
102
- throw new Error("Cannot specify `useExistingVpc` parameter because the `openSearchDomainVpcConfig` parameter wasn't provided.");
103
- }
104
- onResource(resource => {
105
- if (isResourceOfType(resource, aws.opensearch.Domain)) {
106
- resource.config.vpcOptions(useExistingVpc.openSearchDomainVpcConfig);
107
- }
19
+ import * as __rspack_external__pulumi_aws_e7af83c1 from "@pulumi/aws";
20
+ import * as __rspack_external__pulumi_random_ec318632 from "@pulumi/random";
21
+ import * as __rspack_external__pulumi_pulumi_d0276039 from "@pulumi/pulumi";
22
+ function createCorePulumiApp() {
23
+ const baseApp = createPulumiApp({
24
+ name: "core",
25
+ path: "apps/core",
26
+ program: async (app)=>{
27
+ const sdk = await getProjectSdk();
28
+ const projectConfig = await sdk.getProjectConfig();
29
+ const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
30
+ const coreStackOutput = await sdk.getAppStackOutput("core");
31
+ const vpcExtensionsConfig = getVpcConfigFromExtension(projectConfig);
32
+ const opensearchExtensionConfig = getOsConfigFromExtension(projectConfig);
33
+ const deploymentId = new __rspack_external__pulumi_random_ec318632.RandomId("deploymentId", {
34
+ byteLength: 8
108
35
  });
109
- }
110
- if (!useExistingVpc.lambdaFunctionsVpcConfig) {
111
- throw new Error("Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.");
112
- }
113
- onResource(resource => {
114
- if (isResourceOfType(resource, aws.lambda.Function)) {
115
- const canUseVpc = resource.meta.canUseVpc !== false;
116
- if (canUseVpc) {
117
- resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
118
- }
36
+ let searchEngineType = null;
37
+ let searchEngineParams = null;
38
+ if (opensearchExtensionConfig) {
39
+ searchEngineParams = opensearchExtensionConfig;
40
+ searchEngineType = "opensearch";
41
+ }
42
+ if (searchEngineParams) {
43
+ const params = searchEngineParams;
44
+ if ("object" == typeof params) {
45
+ if (params.endpoint) process.env.OPENSEARCH_ENDPOINT = params.endpoint;
46
+ if (params.domainName) process.env.AWS_OS_DOMAIN_NAME = params.domainName;
47
+ if (params.indexPrefix) process.env.OPENSEARCH_INDEX_PREFIX = params.indexPrefix;
48
+ if (params.sharedIndexes) process.env.OPENSEARCH_SHARED_INDEXES = "true";
49
+ if (params.username) process.env.OPENSEARCH_USERNAME = params.username;
50
+ if (params.password) process.env.OPENSEARCH_PASSWORD = params.password;
51
+ }
119
52
  }
120
- if (isResourceOfType(resource, aws.iam.Role)) {
121
- if (resource.meta.isLambdaFunctionRole) {
122
- addResource(aws.iam.RolePolicyAttachment, {
123
- name: `${resource.name}-vpc-access-execution-role`,
124
- config: {
125
- role: resource.output.name,
126
- policyArn: aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole
127
- }
53
+ if (pulumiResourceNamePrefix) app.onResource((resource)=>{
54
+ if (!resource.name.startsWith(pulumiResourceNamePrefix)) resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
55
+ });
56
+ app.addHandler(async ()=>{
57
+ const usingAdvancedVpcParams = vpcExtensionsConfig && "boolean" != typeof vpcExtensionsConfig;
58
+ const featureFlags = await sdk.getFeatureFlags();
59
+ if (featureFlags.isFileManagerThreatDetectionEnabled()) configureS3BucketMalwareProtection(app);
60
+ if (!usingAdvancedVpcParams) return;
61
+ const { resources, addResource, onResource } = app;
62
+ const { useExistingVpc, useVpcEndpoints } = vpcExtensionsConfig;
63
+ if (useExistingVpc) {
64
+ if ("useVpcEndpoints" in vpcExtensionsConfig) throw new Error("Cannot specify `useVpcEndpoints` parameter when using an existing VPC. The VPC endpoints configurations should be already defined within the existing VPC.");
65
+ if (opensearchExtensionConfig) {
66
+ if (!useExistingVpc.openSearchDomainVpcConfig) throw new Error("Cannot specify `useExistingVpc` parameter because the `openSearchDomainVpcConfig` parameter wasn't provided.");
67
+ onResource((resource)=>{
68
+ if (isResourceOfType(resource, __rspack_external__pulumi_aws_e7af83c1.opensearch.Domain)) resource.config.vpcOptions(useExistingVpc.openSearchDomainVpcConfig);
69
+ });
70
+ }
71
+ if (!useExistingVpc.lambdaFunctionsVpcConfig) throw new Error("Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.");
72
+ onResource((resource)=>{
73
+ if (isResourceOfType(resource, __rspack_external__pulumi_aws_e7af83c1.lambda.Function)) {
74
+ const canUseVpc = false !== resource.meta.canUseVpc;
75
+ if (canUseVpc) resource.config.vpcConfig(useExistingVpc.lambdaFunctionsVpcConfig);
76
+ }
77
+ if (isResourceOfType(resource, __rspack_external__pulumi_aws_e7af83c1.iam.Role)) {
78
+ if (resource.meta.isLambdaFunctionRole) addResource(__rspack_external__pulumi_aws_e7af83c1.iam.RolePolicyAttachment, {
79
+ name: `${resource.name}-vpc-access-execution-role`,
80
+ config: {
81
+ role: resource.output.name,
82
+ policyArn: __rspack_external__pulumi_aws_e7af83c1.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole
83
+ }
84
+ });
85
+ }
86
+ });
87
+ return;
88
+ }
89
+ if (useVpcEndpoints) {
90
+ const region = getAwsRegion(app);
91
+ onResource((resource)=>{
92
+ if (isResourceOfType(resource, __rspack_external__pulumi_aws_e7af83c1.ec2.Vpc)) {
93
+ resource.config.enableDnsSupport(true);
94
+ resource.config.enableDnsHostnames(true);
95
+ }
96
+ });
97
+ const { vpc, subnets, routeTables } = resources.vpc;
98
+ addResource(__rspack_external__pulumi_aws_e7af83c1.ec2.VpcEndpoint, {
99
+ name: "vpc-s3-vpc-endpoint",
100
+ config: {
101
+ vpcId: vpc.output.id,
102
+ serviceName: __rspack_external__pulumi_pulumi_d0276039.interpolate`com.amazonaws.${region}.s3`,
103
+ routeTableIds: [
104
+ routeTables.privateSubnets.output.id
105
+ ]
106
+ }
107
+ });
108
+ addResource(__rspack_external__pulumi_aws_e7af83c1.ec2.VpcEndpoint, {
109
+ name: "vpc-dynamodb-vpc-endpoint",
110
+ config: {
111
+ vpcId: vpc.output.id,
112
+ serviceName: __rspack_external__pulumi_pulumi_d0276039.interpolate`com.amazonaws.${region}.dynamodb`,
113
+ routeTableIds: [
114
+ routeTables.privateSubnets.output.id
115
+ ]
116
+ }
117
+ });
118
+ addResource(__rspack_external__pulumi_aws_e7af83c1.ec2.VpcEndpoint, {
119
+ name: "vpc-sqs-vpc-endpoint",
120
+ config: {
121
+ vpcId: vpc.output.id,
122
+ serviceName: __rspack_external__pulumi_pulumi_d0276039.interpolate`com.amazonaws.${region}.sqs`,
123
+ vpcEndpointType: "Interface",
124
+ privateDnsEnabled: true,
125
+ securityGroupIds: [
126
+ vpc.output.defaultSecurityGroupId
127
+ ],
128
+ subnetIds: subnets.private.map((subNet)=>subNet.output.id)
129
+ }
130
+ });
131
+ addResource(__rspack_external__pulumi_aws_e7af83c1.ec2.VpcEndpoint, {
132
+ name: "vpc-events-vpc-endpoint",
133
+ config: {
134
+ vpcId: vpc.output.id,
135
+ serviceName: __rspack_external__pulumi_pulumi_d0276039.interpolate`com.amazonaws.${region}.events`,
136
+ vpcEndpointType: "Interface",
137
+ privateDnsEnabled: true,
138
+ securityGroupIds: [
139
+ vpc.output.defaultSecurityGroupId
140
+ ],
141
+ subnetIds: subnets.private.map((subNet)=>subNet.output.id)
142
+ }
143
+ });
144
+ }
145
+ });
146
+ sdk.getContainer().registerComposite(corePulumi);
147
+ const pulumiHandlers = sdk.getContainer().resolve(CorePulumi);
148
+ app.addHandler(()=>pulumiHandlers.execute(app));
149
+ const isProduction = app.env.isProduction;
150
+ const protect = isProduction;
151
+ const dynamoDbTable = app.addModule(CoreDynamo, {
152
+ protect
153
+ });
154
+ const auditLogsDynamoDbTable = app.addModule(CoreAuditLogsDynamo, {
155
+ protect
156
+ });
157
+ const vpcEnabled = true === vpcExtensionsConfig || "object" == typeof vpcExtensionsConfig || isProduction;
158
+ const vpc = vpcEnabled ? app.addModule(CoreVpc) : null;
159
+ const cognito = app.addModule(CoreCognito, {
160
+ protect,
161
+ useEmailAsUsername: false
162
+ });
163
+ const eventBus = app.addModule(CoreEventBus);
164
+ const { bucket: fileManagerBucket } = app.addModule(CoreFileManger, {
165
+ protect
166
+ });
167
+ let opensearch;
168
+ if ("opensearch" === searchEngineType) {
169
+ const prevDomainName = coreStackOutput?.opensearchDomainName;
170
+ const isUpgradeFromOldCode = !!coreStackOutput?.primaryDynamodbTableName && !prevDomainName;
171
+ const namePrefixForOs = isUpgradeFromOldCode ? "" : pulumiResourceNamePrefix || "";
172
+ opensearch = app.addModule(OpenSearch, {
173
+ protect,
174
+ namePrefix: namePrefixForOs,
175
+ prevDomainName
128
176
  });
129
- }
130
177
  }
131
- });
132
- return;
178
+ app.addModule(WatchCommand, {
179
+ deploymentId: deploymentId.hex
180
+ });
181
+ app.addOutputs({
182
+ deploymentId: deploymentId.hex,
183
+ region: __rspack_external__pulumi_aws_e7af83c1.config.region,
184
+ fileManagerBucketId: fileManagerBucket.output.id,
185
+ primaryDynamodbTableArn: dynamoDbTable.output.arn,
186
+ primaryDynamodbTableName: dynamoDbTable.output.name,
187
+ primaryDynamodbTableHashKey: dynamoDbTable.output.hashKey,
188
+ primaryDynamodbTableRangeKey: dynamoDbTable.output.rangeKey,
189
+ auditLogsDynamodbTableArn: auditLogsDynamoDbTable.output.arn,
190
+ auditLogsDynamodbTableName: auditLogsDynamoDbTable.output.name,
191
+ auditLogsDynamodbTableHashKey: auditLogsDynamoDbTable.output.hashKey,
192
+ auditLogsDynamodbTableRangeKey: auditLogsDynamoDbTable.output.rangeKey,
193
+ cognitoUserPoolId: cognito.userPool.output.id,
194
+ cognitoUserPoolArn: cognito.userPool.output.arn,
195
+ cognitoUserPoolPasswordPolicy: cognito.userPool.output.passwordPolicy,
196
+ cognitoAppClientId: cognito.userPoolClient.output.id,
197
+ eventBusName: eventBus.output.name,
198
+ eventBusArn: eventBus.output.arn
199
+ });
200
+ await applyAwsResourceTags("core");
201
+ return {
202
+ dynamoDbTable,
203
+ vpc,
204
+ ...cognito,
205
+ fileManagerBucket,
206
+ eventBus,
207
+ opensearch
208
+ };
133
209
  }
134
-
135
- // 2. Now we deal with "non-existing VPC" setup.
136
- if (useVpcEndpoints) {
137
- const region = getAwsRegion(app);
138
- onResource(resource => {
139
- if (isResourceOfType(resource, aws.ec2.Vpc)) {
140
- resource.config.enableDnsSupport(true);
141
- resource.config.enableDnsHostnames(true);
142
- }
143
- });
144
- const {
145
- vpc,
146
- subnets,
147
- routeTables
148
- } = resources.vpc;
149
- addResource(aws.ec2.VpcEndpoint, {
150
- name: "vpc-s3-vpc-endpoint",
151
- config: {
152
- vpcId: vpc.output.id,
153
- serviceName: pulumi.interpolate`com.amazonaws.${region}.s3`,
154
- routeTableIds: [routeTables.privateSubnets.output.id]
155
- }
156
- });
157
- addResource(aws.ec2.VpcEndpoint, {
158
- name: "vpc-dynamodb-vpc-endpoint",
159
- config: {
160
- vpcId: vpc.output.id,
161
- serviceName: pulumi.interpolate`com.amazonaws.${region}.dynamodb`,
162
- routeTableIds: [routeTables.privateSubnets.output.id]
163
- }
164
- });
165
- addResource(aws.ec2.VpcEndpoint, {
166
- name: "vpc-sqs-vpc-endpoint",
167
- config: {
168
- vpcId: vpc.output.id,
169
- serviceName: pulumi.interpolate`com.amazonaws.${region}.sqs`,
170
- vpcEndpointType: "Interface",
171
- privateDnsEnabled: true,
172
- securityGroupIds: [vpc.output.defaultSecurityGroupId],
173
- subnetIds: subnets.private.map(subNet => subNet.output.id)
174
- }
175
- });
176
- addResource(aws.ec2.VpcEndpoint, {
177
- name: "vpc-events-vpc-endpoint",
178
- config: {
179
- vpcId: vpc.output.id,
180
- serviceName: pulumi.interpolate`com.amazonaws.${region}.events`,
181
- vpcEndpointType: "Interface",
182
- privateDnsEnabled: true,
183
- securityGroupIds: [vpc.output.defaultSecurityGroupId],
184
- subnetIds: subnets.private.map(subNet => subNet.output.id)
210
+ });
211
+ const app = withServiceManifest(baseApp, (manifests)=>{
212
+ const dynamoTable = baseApp.resources.dynamoDbTable;
213
+ const table = {
214
+ tableName: dynamoTable.output.name,
215
+ hashKey: dynamoTable.output.hashKey,
216
+ rangeKey: dynamoTable.output.rangeKey
217
+ };
218
+ manifests.forEach((manifest)=>addServiceManifestTableItem(baseApp, table, manifest));
219
+ });
220
+ app.addHandler(()=>{
221
+ app.addServiceManifest({
222
+ name: "core",
223
+ manifest: {
224
+ eventBus: {
225
+ arn: baseApp.resources.eventBus.output.arn,
226
+ name: baseApp.resources.eventBus.output.name
227
+ },
228
+ dynamodbTable: {
229
+ arn: baseApp.resources.dynamoDbTable.output.arn,
230
+ name: baseApp.resources.dynamoDbTable.output.name,
231
+ hashKey: baseApp.resources.dynamoDbTable.output.hashKey,
232
+ rangeKey: baseApp.resources.dynamoDbTable.output.rangeKey
233
+ }
185
234
  }
186
- });
187
- }
188
- });
189
- // <-------------------- Enterprise end -------------------->
190
-
191
- // Overrides must be applied via a handler, registered at the very start of the program.
192
- // By doing this, we're ensuring user's adjustments are not applied to late.
193
- sdk.getContainer().registerComposite(corePulumi);
194
- const pulumiHandlers = sdk.getContainer().resolve(CorePulumi);
195
- app.addHandler(() => {
196
- return pulumiHandlers.execute(app);
197
- });
198
- const isProduction = app.env.isProduction;
199
- const protect = isProduction;
200
-
201
- // Setup DynamoDB table
202
- const dynamoDbTable = app.addModule(CoreDynamo, {
203
- protect
204
- });
205
- const auditLogsDynamoDbTable = app.addModule(CoreAuditLogsDynamo, {
206
- protect
207
- });
208
-
209
- // Setup VPC
210
- const vpcEnabled = vpcExtensionsConfig === true || typeof vpcExtensionsConfig === "object" || isProduction;
211
- const vpc = vpcEnabled ? app.addModule(CoreVpc) : null;
212
-
213
- // Setup Cognito
214
- const cognito = app.addModule(CoreCognito, {
215
- protect,
216
- useEmailAsUsername: false
217
- });
218
-
219
- // Setup event bus
220
- const eventBus = app.addModule(CoreEventBus);
221
-
222
- // Setup file core bucket
223
- const {
224
- bucket: fileManagerBucket
225
- } = app.addModule(CoreFileManger, {
226
- protect
227
- });
228
- let opensearch;
229
- if (searchEngineType === "opensearch") {
230
- const prevDomainName = coreStackOutput?.opensearchDomainName;
231
-
232
- // When upgrading from old code that never stored opensearchDomainName, the old
233
- // code always generated domain names without any prefix (app.params.create
234
- // .pulumiResourceNamePrefix was never a real Pulumi param, so it returned "").
235
- // Using the SDK default "wby-" prefix here would generate a different name and
236
- // cause Pulumi to destroy and recreate the cluster.
237
- const isUpgradeFromOldCode = !!coreStackOutput?.primaryDynamodbTableName && !prevDomainName;
238
- const namePrefixForOs = isUpgradeFromOldCode ? "" : pulumiResourceNamePrefix || "";
239
- opensearch = app.addModule(OpenSearch, {
240
- protect,
241
- namePrefix: namePrefixForOs,
242
- prevDomainName
243
235
  });
244
- }
245
- app.addModule(WatchCommand, {
246
- deploymentId: deploymentId.hex
247
- });
248
- app.addOutputs({
249
- deploymentId: deploymentId.hex,
250
- region: aws.config.region,
251
- fileManagerBucketId: fileManagerBucket.output.id,
252
- primaryDynamodbTableArn: dynamoDbTable.output.arn,
253
- primaryDynamodbTableName: dynamoDbTable.output.name,
254
- primaryDynamodbTableHashKey: dynamoDbTable.output.hashKey,
255
- primaryDynamodbTableRangeKey: dynamoDbTable.output.rangeKey,
256
- auditLogsDynamodbTableArn: auditLogsDynamoDbTable.output.arn,
257
- auditLogsDynamodbTableName: auditLogsDynamoDbTable.output.name,
258
- auditLogsDynamodbTableHashKey: auditLogsDynamoDbTable.output.hashKey,
259
- auditLogsDynamodbTableRangeKey: auditLogsDynamoDbTable.output.rangeKey,
260
- cognitoUserPoolId: cognito.userPool.output.id,
261
- cognitoUserPoolArn: cognito.userPool.output.arn,
262
- cognitoUserPoolPasswordPolicy: cognito.userPool.output.passwordPolicy,
263
- cognitoAppClientId: cognito.userPoolClient.output.id,
264
- eventBusName: eventBus.output.name,
265
- eventBusArn: eventBus.output.arn
266
- });
267
-
268
- // Applies internal and user-defined AWS tags.
269
- await applyAwsResourceTags("core");
270
- return {
271
- dynamoDbTable,
272
- vpc,
273
- ...cognito,
274
- fileManagerBucket,
275
- eventBus,
276
- opensearch
277
- };
278
- }
279
- });
280
- const app = withServiceManifest(baseApp, manifests => {
281
- const dynamoTable = baseApp.resources.dynamoDbTable;
282
- const table = {
283
- tableName: dynamoTable.output.name,
284
- hashKey: dynamoTable.output.hashKey,
285
- rangeKey: dynamoTable.output.rangeKey
286
- };
287
- manifests.forEach(manifest => addServiceManifestTableItem(baseApp, table, manifest));
288
- });
289
- app.addHandler(() => {
290
- app.addServiceManifest({
291
- name: "core",
292
- manifest: {
293
- eventBus: {
294
- arn: baseApp.resources.eventBus.output.arn,
295
- name: baseApp.resources.eventBus.output.name
296
- },
297
- dynamodbTable: {
298
- arn: baseApp.resources.dynamoDbTable.output.arn,
299
- name: baseApp.resources.dynamoDbTable.output.name,
300
- hashKey: baseApp.resources.dynamoDbTable.output.hashKey,
301
- rangeKey: baseApp.resources.dynamoDbTable.output.rangeKey
302
- }
303
- }
304
236
  });
305
- });
306
- return app;
237
+ return app;
307
238
  }
239
+ export { createCorePulumiApp };
308
240
 
309
241
  //# sourceMappingURL=createCorePulumiApp.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["aws","createPulumiApp","isResourceOfType","CoreCognito","CoreDynamo","OpenSearch","CoreEventBus","CoreFileManger","CoreVpc","WatchCommand","withServiceManifest","addServiceManifestTableItem","random","getProjectSdk","CorePulumi","corePulumi","getOsConfigFromExtension","getVpcConfigFromExtension","applyAwsResourceTags","getAwsRegion","configureS3BucketMalwareProtection","pulumi","CoreAuditLogsDynamo","createCorePulumiApp","baseApp","name","path","program","app","sdk","projectConfig","getProjectConfig","pulumiResourceNamePrefix","getPulumiResourceNamePrefix","coreStackOutput","getAppStackOutput","vpcExtensionsConfig","opensearchExtensionConfig","deploymentId","RandomId","byteLength","searchEngineType","searchEngineParams","params","endpoint","process","env","OPENSEARCH_ENDPOINT","domainName","AWS_OS_DOMAIN_NAME","indexPrefix","OPENSEARCH_INDEX_PREFIX","sharedIndexes","OPENSEARCH_SHARED_INDEXES","username","OPENSEARCH_USERNAME","password","OPENSEARCH_PASSWORD","onResource","resource","startsWith","addHandler","usingAdvancedVpcParams","featureFlags","getFeatureFlags","isFileManagerThreatDetectionEnabled","resources","addResource","useExistingVpc","useVpcEndpoints","Error","openSearchDomainVpcConfig","opensearch","Domain","config","vpcOptions","lambdaFunctionsVpcConfig","lambda","Function","canUseVpc","meta","vpcConfig","iam","Role","isLambdaFunctionRole","RolePolicyAttachment","role","output","policyArn","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","region","ec2","Vpc","enableDnsSupport","enableDnsHostnames","vpc","subnets","routeTables","VpcEndpoint","vpcId","id","serviceName","interpolate","routeTableIds","privateSubnets","vpcEndpointType","privateDnsEnabled","securityGroupIds","defaultSecurityGroupId","subnetIds","private","map","subNet","getContainer","registerComposite","pulumiHandlers","resolve","execute","isProduction","protect","dynamoDbTable","addModule","auditLogsDynamoDbTable","vpcEnabled","cognito","useEmailAsUsername","eventBus","bucket","fileManagerBucket","prevDomainName","opensearchDomainName","isUpgradeFromOldCode","primaryDynamodbTableName","namePrefixForOs","namePrefix","hex","addOutputs","fileManagerBucketId","primaryDynamodbTableArn","arn","primaryDynamodbTableHashKey","hashKey","primaryDynamodbTableRangeKey","rangeKey","auditLogsDynamodbTableArn","auditLogsDynamodbTableName","auditLogsDynamodbTableHashKey","auditLogsDynamodbTableRangeKey","cognitoUserPoolId","userPool","cognitoUserPoolArn","cognitoUserPoolPasswordPolicy","passwordPolicy","cognitoAppClientId","userPoolClient","eventBusName","eventBusArn","manifests","dynamoTable","table","tableName","forEach","manifest","addServiceManifest","dynamodbTable"],"sources":["createCorePulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createPulumiApp, isResourceOfType } from \"@webiny/pulumi\";\nimport { CoreCognito } from \"./CoreCognito.js\";\nimport { CoreDynamo } from \"./CoreDynamo.js\";\nimport { OpenSearch } from \"./CoreOpenSearch.js\";\nimport { CoreEventBus } from \"./CoreEventBus.js\";\nimport { CoreFileManger } from \"./CoreFileManager.js\";\nimport { CoreVpc } from \"./CoreVpc.js\";\nimport { WatchCommand } from \"./WatchCommand.js\";\nimport { withServiceManifest } from \"~/pulumi/utils/withServiceManifest.js\";\nimport {\n addServiceManifestTableItem,\n type TableDefinition\n} from \"~/pulumi/utils/addServiceManifestTableItem.js\";\nimport * as random from \"@pulumi/random\";\n\nimport { getProjectSdk } from \"@webiny/project\";\nimport { CorePulumi } from \"~/abstractions/features/pulumi/index.js\";\nimport { corePulumi } from \"~/pulumi/features/CorePulumi/index.js\";\nimport { getOsConfigFromExtension } from \"~/pulumi/apps/extensions/getOsConfigFromExtension.js\";\nimport { getVpcConfigFromExtension } from \"~/pulumi/apps/extensions/getVpcConfigFromExtension.js\";\nimport { applyAwsResourceTags, getAwsRegion } from \"~/pulumi/apps/awsUtils.js\";\nimport { configureS3BucketMalwareProtection } from \"./configureS3BucketMalwareProtection.js\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport { CoreAuditLogsDynamo } from \"~/pulumi/index.js\";\n\nexport type CorePulumiApp = ReturnType<typeof createCorePulumiApp>;\n\nexport function createCorePulumiApp() {\n const baseApp = createPulumiApp({\n name: \"core\",\n path: \"apps/core\",\n program: async app => {\n const sdk = await getProjectSdk();\n const projectConfig = await sdk.getProjectConfig();\n\n const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();\n const coreStackOutput = await sdk.getAppStackOutput<{\n opensearchDomainName?: string;\n primaryDynamodbTableName?: string;\n }>(\"core\");\n const vpcExtensionsConfig = getVpcConfigFromExtension(projectConfig);\n const opensearchExtensionConfig = getOsConfigFromExtension(projectConfig);\n\n const deploymentId = new random.RandomId(\"deploymentId\", { byteLength: 8 });\n\n let searchEngineType: \"opensearch\" | null = null;\n let searchEngineParams: typeof opensearchExtensionConfig | null = null;\n\n if (opensearchExtensionConfig) {\n searchEngineParams = opensearchExtensionConfig;\n searchEngineType = \"opensearch\";\n }\n\n if (searchEngineParams) {\n const params = searchEngineParams;\n if (typeof params === \"object\") {\n if (params.endpoint) {\n process.env.OPENSEARCH_ENDPOINT = params.endpoint;\n }\n\n if (params.domainName) {\n process.env.AWS_OS_DOMAIN_NAME = params.domainName;\n }\n\n if (params.indexPrefix) {\n process.env.OPENSEARCH_INDEX_PREFIX = params.indexPrefix;\n }\n\n if (params.sharedIndexes) {\n process.env.OPENSEARCH_SHARED_INDEXES = \"true\";\n }\n\n if (params.username) {\n process.env.OPENSEARCH_USERNAME = params.username;\n }\n\n if (params.password) {\n process.env.OPENSEARCH_PASSWORD = params.password;\n }\n }\n }\n\n if (pulumiResourceNamePrefix) {\n app.onResource(resource => {\n if (!resource.name.startsWith(pulumiResourceNamePrefix)) {\n resource.name = `${pulumiResourceNamePrefix}${resource.name}`;\n }\n });\n }\n\n // <-------------------- Enterprise start -------------------->\n app.addHandler(async () => {\n const usingAdvancedVpcParams =\n vpcExtensionsConfig && typeof vpcExtensionsConfig !== \"boolean\";\n\n const featureFlags = await sdk.getFeatureFlags();\n if (featureFlags.isFileManagerThreatDetectionEnabled()) {\n configureS3BucketMalwareProtection(app as CorePulumiApp);\n }\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return;\n }\n\n const { resources, addResource, onResource } = app as CorePulumiApp;\n const { useExistingVpc, useVpcEndpoints } = vpcExtensionsConfig;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (\"useVpcEndpoints\" in vpcExtensionsConfig) {\n throw new Error(\n \"Cannot specify `useVpcEndpoints` parameter when using an existing VPC. The VPC endpoints configurations should be already defined within the existing VPC.\"\n );\n }\n\n if (opensearchExtensionConfig) {\n if (!useExistingVpc.openSearchDomainVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `openSearchDomainVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.opensearch.Domain)) {\n resource.config.vpcOptions(\n useExistingVpc!.openSearchDomainVpcConfig\n );\n }\n });\n }\n\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn:\n aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n\n return;\n }\n\n // 2. Now we deal with \"non-existing VPC\" setup.\n if (useVpcEndpoints) {\n const region = getAwsRegion(app);\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.ec2.Vpc)) {\n resource.config.enableDnsSupport(true);\n resource.config.enableDnsHostnames(true);\n }\n });\n\n const { vpc, subnets, routeTables } = resources.vpc!;\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-s3-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.s3`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-dynamodb-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.dynamodb`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-sqs-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.sqs`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-events-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.events`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n }\n });\n // <-------------------- Enterprise end -------------------->\n\n // Overrides must be applied via a handler, registered at the very start of the program.\n // By doing this, we're ensuring user's adjustments are not applied to late.\n sdk.getContainer().registerComposite(corePulumi);\n const pulumiHandlers = sdk.getContainer().resolve(CorePulumi);\n\n app.addHandler(() => {\n return pulumiHandlers.execute(app as CorePulumiApp);\n });\n\n const isProduction = app.env.isProduction;\n const protect = isProduction;\n\n // Setup DynamoDB table\n const dynamoDbTable = app.addModule(CoreDynamo, { protect });\n const auditLogsDynamoDbTable = app.addModule(CoreAuditLogsDynamo, { protect });\n\n // Setup VPC\n const vpcEnabled =\n vpcExtensionsConfig === true ||\n typeof vpcExtensionsConfig === \"object\" ||\n isProduction;\n\n const vpc = vpcEnabled ? app.addModule(CoreVpc) : null;\n\n // Setup Cognito\n const cognito = app.addModule(CoreCognito, {\n protect,\n useEmailAsUsername: false\n });\n\n // Setup event bus\n const eventBus = app.addModule(CoreEventBus);\n\n // Setup file core bucket\n const { bucket: fileManagerBucket } = app.addModule(CoreFileManger, { protect });\n\n let opensearch;\n if (searchEngineType === \"opensearch\") {\n const prevDomainName = coreStackOutput?.opensearchDomainName;\n\n // When upgrading from old code that never stored opensearchDomainName, the old\n // code always generated domain names without any prefix (app.params.create\n // .pulumiResourceNamePrefix was never a real Pulumi param, so it returned \"\").\n // Using the SDK default \"wby-\" prefix here would generate a different name and\n // cause Pulumi to destroy and recreate the cluster.\n const isUpgradeFromOldCode =\n !!coreStackOutput?.primaryDynamodbTableName && !prevDomainName;\n const namePrefixForOs = isUpgradeFromOldCode ? \"\" : pulumiResourceNamePrefix || \"\";\n\n opensearch = app.addModule(OpenSearch, {\n protect,\n namePrefix: namePrefixForOs,\n prevDomainName\n });\n }\n\n app.addModule(WatchCommand, { deploymentId: deploymentId.hex });\n\n app.addOutputs({\n deploymentId: deploymentId.hex,\n region: aws.config.region,\n fileManagerBucketId: fileManagerBucket.output.id,\n primaryDynamodbTableArn: dynamoDbTable.output.arn,\n primaryDynamodbTableName: dynamoDbTable.output.name,\n primaryDynamodbTableHashKey: dynamoDbTable.output.hashKey,\n primaryDynamodbTableRangeKey: dynamoDbTable.output.rangeKey,\n auditLogsDynamodbTableArn: auditLogsDynamoDbTable.output.arn,\n auditLogsDynamodbTableName: auditLogsDynamoDbTable.output.name,\n auditLogsDynamodbTableHashKey: auditLogsDynamoDbTable.output.hashKey,\n auditLogsDynamodbTableRangeKey: auditLogsDynamoDbTable.output.rangeKey,\n cognitoUserPoolId: cognito.userPool.output.id,\n cognitoUserPoolArn: cognito.userPool.output.arn,\n cognitoUserPoolPasswordPolicy: cognito.userPool.output.passwordPolicy,\n cognitoAppClientId: cognito.userPoolClient.output.id,\n eventBusName: eventBus.output.name,\n eventBusArn: eventBus.output.arn\n });\n\n // Applies internal and user-defined AWS tags.\n await applyAwsResourceTags(\"core\");\n\n return {\n dynamoDbTable,\n vpc,\n ...cognito,\n fileManagerBucket,\n eventBus,\n opensearch\n };\n }\n });\n\n const app = withServiceManifest(baseApp, manifests => {\n const dynamoTable = baseApp.resources.dynamoDbTable;\n\n const table: TableDefinition = {\n tableName: dynamoTable.output.name,\n hashKey: dynamoTable.output.hashKey,\n rangeKey: dynamoTable.output.rangeKey\n };\n\n manifests.forEach(manifest => addServiceManifestTableItem(baseApp, table, manifest));\n });\n\n app.addHandler(() => {\n app.addServiceManifest({\n name: \"core\",\n manifest: {\n eventBus: {\n arn: baseApp.resources.eventBus.output.arn,\n name: baseApp.resources.eventBus.output.name\n },\n dynamodbTable: {\n arn: baseApp.resources.dynamoDbTable.output.arn,\n name: baseApp.resources.dynamoDbTable.output.name,\n hashKey: baseApp.resources.dynamoDbTable.output.hashKey,\n rangeKey: baseApp.resources.dynamoDbTable.output.rangeKey\n }\n }\n });\n });\n\n return app;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"pulumi/apps/core/createCorePulumiApp.js","sources":["../../../../src/pulumi/apps/core/createCorePulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport { createPulumiApp, isResourceOfType } from \"@webiny/pulumi\";\nimport { CoreCognito } from \"./CoreCognito.js\";\nimport { CoreDynamo } from \"./CoreDynamo.js\";\nimport { OpenSearch } from \"./CoreOpenSearch.js\";\nimport { CoreEventBus } from \"./CoreEventBus.js\";\nimport { CoreFileManger } from \"./CoreFileManager.js\";\nimport { CoreVpc } from \"./CoreVpc.js\";\nimport { WatchCommand } from \"./WatchCommand.js\";\nimport { withServiceManifest } from \"~/pulumi/utils/withServiceManifest.js\";\nimport {\n addServiceManifestTableItem,\n type TableDefinition\n} from \"~/pulumi/utils/addServiceManifestTableItem.js\";\nimport * as random from \"@pulumi/random\";\n\nimport { getProjectSdk } from \"@webiny/project\";\nimport { CorePulumi } from \"~/abstractions/features/pulumi/index.js\";\nimport { corePulumi } from \"~/pulumi/features/CorePulumi/index.js\";\nimport { getOsConfigFromExtension } from \"~/pulumi/apps/extensions/getOsConfigFromExtension.js\";\nimport { getVpcConfigFromExtension } from \"~/pulumi/apps/extensions/getVpcConfigFromExtension.js\";\nimport { applyAwsResourceTags, getAwsRegion } from \"~/pulumi/apps/awsUtils.js\";\nimport { configureS3BucketMalwareProtection } from \"./configureS3BucketMalwareProtection.js\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport { CoreAuditLogsDynamo } from \"~/pulumi/index.js\";\n\nexport type CorePulumiApp = ReturnType<typeof createCorePulumiApp>;\n\nexport function createCorePulumiApp() {\n const baseApp = createPulumiApp({\n name: \"core\",\n path: \"apps/core\",\n program: async app => {\n const sdk = await getProjectSdk();\n const projectConfig = await sdk.getProjectConfig();\n\n const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();\n const coreStackOutput = await sdk.getAppStackOutput<{\n opensearchDomainName?: string;\n primaryDynamodbTableName?: string;\n }>(\"core\");\n const vpcExtensionsConfig = getVpcConfigFromExtension(projectConfig);\n const opensearchExtensionConfig = getOsConfigFromExtension(projectConfig);\n\n const deploymentId = new random.RandomId(\"deploymentId\", { byteLength: 8 });\n\n let searchEngineType: \"opensearch\" | null = null;\n let searchEngineParams: typeof opensearchExtensionConfig | null = null;\n\n if (opensearchExtensionConfig) {\n searchEngineParams = opensearchExtensionConfig;\n searchEngineType = \"opensearch\";\n }\n\n if (searchEngineParams) {\n const params = searchEngineParams;\n if (typeof params === \"object\") {\n if (params.endpoint) {\n process.env.OPENSEARCH_ENDPOINT = params.endpoint;\n }\n\n if (params.domainName) {\n process.env.AWS_OS_DOMAIN_NAME = params.domainName;\n }\n\n if (params.indexPrefix) {\n process.env.OPENSEARCH_INDEX_PREFIX = params.indexPrefix;\n }\n\n if (params.sharedIndexes) {\n process.env.OPENSEARCH_SHARED_INDEXES = \"true\";\n }\n\n if (params.username) {\n process.env.OPENSEARCH_USERNAME = params.username;\n }\n\n if (params.password) {\n process.env.OPENSEARCH_PASSWORD = params.password;\n }\n }\n }\n\n if (pulumiResourceNamePrefix) {\n app.onResource(resource => {\n if (!resource.name.startsWith(pulumiResourceNamePrefix)) {\n resource.name = `${pulumiResourceNamePrefix}${resource.name}`;\n }\n });\n }\n\n // <-------------------- Enterprise start -------------------->\n app.addHandler(async () => {\n const usingAdvancedVpcParams =\n vpcExtensionsConfig && typeof vpcExtensionsConfig !== \"boolean\";\n\n const featureFlags = await sdk.getFeatureFlags();\n if (featureFlags.isFileManagerThreatDetectionEnabled()) {\n configureS3BucketMalwareProtection(app as CorePulumiApp);\n }\n\n // Not using advanced VPC params? Then immediately exit.\n if (!usingAdvancedVpcParams) {\n return;\n }\n\n const { resources, addResource, onResource } = app as CorePulumiApp;\n const { useExistingVpc, useVpcEndpoints } = vpcExtensionsConfig;\n\n // 1. We first deal with \"existing VPC\" setup.\n if (useExistingVpc) {\n if (\"useVpcEndpoints\" in vpcExtensionsConfig) {\n throw new Error(\n \"Cannot specify `useVpcEndpoints` parameter when using an existing VPC. The VPC endpoints configurations should be already defined within the existing VPC.\"\n );\n }\n\n if (opensearchExtensionConfig) {\n if (!useExistingVpc.openSearchDomainVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `openSearchDomainVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.opensearch.Domain)) {\n resource.config.vpcOptions(\n useExistingVpc!.openSearchDomainVpcConfig\n );\n }\n });\n }\n\n if (!useExistingVpc.lambdaFunctionsVpcConfig) {\n throw new Error(\n \"Cannot specify `useExistingVpc` parameter because the `lambdaFunctionsVpcConfig` parameter wasn't provided.\"\n );\n }\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.lambda.Function)) {\n const canUseVpc = resource.meta.canUseVpc !== false;\n if (canUseVpc) {\n resource.config.vpcConfig(useExistingVpc!.lambdaFunctionsVpcConfig);\n }\n }\n\n if (isResourceOfType(resource, aws.iam.Role)) {\n if (resource.meta.isLambdaFunctionRole) {\n addResource(aws.iam.RolePolicyAttachment, {\n name: `${resource.name}-vpc-access-execution-role`,\n config: {\n role: resource.output.name,\n policyArn:\n aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n }\n });\n }\n }\n });\n\n return;\n }\n\n // 2. Now we deal with \"non-existing VPC\" setup.\n if (useVpcEndpoints) {\n const region = getAwsRegion(app);\n\n onResource(resource => {\n if (isResourceOfType(resource, aws.ec2.Vpc)) {\n resource.config.enableDnsSupport(true);\n resource.config.enableDnsHostnames(true);\n }\n });\n\n const { vpc, subnets, routeTables } = resources.vpc!;\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-s3-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.s3`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-dynamodb-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.dynamodb`,\n routeTableIds: [routeTables.privateSubnets.output.id]\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-sqs-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.sqs`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n\n addResource(aws.ec2.VpcEndpoint, {\n name: \"vpc-events-vpc-endpoint\",\n config: {\n vpcId: vpc.output.id,\n serviceName: pulumi.interpolate`com.amazonaws.${region}.events`,\n vpcEndpointType: \"Interface\",\n privateDnsEnabled: true,\n securityGroupIds: [vpc.output.defaultSecurityGroupId],\n subnetIds: subnets.private.map(subNet => subNet.output.id)\n }\n });\n }\n });\n // <-------------------- Enterprise end -------------------->\n\n // Overrides must be applied via a handler, registered at the very start of the program.\n // By doing this, we're ensuring user's adjustments are not applied to late.\n sdk.getContainer().registerComposite(corePulumi);\n const pulumiHandlers = sdk.getContainer().resolve(CorePulumi);\n\n app.addHandler(() => {\n return pulumiHandlers.execute(app as CorePulumiApp);\n });\n\n const isProduction = app.env.isProduction;\n const protect = isProduction;\n\n // Setup DynamoDB table\n const dynamoDbTable = app.addModule(CoreDynamo, { protect });\n const auditLogsDynamoDbTable = app.addModule(CoreAuditLogsDynamo, { protect });\n\n // Setup VPC\n const vpcEnabled =\n vpcExtensionsConfig === true ||\n typeof vpcExtensionsConfig === \"object\" ||\n isProduction;\n\n const vpc = vpcEnabled ? app.addModule(CoreVpc) : null;\n\n // Setup Cognito\n const cognito = app.addModule(CoreCognito, {\n protect,\n useEmailAsUsername: false\n });\n\n // Setup event bus\n const eventBus = app.addModule(CoreEventBus);\n\n // Setup file core bucket\n const { bucket: fileManagerBucket } = app.addModule(CoreFileManger, { protect });\n\n let opensearch;\n if (searchEngineType === \"opensearch\") {\n const prevDomainName = coreStackOutput?.opensearchDomainName;\n\n // When upgrading from old code that never stored opensearchDomainName, the old\n // code always generated domain names without any prefix (app.params.create\n // .pulumiResourceNamePrefix was never a real Pulumi param, so it returned \"\").\n // Using the SDK default \"wby-\" prefix here would generate a different name and\n // cause Pulumi to destroy and recreate the cluster.\n const isUpgradeFromOldCode =\n !!coreStackOutput?.primaryDynamodbTableName && !prevDomainName;\n const namePrefixForOs = isUpgradeFromOldCode ? \"\" : pulumiResourceNamePrefix || \"\";\n\n opensearch = app.addModule(OpenSearch, {\n protect,\n namePrefix: namePrefixForOs,\n prevDomainName\n });\n }\n\n app.addModule(WatchCommand, { deploymentId: deploymentId.hex });\n\n app.addOutputs({\n deploymentId: deploymentId.hex,\n region: aws.config.region,\n fileManagerBucketId: fileManagerBucket.output.id,\n primaryDynamodbTableArn: dynamoDbTable.output.arn,\n primaryDynamodbTableName: dynamoDbTable.output.name,\n primaryDynamodbTableHashKey: dynamoDbTable.output.hashKey,\n primaryDynamodbTableRangeKey: dynamoDbTable.output.rangeKey,\n auditLogsDynamodbTableArn: auditLogsDynamoDbTable.output.arn,\n auditLogsDynamodbTableName: auditLogsDynamoDbTable.output.name,\n auditLogsDynamodbTableHashKey: auditLogsDynamoDbTable.output.hashKey,\n auditLogsDynamodbTableRangeKey: auditLogsDynamoDbTable.output.rangeKey,\n cognitoUserPoolId: cognito.userPool.output.id,\n cognitoUserPoolArn: cognito.userPool.output.arn,\n cognitoUserPoolPasswordPolicy: cognito.userPool.output.passwordPolicy,\n cognitoAppClientId: cognito.userPoolClient.output.id,\n eventBusName: eventBus.output.name,\n eventBusArn: eventBus.output.arn\n });\n\n // Applies internal and user-defined AWS tags.\n await applyAwsResourceTags(\"core\");\n\n return {\n dynamoDbTable,\n vpc,\n ...cognito,\n fileManagerBucket,\n eventBus,\n opensearch\n };\n }\n });\n\n const app = withServiceManifest(baseApp, manifests => {\n const dynamoTable = baseApp.resources.dynamoDbTable;\n\n const table: TableDefinition = {\n tableName: dynamoTable.output.name,\n hashKey: dynamoTable.output.hashKey,\n rangeKey: dynamoTable.output.rangeKey\n };\n\n manifests.forEach(manifest => addServiceManifestTableItem(baseApp, table, manifest));\n });\n\n app.addHandler(() => {\n app.addServiceManifest({\n name: \"core\",\n manifest: {\n eventBus: {\n arn: baseApp.resources.eventBus.output.arn,\n name: baseApp.resources.eventBus.output.name\n },\n dynamodbTable: {\n arn: baseApp.resources.dynamoDbTable.output.arn,\n name: baseApp.resources.dynamoDbTable.output.name,\n hashKey: baseApp.resources.dynamoDbTable.output.hashKey,\n rangeKey: baseApp.resources.dynamoDbTable.output.rangeKey\n }\n }\n });\n });\n\n return app;\n}\n"],"names":["createCorePulumiApp","baseApp","createPulumiApp","app","sdk","getProjectSdk","projectConfig","pulumiResourceNamePrefix","coreStackOutput","vpcExtensionsConfig","getVpcConfigFromExtension","opensearchExtensionConfig","getOsConfigFromExtension","deploymentId","random","searchEngineType","searchEngineParams","params","process","resource","usingAdvancedVpcParams","featureFlags","configureS3BucketMalwareProtection","resources","addResource","onResource","useExistingVpc","useVpcEndpoints","Error","isResourceOfType","aws","canUseVpc","region","getAwsRegion","vpc","subnets","routeTables","pulumi","subNet","corePulumi","pulumiHandlers","CorePulumi","isProduction","protect","dynamoDbTable","CoreDynamo","auditLogsDynamoDbTable","CoreAuditLogsDynamo","vpcEnabled","CoreVpc","cognito","CoreCognito","eventBus","CoreEventBus","fileManagerBucket","CoreFileManger","opensearch","prevDomainName","isUpgradeFromOldCode","namePrefixForOs","OpenSearch","WatchCommand","applyAwsResourceTags","withServiceManifest","manifests","dynamoTable","table","manifest","addServiceManifestTableItem"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA4BO,SAASA;IACZ,MAAMC,UAAUC,gBAAgB;QAC5B,MAAM;QACN,MAAM;QACN,SAAS,OAAMC;YACX,MAAMC,MAAM,MAAMC;YAClB,MAAMC,gBAAgB,MAAMF,IAAI,gBAAgB;YAEhD,MAAMG,2BAA2B,MAAMH,IAAI,2BAA2B;YACtE,MAAMI,kBAAkB,MAAMJ,IAAI,iBAAiB,CAGhD;YACH,MAAMK,sBAAsBC,0BAA0BJ;YACtD,MAAMK,4BAA4BC,yBAAyBN;YAE3D,MAAMO,eAAe,IAAIC,0CAAAA,QAAe,CAAC,gBAAgB;gBAAE,YAAY;YAAE;YAEzE,IAAIC,mBAAwC;YAC5C,IAAIC,qBAA8D;YAElE,IAAIL,2BAA2B;gBAC3BK,qBAAqBL;gBACrBI,mBAAmB;YACvB;YAEA,IAAIC,oBAAoB;gBACpB,MAAMC,SAASD;gBACf,IAAI,AAAkB,YAAlB,OAAOC,QAAqB;oBAC5B,IAAIA,OAAO,QAAQ,EACfC,QAAQ,GAAG,CAAC,mBAAmB,GAAGD,OAAO,QAAQ;oBAGrD,IAAIA,OAAO,UAAU,EACjBC,QAAQ,GAAG,CAAC,kBAAkB,GAAGD,OAAO,UAAU;oBAGtD,IAAIA,OAAO,WAAW,EAClBC,QAAQ,GAAG,CAAC,uBAAuB,GAAGD,OAAO,WAAW;oBAG5D,IAAIA,OAAO,aAAa,EACpBC,QAAQ,GAAG,CAAC,yBAAyB,GAAG;oBAG5C,IAAID,OAAO,QAAQ,EACfC,QAAQ,GAAG,CAAC,mBAAmB,GAAGD,OAAO,QAAQ;oBAGrD,IAAIA,OAAO,QAAQ,EACfC,QAAQ,GAAG,CAAC,mBAAmB,GAAGD,OAAO,QAAQ;gBAEzD;YACJ;YAEA,IAAIV,0BACAJ,IAAI,UAAU,CAACgB,CAAAA;gBACX,IAAI,CAACA,SAAS,IAAI,CAAC,UAAU,CAACZ,2BAC1BY,SAAS,IAAI,GAAG,GAAGZ,2BAA2BY,SAAS,IAAI,EAAE;YAErE;YAIJhB,IAAI,UAAU,CAAC;gBACX,MAAMiB,yBACFX,uBAAuB,AAA+B,aAA/B,OAAOA;gBAElC,MAAMY,eAAe,MAAMjB,IAAI,eAAe;gBAC9C,IAAIiB,aAAa,mCAAmC,IAChDC,mCAAmCnB;gBAIvC,IAAI,CAACiB,wBACD;gBAGJ,MAAM,EAAEG,SAAS,EAAEC,WAAW,EAAEC,UAAU,EAAE,GAAGtB;gBAC/C,MAAM,EAAEuB,cAAc,EAAEC,eAAe,EAAE,GAAGlB;gBAG5C,IAAIiB,gBAAgB;oBAChB,IAAI,qBAAqBjB,qBACrB,MAAM,IAAImB,MACN;oBAIR,IAAIjB,2BAA2B;wBAC3B,IAAI,CAACe,eAAe,yBAAyB,EACzC,MAAM,IAAIE,MACN;wBAIRH,WAAWN,CAAAA;4BACP,IAAIU,iBAAiBV,UAAUW,uCAAAA,UAAAA,CAAAA,MAAqB,GAChDX,SAAS,MAAM,CAAC,UAAU,CACtBO,eAAgB,yBAAyB;wBAGrD;oBACJ;oBAEA,IAAI,CAACA,eAAe,wBAAwB,EACxC,MAAM,IAAIE,MACN;oBAIRH,WAAWN,CAAAA;wBACP,IAAIU,iBAAiBV,UAAUW,uCAAAA,MAAAA,CAAAA,QAAmB,GAAG;4BACjD,MAAMC,YAAYZ,AAA4B,UAA5BA,SAAS,IAAI,CAAC,SAAS;4BACzC,IAAIY,WACAZ,SAAS,MAAM,CAAC,SAAS,CAACO,eAAgB,wBAAwB;wBAE1E;wBAEA,IAAIG,iBAAiBV,UAAUW,uCAAAA,GAAAA,CAAAA,IAAY,GACvC;4BAAA,IAAIX,SAAS,IAAI,CAAC,oBAAoB,EAClCK,YAAYM,uCAAAA,GAAAA,CAAAA,oBAA4B,EAAE;gCACtC,MAAM,GAAGX,SAAS,IAAI,CAAC,0BAA0B,CAAC;gCAClD,QAAQ;oCACJ,MAAMA,SAAS,MAAM,CAAC,IAAI;oCAC1B,WACIW,uCAAAA,GAAAA,CAAAA,aAAAA,CAAAA,+BAAqD;gCAC7D;4BACJ;wBACJ;oBAER;oBAEA;gBACJ;gBAGA,IAAIH,iBAAiB;oBACjB,MAAMK,SAASC,aAAa9B;oBAE5BsB,WAAWN,CAAAA;wBACP,IAAIU,iBAAiBV,UAAUW,uCAAAA,GAAAA,CAAAA,GAAW,GAAG;4BACzCX,SAAS,MAAM,CAAC,gBAAgB,CAAC;4BACjCA,SAAS,MAAM,CAAC,kBAAkB,CAAC;wBACvC;oBACJ;oBAEA,MAAM,EAAEe,GAAG,EAAEC,OAAO,EAAEC,WAAW,EAAE,GAAGb,UAAU,GAAG;oBACnDC,YAAYM,uCAAAA,GAAAA,CAAAA,WAAmB,EAAE;wBAC7B,MAAM;wBACN,QAAQ;4BACJ,OAAOI,IAAI,MAAM,CAAC,EAAE;4BACpB,aAAaG,0CAAAA,WAAkB,CAAC,cAAc,EAAEL,OAAO,GAAG,CAAC;4BAC3D,eAAe;gCAACI,YAAY,cAAc,CAAC,MAAM,CAAC,EAAE;6BAAC;wBACzD;oBACJ;oBAEAZ,YAAYM,uCAAAA,GAAAA,CAAAA,WAAmB,EAAE;wBAC7B,MAAM;wBACN,QAAQ;4BACJ,OAAOI,IAAI,MAAM,CAAC,EAAE;4BACpB,aAAaG,0CAAAA,WAAkB,CAAC,cAAc,EAAEL,OAAO,SAAS,CAAC;4BACjE,eAAe;gCAACI,YAAY,cAAc,CAAC,MAAM,CAAC,EAAE;6BAAC;wBACzD;oBACJ;oBAEAZ,YAAYM,uCAAAA,GAAAA,CAAAA,WAAmB,EAAE;wBAC7B,MAAM;wBACN,QAAQ;4BACJ,OAAOI,IAAI,MAAM,CAAC,EAAE;4BACpB,aAAaG,0CAAAA,WAAkB,CAAC,cAAc,EAAEL,OAAO,IAAI,CAAC;4BAC5D,iBAAiB;4BACjB,mBAAmB;4BACnB,kBAAkB;gCAACE,IAAI,MAAM,CAAC,sBAAsB;6BAAC;4BACrD,WAAWC,QAAQ,OAAO,CAAC,GAAG,CAACG,CAAAA,SAAUA,OAAO,MAAM,CAAC,EAAE;wBAC7D;oBACJ;oBAEAd,YAAYM,uCAAAA,GAAAA,CAAAA,WAAmB,EAAE;wBAC7B,MAAM;wBACN,QAAQ;4BACJ,OAAOI,IAAI,MAAM,CAAC,EAAE;4BACpB,aAAaG,0CAAAA,WAAkB,CAAC,cAAc,EAAEL,OAAO,OAAO,CAAC;4BAC/D,iBAAiB;4BACjB,mBAAmB;4BACnB,kBAAkB;gCAACE,IAAI,MAAM,CAAC,sBAAsB;6BAAC;4BACrD,WAAWC,QAAQ,OAAO,CAAC,GAAG,CAACG,CAAAA,SAAUA,OAAO,MAAM,CAAC,EAAE;wBAC7D;oBACJ;gBACJ;YACJ;YAKAlC,IAAI,YAAY,GAAG,iBAAiB,CAACmC;YACrC,MAAMC,iBAAiBpC,IAAI,YAAY,GAAG,OAAO,CAACqC;YAElDtC,IAAI,UAAU,CAAC,IACJqC,eAAe,OAAO,CAACrC;YAGlC,MAAMuC,eAAevC,IAAI,GAAG,CAAC,YAAY;YACzC,MAAMwC,UAAUD;YAGhB,MAAME,gBAAgBzC,IAAI,SAAS,CAAC0C,YAAY;gBAAEF;YAAQ;YAC1D,MAAMG,yBAAyB3C,IAAI,SAAS,CAAC4C,qBAAqB;gBAAEJ;YAAQ;YAG5E,MAAMK,aACFvC,AAAwB,SAAxBA,uBACA,AAA+B,YAA/B,OAAOA,uBACPiC;YAEJ,MAAMR,MAAMc,aAAa7C,IAAI,SAAS,CAAC8C,WAAW;YAGlD,MAAMC,UAAU/C,IAAI,SAAS,CAACgD,aAAa;gBACvCR;gBACA,oBAAoB;YACxB;YAGA,MAAMS,WAAWjD,IAAI,SAAS,CAACkD;YAG/B,MAAM,EAAE,QAAQC,iBAAiB,EAAE,GAAGnD,IAAI,SAAS,CAACoD,gBAAgB;gBAAEZ;YAAQ;YAE9E,IAAIa;YACJ,IAAIzC,AAAqB,iBAArBA,kBAAmC;gBACnC,MAAM0C,iBAAiBjD,iBAAiB;gBAOxC,MAAMkD,uBACF,CAAC,CAAClD,iBAAiB,4BAA4B,CAACiD;gBACpD,MAAME,kBAAkBD,uBAAuB,KAAKnD,4BAA4B;gBAEhFiD,aAAarD,IAAI,SAAS,CAACyD,YAAY;oBACnCjB;oBACA,YAAYgB;oBACZF;gBACJ;YACJ;YAEAtD,IAAI,SAAS,CAAC0D,cAAc;gBAAE,cAAchD,aAAa,GAAG;YAAC;YAE7DV,IAAI,UAAU,CAAC;gBACX,cAAcU,aAAa,GAAG;gBAC9B,QAAQiB,uCAAAA,MAAAA,CAAAA,MAAiB;gBACzB,qBAAqBwB,kBAAkB,MAAM,CAAC,EAAE;gBAChD,yBAAyBV,cAAc,MAAM,CAAC,GAAG;gBACjD,0BAA0BA,cAAc,MAAM,CAAC,IAAI;gBACnD,6BAA6BA,cAAc,MAAM,CAAC,OAAO;gBACzD,8BAA8BA,cAAc,MAAM,CAAC,QAAQ;gBAC3D,2BAA2BE,uBAAuB,MAAM,CAAC,GAAG;gBAC5D,4BAA4BA,uBAAuB,MAAM,CAAC,IAAI;gBAC9D,+BAA+BA,uBAAuB,MAAM,CAAC,OAAO;gBACpE,gCAAgCA,uBAAuB,MAAM,CAAC,QAAQ;gBACtE,mBAAmBI,QAAQ,QAAQ,CAAC,MAAM,CAAC,EAAE;gBAC7C,oBAAoBA,QAAQ,QAAQ,CAAC,MAAM,CAAC,GAAG;gBAC/C,+BAA+BA,QAAQ,QAAQ,CAAC,MAAM,CAAC,cAAc;gBACrE,oBAAoBA,QAAQ,cAAc,CAAC,MAAM,CAAC,EAAE;gBACpD,cAAcE,SAAS,MAAM,CAAC,IAAI;gBAClC,aAAaA,SAAS,MAAM,CAAC,GAAG;YACpC;YAGA,MAAMU,qBAAqB;YAE3B,OAAO;gBACHlB;gBACAV;gBACA,GAAGgB,OAAO;gBACVI;gBACAF;gBACAI;YACJ;QACJ;IACJ;IAEA,MAAMrD,MAAM4D,oBAAoB9D,SAAS+D,CAAAA;QACrC,MAAMC,cAAchE,QAAQ,SAAS,CAAC,aAAa;QAEnD,MAAMiE,QAAyB;YAC3B,WAAWD,YAAY,MAAM,CAAC,IAAI;YAClC,SAASA,YAAY,MAAM,CAAC,OAAO;YACnC,UAAUA,YAAY,MAAM,CAAC,QAAQ;QACzC;QAEAD,UAAU,OAAO,CAACG,CAAAA,WAAYC,4BAA4BnE,SAASiE,OAAOC;IAC9E;IAEAhE,IAAI,UAAU,CAAC;QACXA,IAAI,kBAAkB,CAAC;YACnB,MAAM;YACN,UAAU;gBACN,UAAU;oBACN,KAAKF,QAAQ,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG;oBAC1C,MAAMA,QAAQ,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;gBAChD;gBACA,eAAe;oBACX,KAAKA,QAAQ,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG;oBAC/C,MAAMA,QAAQ,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI;oBACjD,SAASA,QAAQ,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,OAAO;oBACvD,UAAUA,QAAQ,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ;gBAC7D;YACJ;QACJ;IACJ;IAEA,OAAOE;AACX"}
@@ -6,5 +6,3 @@ export * from "./CoreVpc.js";
6
6
  export * from "./cognitoIdentityProviders/index.js";
7
7
  export * from "./createCorePulumiApp.js";
8
8
  export * from "./CoreAuditLogsDynamo.js";
9
-
10
- //# sourceMappingURL=index.js.map