@webiny/project-aws 0.0.0-unstable.3c5210ad37

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 (556) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/_templates/appTemplates/admin/src/App.scss +2 -0
  4. package/_templates/appTemplates/admin/src/App.tsx +13 -0
  5. package/_templates/appTemplates/admin/src/Extensions.tsx +7 -0
  6. package/_templates/appTemplates/admin/src/index.tsx +11 -0
  7. package/_templates/appTemplates/admin/tsconfig.json +7 -0
  8. package/_templates/appTemplates/admin/webiny.application.ts +3 -0
  9. package/_templates/appTemplates/admin/webiny.config.ts +3 -0
  10. package/_templates/appTemplates/api/graphql/package.json +43 -0
  11. package/_templates/appTemplates/api/graphql/src/extensions.ts +9 -0
  12. package/_templates/appTemplates/api/graphql/src/index.ts +80 -0
  13. package/_templates/appTemplates/api/graphql/src/security.ts +43 -0
  14. package/_templates/appTemplates/api/graphql/tsconfig.json +7 -0
  15. package/_templates/appTemplates/api/graphql/webiny.config.ts +8 -0
  16. package/_templates/appTemplates/api/migration/src/index.ts +23 -0
  17. package/_templates/appTemplates/api/migration/tsconfig.json +7 -0
  18. package/_templates/appTemplates/api/migration/webiny.config.ts +8 -0
  19. package/_templates/appTemplates/api/webiny.application.ts +3 -0
  20. package/_templates/appTemplates/blueGreen/webiny.application.ts +3 -0
  21. package/_templates/appTemplates/core/webiny.application.ts +3 -0
  22. package/_templates/appTemplates/syncSystem/webiny.application.ts +3 -0
  23. package/_templates/extensions/ApiLambdaFunction/package.json +9 -0
  24. package/_templates/extensions/ApiLambdaFunction/tsconfig.json +7 -0
  25. package/_templates/extensions/ApiLambdaFunction/webiny.config.ts +8 -0
  26. package/_templates/extensions/OpenSearch/api/graphql/src/index.ts +90 -0
  27. package/_templates/extensions/OpenSearch/api/migration/src/index.ts +33 -0
  28. package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/src/index.ts +15 -0
  29. package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/tsconfig.json +7 -0
  30. package/_templates/extensions/OpenSearch/coreDdbToEsHandler/dynamoToElastic/webiny.config.ts +8 -0
  31. package/abstractions/ApiGqlClient.d.ts +23 -0
  32. package/abstractions/ApiGqlClient.js +4 -0
  33. package/abstractions/ApiGqlClient.js.map +1 -0
  34. package/abstractions/InvokeLambdaFunction.d.ts +18 -0
  35. package/abstractions/InvokeLambdaFunction.js +4 -0
  36. package/abstractions/InvokeLambdaFunction.js.map +1 -0
  37. package/abstractions/index.d.ts +5 -0
  38. package/abstractions/index.js +7 -0
  39. package/abstractions/index.js.map +1 -0
  40. package/abstractions/services/AdminStackOutputService.d.ts +13 -0
  41. package/abstractions/services/AdminStackOutputService.js +4 -0
  42. package/abstractions/services/AdminStackOutputService.js.map +1 -0
  43. package/abstractions/services/ApiStackOutputService.d.ts +30 -0
  44. package/abstractions/services/ApiStackOutputService.js +4 -0
  45. package/abstractions/services/ApiStackOutputService.js.map +1 -0
  46. package/abstractions/services/CoreStackOutputService.d.ts +16 -0
  47. package/abstractions/services/CoreStackOutputService.js +4 -0
  48. package/abstractions/services/CoreStackOutputService.js.map +1 -0
  49. package/admin.d.ts +22 -0
  50. package/admin.js +7 -0
  51. package/admin.js.map +1 -0
  52. package/api.d.ts +22 -0
  53. package/api.js +7 -0
  54. package/api.js.map +1 -0
  55. package/apps/createAdminApp.d.ts +15 -0
  56. package/apps/createAdminApp.js +15 -0
  57. package/apps/createAdminApp.js.map +1 -0
  58. package/apps/createAdminAppConfig.d.ts +2 -0
  59. package/apps/createAdminAppConfig.js +21 -0
  60. package/apps/createAdminAppConfig.js.map +1 -0
  61. package/apps/createApiApp.d.ts +65 -0
  62. package/apps/createApiApp.js +25 -0
  63. package/apps/createApiApp.js.map +1 -0
  64. package/apps/createBlueGreenApp.d.ts +24 -0
  65. package/apps/createBlueGreenApp.js +20 -0
  66. package/apps/createBlueGreenApp.js.map +1 -0
  67. package/apps/createCoreApp.d.ts +36 -0
  68. package/apps/createCoreApp.js +16 -0
  69. package/apps/createCoreApp.js.map +1 -0
  70. package/apps/createReactAppConfig.d.ts +53 -0
  71. package/apps/createReactAppConfig.js +79 -0
  72. package/apps/createReactAppConfig.js.map +1 -0
  73. package/apps/createSyncSystemApp.d.ts +21 -0
  74. package/apps/createSyncSystemApp.js +11 -0
  75. package/apps/createSyncSystemApp.js.map +1 -0
  76. package/apps/index.d.ts +7 -0
  77. package/apps/index.js +9 -0
  78. package/apps/index.js.map +1 -0
  79. package/cli.d.ts +9 -0
  80. package/cli.js +6 -0
  81. package/cli.js.map +1 -0
  82. package/exports/extensions.d.ts +5 -0
  83. package/exports/extensions.js +7 -0
  84. package/exports/extensions.js.map +1 -0
  85. package/exports/infra/admin.d.ts +1 -0
  86. package/exports/infra/admin.js +3 -0
  87. package/exports/infra/admin.js.map +1 -0
  88. package/exports/infra/api.d.ts +1 -0
  89. package/exports/infra/api.js +3 -0
  90. package/exports/infra/api.js.map +1 -0
  91. package/exports/infra/core.d.ts +1 -0
  92. package/exports/infra/core.js +3 -0
  93. package/exports/infra/core.js.map +1 -0
  94. package/exports/infra/index.d.ts +1 -0
  95. package/exports/infra/index.js +3 -0
  96. package/exports/infra/index.js.map +1 -0
  97. package/extensions/ApiLambdaFunction.d.ts +11 -0
  98. package/extensions/ApiLambdaFunction.js +68 -0
  99. package/extensions/ApiLambdaFunction.js.map +1 -0
  100. package/extensions/AwsDefaultRegion.d.ts +8 -0
  101. package/extensions/AwsDefaultRegion.js +22 -0
  102. package/extensions/AwsDefaultRegion.js.map +1 -0
  103. package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.d.ts +10 -0
  104. package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js +40 -0
  105. package/extensions/OpenSearch/EnsureOsServiceRoleBeforeCoreDeploy.js.map +1 -0
  106. package/extensions/OpenSearch/EnsureOsWasDeployed.d.ts +11 -0
  107. package/extensions/OpenSearch/EnsureOsWasDeployed.js +34 -0
  108. package/extensions/OpenSearch/EnsureOsWasDeployed.js.map +1 -0
  109. package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.d.ts +12 -0
  110. package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js +31 -0
  111. package/extensions/OpenSearch/InjectDdbEsLambdaFnHandler.js.map +1 -0
  112. package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.d.ts +12 -0
  113. package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js +32 -0
  114. package/extensions/OpenSearch/ReplaceApiLambdaFnHandlers.js.map +1 -0
  115. package/extensions/OpenSearch.d.ts +17 -0
  116. package/extensions/OpenSearch.js +35 -0
  117. package/extensions/OpenSearch.js.map +1 -0
  118. package/extensions/ProjectAws/AdminStackOutputService.d.ts +1 -0
  119. package/extensions/ProjectAws/AdminStackOutputService.js +3 -0
  120. package/extensions/ProjectAws/AdminStackOutputService.js.map +1 -0
  121. package/extensions/ProjectAws/ApiStackOutputService.d.ts +1 -0
  122. package/extensions/ProjectAws/ApiStackOutputService.js +3 -0
  123. package/extensions/ProjectAws/ApiStackOutputService.js.map +1 -0
  124. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.d.ts +17 -0
  125. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js +108 -0
  126. package/extensions/ProjectAws/AutoInstall/AutoInstallAfterApiDeploy.js.map +1 -0
  127. package/extensions/ProjectAws/AutoInstall.d.ts +33 -0
  128. package/extensions/ProjectAws/AutoInstall.js +19 -0
  129. package/extensions/ProjectAws/AutoInstall.js.map +1 -0
  130. package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.d.ts +10 -0
  131. package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js +27 -0
  132. package/extensions/ProjectAws/BlueGreenDeployments/EnsureVariantBeforeDeploy.js.map +1 -0
  133. package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.d.ts +20 -0
  134. package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js +54 -0
  135. package/extensions/ProjectAws/BlueGreenDeployments/PrintDeploymentInfoAfterDeploy.js.map +1 -0
  136. package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.d.ts +18 -0
  137. package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js +60 -0
  138. package/extensions/ProjectAws/BlueGreenDeployments/SetPrimaryVariantCliCommand.js.map +1 -0
  139. package/extensions/ProjectAws/BuildAppWorkspace.d.ts +12 -0
  140. package/extensions/ProjectAws/BuildAppWorkspace.js +66 -0
  141. package/extensions/ProjectAws/BuildAppWorkspace.js.map +1 -0
  142. package/extensions/ProjectAws/CoreStackOutputService.d.ts +1 -0
  143. package/extensions/ProjectAws/CoreStackOutputService.js +3 -0
  144. package/extensions/ProjectAws/CoreStackOutputService.js.map +1 -0
  145. package/extensions/ProjectAws/ExecuteDataMigrations.d.ts +16 -0
  146. package/extensions/ProjectAws/ExecuteDataMigrations.js +69 -0
  147. package/extensions/ProjectAws/ExecuteDataMigrations.js.map +1 -0
  148. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.d.ts +13 -0
  149. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js +43 -0
  150. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVars.js.map +1 -0
  151. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.d.ts +13 -0
  152. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js +24 -0
  153. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeBuild.js.map +1 -0
  154. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.d.ts +13 -0
  155. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js +24 -0
  156. package/extensions/ProjectAws/SetAdminEnvVars/SetAdminEnvVarsBeforeWatch.js.map +1 -0
  157. package/extensions/ProjectAws/SetDatabaseSetupOutput.d.ts +10 -0
  158. package/extensions/ProjectAws/SetDatabaseSetupOutput.js +29 -0
  159. package/extensions/ProjectAws/SetDatabaseSetupOutput.js.map +1 -0
  160. package/extensions/ProjectAws/UploadAdminAppToS3.d.ts +13 -0
  161. package/extensions/ProjectAws/UploadAdminAppToS3.js +69 -0
  162. package/extensions/ProjectAws/UploadAdminAppToS3.js.map +1 -0
  163. package/extensions/ProjectAws/definitions.d.ts +3 -0
  164. package/extensions/ProjectAws/definitions.js +9 -0
  165. package/extensions/ProjectAws/definitions.js.map +1 -0
  166. package/extensions/ProjectAws.d.ts +2 -0
  167. package/extensions/ProjectAws.js +52 -0
  168. package/extensions/ProjectAws.js.map +1 -0
  169. package/extensions/definitions.d.ts +3 -0
  170. package/extensions/definitions.js +6 -0
  171. package/extensions/definitions.js.map +1 -0
  172. package/extensions/index.d.ts +5 -0
  173. package/extensions/index.js +7 -0
  174. package/extensions/index.js.map +1 -0
  175. package/features/ApiGqlClient.d.ts +21 -0
  176. package/features/ApiGqlClient.js +59 -0
  177. package/features/ApiGqlClient.js.map +1 -0
  178. package/features/InvokeLambdaFunction.d.ts +10 -0
  179. package/features/InvokeLambdaFunction.js +38 -0
  180. package/features/InvokeLambdaFunction.js.map +1 -0
  181. package/features/index.d.ts +2 -0
  182. package/features/index.js +4 -0
  183. package/features/index.js.map +1 -0
  184. package/index.d.ts +6 -0
  185. package/index.js +8 -0
  186. package/index.js.map +1 -0
  187. package/infra.d.ts +425 -0
  188. package/infra.js +54 -0
  189. package/infra.js.map +1 -0
  190. package/package.json +60 -0
  191. package/project.d.ts +139 -0
  192. package/project.js +10 -0
  193. package/project.js.map +1 -0
  194. package/pulumi/apps/admin/createAdminPulumiApp.d.ts +12 -0
  195. package/pulumi/apps/admin/createAdminPulumiApp.js +52 -0
  196. package/pulumi/apps/admin/createAdminPulumiApp.js.map +1 -0
  197. package/pulumi/apps/admin/index.d.ts +1 -0
  198. package/pulumi/apps/admin/index.js +3 -0
  199. package/pulumi/apps/admin/index.js.map +1 -0
  200. package/pulumi/apps/api/ApiBackgroundTask.d.ts +12 -0
  201. package/pulumi/apps/api/ApiBackgroundTask.js +148 -0
  202. package/pulumi/apps/api/ApiBackgroundTask.js.map +1 -0
  203. package/pulumi/apps/api/ApiCloudfront.d.ts +3 -0
  204. package/pulumi/apps/api/ApiCloudfront.js +136 -0
  205. package/pulumi/apps/api/ApiCloudfront.js.map +1 -0
  206. package/pulumi/apps/api/ApiFileManager.d.ts +11 -0
  207. package/pulumi/apps/api/ApiFileManager.js +39 -0
  208. package/pulumi/apps/api/ApiFileManager.js.map +1 -0
  209. package/pulumi/apps/api/ApiGateway.d.ts +18 -0
  210. package/pulumi/apps/api/ApiGateway.js +80 -0
  211. package/pulumi/apps/api/ApiGateway.js.map +1 -0
  212. package/pulumi/apps/api/ApiGraphql.d.ts +22 -0
  213. package/pulumi/apps/api/ApiGraphql.js +164 -0
  214. package/pulumi/apps/api/ApiGraphql.js.map +1 -0
  215. package/pulumi/apps/api/ApiMigration.d.ts +5 -0
  216. package/pulumi/apps/api/ApiMigration.js +83 -0
  217. package/pulumi/apps/api/ApiMigration.js.map +1 -0
  218. package/pulumi/apps/api/ApiOutput.d.ts +23 -0
  219. package/pulumi/apps/api/ApiOutput.js +36 -0
  220. package/pulumi/apps/api/ApiOutput.js.map +1 -0
  221. package/pulumi/apps/api/ApiScheduler.d.ts +8 -0
  222. package/pulumi/apps/api/ApiScheduler.js +100 -0
  223. package/pulumi/apps/api/ApiScheduler.js.map +1 -0
  224. package/pulumi/apps/api/ApiWebsocket.d.ts +14 -0
  225. package/pulumi/apps/api/ApiWebsocket.js +138 -0
  226. package/pulumi/apps/api/ApiWebsocket.js.map +1 -0
  227. package/pulumi/apps/api/backgroundTask/definition.d.ts +7 -0
  228. package/pulumi/apps/api/backgroundTask/definition.js +149 -0
  229. package/pulumi/apps/api/backgroundTask/definition.js.map +1 -0
  230. package/pulumi/apps/api/backgroundTask/policy.d.ts +8 -0
  231. package/pulumi/apps/api/backgroundTask/policy.js +26 -0
  232. package/pulumi/apps/api/backgroundTask/policy.js.map +1 -0
  233. package/pulumi/apps/api/backgroundTask/role.d.ts +9 -0
  234. package/pulumi/apps/api/backgroundTask/role.js +32 -0
  235. package/pulumi/apps/api/backgroundTask/role.js.map +1 -0
  236. package/pulumi/apps/api/backgroundTask/types.d.ts +91 -0
  237. package/pulumi/apps/api/backgroundTask/types.js +14 -0
  238. package/pulumi/apps/api/backgroundTask/types.js.map +1 -0
  239. package/pulumi/apps/api/createApiPulumiApp.d.ts +57 -0
  240. package/pulumi/apps/api/createApiPulumiApp.js +281 -0
  241. package/pulumi/apps/api/createApiPulumiApp.js.map +1 -0
  242. package/pulumi/apps/api/handleGuardDutyEvents.d.ts +2 -0
  243. package/pulumi/apps/api/handleGuardDutyEvents.js +55 -0
  244. package/pulumi/apps/api/handleGuardDutyEvents.js.map +1 -0
  245. package/pulumi/apps/api/index.d.ts +9 -0
  246. package/pulumi/apps/api/index.js +11 -0
  247. package/pulumi/apps/api/index.js.map +1 -0
  248. package/pulumi/apps/awsUtils.d.ts +5 -0
  249. package/pulumi/apps/awsUtils.js +34 -0
  250. package/pulumi/apps/awsUtils.js.map +1 -0
  251. package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.d.ts +11 -0
  252. package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js +44 -0
  253. package/pulumi/apps/blueGreen/BlueGreenRouterApiGateway.js.map +1 -0
  254. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.d.ts +17 -0
  255. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js +100 -0
  256. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFront.js.map +1 -0
  257. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.d.ts +10 -0
  258. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js +20 -0
  259. package/pulumi/apps/blueGreen/BlueGreenRouterCloudFrontStore.js.map +1 -0
  260. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.d.ts +7 -0
  261. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js +15 -0
  262. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontDefaultCacheBehaviorPolicies.js.map +1 -0
  263. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.d.ts +14 -0
  264. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js +23 -0
  265. package/pulumi/apps/blueGreen/cloudfront/createCloudFrontFunctionDomainMap.js.map +1 -0
  266. package/pulumi/apps/blueGreen/cloudfront/createOriginId.d.ts +11 -0
  267. package/pulumi/apps/blueGreen/cloudfront/createOriginId.js +10 -0
  268. package/pulumi/apps/blueGreen/cloudfront/createOriginId.js.map +1 -0
  269. package/pulumi/apps/blueGreen/constants.d.ts +3 -0
  270. package/pulumi/apps/blueGreen/constants.js +5 -0
  271. package/pulumi/apps/blueGreen/constants.js.map +1 -0
  272. package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.d.ts +15 -0
  273. package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js +122 -0
  274. package/pulumi/apps/blueGreen/createBlueGreenPulumiApp.js.map +1 -0
  275. package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.d.ts +9 -0
  276. package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js +30 -0
  277. package/pulumi/apps/blueGreen/domains/attachDomainsToOutput.js.map +1 -0
  278. package/pulumi/apps/blueGreen/domains/convertApplicationDomains.d.ts +6 -0
  279. package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js +23 -0
  280. package/pulumi/apps/blueGreen/domains/convertApplicationDomains.js.map +1 -0
  281. package/pulumi/apps/blueGreen/domains/getApplicationDomains.d.ts +18 -0
  282. package/pulumi/apps/blueGreen/domains/getApplicationDomains.js +73 -0
  283. package/pulumi/apps/blueGreen/domains/getApplicationDomains.js.map +1 -0
  284. package/pulumi/apps/blueGreen/domains/resolveDomains.d.ts +6 -0
  285. package/pulumi/apps/blueGreen/domains/resolveDomains.js +41 -0
  286. package/pulumi/apps/blueGreen/domains/resolveDomains.js.map +1 -0
  287. package/pulumi/apps/blueGreen/functions/buildHandlerFunction.d.ts +15 -0
  288. package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js +18 -0
  289. package/pulumi/apps/blueGreen/functions/buildHandlerFunction.js.map +1 -0
  290. package/pulumi/apps/blueGreen/functions/handler.d.ts +1 -0
  291. package/pulumi/apps/blueGreen/functions/handler.js +60 -0
  292. package/pulumi/apps/blueGreen/functions/handler.js.map +1 -0
  293. package/pulumi/apps/blueGreen/types.d.ts +77 -0
  294. package/pulumi/apps/blueGreen/types.js +3 -0
  295. package/pulumi/apps/blueGreen/types.js.map +1 -0
  296. package/pulumi/apps/blueGreen/validation/validateDeployments.d.ts +2 -0
  297. package/pulumi/apps/blueGreen/validation/validateDeployments.js +33 -0
  298. package/pulumi/apps/blueGreen/validation/validateDeployments.js.map +1 -0
  299. package/pulumi/apps/common/CoreOutput.d.ts +38 -0
  300. package/pulumi/apps/common/CoreOutput.js +46 -0
  301. package/pulumi/apps/common/CoreOutput.js.map +1 -0
  302. package/pulumi/apps/common/VpcConfig.d.ts +8 -0
  303. package/pulumi/apps/common/VpcConfig.js +25 -0
  304. package/pulumi/apps/common/VpcConfig.js.map +1 -0
  305. package/pulumi/apps/common/index.d.ts +2 -0
  306. package/pulumi/apps/common/index.js +4 -0
  307. package/pulumi/apps/common/index.js.map +1 -0
  308. package/pulumi/apps/core/CoreAuditLogsDynamo.d.ts +5 -0
  309. package/pulumi/apps/core/CoreAuditLogsDynamo.js +186 -0
  310. package/pulumi/apps/core/CoreAuditLogsDynamo.js.map +1 -0
  311. package/pulumi/apps/core/CoreCognito.d.ts +10 -0
  312. package/pulumi/apps/core/CoreCognito.js +110 -0
  313. package/pulumi/apps/core/CoreCognito.js.map +1 -0
  314. package/pulumi/apps/core/CoreDynamo.d.ts +5 -0
  315. package/pulumi/apps/core/CoreDynamo.js +74 -0
  316. package/pulumi/apps/core/CoreDynamo.js.map +1 -0
  317. package/pulumi/apps/core/CoreEventBus.d.ts +1 -0
  318. package/pulumi/apps/core/CoreEventBus.js +13 -0
  319. package/pulumi/apps/core/CoreEventBus.js.map +1 -0
  320. package/pulumi/apps/core/CoreFileManager.d.ts +11 -0
  321. package/pulumi/apps/core/CoreFileManager.js +72 -0
  322. package/pulumi/apps/core/CoreFileManager.js.map +1 -0
  323. package/pulumi/apps/core/CoreOpenSearch.d.ts +16 -0
  324. package/pulumi/apps/core/CoreOpenSearch.js +299 -0
  325. package/pulumi/apps/core/CoreOpenSearch.js.map +1 -0
  326. package/pulumi/apps/core/CoreVpc.d.ts +13 -0
  327. package/pulumi/apps/core/CoreVpc.js +160 -0
  328. package/pulumi/apps/core/CoreVpc.js.map +1 -0
  329. package/pulumi/apps/core/LogDynamo.d.ts +5 -0
  330. package/pulumi/apps/core/LogDynamo.js +122 -0
  331. package/pulumi/apps/core/LogDynamo.js.map +1 -0
  332. package/pulumi/apps/core/WatchCommand.d.ts +7 -0
  333. package/pulumi/apps/core/WatchCommand.js +105 -0
  334. package/pulumi/apps/core/WatchCommand.js.map +1 -0
  335. package/pulumi/apps/core/cognitoIdentityProviders/amazon.d.ts +9 -0
  336. package/pulumi/apps/core/cognitoIdentityProviders/amazon.js +24 -0
  337. package/pulumi/apps/core/cognitoIdentityProviders/amazon.js.map +1 -0
  338. package/pulumi/apps/core/cognitoIdentityProviders/apple.d.ts +4 -0
  339. package/pulumi/apps/core/cognitoIdentityProviders/apple.js +19 -0
  340. package/pulumi/apps/core/cognitoIdentityProviders/apple.js.map +1 -0
  341. package/pulumi/apps/core/cognitoIdentityProviders/configure.d.ts +28 -0
  342. package/pulumi/apps/core/cognitoIdentityProviders/configure.js +57 -0
  343. package/pulumi/apps/core/cognitoIdentityProviders/configure.js.map +1 -0
  344. package/pulumi/apps/core/cognitoIdentityProviders/facebook.d.ts +4 -0
  345. package/pulumi/apps/core/cognitoIdentityProviders/facebook.js +19 -0
  346. package/pulumi/apps/core/cognitoIdentityProviders/facebook.js.map +1 -0
  347. package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.d.ts +3 -0
  348. package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js +17 -0
  349. package/pulumi/apps/core/cognitoIdentityProviders/getIdpConfig.js.map +1 -0
  350. package/pulumi/apps/core/cognitoIdentityProviders/google.d.ts +4 -0
  351. package/pulumi/apps/core/cognitoIdentityProviders/google.js +19 -0
  352. package/pulumi/apps/core/cognitoIdentityProviders/google.js.map +1 -0
  353. package/pulumi/apps/core/cognitoIdentityProviders/index.d.ts +1 -0
  354. package/pulumi/apps/core/cognitoIdentityProviders/index.js +3 -0
  355. package/pulumi/apps/core/cognitoIdentityProviders/index.js.map +1 -0
  356. package/pulumi/apps/core/cognitoIdentityProviders/oidc.d.ts +4 -0
  357. package/pulumi/apps/core/cognitoIdentityProviders/oidc.js +20 -0
  358. package/pulumi/apps/core/cognitoIdentityProviders/oidc.js.map +1 -0
  359. package/pulumi/apps/core/configureS3BucketMalwareProtection.d.ts +2 -0
  360. package/pulumi/apps/core/configureS3BucketMalwareProtection.js +195 -0
  361. package/pulumi/apps/core/configureS3BucketMalwareProtection.js.map +1 -0
  362. package/pulumi/apps/core/createCorePulumiApp.d.ts +32 -0
  363. package/pulumi/apps/core/createCorePulumiApp.js +295 -0
  364. package/pulumi/apps/core/createCorePulumiApp.js.map +1 -0
  365. package/pulumi/apps/core/index.d.ts +8 -0
  366. package/pulumi/apps/core/index.js +10 -0
  367. package/pulumi/apps/core/index.js.map +1 -0
  368. package/pulumi/apps/core/webinyWatchCommand/handler.d.ts +28 -0
  369. package/pulumi/apps/core/webinyWatchCommand/handler.js +37 -0
  370. package/pulumi/apps/core/webinyWatchCommand/handler.js.map +1 -0
  371. package/pulumi/apps/createAppBucket.d.ts +17 -0
  372. package/pulumi/apps/createAppBucket.js +152 -0
  373. package/pulumi/apps/createAppBucket.js.map +1 -0
  374. package/pulumi/apps/customDomain.d.ts +9 -0
  375. package/pulumi/apps/customDomain.js +9 -0
  376. package/pulumi/apps/customDomain.js.map +1 -0
  377. package/pulumi/apps/extensions/getAwsTagsFromExtension.d.ts +2 -0
  378. package/pulumi/apps/extensions/getAwsTagsFromExtension.js +10 -0
  379. package/pulumi/apps/extensions/getAwsTagsFromExtension.js.map +1 -0
  380. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.d.ts +23 -0
  381. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js +10 -0
  382. package/pulumi/apps/extensions/getBgDeploymentsConfigFromExtension.js.map +1 -0
  383. package/pulumi/apps/extensions/getOsConfigFromExtension.d.ts +7 -0
  384. package/pulumi/apps/extensions/getOsConfigFromExtension.js +33 -0
  385. package/pulumi/apps/extensions/getOsConfigFromExtension.js.map +1 -0
  386. package/pulumi/apps/extensions/getVpcConfigFromExtension.d.ts +15 -0
  387. package/pulumi/apps/extensions/getVpcConfigFromExtension.js +29 -0
  388. package/pulumi/apps/extensions/getVpcConfigFromExtension.js.map +1 -0
  389. package/pulumi/apps/index.d.ts +6 -0
  390. package/pulumi/apps/index.js +8 -0
  391. package/pulumi/apps/index.js.map +1 -0
  392. package/pulumi/apps/lambdaUtils.d.ts +11 -0
  393. package/pulumi/apps/lambdaUtils.js +70 -0
  394. package/pulumi/apps/lambdaUtils.js.map +1 -0
  395. package/pulumi/apps/react/createReactPulumiApp.d.ts +32 -0
  396. package/pulumi/apps/react/createReactPulumiApp.js +150 -0
  397. package/pulumi/apps/react/createReactPulumiApp.js.map +1 -0
  398. package/pulumi/apps/react/index.d.ts +1 -0
  399. package/pulumi/apps/react/index.js +3 -0
  400. package/pulumi/apps/react/index.js.map +1 -0
  401. package/pulumi/apps/syncSystem/SyncSystemDynamo.d.ts +5 -0
  402. package/pulumi/apps/syncSystem/SyncSystemDynamo.js +56 -0
  403. package/pulumi/apps/syncSystem/SyncSystemDynamo.js.map +1 -0
  404. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.d.ts +3 -0
  405. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js +52 -0
  406. package/pulumi/apps/syncSystem/SyncSystemDynamoDb.js.map +1 -0
  407. package/pulumi/apps/syncSystem/SyncSystemEventBus.d.ts +6 -0
  408. package/pulumi/apps/syncSystem/SyncSystemEventBus.js +77 -0
  409. package/pulumi/apps/syncSystem/SyncSystemEventBus.js.map +1 -0
  410. package/pulumi/apps/syncSystem/SyncSystemLambda.d.ts +11 -0
  411. package/pulumi/apps/syncSystem/SyncSystemLambda.js +99 -0
  412. package/pulumi/apps/syncSystem/SyncSystemLambda.js.map +1 -0
  413. package/pulumi/apps/syncSystem/SyncSystemOutput.d.ts +3 -0
  414. package/pulumi/apps/syncSystem/SyncSystemOutput.js +18 -0
  415. package/pulumi/apps/syncSystem/SyncSystemOutput.js.map +1 -0
  416. package/pulumi/apps/syncSystem/SyncSystemResolverLambda.d.ts +8 -0
  417. package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js +73 -0
  418. package/pulumi/apps/syncSystem/SyncSystemResolverLambda.js.map +1 -0
  419. package/pulumi/apps/syncSystem/SyncSystemSQS.d.ts +3 -0
  420. package/pulumi/apps/syncSystem/SyncSystemSQS.js +54 -0
  421. package/pulumi/apps/syncSystem/SyncSystemSQS.js.map +1 -0
  422. package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.d.ts +7 -0
  423. package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js +52 -0
  424. package/pulumi/apps/syncSystem/SyncSystemWorkerLambda.js.map +1 -0
  425. package/pulumi/apps/syncSystem/addTableItems.d.ts +8 -0
  426. package/pulumi/apps/syncSystem/addTableItems.js +51 -0
  427. package/pulumi/apps/syncSystem/addTableItems.js.map +1 -0
  428. package/pulumi/apps/syncSystem/api/addServiceManifest.d.ts +8 -0
  429. package/pulumi/apps/syncSystem/api/addServiceManifest.js +18 -0
  430. package/pulumi/apps/syncSystem/api/addServiceManifest.js.map +1 -0
  431. package/pulumi/apps/syncSystem/api/attachCognitoPermissions.d.ts +14 -0
  432. package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js +59 -0
  433. package/pulumi/apps/syncSystem/api/attachCognitoPermissions.js.map +1 -0
  434. package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.d.ts +13 -0
  435. package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js +44 -0
  436. package/pulumi/apps/syncSystem/api/attachDynamoDbPermissions.js.map +1 -0
  437. package/pulumi/apps/syncSystem/api/attachEventBusPermissions.d.ts +17 -0
  438. package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js +48 -0
  439. package/pulumi/apps/syncSystem/api/attachEventBusPermissions.js.map +1 -0
  440. package/pulumi/apps/syncSystem/api/attachS3Permissions.d.ts +14 -0
  441. package/pulumi/apps/syncSystem/api/attachS3Permissions.js +51 -0
  442. package/pulumi/apps/syncSystem/api/attachS3Permissions.js.map +1 -0
  443. package/pulumi/apps/syncSystem/api/index.d.ts +8 -0
  444. package/pulumi/apps/syncSystem/api/index.js +55 -0
  445. package/pulumi/apps/syncSystem/api/index.js.map +1 -0
  446. package/pulumi/apps/syncSystem/constants.d.ts +1 -0
  447. package/pulumi/apps/syncSystem/constants.js +3 -0
  448. package/pulumi/apps/syncSystem/constants.js.map +1 -0
  449. package/pulumi/apps/syncSystem/createSyncResourceName.d.ts +4 -0
  450. package/pulumi/apps/syncSystem/createSyncResourceName.js +10 -0
  451. package/pulumi/apps/syncSystem/createSyncResourceName.js.map +1 -0
  452. package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.d.ts +26 -0
  453. package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js +181 -0
  454. package/pulumi/apps/syncSystem/createSyncSystemPulumiApp.js.map +1 -0
  455. package/pulumi/apps/syncSystem/customApp.d.ts +6 -0
  456. package/pulumi/apps/syncSystem/customApp.js +19 -0
  457. package/pulumi/apps/syncSystem/customApp.js.map +1 -0
  458. package/pulumi/apps/syncSystem/getSyncSystemOutput.d.ts +3 -0
  459. package/pulumi/apps/syncSystem/getSyncSystemOutput.js +10 -0
  460. package/pulumi/apps/syncSystem/getSyncSystemOutput.js.map +1 -0
  461. package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.d.ts +7 -0
  462. package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js +48 -0
  463. package/pulumi/apps/syncSystem/lambda/createSyncSystemResolverLambdaPolicy.js.map +1 -0
  464. package/pulumi/apps/syncSystem/types.d.ts +56 -0
  465. package/pulumi/apps/syncSystem/types.js +3 -0
  466. package/pulumi/apps/syncSystem/types.js.map +1 -0
  467. package/pulumi/constants.d.ts +1 -0
  468. package/pulumi/constants.js +4 -0
  469. package/pulumi/constants.js.map +1 -0
  470. package/pulumi/env/awsRegion.d.ts +1 -0
  471. package/pulumi/env/awsRegion.js +6 -0
  472. package/pulumi/env/awsRegion.js.map +1 -0
  473. package/pulumi/env/base.d.ts +15 -0
  474. package/pulumi/env/base.js +29 -0
  475. package/pulumi/env/base.js.map +1 -0
  476. package/pulumi/env/env.d.ts +1 -0
  477. package/pulumi/env/env.js +6 -0
  478. package/pulumi/env/env.js.map +1 -0
  479. package/pulumi/env/projectName.d.ts +1 -0
  480. package/pulumi/env/projectName.js +6 -0
  481. package/pulumi/env/projectName.js.map +1 -0
  482. package/pulumi/env/variant.d.ts +1 -0
  483. package/pulumi/env/variant.js +7 -0
  484. package/pulumi/env/variant.js.map +1 -0
  485. package/pulumi/extensions/AdminCustomDomains.d.ts +14 -0
  486. package/pulumi/extensions/AdminCustomDomains.js +16 -0
  487. package/pulumi/extensions/AdminCustomDomains.js.map +1 -0
  488. package/pulumi/extensions/AwsTags.d.ts +8 -0
  489. package/pulumi/extensions/AwsTags.js +15 -0
  490. package/pulumi/extensions/AwsTags.js.map +1 -0
  491. package/pulumi/extensions/BlueGreenDeployments.d.ts +134 -0
  492. package/pulumi/extensions/BlueGreenDeployments.js +34 -0
  493. package/pulumi/extensions/BlueGreenDeployments.js.map +1 -0
  494. package/pulumi/extensions/OpenSearch.d.ts +17 -0
  495. package/pulumi/extensions/OpenSearch.js +17 -0
  496. package/pulumi/extensions/OpenSearch.js.map +1 -0
  497. package/pulumi/extensions/Vpc.d.ts +71 -0
  498. package/pulumi/extensions/Vpc.js +25 -0
  499. package/pulumi/extensions/Vpc.js.map +1 -0
  500. package/pulumi/extensions/index.d.ts +220 -0
  501. package/pulumi/extensions/index.js +13 -0
  502. package/pulumi/extensions/index.js.map +1 -0
  503. package/pulumi/index.d.ts +3 -0
  504. package/pulumi/index.js +5 -0
  505. package/pulumi/index.js.map +1 -0
  506. package/pulumi/types.d.ts +44 -0
  507. package/pulumi/types.js +3 -0
  508. package/pulumi/types.js.map +1 -0
  509. package/pulumi/utils/addDomainsUrlsOutputs.d.ts +18 -0
  510. package/pulumi/utils/addDomainsUrlsOutputs.js +40 -0
  511. package/pulumi/utils/addDomainsUrlsOutputs.js.map +1 -0
  512. package/pulumi/utils/addServiceManifestTableItem.d.ts +12 -0
  513. package/pulumi/utils/addServiceManifestTableItem.js +28 -0
  514. package/pulumi/utils/addServiceManifestTableItem.js.map +1 -0
  515. package/pulumi/utils/crawlDirectory.d.ts +1 -0
  516. package/pulumi/utils/crawlDirectory.js +19 -0
  517. package/pulumi/utils/crawlDirectory.js.map +1 -0
  518. package/pulumi/utils/createAssetArchive.d.ts +2 -0
  519. package/pulumi/utils/createAssetArchive.js +8 -0
  520. package/pulumi/utils/createAssetArchive.js.map +1 -0
  521. package/pulumi/utils/dynamodb.d.ts +14 -0
  522. package/pulumi/utils/dynamodb.js +29 -0
  523. package/pulumi/utils/dynamodb.js.map +1 -0
  524. package/pulumi/utils/getPresignedPost.d.ts +11 -0
  525. package/pulumi/utils/getPresignedPost.js +34 -0
  526. package/pulumi/utils/getPresignedPost.js.map +1 -0
  527. package/pulumi/utils/index.d.ts +5 -0
  528. package/pulumi/utils/index.js +7 -0
  529. package/pulumi/utils/index.js.map +1 -0
  530. package/pulumi/utils/lambdaEnvVariables.d.ts +20 -0
  531. package/pulumi/utils/lambdaEnvVariables.js +62 -0
  532. package/pulumi/utils/lambdaEnvVariables.js.map +1 -0
  533. package/pulumi/utils/tagResources.d.ts +5 -0
  534. package/pulumi/utils/tagResources.js +33 -0
  535. package/pulumi/utils/tagResources.js.map +1 -0
  536. package/pulumi/utils/uploadFolderToS3.d.ts +26 -0
  537. package/pulumi/utils/uploadFolderToS3.js +147 -0
  538. package/pulumi/utils/uploadFolderToS3.js.map +1 -0
  539. package/pulumi/utils/withServiceManifest.d.ts +14 -0
  540. package/pulumi/utils/withServiceManifest.js +45 -0
  541. package/pulumi/utils/withServiceManifest.js.map +1 -0
  542. package/services/AdminStackOutputService.d.ts +10 -0
  543. package/services/AdminStackOutputService.js +16 -0
  544. package/services/AdminStackOutputService.js.map +1 -0
  545. package/services/ApiStackOutputService.d.ts +10 -0
  546. package/services/ApiStackOutputService.js +16 -0
  547. package/services/ApiStackOutputService.js.map +1 -0
  548. package/services/CoreStackOutputService.d.ts +10 -0
  549. package/services/CoreStackOutputService.js +16 -0
  550. package/services/CoreStackOutputService.js.map +1 -0
  551. package/utils/getTemplatesFolderPath.d.ts +1 -0
  552. package/utils/getTemplatesFolderPath.js +16 -0
  553. package/utils/getTemplatesFolderPath.js.map +1 -0
  554. package/utils/index.d.ts +1 -0
  555. package/utils/index.js +3 -0
  556. package/utils/index.js.map +1 -0
