@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
@@ -3,38 +3,33 @@ import { GracefulError } from "@webiny/project";
3
3
  import { IAM } from "@webiny/aws-sdk/client-iam/index.js";
4
4
  const NO_SUCH_ENTITY_IAM_ERROR = "NoSuchEntity";
5
5
  class EnsureOsServiceRoleBeforeCoreDeployImpl {
6
- constructor(uiService) {
7
- this.uiService = uiService;
8
- }
9
- async execute() {
10
- const iam = new IAM();
11
- try {
12
- await iam.getRole({
13
- RoleName: "AWSServiceRoleForAmazonOpenSearchService"
14
- });
15
- // Role exists, proceed silently
16
- } catch (err) {
17
- // We've seen cases where the `iam.getRole` call fails because of an issue
18
- // other than not being able to retrieve the service role.
19
- if (err.Error?.Code !== NO_SUCH_ENTITY_IAM_ERROR) {
20
- throw GracefulError.from(new Error("Failed to retrieve Amazon OpenSearch service role."), ["An unexpected error occurred while checking for the %s service role:", "%s", "", "Please check your AWS IAM permissions and try again."].join("\n"), "AWSServiceRoleForAmazonOpenSearchService", err.message);
21
- }
22
-
23
- // Role doesn't exist, try to create it
24
- try {
25
- await iam.createServiceLinkedRole({
26
- AWSServiceName: "opensearchservice.amazonaws.com"
27
- });
28
- // Created successfully, proceed silently
29
- } catch (err) {
30
- throw GracefulError.from(new Error("Failed to create Amazon OpenSearch service role."), ["Could not create the required %s service role:", "%s", "", "Your options:", "• Ensure your AWS account has the necessary IAM permissions to create service-linked roles.", "• Manually create the service role using the AWS console or CLI.", "• Contact your AWS administrator for assistance."].join("\n"), "AWSServiceRoleForAmazonOpenSearchService", err.message);
31
- }
6
+ constructor(uiService){
7
+ this.uiService = uiService;
8
+ }
9
+ async execute() {
10
+ const iam = new IAM();
11
+ try {
12
+ await iam.getRole({
13
+ RoleName: "AWSServiceRoleForAmazonOpenSearchService"
14
+ });
15
+ } catch (err) {
16
+ if (err.Error?.Code !== NO_SUCH_ENTITY_IAM_ERROR) throw GracefulError.from(new Error("Failed to retrieve Amazon OpenSearch service role."), "An unexpected error occurred while checking for the %s service role:\n%s\n\nPlease check your AWS IAM permissions and try again.", "AWSServiceRoleForAmazonOpenSearchService", err.message);
17
+ try {
18
+ await iam.createServiceLinkedRole({
19
+ AWSServiceName: "opensearchservice.amazonaws.com"
20
+ });
21
+ } catch (err) {
22
+ throw GracefulError.from(new Error("Failed to create Amazon OpenSearch service role."), "Could not create the required %s service role:\n%s\n\nYour options:\n• Ensure your AWS account has the necessary IAM permissions to create service-linked roles.\n• Manually create the service role using the AWS console or CLI.\n• Contact your AWS administrator for assistance.", "AWSServiceRoleForAmazonOpenSearchService", err.message);
23
+ }
24
+ }
32
25
  }
33
- }
34
26
  }
35
- export const EnsureOsServiceRoleBeforeCoreDeploy = CoreBeforeDeploy.createImplementation({
36
- implementation: EnsureOsServiceRoleBeforeCoreDeployImpl,
37
- dependencies: [UiService]
27
+ const EnsureOsServiceRoleBeforeCoreDeploy = CoreBeforeDeploy.createImplementation({
28
+ implementation: EnsureOsServiceRoleBeforeCoreDeployImpl,
29
+ dependencies: [
30
+ UiService
31
+ ]
38
32
  });
33
+ export { EnsureOsServiceRoleBeforeCoreDeploy };
39
34
 
40
35
  //# sourceMappingURL=EnsureOsServiceRoleBeforeCoreDeploy.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CoreBeforeDeploy","UiService","GracefulError","IAM","NO_SUCH_ENTITY_IAM_ERROR","EnsureOsServiceRoleBeforeCoreDeployImpl","constructor","uiService","execute","iam","getRole","RoleName","err","Error","Code","from","join","message","createServiceLinkedRole","AWSServiceName","EnsureOsServiceRoleBeforeCoreDeploy","createImplementation","implementation","dependencies"],"sources":["EnsureOsServiceRoleBeforeCoreDeploy.ts"],"sourcesContent":["import { CoreBeforeDeploy, UiService } from \"@webiny/project/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\nimport { IAM } from \"@webiny/aws-sdk/client-iam/index.js\";\n\nconst NO_SUCH_ENTITY_IAM_ERROR = \"NoSuchEntity\";\n\nclass EnsureOsServiceRoleBeforeCoreDeployImpl implements CoreBeforeDeploy.Interface {\n constructor(private uiService: UiService.Interface) {}\n\n async execute() {\n const iam = new IAM();\n try {\n await iam.getRole({ RoleName: \"AWSServiceRoleForAmazonOpenSearchService\" });\n // Role exists, proceed silently\n } catch (err) {\n // We've seen cases where the `iam.getRole` call fails because of an issue\n // other than not being able to retrieve the service role.\n if (err.Error?.Code !== NO_SUCH_ENTITY_IAM_ERROR) {\n throw GracefulError.from(\n new Error(\"Failed to retrieve Amazon OpenSearch service role.\"),\n [\n \"An unexpected error occurred while checking for the %s service role:\",\n \"%s\",\n \"\",\n \"Please check your AWS IAM permissions and try again.\"\n ].join(\"\\n\"),\n \"AWSServiceRoleForAmazonOpenSearchService\",\n err.message\n );\n }\n\n // Role doesn't exist, try to create it\n try {\n await iam.createServiceLinkedRole({\n AWSServiceName: \"opensearchservice.amazonaws.com\"\n });\n // Created successfully, proceed silently\n } catch (err) {\n throw GracefulError.from(\n new Error(\"Failed to create Amazon OpenSearch service role.\"),\n [\n \"Could not create the required %s service role:\",\n \"%s\",\n \"\",\n \"Your options:\",\n \"• Ensure your AWS account has the necessary IAM permissions to create service-linked roles.\",\n \"• Manually create the service role using the AWS console or CLI.\",\n \"• Contact your AWS administrator for assistance.\"\n ].join(\"\\n\"),\n \"AWSServiceRoleForAmazonOpenSearchService\",\n err.message\n );\n }\n }\n }\n}\n\nexport const EnsureOsServiceRoleBeforeCoreDeploy = CoreBeforeDeploy.createImplementation({\n implementation: EnsureOsServiceRoleBeforeCoreDeployImpl,\n dependencies: [UiService]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB,EAAEC,SAAS,QAAQ,uCAAuC;AACnF,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,GAAG,QAAQ,qCAAqC;AAEzD,MAAMC,wBAAwB,GAAG,cAAc;AAE/C,MAAMC,uCAAuC,CAAuC;EAChFC,WAAWA,CAASC,SAA8B,EAAE;IAAA,KAAhCA,SAA8B,GAA9BA,SAA8B;EAAG;EAErD,MAAMC,OAAOA,CAAA,EAAG;IACZ,MAAMC,GAAG,GAAG,IAAIN,GAAG,CAAC,CAAC;IACrB,IAAI;MACA,MAAMM,GAAG,CAACC,OAAO,CAAC;QAAEC,QAAQ,EAAE;MAA2C,CAAC,CAAC;MAC3E;IACJ,CAAC,CAAC,OAAOC,GAAG,EAAE;MACV;MACA;MACA,IAAIA,GAAG,CAACC,KAAK,EAAEC,IAAI,KAAKV,wBAAwB,EAAE;QAC9C,MAAMF,aAAa,CAACa,IAAI,CACpB,IAAIF,KAAK,CAAC,oDAAoD,CAAC,EAC/D,CACI,sEAAsE,EACtE,IAAI,EACJ,EAAE,EACF,sDAAsD,CACzD,CAACG,IAAI,CAAC,IAAI,CAAC,EACZ,0CAA0C,EAC1CJ,GAAG,CAACK,OACR,CAAC;MACL;;MAEA;MACA,IAAI;QACA,MAAMR,GAAG,CAACS,uBAAuB,CAAC;UAC9BC,cAAc,EAAE;QACpB,CAAC,CAAC;QACF;MACJ,CAAC,CAAC,OAAOP,GAAG,EAAE;QACV,MAAMV,aAAa,CAACa,IAAI,CACpB,IAAIF,KAAK,CAAC,kDAAkD,CAAC,EAC7D,CACI,gDAAgD,EAChD,IAAI,EACJ,EAAE,EACF,eAAe,EACf,6FAA6F,EAC7F,kEAAkE,EAClE,kDAAkD,CACrD,CAACG,IAAI,CAAC,IAAI,CAAC,EACZ,0CAA0C,EAC1CJ,GAAG,CAACK,OACR,CAAC;MACL;IACJ;EACJ;AACJ;AAEA,OAAO,MAAMG,mCAAmC,GAAGpB,gBAAgB,CAACqB,oBAAoB,CAAC;EACrFC,cAAc,EAAEjB,uCAAuC;EACvDkB,YAAY,EAAE,CAACtB,SAAS;AAC5B,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js","sources":["../../../src/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.ts"],"sourcesContent":["import { CoreBeforeDeploy, UiService } from \"@webiny/project/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\nimport { IAM } from \"@webiny/aws-sdk/client-iam/index.js\";\n\nconst NO_SUCH_ENTITY_IAM_ERROR = \"NoSuchEntity\";\n\nclass EnsureOsServiceRoleBeforeCoreDeployImpl implements CoreBeforeDeploy.Interface {\n constructor(private uiService: UiService.Interface) {}\n\n async execute() {\n const iam = new IAM();\n try {\n await iam.getRole({ RoleName: \"AWSServiceRoleForAmazonOpenSearchService\" });\n // Role exists, proceed silently\n } catch (err) {\n // We've seen cases where the `iam.getRole` call fails because of an issue\n // other than not being able to retrieve the service role.\n if (err.Error?.Code !== NO_SUCH_ENTITY_IAM_ERROR) {\n throw GracefulError.from(\n new Error(\"Failed to retrieve Amazon OpenSearch service role.\"),\n [\n \"An unexpected error occurred while checking for the %s service role:\",\n \"%s\",\n \"\",\n \"Please check your AWS IAM permissions and try again.\"\n ].join(\"\\n\"),\n \"AWSServiceRoleForAmazonOpenSearchService\",\n err.message\n );\n }\n\n // Role doesn't exist, try to create it\n try {\n await iam.createServiceLinkedRole({\n AWSServiceName: \"opensearchservice.amazonaws.com\"\n });\n // Created successfully, proceed silently\n } catch (err) {\n throw GracefulError.from(\n new Error(\"Failed to create Amazon OpenSearch service role.\"),\n [\n \"Could not create the required %s service role:\",\n \"%s\",\n \"\",\n \"Your options:\",\n \"• Ensure your AWS account has the necessary IAM permissions to create service-linked roles.\",\n \"• Manually create the service role using the AWS console or CLI.\",\n \"• Contact your AWS administrator for assistance.\"\n ].join(\"\\n\"),\n \"AWSServiceRoleForAmazonOpenSearchService\",\n err.message\n );\n }\n }\n }\n}\n\nexport const EnsureOsServiceRoleBeforeCoreDeploy = CoreBeforeDeploy.createImplementation({\n implementation: EnsureOsServiceRoleBeforeCoreDeployImpl,\n dependencies: [UiService]\n});\n"],"names":["NO_SUCH_ENTITY_IAM_ERROR","EnsureOsServiceRoleBeforeCoreDeployImpl","uiService","iam","IAM","err","GracefulError","Error","EnsureOsServiceRoleBeforeCoreDeploy","CoreBeforeDeploy","UiService"],"mappings":";;;AAIA,MAAMA,2BAA2B;AAEjC,MAAMC;IACF,YAAoBC,SAA8B,CAAE;aAAhCA,SAAS,GAATA;IAAiC;IAErD,MAAM,UAAU;QACZ,MAAMC,MAAM,IAAIC;QAChB,IAAI;YACA,MAAMD,IAAI,OAAO,CAAC;gBAAE,UAAU;YAA2C;QAE7E,EAAE,OAAOE,KAAK;YAGV,IAAIA,IAAI,KAAK,EAAE,SAASL,0BACpB,MAAMM,cAAc,IAAI,CACpB,IAAIC,MAAM,uDACV,oIAMA,4CACAF,IAAI,OAAO;YAKnB,IAAI;gBACA,MAAMF,IAAI,uBAAuB,CAAC;oBAC9B,gBAAgB;gBACpB;YAEJ,EAAE,OAAOE,KAAK;gBACV,MAAMC,cAAc,IAAI,CACpB,IAAIC,MAAM,qDACV,wRASA,4CACAF,IAAI,OAAO;YAEnB;QACJ;IACJ;AACJ;AAEO,MAAMG,sCAAsCC,iBAAiB,oBAAoB,CAAC;IACrF,gBAAgBR;IAChB,cAAc;QAACS;KAAU;AAC7B"}
@@ -2,33 +2,23 @@ import { CoreBeforeDeploy } from "@webiny/project/abstractions/index.js";
2
2
  import { GracefulError } from "@webiny/project";
3
3
  import { CoreStackOutputService } from "../../abstractions/index.js";
4
4
  class EnsureOsWasDeployedImpl {
5
- constructor(coreStackOutputService) {
6
- this.coreStackOutputService = coreStackOutputService;
7
- }
8
- async execute() {
9
- // Get the stack output from the core application
10
- // CoreStackOutputService automatically uses env/variant/region from ProjectSdkParamsService
11
- const output = await this.coreStackOutputService.execute();
12
-
13
- // If there's no output, Core hasn't been deployed yet, so we can proceed.
14
- if (!output?.databaseSetup) {
15
- return;
5
+ constructor(coreStackOutputService){
6
+ this.coreStackOutputService = coreStackOutputService;
16
7
  }
17
-
18
- // Check if `databaseSetup` matches 'ddb+os'
19
- // If it matches, Core was deployed with OpenSearch and we can proceed.
20
- const hasDatabaseSetup = output.databaseSetup === "ddb+os";
21
- if (hasDatabaseSetup) {
22
- return;
8
+ async execute() {
9
+ const output = await this.coreStackOutputService.execute();
10
+ if (!output?.databaseSetup) return;
11
+ const hasDatabaseSetup = "ddb+os" === output.databaseSetup;
12
+ if (hasDatabaseSetup) return;
13
+ throw GracefulError.from(new Error("Cannot deploy with OpenSearch enabled. The Core application was previously deployed with a different database setup."), "Once a deployment method is chosen (%s or %s), you cannot switch between them.\n\nYour options:\n• If you want to use %s, you need to destroy and redeploy the entire project from scratch.\n• If you want to continue without %s, disable it in your %s config file.\n\nLearn more: https://webiny.link/deploy-diff-db-setup", "DynamoDB-only", "DynamoDB+OpenSearch", "OpenSearch", "OpenSearch", "webiny.config.tsx");
23
14
  }
24
-
25
- // Core was previously deployed without OpenSearch or with a different setup
26
- throw GracefulError.from(new Error("Cannot deploy with OpenSearch enabled. The Core application was previously deployed with a different database setup."), ["Once a deployment method is chosen (%s or %s), you cannot switch between them.", "", "Your options:", "• If you want to use %s, you need to destroy and redeploy the entire project from scratch.", "• If you want to continue without %s, disable it in your %s config file.", "", "Learn more: https://webiny.link/deploy-diff-db-setup"].join("\n"), "DynamoDB-only", "DynamoDB+OpenSearch", "OpenSearch", "OpenSearch", "webiny.config.tsx");
27
- }
28
15
  }
29
- export const EnsureOsWasDeployed = CoreBeforeDeploy.createImplementation({
30
- implementation: EnsureOsWasDeployedImpl,
31
- dependencies: [CoreStackOutputService]
16
+ const EnsureOsWasDeployed = CoreBeforeDeploy.createImplementation({
17
+ implementation: EnsureOsWasDeployedImpl,
18
+ dependencies: [
19
+ CoreStackOutputService
20
+ ]
32
21
  });
22
+ export { EnsureOsWasDeployed };
33
23
 
34
24
  //# sourceMappingURL=EnsureOsWasDeployed.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CoreBeforeDeploy","GracefulError","CoreStackOutputService","EnsureOsWasDeployedImpl","constructor","coreStackOutputService","execute","output","databaseSetup","hasDatabaseSetup","from","Error","join","EnsureOsWasDeployed","createImplementation","implementation","dependencies"],"sources":["EnsureOsWasDeployed.ts"],"sourcesContent":["import { CoreBeforeDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\nimport { CoreStackOutputService } from \"../../abstractions/index.js\";\n\nclass EnsureOsWasDeployedImpl implements CoreBeforeDeploy.Interface {\n constructor(private coreStackOutputService: CoreStackOutputService.Interface) {}\n\n async execute() {\n // Get the stack output from the core application\n // CoreStackOutputService automatically uses env/variant/region from ProjectSdkParamsService\n const output = await this.coreStackOutputService.execute();\n\n // If there's no output, Core hasn't been deployed yet, so we can proceed.\n if (!output?.databaseSetup) {\n return;\n }\n\n // Check if `databaseSetup` matches 'ddb+os'\n // If it matches, Core was deployed with OpenSearch and we can proceed.\n const hasDatabaseSetup = output.databaseSetup === \"ddb+os\";\n if (hasDatabaseSetup) {\n return;\n }\n\n // Core was previously deployed without OpenSearch or with a different setup\n throw GracefulError.from(\n new Error(\n \"Cannot deploy with OpenSearch enabled. The Core application was previously deployed with a different database setup.\"\n ),\n [\n \"Once a deployment method is chosen (%s or %s), you cannot switch between them.\",\n \"\",\n \"Your options:\",\n \"• If you want to use %s, you need to destroy and redeploy the entire project from scratch.\",\n \"• If you want to continue without %s, disable it in your %s config file.\",\n \"\",\n \"Learn more: https://webiny.link/deploy-diff-db-setup\"\n ].join(\"\\n\"),\n \"DynamoDB-only\",\n \"DynamoDB+OpenSearch\",\n \"OpenSearch\",\n \"OpenSearch\",\n \"webiny.config.tsx\"\n );\n }\n}\n\nexport const EnsureOsWasDeployed = CoreBeforeDeploy.createImplementation({\n implementation: EnsureOsWasDeployedImpl,\n dependencies: [CoreStackOutputService]\n});\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,uCAAuC;AACxE,SAASC,aAAa,QAAQ,iBAAiB;AAC/C,SAASC,sBAAsB;AAE/B,MAAMC,uBAAuB,CAAuC;EAChEC,WAAWA,CAASC,sBAAwD,EAAE;IAAA,KAA1DA,sBAAwD,GAAxDA,sBAAwD;EAAG;EAE/E,MAAMC,OAAOA,CAAA,EAAG;IACZ;IACA;IACA,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACF,sBAAsB,CAACC,OAAO,CAAC,CAAC;;IAE1D;IACA,IAAI,CAACC,MAAM,EAAEC,aAAa,EAAE;MACxB;IACJ;;IAEA;IACA;IACA,MAAMC,gBAAgB,GAAGF,MAAM,CAACC,aAAa,KAAK,QAAQ;IAC1D,IAAIC,gBAAgB,EAAE;MAClB;IACJ;;IAEA;IACA,MAAMR,aAAa,CAACS,IAAI,CACpB,IAAIC,KAAK,CACL,sHACJ,CAAC,EACD,CACI,gFAAgF,EAChF,EAAE,EACF,eAAe,EACf,4FAA4F,EAC5F,0EAA0E,EAC1E,EAAE,EACF,sDAAsD,CACzD,CAACC,IAAI,CAAC,IAAI,CAAC,EACZ,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,mBACJ,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,mBAAmB,GAAGb,gBAAgB,CAACc,oBAAoB,CAAC;EACrEC,cAAc,EAAEZ,uBAAuB;EACvCa,YAAY,EAAE,CAACd,sBAAsB;AACzC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/OpenSearch/EnsureOsWasDeployed.js","sources":["../../../src/extensions/OpenSearch/EnsureOsWasDeployed.ts"],"sourcesContent":["import { CoreBeforeDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { GracefulError } from \"@webiny/project\";\nimport { CoreStackOutputService } from \"../../abstractions/index.js\";\n\nclass EnsureOsWasDeployedImpl implements CoreBeforeDeploy.Interface {\n constructor(private coreStackOutputService: CoreStackOutputService.Interface) {}\n\n async execute() {\n // Get the stack output from the core application\n // CoreStackOutputService automatically uses env/variant/region from ProjectSdkParamsService\n const output = await this.coreStackOutputService.execute();\n\n // If there's no output, Core hasn't been deployed yet, so we can proceed.\n if (!output?.databaseSetup) {\n return;\n }\n\n // Check if `databaseSetup` matches 'ddb+os'\n // If it matches, Core was deployed with OpenSearch and we can proceed.\n const hasDatabaseSetup = output.databaseSetup === \"ddb+os\";\n if (hasDatabaseSetup) {\n return;\n }\n\n // Core was previously deployed without OpenSearch or with a different setup\n throw GracefulError.from(\n new Error(\n \"Cannot deploy with OpenSearch enabled. The Core application was previously deployed with a different database setup.\"\n ),\n [\n \"Once a deployment method is chosen (%s or %s), you cannot switch between them.\",\n \"\",\n \"Your options:\",\n \"• If you want to use %s, you need to destroy and redeploy the entire project from scratch.\",\n \"• If you want to continue without %s, disable it in your %s config file.\",\n \"\",\n \"Learn more: https://webiny.link/deploy-diff-db-setup\"\n ].join(\"\\n\"),\n \"DynamoDB-only\",\n \"DynamoDB+OpenSearch\",\n \"OpenSearch\",\n \"OpenSearch\",\n \"webiny.config.tsx\"\n );\n }\n}\n\nexport const EnsureOsWasDeployed = CoreBeforeDeploy.createImplementation({\n implementation: EnsureOsWasDeployedImpl,\n dependencies: [CoreStackOutputService]\n});\n"],"names":["EnsureOsWasDeployedImpl","coreStackOutputService","output","hasDatabaseSetup","GracefulError","Error","EnsureOsWasDeployed","CoreBeforeDeploy","CoreStackOutputService"],"mappings":";;;AAIA,MAAMA;IACF,YAAoBC,sBAAwD,CAAE;aAA1DA,sBAAsB,GAAtBA;IAA2D;IAE/E,MAAM,UAAU;QAGZ,MAAMC,SAAS,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO;QAGxD,IAAI,CAACA,QAAQ,eACT;QAKJ,MAAMC,mBAAmBD,AAAyB,aAAzBA,OAAO,aAAa;QAC7C,IAAIC,kBACA;QAIJ,MAAMC,cAAc,IAAI,CACpB,IAAIC,MACA,yHAEJ,iUASA,iBACA,uBACA,cACA,cACA;IAER;AACJ;AAEO,MAAMC,sBAAsBC,iBAAiB,oBAAoB,CAAC;IACrE,gBAAgBP;IAChB,cAAc;QAACQ;KAAuB;AAC1C"}
@@ -3,29 +3,33 @@ import fs from "fs";
3
3
  import { BuildAppWorkspaceService, GetApp, LoggerService } from "@webiny/project/abstractions/index.js";
4
4
  import { getTemplatesFolderPath } from "../../utils/index.js";
5
5
  class InjectDdbEsLambdaFnHandlerDecorator {
6
- constructor(getApp, logger, decoratee) {
7
- this.getApp = getApp;
8
- this.logger = logger;
9
- this.decoratee = decoratee;
10
- }
11
- async execute(appName, options) {
12
- const result = await this.decoratee.execute(appName, options);
13
- if (appName === "core") {
14
- const templatesFolderPath = getTemplatesFolderPath();
15
- const app = this.getApp.execute("core");
16
- const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
17
- const ddbToEsHandlerTemplateFolderPath = path.join(templatesFolderPath, "extensions", "OpenSearch", "coreDdbToEsHandler");
18
- fs.cpSync(ddbToEsHandlerTemplateFolderPath, appWorkspaceFolderPath, {
19
- recursive: true
20
- });
21
- this.logger.debug("Injected DDB to OpenSearch Lambda function handler.");
6
+ constructor(getApp, logger, decoratee){
7
+ this.getApp = getApp;
8
+ this.logger = logger;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(appName, options) {
12
+ const result = await this.decoratee.execute(appName, options);
13
+ if ("core" === appName) {
14
+ const templatesFolderPath = getTemplatesFolderPath();
15
+ const app = this.getApp.execute("core");
16
+ const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
17
+ const ddbToEsHandlerTemplateFolderPath = path.join(templatesFolderPath, "extensions", "OpenSearch", "coreDdbToEsHandler");
18
+ fs.cpSync(ddbToEsHandlerTemplateFolderPath, appWorkspaceFolderPath, {
19
+ recursive: true
20
+ });
21
+ this.logger.debug("Injected DDB to OpenSearch Lambda function handler.");
22
+ }
23
+ return result;
22
24
  }
23
- return result;
24
- }
25
25
  }
26
- export const InjectDdbEsLambdaFnHandler = BuildAppWorkspaceService.createDecorator({
27
- decorator: InjectDdbEsLambdaFnHandlerDecorator,
28
- dependencies: [GetApp, LoggerService]
26
+ const InjectDdbEsLambdaFnHandler = BuildAppWorkspaceService.createDecorator({
27
+ decorator: InjectDdbEsLambdaFnHandlerDecorator,
28
+ dependencies: [
29
+ GetApp,
30
+ LoggerService
31
+ ]
29
32
  });
33
+ export { InjectDdbEsLambdaFnHandler };
30
34
 
31
35
  //# sourceMappingURL=InjectDdbEsLambdaFnHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["path","fs","BuildAppWorkspaceService","GetApp","LoggerService","getTemplatesFolderPath","InjectDdbEsLambdaFnHandlerDecorator","constructor","getApp","logger","decoratee","execute","appName","options","result","templatesFolderPath","app","appWorkspaceFolderPath","paths","workspaceFolder","toString","ddbToEsHandlerTemplateFolderPath","join","cpSync","recursive","debug","InjectDdbEsLambdaFnHandler","createDecorator","decorator","dependencies"],"sources":["InjectDdbEsLambdaFnHandler.ts"],"sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport {\n BuildAppWorkspaceService,\n GetApp,\n LoggerService\n} from \"@webiny/project/abstractions/index.js\";\nimport { getTemplatesFolderPath } from \"~/utils/index.js\";\n\nclass InjectDdbEsLambdaFnHandlerDecorator implements BuildAppWorkspaceService.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private decoratee: BuildAppWorkspaceService.Interface\n ) {}\n\n async execute(appName: GetApp.AppName, options: BuildAppWorkspaceService.Options) {\n const result = await this.decoratee.execute(appName, options);\n\n if (appName === \"core\") {\n const templatesFolderPath = getTemplatesFolderPath();\n\n const app = this.getApp.execute(\"core\");\n\n const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();\n const ddbToEsHandlerTemplateFolderPath = path.join(\n templatesFolderPath,\n \"extensions\",\n \"OpenSearch\",\n \"coreDdbToEsHandler\"\n );\n\n fs.cpSync(ddbToEsHandlerTemplateFolderPath, appWorkspaceFolderPath, {\n recursive: true\n });\n\n this.logger.debug(\"Injected DDB to OpenSearch Lambda function handler.\");\n }\n\n return result;\n }\n}\n\nexport const InjectDdbEsLambdaFnHandler = BuildAppWorkspaceService.createDecorator({\n decorator: InjectDdbEsLambdaFnHandlerDecorator,\n dependencies: [GetApp, LoggerService]\n});\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,IAAI;AACnB,SACIC,wBAAwB,EACxBC,MAAM,EACNC,aAAa,QACV,uCAAuC;AAC9C,SAASC,sBAAsB;AAE/B,MAAMC,mCAAmC,CAA+C;EACpFC,WAAWA,CACCC,MAAwB,EACxBC,MAA+B,EAC/BC,SAA6C,EACvD;IAAA,KAHUF,MAAwB,GAAxBA,MAAwB;IAAA,KACxBC,MAA+B,GAA/BA,MAA+B;IAAA,KAC/BC,SAA6C,GAA7CA,SAA6C;EACtD;EAEH,MAAMC,OAAOA,CAACC,OAAuB,EAAEC,OAAyC,EAAE;IAC9E,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC;IAE7D,IAAID,OAAO,KAAK,MAAM,EAAE;MACpB,MAAMG,mBAAmB,GAAGV,sBAAsB,CAAC,CAAC;MAEpD,MAAMW,GAAG,GAAG,IAAI,CAACR,MAAM,CAACG,OAAO,CAAC,MAAM,CAAC;MAEvC,MAAMM,sBAAsB,GAAGD,GAAG,CAACE,KAAK,CAACC,eAAe,CAACC,QAAQ,CAAC,CAAC;MACnE,MAAMC,gCAAgC,GAAGrB,IAAI,CAACsB,IAAI,CAC9CP,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,oBACJ,CAAC;MAEDd,EAAE,CAACsB,MAAM,CAACF,gCAAgC,EAAEJ,sBAAsB,EAAE;QAChEO,SAAS,EAAE;MACf,CAAC,CAAC;MAEF,IAAI,CAACf,MAAM,CAACgB,KAAK,CAAC,qDAAqD,CAAC;IAC5E;IAEA,OAAOX,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMY,0BAA0B,GAAGxB,wBAAwB,CAACyB,eAAe,CAAC;EAC/EC,SAAS,EAAEtB,mCAAmC;EAC9CuB,YAAY,EAAE,CAAC1B,MAAM,EAAEC,aAAa;AACxC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js","sources":["../../../src/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.ts"],"sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport {\n BuildAppWorkspaceService,\n GetApp,\n LoggerService\n} from \"@webiny/project/abstractions/index.js\";\nimport { getTemplatesFolderPath } from \"~/utils/index.js\";\n\nclass InjectDdbEsLambdaFnHandlerDecorator implements BuildAppWorkspaceService.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private decoratee: BuildAppWorkspaceService.Interface\n ) {}\n\n async execute(appName: GetApp.AppName, options: BuildAppWorkspaceService.Options) {\n const result = await this.decoratee.execute(appName, options);\n\n if (appName === \"core\") {\n const templatesFolderPath = getTemplatesFolderPath();\n\n const app = this.getApp.execute(\"core\");\n\n const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();\n const ddbToEsHandlerTemplateFolderPath = path.join(\n templatesFolderPath,\n \"extensions\",\n \"OpenSearch\",\n \"coreDdbToEsHandler\"\n );\n\n fs.cpSync(ddbToEsHandlerTemplateFolderPath, appWorkspaceFolderPath, {\n recursive: true\n });\n\n this.logger.debug(\"Injected DDB to OpenSearch Lambda function handler.\");\n }\n\n return result;\n }\n}\n\nexport const InjectDdbEsLambdaFnHandler = BuildAppWorkspaceService.createDecorator({\n decorator: InjectDdbEsLambdaFnHandlerDecorator,\n dependencies: [GetApp, LoggerService]\n});\n"],"names":["InjectDdbEsLambdaFnHandlerDecorator","getApp","logger","decoratee","appName","options","result","templatesFolderPath","getTemplatesFolderPath","app","appWorkspaceFolderPath","ddbToEsHandlerTemplateFolderPath","path","fs","InjectDdbEsLambdaFnHandler","BuildAppWorkspaceService","GetApp","LoggerService"],"mappings":";;;;AASA,MAAMA;IACF,YACYC,MAAwB,EACxBC,MAA+B,EAC/BC,SAA6C,CACvD;aAHUF,MAAM,GAANA;aACAC,MAAM,GAANA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,OAAuB,EAAEC,OAAyC,EAAE;QAC9E,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF,SAASC;QAErD,IAAID,AAAY,WAAZA,SAAoB;YACpB,MAAMG,sBAAsBC;YAE5B,MAAMC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAEhC,MAAMC,yBAAyBD,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ;YACjE,MAAME,mCAAmCC,KAAK,IAAI,CAC9CL,qBACA,cACA,cACA;YAGJM,GAAG,MAAM,CAACF,kCAAkCD,wBAAwB;gBAChE,WAAW;YACf;YAEA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACtB;QAEA,OAAOJ;IACX;AACJ;AAEO,MAAMQ,6BAA6BC,yBAAyB,eAAe,CAAC;IAC/E,WAAWf;IACX,cAAc;QAACgB;QAAQC;KAAc;AACzC"}
@@ -3,30 +3,34 @@ import fs from "fs";
3
3
  import { BuildAppWorkspaceService, GetApp, LoggerService } from "@webiny/project/abstractions/index.js";
4
4
  import { getTemplatesFolderPath } from "../../utils/index.js";
5
5
  class ReplaceApiLambdaFnHandlerDecorator {
6
- constructor(getApp, logger, decoratee) {
7
- this.getApp = getApp;
8
- this.logger = logger;
9
- this.decoratee = decoratee;
10
- }
11
- async execute(appName, options = {}) {
12
- const result = await this.decoratee.execute(appName, options);
13
- if (appName === "api") {
14
- const templatesFolderPath = getTemplatesFolderPath();
15
- const app = this.getApp.execute("api");
16
- const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
17
- const apiLambdaFnHandlersFolderPath = path.join(templatesFolderPath, "extensions", "OpenSearch", "api");
18
- fs.cpSync(apiLambdaFnHandlersFolderPath, appWorkspaceFolderPath, {
19
- recursive: true,
20
- force: true
21
- });
22
- this.logger.debug("Replaced API Lambda function handlers with OpenSearch versions.");
6
+ constructor(getApp, logger, decoratee){
7
+ this.getApp = getApp;
8
+ this.logger = logger;
9
+ this.decoratee = decoratee;
10
+ }
11
+ async execute(appName, options = {}) {
12
+ const result = await this.decoratee.execute(appName, options);
13
+ if ("api" === appName) {
14
+ const templatesFolderPath = getTemplatesFolderPath();
15
+ const app = this.getApp.execute("api");
16
+ const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
17
+ const apiLambdaFnHandlersFolderPath = path.join(templatesFolderPath, "extensions", "OpenSearch", "api");
18
+ fs.cpSync(apiLambdaFnHandlersFolderPath, appWorkspaceFolderPath, {
19
+ recursive: true,
20
+ force: true
21
+ });
22
+ this.logger.debug("Replaced API Lambda function handlers with OpenSearch versions.");
23
+ }
24
+ return result;
23
25
  }
24
- return result;
25
- }
26
26
  }
27
- export const ReplaceApiLambdaFnHandlers = BuildAppWorkspaceService.createDecorator({
28
- decorator: ReplaceApiLambdaFnHandlerDecorator,
29
- dependencies: [GetApp, LoggerService]
27
+ const ReplaceApiLambdaFnHandlers = BuildAppWorkspaceService.createDecorator({
28
+ decorator: ReplaceApiLambdaFnHandlerDecorator,
29
+ dependencies: [
30
+ GetApp,
31
+ LoggerService
32
+ ]
30
33
  });
34
+ export { ReplaceApiLambdaFnHandlers };
31
35
 
32
36
  //# sourceMappingURL=ReplaceApiLambdaFnHandlers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["path","fs","BuildAppWorkspaceService","GetApp","LoggerService","getTemplatesFolderPath","ReplaceApiLambdaFnHandlerDecorator","constructor","getApp","logger","decoratee","execute","appName","options","result","templatesFolderPath","app","appWorkspaceFolderPath","paths","workspaceFolder","toString","apiLambdaFnHandlersFolderPath","join","cpSync","recursive","force","debug","ReplaceApiLambdaFnHandlers","createDecorator","decorator","dependencies"],"sources":["ReplaceApiLambdaFnHandlers.ts"],"sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport {\n BuildAppWorkspaceService,\n GetApp,\n LoggerService\n} from \"@webiny/project/abstractions/index.js\";\nimport { getTemplatesFolderPath } from \"~/utils/index.js\";\n\nclass ReplaceApiLambdaFnHandlerDecorator implements BuildAppWorkspaceService.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private decoratee: BuildAppWorkspaceService.Interface\n ) {}\n\n async execute(appName: GetApp.AppName, options: BuildAppWorkspaceService.Options = {}) {\n const result = await this.decoratee.execute(appName, options);\n if (appName === \"api\") {\n const templatesFolderPath = getTemplatesFolderPath();\n\n const app = this.getApp.execute(\"api\");\n\n const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();\n const apiLambdaFnHandlersFolderPath = path.join(\n templatesFolderPath,\n \"extensions\",\n \"OpenSearch\",\n \"api\"\n );\n\n fs.cpSync(apiLambdaFnHandlersFolderPath, appWorkspaceFolderPath, {\n recursive: true,\n force: true\n });\n\n this.logger.debug(\"Replaced API Lambda function handlers with OpenSearch versions.\");\n }\n\n return result;\n }\n}\n\nexport const ReplaceApiLambdaFnHandlers = BuildAppWorkspaceService.createDecorator({\n decorator: ReplaceApiLambdaFnHandlerDecorator,\n dependencies: [GetApp, LoggerService]\n});\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,OAAOC,EAAE,MAAM,IAAI;AACnB,SACIC,wBAAwB,EACxBC,MAAM,EACNC,aAAa,QACV,uCAAuC;AAC9C,SAASC,sBAAsB;AAE/B,MAAMC,kCAAkC,CAA+C;EACnFC,WAAWA,CACCC,MAAwB,EACxBC,MAA+B,EAC/BC,SAA6C,EACvD;IAAA,KAHUF,MAAwB,GAAxBA,MAAwB;IAAA,KACxBC,MAA+B,GAA/BA,MAA+B;IAAA,KAC/BC,SAA6C,GAA7CA,SAA6C;EACtD;EAEH,MAAMC,OAAOA,CAACC,OAAuB,EAAEC,OAAyC,GAAG,CAAC,CAAC,EAAE;IACnF,MAAMC,MAAM,GAAG,MAAM,IAAI,CAACJ,SAAS,CAACC,OAAO,CAACC,OAAO,EAAEC,OAAO,CAAC;IAC7D,IAAID,OAAO,KAAK,KAAK,EAAE;MACnB,MAAMG,mBAAmB,GAAGV,sBAAsB,CAAC,CAAC;MAEpD,MAAMW,GAAG,GAAG,IAAI,CAACR,MAAM,CAACG,OAAO,CAAC,KAAK,CAAC;MAEtC,MAAMM,sBAAsB,GAAGD,GAAG,CAACE,KAAK,CAACC,eAAe,CAACC,QAAQ,CAAC,CAAC;MACnE,MAAMC,6BAA6B,GAAGrB,IAAI,CAACsB,IAAI,CAC3CP,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,KACJ,CAAC;MAEDd,EAAE,CAACsB,MAAM,CAACF,6BAA6B,EAAEJ,sBAAsB,EAAE;QAC7DO,SAAS,EAAE,IAAI;QACfC,KAAK,EAAE;MACX,CAAC,CAAC;MAEF,IAAI,CAAChB,MAAM,CAACiB,KAAK,CAAC,iEAAiE,CAAC;IACxF;IAEA,OAAOZ,MAAM;EACjB;AACJ;AAEA,OAAO,MAAMa,0BAA0B,GAAGzB,wBAAwB,CAAC0B,eAAe,CAAC;EAC/EC,SAAS,EAAEvB,kCAAkC;EAC7CwB,YAAY,EAAE,CAAC3B,MAAM,EAAEC,aAAa;AACxC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js","sources":["../../../src/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.ts"],"sourcesContent":["import path from \"path\";\nimport fs from \"fs\";\nimport {\n BuildAppWorkspaceService,\n GetApp,\n LoggerService\n} from \"@webiny/project/abstractions/index.js\";\nimport { getTemplatesFolderPath } from \"~/utils/index.js\";\n\nclass ReplaceApiLambdaFnHandlerDecorator implements BuildAppWorkspaceService.Interface {\n constructor(\n private getApp: GetApp.Interface,\n private logger: LoggerService.Interface,\n private decoratee: BuildAppWorkspaceService.Interface\n ) {}\n\n async execute(appName: GetApp.AppName, options: BuildAppWorkspaceService.Options = {}) {\n const result = await this.decoratee.execute(appName, options);\n if (appName === \"api\") {\n const templatesFolderPath = getTemplatesFolderPath();\n\n const app = this.getApp.execute(\"api\");\n\n const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();\n const apiLambdaFnHandlersFolderPath = path.join(\n templatesFolderPath,\n \"extensions\",\n \"OpenSearch\",\n \"api\"\n );\n\n fs.cpSync(apiLambdaFnHandlersFolderPath, appWorkspaceFolderPath, {\n recursive: true,\n force: true\n });\n\n this.logger.debug(\"Replaced API Lambda function handlers with OpenSearch versions.\");\n }\n\n return result;\n }\n}\n\nexport const ReplaceApiLambdaFnHandlers = BuildAppWorkspaceService.createDecorator({\n decorator: ReplaceApiLambdaFnHandlerDecorator,\n dependencies: [GetApp, LoggerService]\n});\n"],"names":["ReplaceApiLambdaFnHandlerDecorator","getApp","logger","decoratee","appName","options","result","templatesFolderPath","getTemplatesFolderPath","app","appWorkspaceFolderPath","apiLambdaFnHandlersFolderPath","path","fs","ReplaceApiLambdaFnHandlers","BuildAppWorkspaceService","GetApp","LoggerService"],"mappings":";;;;AASA,MAAMA;IACF,YACYC,MAAwB,EACxBC,MAA+B,EAC/BC,SAA6C,CACvD;aAHUF,MAAM,GAANA;aACAC,MAAM,GAANA;aACAC,SAAS,GAATA;IACT;IAEH,MAAM,QAAQC,OAAuB,EAAEC,UAA4C,CAAC,CAAC,EAAE;QACnF,MAAMC,SAAS,MAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAACF,SAASC;QACrD,IAAID,AAAY,UAAZA,SAAmB;YACnB,MAAMG,sBAAsBC;YAE5B,MAAMC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAEhC,MAAMC,yBAAyBD,IAAI,KAAK,CAAC,eAAe,CAAC,QAAQ;YACjE,MAAME,gCAAgCC,KAAK,IAAI,CAC3CL,qBACA,cACA,cACA;YAGJM,GAAG,MAAM,CAACF,+BAA+BD,wBAAwB;gBAC7D,WAAW;gBACX,OAAO;YACX;YAEA,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACtB;QAEA,OAAOJ;IACX;AACJ;AAEO,MAAMQ,6BAA6BC,yBAAyB,eAAe,CAAC;IAC/E,WAAWf;IACX,cAAc;QAACgB;QAAQC;KAAc;AACzC"}
@@ -1,38 +1,37 @@
1
- import React from "react";
1
+ import react from "react";
2
2
  import { defineExtension } from "@webiny/project/defineExtension/index.js";
3
- import { OpenSearch as PulumiOpenSearch } from "../pulumi/extensions/index.js";
3
+ import { OpenSearch } from "../pulumi/extensions/index.js";
4
4
  import { createPathResolver } from "@webiny/project";
5
- import { CoreBeforeDeploy, ProjectDecorator, DatabaseSetup } from "@webiny/project/extensions/index.js";
5
+ import { CoreBeforeDeploy, DatabaseSetup, ProjectDecorator } from "@webiny/project/extensions/index.js";
6
6
  import { z } from "zod";
7
7
  const p = createPathResolver(import.meta.dirname, "OpenSearch");
8
- export const OpenSearch = defineExtension({
9
- type: "Project/OpenSearch",
10
- tags: {
11
- runtimeContext: "project"
12
- },
13
- description: "Enable and configure Opensearch integration with project-level setup.",
14
- paramsSchema: z.object({
15
- enabled: z.boolean().describe("Whether to enable OpenSearch.").default(false).optional(),
16
- domainName: z.string().describe("The name of the Opensearch domain.").optional(),
17
- indexPrefix: z.string().describe("A prefix to be added to all Opensearch indexes.").optional(),
18
- sharedIndexes: z.boolean().describe("Whether to use shared indexes across all environments (true) or separate indexes per environment (false).").default(false).optional(),
19
- endpoint: z.string().describe("The endpoint of an existing OpenSearch cluster. Useful when cluster is behind a custom domain.").optional(),
20
- username: z.string().describe("The username for OpenSearch authentication.").optional(),
21
- password: z.string().describe("The password for OpenSearch authentication.").optional()
22
- }),
23
- render: props => {
24
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(PulumiOpenSearch, props), props.enabled && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DatabaseSetup, {
25
- setupName: "ddb+os"
26
- }), /*#__PURE__*/React.createElement(ProjectDecorator, {
27
- src: p("InjectDdbEsLambdaFnHandler.js")
28
- }), /*#__PURE__*/React.createElement(ProjectDecorator, {
29
- src: p("ReplaceApiLambdaFnHandlers.js")
30
- }), /*#__PURE__*/React.createElement(CoreBeforeDeploy, {
31
- src: p("EnsureOsServiceRoleBeforeCoreDeploy.js")
32
- }), /*#__PURE__*/React.createElement(CoreBeforeDeploy, {
33
- src: p("EnsureOsWasDeployed.js")
34
- })));
35
- }
8
+ const OpenSearch_OpenSearch = defineExtension({
9
+ type: "Project/OpenSearch",
10
+ tags: {
11
+ runtimeContext: "project"
12
+ },
13
+ description: "Enable and configure Opensearch integration with project-level setup.",
14
+ paramsSchema: z.object({
15
+ enabled: z.boolean().describe("Whether to enable OpenSearch.").default(false).optional(),
16
+ domainName: z.string().describe("The name of the Opensearch domain.").optional(),
17
+ indexPrefix: z.string().describe("A prefix to be added to all Opensearch indexes.").optional(),
18
+ sharedIndexes: z.boolean().describe("Whether to use shared indexes across all environments (true) or separate indexes per environment (false).").default(false).optional(),
19
+ endpoint: z.string().describe("The endpoint of an existing OpenSearch cluster. Useful when cluster is behind a custom domain.").optional(),
20
+ username: z.string().describe("The username for OpenSearch authentication.").optional(),
21
+ password: z.string().describe("The password for OpenSearch authentication.").optional()
22
+ }),
23
+ render: (props)=>/*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(OpenSearch, props), props.enabled && /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(DatabaseSetup, {
24
+ setupName: "ddb+os"
25
+ }), /*#__PURE__*/ react.createElement(ProjectDecorator, {
26
+ src: p("InjectDdbEsLambdaFnHandler.js")
27
+ }), /*#__PURE__*/ react.createElement(ProjectDecorator, {
28
+ src: p("ReplaceApiLambdaFnHandlers.js")
29
+ }), /*#__PURE__*/ react.createElement(CoreBeforeDeploy, {
30
+ src: p("EnsureOsServiceRoleBeforeCoreDeploy.js")
31
+ }), /*#__PURE__*/ react.createElement(CoreBeforeDeploy, {
32
+ src: p("EnsureOsWasDeployed.js")
33
+ })))
36
34
  });
35
+ export { OpenSearch_OpenSearch as OpenSearch };
37
36
 
38
37
  //# sourceMappingURL=OpenSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","defineExtension","OpenSearch","PulumiOpenSearch","createPathResolver","CoreBeforeDeploy","ProjectDecorator","DatabaseSetup","z","p","import","meta","dirname","type","tags","runtimeContext","description","paramsSchema","object","enabled","boolean","describe","default","optional","domainName","string","indexPrefix","sharedIndexes","endpoint","username","password","render","props","createElement","Fragment","setupName","src"],"sources":["OpenSearch.tsx"],"sourcesContent":["import React from \"react\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\nimport { OpenSearch as PulumiOpenSearch } from \"~/pulumi/extensions/index.js\";\nimport { createPathResolver } from \"@webiny/project\";\nimport {\n CoreBeforeDeploy,\n ProjectDecorator,\n DatabaseSetup\n} from \"@webiny/project/extensions/index.js\";\nimport { z } from \"zod\";\n\nconst p = createPathResolver(import.meta.dirname, \"OpenSearch\");\n\nexport const OpenSearch = defineExtension({\n type: \"Project/OpenSearch\",\n tags: { runtimeContext: \"project\" },\n description: \"Enable and configure Opensearch integration with project-level setup.\",\n paramsSchema: z.object({\n enabled: z.boolean().describe(\"Whether to enable OpenSearch.\").default(false).optional(),\n domainName: z.string().describe(\"The name of the Opensearch domain.\").optional(),\n indexPrefix: z\n .string()\n .describe(\"A prefix to be added to all Opensearch indexes.\")\n .optional(),\n sharedIndexes: z\n .boolean()\n .describe(\n \"Whether to use shared indexes across all environments (true) or separate indexes per environment (false).\"\n )\n .default(false)\n .optional(),\n endpoint: z\n .string()\n .describe(\n \"The endpoint of an existing OpenSearch cluster. Useful when cluster is behind a custom domain.\"\n )\n .optional(),\n username: z.string().describe(\"The username for OpenSearch authentication.\").optional(),\n password: z.string().describe(\"The password for OpenSearch authentication.\").optional()\n }),\n render: props => {\n return (\n <>\n <PulumiOpenSearch {...props} />\n {props.enabled && (\n <>\n {/* Override database setup to indicate OpenSearch is enabled. */}\n <DatabaseSetup setupName=\"ddb+os\" />\n <ProjectDecorator src={p(\"InjectDdbEsLambdaFnHandler.js\")} />\n <ProjectDecorator src={p(\"ReplaceApiLambdaFnHandlers.js\")} />\n <CoreBeforeDeploy src={p(\"EnsureOsServiceRoleBeforeCoreDeploy.js\")} />\n <CoreBeforeDeploy src={p(\"EnsureOsWasDeployed.js\")} />\n </>\n )}\n </>\n );\n }\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,eAAe,QAAQ,0CAA0C;AAC1E,SAASC,UAAU,IAAIC,gBAAgB;AACvC,SAASC,kBAAkB,QAAQ,iBAAiB;AACpD,SACIC,gBAAgB,EAChBC,gBAAgB,EAChBC,aAAa,QACV,qCAAqC;AAC5C,SAASC,CAAC,QAAQ,KAAK;AAEvB,MAAMC,CAAC,GAAGL,kBAAkB,CAACM,MAAM,CAACC,IAAI,CAACC,OAAO,EAAE,YAAY,CAAC;AAE/D,OAAO,MAAMV,UAAU,GAAGD,eAAe,CAAC;EACtCY,IAAI,EAAE,oBAAoB;EAC1BC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,uEAAuE;EACpFC,YAAY,EAAET,CAAC,CAACU,MAAM,CAAC;IACnBC,OAAO,EAAEX,CAAC,CAACY,OAAO,CAAC,CAAC,CAACC,QAAQ,CAAC,+BAA+B,CAAC,CAACC,OAAO,CAAC,KAAK,CAAC,CAACC,QAAQ,CAAC,CAAC;IACxFC,UAAU,EAAEhB,CAAC,CAACiB,MAAM,CAAC,CAAC,CAACJ,QAAQ,CAAC,oCAAoC,CAAC,CAACE,QAAQ,CAAC,CAAC;IAChFG,WAAW,EAAElB,CAAC,CACTiB,MAAM,CAAC,CAAC,CACRJ,QAAQ,CAAC,iDAAiD,CAAC,CAC3DE,QAAQ,CAAC,CAAC;IACfI,aAAa,EAAEnB,CAAC,CACXY,OAAO,CAAC,CAAC,CACTC,QAAQ,CACL,2GACJ,CAAC,CACAC,OAAO,CAAC,KAAK,CAAC,CACdC,QAAQ,CAAC,CAAC;IACfK,QAAQ,EAAEpB,CAAC,CACNiB,MAAM,CAAC,CAAC,CACRJ,QAAQ,CACL,gGACJ,CAAC,CACAE,QAAQ,CAAC,CAAC;IACfM,QAAQ,EAAErB,CAAC,CAACiB,MAAM,CAAC,CAAC,CAACJ,QAAQ,CAAC,6CAA6C,CAAC,CAACE,QAAQ,CAAC,CAAC;IACvFO,QAAQ,EAAEtB,CAAC,CAACiB,MAAM,CAAC,CAAC,CAACJ,QAAQ,CAAC,6CAA6C,CAAC,CAACE,QAAQ,CAAC;EAC1F,CAAC,CAAC;EACFQ,MAAM,EAAEC,KAAK,IAAI;IACb,oBACIhC,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,qBACIlC,KAAA,CAAAiC,aAAA,CAAC9B,gBAAgB,EAAK6B,KAAQ,CAAC,EAC9BA,KAAK,CAACb,OAAO,iBACVnB,KAAA,CAAAiC,aAAA,CAAAjC,KAAA,CAAAkC,QAAA,qBAEIlC,KAAA,CAAAiC,aAAA,CAAC1B,aAAa;MAAC4B,SAAS,EAAC;IAAQ,CAAE,CAAC,eACpCnC,KAAA,CAAAiC,aAAA,CAAC3B,gBAAgB;MAAC8B,GAAG,EAAE3B,CAAC,CAAC,+BAA+B;IAAE,CAAE,CAAC,eAC7DT,KAAA,CAAAiC,aAAA,CAAC3B,gBAAgB;MAAC8B,GAAG,EAAE3B,CAAC,CAAC,+BAA+B;IAAE,CAAE,CAAC,eAC7DT,KAAA,CAAAiC,aAAA,CAAC5B,gBAAgB;MAAC+B,GAAG,EAAE3B,CAAC,CAAC,wCAAwC;IAAE,CAAE,CAAC,eACtET,KAAA,CAAAiC,aAAA,CAAC5B,gBAAgB;MAAC+B,GAAG,EAAE3B,CAAC,CAAC,wBAAwB;IAAE,CAAE,CACvD,CAER,CAAC;EAEX;AACJ,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/OpenSearch.js","sources":["../../src/extensions/OpenSearch.tsx"],"sourcesContent":["import React from \"react\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\nimport { OpenSearch as PulumiOpenSearch } from \"~/pulumi/extensions/index.js\";\nimport { createPathResolver } from \"@webiny/project\";\nimport {\n CoreBeforeDeploy,\n ProjectDecorator,\n DatabaseSetup\n} from \"@webiny/project/extensions/index.js\";\nimport { z } from \"zod\";\n\nconst p = createPathResolver(import.meta.dirname, \"OpenSearch\");\n\nexport const OpenSearch = defineExtension({\n type: \"Project/OpenSearch\",\n tags: { runtimeContext: \"project\" },\n description: \"Enable and configure Opensearch integration with project-level setup.\",\n paramsSchema: z.object({\n enabled: z.boolean().describe(\"Whether to enable OpenSearch.\").default(false).optional(),\n domainName: z.string().describe(\"The name of the Opensearch domain.\").optional(),\n indexPrefix: z\n .string()\n .describe(\"A prefix to be added to all Opensearch indexes.\")\n .optional(),\n sharedIndexes: z\n .boolean()\n .describe(\n \"Whether to use shared indexes across all environments (true) or separate indexes per environment (false).\"\n )\n .default(false)\n .optional(),\n endpoint: z\n .string()\n .describe(\n \"The endpoint of an existing OpenSearch cluster. Useful when cluster is behind a custom domain.\"\n )\n .optional(),\n username: z.string().describe(\"The username for OpenSearch authentication.\").optional(),\n password: z.string().describe(\"The password for OpenSearch authentication.\").optional()\n }),\n render: props => {\n return (\n <>\n <PulumiOpenSearch {...props} />\n {props.enabled && (\n <>\n {/* Override database setup to indicate OpenSearch is enabled. */}\n <DatabaseSetup setupName=\"ddb+os\" />\n <ProjectDecorator src={p(\"InjectDdbEsLambdaFnHandler.js\")} />\n <ProjectDecorator src={p(\"ReplaceApiLambdaFnHandlers.js\")} />\n <CoreBeforeDeploy src={p(\"EnsureOsServiceRoleBeforeCoreDeploy.js\")} />\n <CoreBeforeDeploy src={p(\"EnsureOsWasDeployed.js\")} />\n </>\n )}\n </>\n );\n }\n});\n"],"names":["p","createPathResolver","OpenSearch","defineExtension","z","props","PulumiOpenSearch","DatabaseSetup","ProjectDecorator","CoreBeforeDeploy"],"mappings":";;;;;;AAWA,MAAMA,IAAIC,mBAAmB,YAAY,OAAO,EAAE;AAE3C,MAAMC,wBAAaC,gBAAgB;IACtC,MAAM;IACN,MAAM;QAAE,gBAAgB;IAAU;IAClC,aAAa;IACb,cAAcC,EAAE,MAAM,CAAC;QACnB,SAASA,EAAE,OAAO,GAAG,QAAQ,CAAC,iCAAiC,OAAO,CAAC,OAAO,QAAQ;QACtF,YAAYA,EAAE,MAAM,GAAG,QAAQ,CAAC,sCAAsC,QAAQ;QAC9E,aAAaA,EAAAA,MACF,GACN,QAAQ,CAAC,mDACT,QAAQ;QACb,eAAeA,EAAAA,OACH,GACP,QAAQ,CACL,6GAEH,OAAO,CAAC,OACR,QAAQ;QACb,UAAUA,EAAAA,MACC,GACN,QAAQ,CACL,kGAEH,QAAQ;QACb,UAAUA,EAAE,MAAM,GAAG,QAAQ,CAAC,+CAA+C,QAAQ;QACrF,UAAUA,EAAE,MAAM,GAAG,QAAQ,CAAC,+CAA+C,QAAQ;IACzF;IACA,QAAQC,CAAAA,QACG,WAAP,GACI,wDACI,oBAACC,YAAqBD,QACrBA,MAAM,OAAO,IAAI,WAAJ,GACV,wDAEI,oBAACE,eAAaA;YAAC,WAAU;0BACzB,oBAACC,kBAAgBA;YAAC,KAAKR,EAAE;0BACzB,oBAACQ,kBAAgBA;YAAC,KAAKR,EAAE;0BACzB,oBAACS,kBAAgBA;YAAC,KAAKT,EAAE;0BACzB,oBAACS,kBAAgBA;YAAC,KAAKT,EAAE;;AAMjD"}
@@ -1,3 +1 @@
1
1
  export { AdminStackOutputService } from "../../services/AdminStackOutputService.js";
2
-
3
- //# sourceMappingURL=AdminStackOutputService.js.map
@@ -1,3 +1 @@
1
1
  export { ApiStackOutputService } from "../../services/ApiStackOutputService.js";
2
-
3
- //# sourceMappingURL=ApiStackOutputService.js.map
@@ -30,83 +30,74 @@ const INSTALL_MUTATION = `
30
30
  }
31
31
  `;
32
32
  class AutoInstallAfterApiDeployImpl {
33
- constructor(apiGqlClient, ui, getProjectConfig, logger) {
34
- this.apiGqlClient = apiGqlClient;
35
- this.ui = ui;
36
- this.getProjectConfig = getProjectConfig;
37
- this.logger = logger;
38
- }
39
- async execute(params) {
40
- if (params.preview) {
41
- // Skip auto-install on preview deployments
42
- return;
33
+ constructor(apiGqlClient, ui, getProjectConfig, logger){
34
+ this.apiGqlClient = apiGqlClient;
35
+ this.ui = ui;
36
+ this.getProjectConfig = getProjectConfig;
37
+ this.logger = logger;
43
38
  }
44
- const projectConfig = await this.getProjectConfig.execute();
45
- const adminAutoInstallExtensions = projectConfig.extensionsByType("Project/AutoInstall");
46
- if (adminAutoInstallExtensions.length === 0) {
47
- return;
48
- }
49
- const config = adminAutoInstallExtensions[0].params;
50
-
51
- // Check if system is already installed
52
- this.ui.info("Checking if system is already installed...");
53
- try {
54
- const isInstalledResponse = await this.apiGqlClient.query({
55
- query: IS_INSTALLED_QUERY
56
- });
57
- if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {
58
- this.ui.info("System is already installed, skipping auto-install.");
59
- return;
60
- }
61
- } catch (error) {
62
- this.logger.error("Failed to check installation status", {
63
- error
64
- });
65
- this.ui.warning(`Could not check installation status: ${error.message}`);
66
- return;
67
- }
68
- this.ui.info("Auto-installing...");
69
- /**
70
- * Type Error introduced with Zod v4. V3 had any type.
71
- */
72
- // @ts-expect-error
73
- const adminUser = config.adminUser || {
74
- firstName: "John",
75
- lastName: "Smith",
76
- email: "admin@webiny.com",
77
- password: "12345678"
78
- };
79
- const variables = {
80
- installationInput: [{
81
- app: "Cognito",
82
- data: adminUser
83
- }]
84
- };
85
- const installResponse = await this.apiGqlClient.mutation({
86
- mutation: INSTALL_MUTATION,
87
- variables
88
- });
89
- if (installResponse.data?.system.installSystem.error) {
90
- const {
91
- message,
92
- code
93
- } = installResponse.data.system.installSystem.error;
94
- this.logger.error("Installation failed", {
95
- message,
96
- code
97
- });
98
- this.ui.error(`Installation failed: ${message} (${code})`);
99
- throw new Error(message);
39
+ async execute(params) {
40
+ if (params.preview) return;
41
+ const projectConfig = await this.getProjectConfig.execute();
42
+ const adminAutoInstallExtensions = projectConfig.extensionsByType("Project/AutoInstall");
43
+ if (0 === adminAutoInstallExtensions.length) return;
44
+ const config = adminAutoInstallExtensions[0].params;
45
+ this.ui.info("Checking if system is already installed...");
46
+ try {
47
+ const isInstalledResponse = await this.apiGqlClient.query({
48
+ query: IS_INSTALLED_QUERY
49
+ });
50
+ if (isInstalledResponse.data?.system.isSystemInstalled.data === true) return void this.ui.info("System is already installed, skipping auto-install.");
51
+ } catch (error) {
52
+ this.logger.error("Failed to check installation status", {
53
+ error
54
+ });
55
+ this.ui.warning(`Could not check installation status: ${error.message}`);
56
+ return;
57
+ }
58
+ this.ui.info("Auto-installing...");
59
+ const adminUser = config.adminUser || {
60
+ firstName: "John",
61
+ lastName: "Smith",
62
+ email: "admin@webiny.com",
63
+ password: "12345678"
64
+ };
65
+ const variables = {
66
+ installationInput: [
67
+ {
68
+ app: "Cognito",
69
+ data: adminUser
70
+ }
71
+ ]
72
+ };
73
+ const installResponse = await this.apiGqlClient.mutation({
74
+ mutation: INSTALL_MUTATION,
75
+ variables
76
+ });
77
+ if (installResponse.data?.system.installSystem.error) {
78
+ const { message, code } = installResponse.data.system.installSystem.error;
79
+ this.logger.error("Installation failed", {
80
+ message,
81
+ code
82
+ });
83
+ this.ui.error(`Installation failed: ${message} (${code})`);
84
+ throw new Error(message);
85
+ }
86
+ this.ui.success("System installed successfully!");
87
+ this.ui.info("Admin credentials:");
88
+ this.ui.info(` Email: ${adminUser.email}`);
89
+ this.ui.info(` Password: ${adminUser.password}`);
100
90
  }
101
- this.ui.success("System installed successfully!");
102
- this.ui.info("Admin credentials:");
103
- this.ui.info(` Email: ${adminUser.email}`);
104
- this.ui.info(` Password: ${adminUser.password}`);
105
- }
106
91
  }
107
- export const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({
108
- implementation: AutoInstallAfterApiDeployImpl,
109
- dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]
92
+ const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({
93
+ implementation: AutoInstallAfterApiDeployImpl,
94
+ dependencies: [
95
+ ApiGqlClient,
96
+ UiService,
97
+ GetProjectConfigService,
98
+ LoggerService
99
+ ]
110
100
  });
101
+ export { AutoInstallAfterApiDeploy };
111
102
 
112
103
  //# sourceMappingURL=AutoInstallAfterApiDeploy.js.map