@resistdesign/voltra 3.0.0-alpha.3 → 3.0.0-alpha.30

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/README.md +330 -7
  2. package/api/DBX/DBXAsserts.d.ts +95 -0
  3. package/api/DBX/DBXRequest.d.ts +5 -0
  4. package/api/DBX/DBXRuntime.d.ts +5 -0
  5. package/api/DBX/DBXScenarioConfig.d.ts +9 -0
  6. package/api/DBX/DBXSeed.d.ts +124 -0
  7. package/api/DBX/DBXTypes.d.ts +176 -0
  8. package/api/DBX/index.d.ts +8 -0
  9. package/api/DataAccessControl.d.ts +220 -0
  10. package/api/Indexing/API.d.ts +224 -0
  11. package/api/Indexing/Cursor.d.ts +101 -0
  12. package/api/Indexing/Handler/Config.d.ts +39 -0
  13. package/api/Indexing/Handler.d.ts +166 -0
  14. package/api/Indexing/Trace.d.ts +54 -0
  15. package/api/Indexing/Types.d.ts +204 -0
  16. package/api/Indexing/ddb/AwsSdkV3Adapter.d.ts +8 -0
  17. package/api/Indexing/ddb/Types.d.ts +169 -0
  18. package/api/Indexing/docId.d.ts +27 -0
  19. package/api/Indexing/exact/ExactDdb.d.ts +58 -0
  20. package/api/Indexing/exact/ExactIndex.d.ts +90 -0
  21. package/api/Indexing/exact/ExactS3.d.ts +41 -0
  22. package/api/Indexing/fieldQualification.d.ts +12 -0
  23. package/api/Indexing/fulltext/FullTextDdbBackend.d.ts +210 -0
  24. package/api/Indexing/fulltext/FullTextMemoryBackend.d.ts +93 -0
  25. package/api/Indexing/fulltext/Schema.d.ts +164 -0
  26. package/api/Indexing/hashUniversal.d.ts +13 -0
  27. package/api/Indexing/index.d.ts +45 -0
  28. package/api/Indexing/lossy/LossyDdb.d.ts +43 -0
  29. package/api/Indexing/lossy/LossyIndex.d.ts +72 -0
  30. package/api/Indexing/lossy/LossyS3.d.ts +40 -0
  31. package/api/Indexing/rel/Cursor.d.ts +25 -0
  32. package/api/Indexing/rel/Handlers.d.ts +143 -0
  33. package/api/Indexing/rel/RelationalDdb.d.ts +169 -0
  34. package/api/Indexing/rel/RelationalInMemoryBackend.d.ts +38 -0
  35. package/api/Indexing/rel/Types.d.ts +69 -0
  36. package/api/Indexing/structured/Cursor.d.ts +26 -0
  37. package/api/Indexing/structured/Handlers.d.ts +128 -0
  38. package/api/Indexing/structured/SearchStructured.d.ts +44 -0
  39. package/api/Indexing/structured/StructuredDdb.d.ts +166 -0
  40. package/api/Indexing/structured/StructuredDdbBackend.d.ts +109 -0
  41. package/api/Indexing/structured/StructuredInMemoryBackend.d.ts +34 -0
  42. package/api/Indexing/structured/StructuredInMemoryIndex.d.ts +58 -0
  43. package/api/Indexing/structured/StructuredStringLike.d.ts +25 -0
  44. package/api/Indexing/structured/StructuredWriter.d.ts +61 -0
  45. package/api/Indexing/structured/Types.d.ts +126 -0
  46. package/api/Indexing/structured/index.d.ts +9 -0
  47. package/api/Indexing/tokenize.d.ts +31 -0
  48. package/api/ORM/DACUtils.d.ts +270 -0
  49. package/api/ORM/ListItemUtils.d.ts +40 -0
  50. package/api/ORM/ORMRouteMap.d.ts +55 -0
  51. package/api/ORM/TypeInfoORMService.d.ts +555 -0
  52. package/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +229 -0
  53. package/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +89 -0
  54. package/api/ORM/drivers/InMemoryDataItemDBDriver/ConfigTypes.d.ts +4 -0
  55. package/api/ORM/drivers/InMemoryDataItemDBDriver.d.ts +55 -0
  56. package/api/ORM/drivers/InMemoryFileItemDBDriver/ConfigTypes.d.ts +13 -0
  57. package/api/ORM/drivers/InMemoryFileItemDBDriver.d.ts +98 -0
  58. package/api/ORM/drivers/InMemoryItemRelationshipDBDriver.d.ts +16 -0
  59. package/api/ORM/drivers/IndexingRelationshipDriver.d.ts +123 -0
  60. package/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +322 -0
  61. package/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +118 -0
  62. package/{src/api → api}/ORM/drivers/S3FileItemDBDriver.d.ts +27 -0
  63. package/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +36 -0
  64. package/{src/api → api}/ORM/drivers/common/Types.d.ts +120 -0
  65. package/api/ORM/drivers/common/index.d.ts +12 -0
  66. package/api/ORM/drivers/index.d.ts +22 -0
  67. package/api/ORM/index.d.ts +33 -0
  68. package/api/ORM/indexing/criteriaToStructuredWhere.d.ts +17 -0
  69. package/api/Router/AWS.d.ts +80 -0
  70. package/api/Router/Auth.d.ts +14 -0
  71. package/api/Router/CORS.d.ts +66 -0
  72. package/api/Router/Types.d.ts +138 -0
  73. package/api/Router/index.d.ts +89 -0
  74. package/api/index.d.ts +72 -0
  75. package/api/index.js +8827 -0
  76. package/app/forms/Engine.d.ts +20 -0
  77. package/app/forms/UI.d.ts +73 -0
  78. package/app/forms/core/createAutoField.d.ts +35 -0
  79. package/app/forms/core/createFormRenderer.d.ts +24 -0
  80. package/app/forms/core/getFieldKind.d.ts +14 -0
  81. package/app/forms/core/index.d.ts +16 -0
  82. package/app/forms/core/mergeSuites.d.ts +22 -0
  83. package/app/forms/core/resolveSuite.d.ts +14 -0
  84. package/app/forms/core/types.d.ts +169 -0
  85. package/app/forms/index.d.ts +15 -0
  86. package/app/forms/types.d.ts +156 -0
  87. package/app/helpers/styled.d.ts +3 -0
  88. package/app/index.d.ts +102 -0
  89. package/app/index.js +560 -0
  90. package/{src/app → app}/utils/ApplicationState.d.ts +115 -0
  91. package/{src/app → app}/utils/ApplicationStateLoader.d.ts +40 -0
  92. package/app/utils/Controller.d.ts +10 -0
  93. package/app/utils/Debug.d.ts +14 -0
  94. package/app/utils/EasyLayout.d.ts +89 -0
  95. package/app/utils/History.d.ts +165 -0
  96. package/app/utils/Route.d.ts +158 -0
  97. package/app/utils/RouteHistory.d.ts +26 -0
  98. package/app/utils/Service.d.ts +45 -0
  99. package/app/utils/TypeInfoORMAPIUtils.d.ts +94 -0
  100. package/app/utils/TypeInfoORMClient.d.ts +103 -0
  101. package/app/utils/UniversalRouteAdapter.d.ts +73 -0
  102. package/app/utils/easy-layout/computeAreaBounds.d.ts +5 -0
  103. package/app/utils/easy-layout/computeTracks.d.ts +16 -0
  104. package/app/utils/easy-layout/index.d.ts +5 -0
  105. package/app/utils/easy-layout/parseTemplate.d.ts +12 -0
  106. package/app/utils/easy-layout/types.d.ts +52 -0
  107. package/app/utils/easy-layout/validateAreas.d.ts +5 -0
  108. package/app/utils/index.d.ts +39 -0
  109. package/{src/common/TypeParsing → build}/TypeMapping.d.ts +8 -0
  110. package/build/TypeParsing.d.ts +10 -0
  111. package/build/index.d.ts +15 -0
  112. package/build/index.js +569 -0
  113. package/chunk-ATO2455Q.js +258 -0
  114. package/chunk-FQMZMCXU.js +71 -0
  115. package/chunk-G5CLUK4Y.js +621 -0
  116. package/chunk-GYWRAW3Y.js +78 -0
  117. package/chunk-HVY7POTD.js +22 -0
  118. package/chunk-I2KLQ2HA.js +19 -0
  119. package/chunk-IWRHGGGH.js +10 -0
  120. package/chunk-LGM75I6P.js +353 -0
  121. package/chunk-MUCSL3UR.js +1 -0
  122. package/chunk-WELZGQDJ.js +456 -0
  123. package/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +9 -0
  124. package/common/CommandLine/index.d.ts +6 -0
  125. package/common/HelperTypes.d.ts +9 -0
  126. package/common/IdGeneration/getSimpleId.d.ts +8 -0
  127. package/{src/common → common}/ItemRelationshipInfoTypes.d.ts +19 -1
  128. package/common/ItemRelationships/ItemRelationshipValidation.d.ts +21 -0
  129. package/common/ItemRelationships/index.d.ts +6 -0
  130. package/common/Logging/Utils.d.ts +19 -0
  131. package/common/Routing.d.ts +67 -0
  132. package/common/SearchTypes.d.ts +248 -0
  133. package/common/SearchUtils.d.ts +55 -0
  134. package/{src/common → common}/SearchValidation.d.ts +10 -0
  135. package/{src/common → common}/StringTransformers.d.ts +11 -0
  136. package/common/Testing/CLI.d.ts +6 -0
  137. package/common/Testing/CLI.js +432 -0
  138. package/{src/common → common}/Testing/Types.d.ts +103 -4
  139. package/{src/common → common}/Testing/Utils.d.ts +65 -1
  140. package/common/Testing/index.d.ts +8 -0
  141. package/common/TypeInfoDataItemUtils.d.ts +39 -0
  142. package/common/TypeInfoORM/Types.d.ts +342 -0
  143. package/common/TypeInfoORM/index.d.ts +11 -0
  144. package/common/TypeParsing/Constants.d.ts +4 -0
  145. package/{src/common → common}/TypeParsing/ParsingUtils/Constants.d.ts +3 -0
  146. package/{src/common → common}/TypeParsing/ParsingUtils/checkType.d.ts +6 -0
  147. package/{src/common → common}/TypeParsing/ParsingUtils/checkUnionType.d.ts +6 -0
  148. package/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +8 -0
  149. package/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +12 -0
  150. package/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +14 -0
  151. package/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +18 -0
  152. package/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +9 -0
  153. package/{src/common → common}/TypeParsing/ParsingUtils/getTypeInfoField.d.ts +6 -0
  154. package/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +11 -0
  155. package/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +12 -0
  156. package/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +11 -0
  157. package/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +9 -0
  158. package/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +11 -0
  159. package/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +8 -0
  160. package/{src/common → common}/TypeParsing/TypeInfo.d.ts +61 -1
  161. package/{src/common → common}/TypeParsing/Utils.d.ts +26 -0
  162. package/{src/common → common}/TypeParsing/Validation.d.ts +105 -0
  163. package/common/TypeParsing/index.d.ts +8 -0
  164. package/common/index.d.ts +50 -0
  165. package/common/index.js +36 -0
  166. package/{src/iac → iac}/SimpleCFT.d.ts +46 -2
  167. package/iac/index.d.ts +40 -0
  168. package/iac/index.js +2 -0
  169. package/iac/packs/auth/user-management.d.ts +82 -0
  170. package/iac/packs/auth.d.ts +88 -0
  171. package/iac/packs/build/utils.d.ts +289 -0
  172. package/iac/packs/build.d.ts +92 -0
  173. package/iac/packs/cdn.d.ts +33 -0
  174. package/iac/packs/cloud-function.d.ts +67 -0
  175. package/{src/iac → iac}/packs/database.d.ts +4 -1
  176. package/{src/iac → iac}/packs/dns.d.ts +22 -1
  177. package/iac/packs/file-storage.d.ts +46 -0
  178. package/iac/packs/gateway.d.ts +79 -0
  179. package/iac/packs/index.d.ts +60 -0
  180. package/iac/packs/index.js +1370 -0
  181. package/iac/packs/repo.d.ts +28 -0
  182. package/iac/packs/ssl-certificate.d.ts +28 -0
  183. package/{src/iac → iac}/types/Constants.d.ts +15 -0
  184. package/iac/types/Renderers.d.ts +96 -0
  185. package/iac/types/Types.d.ts +131 -0
  186. package/iac/types/Utils.d.ts +9 -0
  187. package/{src/iac → iac}/utils/index.d.ts +56 -5
  188. package/iac/utils/patch-utils.d.ts +66 -0
  189. package/iac-packs/index.d.ts +6 -0
  190. package/native/forms/UI.d.ts +67 -0
  191. package/native/forms/createNativeFormRenderer.d.ts +21 -0
  192. package/native/forms/index.d.ts +9 -0
  193. package/native/forms/primitives/index.d.ts +38 -0
  194. package/native/forms/suite.d.ts +15 -0
  195. package/native/index.d.ts +19 -0
  196. package/native/index.js +717 -0
  197. package/native/testing/react-native.d.ts +28 -0
  198. package/native/utils/EasyLayout.d.ts +88 -0
  199. package/native/utils/History.d.ts +102 -0
  200. package/native/utils/Route.d.ts +83 -0
  201. package/native/utils/index.d.ts +9 -0
  202. package/package.json +76 -44
  203. package/web/forms/UI.d.ts +68 -0
  204. package/web/forms/createWebFormRenderer.d.ts +21 -0
  205. package/web/forms/index.d.ts +9 -0
  206. package/web/forms/primitives/index.d.ts +21 -0
  207. package/web/forms/suite.d.ts +15 -0
  208. package/web/index.d.ts +15 -0
  209. package/web/index.js +547 -0
  210. package/web/utils/EasyLayout.d.ts +47 -0
  211. package/web/utils/Route.d.ts +14 -0
  212. package/web/utils/index.d.ts +6 -0
  213. package/src/api/DataAccessControl.d.ts +0 -85
  214. package/src/api/DataAccessControl.js +0 -159
  215. package/src/api/ORM/DACUtils.d.ts +0 -60
  216. package/src/api/ORM/DACUtils.js +0 -197
  217. package/src/api/ORM/ListItemUtils.d.ts +0 -7
  218. package/src/api/ORM/ListItemUtils.js +0 -22
  219. package/src/api/ORM/ORMRouteMap.d.ts +0 -19
  220. package/src/api/ORM/ORMRouteMap.js +0 -82
  221. package/src/api/ORM/TypeInfoORMService.d.ts +0 -103
  222. package/src/api/ORM/TypeInfoORMService.js +0 -581
  223. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.d.ts +0 -63
  224. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver/ConfigTypes.js +0 -2
  225. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.d.ts +0 -36
  226. package/src/api/ORM/drivers/DynamoDBDataItemDBDriver.js +0 -282
  227. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.d.ts +0 -90
  228. package/src/api/ORM/drivers/S3FileItemDBDriver/ConfigTypes.js +0 -2
  229. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.d.ts +0 -45
  230. package/src/api/ORM/drivers/S3FileItemDBDriver/S3FileDriver.js +0 -127
  231. package/src/api/ORM/drivers/S3FileItemDBDriver.js +0 -182
  232. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.d.ts +0 -12
  233. package/src/api/ORM/drivers/common/SupportedTypeInfoORMDBDrivers.js +0 -20
  234. package/src/api/ORM/drivers/common/Types.js +0 -14
  235. package/src/api/ORM/drivers/common/index.d.ts +0 -2
  236. package/src/api/ORM/drivers/common/index.js +0 -18
  237. package/src/api/ORM/drivers/index.d.ts +0 -3
  238. package/src/api/ORM/drivers/index.js +0 -19
  239. package/src/api/ORM/index.d.ts +0 -4
  240. package/src/api/ORM/index.js +0 -43
  241. package/src/api/Router/AWS.d.ts +0 -26
  242. package/src/api/Router/AWS.js +0 -76
  243. package/src/api/Router/Auth.d.ts +0 -2
  244. package/src/api/Router/Auth.js +0 -9
  245. package/src/api/Router/CORS.d.ts +0 -6
  246. package/src/api/Router/CORS.js +0 -27
  247. package/src/api/Router/Types.d.ts +0 -71
  248. package/src/api/Router/Types.js +0 -2
  249. package/src/api/Router/index.d.ts +0 -18
  250. package/src/api/Router/index.js +0 -145
  251. package/src/api/index.d.ts +0 -3
  252. package/src/api/index.js +0 -39
  253. package/src/app/index.d.ts +0 -1
  254. package/src/app/index.js +0 -37
  255. package/src/app/utils/ApplicationState.js +0 -86
  256. package/src/app/utils/ApplicationStateLoader.js +0 -57
  257. package/src/app/utils/Controller.d.ts +0 -4
  258. package/src/app/utils/Controller.js +0 -47
  259. package/src/app/utils/Debug.d.ts +0 -4
  260. package/src/app/utils/Debug.js +0 -30
  261. package/src/app/utils/EasyLayout.d.ts +0 -49
  262. package/src/app/utils/EasyLayout.js +0 -122
  263. package/src/app/utils/Route.d.ts +0 -28
  264. package/src/app/utils/Route.js +0 -102
  265. package/src/app/utils/Service.d.ts +0 -12
  266. package/src/app/utils/Service.js +0 -34
  267. package/src/app/utils/TypeInfoORMAPIUtils.d.ts +0 -20
  268. package/src/app/utils/TypeInfoORMAPIUtils.js +0 -62
  269. package/src/app/utils/TypeInfoORMClient.d.ts +0 -24
  270. package/src/app/utils/TypeInfoORMClient.js +0 -69
  271. package/src/app/utils/index.d.ts +0 -8
  272. package/src/app/utils/index.js +0 -24
  273. package/src/common/CommandLine/collectRequiredEnvironmentVariables.d.ts +0 -1
  274. package/src/common/CommandLine/collectRequiredEnvironmentVariables.js +0 -16
  275. package/src/common/HelperTypes.d.ts +0 -3
  276. package/src/common/HelperTypes.js +0 -2
  277. package/src/common/IdGeneration/getSimpleId.d.ts +0 -4
  278. package/src/common/IdGeneration/getSimpleId.js +0 -16
  279. package/src/common/IdGeneration/index.js +0 -17
  280. package/src/common/ItemRelationshipInfoTypes.js +0 -20
  281. package/src/common/ItemRelationships/ItemRelationshipValidation.d.ts +0 -10
  282. package/src/common/ItemRelationships/ItemRelationshipValidation.js +0 -43
  283. package/src/common/ItemRelationships/index.d.ts +0 -1
  284. package/src/common/ItemRelationships/index.js +0 -17
  285. package/src/common/Logging/Utils.d.ts +0 -10
  286. package/src/common/Logging/Utils.js +0 -33
  287. package/src/common/Logging/index.js +0 -17
  288. package/src/common/Routing.d.ts +0 -25
  289. package/src/common/Routing.js +0 -102
  290. package/src/common/SearchTypes.d.ts +0 -98
  291. package/src/common/SearchTypes.js +0 -39
  292. package/src/common/SearchUtils.d.ts +0 -22
  293. package/src/common/SearchUtils.js +0 -134
  294. package/src/common/SearchValidation.js +0 -90
  295. package/src/common/Storyboarding/Types.d.ts +0 -25
  296. package/src/common/Storyboarding/Types.js +0 -2
  297. package/src/common/StringTransformers.js +0 -36
  298. package/src/common/Testing/CLI.d.ts +0 -2
  299. package/src/common/Testing/CLI.js +0 -56
  300. package/src/common/Testing/Types.js +0 -19
  301. package/src/common/Testing/Utils.js +0 -334
  302. package/src/common/Testing/index.d.ts +0 -2
  303. package/src/common/Testing/index.js +0 -18
  304. package/src/common/TypeInfoDataItemUtils.d.ts +0 -10
  305. package/src/common/TypeInfoDataItemUtils.js +0 -55
  306. package/src/common/TypeInfoORM/Types.d.ts +0 -76
  307. package/src/common/TypeInfoORM/Types.js +0 -55
  308. package/src/common/TypeInfoORM/index.d.ts +0 -1
  309. package/src/common/TypeInfoORM/index.js +0 -17
  310. package/src/common/TypeParsing/Constants.d.ts +0 -1
  311. package/src/common/TypeParsing/Constants.js +0 -4
  312. package/src/common/TypeParsing/ParsingUtils/Constants.js +0 -8
  313. package/src/common/TypeParsing/ParsingUtils/checkType.js +0 -46
  314. package/src/common/TypeParsing/ParsingUtils/checkUnionType.js +0 -15
  315. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.d.ts +0 -2
  316. package/src/common/TypeParsing/ParsingUtils/extractCommentTags.js +0 -105
  317. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.d.ts +0 -6
  318. package/src/common/TypeParsing/ParsingUtils/extractLiteralValues.js +0 -42
  319. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.d.ts +0 -8
  320. package/src/common/TypeParsing/ParsingUtils/extractTypeDetails.js +0 -14
  321. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.d.ts +0 -5
  322. package/src/common/TypeParsing/ParsingUtils/getPrimaryFieldForTypeInfo.js +0 -27
  323. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.d.ts +0 -3
  324. package/src/common/TypeParsing/ParsingUtils/getTypeInfo.js +0 -27
  325. package/src/common/TypeParsing/ParsingUtils/getTypeInfoField.js +0 -44
  326. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.d.ts +0 -4
  327. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromAliasType.js +0 -28
  328. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.d.ts +0 -4
  329. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromFieldFilter.js +0 -105
  330. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.d.ts +0 -4
  331. package/src/common/TypeParsing/ParsingUtils/getTypeInfoFromTypeAlias.js +0 -20
  332. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.d.ts +0 -3
  333. package/src/common/TypeParsing/ParsingUtils/getTypeKeyword.js +0 -17
  334. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.d.ts +0 -4
  335. package/src/common/TypeParsing/ParsingUtils/getUnionOrIntersectionTypeInfo.js +0 -49
  336. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.d.ts +0 -2
  337. package/src/common/TypeParsing/ParsingUtils/getUnionOrLiteralStringValues.js +0 -24
  338. package/src/common/TypeParsing/TypeInfo.js +0 -13
  339. package/src/common/TypeParsing/TypeMapping.js +0 -32
  340. package/src/common/TypeParsing/TypeParsing.d.ts +0 -5
  341. package/src/common/TypeParsing/TypeParsing.js +0 -39
  342. package/src/common/TypeParsing/Utils.js +0 -94
  343. package/src/common/TypeParsing/Validation.js +0 -340
  344. package/src/common/TypeParsing/index.d.ts +0 -5
  345. package/src/common/TypeParsing/index.js +0 -44
  346. package/src/common/index.d.ts +0 -11
  347. package/src/common/index.js +0 -47
  348. package/src/iac/SimpleCFT.js +0 -82
  349. package/src/iac/index.d.ts +0 -9
  350. package/src/iac/index.js +0 -48
  351. package/src/iac/packs/auth/user-management.d.ts +0 -14
  352. package/src/iac/packs/auth/user-management.js +0 -302
  353. package/src/iac/packs/auth.d.ts +0 -19
  354. package/src/iac/packs/auth.js +0 -47
  355. package/src/iac/packs/build/utils.d.ts +0 -100
  356. package/src/iac/packs/build/utils.js +0 -23
  357. package/src/iac/packs/build.d.ts +0 -29
  358. package/src/iac/packs/build.js +0 -217
  359. package/src/iac/packs/cdn.d.ts +0 -12
  360. package/src/iac/packs/cdn.js +0 -126
  361. package/src/iac/packs/cloud-function.d.ts +0 -17
  362. package/src/iac/packs/cloud-function.js +0 -69
  363. package/src/iac/packs/database.js +0 -27
  364. package/src/iac/packs/dns.js +0 -26
  365. package/src/iac/packs/file-storage.d.ts +0 -14
  366. package/src/iac/packs/file-storage.js +0 -71
  367. package/src/iac/packs/gateway.d.ts +0 -27
  368. package/src/iac/packs/gateway.js +0 -342
  369. package/src/iac/packs/index.d.ts +0 -11
  370. package/src/iac/packs/index.js +0 -27
  371. package/src/iac/packs/repo.d.ts +0 -10
  372. package/src/iac/packs/repo.js +0 -34
  373. package/src/iac/packs/ssl-certificate.d.ts +0 -10
  374. package/src/iac/packs/ssl-certificate.js +0 -36
  375. package/src/iac/types/CloudFormationResourceSpecification.d.ts +0 -2
  376. package/src/iac/types/Constants.js +0 -20
  377. package/src/iac/types/IaCTypes.js +0 -14
  378. package/src/iac/types/Renderers.d.ts +0 -12
  379. package/src/iac/types/Renderers.js +0 -112
  380. package/src/iac/types/Types.d.ts +0 -37
  381. package/src/iac/types/Types.js +0 -2
  382. package/src/iac/types/Utils.d.ts +0 -2
  383. package/src/iac/types/Utils.js +0 -60
  384. package/src/iac/types/generate.js +0 -31
  385. package/src/iac/utils/index.js +0 -105
  386. package/src/iac/utils/patch-utils.d.ts +0 -15
  387. package/src/iac/utils/patch-utils.js +0 -62
  388. package/src/index.d.ts +0 -178
  389. package/src/index.js +0 -214
  390. /package/{src/common → common}/IdGeneration/index.d.ts +0 -0
  391. /package/{src/common → common}/Logging/index.d.ts +0 -0
  392. /package/{src/iac → iac}/types/IaCTypes.d.ts +0 -0
  393. /package/{src/iac → iac}/types/generate.d.ts +0 -0
