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

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 +14 -14
  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,29 +1,17 @@
1
- import { Vpc as vpcExt } from "../../extensions/Vpc.js";
2
- export const getVpcConfigFromExtension = projectConfig => {
3
- const [vpcExtension] = projectConfig.extensionsByType(vpcExt);
4
- if (!vpcExtension) {
5
- // VPC automatically used with production environments.
6
- return undefined;
7
- }
8
- const {
9
- enabled,
10
- useVpcEndpoints,
11
- useExistingVpc
12
- } = vpcExtension.params;
13
- if (enabled === false) {
14
- return false;
15
- }
16
- if (useVpcEndpoints || useExistingVpc) {
17
- const vpc = {};
18
- if (useVpcEndpoints) {
19
- vpc.useVpcEndpoints = useVpcEndpoints;
1
+ import { Vpc } from "../../extensions/Vpc.js";
2
+ const getVpcConfigFromExtension = (projectConfig)=>{
3
+ const [vpcExtension] = projectConfig.extensionsByType(Vpc);
4
+ if (!vpcExtension) return;
5
+ const { enabled, useVpcEndpoints, useExistingVpc } = vpcExtension.params;
6
+ if (false === enabled) return false;
7
+ if (useVpcEndpoints || useExistingVpc) {
8
+ const vpc = {};
9
+ if (useVpcEndpoints) vpc.useVpcEndpoints = useVpcEndpoints;
10
+ if (useExistingVpc) vpc.useExistingVpc = useExistingVpc;
11
+ return vpc;
20
12
  }
21
- if (useExistingVpc) {
22
- vpc.useExistingVpc = useExistingVpc;
23
- }
24
- return vpc;
25
- }
26
- return true;
13
+ return true;
27
14
  };
15
+ export { getVpcConfigFromExtension };
28
16
 
29
17
  //# sourceMappingURL=getVpcConfigFromExtension.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Vpc","vpcExt","getVpcConfigFromExtension","projectConfig","vpcExtension","extensionsByType","undefined","enabled","useVpcEndpoints","useExistingVpc","params","vpc"],"sources":["getVpcConfigFromExtension.ts"],"sourcesContent":["import { Vpc as vpcExt } from \"~/pulumi/extensions/Vpc.js\";\nimport { type IProjectConfigModel } from \"@webiny/project/abstractions/models/index.js\";\n\nexport const getVpcConfigFromExtension = (projectConfig: IProjectConfigModel) => {\n const [vpcExtension] = projectConfig.extensionsByType(vpcExt);\n if (!vpcExtension) {\n // VPC automatically used with production environments.\n return undefined;\n }\n\n const { enabled, useVpcEndpoints, useExistingVpc } = vpcExtension.params;\n if (enabled === false) {\n return false;\n }\n\n if (useVpcEndpoints || useExistingVpc) {\n const vpc: Omit<typeof vpcExtension.params, \"enabled\"> = {};\n\n if (useVpcEndpoints) {\n vpc.useVpcEndpoints = useVpcEndpoints;\n }\n\n if (useExistingVpc) {\n vpc.useExistingVpc = useExistingVpc;\n }\n\n return vpc;\n }\n\n return true;\n};\n"],"mappings":"AAAA,SAASA,GAAG,IAAIC,MAAM;AAGtB,OAAO,MAAMC,yBAAyB,GAAIC,aAAkC,IAAK;EAC7E,MAAM,CAACC,YAAY,CAAC,GAAGD,aAAa,CAACE,gBAAgB,CAACJ,MAAM,CAAC;EAC7D,IAAI,CAACG,YAAY,EAAE;IACf;IACA,OAAOE,SAAS;EACpB;EAEA,MAAM;IAAEC,OAAO;IAAEC,eAAe;IAAEC;EAAe,CAAC,GAAGL,YAAY,CAACM,MAAM;EACxE,IAAIH,OAAO,KAAK,KAAK,EAAE;IACnB,OAAO,KAAK;EAChB;EAEA,IAAIC,eAAe,IAAIC,cAAc,EAAE;IACnC,MAAME,GAAgD,GAAG,CAAC,CAAC;IAE3D,IAAIH,eAAe,EAAE;MACjBG,GAAG,CAACH,eAAe,GAAGA,eAAe;IACzC;IAEA,IAAIC,cAAc,EAAE;MAChBE,GAAG,CAACF,cAAc,GAAGA,cAAc;IACvC;IAEA,OAAOE,GAAG;EACd;EAEA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"pulumi/apps/extensions/getVpcConfigFromExtension.js","sources":["../../../../src/pulumi/apps/extensions/getVpcConfigFromExtension.ts"],"sourcesContent":["import { Vpc as vpcExt } from \"~/pulumi/extensions/Vpc.js\";\nimport { type IProjectConfigModel } from \"@webiny/project/abstractions/models/index.js\";\n\nexport const getVpcConfigFromExtension = (projectConfig: IProjectConfigModel) => {\n const [vpcExtension] = projectConfig.extensionsByType(vpcExt);\n if (!vpcExtension) {\n // VPC automatically used with production environments.\n return undefined;\n }\n\n const { enabled, useVpcEndpoints, useExistingVpc } = vpcExtension.params;\n if (enabled === false) {\n return false;\n }\n\n if (useVpcEndpoints || useExistingVpc) {\n const vpc: Omit<typeof vpcExtension.params, \"enabled\"> = {};\n\n if (useVpcEndpoints) {\n vpc.useVpcEndpoints = useVpcEndpoints;\n }\n\n if (useExistingVpc) {\n vpc.useExistingVpc = useExistingVpc;\n }\n\n return vpc;\n }\n\n return true;\n};\n"],"names":["getVpcConfigFromExtension","projectConfig","vpcExtension","vpcExt","enabled","useVpcEndpoints","useExistingVpc","vpc"],"mappings":";AAGO,MAAMA,4BAA4B,CAACC;IACtC,MAAM,CAACC,aAAa,GAAGD,cAAc,gBAAgB,CAACE;IACtD,IAAI,CAACD,cAED;IAGJ,MAAM,EAAEE,OAAO,EAAEC,eAAe,EAAEC,cAAc,EAAE,GAAGJ,aAAa,MAAM;IACxE,IAAIE,AAAY,UAAZA,SACA,OAAO;IAGX,IAAIC,mBAAmBC,gBAAgB;QACnC,MAAMC,MAAmD,CAAC;QAE1D,IAAIF,iBACAE,IAAI,eAAe,GAAGF;QAG1B,IAAIC,gBACAC,IAAI,cAAc,GAAGD;QAGzB,OAAOC;IACX;IAEA,OAAO;AACX"}
@@ -3,6 +3,3 @@ export * from "./common/index.js";
3
3
  export * from "./api/index.js";
4
4
  export * from "./react/index.js";
5
5
  export * from "./admin/index.js";
6
- export {};
7
-
8
- //# sourceMappingURL=index.js.map
@@ -1,70 +1,66 @@
1
- import * as aws from "@pulumi/aws";
2
1
  import { VpcConfig } from "./common/index.js";
3
2
  export * from "../utils/lambdaEnvVariables.js";
4
- const createLambdaRoleWithoutExecution = (app, params) => {
5
- const role = app.addResource(aws.iam.Role, {
6
- name: params.name,
7
- config: {
8
- assumeRolePolicy: {
9
- Version: "2012-10-17",
10
- Statement: [{
11
- Action: "sts:AssumeRole",
12
- Principal: {
13
- Service: "lambda.amazonaws.com"
14
- },
15
- Effect: "Allow"
16
- }]
17
- }
18
- },
19
- meta: {
20
- isLambdaFunctionRole: true
21
- }
22
- });
23
- if (params.policy) {
24
- app.addResource(aws.iam.RolePolicyAttachment, {
25
- name: `${params.name}-policy`,
26
- config: {
27
- role: role.output,
28
- policyArn: params.policy.arn
29
- }
3
+ import * as __rspack_external__pulumi_aws_e7af83c1 from "@pulumi/aws";
4
+ const createLambdaRoleWithoutExecution = (app, params)=>{
5
+ const role = app.addResource(__rspack_external__pulumi_aws_e7af83c1.iam.Role, {
6
+ name: params.name,
7
+ config: {
8
+ assumeRolePolicy: {
9
+ Version: "2012-10-17",
10
+ Statement: [
11
+ {
12
+ Action: "sts:AssumeRole",
13
+ Principal: {
14
+ Service: "lambda.amazonaws.com"
15
+ },
16
+ Effect: "Allow"
17
+ }
18
+ ]
19
+ }
20
+ },
21
+ meta: {
22
+ isLambdaFunctionRole: true
23
+ }
30
24
  });
31
- }
32
- if (params.executionRole) {
33
- // If execution role is set, use it.
34
- app.addResource(aws.iam.RolePolicyAttachment, {
35
- name: `${params.name}-execution-role`,
36
- config: {
37
- role: role.output,
38
- policyArn: params.executionRole
39
- }
25
+ if (params.policy) app.addResource(__rspack_external__pulumi_aws_e7af83c1.iam.RolePolicyAttachment, {
26
+ name: `${params.name}-policy`,
27
+ config: {
28
+ role: role.output,
29
+ policyArn: params.policy.arn
30
+ }
40
31
  });
41
- }
42
- return role;
32
+ if (params.executionRole) app.addResource(__rspack_external__pulumi_aws_e7af83c1.iam.RolePolicyAttachment, {
33
+ name: `${params.name}-execution-role`,
34
+ config: {
35
+ role: role.output,
36
+ policyArn: params.executionRole
37
+ }
38
+ });
39
+ return role;
43
40
  };
44
- export function createLambdaRole(app, params) {
45
- const role = createLambdaRoleWithoutExecution(app, params);
46
-
47
- // Add default execution role.
48
- const vpc = app.getModule(VpcConfig);
49
- app.addResource(aws.iam.RolePolicyAttachment, {
50
- name: `${params.name}-default-execution-role`,
51
- config: {
52
- role: role.output,
53
- policyArn: vpc.enabled.apply(enabled => enabled ? aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole : aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole)
54
- }
55
- });
56
- return role;
41
+ function createLambdaRole(app, params) {
42
+ const role = createLambdaRoleWithoutExecution(app, params);
43
+ const vpc = app.getModule(VpcConfig);
44
+ app.addResource(__rspack_external__pulumi_aws_e7af83c1.iam.RolePolicyAttachment, {
45
+ name: `${params.name}-default-execution-role`,
46
+ config: {
47
+ role: role.output,
48
+ policyArn: vpc.enabled.apply((enabled)=>enabled ? __rspack_external__pulumi_aws_e7af83c1.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole : __rspack_external__pulumi_aws_e7af83c1.iam.ManagedPolicy.AWSLambdaBasicExecutionRole)
49
+ }
50
+ });
51
+ return role;
57
52
  }
58
- export const createLambdaRoleWithoutVpc = (app, params) => {
59
- const role = createLambdaRoleWithoutExecution(app, params);
60
- app.addResource(aws.iam.RolePolicyAttachment, {
61
- name: `${params.name}-default-execution-role`,
62
- config: {
63
- role: role.output,
64
- policyArn: aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole
65
- }
66
- });
67
- return role;
53
+ const createLambdaRoleWithoutVpc = (app, params)=>{
54
+ const role = createLambdaRoleWithoutExecution(app, params);
55
+ app.addResource(__rspack_external__pulumi_aws_e7af83c1.iam.RolePolicyAttachment, {
56
+ name: `${params.name}-default-execution-role`,
57
+ config: {
58
+ role: role.output,
59
+ policyArn: __rspack_external__pulumi_aws_e7af83c1.iam.ManagedPolicy.AWSLambdaBasicExecutionRole
60
+ }
61
+ });
62
+ return role;
68
63
  };
64
+ export { createLambdaRole, createLambdaRoleWithoutVpc };
69
65
 
70
66
  //# sourceMappingURL=lambdaUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["aws","VpcConfig","createLambdaRoleWithoutExecution","app","params","role","addResource","iam","Role","name","config","assumeRolePolicy","Version","Statement","Action","Principal","Service","Effect","meta","isLambdaFunctionRole","policy","RolePolicyAttachment","output","policyArn","arn","executionRole","createLambdaRole","vpc","getModule","enabled","apply","ManagedPolicy","AWSLambdaVPCAccessExecutionRole","AWSLambdaBasicExecutionRole","createLambdaRoleWithoutVpc"],"sources":["lambdaUtils.ts"],"sourcesContent":["import type * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\nimport { VpcConfig } from \"./common/index.js\";\n\nexport * from \"../utils/lambdaEnvVariables.js\";\n\ninterface LambdaRoleParams {\n name: string;\n policy?: pulumi.Output<aws.iam.Policy>;\n executionRole?: pulumi.Input<string>;\n}\n\nconst createLambdaRoleWithoutExecution = (app: PulumiApp, params: LambdaRoleParams) => {\n const role = app.addResource(aws.iam.Role, {\n name: params.name,\n config: {\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"lambda.amazonaws.com\"\n },\n Effect: \"Allow\"\n }\n ]\n }\n },\n meta: { isLambdaFunctionRole: true }\n });\n\n if (params.policy) {\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-policy`,\n config: {\n role: role.output,\n policyArn: params.policy.arn\n }\n });\n }\n\n if (params.executionRole) {\n // If execution role is set, use it.\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-execution-role`,\n config: {\n role: role.output,\n policyArn: params.executionRole\n }\n });\n }\n return role;\n};\n\nexport function createLambdaRole(app: PulumiApp, params: LambdaRoleParams) {\n const role = createLambdaRoleWithoutExecution(app, params);\n\n // Add default execution role.\n const vpc = app.getModule(VpcConfig);\n\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-default-execution-role`,\n config: {\n role: role.output,\n policyArn: vpc.enabled.apply(enabled =>\n enabled\n ? aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n : aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole\n )\n }\n });\n\n return role;\n}\n\nexport const createLambdaRoleWithoutVpc = (app: PulumiApp, params: LambdaRoleParams) => {\n const role = createLambdaRoleWithoutExecution(app, params);\n\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-default-execution-role`,\n config: {\n role: role.output,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole\n }\n });\n\n return role;\n};\n"],"mappings":"AACA,OAAO,KAAKA,GAAG,MAAM,aAAa;AAElC,SAASC,SAAS;AAElB;AAQA,MAAMC,gCAAgC,GAAGA,CAACC,GAAc,EAAEC,MAAwB,KAAK;EACnF,MAAMC,IAAI,GAAGF,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,GAAG,CAACC,IAAI,EAAE;IACvCC,IAAI,EAAEL,MAAM,CAACK,IAAI;IACjBC,MAAM,EAAE;MACJC,gBAAgB,EAAE;QACdC,OAAO,EAAE,YAAY;QACrBC,SAAS,EAAE,CACP;UACIC,MAAM,EAAE,gBAAgB;UACxBC,SAAS,EAAE;YACPC,OAAO,EAAE;UACb,CAAC;UACDC,MAAM,EAAE;QACZ,CAAC;MAET;IACJ,CAAC;IACDC,IAAI,EAAE;MAAEC,oBAAoB,EAAE;IAAK;EACvC,CAAC,CAAC;EAEF,IAAIf,MAAM,CAACgB,MAAM,EAAE;IACfjB,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,GAAG,CAACc,oBAAoB,EAAE;MAC1CZ,IAAI,EAAE,GAAGL,MAAM,CAACK,IAAI,SAAS;MAC7BC,MAAM,EAAE;QACJL,IAAI,EAAEA,IAAI,CAACiB,MAAM;QACjBC,SAAS,EAAEnB,MAAM,CAACgB,MAAM,CAACI;MAC7B;IACJ,CAAC,CAAC;EACN;EAEA,IAAIpB,MAAM,CAACqB,aAAa,EAAE;IACtB;IACAtB,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,GAAG,CAACc,oBAAoB,EAAE;MAC1CZ,IAAI,EAAE,GAAGL,MAAM,CAACK,IAAI,iBAAiB;MACrCC,MAAM,EAAE;QACJL,IAAI,EAAEA,IAAI,CAACiB,MAAM;QACjBC,SAAS,EAAEnB,MAAM,CAACqB;MACtB;IACJ,CAAC,CAAC;EACN;EACA,OAAOpB,IAAI;AACf,CAAC;AAED,OAAO,SAASqB,gBAAgBA,CAACvB,GAAc,EAAEC,MAAwB,EAAE;EACvE,MAAMC,IAAI,GAAGH,gCAAgC,CAACC,GAAG,EAAEC,MAAM,CAAC;;EAE1D;EACA,MAAMuB,GAAG,GAAGxB,GAAG,CAACyB,SAAS,CAAC3B,SAAS,CAAC;EAEpCE,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,GAAG,CAACc,oBAAoB,EAAE;IAC1CZ,IAAI,EAAE,GAAGL,MAAM,CAACK,IAAI,yBAAyB;IAC7CC,MAAM,EAAE;MACJL,IAAI,EAAEA,IAAI,CAACiB,MAAM;MACjBC,SAAS,EAAEI,GAAG,CAACE,OAAO,CAACC,KAAK,CAACD,OAAO,IAChCA,OAAO,GACD7B,GAAG,CAACO,GAAG,CAACwB,aAAa,CAACC,+BAA+B,GACrDhC,GAAG,CAACO,GAAG,CAACwB,aAAa,CAACE,2BAChC;IACJ;EACJ,CAAC,CAAC;EAEF,OAAO5B,IAAI;AACf;AAEA,OAAO,MAAM6B,0BAA0B,GAAGA,CAAC/B,GAAc,EAAEC,MAAwB,KAAK;EACpF,MAAMC,IAAI,GAAGH,gCAAgC,CAACC,GAAG,EAAEC,MAAM,CAAC;EAE1DD,GAAG,CAACG,WAAW,CAACN,GAAG,CAACO,GAAG,CAACc,oBAAoB,EAAE;IAC1CZ,IAAI,EAAE,GAAGL,MAAM,CAACK,IAAI,yBAAyB;IAC7CC,MAAM,EAAE;MACJL,IAAI,EAAEA,IAAI,CAACiB,MAAM;MACjBC,SAAS,EAAEvB,GAAG,CAACO,GAAG,CAACwB,aAAa,CAACE;IACrC;EACJ,CAAC,CAAC;EAEF,OAAO5B,IAAI;AACf,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"pulumi/apps/lambdaUtils.js","sources":["../../../src/pulumi/apps/lambdaUtils.ts"],"sourcesContent":["import type * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\nimport { VpcConfig } from \"./common/index.js\";\n\nexport * from \"../utils/lambdaEnvVariables.js\";\n\ninterface LambdaRoleParams {\n name: string;\n policy?: pulumi.Output<aws.iam.Policy>;\n executionRole?: pulumi.Input<string>;\n}\n\nconst createLambdaRoleWithoutExecution = (app: PulumiApp, params: LambdaRoleParams) => {\n const role = app.addResource(aws.iam.Role, {\n name: params.name,\n config: {\n assumeRolePolicy: {\n Version: \"2012-10-17\",\n Statement: [\n {\n Action: \"sts:AssumeRole\",\n Principal: {\n Service: \"lambda.amazonaws.com\"\n },\n Effect: \"Allow\"\n }\n ]\n }\n },\n meta: { isLambdaFunctionRole: true }\n });\n\n if (params.policy) {\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-policy`,\n config: {\n role: role.output,\n policyArn: params.policy.arn\n }\n });\n }\n\n if (params.executionRole) {\n // If execution role is set, use it.\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-execution-role`,\n config: {\n role: role.output,\n policyArn: params.executionRole\n }\n });\n }\n return role;\n};\n\nexport function createLambdaRole(app: PulumiApp, params: LambdaRoleParams) {\n const role = createLambdaRoleWithoutExecution(app, params);\n\n // Add default execution role.\n const vpc = app.getModule(VpcConfig);\n\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-default-execution-role`,\n config: {\n role: role.output,\n policyArn: vpc.enabled.apply(enabled =>\n enabled\n ? aws.iam.ManagedPolicy.AWSLambdaVPCAccessExecutionRole\n : aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole\n )\n }\n });\n\n return role;\n}\n\nexport const createLambdaRoleWithoutVpc = (app: PulumiApp, params: LambdaRoleParams) => {\n const role = createLambdaRoleWithoutExecution(app, params);\n\n app.addResource(aws.iam.RolePolicyAttachment, {\n name: `${params.name}-default-execution-role`,\n config: {\n role: role.output,\n policyArn: aws.iam.ManagedPolicy.AWSLambdaBasicExecutionRole\n }\n });\n\n return role;\n};\n"],"names":["createLambdaRoleWithoutExecution","app","params","role","aws","createLambdaRole","vpc","VpcConfig","enabled","createLambdaRoleWithoutVpc"],"mappings":";;;AAaA,MAAMA,mCAAmC,CAACC,KAAgBC;IACtD,MAAMC,OAAOF,IAAI,WAAW,CAACG,uCAAAA,GAAAA,CAAAA,IAAY,EAAE;QACvC,MAAMF,OAAO,IAAI;QACjB,QAAQ;YACJ,kBAAkB;gBACd,SAAS;gBACT,WAAW;oBACP;wBACI,QAAQ;wBACR,WAAW;4BACP,SAAS;wBACb;wBACA,QAAQ;oBACZ;iBACH;YACL;QACJ;QACA,MAAM;YAAE,sBAAsB;QAAK;IACvC;IAEA,IAAIA,OAAO,MAAM,EACbD,IAAI,WAAW,CAACG,uCAAAA,GAAAA,CAAAA,oBAA4B,EAAE;QAC1C,MAAM,GAAGF,OAAO,IAAI,CAAC,OAAO,CAAC;QAC7B,QAAQ;YACJ,MAAMC,KAAK,MAAM;YACjB,WAAWD,OAAO,MAAM,CAAC,GAAG;QAChC;IACJ;IAGJ,IAAIA,OAAO,aAAa,EAEpBD,IAAI,WAAW,CAACG,uCAAAA,GAAAA,CAAAA,oBAA4B,EAAE;QAC1C,MAAM,GAAGF,OAAO,IAAI,CAAC,eAAe,CAAC;QACrC,QAAQ;YACJ,MAAMC,KAAK,MAAM;YACjB,WAAWD,OAAO,aAAa;QACnC;IACJ;IAEJ,OAAOC;AACX;AAEO,SAASE,iBAAiBJ,GAAc,EAAEC,MAAwB;IACrE,MAAMC,OAAOH,iCAAiCC,KAAKC;IAGnD,MAAMI,MAAML,IAAI,SAAS,CAACM;IAE1BN,IAAI,WAAW,CAACG,uCAAAA,GAAAA,CAAAA,oBAA4B,EAAE;QAC1C,MAAM,GAAGF,OAAO,IAAI,CAAC,uBAAuB,CAAC;QAC7C,QAAQ;YACJ,MAAMC,KAAK,MAAM;YACjB,WAAWG,IAAI,OAAO,CAAC,KAAK,CAACE,CAAAA,UACzBA,UACMJ,uCAAAA,GAAAA,CAAAA,aAAAA,CAAAA,+BAAqD,GACrDA,uCAAAA,GAAAA,CAAAA,aAAAA,CAAAA,2BAAiD;QAE/D;IACJ;IAEA,OAAOD;AACX;AAEO,MAAMM,6BAA6B,CAACR,KAAgBC;IACvD,MAAMC,OAAOH,iCAAiCC,KAAKC;IAEnDD,IAAI,WAAW,CAACG,uCAAAA,GAAAA,CAAAA,oBAA4B,EAAE;QAC1C,MAAM,GAAGF,OAAO,IAAI,CAAC,uBAAuB,CAAC;QAC7C,QAAQ;YACJ,MAAMC,KAAK,MAAM;YACjB,WAAWC,uCAAAA,GAAAA,CAAAA,aAAAA,CAAAA,2BAAiD;QAChE;IACJ;IAEA,OAAOD;AACX"}
@@ -1,5 +1,3 @@
1
- import * as aws from "@pulumi/aws";
2
- import * as pulumi from "@pulumi/pulumi";
3
1
  import { createPulumiApp } from "@webiny/pulumi";
4
2
  import { addDomainsUrlsOutputs } from "../../utils/index.js";
5
3
  import { createPrivateAppBucket } from "../createAppBucket.js";
@@ -8,143 +6,124 @@ import { withServiceManifest } from "../../utils/withServiceManifest.js";
8
6
  import { ApiOutput, CoreOutput } from "../index.js";
9
7
  import { getProjectSdk } from "@webiny/project";
10
8
  import { applyAwsResourceTags } from "../awsUtils.js";
11
- export const createReactPulumiApp = projectAppParams => {
12
- const app = createPulumiApp({
13
- name: projectAppParams.name,
14
- path: projectAppParams.folder,
15
- config: projectAppParams,
16
- program: async app => {
17
- const sdk = await getProjectSdk();
18
- const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
19
- if (pulumiResourceNamePrefix) {
20
- app.onResource(resource => {
21
- if (!resource.name.startsWith(pulumiResourceNamePrefix)) {
22
- resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
23
- }
24
- });
25
- }
26
- const {
27
- name
28
- } = projectAppParams;
29
-
30
- // Register core output as a module available for all other modules
31
- const core = app.addModule(CoreOutput);
32
- app.addModule(ApiOutput);
33
-
34
- // Overrides must be applied via a handler, registered at the very start of the program.
35
- // By doing this, we're ensuring user's adjustments are not applied to late.
36
- if (projectAppParams.pulumi) {
37
- app.addHandler(() => {
38
- return projectAppParams.pulumi(app);
39
- });
40
- }
41
- const bucket = createPrivateAppBucket(app, `${name}-app`);
42
- const cloudfront = app.addResource(aws.cloudfront.Distribution, {
43
- name: `${name}-app-cdn`,
44
- config: {
45
- httpVersion: "http2and3",
46
- enabled: true,
47
- waitForDeployment: true,
48
- origins: [bucket.origin],
49
- defaultRootObject: "index.html",
50
- defaultCacheBehavior: {
51
- compress: true,
52
- targetOriginId: bucket.origin.originId,
53
- viewerProtocolPolicy: "redirect-to-https",
54
- allowedMethods: ["GET", "HEAD", "OPTIONS"],
55
- cachedMethods: ["GET", "HEAD", "OPTIONS"],
56
- forwardedValues: {
57
- cookies: {
58
- forward: "none"
59
- },
60
- queryString: false
61
- },
62
- // MinTTL <= DefaultTTL <= MaxTTL
63
- minTtl: 0,
64
- defaultTtl: 600,
65
- maxTtl: 600
66
- },
67
- priceClass: "PriceClass_100",
68
- customErrorResponses: [{
69
- errorCode: 404,
70
- responseCode: 404,
71
- responsePagePath: "/index.html"
72
- }],
73
- restrictions: {
74
- geoRestriction: {
75
- restrictionType: "none"
76
- }
77
- },
78
- viewerCertificate: {
79
- cloudfrontDefaultCertificate: true
80
- }
81
- },
82
- opts: {
83
- // We are ignoring changes to the "staging" property. This is because of the following.
84
- // With the 5.41.0 release of Webiny, we also upgraded Pulumi to v6. This introduced a change
85
- // with how Cloudfront distributions are deployed, where Pulumi now also controls the new
86
- // `staging` property.
87
- // If not set, Pulumi will default it to `false`. Which is fine, but, the problem is
88
- // that, because this property did not exist before, it will always be considered as a change
89
- // upon deployment.
90
- // We might think this is fine, but, the problem is that a change in this property causes
91
- // a full replacement of the Cloudfront distribution, which is not acceptable. Especially
92
- // if a custom domain has already been associated with the distribution. This then would
93
- // require the user to disassociate the domain, wait for the distribution to be replaced,
94
- // and then re-associate the domain. This is not a good experience.
95
- ignoreChanges: ["staging"]
96
- }
97
- });
98
- const domains = app.getParam(projectAppParams.domains);
99
- if (domains) {
100
- applyCustomDomain(cloudfront, domains);
101
- }
102
- app.addOutput("appStorage", bucket.bucket.output.id);
103
- app.addHandler(() => {
104
- addDomainsUrlsOutputs({
105
- app,
106
- cloudfrontDistribution: cloudfront,
107
- map: {
108
- distributionDomain: "cloudfrontAppDomain",
109
- distributionUrl: "cloudfrontAppUrl",
110
- usedDomain: "appDomain",
111
- usedUrl: "appUrl"
112
- }
113
- });
114
- });
115
-
116
- // Applies internal and user-defined AWS tags.
117
- await applyAwsResourceTags(name);
118
-
119
- /**
120
- * We need to store the appUrl to the admin settings item in the dynamodb
121
- */
122
- app.addResource(aws.dynamodb.TableItem, {
123
- name: "adminSettings",
124
- config: {
125
- tableName: core.primaryDynamodbTableName,
126
- hashKey: core.primaryDynamodbTableHashKey,
127
- rangeKey: pulumi.output(core.primaryDynamodbTableRangeKey).apply(key => key || "SK"),
128
- item: pulumi.interpolate`{
9
+ import * as __rspack_external__pulumi_aws_e7af83c1 from "@pulumi/aws";
10
+ import * as __rspack_external__pulumi_pulumi_d0276039 from "@pulumi/pulumi";
11
+ const createReactPulumiApp = (projectAppParams)=>{
12
+ const app = createPulumiApp({
13
+ name: projectAppParams.name,
14
+ path: projectAppParams.folder,
15
+ config: projectAppParams,
16
+ program: async (app)=>{
17
+ const sdk = await getProjectSdk();
18
+ const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();
19
+ if (pulumiResourceNamePrefix) app.onResource((resource)=>{
20
+ if (!resource.name.startsWith(pulumiResourceNamePrefix)) resource.name = `${pulumiResourceNamePrefix}${resource.name}`;
21
+ });
22
+ const { name } = projectAppParams;
23
+ const core = app.addModule(CoreOutput);
24
+ app.addModule(ApiOutput);
25
+ if (projectAppParams.pulumi) app.addHandler(()=>projectAppParams.pulumi(app));
26
+ const bucket = createPrivateAppBucket(app, `${name}-app`);
27
+ const cloudfront = app.addResource(__rspack_external__pulumi_aws_e7af83c1.cloudfront.Distribution, {
28
+ name: `${name}-app-cdn`,
29
+ config: {
30
+ httpVersion: "http2and3",
31
+ enabled: true,
32
+ waitForDeployment: true,
33
+ origins: [
34
+ bucket.origin
35
+ ],
36
+ defaultRootObject: "index.html",
37
+ defaultCacheBehavior: {
38
+ compress: true,
39
+ targetOriginId: bucket.origin.originId,
40
+ viewerProtocolPolicy: "redirect-to-https",
41
+ allowedMethods: [
42
+ "GET",
43
+ "HEAD",
44
+ "OPTIONS"
45
+ ],
46
+ cachedMethods: [
47
+ "GET",
48
+ "HEAD",
49
+ "OPTIONS"
50
+ ],
51
+ forwardedValues: {
52
+ cookies: {
53
+ forward: "none"
54
+ },
55
+ queryString: false
56
+ },
57
+ minTtl: 0,
58
+ defaultTtl: 600,
59
+ maxTtl: 600
60
+ },
61
+ priceClass: "PriceClass_100",
62
+ customErrorResponses: [
63
+ {
64
+ errorCode: 404,
65
+ responseCode: 404,
66
+ responsePagePath: "/index.html"
67
+ }
68
+ ],
69
+ restrictions: {
70
+ geoRestriction: {
71
+ restrictionType: "none"
72
+ }
73
+ },
74
+ viewerCertificate: {
75
+ cloudfrontDefaultCertificate: true
76
+ }
77
+ },
78
+ opts: {
79
+ ignoreChanges: [
80
+ "staging"
81
+ ]
82
+ }
83
+ });
84
+ const domains = app.getParam(projectAppParams.domains);
85
+ if (domains) applyCustomDomain(cloudfront, domains);
86
+ app.addOutput("appStorage", bucket.bucket.output.id);
87
+ app.addHandler(()=>{
88
+ addDomainsUrlsOutputs({
89
+ app,
90
+ cloudfrontDistribution: cloudfront,
91
+ map: {
92
+ distributionDomain: "cloudfrontAppDomain",
93
+ distributionUrl: "cloudfrontAppUrl",
94
+ usedDomain: "appDomain",
95
+ usedUrl: "appUrl"
96
+ }
97
+ });
98
+ });
99
+ await applyAwsResourceTags(name);
100
+ app.addResource(__rspack_external__pulumi_aws_e7af83c1.dynamodb.TableItem, {
101
+ name: "adminSettings",
102
+ config: {
103
+ tableName: core.primaryDynamodbTableName,
104
+ hashKey: core.primaryDynamodbTableHashKey,
105
+ rangeKey: __rspack_external__pulumi_pulumi_d0276039.output(core.primaryDynamodbTableRangeKey).apply((key)=>key || "SK"),
106
+ item: __rspack_external__pulumi_pulumi_d0276039.interpolate`{
129
107
  "PK": {"S": "ADMIN#SETTINGS"},
130
108
  "SK": {"S": "default"},
131
109
  "data": {
132
110
  "M": {
133
111
  "appUrl": {
134
- "S": "${cloudfront.output.domainName.apply(value => `https://${value}`)}"
112
+ "S": "${cloudfront.output.domainName.apply((value)=>`https://${value}`)}"
135
113
  }
136
114
  }
137
115
  }
138
116
  }`
117
+ }
118
+ });
119
+ return {
120
+ ...bucket,
121
+ cloudfront
122
+ };
139
123
  }
140
- });
141
- return {
142
- ...bucket,
143
- cloudfront
144
- };
145
- }
146
- });
147
- return withServiceManifest(app);
124
+ });
125
+ return withServiceManifest(app);
148
126
  };
127
+ export { createReactPulumiApp };
149
128
 
150
129
  //# sourceMappingURL=createReactPulumiApp.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["aws","pulumi","createPulumiApp","addDomainsUrlsOutputs","createPrivateAppBucket","applyCustomDomain","withServiceManifest","ApiOutput","CoreOutput","getProjectSdk","applyAwsResourceTags","createReactPulumiApp","projectAppParams","app","name","path","folder","config","program","sdk","pulumiResourceNamePrefix","getPulumiResourceNamePrefix","onResource","resource","startsWith","core","addModule","addHandler","bucket","cloudfront","addResource","Distribution","httpVersion","enabled","waitForDeployment","origins","origin","defaultRootObject","defaultCacheBehavior","compress","targetOriginId","originId","viewerProtocolPolicy","allowedMethods","cachedMethods","forwardedValues","cookies","forward","queryString","minTtl","defaultTtl","maxTtl","priceClass","customErrorResponses","errorCode","responseCode","responsePagePath","restrictions","geoRestriction","restrictionType","viewerCertificate","cloudfrontDefaultCertificate","opts","ignoreChanges","domains","getParam","addOutput","output","id","cloudfrontDistribution","map","distributionDomain","distributionUrl","usedDomain","usedUrl","dynamodb","TableItem","tableName","primaryDynamodbTableName","hashKey","primaryDynamodbTableHashKey","rangeKey","primaryDynamodbTableRangeKey","apply","key","item","interpolate","domainName","value"],"sources":["createReactPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport { createPulumiApp, type PulumiAppParamCallback } from \"@webiny/pulumi\";\nimport { addDomainsUrlsOutputs } from \"~/pulumi/utils/index.js\";\nimport { createPrivateAppBucket } from \"../createAppBucket.js\";\nimport { applyCustomDomain, type CustomDomainParams } from \"../customDomain.js\";\nimport { withServiceManifest } from \"~/pulumi/utils/withServiceManifest.js\";\nimport { ApiOutput, CoreOutput } from \"~/pulumi/apps/index.js\";\nimport { type AppName, getProjectSdk } from \"@webiny/project\";\nimport { applyAwsResourceTags } from \"~/pulumi/apps/awsUtils.js\";\n\nexport type ReactPulumiApp = ReturnType<typeof createReactPulumiApp>;\n\nexport interface CreateReactPulumiAppParams {\n /**\n * A name of the app, e.g., \"user-area\"\n */\n name: AppName;\n\n /**\n * A folder where the app is located, e.g., \"apps/user-area\"\n */\n folder: string;\n\n /** Custom domain configuration */\n domains?: PulumiAppParamCallback<CustomDomainParams>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: ReactPulumiApp) => void | Promise<void>;\n}\n\nexport const createReactPulumiApp = (projectAppParams: CreateReactPulumiAppParams) => {\n const app = createPulumiApp({\n name: projectAppParams.name,\n path: projectAppParams.folder,\n config: projectAppParams,\n program: async app => {\n const sdk = await getProjectSdk();\n\n const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();\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 const { name } = projectAppParams;\n\n // Register core output as a module available for all other modules\n const core = app.addModule(CoreOutput);\n app.addModule(ApiOutput);\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 if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as unknown as ReactPulumiApp);\n });\n }\n\n const bucket = createPrivateAppBucket(app, `${name}-app`);\n\n const cloudfront = app.addResource(aws.cloudfront.Distribution, {\n name: `${name}-app-cdn`,\n config: {\n httpVersion: \"http2and3\",\n enabled: true,\n waitForDeployment: true,\n origins: [bucket.origin],\n defaultRootObject: \"index.html\",\n defaultCacheBehavior: {\n compress: true,\n targetOriginId: bucket.origin.originId,\n viewerProtocolPolicy: \"redirect-to-https\",\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: { forward: \"none\" },\n queryString: false\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 600,\n maxTtl: 600\n },\n priceClass: \"PriceClass_100\",\n customErrorResponses: [\n { errorCode: 404, responseCode: 404, responsePagePath: \"/index.html\" }\n ],\n restrictions: {\n geoRestriction: {\n restrictionType: \"none\"\n }\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true\n }\n },\n opts: {\n // We are ignoring changes to the \"staging\" property. This is because of the following.\n // With the 5.41.0 release of Webiny, we also upgraded Pulumi to v6. This introduced a change\n // with how Cloudfront distributions are deployed, where Pulumi now also controls the new\n // `staging` property.\n // If not set, Pulumi will default it to `false`. Which is fine, but, the problem is\n // that, because this property did not exist before, it will always be considered as a change\n // upon deployment.\n // We might think this is fine, but, the problem is that a change in this property causes\n // a full replacement of the Cloudfront distribution, which is not acceptable. Especially\n // if a custom domain has already been associated with the distribution. This then would\n // require the user to disassociate the domain, wait for the distribution to be replaced,\n // and then re-associate the domain. This is not a good experience.\n ignoreChanges: [\"staging\"]\n }\n });\n\n const domains = app.getParam(projectAppParams.domains);\n if (domains) {\n applyCustomDomain(cloudfront, domains);\n }\n\n app.addOutput(\"appStorage\", bucket.bucket.output.id);\n\n app.addHandler(() => {\n addDomainsUrlsOutputs({\n app,\n cloudfrontDistribution: cloudfront,\n map: {\n distributionDomain: \"cloudfrontAppDomain\",\n distributionUrl: \"cloudfrontAppUrl\",\n usedDomain: \"appDomain\",\n usedUrl: \"appUrl\"\n }\n });\n });\n\n // Applies internal and user-defined AWS tags.\n await applyAwsResourceTags(name);\n\n /**\n * We need to store the appUrl to the admin settings item in the dynamodb\n */\n app.addResource(aws.dynamodb.TableItem, {\n name: \"adminSettings\",\n config: {\n tableName: core.primaryDynamodbTableName,\n hashKey: core.primaryDynamodbTableHashKey,\n rangeKey: pulumi\n .output(core.primaryDynamodbTableRangeKey)\n .apply(key => key || \"SK\"),\n item: pulumi.interpolate`{\n \"PK\": {\"S\": \"ADMIN#SETTINGS\"},\n \"SK\": {\"S\": \"default\"},\n \"data\": {\n \"M\": {\n \"appUrl\": {\n \"S\": \"${cloudfront.output.domainName.apply(\n value => `https://${value}`\n )}\"\n }\n }\n }\n }`\n }\n });\n\n return {\n ...bucket,\n cloudfront\n };\n }\n });\n\n return withServiceManifest(app);\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"pulumi/apps/react/createReactPulumiApp.js","sources":["../../../../src/pulumi/apps/react/createReactPulumiApp.ts"],"sourcesContent":["import * as aws from \"@pulumi/aws\";\nimport * as pulumi from \"@pulumi/pulumi\";\nimport { createPulumiApp, type PulumiAppParamCallback } from \"@webiny/pulumi\";\nimport { addDomainsUrlsOutputs } from \"~/pulumi/utils/index.js\";\nimport { createPrivateAppBucket } from \"../createAppBucket.js\";\nimport { applyCustomDomain, type CustomDomainParams } from \"../customDomain.js\";\nimport { withServiceManifest } from \"~/pulumi/utils/withServiceManifest.js\";\nimport { ApiOutput, CoreOutput } from \"~/pulumi/apps/index.js\";\nimport { type AppName, getProjectSdk } from \"@webiny/project\";\nimport { applyAwsResourceTags } from \"~/pulumi/apps/awsUtils.js\";\n\nexport type ReactPulumiApp = ReturnType<typeof createReactPulumiApp>;\n\nexport interface CreateReactPulumiAppParams {\n /**\n * A name of the app, e.g., \"user-area\"\n */\n name: AppName;\n\n /**\n * A folder where the app is located, e.g., \"apps/user-area\"\n */\n folder: string;\n\n /** Custom domain configuration */\n domains?: PulumiAppParamCallback<CustomDomainParams>;\n\n /**\n * Provides a way to adjust existing Pulumi code (cloud infrastructure resources)\n * or add additional ones into the mix.\n */\n pulumi?: (app: ReactPulumiApp) => void | Promise<void>;\n}\n\nexport const createReactPulumiApp = (projectAppParams: CreateReactPulumiAppParams) => {\n const app = createPulumiApp({\n name: projectAppParams.name,\n path: projectAppParams.folder,\n config: projectAppParams,\n program: async app => {\n const sdk = await getProjectSdk();\n\n const pulumiResourceNamePrefix = await sdk.getPulumiResourceNamePrefix();\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 const { name } = projectAppParams;\n\n // Register core output as a module available for all other modules\n const core = app.addModule(CoreOutput);\n app.addModule(ApiOutput);\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 if (projectAppParams.pulumi) {\n app.addHandler(() => {\n return projectAppParams.pulumi!(app as unknown as ReactPulumiApp);\n });\n }\n\n const bucket = createPrivateAppBucket(app, `${name}-app`);\n\n const cloudfront = app.addResource(aws.cloudfront.Distribution, {\n name: `${name}-app-cdn`,\n config: {\n httpVersion: \"http2and3\",\n enabled: true,\n waitForDeployment: true,\n origins: [bucket.origin],\n defaultRootObject: \"index.html\",\n defaultCacheBehavior: {\n compress: true,\n targetOriginId: bucket.origin.originId,\n viewerProtocolPolicy: \"redirect-to-https\",\n allowedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n cachedMethods: [\"GET\", \"HEAD\", \"OPTIONS\"],\n forwardedValues: {\n cookies: { forward: \"none\" },\n queryString: false\n },\n // MinTTL <= DefaultTTL <= MaxTTL\n minTtl: 0,\n defaultTtl: 600,\n maxTtl: 600\n },\n priceClass: \"PriceClass_100\",\n customErrorResponses: [\n { errorCode: 404, responseCode: 404, responsePagePath: \"/index.html\" }\n ],\n restrictions: {\n geoRestriction: {\n restrictionType: \"none\"\n }\n },\n viewerCertificate: {\n cloudfrontDefaultCertificate: true\n }\n },\n opts: {\n // We are ignoring changes to the \"staging\" property. This is because of the following.\n // With the 5.41.0 release of Webiny, we also upgraded Pulumi to v6. This introduced a change\n // with how Cloudfront distributions are deployed, where Pulumi now also controls the new\n // `staging` property.\n // If not set, Pulumi will default it to `false`. Which is fine, but, the problem is\n // that, because this property did not exist before, it will always be considered as a change\n // upon deployment.\n // We might think this is fine, but, the problem is that a change in this property causes\n // a full replacement of the Cloudfront distribution, which is not acceptable. Especially\n // if a custom domain has already been associated with the distribution. This then would\n // require the user to disassociate the domain, wait for the distribution to be replaced,\n // and then re-associate the domain. This is not a good experience.\n ignoreChanges: [\"staging\"]\n }\n });\n\n const domains = app.getParam(projectAppParams.domains);\n if (domains) {\n applyCustomDomain(cloudfront, domains);\n }\n\n app.addOutput(\"appStorage\", bucket.bucket.output.id);\n\n app.addHandler(() => {\n addDomainsUrlsOutputs({\n app,\n cloudfrontDistribution: cloudfront,\n map: {\n distributionDomain: \"cloudfrontAppDomain\",\n distributionUrl: \"cloudfrontAppUrl\",\n usedDomain: \"appDomain\",\n usedUrl: \"appUrl\"\n }\n });\n });\n\n // Applies internal and user-defined AWS tags.\n await applyAwsResourceTags(name);\n\n /**\n * We need to store the appUrl to the admin settings item in the dynamodb\n */\n app.addResource(aws.dynamodb.TableItem, {\n name: \"adminSettings\",\n config: {\n tableName: core.primaryDynamodbTableName,\n hashKey: core.primaryDynamodbTableHashKey,\n rangeKey: pulumi\n .output(core.primaryDynamodbTableRangeKey)\n .apply(key => key || \"SK\"),\n item: pulumi.interpolate`{\n \"PK\": {\"S\": \"ADMIN#SETTINGS\"},\n \"SK\": {\"S\": \"default\"},\n \"data\": {\n \"M\": {\n \"appUrl\": {\n \"S\": \"${cloudfront.output.domainName.apply(\n value => `https://${value}`\n )}\"\n }\n }\n }\n }`\n }\n });\n\n return {\n ...bucket,\n cloudfront\n };\n }\n });\n\n return withServiceManifest(app);\n};\n"],"names":["createReactPulumiApp","projectAppParams","app","createPulumiApp","sdk","getProjectSdk","pulumiResourceNamePrefix","resource","name","core","CoreOutput","ApiOutput","bucket","createPrivateAppBucket","cloudfront","aws","domains","applyCustomDomain","addDomainsUrlsOutputs","applyAwsResourceTags","pulumi","key","value","withServiceManifest"],"mappings":";;;;;;;;;;AAkCO,MAAMA,uBAAuB,CAACC;IACjC,MAAMC,MAAMC,gBAAgB;QACxB,MAAMF,iBAAiB,IAAI;QAC3B,MAAMA,iBAAiB,MAAM;QAC7B,QAAQA;QACR,SAAS,OAAMC;YACX,MAAME,MAAM,MAAMC;YAElB,MAAMC,2BAA2B,MAAMF,IAAI,2BAA2B;YAEtE,IAAIE,0BACAJ,IAAI,UAAU,CAACK,CAAAA;gBACX,IAAI,CAACA,SAAS,IAAI,CAAC,UAAU,CAACD,2BAC1BC,SAAS,IAAI,GAAG,GAAGD,2BAA2BC,SAAS,IAAI,EAAE;YAErE;YAGJ,MAAM,EAAEC,IAAI,EAAE,GAAGP;YAGjB,MAAMQ,OAAOP,IAAI,SAAS,CAACQ;YAC3BR,IAAI,SAAS,CAACS;YAId,IAAIV,iBAAiB,MAAM,EACvBC,IAAI,UAAU,CAAC,IACJD,iBAAiB,MAAM,CAAEC;YAIxC,MAAMU,SAASC,uBAAuBX,KAAK,GAAGM,KAAK,IAAI,CAAC;YAExD,MAAMM,aAAaZ,IAAI,WAAW,CAACa,uCAAAA,UAAAA,CAAAA,YAA2B,EAAE;gBAC5D,MAAM,GAAGP,KAAK,QAAQ,CAAC;gBACvB,QAAQ;oBACJ,aAAa;oBACb,SAAS;oBACT,mBAAmB;oBACnB,SAAS;wBAACI,OAAO,MAAM;qBAAC;oBACxB,mBAAmB;oBACnB,sBAAsB;wBAClB,UAAU;wBACV,gBAAgBA,OAAO,MAAM,CAAC,QAAQ;wBACtC,sBAAsB;wBACtB,gBAAgB;4BAAC;4BAAO;4BAAQ;yBAAU;wBAC1C,eAAe;4BAAC;4BAAO;4BAAQ;yBAAU;wBACzC,iBAAiB;4BACb,SAAS;gCAAE,SAAS;4BAAO;4BAC3B,aAAa;wBACjB;wBAEA,QAAQ;wBACR,YAAY;wBACZ,QAAQ;oBACZ;oBACA,YAAY;oBACZ,sBAAsB;wBAClB;4BAAE,WAAW;4BAAK,cAAc;4BAAK,kBAAkB;wBAAc;qBACxE;oBACD,cAAc;wBACV,gBAAgB;4BACZ,iBAAiB;wBACrB;oBACJ;oBACA,mBAAmB;wBACf,8BAA8B;oBAClC;gBACJ;gBACA,MAAM;oBAaF,eAAe;wBAAC;qBAAU;gBAC9B;YACJ;YAEA,MAAMI,UAAUd,IAAI,QAAQ,CAACD,iBAAiB,OAAO;YACrD,IAAIe,SACAC,kBAAkBH,YAAYE;YAGlCd,IAAI,SAAS,CAAC,cAAcU,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE;YAEnDV,IAAI,UAAU,CAAC;gBACXgB,sBAAsB;oBAClBhB;oBACA,wBAAwBY;oBACxB,KAAK;wBACD,oBAAoB;wBACpB,iBAAiB;wBACjB,YAAY;wBACZ,SAAS;oBACb;gBACJ;YACJ;YAGA,MAAMK,qBAAqBX;YAK3BN,IAAI,WAAW,CAACa,uCAAAA,QAAAA,CAAAA,SAAsB,EAAE;gBACpC,MAAM;gBACN,QAAQ;oBACJ,WAAWN,KAAK,wBAAwB;oBACxC,SAASA,KAAK,2BAA2B;oBACzC,UAAUW,0CAAAA,MACC,CAACX,KAAK,4BAA4B,EACxC,KAAK,CAACY,CAAAA,MAAOA,OAAO;oBACzB,MAAMD,0CAAAA,WAAkB,CAAC;;;;;;sCAMP,EAAEN,WAAW,MAAM,CAAC,UAAU,CAAC,KAAK,CACtCQ,CAAAA,QAAS,CAAC,QAAQ,EAAEA,OAAO,EAC7B;;;;yBAIT,CAAC;gBACV;YACJ;YAEA,OAAO;gBACH,GAAGV,MAAM;gBACTE;YACJ;QACJ;IACJ;IAEA,OAAOS,oBAAoBrB;AAC/B"}
@@ -1,3 +1 @@
1
1
  export * from "./createReactPulumiApp.js";
2
-
3
- //# sourceMappingURL=index.js.map