@webiny/project-aws 6.3.0-beta.4 → 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 +1 @@
1
- {"version":3,"names":["ApiAfterDeploy","UiService","LoggerService","GetProjectConfigService","ApiGqlClient","IS_INSTALLED_QUERY","INSTALL_MUTATION","AutoInstallAfterApiDeployImpl","constructor","apiGqlClient","ui","getProjectConfig","logger","execute","params","preview","projectConfig","adminAutoInstallExtensions","extensionsByType","length","config","info","isInstalledResponse","query","data","system","isSystemInstalled","error","warning","message","adminUser","firstName","lastName","email","password","variables","installationInput","app","installResponse","mutation","installSystem","code","Error","success","AutoInstallAfterApiDeploy","createImplementation","implementation","dependencies"],"sources":["AutoInstallAfterApiDeploy.ts"],"sourcesContent":["import { ApiAfterDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { UiService } from \"@webiny/project/abstractions/services/UiService.js\";\nimport { LoggerService } from \"@webiny/project/abstractions/services/LoggerService.js\";\nimport { GetProjectConfigService } from \"@webiny/project/abstractions\";\nimport { ApiGqlClient } from \"~/abstractions/ApiGqlClient.js\";\n\nconst IS_INSTALLED_QUERY = `\n query IsSystemInstalled {\n system {\n isSystemInstalled {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\nconst INSTALL_MUTATION = `\n mutation InstallSystem($installationInput: JSON!) {\n system {\n installSystem(installationInput: $installationInput) {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\ninterface IsInstalledResponse {\n system: {\n isSystemInstalled: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\ninterface InstallResponse {\n system: {\n installSystem: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\nclass AutoInstallAfterApiDeployImpl implements ApiAfterDeploy.Interface {\n constructor(\n private apiGqlClient: ApiGqlClient.Interface,\n private ui: UiService.Interface,\n private getProjectConfig: GetProjectConfigService.Interface,\n private logger: LoggerService.Interface\n ) {}\n\n async execute(params: ApiAfterDeploy.Params): Promise<void> {\n if (params.preview) {\n // Skip auto-install on preview deployments\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const adminAutoInstallExtensions = projectConfig.extensionsByType(\"Project/AutoInstall\");\n\n if (adminAutoInstallExtensions.length === 0) {\n return;\n }\n\n const config = adminAutoInstallExtensions[0].params;\n\n // Check if system is already installed\n this.ui.info(\"Checking if system is already installed...\");\n\n try {\n const isInstalledResponse = await this.apiGqlClient.query<IsInstalledResponse>({\n query: IS_INSTALLED_QUERY\n });\n\n if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {\n this.ui.info(\"System is already installed, skipping auto-install.\");\n return;\n }\n } catch (error: any) {\n this.logger.error(\"Failed to check installation status\", { error });\n this.ui.warning(`Could not check installation status: ${error.message}`);\n return;\n }\n\n this.ui.info(\"Auto-installing...\");\n /**\n * Type Error introduced with Zod v4. V3 had any type.\n */\n // @ts-expect-error\n const adminUser = config.adminUser || {\n firstName: \"John\",\n lastName: \"Smith\",\n email: \"admin@webiny.com\",\n password: \"12345678\"\n };\n\n const variables = {\n installationInput: [\n {\n app: \"Cognito\",\n data: adminUser\n }\n ]\n };\n\n const installResponse = await this.apiGqlClient.mutation<InstallResponse>({\n mutation: INSTALL_MUTATION,\n variables\n });\n\n if (installResponse.data?.system.installSystem.error) {\n const { message, code } = installResponse.data.system.installSystem.error;\n this.logger.error(\"Installation failed\", { message, code });\n this.ui.error(`Installation failed: ${message} (${code})`);\n throw new Error(message);\n }\n\n this.ui.success(\"System installed successfully!\");\n this.ui.info(\"Admin credentials:\");\n this.ui.info(` Email: ${adminUser.email}`);\n this.ui.info(` Password: ${adminUser.password}`);\n }\n}\n\nexport const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({\n implementation: AutoInstallAfterApiDeployImpl,\n dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js","sources":["../../../../src/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.ts"],"sourcesContent":["import { ApiAfterDeploy } from \"@webiny/project/abstractions/index.js\";\nimport { UiService } from \"@webiny/project/abstractions/services/UiService.js\";\nimport { LoggerService } from \"@webiny/project/abstractions/services/LoggerService.js\";\nimport { GetProjectConfigService } from \"@webiny/project/abstractions\";\nimport { ApiGqlClient } from \"~/abstractions/ApiGqlClient.js\";\n\nconst IS_INSTALLED_QUERY = `\n query IsSystemInstalled {\n system {\n isSystemInstalled {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\nconst INSTALL_MUTATION = `\n mutation InstallSystem($installationInput: JSON!) {\n system {\n installSystem(installationInput: $installationInput) {\n data\n error {\n message\n code\n }\n }\n }\n }\n`;\n\ninterface IsInstalledResponse {\n system: {\n isSystemInstalled: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\ninterface InstallResponse {\n system: {\n installSystem: {\n data: boolean;\n error?: {\n message: string;\n code: string;\n };\n };\n };\n}\n\nclass AutoInstallAfterApiDeployImpl implements ApiAfterDeploy.Interface {\n constructor(\n private apiGqlClient: ApiGqlClient.Interface,\n private ui: UiService.Interface,\n private getProjectConfig: GetProjectConfigService.Interface,\n private logger: LoggerService.Interface\n ) {}\n\n async execute(params: ApiAfterDeploy.Params): Promise<void> {\n if (params.preview) {\n // Skip auto-install on preview deployments\n return;\n }\n\n const projectConfig = await this.getProjectConfig.execute();\n const adminAutoInstallExtensions = projectConfig.extensionsByType(\"Project/AutoInstall\");\n\n if (adminAutoInstallExtensions.length === 0) {\n return;\n }\n\n const config = adminAutoInstallExtensions[0].params;\n\n // Check if system is already installed\n this.ui.info(\"Checking if system is already installed...\");\n\n try {\n const isInstalledResponse = await this.apiGqlClient.query<IsInstalledResponse>({\n query: IS_INSTALLED_QUERY\n });\n\n if (isInstalledResponse.data?.system.isSystemInstalled.data === true) {\n this.ui.info(\"System is already installed, skipping auto-install.\");\n return;\n }\n } catch (error: any) {\n this.logger.error(\"Failed to check installation status\", { error });\n this.ui.warning(`Could not check installation status: ${error.message}`);\n return;\n }\n\n this.ui.info(\"Auto-installing...\");\n /**\n * Type Error introduced with Zod v4. V3 had any type.\n */\n // @ts-expect-error\n const adminUser = config.adminUser || {\n firstName: \"John\",\n lastName: \"Smith\",\n email: \"admin@webiny.com\",\n password: \"12345678\"\n };\n\n const variables = {\n installationInput: [\n {\n app: \"Cognito\",\n data: adminUser\n }\n ]\n };\n\n const installResponse = await this.apiGqlClient.mutation<InstallResponse>({\n mutation: INSTALL_MUTATION,\n variables\n });\n\n if (installResponse.data?.system.installSystem.error) {\n const { message, code } = installResponse.data.system.installSystem.error;\n this.logger.error(\"Installation failed\", { message, code });\n this.ui.error(`Installation failed: ${message} (${code})`);\n throw new Error(message);\n }\n\n this.ui.success(\"System installed successfully!\");\n this.ui.info(\"Admin credentials:\");\n this.ui.info(` Email: ${adminUser.email}`);\n this.ui.info(` Password: ${adminUser.password}`);\n }\n}\n\nexport const AutoInstallAfterApiDeploy = ApiAfterDeploy.createImplementation({\n implementation: AutoInstallAfterApiDeployImpl,\n dependencies: [ApiGqlClient, UiService, GetProjectConfigService, LoggerService]\n});\n"],"names":["IS_INSTALLED_QUERY","INSTALL_MUTATION","AutoInstallAfterApiDeployImpl","apiGqlClient","ui","getProjectConfig","logger","params","projectConfig","adminAutoInstallExtensions","config","isInstalledResponse","error","adminUser","variables","installResponse","message","code","Error","AutoInstallAfterApiDeploy","ApiAfterDeploy","ApiGqlClient","UiService","GetProjectConfigService","LoggerService"],"mappings":";;;;;AAMA,MAAMA,qBAAqB,CAAC;;;;;;;;;;;;AAY5B,CAAC;AAED,MAAMC,mBAAmB,CAAC;;;;;;;;;;;;AAY1B,CAAC;AA0BD,MAAMC;IACF,YACYC,YAAoC,EACpCC,EAAuB,EACvBC,gBAAmD,EACnDC,MAA+B,CACzC;aAJUH,YAAY,GAAZA;aACAC,EAAE,GAAFA;aACAC,gBAAgB,GAAhBA;aACAC,MAAM,GAANA;IACT;IAEH,MAAM,QAAQC,MAA6B,EAAiB;QACxD,IAAIA,OAAO,OAAO,EAEd;QAGJ,MAAMC,gBAAgB,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO;QACzD,MAAMC,6BAA6BD,cAAc,gBAAgB,CAAC;QAElE,IAAIC,AAAsC,MAAtCA,2BAA2B,MAAM,EACjC;QAGJ,MAAMC,SAASD,0BAA0B,CAAC,EAAE,CAAC,MAAM;QAGnD,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAEb,IAAI;YACA,MAAME,sBAAsB,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAsB;gBAC3E,OAAOX;YACX;YAEA,IAAIW,oBAAoB,IAAI,EAAE,OAAO,kBAAkB,SAAS,MAAM,YAClE,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAGrB,EAAE,OAAOC,OAAY;YACjB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uCAAuC;gBAAEA;YAAM;YACjE,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,qCAAqC,EAAEA,MAAM,OAAO,EAAE;YACvE;QACJ;QAEA,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAKb,MAAMC,YAAYH,OAAO,SAAS,IAAI;YAClC,WAAW;YACX,UAAU;YACV,OAAO;YACP,UAAU;QACd;QAEA,MAAMI,YAAY;YACd,mBAAmB;gBACf;oBACI,KAAK;oBACL,MAAMD;gBACV;aACH;QACL;QAEA,MAAME,kBAAkB,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAkB;YACtE,UAAUd;YACVa;QACJ;QAEA,IAAIC,gBAAgB,IAAI,EAAE,OAAO,cAAc,OAAO;YAClD,MAAM,EAAEC,OAAO,EAAEC,IAAI,EAAE,GAAGF,gBAAgB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK;YACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,uBAAuB;gBAAEC;gBAASC;YAAK;YACzD,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,qBAAqB,EAAED,QAAQ,EAAE,EAAEC,KAAK,CAAC,CAAC;YACzD,MAAM,IAAIC,MAAMF;QACpB;QAEA,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;QAChB,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QACb,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAEH,UAAU,KAAK,EAAE;QACzC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,WAAW,EAAEA,UAAU,QAAQ,EAAE;IACnD;AACJ;AAEO,MAAMM,4BAA4BC,eAAe,oBAAoB,CAAC;IACzE,gBAAgBlB;IAChB,cAAc;QAACmB;QAAcC;QAAWC;QAAyBC;KAAc;AACnF"}
@@ -1,19 +1,20 @@
1
1
  import { z } from "zod";
2
2
  import { defineExtension } from "@webiny/project/defineExtension/index.js";
3
- export const AutoInstall = defineExtension({
4
- type: "Project/AutoInstall",
5
- tags: {
6
- runtimeContext: "project"
7
- },
8
- description: "Auto-install Webiny with admin user credentials on first deploy.",
9
- paramsSchema: z.object({
10
- adminUser: z.object({
11
- firstName: z.string().describe("Admin user first name"),
12
- lastName: z.string().describe("Admin user last name"),
13
- email: z.string().email().describe("Admin user email"),
14
- password: z.string().min(8).describe("Admin user password (minimum 8 characters)")
15
- }).describe("Admin user credentials for installation")
16
- })
3
+ const AutoInstall = defineExtension({
4
+ type: "Project/AutoInstall",
5
+ tags: {
6
+ runtimeContext: "project"
7
+ },
8
+ description: "Auto-install Webiny with admin user credentials on first deploy.",
9
+ paramsSchema: z.object({
10
+ adminUser: z.object({
11
+ firstName: z.string().describe("Admin user first name"),
12
+ lastName: z.string().describe("Admin user last name"),
13
+ email: z.string().email().describe("Admin user email"),
14
+ password: z.string().min(8).describe("Admin user password (minimum 8 characters)")
15
+ }).describe("Admin user credentials for installation")
16
+ })
17
17
  });
18
+ export { AutoInstall };
18
19
 
19
20
  //# sourceMappingURL=AutoInstall.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["z","defineExtension","AutoInstall","type","tags","runtimeContext","description","paramsSchema","object","adminUser","firstName","string","describe","lastName","email","password","min"],"sources":["AutoInstall.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\n\nexport const AutoInstall = defineExtension({\n type: \"Project/AutoInstall\",\n tags: { runtimeContext: \"project\" },\n description: \"Auto-install Webiny with admin user credentials on first deploy.\",\n paramsSchema: z.object({\n adminUser: z\n .object({\n firstName: z.string().describe(\"Admin user first name\"),\n lastName: z.string().describe(\"Admin user last name\"),\n email: z.string().email().describe(\"Admin user email\"),\n password: z.string().min(8).describe(\"Admin user password (minimum 8 characters)\")\n })\n .describe(\"Admin user credentials for installation\")\n })\n});\n"],"mappings":"AAAA,SAASA,CAAC,QAAQ,KAAK;AACvB,SAASC,eAAe,QAAQ,0CAA0C;AAE1E,OAAO,MAAMC,WAAW,GAAGD,eAAe,CAAC;EACvCE,IAAI,EAAE,qBAAqB;EAC3BC,IAAI,EAAE;IAAEC,cAAc,EAAE;EAAU,CAAC;EACnCC,WAAW,EAAE,kEAAkE;EAC/EC,YAAY,EAAEP,CAAC,CAACQ,MAAM,CAAC;IACnBC,SAAS,EAAET,CAAC,CACPQ,MAAM,CAAC;MACJE,SAAS,EAAEV,CAAC,CAACW,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,uBAAuB,CAAC;MACvDC,QAAQ,EAAEb,CAAC,CAACW,MAAM,CAAC,CAAC,CAACC,QAAQ,CAAC,sBAAsB,CAAC;MACrDE,KAAK,EAAEd,CAAC,CAACW,MAAM,CAAC,CAAC,CAACG,KAAK,CAAC,CAAC,CAACF,QAAQ,CAAC,kBAAkB,CAAC;MACtDG,QAAQ,EAAEf,CAAC,CAACW,MAAM,CAAC,CAAC,CAACK,GAAG,CAAC,CAAC,CAAC,CAACJ,QAAQ,CAAC,4CAA4C;IACrF,CAAC,CAAC,CACDA,QAAQ,CAAC,yCAAyC;EAC3D,CAAC;AACL,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/ProjectAws/AutoInstall.js","sources":["../../../src/extensions/ProjectAws/AutoInstall.ts"],"sourcesContent":["import { z } from \"zod\";\nimport { defineExtension } from \"@webiny/project/defineExtension/index.js\";\n\nexport const AutoInstall = defineExtension({\n type: \"Project/AutoInstall\",\n tags: { runtimeContext: \"project\" },\n description: \"Auto-install Webiny with admin user credentials on first deploy.\",\n paramsSchema: z.object({\n adminUser: z\n .object({\n firstName: z.string().describe(\"Admin user first name\"),\n lastName: z.string().describe(\"Admin user last name\"),\n email: z.string().email().describe(\"Admin user email\"),\n password: z.string().min(8).describe(\"Admin user password (minimum 8 characters)\")\n })\n .describe(\"Admin user credentials for installation\")\n })\n});\n"],"names":["AutoInstall","defineExtension","z"],"mappings":";;AAGO,MAAMA,cAAcC,gBAAgB;IACvC,MAAM;IACN,MAAM;QAAE,gBAAgB;IAAU;IAClC,aAAa;IACb,cAAcC,EAAE,MAAM,CAAC;QACnB,WAAWA,EAAAA,MACA,CAAC;YACJ,WAAWA,EAAE,MAAM,GAAG,QAAQ,CAAC;YAC/B,UAAUA,EAAE,MAAM,GAAG,QAAQ,CAAC;YAC9B,OAAOA,EAAE,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;YACnC,UAAUA,EAAE,MAAM,GAAG,GAAG,CAAC,GAAG,QAAQ,CAAC;QACzC,GACC,QAAQ,CAAC;IAClB;AACJ"}
@@ -1,27 +1,23 @@
1
1
  import { BeforeDeploy, ProjectSdkParamsService } from "@webiny/project/abstractions/index.js";
2
2
  class PrintDeploymentInfoAfterDeployImpl {
3
- constructor(projectSdkParamsService) {
4
- this.projectSdkParamsService = projectSdkParamsService;
5
- }
6
- async execute(params) {
7
- if (params.app !== "blueGreen") {
8
- return;
3
+ constructor(projectSdkParamsService){
4
+ this.projectSdkParamsService = projectSdkParamsService;
9
5
  }
10
- const sdkParams = this.projectSdkParamsService.get();
11
- const {
12
- env,
13
- variant
14
- } = sdkParams;
15
- if (!variant?.length) {
16
- return;
6
+ async execute(params) {
7
+ if ("blueGreen" !== params.app) return;
8
+ const sdkParams = this.projectSdkParamsService.get();
9
+ const { env, variant } = sdkParams;
10
+ if (!variant?.length) return;
11
+ const message = `Cannot deploy Blue / Green system environment (${env}) with a variant (${variant}).`;
12
+ throw new Error(message);
17
13
  }
18
- const message = `Cannot deploy Blue / Green system environment (${env}) with a variant (${variant}).`;
19
- throw new Error(message);
20
- }
21
14
  }
22
- export const EnsureVariantBeforeDeploy = BeforeDeploy.createImplementation({
23
- implementation: PrintDeploymentInfoAfterDeployImpl,
24
- dependencies: [ProjectSdkParamsService]
15
+ const EnsureVariantBeforeDeploy = BeforeDeploy.createImplementation({
16
+ implementation: PrintDeploymentInfoAfterDeployImpl,
17
+ dependencies: [
18
+ ProjectSdkParamsService
19
+ ]
25
20
  });
21
+ export { EnsureVariantBeforeDeploy };
26
22
 
27
23
  //# sourceMappingURL=EnsureVariantBeforeDeploy.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["BeforeDeploy","ProjectSdkParamsService","PrintDeploymentInfoAfterDeployImpl","constructor","projectSdkParamsService","execute","params","app","sdkParams","get","env","variant","length","message","Error","EnsureVariantBeforeDeploy","createImplementation","implementation","dependencies"],"sources":["EnsureVariantBeforeDeploy.ts"],"sourcesContent":["import { BeforeDeploy, ProjectSdkParamsService } from \"@webiny/project/abstractions/index.js\";\n\nclass PrintDeploymentInfoAfterDeployImpl implements BeforeDeploy.Interface {\n constructor(private projectSdkParamsService: ProjectSdkParamsService.Interface) {}\n\n async execute(params: BeforeDeploy.Params) {\n if (params.app !== \"blueGreen\") {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const { env, variant } = sdkParams;\n\n if (!variant?.length) {\n return;\n }\n const message = `Cannot deploy Blue / Green system environment (${env}) with a variant (${variant}).`;\n throw new Error(message);\n }\n}\n\nexport const EnsureVariantBeforeDeploy = BeforeDeploy.createImplementation({\n implementation: PrintDeploymentInfoAfterDeployImpl,\n dependencies: [ProjectSdkParamsService]\n});\n"],"mappings":"AAAA,SAASA,YAAY,EAAEC,uBAAuB,QAAQ,uCAAuC;AAE7F,MAAMC,kCAAkC,CAAmC;EACvEC,WAAWA,CAASC,uBAA0D,EAAE;IAAA,KAA5DA,uBAA0D,GAA1DA,uBAA0D;EAAG;EAEjF,MAAMC,OAAOA,CAACC,MAA2B,EAAE;IACvC,IAAIA,MAAM,CAACC,GAAG,KAAK,WAAW,EAAE;MAC5B;IACJ;IAEA,MAAMC,SAAS,GAAG,IAAI,CAACJ,uBAAuB,CAACK,GAAG,CAAC,CAAC;IACpD,MAAM;MAAEC,GAAG;MAAEC;IAAQ,CAAC,GAAGH,SAAS;IAElC,IAAI,CAACG,OAAO,EAAEC,MAAM,EAAE;MAClB;IACJ;IACA,MAAMC,OAAO,GAAG,kDAAkDH,GAAG,qBAAqBC,OAAO,IAAI;IACrG,MAAM,IAAIG,KAAK,CAACD,OAAO,CAAC;EAC5B;AACJ;AAEA,OAAO,MAAME,yBAAyB,GAAGf,YAAY,CAACgB,oBAAoB,CAAC;EACvEC,cAAc,EAAEf,kCAAkC;EAClDgB,YAAY,EAAE,CAACjB,uBAAuB;AAC1C,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js","sources":["../../../../src/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.ts"],"sourcesContent":["import { BeforeDeploy, ProjectSdkParamsService } from \"@webiny/project/abstractions/index.js\";\n\nclass PrintDeploymentInfoAfterDeployImpl implements BeforeDeploy.Interface {\n constructor(private projectSdkParamsService: ProjectSdkParamsService.Interface) {}\n\n async execute(params: BeforeDeploy.Params) {\n if (params.app !== \"blueGreen\") {\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n const { env, variant } = sdkParams;\n\n if (!variant?.length) {\n return;\n }\n const message = `Cannot deploy Blue / Green system environment (${env}) with a variant (${variant}).`;\n throw new Error(message);\n }\n}\n\nexport const EnsureVariantBeforeDeploy = BeforeDeploy.createImplementation({\n implementation: PrintDeploymentInfoAfterDeployImpl,\n dependencies: [ProjectSdkParamsService]\n});\n"],"names":["PrintDeploymentInfoAfterDeployImpl","projectSdkParamsService","params","sdkParams","env","variant","message","Error","EnsureVariantBeforeDeploy","BeforeDeploy","ProjectSdkParamsService"],"mappings":";AAEA,MAAMA;IACF,YAAoBC,uBAA0D,CAAE;aAA5DA,uBAAuB,GAAvBA;IAA6D;IAEjF,MAAM,QAAQC,MAA2B,EAAE;QACvC,IAAIA,AAAe,gBAAfA,OAAO,GAAG,EACV;QAGJ,MAAMC,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAClD,MAAM,EAAEC,GAAG,EAAEC,OAAO,EAAE,GAAGF;QAEzB,IAAI,CAACE,SAAS,QACV;QAEJ,MAAMC,UAAU,CAAC,+CAA+C,EAAEF,IAAI,kBAAkB,EAAEC,QAAQ,EAAE,CAAC;QACrG,MAAM,IAAIE,MAAMD;IACpB;AACJ;AAEO,MAAME,4BAA4BC,aAAa,oBAAoB,CAAC;IACvE,gBAAgBT;IAChB,cAAc;QAACU;KAAwB;AAC3C"}
@@ -1,54 +1,65 @@
1
1
  import { AfterDeploy, GetAppStackOutput, ProjectSdkParamsService, UiService } from "@webiny/project/abstractions/index.js";
2
2
  import chalk from "chalk";
3
3
  class PrintDeploymentInfoAfterDeployImpl {
4
- constructor(ui, getAppStackOutput, projectSdkParamsService) {
5
- this.ui = ui;
6
- this.getAppStackOutput = getAppStackOutput;
7
- this.projectSdkParamsService = projectSdkParamsService;
8
- }
9
- async execute(params) {
10
- if (params.app !== "blueGreen") {
11
- return;
4
+ constructor(ui, getAppStackOutput, projectSdkParamsService){
5
+ this.ui = ui;
6
+ this.getAppStackOutput = getAppStackOutput;
7
+ this.projectSdkParamsService = projectSdkParamsService;
12
8
  }
13
- const {
14
- blue,
15
- green
16
- } = chalk;
17
- const bg = await this.getAppStackOutput.execute("blueGreen");
18
- if (!bg) {
19
- this.ui.info("Blue / Green deployment info could not be printed because the Blue / Green app is not deployed.");
20
- return;
9
+ async execute(params) {
10
+ if ("blueGreen" !== params.app) return;
11
+ const { blue, green } = chalk;
12
+ const bg = await this.getAppStackOutput.execute("blueGreen");
13
+ if (!bg) return void this.ui.info("Blue / Green deployment info could not be printed because the Blue / Green app is not deployed.");
14
+ const sdkParams = this.projectSdkParamsService.get();
15
+ const domains = Array.isArray(bg.domains) ? bg.domains : [];
16
+ const environments = (bg.environments || []).reduce((items, item)=>{
17
+ const index = items.findIndex((i)=>i.name === item.name);
18
+ if (index >= 0) {
19
+ items[index].domains[item.type] = item.target;
20
+ return items;
21
+ }
22
+ items.push({
23
+ name: item.name,
24
+ env: item.env,
25
+ variant: item.variant,
26
+ domains: {
27
+ [item.type]: item.target
28
+ }
29
+ });
30
+ return items;
31
+ }, []);
32
+ const output = [
33
+ "",
34
+ green("Blue / Green Router"),
35
+ `‣ Environment name: ${blue(sdkParams.env)}`,
36
+ `‣ CloudFront domain: ${bg.distributionDomain}`,
37
+ `‣ CloudFront URL: ${bg.distributionUrl}`,
38
+ "",
39
+ "‣ Domains attached: ",
40
+ ...domains.map((domain)=>` - https://${domain}`),
41
+ "",
42
+ "‣ Environments: ",
43
+ ...environments.map((item)=>{
44
+ const envVariant = `env: ${item.env}${item.variant ? ` / variant: ${item.variant}` : ""}`;
45
+ return [
46
+ ` - ${blue(item.name)} (${envVariant})`,
47
+ ...Object.keys(item.domains).map((type)=>` - ${type}: https://${item.domains[type]}`)
48
+ ].join("\n");
49
+ }),
50
+ ""
51
+ ];
52
+ console.log(output.join("\n"));
21
53
  }
22
- const sdkParams = this.projectSdkParamsService.get();
23
- const domains = Array.isArray(bg.domains) ? bg.domains : [];
24
- const environments = (bg.environments || []).reduce((items, item) => {
25
- const index = items.findIndex(i => i.name === item.name);
26
- if (index >= 0) {
27
- items[index].domains[item.type] = item.target;
28
- return items;
29
- }
30
- items.push({
31
- name: item.name,
32
- env: item.env,
33
- variant: item.variant,
34
- domains: {
35
- [item.type]: item.target
36
- }
37
- });
38
- return items;
39
- }, []);
40
- const output = ["", green(`Blue / Green Router`), `‣ Environment name: ${blue(sdkParams.env)}`, `‣ CloudFront domain: ${bg.distributionDomain}`, `‣ CloudFront URL: ${bg.distributionUrl}`, "", `‣ Domains attached: `, ...domains.map(domain => ` - https://${domain}`), "", `‣ Environments: `, ...environments.map(item => {
41
- const envVariant = `env: ${item.env}${item.variant ? ` / variant: ${item.variant}` : ""}`;
42
- return [` - ${blue(item.name)} (${envVariant})`, ...Object.keys(item.domains).map(type => {
43
- return ` - ${type}: https://${item.domains[type]}`;
44
- })].join("\n");
45
- }), ""];
46
- console.log(output.join("\n"));
47
- }
48
54
  }
49
- export const PrintDeploymentInfoAfterDeploy = AfterDeploy.createImplementation({
50
- implementation: PrintDeploymentInfoAfterDeployImpl,
51
- dependencies: [UiService, GetAppStackOutput, ProjectSdkParamsService]
55
+ const PrintDeploymentInfoAfterDeploy = AfterDeploy.createImplementation({
56
+ implementation: PrintDeploymentInfoAfterDeployImpl,
57
+ dependencies: [
58
+ UiService,
59
+ GetAppStackOutput,
60
+ ProjectSdkParamsService
61
+ ]
52
62
  });
63
+ export { PrintDeploymentInfoAfterDeploy };
53
64
 
54
65
  //# sourceMappingURL=PrintDeploymentInfoAfterDeploy.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["AfterDeploy","GetAppStackOutput","ProjectSdkParamsService","UiService","chalk","PrintDeploymentInfoAfterDeployImpl","constructor","ui","getAppStackOutput","projectSdkParamsService","execute","params","app","blue","green","bg","info","sdkParams","get","domains","Array","isArray","environments","reduce","items","item","index","findIndex","i","name","type","target","push","env","variant","output","distributionDomain","distributionUrl","map","domain","envVariant","Object","keys","join","console","log","PrintDeploymentInfoAfterDeploy","createImplementation","implementation","dependencies"],"sources":["PrintDeploymentInfoAfterDeploy.ts"],"sourcesContent":["import {\n AfterDeploy,\n GetAppStackOutput,\n ProjectSdkParamsService,\n UiService\n} from \"@webiny/project/abstractions/index.js\";\nimport { IBlueGreenStackOutput } from \"~/pulumi/apps/blueGreen/types.js\";\nimport chalk from \"chalk\";\n\nexport interface IEnvironment {\n name: string;\n env: string;\n variant: string | undefined;\n domains: {\n [key: string]: string;\n };\n}\n\nclass PrintDeploymentInfoAfterDeployImpl implements AfterDeploy.Interface {\n constructor(\n private ui: UiService.Interface,\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AfterDeploy.Params) {\n if (params.app !== \"blueGreen\") {\n return;\n }\n\n const { blue, green } = chalk;\n\n const bg = await this.getAppStackOutput.execute<IBlueGreenStackOutput>(\"blueGreen\");\n\n if (!bg) {\n this.ui.info(\n \"Blue / Green deployment info could not be printed because the Blue / Green app is not deployed.\"\n );\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n\n const domains = Array.isArray(bg.domains) ? bg.domains : [];\n\n const environments = (bg.environments || []).reduce<IEnvironment[]>((items, item) => {\n const index = items.findIndex(i => i.name === item.name);\n if (index >= 0) {\n items[index].domains[item.type] = item.target;\n\n return items;\n }\n\n items.push({\n name: item.name,\n env: item.env,\n variant: item.variant,\n domains: {\n [item.type]: item.target\n }\n });\n\n return items;\n }, []);\n\n const output = [\n \"\",\n green(`Blue / Green Router`),\n `‣ Environment name: ${blue(sdkParams.env)}`,\n `‣ CloudFront domain: ${bg.distributionDomain}`,\n `‣ CloudFront URL: ${bg.distributionUrl}`,\n \"\",\n `‣ Domains attached: `,\n ...domains.map(domain => ` - https://${domain}`),\n \"\",\n `‣ Environments: `,\n ...environments.map(item => {\n const envVariant = `env: ${item.env}${\n item.variant ? ` / variant: ${item.variant}` : \"\"\n }`;\n return [\n ` - ${blue(item.name)} (${envVariant})`,\n ...Object.keys(item.domains).map(type => {\n return ` - ${type}: https://${item.domains[type]}`;\n })\n ].join(\"\\n\");\n }),\n \"\"\n ];\n console.log(output.join(\"\\n\"));\n }\n}\n\nexport const PrintDeploymentInfoAfterDeploy = AfterDeploy.createImplementation({\n implementation: PrintDeploymentInfoAfterDeployImpl,\n dependencies: [UiService, GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js","sources":["../../../../src/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.ts"],"sourcesContent":["import {\n AfterDeploy,\n GetAppStackOutput,\n ProjectSdkParamsService,\n UiService\n} from \"@webiny/project/abstractions/index.js\";\nimport { IBlueGreenStackOutput } from \"~/pulumi/apps/blueGreen/types.js\";\nimport chalk from \"chalk\";\n\nexport interface IEnvironment {\n name: string;\n env: string;\n variant: string | undefined;\n domains: {\n [key: string]: string;\n };\n}\n\nclass PrintDeploymentInfoAfterDeployImpl implements AfterDeploy.Interface {\n constructor(\n private ui: UiService.Interface,\n private getAppStackOutput: GetAppStackOutput.Interface,\n private projectSdkParamsService: ProjectSdkParamsService.Interface\n ) {}\n\n async execute(params: AfterDeploy.Params) {\n if (params.app !== \"blueGreen\") {\n return;\n }\n\n const { blue, green } = chalk;\n\n const bg = await this.getAppStackOutput.execute<IBlueGreenStackOutput>(\"blueGreen\");\n\n if (!bg) {\n this.ui.info(\n \"Blue / Green deployment info could not be printed because the Blue / Green app is not deployed.\"\n );\n return;\n }\n\n const sdkParams = this.projectSdkParamsService.get();\n\n const domains = Array.isArray(bg.domains) ? bg.domains : [];\n\n const environments = (bg.environments || []).reduce<IEnvironment[]>((items, item) => {\n const index = items.findIndex(i => i.name === item.name);\n if (index >= 0) {\n items[index].domains[item.type] = item.target;\n\n return items;\n }\n\n items.push({\n name: item.name,\n env: item.env,\n variant: item.variant,\n domains: {\n [item.type]: item.target\n }\n });\n\n return items;\n }, []);\n\n const output = [\n \"\",\n green(`Blue / Green Router`),\n `‣ Environment name: ${blue(sdkParams.env)}`,\n `‣ CloudFront domain: ${bg.distributionDomain}`,\n `‣ CloudFront URL: ${bg.distributionUrl}`,\n \"\",\n `‣ Domains attached: `,\n ...domains.map(domain => ` - https://${domain}`),\n \"\",\n `‣ Environments: `,\n ...environments.map(item => {\n const envVariant = `env: ${item.env}${\n item.variant ? ` / variant: ${item.variant}` : \"\"\n }`;\n return [\n ` - ${blue(item.name)} (${envVariant})`,\n ...Object.keys(item.domains).map(type => {\n return ` - ${type}: https://${item.domains[type]}`;\n })\n ].join(\"\\n\");\n }),\n \"\"\n ];\n console.log(output.join(\"\\n\"));\n }\n}\n\nexport const PrintDeploymentInfoAfterDeploy = AfterDeploy.createImplementation({\n implementation: PrintDeploymentInfoAfterDeployImpl,\n dependencies: [UiService, GetAppStackOutput, ProjectSdkParamsService]\n});\n"],"names":["PrintDeploymentInfoAfterDeployImpl","ui","getAppStackOutput","projectSdkParamsService","params","blue","green","chalk","bg","sdkParams","domains","Array","environments","items","item","index","i","output","domain","envVariant","Object","type","console","PrintDeploymentInfoAfterDeploy","AfterDeploy","UiService","GetAppStackOutput","ProjectSdkParamsService"],"mappings":";;AAkBA,MAAMA;IACF,YACYC,EAAuB,EACvBC,iBAA8C,EAC9CC,uBAA0D,CACpE;aAHUF,EAAE,GAAFA;aACAC,iBAAiB,GAAjBA;aACAC,uBAAuB,GAAvBA;IACT;IAEH,MAAM,QAAQC,MAA0B,EAAE;QACtC,IAAIA,AAAe,gBAAfA,OAAO,GAAG,EACV;QAGJ,MAAM,EAAEC,IAAI,EAAEC,KAAK,EAAE,GAAGC;QAExB,MAAMC,KAAK,MAAM,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAwB;QAEvE,IAAI,CAACA,IAAI,YACL,IAAI,CAAC,EAAE,CAAC,IAAI,CACR;QAKR,MAAMC,YAAY,IAAI,CAAC,uBAAuB,CAAC,GAAG;QAElD,MAAMC,UAAUC,MAAM,OAAO,CAACH,GAAG,OAAO,IAAIA,GAAG,OAAO,GAAG,EAAE;QAE3D,MAAMI,eAAgBJ,AAAAA,CAAAA,GAAG,YAAY,IAAI,EAAC,EAAG,MAAM,CAAiB,CAACK,OAAOC;YACxE,MAAMC,QAAQF,MAAM,SAAS,CAACG,CAAAA,IAAKA,EAAE,IAAI,KAAKF,KAAK,IAAI;YACvD,IAAIC,SAAS,GAAG;gBACZF,KAAK,CAACE,MAAM,CAAC,OAAO,CAACD,KAAK,IAAI,CAAC,GAAGA,KAAK,MAAM;gBAE7C,OAAOD;YACX;YAEAA,MAAM,IAAI,CAAC;gBACP,MAAMC,KAAK,IAAI;gBACf,KAAKA,KAAK,GAAG;gBACb,SAASA,KAAK,OAAO;gBACrB,SAAS;oBACL,CAACA,KAAK,IAAI,CAAC,EAAEA,KAAK,MAAM;gBAC5B;YACJ;YAEA,OAAOD;QACX,GAAG,EAAE;QAEL,MAAMI,SAAS;YACX;YACAX,MAAM;YACN,CAAC,oBAAoB,EAAED,KAAKI,UAAU,GAAG,GAAG;YAC5C,CAAC,qBAAqB,EAAED,GAAG,kBAAkB,EAAE;YAC/C,CAAC,kBAAkB,EAAEA,GAAG,eAAe,EAAE;YACzC;YACA;eACGE,QAAQ,GAAG,CAACQ,CAAAA,SAAU,CAAC,YAAY,EAAEA,QAAQ;YAChD;YACA;eACGN,aAAa,GAAG,CAACE,CAAAA;gBAChB,MAAMK,aAAa,CAAC,KAAK,EAAEL,KAAK,GAAG,GAC/BA,KAAK,OAAO,GAAG,CAAC,YAAY,EAAEA,KAAK,OAAO,EAAE,GAAG,IACjD;gBACF,OAAO;oBACH,CAAC,IAAI,EAAET,KAAKS,KAAK,IAAI,EAAE,EAAE,EAAEK,WAAW,CAAC,CAAC;uBACrCC,OAAO,IAAI,CAACN,KAAK,OAAO,EAAE,GAAG,CAACO,CAAAA,OACtB,CAAC,MAAM,EAAEA,KAAK,UAAU,EAAEP,KAAK,OAAO,CAACO,KAAK,EAAE;iBAE5D,CAAC,IAAI,CAAC;YACX;YACA;SACH;QACDC,QAAQ,GAAG,CAACL,OAAO,IAAI,CAAC;IAC5B;AACJ;AAEO,MAAMM,iCAAiCC,YAAY,oBAAoB,CAAC;IAC3E,gBAAgBxB;IAChB,cAAc;QAACyB;QAAWC;QAAmBC;KAAwB;AACzE"}
@@ -1,60 +1,62 @@
1
1
  import { CliCommandFactory, GetProjectSdkService } from "@webiny/cli-core/abstractions/index.js";
2
- /**
3
- * Command to set a primary variant does not require a region because it is already contained inside the stack output.
4
- */
5
- export class SetPrimaryVariantCommandImpl {
6
- constructor(getProjectSdkService) {
7
- this.getProjectSdkService = getProjectSdkService;
8
- }
9
- async execute() {
10
- const projectSdk = await this.getProjectSdkService.execute();
11
- return {
12
- name: "set-variant",
13
- description: "Set a deployed system as primary variant.",
14
- examples: ["$0 set-variant --env=dev --primary=blue --secondary=green", "$0 set-variant --env=dev --primary=green --secondary=green"],
15
- options: [{
16
- name: "env",
17
- description: "Environment name (dev, prod, etc.)",
18
- type: "string"
19
- }, {
20
- name: "confirm",
21
- description: "Confirm deployment",
22
- type: "boolean",
23
- required: false
24
- }, {
25
- name: "primary",
26
- description: "Primary variant",
27
- type: "string",
28
- required: true,
29
- validation: params => {
30
- const isValid = projectSdk.isValidVariantName(params.primary);
31
- if (isValid.isErr()) {
32
- throw isValid.error;
33
- }
34
- return true;
35
- }
36
- }, {
37
- name: "secondary",
38
- description: "Secondary variant",
39
- type: "string",
40
- required: true,
41
- validation: params => {
42
- const isValid = projectSdk.isValidVariantName(params.secondary);
43
- if (isValid.isErr()) {
44
- throw isValid.error;
45
- }
46
- return true;
47
- }
48
- }],
49
- handler: async () => {
50
- // TODO: Finish this.
51
- }
52
- };
53
- }
2
+ class SetPrimaryVariantCommandImpl {
3
+ constructor(getProjectSdkService){
4
+ this.getProjectSdkService = getProjectSdkService;
5
+ }
6
+ async execute() {
7
+ const projectSdk = await this.getProjectSdkService.execute();
8
+ return {
9
+ name: "set-variant",
10
+ description: "Set a deployed system as primary variant.",
11
+ examples: [
12
+ "$0 set-variant --env=dev --primary=blue --secondary=green",
13
+ "$0 set-variant --env=dev --primary=green --secondary=green"
14
+ ],
15
+ options: [
16
+ {
17
+ name: "env",
18
+ description: "Environment name (dev, prod, etc.)",
19
+ type: "string"
20
+ },
21
+ {
22
+ name: "confirm",
23
+ description: "Confirm deployment",
24
+ type: "boolean",
25
+ required: false
26
+ },
27
+ {
28
+ name: "primary",
29
+ description: "Primary variant",
30
+ type: "string",
31
+ required: true,
32
+ validation: (params)=>{
33
+ const isValid = projectSdk.isValidVariantName(params.primary);
34
+ if (isValid.isErr()) throw isValid.error;
35
+ return true;
36
+ }
37
+ },
38
+ {
39
+ name: "secondary",
40
+ description: "Secondary variant",
41
+ type: "string",
42
+ required: true,
43
+ validation: (params)=>{
44
+ const isValid = projectSdk.isValidVariantName(params.secondary);
45
+ if (isValid.isErr()) throw isValid.error;
46
+ return true;
47
+ }
48
+ }
49
+ ],
50
+ handler: async ()=>{}
51
+ };
52
+ }
54
53
  }
55
- export const SetPrimaryVariantCliCommand = CliCommandFactory.createImplementation({
56
- implementation: SetPrimaryVariantCommandImpl,
57
- dependencies: [GetProjectSdkService]
54
+ const SetPrimaryVariantCliCommand = CliCommandFactory.createImplementation({
55
+ implementation: SetPrimaryVariantCommandImpl,
56
+ dependencies: [
57
+ GetProjectSdkService
58
+ ]
58
59
  });
60
+ export { SetPrimaryVariantCliCommand, SetPrimaryVariantCommandImpl };
59
61
 
60
62
  //# sourceMappingURL=SetPrimaryVariantCliCommand.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CliCommandFactory","GetProjectSdkService","SetPrimaryVariantCommandImpl","constructor","getProjectSdkService","execute","projectSdk","name","description","examples","options","type","required","validation","params","isValid","isValidVariantName","primary","isErr","error","secondary","handler","SetPrimaryVariantCliCommand","createImplementation","implementation","dependencies"],"sources":["SetPrimaryVariantCliCommand.ts"],"sourcesContent":["import { CliCommandFactory, GetProjectSdkService } from \"@webiny/cli-core/abstractions/index.js\";\n\nexport interface ISetPrimaryVariantCommandParams {\n env: string;\n confirm?: boolean;\n primary: string;\n secondary: string;\n}\n\n/**\n * Command to set a primary variant does not require a region because it is already contained inside the stack output.\n */\nexport class SetPrimaryVariantCommandImpl implements CliCommandFactory.Interface<ISetPrimaryVariantCommandParams> {\n constructor(private getProjectSdkService: GetProjectSdkService.Interface) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<ISetPrimaryVariantCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n\n return {\n name: \"set-variant\",\n description: \"Set a deployed system as primary variant.\",\n examples: [\n \"$0 set-variant --env=dev --primary=blue --secondary=green\",\n \"$0 set-variant --env=dev --primary=green --secondary=green\"\n ],\n options: [\n {\n name: \"env\",\n description: \"Environment name (dev, prod, etc.)\",\n type: \"string\"\n },\n {\n name: \"confirm\",\n description: \"Confirm deployment\",\n type: \"boolean\",\n required: false\n },\n {\n name: \"primary\",\n description: \"Primary variant\",\n type: \"string\",\n required: true,\n validation: params => {\n const isValid = projectSdk.isValidVariantName(params.primary);\n if (isValid.isErr()) {\n throw isValid.error;\n }\n return true;\n }\n },\n {\n name: \"secondary\",\n description: \"Secondary variant\",\n type: \"string\",\n required: true,\n validation: params => {\n const isValid = projectSdk.isValidVariantName(params.secondary);\n if (isValid.isErr()) {\n throw isValid.error;\n }\n return true;\n }\n }\n ],\n handler: async () => {\n // TODO: Finish this.\n }\n };\n }\n}\n\nexport const SetPrimaryVariantCliCommand = CliCommandFactory.createImplementation({\n implementation: SetPrimaryVariantCommandImpl,\n dependencies: [GetProjectSdkService]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,EAAEC,oBAAoB,QAAQ,wCAAwC;AAShG;AACA;AACA;AACA,OAAO,MAAMC,4BAA4B,CAAyE;EAC9GC,WAAWA,CAASC,oBAAoD,EAAE;IAAA,KAAtDA,oBAAoD,GAApDA,oBAAoD;EAAG;EAE3E,MAAMC,OAAOA,CAAA,EAAkF;IAC3F,MAAMC,UAAU,GAAG,MAAM,IAAI,CAACF,oBAAoB,CAACC,OAAO,CAAC,CAAC;IAE5D,OAAO;MACHE,IAAI,EAAE,aAAa;MACnBC,WAAW,EAAE,2CAA2C;MACxDC,QAAQ,EAAE,CACN,2DAA2D,EAC3D,4DAA4D,CAC/D;MACDC,OAAO,EAAE,CACL;QACIH,IAAI,EAAE,KAAK;QACXC,WAAW,EAAE,oCAAoC;QACjDG,IAAI,EAAE;MACV,CAAC,EACD;QACIJ,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,oBAAoB;QACjCG,IAAI,EAAE,SAAS;QACfC,QAAQ,EAAE;MACd,CAAC,EACD;QACIL,IAAI,EAAE,SAAS;QACfC,WAAW,EAAE,iBAAiB;QAC9BG,IAAI,EAAE,QAAQ;QACdC,QAAQ,EAAE,IAAI;QACdC,UAAU,EAAEC,MAAM,IAAI;UAClB,MAAMC,OAAO,GAAGT,UAAU,CAACU,kBAAkB,CAACF,MAAM,CAACG,OAAO,CAAC;UAC7D,IAAIF,OAAO,CAACG,KAAK,CAAC,CAAC,EAAE;YACjB,MAAMH,OAAO,CAACI,KAAK;UACvB;UACA,OAAO,IAAI;QACf;MACJ,CAAC,EACD;QACIZ,IAAI,EAAE,WAAW;QACjBC,WAAW,EAAE,mBAAmB;QAChCG,IAAI,EAAE,QAAQ;QACdC,QAAQ,EAAE,IAAI;QACdC,UAAU,EAAEC,MAAM,IAAI;UAClB,MAAMC,OAAO,GAAGT,UAAU,CAACU,kBAAkB,CAACF,MAAM,CAACM,SAAS,CAAC;UAC/D,IAAIL,OAAO,CAACG,KAAK,CAAC,CAAC,EAAE;YACjB,MAAMH,OAAO,CAACI,KAAK;UACvB;UACA,OAAO,IAAI;QACf;MACJ,CAAC,CACJ;MACDE,OAAO,EAAE,MAAAA,CAAA,KAAY;QACjB;MAAA;IAER,CAAC;EACL;AACJ;AAEA,OAAO,MAAMC,2BAA2B,GAAGtB,iBAAiB,CAACuB,oBAAoB,CAAC;EAC9EC,cAAc,EAAEtB,4BAA4B;EAC5CuB,YAAY,EAAE,CAACxB,oBAAoB;AACvC,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js","sources":["../../../../src/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.ts"],"sourcesContent":["import { CliCommandFactory, GetProjectSdkService } from \"@webiny/cli-core/abstractions/index.js\";\n\nexport interface ISetPrimaryVariantCommandParams {\n env: string;\n confirm?: boolean;\n primary: string;\n secondary: string;\n}\n\n/**\n * Command to set a primary variant does not require a region because it is already contained inside the stack output.\n */\nexport class SetPrimaryVariantCommandImpl implements CliCommandFactory.Interface<ISetPrimaryVariantCommandParams> {\n constructor(private getProjectSdkService: GetProjectSdkService.Interface) {}\n\n async execute(): Promise<CliCommandFactory.CommandDefinition<ISetPrimaryVariantCommandParams>> {\n const projectSdk = await this.getProjectSdkService.execute();\n\n return {\n name: \"set-variant\",\n description: \"Set a deployed system as primary variant.\",\n examples: [\n \"$0 set-variant --env=dev --primary=blue --secondary=green\",\n \"$0 set-variant --env=dev --primary=green --secondary=green\"\n ],\n options: [\n {\n name: \"env\",\n description: \"Environment name (dev, prod, etc.)\",\n type: \"string\"\n },\n {\n name: \"confirm\",\n description: \"Confirm deployment\",\n type: \"boolean\",\n required: false\n },\n {\n name: \"primary\",\n description: \"Primary variant\",\n type: \"string\",\n required: true,\n validation: params => {\n const isValid = projectSdk.isValidVariantName(params.primary);\n if (isValid.isErr()) {\n throw isValid.error;\n }\n return true;\n }\n },\n {\n name: \"secondary\",\n description: \"Secondary variant\",\n type: \"string\",\n required: true,\n validation: params => {\n const isValid = projectSdk.isValidVariantName(params.secondary);\n if (isValid.isErr()) {\n throw isValid.error;\n }\n return true;\n }\n }\n ],\n handler: async () => {\n // TODO: Finish this.\n }\n };\n }\n}\n\nexport const SetPrimaryVariantCliCommand = CliCommandFactory.createImplementation({\n implementation: SetPrimaryVariantCommandImpl,\n dependencies: [GetProjectSdkService]\n});\n"],"names":["SetPrimaryVariantCommandImpl","getProjectSdkService","projectSdk","params","isValid","SetPrimaryVariantCliCommand","CliCommandFactory","GetProjectSdkService"],"mappings":";AAYO,MAAMA;IACT,YAAoBC,oBAAoD,CAAE;aAAtDA,oBAAoB,GAApBA;IAAuD;IAE3E,MAAM,UAAyF;QAC3F,MAAMC,aAAa,MAAM,IAAI,CAAC,oBAAoB,CAAC,OAAO;QAE1D,OAAO;YACH,MAAM;YACN,aAAa;YACb,UAAU;gBACN;gBACA;aACH;YACD,SAAS;gBACL;oBACI,MAAM;oBACN,aAAa;oBACb,MAAM;gBACV;gBACA;oBACI,MAAM;oBACN,aAAa;oBACb,MAAM;oBACN,UAAU;gBACd;gBACA;oBACI,MAAM;oBACN,aAAa;oBACb,MAAM;oBACN,UAAU;oBACV,YAAYC,CAAAA;wBACR,MAAMC,UAAUF,WAAW,kBAAkB,CAACC,OAAO,OAAO;wBAC5D,IAAIC,QAAQ,KAAK,IACb,MAAMA,QAAQ,KAAK;wBAEvB,OAAO;oBACX;gBACJ;gBACA;oBACI,MAAM;oBACN,aAAa;oBACb,MAAM;oBACN,UAAU;oBACV,YAAYD,CAAAA;wBACR,MAAMC,UAAUF,WAAW,kBAAkB,CAACC,OAAO,SAAS;wBAC9D,IAAIC,QAAQ,KAAK,IACb,MAAMA,QAAQ,KAAK;wBAEvB,OAAO;oBACX;gBACJ;aACH;YACD,SAAS,WAET;QACJ;IACJ;AACJ;AAEO,MAAMC,8BAA8BC,kBAAkB,oBAAoB,CAAC;IAC9E,gBAAgBN;IAChB,cAAc;QAACO;KAAqB;AACxC"}
@@ -3,64 +3,59 @@ import fs from "fs";
3
3
  import { replaceInPath } from "replace-in-path";
4
4
  import { BuildAppWorkspaceService, GetApp, LoggerService } from "@webiny/project/abstractions/index.js";
5
5
  import { getTemplatesFolderPath } from "../../utils/index.js";
6
- const wait = () => new Promise(resolve => setTimeout(resolve, 10));
6
+ const wait = ()=>new Promise((resolve)=>setTimeout(resolve, 10));
7
7
  class BuildAppWorkspaceImpl {
8
- constructor(getApp, logger, decoratee) {
9
- this.getApp = getApp;
10
- this.logger = logger;
11
- this.decoratee = decoratee;
12
- }
13
- async execute(appName, options = {}) {
14
- await this.decoratee.execute(appName, options);
15
- const app = this.getApp.execute(appName);
16
- if (app.paths.workspaceFolder.existsSync()) {
17
- if (options.forceRebuild !== true) {
18
- this.logger.debug({
19
- appName
20
- }, "App workspace already exists, skipping rebuild (project-aws).");
21
- return;
22
- }
8
+ constructor(getApp, logger, decoratee){
9
+ this.getApp = getApp;
10
+ this.logger = logger;
11
+ this.decoratee = decoratee;
23
12
  }
24
- this.logger.info({
25
- appName,
26
- options
27
- }, "Building app workspace (project-aws)...");
28
- const templatesFolderPath = getTemplatesFolderPath();
29
- const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
30
- const appTemplateFolderPath = path.join(templatesFolderPath, "appTemplates", app.name);
31
-
32
- // Create app.
33
- fs.cpSync(appTemplateFolderPath, appWorkspaceFolderPath, {
34
- recursive: true
35
- });
36
-
37
- // Copy `public` folder into `admin` app workspace folder.
38
- if (appName === "admin") {
39
- const publicFolder = path.join(process.cwd(), "public");
40
- fs.cpSync(publicFolder, path.join(appWorkspaceFolderPath, "public"), {
41
- recursive: true
42
- });
43
- await wait();
44
- const indexTsx = app.paths.workspaceFolder.join("src", "index.tsx").toString();
45
- const globalCssPath = path.join(publicFolder, "global.css");
46
- let globalCss = "";
47
- if (fs.existsSync(globalCssPath)) {
48
- const relativePath = path.relative(path.dirname(indexTsx), globalCssPath).replace(/\\/g, "/");
49
- globalCss = `import "${relativePath}";`;
50
- } else {
51
- console.log("globalCssPath does not exist");
52
- }
53
- replaceInPath(indexTsx, {
54
- find: "{GLOBAL_CSS}",
55
- replaceWith: globalCss
56
- });
13
+ async execute(appName, options = {}) {
14
+ await this.decoratee.execute(appName, options);
15
+ const app = this.getApp.execute(appName);
16
+ if (app.paths.workspaceFolder.existsSync()) {
17
+ if (true !== options.forceRebuild) return void this.logger.debug({
18
+ appName
19
+ }, "App workspace already exists, skipping rebuild (project-aws).");
20
+ }
21
+ this.logger.info({
22
+ appName,
23
+ options
24
+ }, "Building app workspace (project-aws)...");
25
+ const templatesFolderPath = getTemplatesFolderPath();
26
+ const appWorkspaceFolderPath = app.paths.workspaceFolder.toString();
27
+ const appTemplateFolderPath = path.join(templatesFolderPath, "appTemplates", app.name);
28
+ fs.cpSync(appTemplateFolderPath, appWorkspaceFolderPath, {
29
+ recursive: true
30
+ });
31
+ if ("admin" === appName) {
32
+ const publicFolder = path.join(process.cwd(), "public");
33
+ fs.cpSync(publicFolder, path.join(appWorkspaceFolderPath, "public"), {
34
+ recursive: true
35
+ });
36
+ await wait();
37
+ const indexTsx = app.paths.workspaceFolder.join("src", "index.tsx").toString();
38
+ const globalCssPath = path.join(publicFolder, "global.css");
39
+ let globalCss = "";
40
+ if (fs.existsSync(globalCssPath)) {
41
+ const relativePath = path.relative(path.dirname(indexTsx), globalCssPath).replace(/\\/g, "/");
42
+ globalCss = `import "${relativePath}";`;
43
+ } else console.log("globalCssPath does not exist");
44
+ replaceInPath(indexTsx, {
45
+ find: "{GLOBAL_CSS}",
46
+ replaceWith: globalCss
47
+ });
48
+ }
49
+ this.logger.info("App workspace built successfully (project-aws).");
57
50
  }
58
- this.logger.info("App workspace built successfully (project-aws).");
59
- }
60
51
  }
61
- export const BuildAppWorkspace = BuildAppWorkspaceService.createDecorator({
62
- decorator: BuildAppWorkspaceImpl,
63
- dependencies: [GetApp, LoggerService]
52
+ const BuildAppWorkspace = BuildAppWorkspaceService.createDecorator({
53
+ decorator: BuildAppWorkspaceImpl,
54
+ dependencies: [
55
+ GetApp,
56
+ LoggerService
57
+ ]
64
58
  });
59
+ export { BuildAppWorkspace };
65
60
 
66
61
  //# sourceMappingURL=BuildAppWorkspace.js.map