@@ -0,0 +1,1370 @@
1
+ import { createResourcePack, SimpleCFT } from '../../chunk-ATO2455Q.js';
2
+ import '../../chunk-I2KLQ2HA.js';
3
+ import YAML from 'yaml';
4
+
5
+ // src/iac/packs/auth/user-management.ts
6
+ var addUserManagement = createResourcePack(
7
+ (config) => {
8
+ const {
9
+ id,
10
+ authRoleName,
11
+ unauthRoleName,
12
+ callbackUrls,
13
+ logoutUrls,
14
+ apiGatewayRESTAPIId,
15
+ apiStageName
16
+ } = config;
17
+ const apiRoleConfig = apiGatewayRESTAPIId && apiStageName ? {
18
+ [`${id}IdentityPoolRoles`]: {
19
+ Type: "AWS::Cognito::IdentityPoolRoleAttachment",
20
+ Properties: {
21
+ IdentityPoolId: {
22
+ Ref: `${id}IdentityPool`
23
+ },
24
+ Roles: {
25
+ authenticated: {
26
+ "Fn::GetAtt": [`${id}AuthRole`, "Arn"]
27
+ },
28
+ unauthenticated: {
29
+ "Fn::GetAtt": [`${id}UnauthRole`, "Arn"]
30
+ }
31
+ }
32
+ }
33
+ },
34
+ [`${id}AuthRole`]: {
35
+ Type: "AWS::IAM::Role",
36
+ Properties: {
37
+ RoleName: authRoleName,
38
+ Path: "/",
39
+ AssumeRolePolicyDocument: {
40
+ Version: "2012-10-17",
41
+ Statement: [
42
+ {
43
+ Effect: "Allow",
44
+ Principal: {
45
+ Federated: "cognito-identity.amazonaws.com"
46
+ },
47
+ Action: ["sts:AssumeRoleWithWebIdentity"],
48
+ Condition: {
49
+ StringEquals: {
50
+ "cognito-identity.amazonaws.com:aud": {
51
+ Ref: `${id}IdentityPool`
52
+ }
53
+ },
54
+ "ForAnyValue:StringLike": {
55
+ "cognito-identity.amazonaws.com:amr": "authenticated"
56
+ }
57
+ }
58
+ }
59
+ ]
60
+ },
61
+ Policies: [
62
+ {
63
+ PolicyName: "CognitoAuthorizedPolicy",
64
+ PolicyDocument: {
65
+ Version: "2012-10-17",
66
+ Statement: [
67
+ {
68
+ Effect: "Allow",
69
+ Action: [
70
+ "mobileanalytics:PutEvents",
71
+ "cognito-sync:*",
72
+ "cognito-identity:*"
73
+ ],
74
+ Resource: "*"
75
+ },
76
+ {
77
+ Effect: "Allow",
78
+ Action: ["execute-api:Invoke"],
79
+ Resource: {
80
+ "Fn::Sub": [
81
+ "arn:aws:execute-api:${Region}:${AccountId}:${APIID}/${StageName}/${HTTPVerb}/api/*",
82
+ {
83
+ Region: {
84
+ Ref: "AWS::Region"
85
+ },
86
+ AccountId: {
87
+ Ref: "AWS::AccountId"
88
+ },
89
+ APIID: apiGatewayRESTAPIId,
90
+ StageName: apiStageName,
91
+ HTTPVerb: "*"
92
+ }
93
+ ]
94
+ }
95
+ }
96
+ ]
97
+ }
98
+ }
99
+ ]
100
+ }
101
+ },
102
+ [`${id}UnauthRole`]: {
103
+ Type: "AWS::IAM::Role",
104
+ Properties: {
105
+ RoleName: unauthRoleName,
106
+ Path: "/",
107
+ AssumeRolePolicyDocument: {
108
+ Version: "2012-10-17",
109
+ Statement: [
110
+ {
111
+ Effect: "Allow",
112
+ Principal: {
113
+ Federated: "cognito-identity.amazonaws.com"
114
+ },
115
+ Action: ["sts:AssumeRoleWithWebIdentity"],
116
+ Condition: {
117
+ StringEquals: {
118
+ "cognito-identity.amazonaws.com:aud": {
119
+ Ref: `${id}IdentityPool`
120
+ }
121
+ },
122
+ "ForAnyValue:StringLike": {
123
+ "cognito-identity.amazonaws.com:amr": "unauthenticated"
124
+ }
125
+ }
126
+ }
127
+ ]
128
+ },
129
+ Policies: [
130
+ {
131
+ PolicyName: "CognitoUnauthorizedPolicy",
132
+ PolicyDocument: {
133
+ Version: "2012-10-17",
134
+ Statement: [
135
+ {
136
+ Effect: "Allow",
137
+ Action: [
138
+ "mobileanalytics:PutEvents",
139
+ "cognito-sync:*",
140
+ "cognito-identity:*"
141
+ ],
142
+ Resource: "*"
143
+ }
144
+ ]
145
+ }
146
+ }
147
+ ]
148
+ }
149
+ }
150
+ } : {};
151
+ const userPoolDomainConfig = config.enableUserPoolDomain === false ? {} : {
152
+ [`${id}BaseDomainRecord`]: !!config.baseDomainRecordAliasTargetDNSName ? {
153
+ Type: "AWS::Route53::RecordSet",
154
+ DeletionPolicy: "Delete",
155
+ Properties: {
156
+ HostedZoneId: config.hostedZoneId,
157
+ Type: "A",
158
+ Name: config.domainName,
159
+ AliasTarget: {
160
+ HostedZoneId: "Z2FDTNDATAQYW2",
161
+ DNSName: config.baseDomainRecordAliasTargetDNSName
162
+ }
163
+ }
164
+ } : void 0,
165
+ [`${id}DomainRecord`]: {
166
+ Type: "AWS::Route53::RecordSet",
167
+ DeletionPolicy: "Delete",
168
+ Properties: {
169
+ HostedZoneId: config.hostedZoneId,
170
+ Type: "A",
171
+ Name: {
172
+ "Fn::Sub": [
173
+ "auth.${BaseDomainName}",
174
+ {
175
+ BaseDomainName: config.domainName
176
+ }
177
+ ]
178
+ },
179
+ AliasTarget: {
180
+ HostedZoneId: "Z2FDTNDATAQYW2",
181
+ DNSName: {
182
+ "Fn::GetAtt": [`${id}Domain`, "CloudFrontDistribution"]
183
+ }
184
+ }
185
+ }
186
+ },
187
+ [`${id}Domain`]: {
188
+ Type: "AWS::Cognito::UserPoolDomain",
189
+ DependsOn: !!config.baseDomainRecordAliasTargetDNSName ? `${id}BaseDomainRecord` : void 0,
190
+ Properties: {
191
+ Domain: {
192
+ "Fn::Sub": [
193
+ "auth.${BaseDomainName}",
194
+ {
195
+ BaseDomainName: config.domainName
196
+ }
197
+ ]
198
+ },
199
+ UserPoolId: {
200
+ Ref: id
201
+ },
202
+ CustomDomainConfig: {
203
+ CertificateArn: config.sslCertificateArn
204
+ }
205
+ }
206
+ }
207
+ };
208
+ return {
209
+ Resources: {
210
+ [id]: {
211
+ Type: "AWS::Cognito::UserPool",
212
+ Properties: {
213
+ UserPoolName: {
214
+ "Fn::Sub": [`\${AWS::StackName}${id}`, {}]
215
+ },
216
+ AccountRecoverySetting: {
217
+ RecoveryMechanisms: [
218
+ {
219
+ Name: "verified_email",
220
+ Priority: 1
221
+ }
222
+ ]
223
+ },
224
+ AdminCreateUserConfig: {
225
+ AllowAdminCreateUserOnly: false,
226
+ UnusedAccountValidityDays: 365
227
+ },
228
+ AutoVerifiedAttributes: ["email"],
229
+ AliasAttributes: ["phone_number", "email", "preferred_username"],
230
+ Schema: [
231
+ {
232
+ Name: "email",
233
+ Required: true,
234
+ Mutable: true
235
+ },
236
+ {
237
+ Name: "given_name",
238
+ Required: true,
239
+ Mutable: true
240
+ },
241
+ {
242
+ Name: "family_name",
243
+ Required: true,
244
+ Mutable: true
245
+ },
246
+ {
247
+ Name: "phone_number",
248
+ Required: true,
249
+ Mutable: true
250
+ }
251
+ ],
252
+ DeviceConfiguration: {
253
+ ChallengeRequiredOnNewDevice: true,
254
+ DeviceOnlyRememberedOnUserPrompt: false
255
+ },
256
+ UsernameConfiguration: {
257
+ CaseSensitive: false
258
+ }
259
+ }
260
+ },
261
+ [`${id}Client`]: {
262
+ Type: "AWS::Cognito::UserPoolClient",
263
+ Properties: {
264
+ ClientName: {
265
+ "Fn::Sub": [`\${AWS::StackName}${id}Client`, {}]
266
+ },
267
+ UserPoolId: {
268
+ Ref: id
269
+ },
270
+ AllowedOAuthFlowsUserPoolClient: true,
271
+ AllowedOAuthFlows: ["code", "implicit"],
272
+ AllowedOAuthScopes: [
273
+ "openid",
274
+ "email",
275
+ "phone",
276
+ "profile",
277
+ "aws.cognito.signin.user.admin"
278
+ ],
279
+ EnableTokenRevocation: true,
280
+ PreventUserExistenceErrors: "ENABLED",
281
+ SupportedIdentityProviders: ["COGNITO"],
282
+ ...callbackUrls && callbackUrls.length > 0 ? { CallbackURLs: callbackUrls } : {},
283
+ ...logoutUrls && logoutUrls.length > 0 ? { LogoutURLs: logoutUrls } : {}
284
+ }
285
+ },
286
+ [`${id}IdentityPool`]: {
287
+ Type: "AWS::Cognito::IdentityPool",
288
+ Properties: {
289
+ IdentityPoolName: {
290
+ "Fn::Sub": [`\${AWS::StackName}${id}IdentityPool`, {}]
291
+ },
292
+ AllowUnauthenticatedIdentities: false,
293
+ CognitoIdentityProviders: [
294
+ {
295
+ ClientId: {
296
+ Ref: `${id}Client`
297
+ },
298
+ ProviderName: {
299
+ "Fn::GetAtt": [id, "ProviderName"]
300
+ },
301
+ ServerSideTokenCheck: true
302
+ }
303
+ ]
304
+ }
305
+ },
306
+ ...userPoolDomainConfig,
307
+ ...apiRoleConfig
308
+ }
309
+ };
310
+ }
311
+ );
312
+
313
+ // src/iac/packs/auth.ts
314
+ var addAuth = createResourcePack((config) => {
315
+ const {
316
+ userManagementId,
317
+ authRoleName,
318
+ unauthRoleName,
319
+ callbackUrls,
320
+ logoutUrls,
321
+ apiCloudFunctionGatewayId,
322
+ apiStageName,
323
+ adminGroupId,
324
+ userManagementAdminGroupName
325
+ } = config;
326
+ return new SimpleCFT().applyPack(addUserManagement, {
327
+ id: userManagementId,
328
+ authRoleName,
329
+ unauthRoleName,
330
+ apiGatewayRESTAPIId: {
331
+ Ref: apiCloudFunctionGatewayId
332
+ },
333
+ apiStageName,
334
+ ...config.enableUserPoolDomain === false ? {
335
+ enableUserPoolDomain: false
336
+ } : {
337
+ enableUserPoolDomain: true,
338
+ domainName: {
339
+ Ref: config.domainNameParameterName
340
+ },
341
+ hostedZoneId: {
342
+ Ref: config.hostedZoneIdParameterName
343
+ },
344
+ sslCertificateArn: {
345
+ Ref: config.sslCertificateId
346
+ },
347
+ baseDomainRecordAliasTargetDNSName: {
348
+ "Fn::GetAtt": [config.mainCDNCloudFrontId, "DomainName"]
349
+ },
350
+ callbackUrls,
351
+ logoutUrls
352
+ }
353
+ }).patch({
354
+ Resources: {
355
+ [adminGroupId]: {
356
+ Type: "AWS::Cognito::UserPoolGroup",
357
+ Properties: {
358
+ GroupName: userManagementAdminGroupName,
359
+ UserPoolId: {
360
+ Ref: userManagementId
361
+ },
362
+ Description: "Application admin group."
363
+ }
364
+ }
365
+ }
366
+ }).template;
367
+ });
368
+
369
+ // src/iac/packs/build.ts
370
+ var DEFAULT_BUILD_PIPELINE_REPO_PROVIDER = "GitHub";
371
+ var addBuildPipeline = createResourcePack(
372
+ ({
373
+ id,
374
+ buildSpec,
375
+ dependsOn,
376
+ environmentVariables,
377
+ timeoutInMinutes = 10,
378
+ environmentType = "LINUX_CONTAINER",
379
+ environmentComputeType = "BUILD_GENERAL1_SMALL",
380
+ environmentImage = "aws/codebuild/nodejs:10.14.1",
381
+ repoConfig: {
382
+ provider = DEFAULT_BUILD_PIPELINE_REPO_PROVIDER,
383
+ owner,
384
+ repo,
385
+ branch,
386
+ oauthToken
387
+ }
388
+ }) => ({
389
+ Resources: {
390
+ [`${id}CodeBuildRole`]: {
391
+ Type: "AWS::IAM::Role",
392
+ Properties: {
393
+ AssumeRolePolicyDocument: {
394
+ Statement: [
395
+ {
396
+ Effect: "Allow",
397
+ Principal: {
398
+ Service: ["codebuild.amazonaws.com"]
399
+ },
400
+ Action: ["sts:AssumeRole"]
401
+ }
402
+ ]
403
+ },
404
+ Path: "/",
405
+ Policies: [
406
+ {
407
+ PolicyName: "codebuild-service",
408
+ PolicyDocument: {
409
+ Statement: [
410
+ {
411
+ Effect: "Allow",
412
+ Action: "*",
413
+ Resource: "*"
414
+ }
415
+ ],
416
+ Version: "2012-10-17"
417
+ }
418
+ }
419
+ ]
420
+ }
421
+ },
422
+ [`${id}CodePipelineRole`]: {
423
+ Type: "AWS::IAM::Role",
424
+ Properties: {
425
+ AssumeRolePolicyDocument: {
426
+ Statement: [
427
+ {
428
+ Effect: "Allow",
429
+ Principal: {
430
+ Service: ["codepipeline.amazonaws.com"]
431
+ },
432
+ Action: ["sts:AssumeRole"]
433
+ }
434
+ ]
435
+ },
436
+ Path: "/",
437
+ Policies: [
438
+ {
439
+ PolicyName: "codepipeline-service",
440
+ PolicyDocument: {
441
+ Statement: [
442
+ {
443
+ Action: ["codebuild:*"],
444
+ Resource: "*",
445
+ Effect: "Allow"
446
+ },
447
+ {
448
+ Action: [
449
+ "s3:GetObject",
450
+ "s3:GetObjectVersion",
451
+ "s3:GetBucketVersioning"
452
+ ],
453
+ Resource: "*",
454
+ Effect: "Allow"
455
+ },
456
+ {
457
+ Action: ["s3:PutObject"],
458
+ Resource: ["arn:aws:s3:::codepipeline*"],
459
+ Effect: "Allow"
460
+ },
461
+ {
462
+ Action: ["s3:*", "cloudformation:*", "iam:PassRole"],
463
+ Resource: "*",
464
+ Effect: "Allow"
465
+ }
466
+ ],
467
+ Version: "2012-10-17"
468
+ }
469
+ }
470
+ ]
471
+ }
472
+ },
473
+ [`${id}PipelineBucket`]: {
474
+ Type: "AWS::S3::Bucket",
475
+ DeletionPolicy: "Delete",
476
+ Properties: {
477
+ BucketEncryption: {
478
+ ServerSideEncryptionConfiguration: [
479
+ {
480
+ ServerSideEncryptionByDefault: {
481
+ SSEAlgorithm: "AES256"
482
+ }
483
+ }
484
+ ]
485
+ },
486
+ PublicAccessBlockConfiguration: {
487
+ BlockPublicAcls: true,
488
+ BlockPublicPolicy: true,
489
+ IgnorePublicAcls: true,
490
+ RestrictPublicBuckets: true
491
+ }
492
+ }
493
+ },
494
+ [`${id}CodeBuildAndDeploy`]: {
495
+ Type: "AWS::CodeBuild::Project",
496
+ DependsOn: dependsOn,
497
+ Properties: {
498
+ Name: {
499
+ "Fn::Sub": `\${AWS::StackName}-${id}CodeBuildAndDeploy`
500
+ },
501
+ Description: "Deploy site to S3",
502
+ ServiceRole: {
503
+ "Fn::GetAtt": [`${id}CodeBuildRole`, "Arn"]
504
+ },
505
+ Artifacts: {
506
+ Type: "CODEPIPELINE"
507
+ },
508
+ Environment: {
509
+ Type: environmentType,
510
+ ComputeType: environmentComputeType,
511
+ Image: environmentImage,
512
+ EnvironmentVariables: environmentVariables
513
+ },
514
+ Source: {
515
+ Type: "CODEPIPELINE",
516
+ BuildSpec: buildSpec
517
+ },
518
+ TimeoutInMinutes: timeoutInMinutes
519
+ }
520
+ },
521
+ [`${id}Pipeline`]: {
522
+ Type: "AWS::CodePipeline::Pipeline",
523
+ DependsOn: `${id}CodeBuildAndDeploy`,
524
+ Properties: {
525
+ RoleArn: {
526
+ "Fn::GetAtt": [`${id}CodePipelineRole`, "Arn"]
527
+ },
528
+ Stages: [
529
+ {
530
+ Name: "Acquire-Source",
531
+ Actions: [
532
+ {
533
+ InputArtifacts: [],
534
+ Name: "Source",
535
+ ActionTypeId: {
536
+ Category: "Source",
537
+ Owner: "ThirdParty",
538
+ Version: "1",
539
+ Provider: provider
540
+ },
541
+ OutputArtifacts: [
542
+ {
543
+ Name: "SourceOutput"
544
+ }
545
+ ],
546
+ Configuration: {
547
+ Owner: owner,
548
+ Repo: repo,
549
+ Branch: branch,
550
+ OAuthToken: oauthToken
551
+ },
552
+ RunOrder: 1
553
+ }
554
+ ]
555
+ },
556
+ {
557
+ Name: "Build-And-Deploy",
558
+ Actions: [
559
+ {
560
+ Name: "Artifact",
561
+ ActionTypeId: {
562
+ Category: "Build",
563
+ Owner: "AWS",
564
+ Version: "1",
565
+ Provider: "CodeBuild"
566
+ },
567
+ InputArtifacts: [
568
+ {
569
+ Name: "SourceOutput"
570
+ }
571
+ ],
572
+ OutputArtifacts: [
573
+ {
574
+ Name: "DeployOutput"
575
+ }
576
+ ],
577
+ Configuration: {
578
+ ProjectName: {
579
+ Ref: `${id}CodeBuildAndDeploy`
580
+ }
581
+ },
582
+ RunOrder: 1
583
+ }
584
+ ]
585
+ }
586
+ ],
587
+ ArtifactStore: {
588
+ Type: "S3",
589
+ Location: {
590
+ Ref: `${id}PipelineBucket`
591
+ }
592
+ }
593
+ }
594
+ }
595
+ }
596
+ })
597
+ );
598
+ var COMMAND_HELPERS = {
599
+ updateFunction: ({
600
+ cloudFunctionArn,
601
+ codeZipFilePath
602
+ }) => `aws lambda update-function-code --function-name "${cloudFunctionArn}" --zip-file "fileb://${codeZipFilePath}"`,
603
+ copyDirectoryToS3: ({
604
+ s3Domain,
605
+ directoryPath
606
+ }) => `aws s3 cp --recursive --acl public-read ${directoryPath} s3://${s3Domain}/`,
607
+ cloudFrontInvalidation: ({
608
+ cloudFrontDistributionId,
609
+ pathsToInvalidate = ["/*"]
610
+ }) => `aws cloudfront create-invalidation --distribution-id "${cloudFrontDistributionId}" --paths "${pathsToInvalidate.join('" "')}"`,
611
+ addNPMTokenWithNPMRC: ({ npmToken }) => `echo '//registry.npmjs.org/:_authToken=${npmToken}' > .npmrc`
612
+ };
613
+ var createBuildSpec = ({ version = 0.2, phases }) => YAML.stringify(
614
+ // TRICKY: Removed all keys with a value of `undefined`.
615
+ JSON.parse(
616
+ JSON.stringify({
617
+ version,
618
+ phases
619
+ })
620
+ )
621
+ );
622
+
623
+ // src/iac/packs/cdn.ts
624
+ var addCDN = createResourcePack(
625
+ ({
626
+ id,
627
+ hostedZoneId,
628
+ domainName,
629
+ certificateArn,
630
+ fileStorageId
631
+ }) => {
632
+ const oacId = `${id}OriginAccessControl`;
633
+ return {
634
+ Resources: {
635
+ [oacId]: {
636
+ Type: "AWS::CloudFront::OriginAccessControl",
637
+ Properties: {
638
+ OriginAccessControlConfig: {
639
+ Name: oacId,
640
+ OriginAccessControlOriginType: "s3",
641
+ SigningBehavior: "always",
642
+ SigningProtocol: "sigv4"
643
+ }
644
+ }
645
+ },
646
+ [id]: {
647
+ Type: "AWS::CloudFront::Distribution",
648
+ DependsOn: fileStorageId,
649
+ Properties: {
650
+ DistributionConfig: {
651
+ Aliases: [domainName],
652
+ ViewerCertificate: {
653
+ AcmCertificateArn: certificateArn,
654
+ SslSupportMethod: "sni-only",
655
+ MinimumProtocolVersion: "TLSv1.1_2016"
656
+ },
657
+ DefaultCacheBehavior: {
658
+ ForwardedValues: {
659
+ QueryString: false
660
+ },
661
+ TargetOriginId: {
662
+ "Fn::Sub": [
663
+ "S3-${S3BucketName}",
664
+ {
665
+ S3BucketName: domainName
666
+ }
667
+ ]
668
+ },
669
+ ViewerProtocolPolicy: "redirect-to-https"
670
+ },
671
+ DefaultRootObject: "index.html",
672
+ Enabled: true,
673
+ IPV6Enabled: false,
674
+ HttpVersion: "http2",
675
+ Origins: [
676
+ {
677
+ DomainName: {
678
+ "Fn::Sub": [
679
+ "${S3BucketName}.s3.amazonaws.com",
680
+ {
681
+ S3BucketName: domainName
682
+ }
683
+ ]
684
+ },
685
+ Id: {
686
+ "Fn::Sub": [
687
+ "S3-${S3BucketName}",
688
+ {
689
+ S3BucketName: domainName
690
+ }
691
+ ]
692
+ },
693
+ OriginAccessControlId: { Ref: oacId },
694
+ S3OriginConfig: {
695
+ OriginAccessIdentity: ""
696
+ }
697
+ }
698
+ ],
699
+ CustomErrorResponses: [
700
+ {
701
+ ErrorCachingMinTTL: 300,
702
+ ErrorCode: 404,
703
+ ResponseCode: 200,
704
+ ResponsePagePath: "/index.html"
705
+ },
706
+ {
707
+ ErrorCachingMinTTL: 300,
708
+ ErrorCode: 403,
709
+ ResponseCode: 200,
710
+ ResponsePagePath: "/index.html"
711
+ }
712
+ ],
713
+ PriceClass: "PriceClass_All"
714
+ }
715
+ }
716
+ },
717
+ [`${id}Route53Record`]: {
718
+ Type: "AWS::Route53::RecordSet",
719
+ DependsOn: [id],
720
+ Properties: {
721
+ HostedZoneId: hostedZoneId,
722
+ Type: "A",
723
+ Name: {
724
+ "Fn::Sub": [
725
+ "${DomainName}.",
726
+ {
727
+ DomainName: domainName
728
+ }
729
+ ]
730
+ },
731
+ AliasTarget: {
732
+ HostedZoneId: "Z2FDTNDATAQYW2",
733
+ DNSName: {
734
+ "Fn::Sub": [
735
+ "${DomainName}.",
736
+ {
737
+ DomainName: {
738
+ "Fn::GetAtt": [id, "DomainName"]
739
+ }
740
+ }
741
+ ]
742
+ }
743
+ }
744
+ }
745
+ }
746
+ }
747
+ };
748
+ }
749
+ );
750
+
751
+ // src/iac/packs/cloud-function.ts
752
+ var PLACEHOLDER_FUNCTION_CODE = {
753
+ ZipFile: `module.exports = {handler: async () => ({
754
+ statusCode: 200,
755
+ headers: {'Content-Type': 'application/json'},
756
+ body: '"You did it!"'
757
+ })};
758
+ `
759
+ };
760
+ var addCloudFunction = createResourcePack(
761
+ ({
762
+ id,
763
+ code = PLACEHOLDER_FUNCTION_CODE,
764
+ environment = {
765
+ Variables: {
766
+ NODE_ENV: "production"
767
+ }
768
+ },
769
+ handler = "index.handler",
770
+ runtime = "nodejs26.x",
771
+ timeout = 30,
772
+ policies = [
773
+ {
774
+ PolicyName: "lambda-parameter-store",
775
+ PolicyDocument: {
776
+ Version: "2012-10-17",
777
+ Statement: [
778
+ {
779
+ Effect: "Allow",
780
+ Action: ["*"],
781
+ Resource: "*"
782
+ }
783
+ ]
784
+ }
785
+ }
786
+ ],
787
+ memorySize = 128
788
+ }) => {
789
+ return {
790
+ Resources: {
791
+ [`${id}Role`]: {
792
+ Type: "AWS::IAM::Role",
793
+ Properties: {
794
+ ManagedPolicyArns: [
795
+ "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
796
+ ],
797
+ AssumeRolePolicyDocument: {
798
+ Version: "2012-10-17",
799
+ Statement: [
800
+ {
801
+ Action: ["sts:AssumeRole"],
802
+ Effect: "Allow",
803
+ Principal: {
804
+ Service: ["lambda.amazonaws.com"]
805
+ }
806
+ }
807
+ ]
808
+ },
809
+ Policies: policies
810
+ }
811
+ },
812
+ [id]: {
813
+ Type: "AWS::Lambda::Function",
814
+ Properties: {
815
+ Timeout: timeout,
816
+ Code: code,
817
+ Environment: environment,
818
+ Handler: handler,
819
+ Role: {
820
+ "Fn::GetAtt": [`${id}Role`, "Arn"]
821
+ },
822
+ Runtime: runtime,
823
+ MemorySize: memorySize
824
+ }
825
+ }
826
+ }
827
+ };
828
+ }
829
+ );
830
+
831
+ // src/iac/packs/database.ts
832
+ var addDatabase = createResourcePack(
833
+ ({
834
+ tableId,
835
+ tableName,
836
+ keys,
837
+ attributes,
838
+ billingMode = "PAY_PER_REQUEST"
839
+ }) => new SimpleCFT().patch({
840
+ Resources: {
841
+ [tableId]: {
842
+ Type: "AWS::DynamoDB::Table",
843
+ Properties: {
844
+ TableName: tableName,
845
+ AttributeDefinitions: Object.keys(attributes).map(
846
+ (attributeName) => ({
847
+ AttributeName: attributeName,
848
+ AttributeType: attributes[attributeName]
849
+ })
850
+ ),
851
+ KeySchema: Object.keys(keys).map((keyName) => ({
852
+ AttributeName: keyName,
853
+ KeyType: keys[keyName]
854
+ })),
855
+ BillingMode: billingMode
856
+ }
857
+ }
858
+ }
859
+ }).template
860
+ );
861
+
862
+ // src/iac/packs/dns.ts
863
+ var addDNS = createResourcePack(
864
+ ({
865
+ id,
866
+ hostedZoneId,
867
+ domainName,
868
+ resourceRecords,
869
+ recordType = "A"
870
+ }) => {
871
+ let cft = new SimpleCFT().patch({
872
+ Resources: {
873
+ [id]: {
874
+ Type: "AWS::Route53::RecordSet",
875
+ Properties: {
876
+ HostedZoneId: hostedZoneId,
877
+ Type: recordType,
878
+ Name: domainName,
879
+ ResourceRecords: resourceRecords,
880
+ TTL: "300"
881
+ }
882
+ }
883
+ }
884
+ });
885
+ return cft.template;
886
+ }
887
+ );
888
+
889
+ // src/iac/packs/file-storage.ts
890
+ var addSecureFileStorage = createResourcePack(
891
+ ({
892
+ id,
893
+ bucketName,
894
+ shouldDelete = true,
895
+ blockPublicAccess = true,
896
+ cors = false,
897
+ accessControl = void 0,
898
+ allowACLs = false
899
+ }) => {
900
+ return {
901
+ Resources: {
902
+ [id]: {
903
+ Type: "AWS::S3::Bucket",
904
+ DeletionPolicy: shouldDelete ? "Delete" : "Retain",
905
+ Properties: {
906
+ BucketName: bucketName,
907
+ AccessControl: accessControl,
908
+ OwnershipControls: allowACLs ? {
909
+ Rules: [
910
+ {
911
+ ObjectOwnership: "ObjectWriter"
912
+ }
913
+ ]
914
+ } : void 0,
915
+ CorsConfiguration: typeof cors === "object" ? cors : cors === true ? {
916
+ CorsRules: [
917
+ {
918
+ AllowedHeaders: ["*"],
919
+ AllowedMethods: [
920
+ "GET",
921
+ "PUT",
922
+ "POST",
923
+ "DELETE",
924
+ "HEAD"
925
+ ],
926
+ AllowedOrigins: ["*"]
927
+ }
928
+ ]
929
+ } : void 0,
930
+ BucketEncryption: {
931
+ ServerSideEncryptionConfiguration: [
932
+ {
933
+ ServerSideEncryptionByDefault: {
934
+ SSEAlgorithm: "AES256"
935
+ }
936
+ }
937
+ ]
938
+ },
939
+ PublicAccessBlockConfiguration: blockPublicAccess ? {
940
+ BlockPublicAcls: true,
941
+ BlockPublicPolicy: true,
942
+ IgnorePublicAcls: true,
943
+ RestrictPublicBuckets: true
944
+ } : {
945
+ BlockPublicAcls: false,
946
+ BlockPublicPolicy: false,
947
+ IgnorePublicAcls: false,
948
+ RestrictPublicBuckets: false
949
+ }
950
+ }
951
+ }
952
+ }
953
+ };
954
+ }
955
+ );
956
+
957
+ // src/iac/packs/gateway.ts
958
+ var DEFAULT_AUTH_TYPE = "COGNITO_USER_POOLS";
959
+ var addGateway = createResourcePack(
960
+ ({
961
+ id,
962
+ hostedZoneId,
963
+ domainName,
964
+ certificateArn,
965
+ cloudFunction: {
966
+ id: cloudFunctionId,
967
+ region: cloudFunctionRegion = "${AWS::Region}"
968
+ },
969
+ stageName = "production",
970
+ authorizer,
971
+ deploymentSuffix = ""
972
+ }) => {
973
+ const cloudFunctionUri = {
974
+ "Fn::Sub": `arn:aws:apigateway:${cloudFunctionRegion}:lambda:path/2015-03-31/functions/\${${cloudFunctionId}.Arn}/invocations`
975
+ };
976
+ const {
977
+ scopes: authScopes = ["phone", "email", "openid", "profile"],
978
+ type: authType = "COGNITO_USER_POOLS",
979
+ providerARNs,
980
+ identitySource = "method.request.header.authorization"
981
+ } = !!authorizer && typeof authorizer === "object" ? authorizer : {};
982
+ const authorizerId = `${id}CustomAuthorizer`;
983
+ const authProps = !!authorizer ? {
984
+ AuthorizationScopes: authScopes,
985
+ AuthorizationType: authType === DEFAULT_AUTH_TYPE ? DEFAULT_AUTH_TYPE : "CUSTOM",
986
+ AuthorizerId: {
987
+ Ref: authorizerId
988
+ }
989
+ } : {
990
+ AuthorizationType: "NONE"
991
+ };
992
+ const fullDeploymentId = `${id}GatewayRESTAPIDeployment${deploymentSuffix}`;
993
+ return new SimpleCFT().patch({
994
+ Resources: {
995
+ // REST API
996
+ [id]: {
997
+ Type: "AWS::ApiGateway::RestApi",
998
+ Properties: {
999
+ Name: {
1000
+ "Fn::Sub": `\${AWS::StackName}-${id}GatewayRESTAPI`
1001
+ },
1002
+ EndpointConfiguration: {
1003
+ Types: ["EDGE"]
1004
+ }
1005
+ }
1006
+ },
1007
+ [`${id}GatewayRESTAPIResource`]: {
1008
+ Type: "AWS::ApiGateway::Resource",
1009
+ DependsOn: id,
1010
+ Properties: {
1011
+ ParentId: {
1012
+ "Fn::GetAtt": [id, "RootResourceId"]
1013
+ },
1014
+ PathPart: "{proxy+}",
1015
+ RestApiId: {
1016
+ Ref: id
1017
+ }
1018
+ }
1019
+ },
1020
+ [`${id}GatewayRESTAPIMethod`]: {
1021
+ Type: "AWS::ApiGateway::Method",
1022
+ DependsOn: `${id}GatewayRESTAPIResource`,
1023
+ Properties: {
1024
+ ...authProps,
1025
+ HttpMethod: "ANY",
1026
+ ResourceId: {
1027
+ Ref: `${id}GatewayRESTAPIResource`
1028
+ },
1029
+ RestApiId: {
1030
+ Ref: id
1031
+ },
1032
+ Integration: {
1033
+ Type: "AWS_PROXY",
1034
+ IntegrationHttpMethod: "POST",
1035
+ Uri: cloudFunctionUri
1036
+ }
1037
+ }
1038
+ },
1039
+ [`${id}GatewayRESTAPIRootMethod`]: {
1040
+ Type: "AWS::ApiGateway::Method",
1041
+ DependsOn: `${id}GatewayRESTAPIResource`,
1042
+ Properties: {
1043
+ ...authProps,
1044
+ HttpMethod: "ANY",
1045
+ ResourceId: {
1046
+ "Fn::GetAtt": [id, "RootResourceId"]
1047
+ },
1048
+ RestApiId: {
1049
+ Ref: id
1050
+ },
1051
+ Integration: {
1052
+ Type: "AWS_PROXY",
1053
+ IntegrationHttpMethod: "POST",
1054
+ Uri: cloudFunctionUri
1055
+ }
1056
+ }
1057
+ }
1058
+ }
1059
+ }).patch({
1060
+ Resources: {
1061
+ // CORS
1062
+ [`${id}GatewayRESTAPIOPTIONSMethod`]: {
1063
+ Type: "AWS::ApiGateway::Method",
1064
+ DependsOn: `${id}GatewayRESTAPIResource`,
1065
+ Properties: {
1066
+ AuthorizationType: "NONE",
1067
+ HttpMethod: "OPTIONS",
1068
+ ResourceId: {
1069
+ Ref: `${id}GatewayRESTAPIResource`
1070
+ },
1071
+ RestApiId: {
1072
+ Ref: id
1073
+ },
1074
+ Integration: {
1075
+ Type: "AWS_PROXY",
1076
+ IntegrationHttpMethod: "POST",
1077
+ Uri: cloudFunctionUri
1078
+ }
1079
+ }
1080
+ },
1081
+ [`${id}GatewayRESTAPIRootOPTIONSMethod`]: {
1082
+ Type: "AWS::ApiGateway::Method",
1083
+ DependsOn: `${id}GatewayRESTAPIResource`,
1084
+ Properties: {
1085
+ AuthorizationType: "NONE",
1086
+ HttpMethod: "OPTIONS",
1087
+ ResourceId: {
1088
+ "Fn::GetAtt": [id, "RootResourceId"]
1089
+ },
1090
+ RestApiId: {
1091
+ Ref: id
1092
+ },
1093
+ Integration: {
1094
+ Type: "AWS_PROXY",
1095
+ IntegrationHttpMethod: "POST",
1096
+ Uri: cloudFunctionUri
1097
+ }
1098
+ }
1099
+ },
1100
+ [`${id}GatewayResponseDefault4XX`]: {
1101
+ Type: "AWS::ApiGateway::GatewayResponse",
1102
+ Properties: {
1103
+ ResponseParameters: {
1104
+ // Not authorized, so just allow the current origin by mapping it into the header.
1105
+ "gatewayresponse.header.Access-Control-Allow-Origin": "method.request.header.origin",
1106
+ "gatewayresponse.header.Access-Control-Allow-Credentials": "'true'",
1107
+ "gatewayresponse.header.Access-Control-Allow-Headers": "'*'"
1108
+ },
1109
+ ResponseType: "DEFAULT_4XX",
1110
+ RestApiId: {
1111
+ Ref: id
1112
+ }
1113
+ }
1114
+ }
1115
+ }
1116
+ }).patch({
1117
+ Resources: {
1118
+ // SUPPORTING RESOURCES
1119
+ [fullDeploymentId]: {
1120
+ Type: "AWS::ApiGateway::Deployment",
1121
+ DependsOn: [
1122
+ `${id}GatewayRESTAPIResource`,
1123
+ `${id}GatewayRESTAPIMethod`,
1124
+ `${id}GatewayRESTAPIRootMethod`,
1125
+ id,
1126
+ cloudFunctionId
1127
+ ],
1128
+ Properties: {
1129
+ RestApiId: {
1130
+ Ref: id
1131
+ }
1132
+ }
1133
+ },
1134
+ [`${id}CloudWatch`]: {
1135
+ Type: "AWS::Logs::LogGroup",
1136
+ Properties: {
1137
+ LogGroupName: {
1138
+ "Fn::Sub": `\${AWS::StackName}-${id}GatewayLogs`
1139
+ }
1140
+ }
1141
+ },
1142
+ [`${id}CloudWatchRole`]: {
1143
+ Type: "AWS::IAM::Role",
1144
+ Properties: {
1145
+ AssumeRolePolicyDocument: {
1146
+ Version: "2012-10-17",
1147
+ Statement: [
1148
+ {
1149
+ Effect: "Allow",
1150
+ Principal: {
1151
+ Service: ["apigateway.amazonaws.com"]
1152
+ },
1153
+ Action: "sts:AssumeRole"
1154
+ }
1155
+ ]
1156
+ },
1157
+ Path: "/",
1158
+ ManagedPolicyArns: [
1159
+ "arn:aws:iam::aws:policy/service-role/AmazonAPIGatewayPushToCloudWatchLogs"
1160
+ ]
1161
+ }
1162
+ },
1163
+ [`${id}CloudWatchAccount`]: {
1164
+ Type: "AWS::ApiGateway::Account",
1165
+ Properties: {
1166
+ CloudWatchRoleArn: {
1167
+ "Fn::GetAtt": [`${id}CloudWatchRole`, "Arn"]
1168
+ }
1169
+ }
1170
+ },
1171
+ [`${id}GatewayRESTAPIEnvironment`]: {
1172
+ Type: "AWS::ApiGateway::Stage",
1173
+ DependsOn: [`${id}CloudWatchAccount`, fullDeploymentId],
1174
+ Properties: {
1175
+ AccessLogSetting: {
1176
+ DestinationArn: {
1177
+ "Fn::GetAtt": [`${id}CloudWatch`, "Arn"]
1178
+ },
1179
+ Format: '{"requestId":"$context.requestId","ip":"$context.identity.sourceIp","caller":"$context.identity.caller","user":"$context.identity.user","requestTime":"$context.requestTime","httpMethod":"$context.httpMethod","resourcePath":"$context.resourcePath","status":"$context.status","protocol":"$context.protocol","responseLength":"$context.responseLength","apiGatewayErrorMessage":"$context.error.message"}'
1180
+ },
1181
+ DeploymentId: {
1182
+ Ref: fullDeploymentId
1183
+ },
1184
+ RestApiId: {
1185
+ Ref: id
1186
+ },
1187
+ StageName: stageName
1188
+ }
1189
+ }
1190
+ }
1191
+ }).patch({
1192
+ Resources: {
1193
+ // DNS
1194
+ [`${id}DomainName`]: {
1195
+ Type: "AWS::ApiGateway::DomainName",
1196
+ Properties: {
1197
+ CertificateArn: certificateArn,
1198
+ DomainName: domainName,
1199
+ EndpointConfiguration: {
1200
+ Types: ["EDGE"]
1201
+ }
1202
+ }
1203
+ },
1204
+ [`${id}DomainNameBasePathMapping`]: {
1205
+ Type: "AWS::ApiGateway::BasePathMapping",
1206
+ DependsOn: [
1207
+ id,
1208
+ `${id}GatewayRESTAPIEnvironment`,
1209
+ `${id}DomainName`
1210
+ ],
1211
+ Properties: {
1212
+ DomainName: domainName,
1213
+ RestApiId: {
1214
+ Ref: id
1215
+ },
1216
+ Stage: stageName
1217
+ }
1218
+ },
1219
+ [`${id}Route53Record`]: {
1220
+ Type: "AWS::Route53::RecordSet",
1221
+ DependsOn: `${id}DomainName`,
1222
+ Properties: {
1223
+ HostedZoneId: hostedZoneId,
1224
+ Type: "A",
1225
+ Name: {
1226
+ "Fn::Sub": [
1227
+ "${DomainName}.",
1228
+ {
1229
+ DomainName: domainName
1230
+ }
1231
+ ]
1232
+ },
1233
+ AliasTarget: {
1234
+ HostedZoneId: "Z2FDTNDATAQYW2",
1235
+ DNSName: {
1236
+ "Fn::Sub": [
1237
+ "${DomainName}.",
1238
+ {
1239
+ DomainName: {
1240
+ "Fn::GetAtt": [
1241
+ `${id}DomainName`,
1242
+ "DistributionDomainName"
1243
+ ]
1244
+ }
1245
+ }
1246
+ ]
1247
+ }
1248
+ }
1249
+ }
1250
+ }
1251
+ }
1252
+ }).patch({
1253
+ Resources: {
1254
+ // PERMISSIONS
1255
+ [`${id}CloudFunctionANYResourcePermission`]: {
1256
+ Type: "AWS::Lambda::Permission",
1257
+ Properties: {
1258
+ Action: "lambda:InvokeFunction",
1259
+ Principal: "apigateway.amazonaws.com",
1260
+ FunctionName: {
1261
+ "Fn::GetAtt": [cloudFunctionId, "Arn"]
1262
+ },
1263
+ SourceArn: {
1264
+ "Fn::Sub": [
1265
+ "arn:aws:execute-api:${AWS::Region}:${AWS::AccountId}:${__ApiId__}/${__Stage__}/*/*",
1266
+ {
1267
+ __Stage__: stageName,
1268
+ __ApiId__: {
1269
+ Ref: id
1270
+ }
1271
+ }
1272
+ ]
1273
+ }
1274
+ }
1275
+ }
1276
+ }
1277
+ }).patch(
1278
+ !!authorizer ? {
1279
+ Resources: {
1280
+ // AUTHORIZER
1281
+ [`${id}CustomAuthorizer`]: {
1282
+ Type: "AWS::ApiGateway::Authorizer",
1283
+ Properties: {
1284
+ IdentitySource: identitySource,
1285
+ Name: `${id}CustomAuthorizer`,
1286
+ ProviderARNs: providerARNs,
1287
+ RestApiId: {
1288
+ Ref: id
1289
+ },
1290
+ Type: "COGNITO_USER_POOLS"
1291
+ }
1292
+ }
1293
+ }
1294
+ } : {}
1295
+ ).template;
1296
+ }
1297
+ );
1298
+
1299
+ // src/iac/packs/repo.ts
1300
+ var addRepo = createResourcePack(
1301
+ ({
1302
+ repoOwnerParameterName,
1303
+ repoNameParameterName,
1304
+ repoBranchParameterName,
1305
+ repoTokenParameterName
1306
+ }) => new SimpleCFT().addParameterGroup({
1307
+ Label: "Repository",
1308
+ Parameters: {
1309
+ [repoOwnerParameterName]: {
1310
+ Label: "RepoOwner",
1311
+ Type: "String",
1312
+ Description: "The owner of the repository"
1313
+ },
1314
+ [repoNameParameterName]: {
1315
+ Label: "RepoName",
1316
+ Type: "String",
1317
+ Description: "The name of the repository"
1318
+ },
1319
+ [repoBranchParameterName]: {
1320
+ Label: "RepoBranch",
1321
+ Type: "String",
1322
+ Description: "The branch of the repository"
1323
+ },
1324
+ [repoTokenParameterName]: {
1325
+ Label: "RepoToken",
1326
+ Type: "String",
1327
+ Description: "The token of the repository",
1328
+ NoEcho: true
1329
+ }
1330
+ }
1331
+ }).template
1332
+ );
1333
+
1334
+ // src/iac/packs/ssl-certificate.ts
1335
+ var addSSLCertificate = createResourcePack(
1336
+ ({
1337
+ id,
1338
+ domainName,
1339
+ hostedZoneId,
1340
+ includeWildCard = true
1341
+ }) => ({
1342
+ Resources: {
1343
+ [id]: {
1344
+ Type: "AWS::CertificateManager::Certificate",
1345
+ Properties: {
1346
+ DomainName: domainName,
1347
+ ValidationMethod: "DNS",
1348
+ DomainValidationOptions: [
1349
+ {
1350
+ DomainName: domainName,
1351
+ HostedZoneId: hostedZoneId
1352
+ }
1353
+ ],
1354
+ SubjectAlternativeNames: includeWildCard ? [
1355
+ {
1356
+ "Fn::Sub": [
1357
+ "*.${BaseDomainName}",
1358
+ {
1359
+ BaseDomainName: domainName
1360
+ }
1361
+ ]
1362
+ }
1363
+ ] : void 0
1364
+ }
1365
+ }
1366
+ }
1367
+ })
1368
+ );
1369
+
1370
+ export { COMMAND_HELPERS, DEFAULT_AUTH_TYPE, DEFAULT_BUILD_PIPELINE_REPO_PROVIDER, PLACEHOLDER_FUNCTION_CODE, addAuth, addBuildPipeline, addCDN, addCloudFunction, addDNS, addDatabase, addGateway, addRepo, addSSLCertificate, addSecureFileStorage, createBuildSpec };