@@ -0,0 +1,62 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ const variablesRegistry = {};
3
+ if (process.env.DEBUG === "true") {
4
+ variablesRegistry.NODE_OPTIONS = "--enable-source-maps";
5
+ }
6
+ export let sealEnvVariables;
7
+ const magicPrefixes = ["WEBINY_", "WEBINY_API_",
8
+ // Added WCP vars separately. We don't need any other `WCP_PROJECT_` variables, apart from these two.
9
+ // This will be later removed because we'll be using `Api.BuildParam` extension.
10
+ "WCP_PROJECT_ENVIRONMENT", "WCP_PROJECT_ENVIRONMENT_API_KEY", "OKTA_", "AUTH0_"];
11
+ const variablesPromise = new Promise(resolve => {
12
+ sealEnvVariables = () => {
13
+ // Apart from a couple of basic environment variables like DEBUG,
14
+ // we also take into consideration variables that have `WEBINY_` and `WCP_` prefix in their names.
15
+ const baseVariables = Object.keys(process.env).reduce((current, environmentVariableName) => {
16
+ const hasMagicPrefix = magicPrefixes.some(prefix => environmentVariableName.startsWith(prefix));
17
+ if (hasMagicPrefix && process.env[environmentVariableName] !== undefined) {
18
+ current[environmentVariableName] = String(process.env[environmentVariableName]);
19
+ }
20
+ return current;
21
+ }, {
22
+ // Among other things, this determines the amount of information we reveal on runtime errors.
23
+ // https://www.webiny.com/docs/how-to-guides/environment-variables/#debug-environment-variable
24
+ DEBUG: String(process.env.DEBUG),
25
+ // This flag means that Lambda was deployed using the new Pulumi Apps architecture.
26
+ PULUMI_APPS: "true"
27
+ });
28
+ resolve(Object.assign({}, baseVariables, variablesRegistry));
29
+ };
30
+ });
31
+ export function getCommonLambdaEnvVariables() {
32
+ return pulumi.output(variablesPromise);
33
+ }
34
+ function setCommonLambdaEnvVariables(variables) {
35
+ Object.assign(variablesRegistry, variables);
36
+ }
37
+ /**
38
+ * Augment the given app with `setCommonLambdaEnvVariables` functionality.
39
+ * @param {PulumiApp} app
40
+ */
41
+ export function withCommonLambdaEnvVariables(app) {
42
+ app.decorateProgram(async (program, app) => {
43
+ const output = await program({
44
+ ...app,
45
+ setCommonLambdaEnvVariables
46
+ });
47
+
48
+ // Once the program is executed, we need to seal the variables (this will resolve the pulumi.output promise).
49
+ app.addHandler(() => {
50
+ sealEnvVariables();
51
+ });
52
+ return output;
53
+ });
54
+
55
+ // Augment the original PulumiApp.
56
+ return {
57
+ ...app,
58
+ setCommonLambdaEnvVariables
59
+ };
60
+ }
61
+
62
+ //# sourceMappingURL=lambdaEnvVariables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pulumi","variablesRegistry","process","env","DEBUG","NODE_OPTIONS","sealEnvVariables","magicPrefixes","variablesPromise","Promise","resolve","baseVariables","Object","keys","reduce","current","environmentVariableName","hasMagicPrefix","some","prefix","startsWith","undefined","String","PULUMI_APPS","assign","getCommonLambdaEnvVariables","output","setCommonLambdaEnvVariables","variables","withCommonLambdaEnvVariables","app","decorateProgram","program","addHandler"],"sources":["lambdaEnvVariables.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\n\ntype EnvVariables = Record<string, string | pulumi.Output<string>>;\n\nconst variablesRegistry: EnvVariables = {};\n\nif (process.env.DEBUG === \"true\") {\n variablesRegistry.NODE_OPTIONS = \"--enable-source-maps\";\n}\n\nexport let sealEnvVariables: () => void;\n\nconst magicPrefixes = [\n \"WEBINY_\",\n \"WEBINY_API_\",\n // Added WCP vars separately. We don't need any other `WCP_PROJECT_` variables, apart from these two.\n // This will be later removed because we'll be using `Api.BuildParam` extension.\n \"WCP_PROJECT_ENVIRONMENT\",\n \"WCP_PROJECT_ENVIRONMENT_API_KEY\",\n \"OKTA_\",\n \"AUTH0_\"\n];\n\nconst variablesPromise = new Promise<EnvVariables>(resolve => {\n sealEnvVariables = () => {\n // Apart from a couple of basic environment variables like DEBUG,\n // we also take into consideration variables that have `WEBINY_` and `WCP_` prefix in their names.\n const baseVariables = Object.keys(process.env).reduce<EnvVariables>(\n (current, environmentVariableName) => {\n const hasMagicPrefix = magicPrefixes.some(prefix =>\n environmentVariableName.startsWith(prefix)\n );\n\n if (hasMagicPrefix && process.env[environmentVariableName] !== undefined) {\n current[environmentVariableName] = String(process.env[environmentVariableName]);\n }\n return current;\n },\n {\n // Among other things, this determines the amount of information we reveal on runtime errors.\n // https://www.webiny.com/docs/how-to-guides/environment-variables/#debug-environment-variable\n DEBUG: String(process.env.DEBUG),\n // This flag means that Lambda was deployed using the new Pulumi Apps architecture.\n PULUMI_APPS: \"true\"\n }\n );\n\n resolve(Object.assign({}, baseVariables, variablesRegistry));\n };\n});\n\nexport function getCommonLambdaEnvVariables(): pulumi.Output<EnvVariables> {\n return pulumi.output(variablesPromise);\n}\n\nfunction setCommonLambdaEnvVariables(variables: EnvVariables) {\n Object.assign(variablesRegistry, variables);\n}\n\nexport interface SetCommonLambdaEnvVariables {\n (variables: EnvVariables): void;\n}\n\nexport interface WithCommonLambdaEnvVariables {\n /**\n * Set ENV variables that wil be assigned to all Lambda functions in the current Pulumi app.\n */\n setCommonLambdaEnvVariables: SetCommonLambdaEnvVariables;\n}\n\n/**\n * Augment the given app with `setCommonLambdaEnvVariables` functionality.\n * @param {PulumiApp} app\n */\nexport function withCommonLambdaEnvVariables<T extends PulumiApp>(\n app: T\n): T & WithCommonLambdaEnvVariables {\n app.decorateProgram<{ setCommonLambdaEnvVariables: typeof setCommonLambdaEnvVariables }>(\n async (program, app) => {\n const output = await program({\n ...app,\n setCommonLambdaEnvVariables\n });\n\n // Once the program is executed, we need to seal the variables (this will resolve the pulumi.output promise).\n app.addHandler(() => {\n sealEnvVariables();\n });\n\n return output;\n }\n );\n\n // Augment the original PulumiApp.\n return {\n ...app,\n setCommonLambdaEnvVariables\n };\n}\n"],"mappings":"AAAA,OAAO,KAAKA,MAAM,MAAM,gBAAgB;AAKxC,MAAMC,iBAA+B,GAAG,CAAC,CAAC;AAE1C,IAAIC,OAAO,CAACC,GAAG,CAACC,KAAK,KAAK,MAAM,EAAE;EAC9BH,iBAAiB,CAACI,YAAY,GAAG,sBAAsB;AAC3D;AAEA,OAAO,IAAIC,gBAA4B;AAEvC,MAAMC,aAAa,GAAG,CAClB,SAAS,EACT,aAAa;AACb;AACA;AACA,yBAAyB,EACzB,iCAAiC,EACjC,OAAO,EACP,QAAQ,CACX;AAED,MAAMC,gBAAgB,GAAG,IAAIC,OAAO,CAAeC,OAAO,IAAI;EAC1DJ,gBAAgB,GAAGA,CAAA,KAAM;IACrB;IACA;IACA,MAAMK,aAAa,GAAGC,MAAM,CAACC,IAAI,CAACX,OAAO,CAACC,GAAG,CAAC,CAACW,MAAM,CACjD,CAACC,OAAO,EAAEC,uBAAuB,KAAK;MAClC,MAAMC,cAAc,GAAGV,aAAa,CAACW,IAAI,CAACC,MAAM,IAC5CH,uBAAuB,CAACI,UAAU,CAACD,MAAM,CAC7C,CAAC;MAED,IAAIF,cAAc,IAAIf,OAAO,CAACC,GAAG,CAACa,uBAAuB,CAAC,KAAKK,SAAS,EAAE;QACtEN,OAAO,CAACC,uBAAuB,CAAC,GAAGM,MAAM,CAACpB,OAAO,CAACC,GAAG,CAACa,uBAAuB,CAAC,CAAC;MACnF;MACA,OAAOD,OAAO;IAClB,CAAC,EACD;MACI;MACA;MACAX,KAAK,EAAEkB,MAAM,CAACpB,OAAO,CAACC,GAAG,CAACC,KAAK,CAAC;MAChC;MACAmB,WAAW,EAAE;IACjB,CACJ,CAAC;IAEDb,OAAO,CAACE,MAAM,CAACY,MAAM,CAAC,CAAC,CAAC,EAAEb,aAAa,EAAEV,iBAAiB,CAAC,CAAC;EAChE,CAAC;AACL,CAAC,CAAC;AAEF,OAAO,SAASwB,2BAA2BA,CAAA,EAAgC;EACvE,OAAOzB,MAAM,CAAC0B,MAAM,CAAClB,gBAAgB,CAAC;AAC1C;AAEA,SAASmB,2BAA2BA,CAACC,SAAuB,EAAE;EAC1DhB,MAAM,CAACY,MAAM,CAACvB,iBAAiB,EAAE2B,SAAS,CAAC;AAC/C;AAaA;AACA;AACA;AACA;AACA,OAAO,SAASC,4BAA4BA,CACxCC,GAAM,EAC0B;EAChCA,GAAG,CAACC,eAAe,CACf,OAAOC,OAAO,EAAEF,GAAG,KAAK;IACpB,MAAMJ,MAAM,GAAG,MAAMM,OAAO,CAAC;MACzB,GAAGF,GAAG;MACNH;IACJ,CAAC,CAAC;;IAEF;IACAG,GAAG,CAACG,UAAU,CAAC,MAAM;MACjB3B,gBAAgB,CAAC,CAAC;IACtB,CAAC,CAAC;IAEF,OAAOoB,MAAM;EACjB,CACJ,CAAC;;EAED;EACA,OAAO;IACH,GAAGI,GAAG;IACNH;EACJ,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Registers a global stack transformation that merges a set
3
+ * of tags with whatever was explicitly set in the resource definition.
4
+ */
5
+ export declare function tagResources(tags: Record<string, string>): void;
@@ -0,0 +1,33 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+
3
+ /**
4
+ * Registers a global stack transformation that merges a set
5
+ * of tags with whatever was explicitly set in the resource definition.
6
+ */
7
+ export function tagResources(tags) {
8
+ pulumi.runtime.registerStackTransformation(args => {
9
+ if (isTaggable(args.type)) {
10
+ args.props["tags"] = {
11
+ ...args.props["tags"],
12
+ ...tags
13
+ };
14
+ return {
15
+ props: args.props,
16
+ opts: args.opts
17
+ };
18
+ }
19
+ return undefined;
20
+ });
21
+ }
22
+
23
+ /**
24
+ * Returns true if the given resource type is an AWS resource that supports tags.
25
+ */
26
+ function isTaggable(resourceType) {
27
+ return taggableResourceTypes.has(resourceType);
28
+ }
29
+
30
+ // A list of known AWS type tokens that are taggable.
31
+ const taggableResourceTypes = new Set(["aws:accessanalyzer/analyzer:Analyzer", "aws:acm/certificate:Certificate", "aws:acmpca/certificateAuthority:CertificateAuthority", "aws:alb/loadBalancer:LoadBalancer", "aws:alb/targetGroup:TargetGroup", "aws:apigateway/apiKey:ApiKey", "aws:apigateway/clientCertificate:ClientCertificate", "aws:apigateway/domainName:DomainName", "aws:apigateway/restApi:RestApi", "aws:apigateway/stage:Stage", "aws:apigateway/usagePlan:UsagePlan", "aws:apigateway/vpcLink:VpcLink", "aws:apigatewayv2/api:Api", "aws:apigatewayv2/stage:Stage", "aws:applicationloadbalancing/loadBalancer:LoadBalancer", "aws:applicationloadbalancing/targetGroup:TargetGroup", "aws:appmesh/mesh:Mesh", "aws:appmesh/route:Route", "aws:appmesh/virtualNode:VirtualNode", "aws:appmesh/virtualRouter:VirtualRouter", "aws:appmesh/virtualService:VirtualService", "aws:appsync/graphQLApi:GraphQLApi", "aws:athena/workgroup:Workgroup", "aws:autoscaling/group:Group", "aws:backup/plan:Plan", "aws:backup/vault:Vault", "aws:cfg/aggregateAuthorization:AggregateAuthorization", "aws:cfg/configurationAggregator:ConfigurationAggregator", "aws:cfg/rule:Rule", "aws:cloudformation/stack:Stack", "aws:cloudformation/stackSet:StackSet", "aws:cloudfront/distribution:Distribution", "aws:cloudhsmv2/cluster:Cluster", "aws:cloudtrail/trail:Trail", "aws:cloudwatch/eventRule:EventRule", "aws:cloudwatch/logGroup:LogGroup", "aws:cloudwatch/metricAlarm:MetricAlarm", "aws:codebuild/project:Project", "aws:codecommit/repository:Repository", "aws:codepipeline/pipeline:Pipeline", "aws:codepipeline/webhook:Webhook", "aws:codestarnotifications/notificationRule:NotificationRule", "aws:cognito/identityPool:IdentityPool", "aws:cognito/userPool:UserPool", "aws:datapipeline/pipeline:Pipeline", "aws:datasync/agent:Agent", "aws:datasync/efsLocation:EfsLocation", "aws:datasync/locationSmb:LocationSmb", "aws:datasync/nfsLocation:NfsLocation", "aws:datasync/s3Location:S3Location", "aws:datasync/task:Task", "aws:dax/cluster:Cluster", "aws:directconnect/connection:Connection", "aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter", "aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter", "aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor", "aws:directconnect/linkAggregationGroup:LinkAggregationGroup", "aws:directconnect/privateVirtualInterface:PrivateVirtualInterface", "aws:directconnect/publicVirtualInterface:PublicVirtualInterface", "aws:directconnect/transitVirtualInterface:TransitVirtualInterface", "aws:directoryservice/directory:Directory", "aws:dlm/lifecyclePolicy:LifecyclePolicy", "aws:dms/endpoint:Endpoint", "aws:dms/replicationInstance:ReplicationInstance", "aws:dms/replicationSubnetGroup:ReplicationSubnetGroup", "aws:dms/replicationTask:ReplicationTask", "aws:docdb/cluster:Cluster", "aws:docdb/clusterInstance:ClusterInstance", "aws:docdb/clusterParameterGroup:ClusterParameterGroup", "aws:docdb/subnetGroup:SubnetGroup", "aws:dynamodb/table:Table", "aws:ebs/snapshot:Snapshot", "aws:ebs/snapshotCopy:SnapshotCopy", "aws:ebs/volume:Volume", "aws:ec2/ami:Ami", "aws:ec2/amiCopy:AmiCopy", "aws:ec2/amiFromInstance:AmiFromInstance", "aws:ec2/capacityReservation:CapacityReservation", "aws:ec2/customerGateway:CustomerGateway", "aws:ec2/defaultNetworkAcl:DefaultNetworkAcl", "aws:ec2/defaultRouteTable:DefaultRouteTable", "aws:ec2/defaultSecurityGroup:DefaultSecurityGroup", "aws:ec2/defaultSubnet:DefaultSubnet", "aws:ec2/defaultVpc:DefaultVpc", "aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions", "aws:ec2/eip:Eip", "aws:ec2/fleet:Fleet", "aws:ec2/instance:Instance", "aws:ec2/internetGateway:InternetGateway", "aws:ec2/keyPair:KeyPair", "aws:ec2/launchTemplate:LaunchTemplate", "aws:ec2/natGateway:NatGateway", "aws:ec2/networkAcl:NetworkAcl", "aws:ec2/networkInterface:NetworkInterface", "aws:ec2/placementGroup:PlacementGroup", "aws:ec2/routeTable:RouteTable", "aws:ec2/securityGroup:SecurityGroup", "aws:ec2/spotInstanceRequest:SpotInstanceRequest", "aws:ec2/subnet:Subnet", "aws:ec2/vpc:Vpc", "aws:ec2/vpcDhcpOptions:VpcDhcpOptions", "aws:ec2/vpcEndpoint:VpcEndpoint", "aws:ec2/vpcEndpointService:VpcEndpointService", "aws:ec2/vpcPeeringConnection:VpcPeeringConnection", "aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter", "aws:ec2/vpnConnection:VpnConnection", "aws:ec2/vpnGateway:VpnGateway", "aws:ec2clientvpn/endpoint:Endpoint", "aws:ec2transitgateway/routeTable:RouteTable", "aws:ec2transitgateway/transitGateway:TransitGateway", "aws:ec2transitgateway/vpcAttachment:VpcAttachment", "aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter", "aws:ecr/repository:Repository", "aws:ecs/capacityProvider:CapacityProvider", "aws:ecs/cluster:Cluster", "aws:ecs/service:Service", "aws:ecs/taskDefinition:TaskDefinition", "aws:efs/fileSystem:FileSystem", "aws:eks/cluster:Cluster", "aws:eks/fargateProfile:FargateProfile", "aws:eks/nodeGroup:NodeGroup", "aws:elasticache/cluster:Cluster", "aws:elasticache/replicationGroup:ReplicationGroup", "aws:elasticbeanstalk/application:Application", "aws:elasticbeanstalk/applicationVersion:ApplicationVersion", "aws:elasticbeanstalk/environment:Environment", "aws:elasticloadbalancing/loadBalancer:LoadBalancer", "aws:elasticloadbalancingv2/loadBalancer:LoadBalancer", "aws:elasticloadbalancingv2/targetGroup:TargetGroup", "aws:elasticsearch/domain:Domain", "aws:elb/loadBalancer:LoadBalancer", "aws:emr/cluster:Cluster", "aws:fsx/lustreFileSystem:LustreFileSystem", "aws:fsx/windowsFileSystem:WindowsFileSystem", "aws:gamelift/alias:Alias", "aws:gamelift/build:Build", "aws:gamelift/fleet:Fleet", "aws:gamelift/gameSessionQueue:GameSessionQueue", "aws:glacier/vault:Vault", "aws:glue/crawler:Crawler", "aws:glue/job:Job", "aws:glue/trigger:Trigger", "aws:iam/role:Role", "aws:iam/user:User", "aws:inspector/resourceGroup:ResourceGroup", "aws:kinesis/analyticsApplication:AnalyticsApplication", "aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream", "aws:kinesis/stream:Stream", "aws:kms/externalKey:ExternalKey", "aws:kms/key:Key", "aws:lambda/function:Function", "aws:lambda/eventSourceMapping:EventSourceMapping", "aws:lb/loadBalancer:LoadBalancer", "aws:lb/targetGroup:TargetGroup", "aws:licensemanager/licenseConfiguration:LicenseConfiguration", "aws:lightsail/instance:Instance", "aws:mediaconvert/queue:Queue", "aws:mediapackage/channel:Channel", "aws:mediastore/container:Container", "aws:mq/broker:Broker", "aws:mq/configuration:Configuration", "aws:msk/cluster:Cluster", "aws:neptune/cluster:Cluster", "aws:neptune/clusterInstance:ClusterInstance", "aws:neptune/clusterParameterGroup:ClusterParameterGroup", "aws:neptune/eventSubscription:EventSubscription", "aws:neptune/parameterGroup:ParameterGroup", "aws:neptune/subnetGroup:SubnetGroup", "aws:opsworks/stack:Stack", "aws:organizations/account:Account", "aws:pinpoint/app:App", "aws:qldb/ledger:Ledger", "aws:ram/resourceShare:ResourceShare", "aws:rds/cluster:Cluster", "aws:rds/clusterEndpoint:ClusterEndpoint", "aws:rds/clusterInstance:ClusterInstance", "aws:rds/clusterParameterGroup:ClusterParameterGroup", "aws:rds/clusterSnapshot:ClusterSnapshot", "aws:rds/eventSubscription:EventSubscription", "aws:rds/instance:Instance", "aws:rds/optionGroup:OptionGroup", "aws:rds/parameterGroup:ParameterGroup", "aws:rds/securityGroup:SecurityGroup", "aws:rds/snapshot:Snapshot", "aws:rds/subnetGroup:SubnetGroup", "aws:redshift/cluster:Cluster", "aws:redshift/eventSubscription:EventSubscription", "aws:redshift/parameterGroup:ParameterGroup", "aws:redshift/snapshotCopyGrant:SnapshotCopyGrant", "aws:redshift/snapshotSchedule:SnapshotSchedule", "aws:redshift/subnetGroup:SubnetGroup", "aws:resourcegroups/group:Group", "aws:route53/healthCheck:HealthCheck", "aws:route53/resolverEndpoint:ResolverEndpoint", "aws:route53/resolverRule:ResolverRule", "aws:route53/zone:Zone", "aws:s3/bucket:Bucket", "aws:s3/bucketObject:BucketObject", "aws:sagemaker/endpoint:Endpoint", "aws:sagemaker/endpointConfiguration:EndpointConfiguration", "aws:sagemaker/model:Model", "aws:sagemaker/notebookInstance:NotebookInstance", "aws:secretsmanager/secret:Secret", "aws:servicecatalog/portfolio:Portfolio", "aws:sfn/activity:Activity", "aws:sfn/stateMachine:StateMachine", "aws:sns/topic:Topic", "aws:sqs/queue:Queue", "aws:ssm/activation:Activation", "aws:ssm/document:Document", "aws:ssm/maintenanceWindow:MaintenanceWindow", "aws:ssm/parameter:Parameter", "aws:ssm/patchBaseline:PatchBaseline", "aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume", "aws:storagegateway/gateway:Gateway", "aws:storagegateway/nfsFileShare:NfsFileShare", "aws:storagegateway/smbFileShare:SmbFileShare", "aws:swf/domain:Domain", "aws:transfer/server:Server", "aws:transfer/user:User", "aws:waf/rateBasedRule:RateBasedRule", "aws:waf/rule:Rule", "aws:waf/ruleGroup:RuleGroup", "aws:waf/webAcl:WebAcl", "aws:wafregional/rateBasedRule:RateBasedRule", "aws:wafregional/rule:Rule", "aws:wafregional/ruleGroup:RuleGroup", "aws:wafregional/webAcl:WebAcl", "aws:workspaces/directory:Directory", "aws:workspaces/ipGroup:IpGroup"]);
32
+
33
+ //# sourceMappingURL=tagResources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["pulumi","tagResources","tags","runtime","registerStackTransformation","args","isTaggable","type","props","opts","undefined","resourceType","taggableResourceTypes","has","Set"],"sources":["tagResources.ts"],"sourcesContent":["import * as pulumi from \"@pulumi/pulumi\";\n\n/**\n * Registers a global stack transformation that merges a set\n * of tags with whatever was explicitly set in the resource definition.\n */\nexport function tagResources(tags: Record<string, string>) {\n pulumi.runtime.registerStackTransformation(args => {\n if (isTaggable(args.type)) {\n args.props[\"tags\"] = { ...args.props[\"tags\"], ...tags };\n return { props: args.props, opts: args.opts };\n }\n return undefined;\n });\n}\n\n/**\n * Returns true if the given resource type is an AWS resource that supports tags.\n */\nfunction isTaggable(resourceType: string) {\n return taggableResourceTypes.has(resourceType);\n}\n\n// A list of known AWS type tokens that are taggable.\nconst taggableResourceTypes = new Set([\n \"aws:accessanalyzer/analyzer:Analyzer\",\n \"aws:acm/certificate:Certificate\",\n \"aws:acmpca/certificateAuthority:CertificateAuthority\",\n \"aws:alb/loadBalancer:LoadBalancer\",\n \"aws:alb/targetGroup:TargetGroup\",\n \"aws:apigateway/apiKey:ApiKey\",\n \"aws:apigateway/clientCertificate:ClientCertificate\",\n \"aws:apigateway/domainName:DomainName\",\n \"aws:apigateway/restApi:RestApi\",\n \"aws:apigateway/stage:Stage\",\n \"aws:apigateway/usagePlan:UsagePlan\",\n \"aws:apigateway/vpcLink:VpcLink\",\n \"aws:apigatewayv2/api:Api\",\n \"aws:apigatewayv2/stage:Stage\",\n \"aws:applicationloadbalancing/loadBalancer:LoadBalancer\",\n \"aws:applicationloadbalancing/targetGroup:TargetGroup\",\n \"aws:appmesh/mesh:Mesh\",\n \"aws:appmesh/route:Route\",\n \"aws:appmesh/virtualNode:VirtualNode\",\n \"aws:appmesh/virtualRouter:VirtualRouter\",\n \"aws:appmesh/virtualService:VirtualService\",\n \"aws:appsync/graphQLApi:GraphQLApi\",\n \"aws:athena/workgroup:Workgroup\",\n \"aws:autoscaling/group:Group\",\n \"aws:backup/plan:Plan\",\n \"aws:backup/vault:Vault\",\n \"aws:cfg/aggregateAuthorization:AggregateAuthorization\",\n \"aws:cfg/configurationAggregator:ConfigurationAggregator\",\n \"aws:cfg/rule:Rule\",\n \"aws:cloudformation/stack:Stack\",\n \"aws:cloudformation/stackSet:StackSet\",\n \"aws:cloudfront/distribution:Distribution\",\n \"aws:cloudhsmv2/cluster:Cluster\",\n \"aws:cloudtrail/trail:Trail\",\n \"aws:cloudwatch/eventRule:EventRule\",\n \"aws:cloudwatch/logGroup:LogGroup\",\n \"aws:cloudwatch/metricAlarm:MetricAlarm\",\n \"aws:codebuild/project:Project\",\n \"aws:codecommit/repository:Repository\",\n \"aws:codepipeline/pipeline:Pipeline\",\n \"aws:codepipeline/webhook:Webhook\",\n \"aws:codestarnotifications/notificationRule:NotificationRule\",\n \"aws:cognito/identityPool:IdentityPool\",\n \"aws:cognito/userPool:UserPool\",\n \"aws:datapipeline/pipeline:Pipeline\",\n \"aws:datasync/agent:Agent\",\n \"aws:datasync/efsLocation:EfsLocation\",\n \"aws:datasync/locationSmb:LocationSmb\",\n \"aws:datasync/nfsLocation:NfsLocation\",\n \"aws:datasync/s3Location:S3Location\",\n \"aws:datasync/task:Task\",\n \"aws:dax/cluster:Cluster\",\n \"aws:directconnect/connection:Connection\",\n \"aws:directconnect/hostedPrivateVirtualInterfaceAccepter:HostedPrivateVirtualInterfaceAccepter\",\n \"aws:directconnect/hostedPublicVirtualInterfaceAccepter:HostedPublicVirtualInterfaceAccepter\",\n \"aws:directconnect/hostedTransitVirtualInterfaceAcceptor:HostedTransitVirtualInterfaceAcceptor\",\n \"aws:directconnect/linkAggregationGroup:LinkAggregationGroup\",\n \"aws:directconnect/privateVirtualInterface:PrivateVirtualInterface\",\n \"aws:directconnect/publicVirtualInterface:PublicVirtualInterface\",\n \"aws:directconnect/transitVirtualInterface:TransitVirtualInterface\",\n \"aws:directoryservice/directory:Directory\",\n \"aws:dlm/lifecyclePolicy:LifecyclePolicy\",\n \"aws:dms/endpoint:Endpoint\",\n \"aws:dms/replicationInstance:ReplicationInstance\",\n \"aws:dms/replicationSubnetGroup:ReplicationSubnetGroup\",\n \"aws:dms/replicationTask:ReplicationTask\",\n \"aws:docdb/cluster:Cluster\",\n \"aws:docdb/clusterInstance:ClusterInstance\",\n \"aws:docdb/clusterParameterGroup:ClusterParameterGroup\",\n \"aws:docdb/subnetGroup:SubnetGroup\",\n \"aws:dynamodb/table:Table\",\n \"aws:ebs/snapshot:Snapshot\",\n \"aws:ebs/snapshotCopy:SnapshotCopy\",\n \"aws:ebs/volume:Volume\",\n \"aws:ec2/ami:Ami\",\n \"aws:ec2/amiCopy:AmiCopy\",\n \"aws:ec2/amiFromInstance:AmiFromInstance\",\n \"aws:ec2/capacityReservation:CapacityReservation\",\n \"aws:ec2/customerGateway:CustomerGateway\",\n \"aws:ec2/defaultNetworkAcl:DefaultNetworkAcl\",\n \"aws:ec2/defaultRouteTable:DefaultRouteTable\",\n \"aws:ec2/defaultSecurityGroup:DefaultSecurityGroup\",\n \"aws:ec2/defaultSubnet:DefaultSubnet\",\n \"aws:ec2/defaultVpc:DefaultVpc\",\n \"aws:ec2/defaultVpcDhcpOptions:DefaultVpcDhcpOptions\",\n \"aws:ec2/eip:Eip\",\n \"aws:ec2/fleet:Fleet\",\n \"aws:ec2/instance:Instance\",\n \"aws:ec2/internetGateway:InternetGateway\",\n \"aws:ec2/keyPair:KeyPair\",\n \"aws:ec2/launchTemplate:LaunchTemplate\",\n \"aws:ec2/natGateway:NatGateway\",\n \"aws:ec2/networkAcl:NetworkAcl\",\n \"aws:ec2/networkInterface:NetworkInterface\",\n \"aws:ec2/placementGroup:PlacementGroup\",\n \"aws:ec2/routeTable:RouteTable\",\n \"aws:ec2/securityGroup:SecurityGroup\",\n \"aws:ec2/spotInstanceRequest:SpotInstanceRequest\",\n \"aws:ec2/subnet:Subnet\",\n \"aws:ec2/vpc:Vpc\",\n \"aws:ec2/vpcDhcpOptions:VpcDhcpOptions\",\n \"aws:ec2/vpcEndpoint:VpcEndpoint\",\n \"aws:ec2/vpcEndpointService:VpcEndpointService\",\n \"aws:ec2/vpcPeeringConnection:VpcPeeringConnection\",\n \"aws:ec2/vpcPeeringConnectionAccepter:VpcPeeringConnectionAccepter\",\n \"aws:ec2/vpnConnection:VpnConnection\",\n \"aws:ec2/vpnGateway:VpnGateway\",\n \"aws:ec2clientvpn/endpoint:Endpoint\",\n \"aws:ec2transitgateway/routeTable:RouteTable\",\n \"aws:ec2transitgateway/transitGateway:TransitGateway\",\n \"aws:ec2transitgateway/vpcAttachment:VpcAttachment\",\n \"aws:ec2transitgateway/vpcAttachmentAccepter:VpcAttachmentAccepter\",\n \"aws:ecr/repository:Repository\",\n \"aws:ecs/capacityProvider:CapacityProvider\",\n \"aws:ecs/cluster:Cluster\",\n \"aws:ecs/service:Service\",\n \"aws:ecs/taskDefinition:TaskDefinition\",\n \"aws:efs/fileSystem:FileSystem\",\n \"aws:eks/cluster:Cluster\",\n \"aws:eks/fargateProfile:FargateProfile\",\n \"aws:eks/nodeGroup:NodeGroup\",\n \"aws:elasticache/cluster:Cluster\",\n \"aws:elasticache/replicationGroup:ReplicationGroup\",\n \"aws:elasticbeanstalk/application:Application\",\n \"aws:elasticbeanstalk/applicationVersion:ApplicationVersion\",\n \"aws:elasticbeanstalk/environment:Environment\",\n \"aws:elasticloadbalancing/loadBalancer:LoadBalancer\",\n \"aws:elasticloadbalancingv2/loadBalancer:LoadBalancer\",\n \"aws:elasticloadbalancingv2/targetGroup:TargetGroup\",\n \"aws:elasticsearch/domain:Domain\",\n \"aws:elb/loadBalancer:LoadBalancer\",\n \"aws:emr/cluster:Cluster\",\n \"aws:fsx/lustreFileSystem:LustreFileSystem\",\n \"aws:fsx/windowsFileSystem:WindowsFileSystem\",\n \"aws:gamelift/alias:Alias\",\n \"aws:gamelift/build:Build\",\n \"aws:gamelift/fleet:Fleet\",\n \"aws:gamelift/gameSessionQueue:GameSessionQueue\",\n \"aws:glacier/vault:Vault\",\n \"aws:glue/crawler:Crawler\",\n \"aws:glue/job:Job\",\n \"aws:glue/trigger:Trigger\",\n \"aws:iam/role:Role\",\n \"aws:iam/user:User\",\n \"aws:inspector/resourceGroup:ResourceGroup\",\n \"aws:kinesis/analyticsApplication:AnalyticsApplication\",\n \"aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream\",\n \"aws:kinesis/stream:Stream\",\n \"aws:kms/externalKey:ExternalKey\",\n \"aws:kms/key:Key\",\n \"aws:lambda/function:Function\",\n \"aws:lambda/eventSourceMapping:EventSourceMapping\",\n \"aws:lb/loadBalancer:LoadBalancer\",\n \"aws:lb/targetGroup:TargetGroup\",\n \"aws:licensemanager/licenseConfiguration:LicenseConfiguration\",\n \"aws:lightsail/instance:Instance\",\n \"aws:mediaconvert/queue:Queue\",\n \"aws:mediapackage/channel:Channel\",\n \"aws:mediastore/container:Container\",\n \"aws:mq/broker:Broker\",\n \"aws:mq/configuration:Configuration\",\n \"aws:msk/cluster:Cluster\",\n \"aws:neptune/cluster:Cluster\",\n \"aws:neptune/clusterInstance:ClusterInstance\",\n \"aws:neptune/clusterParameterGroup:ClusterParameterGroup\",\n \"aws:neptune/eventSubscription:EventSubscription\",\n \"aws:neptune/parameterGroup:ParameterGroup\",\n \"aws:neptune/subnetGroup:SubnetGroup\",\n \"aws:opsworks/stack:Stack\",\n \"aws:organizations/account:Account\",\n \"aws:pinpoint/app:App\",\n \"aws:qldb/ledger:Ledger\",\n \"aws:ram/resourceShare:ResourceShare\",\n \"aws:rds/cluster:Cluster\",\n \"aws:rds/clusterEndpoint:ClusterEndpoint\",\n \"aws:rds/clusterInstance:ClusterInstance\",\n \"aws:rds/clusterParameterGroup:ClusterParameterGroup\",\n \"aws:rds/clusterSnapshot:ClusterSnapshot\",\n \"aws:rds/eventSubscription:EventSubscription\",\n \"aws:rds/instance:Instance\",\n \"aws:rds/optionGroup:OptionGroup\",\n \"aws:rds/parameterGroup:ParameterGroup\",\n \"aws:rds/securityGroup:SecurityGroup\",\n \"aws:rds/snapshot:Snapshot\",\n \"aws:rds/subnetGroup:SubnetGroup\",\n \"aws:redshift/cluster:Cluster\",\n \"aws:redshift/eventSubscription:EventSubscription\",\n \"aws:redshift/parameterGroup:ParameterGroup\",\n \"aws:redshift/snapshotCopyGrant:SnapshotCopyGrant\",\n \"aws:redshift/snapshotSchedule:SnapshotSchedule\",\n \"aws:redshift/subnetGroup:SubnetGroup\",\n \"aws:resourcegroups/group:Group\",\n \"aws:route53/healthCheck:HealthCheck\",\n \"aws:route53/resolverEndpoint:ResolverEndpoint\",\n \"aws:route53/resolverRule:ResolverRule\",\n \"aws:route53/zone:Zone\",\n \"aws:s3/bucket:Bucket\",\n \"aws:s3/bucketObject:BucketObject\",\n \"aws:sagemaker/endpoint:Endpoint\",\n \"aws:sagemaker/endpointConfiguration:EndpointConfiguration\",\n \"aws:sagemaker/model:Model\",\n \"aws:sagemaker/notebookInstance:NotebookInstance\",\n \"aws:secretsmanager/secret:Secret\",\n \"aws:servicecatalog/portfolio:Portfolio\",\n \"aws:sfn/activity:Activity\",\n \"aws:sfn/stateMachine:StateMachine\",\n \"aws:sns/topic:Topic\",\n \"aws:sqs/queue:Queue\",\n \"aws:ssm/activation:Activation\",\n \"aws:ssm/document:Document\",\n \"aws:ssm/maintenanceWindow:MaintenanceWindow\",\n \"aws:ssm/parameter:Parameter\",\n \"aws:ssm/patchBaseline:PatchBaseline\",\n \"aws:storagegateway/cachesIscsiVolume:CachesIscsiVolume\",\n \"aws:storagegateway/gateway:Gateway\",\n \"aws:storagegateway/nfsFileShare:NfsFileShare\",\n \"aws:storagegateway/smbFileShare:SmbFileShare\",\n \"aws:swf/domain:Domain\",\n \"aws:transfer/server:Server\",\n \"aws:transfer/user:User\",\n \"aws:waf/rateBasedRule:RateBasedRule\",\n \"aws:waf/rule:Rule\",\n \"aws:waf/ruleGroup:RuleGroup\",\n \"aws:waf/webAcl:WebAcl\",\n \"aws:wafregional/rateBasedRule:RateBasedRule\",\n \"aws:wafregional/rule:Rule\",\n \"aws:wafregional/ruleGroup:RuleGroup\",\n \"aws:wafregional/webAcl:WebAcl\",\n \"aws:workspaces/directory:Directory\",\n \"aws:workspaces/ipGroup:IpGroup\"\n]);\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,26 @@
1
+ import type { PresignedPostOptions } from "@webiny/aws-sdk/client-s3/index.js";
2
+ export interface Paths {
3
+ full: string;
4
+ relative: string;
5
+ }
6
+ export type CacheControls = Array<{
7
+ pattern: RegExp;
8
+ value: string;
9
+ }>;
10
+ export interface UploadFolderToS3Params {
11
+ path: string;
12
+ acl: string;
13
+ onFileUploadSuccess: (params: {
14
+ paths: Paths;
15
+ }) => void;
16
+ onFileUploadError: (params: {
17
+ paths: Paths;
18
+ error: Error;
19
+ }) => void;
20
+ onFileUploadSkip: (params: {
21
+ paths: Paths;
22
+ }) => void;
23
+ bucket: PresignedPostOptions["Bucket"];
24
+ cacheControl?: string | CacheControls;
25
+ }
26
+ export declare const uploadFolderToS3: ({ path: root, bucket, onFileUploadSuccess, onFileUploadError, onFileUploadSkip, acl, cacheControl }: UploadFolderToS3Params) => Promise<void>;
@@ -0,0 +1,147 @@
1
+ import fs from "fs";
2
+ import { S3Client, HeadObjectCommand } from "@webiny/aws-sdk/client-s3/index.js";
3
+ import mime from "mime";
4
+ import chunk from "lodash/chunk.js";
5
+ import { relative } from "path";
6
+ import { crawlDirectory } from "./crawlDirectory.js";
7
+ import { getPresignedPost } from "./getPresignedPost.js";
8
+ import { getEnvVariableAwsRegion } from "../env/awsRegion.js";
9
+ import crypto from "crypto";
10
+ function getFileChecksum(file) {
11
+ const hash = crypto.createHash("md5");
12
+ return new Promise(resolve => {
13
+ const stream = fs.createReadStream(file);
14
+ stream.on("data", function (data) {
15
+ hash.update(data, "utf8");
16
+ });
17
+ stream.on("end", function () {
18
+ resolve(hash.digest("hex"));
19
+ });
20
+ });
21
+ }
22
+ export const uploadFolderToS3 = async ({
23
+ path: root,
24
+ bucket,
25
+ onFileUploadSuccess,
26
+ onFileUploadError,
27
+ onFileUploadSkip,
28
+ // For backwards compatibility, we need to leave ACL on "public-read".
29
+ acl = "public-read",
30
+ cacheControl = "max-age=31536000"
31
+ }) => {
32
+ const s3 = new S3Client({
33
+ region: getEnvVariableAwsRegion()
34
+ });
35
+ if (!fs.existsSync(root)) {
36
+ throw new Error("Cannot continue, folder does not exist.");
37
+ }
38
+ const paths = [];
39
+ await crawlDirectory(root, async path => {
40
+ paths.push(path);
41
+ });
42
+ const pathsChunks = chunk(paths, 20);
43
+ const cacheControls = [];
44
+ if (typeof cacheControl === "string") {
45
+ cacheControls.push({
46
+ pattern: /.*/,
47
+ value: cacheControl
48
+ });
49
+ } else if (Array.isArray(cacheControls)) {
50
+ cacheControls.push(...cacheControl);
51
+ }
52
+ for (let i = 0; i < pathsChunks.length; i++) {
53
+ const chunk = pathsChunks[i];
54
+ const promises = [];
55
+ for (let j = 0; j < chunk.length; j++) {
56
+ const path = chunk[j];
57
+ promises.push(new Promise(async resolve => {
58
+ // We also replace "\" with "/", which is a path separator on Windows' CMD or Powershell.
59
+ const key = relative(root, path).replace(/\\/g, "/");
60
+ try {
61
+ // Get file checksum so that we can check if a file needs to be uploaded or not.
62
+ const checksum = await getFileChecksum(path);
63
+ let skipUpload = false;
64
+ try {
65
+ const existingObject = await s3.send(new HeadObjectCommand({
66
+ Bucket: bucket,
67
+ Key: key
68
+ }));
69
+ if (existingObject.Metadata?.checksum === checksum) {
70
+ skipUpload = true;
71
+ }
72
+ } catch {
73
+ // Do nothing.
74
+ }
75
+ if (skipUpload) {
76
+ if (typeof onFileUploadSkip === "function") {
77
+ await onFileUploadSkip({
78
+ paths: {
79
+ full: path,
80
+ relative: key
81
+ }
82
+ });
83
+ }
84
+ } else {
85
+ const cacheControl = cacheControls.find(item => item.pattern.test(key));
86
+ const contentType = mime.getType(path);
87
+ const {
88
+ url,
89
+ fields
90
+ } = await getPresignedPost({
91
+ bucket,
92
+ key,
93
+ acl,
94
+ checksum,
95
+ contentType,
96
+ cacheControl: cacheControl ? cacheControl.value : undefined
97
+ });
98
+ const data = {
99
+ ...fields,
100
+ "Content-Type": contentType || "",
101
+ "X-Amz-Meta-Checksum": checksum,
102
+ file: fs.readFileSync(path)
103
+ };
104
+ if (cacheControl) {
105
+ data["Cache-Control"] = cacheControl.value;
106
+ }
107
+ const formData = new FormData();
108
+ for (const key in data) {
109
+ const value = new Blob([Buffer.from(data[key])]);
110
+ formData.append(key, value);
111
+ }
112
+ const res = await fetch(url, {
113
+ method: "POST",
114
+ body: formData
115
+ });
116
+ if (res.status > 299) {
117
+ throw new Error(`${res.statusText}\n${await res.text()}`);
118
+ }
119
+ if (typeof onFileUploadSuccess === "function") {
120
+ await onFileUploadSuccess({
121
+ paths: {
122
+ full: path,
123
+ relative: key
124
+ }
125
+ });
126
+ }
127
+ }
128
+ resolve();
129
+ } catch (e) {
130
+ if (typeof onFileUploadError === "function") {
131
+ await onFileUploadError({
132
+ paths: {
133
+ full: path,
134
+ relative: key
135
+ },
136
+ error: e
137
+ });
138
+ }
139
+ resolve();
140
+ }
141
+ }));
142
+ }
143
+ await Promise.all(promises);
144
+ }
145
+ };
146
+
147
+ //# sourceMappingURL=uploadFolderToS3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["fs","S3Client","HeadObjectCommand","mime","chunk","relative","crawlDirectory","getPresignedPost","getEnvVariableAwsRegion","crypto","getFileChecksum","file","hash","createHash","Promise","resolve","stream","createReadStream","on","data","update","digest","uploadFolderToS3","path","root","bucket","onFileUploadSuccess","onFileUploadError","onFileUploadSkip","acl","cacheControl","s3","region","existsSync","Error","paths","push","pathsChunks","cacheControls","pattern","value","Array","isArray","i","length","promises","j","key","replace","checksum","skipUpload","existingObject","send","Bucket","Key","Metadata","full","find","item","test","contentType","getType","url","fields","undefined","readFileSync","formData","FormData","Blob","Buffer","from","append","res","fetch","method","body","status","statusText","text","e","error","all"],"sources":["uploadFolderToS3.ts"],"sourcesContent":["import fs from \"fs\";\nimport type { PresignedPostOptions } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport { S3Client, HeadObjectCommand } from \"@webiny/aws-sdk/client-s3/index.js\";\nimport mime from \"mime\";\nimport chunk from \"lodash/chunk.js\";\nimport { relative } from \"path\";\nimport { crawlDirectory } from \"./crawlDirectory.js\";\nimport { getPresignedPost } from \"./getPresignedPost.js\";\nimport { getEnvVariableAwsRegion } from \"~/pulumi/env/awsRegion.js\";\nimport crypto from \"crypto\";\n\nfunction getFileChecksum(file: string): Promise<string> {\n const hash = crypto.createHash(\"md5\");\n\n return new Promise(resolve => {\n const stream = fs.createReadStream(file);\n stream.on(\"data\", function (data: any) {\n hash.update(data, \"utf8\");\n });\n\n stream.on(\"end\", function () {\n resolve(hash.digest(\"hex\"));\n });\n });\n}\n\nexport interface Paths {\n full: string;\n relative: string;\n}\n\nexport type CacheControls = Array<{\n pattern: RegExp;\n value: string;\n}>;\n\nexport interface UploadFolderToS3Params {\n // Path to the folder that needs to be uploaded.\n path: string;\n\n // Object ACL.\n acl: string;\n\n // A callback that gets called every time a file has been uploaded successfully.\n onFileUploadSuccess: (params: { paths: Paths }) => void;\n\n // A callback that gets called every time a file has not been uploaded successfully.\n onFileUploadError: (params: { paths: Paths; error: Error }) => void;\n\n // A callback that gets called every time a file upload has been skipped.\n onFileUploadSkip: (params: { paths: Paths }) => void;\n\n // Target bucket\n bucket: PresignedPostOptions[\"Bucket\"];\n\n // Cache control to apply to each uploaded file\n cacheControl?: string | CacheControls;\n}\n\nexport const uploadFolderToS3 = async ({\n path: root,\n bucket,\n onFileUploadSuccess,\n onFileUploadError,\n onFileUploadSkip,\n // For backwards compatibility, we need to leave ACL on \"public-read\".\n acl = \"public-read\",\n cacheControl = \"max-age=31536000\"\n}: UploadFolderToS3Params) => {\n const s3 = new S3Client({\n region: getEnvVariableAwsRegion()\n });\n\n if (!fs.existsSync(root)) {\n throw new Error(\"Cannot continue, folder does not exist.\");\n }\n\n const paths: string[] = [];\n\n await crawlDirectory(root, async (path: string) => {\n paths.push(path);\n });\n\n const pathsChunks = chunk(paths, 20);\n\n const cacheControls: CacheControls = [];\n if (typeof cacheControl === \"string\") {\n cacheControls.push({ pattern: /.*/, value: cacheControl });\n } else if (Array.isArray(cacheControls)) {\n cacheControls.push(...cacheControl);\n }\n\n for (let i = 0; i < pathsChunks.length; i++) {\n const chunk = pathsChunks[i];\n\n const promises = [];\n for (let j = 0; j < chunk.length; j++) {\n const path = chunk[j];\n\n promises.push(\n new Promise<void>(async resolve => {\n // We also replace \"\\\" with \"/\", which is a path separator on Windows' CMD or Powershell.\n const key = relative(root, path).replace(/\\\\/g, \"/\");\n try {\n // Get file checksum so that we can check if a file needs to be uploaded or not.\n const checksum = await getFileChecksum(path);\n\n let skipUpload = false;\n try {\n const existingObject = await s3.send(\n new HeadObjectCommand({\n Bucket: bucket,\n Key: key\n })\n );\n\n if (existingObject.Metadata?.checksum === checksum) {\n skipUpload = true;\n }\n } catch {\n // Do nothing.\n }\n\n if (skipUpload) {\n if (typeof onFileUploadSkip === \"function\") {\n await onFileUploadSkip({ paths: { full: path, relative: key } });\n }\n } else {\n const cacheControl = cacheControls.find(item => item.pattern.test(key));\n const contentType = mime.getType(path);\n\n const { url, fields } = await getPresignedPost({\n bucket,\n key,\n acl,\n checksum,\n contentType,\n cacheControl: cacheControl ? cacheControl.value : undefined\n });\n\n const data: Record<string, string | Buffer> = {\n ...fields,\n \"Content-Type\": contentType || \"\",\n \"X-Amz-Meta-Checksum\": checksum,\n file: fs.readFileSync(path)\n };\n\n if (cacheControl) {\n data[\"Cache-Control\"] = cacheControl.value;\n }\n\n const formData = new FormData();\n for (const key in data) {\n const value = new Blob([Buffer.from(data[key])]);\n formData.append(key, value);\n }\n\n const res = await fetch(url, {\n method: \"POST\",\n body: formData\n });\n\n if (res.status > 299) {\n throw new Error(`${res.statusText}\\n${await res.text()}`);\n }\n\n if (typeof onFileUploadSuccess === \"function\") {\n await onFileUploadSuccess({ paths: { full: path, relative: key } });\n }\n }\n resolve();\n } catch (e) {\n if (typeof onFileUploadError === \"function\") {\n await onFileUploadError({\n paths: { full: path, relative: key },\n error: e\n });\n }\n resolve();\n }\n })\n );\n }\n\n await Promise.all(promises);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,14 @@
1
+ import type { PulumiApp } from "@webiny/pulumi";
2
+ import type { ServiceManifest } from "./addServiceManifestTableItem.js";
3
+ export interface WithServiceManifest {
4
+ addServiceManifest(manifest: ServiceManifest): void;
5
+ }
6
+ interface ApplyManifests {
7
+ (manifests: ServiceManifest[]): void;
8
+ }
9
+ /**
10
+ * Augment the given app with `addServiceManifest` functionality.
11
+ * @param {PulumiApp} app
12
+ */
13
+ export declare function withServiceManifest<T extends PulumiApp>(app: T, applyManifests?: ApplyManifests): T & WithServiceManifest;
14
+ export {};
@@ -0,0 +1,45 @@
1
+ import merge from "lodash/merge.js";
2
+ import { addServiceManifestTableItem } from "./addServiceManifestTableItem.js";
3
+ import { CoreOutput } from "../apps/index.js";
4
+ const defaultApplyManifests = (app, manifests) => {
5
+ const core = app.getModule(CoreOutput);
6
+ const table = {
7
+ tableName: core.primaryDynamodbTableName,
8
+ hashKey: core.primaryDynamodbTableHashKey,
9
+ rangeKey: core.primaryDynamodbTableRangeKey
10
+ };
11
+ manifests.forEach(manifest => addServiceManifestTableItem(app, table, manifest));
12
+ };
13
+
14
+ /**
15
+ * Augment the given app with `addServiceManifest` functionality.
16
+ * @param {PulumiApp} app
17
+ */
18
+ export function withServiceManifest(app, applyManifests) {
19
+ const manifests = {};
20
+ function addServiceManifest(manifest) {
21
+ manifests[manifest.name] = merge({}, manifests[manifest.name], manifest);
22
+ }
23
+ app.decorateProgram(async (program, app) => {
24
+ const output = await program({
25
+ ...app,
26
+ addServiceManifest
27
+ });
28
+ app.addHandler(() => {
29
+ if (!applyManifests) {
30
+ defaultApplyManifests(app, Object.values(manifests));
31
+ return;
32
+ }
33
+ applyManifests(Object.values(manifests));
34
+ });
35
+ return output;
36
+ });
37
+
38
+ // Augment the original PulumiApp.
39
+ return {
40
+ ...app,
41
+ addServiceManifest
42
+ };
43
+ }
44
+
45
+ //# sourceMappingURL=withServiceManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["merge","addServiceManifestTableItem","CoreOutput","defaultApplyManifests","app","manifests","core","getModule","table","tableName","primaryDynamodbTableName","hashKey","primaryDynamodbTableHashKey","rangeKey","primaryDynamodbTableRangeKey","forEach","manifest","withServiceManifest","applyManifests","addServiceManifest","name","decorateProgram","program","output","addHandler","Object","values"],"sources":["withServiceManifest.ts"],"sourcesContent":["import merge from \"lodash/merge.js\";\nimport type { PulumiApp } from \"@webiny/pulumi\";\nimport type { ServiceManifest, TableDefinition } from \"./addServiceManifestTableItem.js\";\nimport { addServiceManifestTableItem } from \"./addServiceManifestTableItem.js\";\nimport { CoreOutput } from \"~/pulumi/apps/index.js\";\n\nexport interface WithServiceManifest {\n addServiceManifest(manifest: ServiceManifest): void;\n}\n\ninterface ApplyManifests {\n (manifests: ServiceManifest[]): void;\n}\n\nconst defaultApplyManifests = (app: PulumiApp, manifests: ServiceManifest[]) => {\n const core = app.getModule(CoreOutput);\n\n const table: TableDefinition = {\n tableName: core.primaryDynamodbTableName,\n hashKey: core.primaryDynamodbTableHashKey,\n rangeKey: core.primaryDynamodbTableRangeKey\n };\n\n manifests.forEach(manifest => addServiceManifestTableItem(app, table, manifest));\n};\n\n/**\n * Augment the given app with `addServiceManifest` functionality.\n * @param {PulumiApp} app\n */\nexport function withServiceManifest<T extends PulumiApp>(\n app: T,\n applyManifests?: ApplyManifests\n): T & WithServiceManifest {\n const manifests: Record<string, ServiceManifest> = {};\n\n function addServiceManifest(manifest: ServiceManifest) {\n manifests[manifest.name] = merge({}, manifests[manifest.name], manifest);\n }\n\n app.decorateProgram<{ addServiceManifest: typeof addServiceManifest }>(async (program, app) => {\n const output = await program({\n ...app,\n addServiceManifest\n });\n\n app.addHandler(() => {\n if (!applyManifests) {\n defaultApplyManifests(app, Object.values(manifests));\n return;\n }\n\n applyManifests(Object.values(manifests));\n });\n\n return output;\n });\n\n // Augment the original PulumiApp.\n return {\n ...app,\n addServiceManifest\n };\n}\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,iBAAiB;AAGnC,SAASC,2BAA2B;AACpC,SAASC,UAAU;AAUnB,MAAMC,qBAAqB,GAAGA,CAACC,GAAc,EAAEC,SAA4B,KAAK;EAC5E,MAAMC,IAAI,GAAGF,GAAG,CAACG,SAAS,CAACL,UAAU,CAAC;EAEtC,MAAMM,KAAsB,GAAG;IAC3BC,SAAS,EAAEH,IAAI,CAACI,wBAAwB;IACxCC,OAAO,EAAEL,IAAI,CAACM,2BAA2B;IACzCC,QAAQ,EAAEP,IAAI,CAACQ;EACnB,CAAC;EAEDT,SAAS,CAACU,OAAO,CAACC,QAAQ,IAAIf,2BAA2B,CAACG,GAAG,EAAEI,KAAK,EAAEQ,QAAQ,CAAC,CAAC;AACpF,CAAC;;AAED;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAC/Bb,GAAM,EACNc,cAA+B,EACR;EACvB,MAAMb,SAA0C,GAAG,CAAC,CAAC;EAErD,SAASc,kBAAkBA,CAACH,QAAyB,EAAE;IACnDX,SAAS,CAACW,QAAQ,CAACI,IAAI,CAAC,GAAGpB,KAAK,CAAC,CAAC,CAAC,EAAEK,SAAS,CAACW,QAAQ,CAACI,IAAI,CAAC,EAAEJ,QAAQ,CAAC;EAC5E;EAEAZ,GAAG,CAACiB,eAAe,CAAoD,OAAOC,OAAO,EAAElB,GAAG,KAAK;IAC3F,MAAMmB,MAAM,GAAG,MAAMD,OAAO,CAAC;MACzB,GAAGlB,GAAG;MACNe;IACJ,CAAC,CAAC;IAEFf,GAAG,CAACoB,UAAU,CAAC,MAAM;MACjB,IAAI,CAACN,cAAc,EAAE;QACjBf,qBAAqB,CAACC,GAAG,EAAEqB,MAAM,CAACC,MAAM,CAACrB,SAAS,CAAC,CAAC;QACpD;MACJ;MAEAa,cAAc,CAACO,MAAM,CAACC,MAAM,CAACrB,SAAS,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAOkB,MAAM;EACjB,CAAC,CAAC;;EAEF;EACA,OAAO;IACH,GAAGnB,GAAG;IACNe;EACJ,CAAC;AACL","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { GetAppStackOutput } from "@webiny/project/abstractions/index.js";
2
+ import { AdminStackOutputService as AdminStackOutputServiceAbstraction } from "../abstractions/index.js";
3
+ export declare class DefaultAdminStackOutputServiceAbstraction implements AdminStackOutputServiceAbstraction.Interface {
4
+ private readonly getAppStackOutput;
5
+ constructor(getAppStackOutput: GetAppStackOutput.Interface);
6
+ execute<TOutput extends AdminStackOutputServiceAbstraction.Output = AdminStackOutputServiceAbstraction.Output>(): Promise<TOutput | null>;
7
+ }
8
+ export declare const AdminStackOutputService: typeof DefaultAdminStackOutputServiceAbstraction & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/index.js").IAdminStackOutputService>;
10
+ };
@@ -0,0 +1,16 @@
1
+ import { GetAppStackOutput } from "@webiny/project/abstractions/index.js";
2
+ import { AdminStackOutputService as AdminStackOutputServiceAbstraction } from "../abstractions/index.js";
3
+ export class DefaultAdminStackOutputServiceAbstraction {
4
+ constructor(getAppStackOutput) {
5
+ this.getAppStackOutput = getAppStackOutput;
6
+ }
7
+ async execute() {
8
+ return this.getAppStackOutput.execute("admin");
9
+ }
10
+ }
11
+ export const AdminStackOutputService = AdminStackOutputServiceAbstraction.createImplementation({
12
+ implementation: DefaultAdminStackOutputServiceAbstraction,
13
+ dependencies: [GetAppStackOutput]
14
+ });
15
+
16
+ //# sourceMappingURL=AdminStackOutputService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetAppStackOutput","AdminStackOutputService","AdminStackOutputServiceAbstraction","DefaultAdminStackOutputServiceAbstraction","constructor","getAppStackOutput","execute","createImplementation","implementation","dependencies"],"sources":["AdminStackOutputService.ts"],"sourcesContent":["import { GetAppStackOutput } from \"@webiny/project/abstractions/index.js\";\nimport { AdminStackOutputService as AdminStackOutputServiceAbstraction } from \"../abstractions/index.js\";\n\nexport class DefaultAdminStackOutputServiceAbstraction\n implements AdminStackOutputServiceAbstraction.Interface\n{\n constructor(private readonly getAppStackOutput: GetAppStackOutput.Interface) {}\n\n async execute<\n TOutput extends\n AdminStackOutputServiceAbstraction.Output = AdminStackOutputServiceAbstraction.Output\n >(): Promise<TOutput | null> {\n return this.getAppStackOutput.execute<TOutput>(\"admin\");\n }\n}\n\nexport const AdminStackOutputService = AdminStackOutputServiceAbstraction.createImplementation({\n implementation: DefaultAdminStackOutputServiceAbstraction,\n dependencies: [GetAppStackOutput]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uCAAuC;AACzE,SAASC,uBAAuB,IAAIC,kCAAkC;AAEtE,OAAO,MAAMC,yCAAyC,CAEtD;EACIC,WAAWA,CAAkBC,iBAA8C,EAAE;IAAA,KAAhDA,iBAA8C,GAA9CA,iBAA8C;EAAG;EAE9E,MAAMC,OAAOA,CAAA,EAGgB;IACzB,OAAO,IAAI,CAACD,iBAAiB,CAACC,OAAO,CAAU,OAAO,CAAC;EAC3D;AACJ;AAEA,OAAO,MAAML,uBAAuB,GAAGC,kCAAkC,CAACK,oBAAoB,CAAC;EAC3FC,cAAc,EAAEL,yCAAyC;EACzDM,YAAY,EAAE,CAACT,iBAAiB;AACpC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { GetAppStackOutput } from "@webiny/project/abstractions/index.js";
2
+ import { ApiStackOutputService as ApiStackOutputServiceAbstraction } from "../abstractions/index.js";
3
+ export declare class DefaultApiStackOutputServiceAbstraction implements ApiStackOutputServiceAbstraction.Interface {
4
+ private readonly getAppStackOutput;
5
+ constructor(getAppStackOutput: GetAppStackOutput.Interface);
6
+ execute<TOutput extends ApiStackOutputServiceAbstraction.Output = ApiStackOutputServiceAbstraction.Output>(): Promise<TOutput | null>;
7
+ }
8
+ export declare const ApiStackOutputService: typeof DefaultApiStackOutputServiceAbstraction & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/index.js").IApiStackOutputService>;
10
+ };
@@ -0,0 +1,16 @@
1
+ import { GetAppStackOutput } from "@webiny/project/abstractions/index.js";
2
+ import { ApiStackOutputService as ApiStackOutputServiceAbstraction } from "../abstractions/index.js";
3
+ export class DefaultApiStackOutputServiceAbstraction {
4
+ constructor(getAppStackOutput) {
5
+ this.getAppStackOutput = getAppStackOutput;
6
+ }
7
+ async execute() {
8
+ return this.getAppStackOutput.execute("api");
9
+ }
10
+ }
11
+ export const ApiStackOutputService = ApiStackOutputServiceAbstraction.createImplementation({
12
+ implementation: DefaultApiStackOutputServiceAbstraction,
13
+ dependencies: [GetAppStackOutput]
14
+ });
15
+
16
+ //# sourceMappingURL=ApiStackOutputService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetAppStackOutput","ApiStackOutputService","ApiStackOutputServiceAbstraction","DefaultApiStackOutputServiceAbstraction","constructor","getAppStackOutput","execute","createImplementation","implementation","dependencies"],"sources":["ApiStackOutputService.ts"],"sourcesContent":["import { GetAppStackOutput } from \"@webiny/project/abstractions/index.js\";\nimport { ApiStackOutputService as ApiStackOutputServiceAbstraction } from \"../abstractions/index.js\";\n\nexport class DefaultApiStackOutputServiceAbstraction\n implements ApiStackOutputServiceAbstraction.Interface\n{\n constructor(private readonly getAppStackOutput: GetAppStackOutput.Interface) {}\n\n async execute<\n TOutput extends\n ApiStackOutputServiceAbstraction.Output = ApiStackOutputServiceAbstraction.Output\n >(): Promise<TOutput | null> {\n return this.getAppStackOutput.execute<TOutput>(\"api\");\n }\n}\n\nexport const ApiStackOutputService = ApiStackOutputServiceAbstraction.createImplementation({\n implementation: DefaultApiStackOutputServiceAbstraction,\n dependencies: [GetAppStackOutput]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uCAAuC;AACzE,SAASC,qBAAqB,IAAIC,gCAAgC;AAElE,OAAO,MAAMC,uCAAuC,CAEpD;EACIC,WAAWA,CAAkBC,iBAA8C,EAAE;IAAA,KAAhDA,iBAA8C,GAA9CA,iBAA8C;EAAG;EAE9E,MAAMC,OAAOA,CAAA,EAGgB;IACzB,OAAO,IAAI,CAACD,iBAAiB,CAACC,OAAO,CAAU,KAAK,CAAC;EACzD;AACJ;AAEA,OAAO,MAAML,qBAAqB,GAAGC,gCAAgC,CAACK,oBAAoB,CAAC;EACvFC,cAAc,EAAEL,uCAAuC;EACvDM,YAAY,EAAE,CAACT,iBAAiB;AACpC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { GetAppStackOutput } from "@webiny/project/abstractions/index.js";
2
+ import { CoreStackOutputService as CoreStackOutputServiceAbstraction } from "../abstractions/index.js";
3
+ export declare class DefaultCoreStackOutputServiceAbstraction implements CoreStackOutputServiceAbstraction.Interface {
4
+ private readonly getAppStackOutput;
5
+ constructor(getAppStackOutput: GetAppStackOutput.Interface);
6
+ execute<TOutput extends CoreStackOutputServiceAbstraction.Output = CoreStackOutputServiceAbstraction.Output>(): Promise<TOutput | null>;
7
+ }
8
+ export declare const CoreStackOutputService: typeof DefaultCoreStackOutputServiceAbstraction & {
9
+ __abstraction: import("@webiny/di").Abstraction<import("../abstractions/index.js").ICoreStackOutputService>;
10
+ };
@@ -0,0 +1,16 @@
1
+ import { GetAppStackOutput } from "@webiny/project/abstractions/index.js";
2
+ import { CoreStackOutputService as CoreStackOutputServiceAbstraction } from "../abstractions/index.js";
3
+ export class DefaultCoreStackOutputServiceAbstraction {
4
+ constructor(getAppStackOutput) {
5
+ this.getAppStackOutput = getAppStackOutput;
6
+ }
7
+ async execute() {
8
+ return this.getAppStackOutput.execute("core");
9
+ }
10
+ }
11
+ export const CoreStackOutputService = CoreStackOutputServiceAbstraction.createImplementation({
12
+ implementation: DefaultCoreStackOutputServiceAbstraction,
13
+ dependencies: [GetAppStackOutput]
14
+ });
15
+
16
+ //# sourceMappingURL=CoreStackOutputService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["GetAppStackOutput","CoreStackOutputService","CoreStackOutputServiceAbstraction","DefaultCoreStackOutputServiceAbstraction","constructor","getAppStackOutput","execute","createImplementation","implementation","dependencies"],"sources":["CoreStackOutputService.ts"],"sourcesContent":["import { GetAppStackOutput } from \"@webiny/project/abstractions/index.js\";\nimport { CoreStackOutputService as CoreStackOutputServiceAbstraction } from \"../abstractions/index.js\";\n\nexport class DefaultCoreStackOutputServiceAbstraction\n implements CoreStackOutputServiceAbstraction.Interface\n{\n constructor(private readonly getAppStackOutput: GetAppStackOutput.Interface) {}\n\n async execute<\n TOutput extends\n CoreStackOutputServiceAbstraction.Output = CoreStackOutputServiceAbstraction.Output\n >(): Promise<TOutput | null> {\n return this.getAppStackOutput.execute<TOutput>(\"core\");\n }\n}\n\nexport const CoreStackOutputService = CoreStackOutputServiceAbstraction.createImplementation({\n implementation: DefaultCoreStackOutputServiceAbstraction,\n dependencies: [GetAppStackOutput]\n});\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,uCAAuC;AACzE,SAASC,sBAAsB,IAAIC,iCAAiC;AAEpE,OAAO,MAAMC,wCAAwC,CAErD;EACIC,WAAWA,CAAkBC,iBAA8C,EAAE;IAAA,KAAhDA,iBAA8C,GAA9CA,iBAA8C;EAAG;EAE9E,MAAMC,OAAOA,CAAA,EAGgB;IACzB,OAAO,IAAI,CAACD,iBAAiB,CAACC,OAAO,CAAU,MAAM,CAAC;EAC1D;AACJ;AAEA,OAAO,MAAML,sBAAsB,GAAGC,iCAAiC,CAACK,oBAAoB,CAAC;EACzFC,cAAc,EAAEL,wCAAwC;EACxDM,YAAY,EAAE,CAACT,iBAAiB;AACpC,CAAC,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export declare const getTemplatesFolderPath: () => string;
@@ -0,0 +1,16 @@
1
+ import findUp from "find-up";
2
+ import path from "path";
3
+ const TEMPLATES_FOLDER_NAME = "_templates";
4
+ export const getTemplatesFolderPath = () => {
5
+ const templatesFolderPath = findUp.sync(TEMPLATES_FOLDER_NAME, {
6
+ type: "directory",
7
+ cwd: path.join(import.meta.dirname)
8
+ });
9
+ if (!templatesFolderPath) {
10
+ // This should never happen because we're controlling the templates.
11
+ throw new Error("Could not find the `appTemplates` folder. Something went terribly wrong.");
12
+ }
13
+ return templatesFolderPath;
14
+ };
15
+
16
+ //# sourceMappingURL=getTemplatesFolderPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["findUp","path","TEMPLATES_FOLDER_NAME","getTemplatesFolderPath","templatesFolderPath","sync","type","cwd","join","import","meta","dirname","Error"],"sources":["getTemplatesFolderPath.ts"],"sourcesContent":["import findUp from \"find-up\";\nimport path from \"path\";\n\nconst TEMPLATES_FOLDER_NAME = \"_templates\";\n\nexport const getTemplatesFolderPath = () => {\n const templatesFolderPath = findUp.sync(TEMPLATES_FOLDER_NAME, {\n type: \"directory\",\n cwd: path.join(import.meta.dirname)\n });\n\n if (!templatesFolderPath) {\n // This should never happen because we're controlling the templates.\n throw new Error(\"Could not find the `appTemplates` folder. Something went terribly wrong.\");\n }\n\n return templatesFolderPath;\n};\n"],"mappings":"AAAA,OAAOA,MAAM,MAAM,SAAS;AAC5B,OAAOC,IAAI,MAAM,MAAM;AAEvB,MAAMC,qBAAqB,GAAG,YAAY;AAE1C,OAAO,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;EACxC,MAAMC,mBAAmB,GAAGJ,MAAM,CAACK,IAAI,CAACH,qBAAqB,EAAE;IAC3DI,IAAI,EAAE,WAAW;IACjBC,GAAG,EAAEN,IAAI,CAACO,IAAI,CAACC,MAAM,CAACC,IAAI,CAACC,OAAO;EACtC,CAAC,CAAC;EAEF,IAAI,CAACP,mBAAmB,EAAE;IACtB;IACA,MAAM,IAAIQ,KAAK,CAAC,0EAA0E,CAAC;EAC/F;EAEA,OAAOR,mBAAmB;AAC9B,CAAC","ignoreList":[]}
@@ -0,0 +1 @@
1
+ export { getTemplatesFolderPath } from "./getTemplatesFolderPath.js";
package/utils/index.js ADDED
@@ -0,0 +1,3 @@
1
+ export { getTemplatesFolderPath } from "./getTemplatesFolderPath.js";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["getTemplatesFolderPath"],"sources":["index.ts"],"sourcesContent":["export { getTemplatesFolderPath } from \"./getTemplatesFolderPath.js\";\n"],"mappings":"AAAA,SAASA,sBAAsB","ignoreList":[]}