@stacksjs/ts-cloud-core 0.1.3 → 0.1.7

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 (458) hide show
  1. package/README.md +98 -13
  2. package/dist/advanced-features.test.d.ts +0 -0
  3. package/dist/aws/cloudformation.d.ts +69 -0
  4. package/dist/aws/cloudfront.d.ts +21 -0
  5. package/dist/aws/credentials.d.ts +66 -0
  6. package/dist/aws/credentials.test.d.ts +0 -0
  7. package/{src/aws/index.ts → dist/aws/index.d.ts} +37 -51
  8. package/dist/aws/s3.d.ts +130 -0
  9. package/dist/aws/s3.test.d.ts +0 -0
  10. package/dist/aws/signature.d.ts +101 -0
  11. package/dist/aws/signature.test.d.ts +0 -0
  12. package/dist/backup/disaster-recovery.d.ts +98 -0
  13. package/dist/backup/disaster-recovery.test.d.ts +0 -0
  14. package/{src/backup/index.ts → dist/backup/index.d.ts} +10 -20
  15. package/dist/backup/manager.d.ts +112 -0
  16. package/dist/backup/manager.test.d.ts +0 -0
  17. package/dist/cicd/circleci.d.ts +47 -0
  18. package/dist/cicd/github-actions.d.ts +55 -0
  19. package/dist/cicd/gitlab-ci.d.ts +46 -0
  20. package/dist/cicd/index.d.ts +3 -0
  21. package/dist/cli/history.d.ts +66 -0
  22. package/dist/cli/index.d.ts +5 -0
  23. package/dist/cli/progress.d.ts +97 -0
  24. package/dist/cli/repl.d.ts +76 -0
  25. package/dist/cli/suggestions.d.ts +67 -0
  26. package/dist/cli/table.d.ts +70 -0
  27. package/dist/cli/table.test.d.ts +0 -0
  28. package/dist/cloudformation/builder.d.ts +59 -0
  29. package/dist/cloudformation/builder.test.d.ts +0 -0
  30. package/dist/cloudformation/builders/api-gateway.d.ts +30 -0
  31. package/dist/cloudformation/builders/cache.d.ts +35 -0
  32. package/dist/cloudformation/builders/cdn.d.ts +34 -0
  33. package/dist/cloudformation/builders/compute.d.ts +66 -0
  34. package/dist/cloudformation/builders/database.d.ts +61 -0
  35. package/dist/cloudformation/builders/functions.d.ts +32 -0
  36. package/dist/cloudformation/builders/messaging.d.ts +17 -0
  37. package/dist/cloudformation/builders/monitoring.d.ts +36 -0
  38. package/dist/cloudformation/builders/network.d.ts +14 -0
  39. package/dist/cloudformation/builders/queue.d.ts +8 -0
  40. package/dist/cloudformation/builders/security.d.ts +31 -0
  41. package/dist/cloudformation/builders/storage.d.ts +8 -0
  42. package/dist/cloudformation/index.d.ts +24 -0
  43. package/dist/cloudformation/types.d.ts +132 -0
  44. package/dist/compliance/aws-config.d.ts +88 -0
  45. package/dist/compliance/cloudtrail.d.ts +96 -0
  46. package/dist/compliance/compliance.test.d.ts +0 -0
  47. package/dist/compliance/guardduty.d.ts +110 -0
  48. package/{src/compliance/index.ts → dist/compliance/index.d.ts} +20 -36
  49. package/dist/compliance/security-hub.d.ts +110 -0
  50. package/dist/containers/build-optimization.d.ts +110 -0
  51. package/dist/containers/containers.test.d.ts +0 -0
  52. package/dist/containers/image-scanning.d.ts +96 -0
  53. package/dist/containers/index.d.ts +4 -0
  54. package/dist/containers/registry.d.ts +99 -0
  55. package/dist/containers/service-mesh.d.ts +206 -0
  56. package/dist/database/database.test.d.ts +0 -0
  57. package/dist/database/index.d.ts +4 -0
  58. package/dist/database/migrations.d.ts +102 -0
  59. package/dist/database/performance.d.ts +168 -0
  60. package/dist/database/replicas.d.ts +146 -0
  61. package/dist/database/users.d.ts +102 -0
  62. package/dist/dependency-graph.d.ts +19 -0
  63. package/dist/deployment/ab-testing.d.ts +114 -0
  64. package/dist/deployment/blue-green.d.ts +98 -0
  65. package/dist/deployment/canary.d.ts +103 -0
  66. package/dist/deployment/deployment.test.d.ts +0 -0
  67. package/{src/deployment/index.ts → dist/deployment/index.d.ts} +20 -36
  68. package/dist/deployment/progressive.d.ts +34 -0
  69. package/dist/dns/dns.test.d.ts +0 -0
  70. package/dist/dns/dnssec.d.ts +75 -0
  71. package/dist/dns/index.d.ts +3 -0
  72. package/dist/dns/resolver.d.ts +150 -0
  73. package/dist/dns/routing.d.ts +217 -0
  74. package/dist/email/advanced/analytics.d.ts +78 -0
  75. package/dist/email/advanced/index.d.ts +7 -0
  76. package/dist/email/advanced/rules.d.ts +60 -0
  77. package/dist/email/advanced/scheduling.d.ts +63 -0
  78. package/dist/email/advanced/search.d.ts +76 -0
  79. package/dist/email/advanced/shared-mailboxes.d.ts +66 -0
  80. package/dist/email/advanced/templates.d.ts +39 -0
  81. package/dist/email/advanced/threading.d.ts +53 -0
  82. package/dist/email/analytics.d.ts +144 -0
  83. package/dist/email/bounce-handling.d.ts +120 -0
  84. package/dist/email/email.test.d.ts +0 -0
  85. package/dist/email/handlers/__tests__/inbound.test.d.ts +0 -0
  86. package/dist/email/handlers/__tests__/outbound.test.d.ts +0 -0
  87. package/{src/email/handlers/converter.ts → dist/email/handlers/converter.d.ts} +3 -5
  88. package/{src/email/handlers/feedback.ts → dist/email/handlers/feedback.d.ts} +3 -5
  89. package/{src/email/handlers/inbound.ts → dist/email/handlers/inbound.d.ts} +3 -5
  90. package/{src/email/handlers/outbound.ts → dist/email/handlers/outbound.d.ts} +3 -5
  91. package/dist/email/index.d.ts +6 -0
  92. package/dist/email/reputation.d.ts +97 -0
  93. package/dist/email/templates.d.ts +82 -0
  94. package/dist/errors/index.d.ts +186 -0
  95. package/dist/errors/index.test.d.ts +0 -0
  96. package/dist/health-checks/index.d.ts +35 -0
  97. package/dist/index.d.ts +256 -0
  98. package/dist/index.js +63499 -0
  99. package/dist/intrinsic-functions.d.ts +37 -0
  100. package/dist/lambda/concurrency.d.ts +98 -0
  101. package/dist/lambda/destinations.d.ts +99 -0
  102. package/dist/lambda/dlq.d.ts +109 -0
  103. package/dist/lambda/index.d.ts +6 -0
  104. package/dist/lambda/lambda.test.d.ts +0 -0
  105. package/dist/lambda/layers.d.ts +81 -0
  106. package/dist/lambda/versions.d.ts +91 -0
  107. package/dist/lambda/vpc.d.ts +116 -0
  108. package/dist/local/config.d.ts +44 -0
  109. package/dist/local/index.d.ts +2 -0
  110. package/dist/local/mock-aws.d.ts +60 -0
  111. package/dist/modules/ai.d.ts +47 -0
  112. package/dist/modules/api.d.ts +98 -0
  113. package/dist/modules/auth.d.ts +165 -0
  114. package/dist/modules/cache.d.ts +73 -0
  115. package/dist/modules/cdn.d.ts +125 -0
  116. package/dist/modules/communication.d.ts +98 -0
  117. package/dist/modules/compute.d.ts +309 -0
  118. package/dist/modules/database.d.ts +105 -0
  119. package/dist/modules/deployment.d.ts +181 -0
  120. package/dist/modules/dns.d.ts +45 -0
  121. package/dist/modules/email.d.ts +217 -0
  122. package/dist/modules/filesystem.d.ts +94 -0
  123. package/dist/modules/index.d.ts +27 -0
  124. package/dist/modules/messaging.d.ts +108 -0
  125. package/dist/modules/monitoring.d.ts +127 -0
  126. package/dist/modules/network.d.ts +102 -0
  127. package/dist/modules/parameter-store.d.ts +33 -0
  128. package/dist/modules/permissions.d.ts +132 -0
  129. package/dist/modules/phone.d.ts +80 -0
  130. package/dist/modules/queue.d.ts +210 -0
  131. package/dist/modules/redirects.d.ts +59 -0
  132. package/dist/modules/registry.d.ts +73 -0
  133. package/dist/modules/search.d.ts +56 -0
  134. package/dist/modules/secrets.d.ts +80 -0
  135. package/dist/modules/security.d.ts +100 -0
  136. package/dist/modules/sms.d.ts +52 -0
  137. package/dist/modules/storage.d.ts +160 -0
  138. package/dist/modules/workflow.d.ts +205 -0
  139. package/dist/multi-account/config.d.ts +315 -0
  140. package/dist/multi-account/index.d.ts +2 -0
  141. package/dist/multi-account/manager.d.ts +100 -0
  142. package/dist/multi-region/cross-region.d.ts +114 -0
  143. package/dist/multi-region/index.d.ts +3 -0
  144. package/dist/multi-region/manager.d.ts +72 -0
  145. package/dist/multi-region/regions.d.ts +98 -0
  146. package/dist/network-security/index.d.ts +39 -0
  147. package/dist/observability/index.d.ts +4 -0
  148. package/dist/observability/logs.d.ts +129 -0
  149. package/dist/observability/metrics.d.ts +153 -0
  150. package/dist/observability/observability.test.d.ts +0 -0
  151. package/dist/observability/synthetics.d.ts +146 -0
  152. package/dist/observability/xray.d.ts +129 -0
  153. package/dist/phone/advanced/analytics.d.ts +66 -0
  154. package/dist/phone/advanced/callbacks.d.ts +50 -0
  155. package/dist/phone/advanced/index.d.ts +4 -0
  156. package/dist/phone/advanced/ivr-builder.d.ts +83 -0
  157. package/dist/phone/advanced/recording.d.ts +48 -0
  158. package/dist/phone/handlers/__tests__/incoming-call.test.d.ts +0 -0
  159. package/{src/phone/handlers/incoming-call.ts → dist/phone/handlers/incoming-call.d.ts} +3 -5
  160. package/{src/phone/handlers/missed-call.ts → dist/phone/handlers/missed-call.d.ts} +3 -5
  161. package/{src/phone/handlers/voicemail.ts → dist/phone/handlers/voicemail.d.ts} +3 -5
  162. package/dist/phone/index.d.ts +2 -0
  163. package/dist/presets/api-backend.d.ts +11 -0
  164. package/dist/presets/data-pipeline.d.ts +11 -0
  165. package/{src/presets/extend.ts → dist/presets/extend.d.ts} +11 -114
  166. package/dist/presets/extend.test.d.ts +0 -0
  167. package/dist/presets/fullstack-app.d.ts +12 -0
  168. package/dist/presets/index.d.ts +24 -0
  169. package/dist/presets/jamstack.d.ts +12 -0
  170. package/dist/presets/microservices.d.ts +18 -0
  171. package/dist/presets/ml-api.d.ts +13 -0
  172. package/dist/presets/nodejs-server.d.ts +14 -0
  173. package/dist/presets/nodejs-serverless.d.ts +14 -0
  174. package/dist/presets/realtime-app.d.ts +11 -0
  175. package/dist/presets/static-site.d.ts +12 -0
  176. package/dist/presets/traditional-web-app.d.ts +16 -0
  177. package/dist/presets/wordpress.d.ts +12 -0
  178. package/dist/preview/github.d.ts +32 -0
  179. package/dist/preview/github.test.d.ts +0 -0
  180. package/{src/preview/index.ts → dist/preview/index.d.ts} +16 -26
  181. package/dist/preview/manager.d.ts +58 -0
  182. package/dist/preview/manager.test.d.ts +0 -0
  183. package/dist/preview/notifications.d.ts +55 -0
  184. package/dist/preview/notifications.test.d.ts +0 -0
  185. package/dist/queue/batch-processing.d.ts +87 -0
  186. package/dist/queue/dlq-monitoring.d.ts +95 -0
  187. package/dist/queue/fifo.d.ts +90 -0
  188. package/dist/queue/index.d.ts +4 -0
  189. package/dist/queue/management.d.ts +105 -0
  190. package/dist/queue/queue.test.d.ts +0 -0
  191. package/dist/resource-mgmt/index.d.ts +29 -0
  192. package/dist/resource-naming.d.ts +26 -0
  193. package/dist/s3/index.d.ts +173 -0
  194. package/dist/schema/index.d.ts +9 -0
  195. package/dist/security/certificate-manager.d.ts +121 -0
  196. package/dist/security/index.d.ts +4 -0
  197. package/dist/security/scanning.d.ts +147 -0
  198. package/dist/security/secrets-manager.d.ts +144 -0
  199. package/dist/security/secrets-rotation.d.ts +115 -0
  200. package/dist/security/security.test.d.ts +0 -0
  201. package/dist/sms/advanced/ab-testing.d.ts +54 -0
  202. package/dist/sms/advanced/analytics.d.ts +56 -0
  203. package/dist/sms/advanced/campaigns.d.ts +82 -0
  204. package/dist/sms/advanced/chatbot.d.ts +48 -0
  205. package/dist/sms/advanced/index.d.ts +6 -0
  206. package/dist/sms/advanced/link-tracking.d.ts +42 -0
  207. package/dist/sms/advanced/mms.d.ts +35 -0
  208. package/dist/sms/handlers/__tests__/send.test.d.ts +0 -0
  209. package/{src/sms/handlers/delivery-status.ts → dist/sms/handlers/delivery-status.d.ts} +3 -5
  210. package/{src/sms/handlers/receive.ts → dist/sms/handlers/receive.d.ts} +3 -5
  211. package/{src/sms/handlers/send.ts → dist/sms/handlers/send.d.ts} +3 -5
  212. package/dist/sms/index.d.ts +2 -0
  213. package/dist/stack-diff.d.ts +34 -0
  214. package/dist/static-site/index.d.ts +49 -0
  215. package/dist/template-builder.d.ts +14 -0
  216. package/dist/template-validator.d.ts +24 -0
  217. package/dist/utils/cache.d.ts +55 -0
  218. package/dist/utils/diff.d.ts +48 -0
  219. package/dist/utils/hash.d.ts +58 -0
  220. package/dist/utils/index.d.ts +4 -0
  221. package/dist/utils/parallel.d.ts +60 -0
  222. package/dist/validators/credentials.d.ts +23 -0
  223. package/dist/validators/credentials.test.d.ts +0 -0
  224. package/dist/validators/quotas.d.ts +60 -0
  225. package/dist/validators/quotas.test.d.ts +0 -0
  226. package/package.json +13 -4
  227. package/src/advanced-features.test.ts +0 -465
  228. package/src/aws/cloudformation.ts +0 -421
  229. package/src/aws/cloudfront.ts +0 -158
  230. package/src/aws/credentials.test.ts +0 -132
  231. package/src/aws/credentials.ts +0 -545
  232. package/src/aws/s3.test.ts +0 -188
  233. package/src/aws/s3.ts +0 -1088
  234. package/src/aws/signature.test.ts +0 -670
  235. package/src/aws/signature.ts +0 -1155
  236. package/src/backup/disaster-recovery.test.ts +0 -726
  237. package/src/backup/disaster-recovery.ts +0 -500
  238. package/src/backup/manager.test.ts +0 -498
  239. package/src/backup/manager.ts +0 -432
  240. package/src/cicd/circleci.ts +0 -430
  241. package/src/cicd/github-actions.ts +0 -424
  242. package/src/cicd/gitlab-ci.ts +0 -255
  243. package/src/cicd/index.ts +0 -8
  244. package/src/cli/history.ts +0 -396
  245. package/src/cli/index.ts +0 -10
  246. package/src/cli/progress.ts +0 -458
  247. package/src/cli/repl.ts +0 -454
  248. package/src/cli/suggestions.ts +0 -327
  249. package/src/cli/table.test.ts +0 -319
  250. package/src/cli/table.ts +0 -332
  251. package/src/cloudformation/builder.test.ts +0 -327
  252. package/src/cloudformation/builder.ts +0 -378
  253. package/src/cloudformation/builders/api-gateway.ts +0 -449
  254. package/src/cloudformation/builders/cache.ts +0 -334
  255. package/src/cloudformation/builders/cdn.ts +0 -278
  256. package/src/cloudformation/builders/compute.ts +0 -485
  257. package/src/cloudformation/builders/database.ts +0 -392
  258. package/src/cloudformation/builders/functions.ts +0 -343
  259. package/src/cloudformation/builders/messaging.ts +0 -140
  260. package/src/cloudformation/builders/monitoring.ts +0 -300
  261. package/src/cloudformation/builders/network.ts +0 -264
  262. package/src/cloudformation/builders/queue.ts +0 -147
  263. package/src/cloudformation/builders/security.ts +0 -399
  264. package/src/cloudformation/builders/storage.ts +0 -285
  265. package/src/cloudformation/index.ts +0 -30
  266. package/src/cloudformation/types.ts +0 -173
  267. package/src/compliance/aws-config.ts +0 -543
  268. package/src/compliance/cloudtrail.ts +0 -376
  269. package/src/compliance/compliance.test.ts +0 -423
  270. package/src/compliance/guardduty.ts +0 -446
  271. package/src/compliance/security-hub.ts +0 -456
  272. package/src/containers/build-optimization.ts +0 -416
  273. package/src/containers/containers.test.ts +0 -508
  274. package/src/containers/image-scanning.ts +0 -360
  275. package/src/containers/index.ts +0 -9
  276. package/src/containers/registry.ts +0 -293
  277. package/src/containers/service-mesh.ts +0 -520
  278. package/src/database/database.test.ts +0 -762
  279. package/src/database/index.ts +0 -9
  280. package/src/database/migrations.ts +0 -444
  281. package/src/database/performance.ts +0 -528
  282. package/src/database/replicas.ts +0 -534
  283. package/src/database/users.ts +0 -494
  284. package/src/dependency-graph.ts +0 -143
  285. package/src/deployment/ab-testing.ts +0 -582
  286. package/src/deployment/blue-green.ts +0 -452
  287. package/src/deployment/canary.ts +0 -500
  288. package/src/deployment/deployment.test.ts +0 -526
  289. package/src/deployment/progressive.ts +0 -62
  290. package/src/dns/dns.test.ts +0 -641
  291. package/src/dns/dnssec.ts +0 -315
  292. package/src/dns/index.ts +0 -8
  293. package/src/dns/resolver.ts +0 -496
  294. package/src/dns/routing.ts +0 -593
  295. package/src/email/advanced/analytics.ts +0 -445
  296. package/src/email/advanced/index.ts +0 -11
  297. package/src/email/advanced/rules.ts +0 -465
  298. package/src/email/advanced/scheduling.ts +0 -352
  299. package/src/email/advanced/search.ts +0 -412
  300. package/src/email/advanced/shared-mailboxes.ts +0 -404
  301. package/src/email/advanced/templates.ts +0 -455
  302. package/src/email/advanced/threading.ts +0 -281
  303. package/src/email/analytics.ts +0 -467
  304. package/src/email/bounce-handling.ts +0 -425
  305. package/src/email/email.test.ts +0 -431
  306. package/src/email/handlers/__tests__/inbound.test.ts +0 -38
  307. package/src/email/handlers/__tests__/outbound.test.ts +0 -37
  308. package/src/email/index.ts +0 -15
  309. package/src/email/reputation.ts +0 -303
  310. package/src/email/templates.ts +0 -352
  311. package/src/errors/index.test.ts +0 -434
  312. package/src/errors/index.ts +0 -416
  313. package/src/health-checks/index.ts +0 -40
  314. package/src/index.ts +0 -360
  315. package/src/intrinsic-functions.ts +0 -118
  316. package/src/lambda/concurrency.ts +0 -330
  317. package/src/lambda/destinations.ts +0 -345
  318. package/src/lambda/dlq.ts +0 -425
  319. package/src/lambda/index.ts +0 -11
  320. package/src/lambda/lambda.test.ts +0 -840
  321. package/src/lambda/layers.ts +0 -263
  322. package/src/lambda/versions.ts +0 -376
  323. package/src/lambda/vpc.ts +0 -399
  324. package/src/local/config.ts +0 -114
  325. package/src/local/index.ts +0 -6
  326. package/src/local/mock-aws.ts +0 -351
  327. package/src/modules/ai.ts +0 -340
  328. package/src/modules/api.ts +0 -478
  329. package/src/modules/auth.ts +0 -805
  330. package/src/modules/cache.ts +0 -417
  331. package/src/modules/cdn.ts +0 -1062
  332. package/src/modules/communication.ts +0 -1094
  333. package/src/modules/compute.ts +0 -3348
  334. package/src/modules/database.ts +0 -554
  335. package/src/modules/deployment.ts +0 -1079
  336. package/src/modules/dns.ts +0 -337
  337. package/src/modules/email.ts +0 -1538
  338. package/src/modules/filesystem.ts +0 -515
  339. package/src/modules/index.ts +0 -32
  340. package/src/modules/messaging.ts +0 -486
  341. package/src/modules/monitoring.ts +0 -2086
  342. package/src/modules/network.ts +0 -664
  343. package/src/modules/parameter-store.ts +0 -325
  344. package/src/modules/permissions.ts +0 -1081
  345. package/src/modules/phone.ts +0 -494
  346. package/src/modules/queue.ts +0 -1260
  347. package/src/modules/redirects.ts +0 -464
  348. package/src/modules/registry.ts +0 -699
  349. package/src/modules/search.ts +0 -401
  350. package/src/modules/secrets.ts +0 -416
  351. package/src/modules/security.ts +0 -731
  352. package/src/modules/sms.ts +0 -389
  353. package/src/modules/storage.ts +0 -1120
  354. package/src/modules/workflow.ts +0 -680
  355. package/src/multi-account/config.ts +0 -521
  356. package/src/multi-account/index.ts +0 -7
  357. package/src/multi-account/manager.ts +0 -427
  358. package/src/multi-region/cross-region.ts +0 -410
  359. package/src/multi-region/index.ts +0 -8
  360. package/src/multi-region/manager.ts +0 -483
  361. package/src/multi-region/regions.ts +0 -435
  362. package/src/network-security/index.ts +0 -48
  363. package/src/observability/index.ts +0 -9
  364. package/src/observability/logs.ts +0 -522
  365. package/src/observability/metrics.ts +0 -460
  366. package/src/observability/observability.test.ts +0 -782
  367. package/src/observability/synthetics.ts +0 -568
  368. package/src/observability/xray.ts +0 -358
  369. package/src/phone/advanced/analytics.ts +0 -349
  370. package/src/phone/advanced/callbacks.ts +0 -428
  371. package/src/phone/advanced/index.ts +0 -8
  372. package/src/phone/advanced/ivr-builder.ts +0 -504
  373. package/src/phone/advanced/recording.ts +0 -310
  374. package/src/phone/handlers/__tests__/incoming-call.test.ts +0 -40
  375. package/src/phone/index.ts +0 -9
  376. package/src/presets/api-backend.ts +0 -134
  377. package/src/presets/data-pipeline.ts +0 -204
  378. package/src/presets/extend.test.ts +0 -295
  379. package/src/presets/fullstack-app.ts +0 -144
  380. package/src/presets/index.ts +0 -27
  381. package/src/presets/jamstack.ts +0 -135
  382. package/src/presets/microservices.ts +0 -167
  383. package/src/presets/ml-api.ts +0 -208
  384. package/src/presets/nodejs-server.ts +0 -104
  385. package/src/presets/nodejs-serverless.ts +0 -114
  386. package/src/presets/realtime-app.ts +0 -184
  387. package/src/presets/static-site.ts +0 -64
  388. package/src/presets/traditional-web-app.ts +0 -339
  389. package/src/presets/wordpress.ts +0 -138
  390. package/src/preview/github.test.ts +0 -249
  391. package/src/preview/github.ts +0 -297
  392. package/src/preview/manager.test.ts +0 -440
  393. package/src/preview/manager.ts +0 -326
  394. package/src/preview/notifications.test.ts +0 -582
  395. package/src/preview/notifications.ts +0 -341
  396. package/src/queue/batch-processing.ts +0 -402
  397. package/src/queue/dlq-monitoring.ts +0 -402
  398. package/src/queue/fifo.ts +0 -342
  399. package/src/queue/index.ts +0 -9
  400. package/src/queue/management.ts +0 -428
  401. package/src/queue/queue.test.ts +0 -429
  402. package/src/resource-mgmt/index.ts +0 -39
  403. package/src/resource-naming.ts +0 -62
  404. package/src/s3/index.ts +0 -523
  405. package/src/schema/cloud-config.schema.json +0 -554
  406. package/src/schema/index.ts +0 -68
  407. package/src/security/certificate-manager.ts +0 -492
  408. package/src/security/index.ts +0 -9
  409. package/src/security/scanning.ts +0 -545
  410. package/src/security/secrets-manager.ts +0 -476
  411. package/src/security/secrets-rotation.ts +0 -456
  412. package/src/security/security.test.ts +0 -738
  413. package/src/sms/advanced/ab-testing.ts +0 -389
  414. package/src/sms/advanced/analytics.ts +0 -336
  415. package/src/sms/advanced/campaigns.ts +0 -523
  416. package/src/sms/advanced/chatbot.ts +0 -224
  417. package/src/sms/advanced/index.ts +0 -10
  418. package/src/sms/advanced/link-tracking.ts +0 -248
  419. package/src/sms/advanced/mms.ts +0 -308
  420. package/src/sms/handlers/__tests__/send.test.ts +0 -40
  421. package/src/sms/index.ts +0 -9
  422. package/src/stack-diff.ts +0 -389
  423. package/src/static-site/index.ts +0 -85
  424. package/src/template-builder.ts +0 -110
  425. package/src/template-validator.ts +0 -574
  426. package/src/utils/cache.ts +0 -291
  427. package/src/utils/diff.ts +0 -269
  428. package/src/utils/hash.ts +0 -227
  429. package/src/utils/index.ts +0 -8
  430. package/src/utils/parallel.ts +0 -294
  431. package/src/validators/credentials.test.ts +0 -274
  432. package/src/validators/credentials.ts +0 -233
  433. package/src/validators/quotas.test.ts +0 -434
  434. package/src/validators/quotas.ts +0 -217
  435. package/test/ai.test.ts +0 -327
  436. package/test/api.test.ts +0 -511
  437. package/test/auth.test.ts +0 -632
  438. package/test/cache.test.ts +0 -406
  439. package/test/cdn.test.ts +0 -247
  440. package/test/compute.test.ts +0 -861
  441. package/test/database.test.ts +0 -523
  442. package/test/deployment.test.ts +0 -499
  443. package/test/dns.test.ts +0 -270
  444. package/test/email.test.ts +0 -439
  445. package/test/filesystem.test.ts +0 -382
  446. package/test/integration.test.ts +0 -350
  447. package/test/messaging.test.ts +0 -514
  448. package/test/monitoring.test.ts +0 -634
  449. package/test/network.test.ts +0 -425
  450. package/test/permissions.test.ts +0 -488
  451. package/test/queue.test.ts +0 -484
  452. package/test/registry.test.ts +0 -306
  453. package/test/security.test.ts +0 -462
  454. package/test/storage.test.ts +0 -463
  455. package/test/template-validator.test.ts +0 -559
  456. package/test/workflow.test.ts +0 -592
  457. package/tsconfig.json +0 -16
  458. package/tsconfig.tsbuildinfo +0 -1
package/test/auth.test.ts DELETED
@@ -1,632 +0,0 @@
1
- import { describe, expect, test } from 'bun:test'
2
- import { Auth } from '../src/modules/auth'
3
- import { TemplateBuilder } from '../src/template-builder'
4
- import type { EnvironmentType } from '@stacksjs/ts-cloud-types'
5
-
6
- const slug = 'test-app'
7
- const environment: EnvironmentType = 'development'
8
-
9
- describe('auth Module - User Pool', () => {
10
- test('should create a basic user pool', () => {
11
- const { userPool, logicalId } = Auth.createUserPool({
12
- slug,
13
- environment,
14
- })
15
-
16
- expect(userPool.Type).toBe('AWS::Cognito::UserPool')
17
- expect(userPool.Properties?.UserPoolName).toContain('test-app')
18
- expect(logicalId).toBeTruthy()
19
- })
20
-
21
- test('should create a user pool with custom name', () => {
22
- const { userPool } = Auth.createUserPool({
23
- slug,
24
- environment,
25
- userPoolName: 'my-custom-pool',
26
- })
27
-
28
- expect(userPool.Properties?.UserPoolName).toBe('my-custom-pool')
29
- })
30
-
31
- test('should create a user pool with alias attributes', () => {
32
- const { userPool } = Auth.createUserPool({
33
- slug,
34
- environment,
35
- aliasAttributes: ['email', 'phone_number'],
36
- })
37
-
38
- expect(userPool.Properties?.UsernameAttributes).toEqual(['email', 'phone_number'])
39
- })
40
-
41
- test('should create a user pool with auto-verified attributes', () => {
42
- const { userPool } = Auth.createUserPool({
43
- slug,
44
- environment,
45
- autoVerifiedAttributes: ['email'],
46
- })
47
-
48
- expect(userPool.Properties?.AutoVerifiedAttributes).toEqual(['email'])
49
- })
50
-
51
- test('should create a user pool with password policy', () => {
52
- const { userPool } = Auth.createUserPool({
53
- slug,
54
- environment,
55
- passwordPolicy: {
56
- minimumLength: 12,
57
- requireLowercase: true,
58
- requireUppercase: true,
59
- requireNumbers: true,
60
- requireSymbols: true,
61
- temporaryPasswordValidityDays: 7,
62
- },
63
- })
64
-
65
- expect(userPool.Properties?.Policies?.PasswordPolicy?.MinimumLength).toBe(12)
66
- expect(userPool.Properties?.Policies?.PasswordPolicy?.RequireLowercase).toBe(true)
67
- expect(userPool.Properties?.Policies?.PasswordPolicy?.RequireUppercase).toBe(true)
68
- expect(userPool.Properties?.Policies?.PasswordPolicy?.RequireNumbers).toBe(true)
69
- expect(userPool.Properties?.Policies?.PasswordPolicy?.RequireSymbols).toBe(true)
70
- })
71
-
72
- test('should create a user pool with MFA configuration', () => {
73
- const { userPool } = Auth.createUserPool({
74
- slug,
75
- environment,
76
- mfaConfiguration: 'OPTIONAL',
77
- })
78
-
79
- expect(userPool.Properties?.MfaConfiguration).toBe('OPTIONAL')
80
- })
81
-
82
- test('should create a user pool with email configuration', () => {
83
- const { userPool } = Auth.createUserPool({
84
- slug,
85
- environment,
86
- emailConfiguration: {
87
- emailSendingAccount: 'DEVELOPER',
88
- from: 'noreply@example.com',
89
- replyToEmailAddress: 'support@example.com',
90
- sourceArn: 'arn:aws:ses:us-east-1:123456789012:identity/example.com',
91
- },
92
- })
93
-
94
- expect(userPool.Properties?.EmailConfiguration?.EmailSendingAccount).toBe('DEVELOPER')
95
- expect(userPool.Properties?.EmailConfiguration?.From).toBe('noreply@example.com')
96
- expect(userPool.Properties?.EmailConfiguration?.ReplyToEmailAddress).toBe('support@example.com')
97
- })
98
-
99
- test('should create a user pool with Lambda triggers', () => {
100
- const { userPool } = Auth.createUserPool({
101
- slug,
102
- environment,
103
- lambdaTriggers: {
104
- preSignUp: 'arn:aws:lambda:us-east-1:123456789012:function:pre-signup',
105
- postConfirmation: 'arn:aws:lambda:us-east-1:123456789012:function:post-confirmation',
106
- },
107
- })
108
-
109
- expect(userPool.Properties?.LambdaConfig?.PreSignUp).toBe('arn:aws:lambda:us-east-1:123456789012:function:pre-signup')
110
- expect(userPool.Properties?.LambdaConfig?.PostConfirmation).toBe('arn:aws:lambda:us-east-1:123456789012:function:post-confirmation')
111
- })
112
-
113
- test('should create a user pool with advanced security mode', () => {
114
- const { userPool } = Auth.createUserPool({
115
- slug,
116
- environment,
117
- userPoolAddOns: {
118
- advancedSecurityMode: 'ENFORCED',
119
- },
120
- })
121
-
122
- expect(userPool.Properties?.UserPoolAddOns?.AdvancedSecurityMode).toBe('ENFORCED')
123
- })
124
-
125
- test('should create a user pool with account recovery settings', () => {
126
- const { userPool } = Auth.createUserPool({
127
- slug,
128
- environment,
129
- accountRecoverySetting: {
130
- recoveryMechanisms: [
131
- { Name: 'verified_email', Priority: 1 },
132
- { Name: 'verified_phone_number', Priority: 2 },
133
- ],
134
- },
135
- })
136
-
137
- expect(userPool.Properties?.AccountRecoverySetting?.RecoveryMechanisms).toHaveLength(2)
138
- expect(userPool.Properties?.AccountRecoverySetting?.RecoveryMechanisms?.[0].Name).toBe('verified_email')
139
- })
140
- })
141
-
142
- describe('auth Module - User Pool Client', () => {
143
- test('should create a basic user pool client', () => {
144
- const { logicalId: poolId } = Auth.createUserPool({
145
- slug,
146
- environment,
147
- })
148
-
149
- const { client, logicalId } = Auth.createUserPoolClient(poolId, {
150
- slug,
151
- environment,
152
- })
153
-
154
- expect(client.Type).toBe('AWS::Cognito::UserPoolClient')
155
- expect(client.Properties?.ClientName).toContain('test-app')
156
- expect(logicalId).toBeTruthy()
157
- })
158
-
159
- test('should create a client with custom name', () => {
160
- const { logicalId: poolId } = Auth.createUserPool({
161
- slug,
162
- environment,
163
- })
164
-
165
- const { client } = Auth.createUserPoolClient(poolId, {
166
- slug,
167
- environment,
168
- clientName: 'my-app-client',
169
- })
170
-
171
- expect(client.Properties?.ClientName).toBe('my-app-client')
172
- })
173
-
174
- test('should create a client with secret', () => {
175
- const { logicalId: poolId } = Auth.createUserPool({
176
- slug,
177
- environment,
178
- })
179
-
180
- const { client } = Auth.createUserPoolClient(poolId, {
181
- slug,
182
- environment,
183
- generateSecret: true,
184
- })
185
-
186
- expect(client.Properties?.GenerateSecret).toBe(true)
187
- })
188
-
189
- test('should create a client with token validity', () => {
190
- const { logicalId: poolId } = Auth.createUserPool({
191
- slug,
192
- environment,
193
- })
194
-
195
- const { client } = Auth.createUserPoolClient(poolId, {
196
- slug,
197
- environment,
198
- refreshTokenValidity: 30,
199
- accessTokenValidity: 60,
200
- idTokenValidity: 60,
201
- tokenValidityUnits: {
202
- RefreshToken: 'days',
203
- AccessToken: 'minutes',
204
- IdToken: 'minutes',
205
- },
206
- })
207
-
208
- expect(client.Properties?.RefreshTokenValidity).toBe(30)
209
- expect(client.Properties?.AccessTokenValidity).toBe(60)
210
- expect(client.Properties?.IdTokenValidity).toBe(60)
211
- expect(client.Properties?.TokenValidityUnits?.RefreshToken).toBe('days')
212
- })
213
-
214
- test('should create a client with explicit auth flows', () => {
215
- const { logicalId: poolId } = Auth.createUserPool({
216
- slug,
217
- environment,
218
- })
219
-
220
- const { client } = Auth.createUserPoolClient(poolId, {
221
- slug,
222
- environment,
223
- explicitAuthFlows: [...Auth.AuthFlows.standard],
224
- })
225
-
226
- expect(client.Properties?.ExplicitAuthFlows).toContain('ALLOW_USER_SRP_AUTH')
227
- expect(client.Properties?.ExplicitAuthFlows).toContain('ALLOW_REFRESH_TOKEN_AUTH')
228
- })
229
-
230
- test('should create a client with OAuth configuration', () => {
231
- const { logicalId: poolId } = Auth.createUserPool({
232
- slug,
233
- environment,
234
- })
235
-
236
- const { client } = Auth.createUserPoolClient(poolId, {
237
- slug,
238
- environment,
239
- callbackURLs: ['https://example.com/callback'],
240
- logoutURLs: ['https://example.com/logout'],
241
- allowedOAuthFlows: ['code'],
242
- allowedOAuthScopes: [...Auth.OAuthScopes.basic],
243
- allowedOAuthFlowsUserPoolClient: true,
244
- })
245
-
246
- expect(client.Properties?.CallbackURLs).toEqual(['https://example.com/callback'])
247
- expect(client.Properties?.LogoutURLs).toEqual(['https://example.com/logout'])
248
- expect(client.Properties?.AllowedOAuthFlows).toEqual(['code'])
249
- expect(client.Properties?.AllowedOAuthScopes).toContain('openid')
250
- })
251
-
252
- test('should create a client with token revocation enabled', () => {
253
- const { logicalId: poolId } = Auth.createUserPool({
254
- slug,
255
- environment,
256
- })
257
-
258
- const { client } = Auth.createUserPoolClient(poolId, {
259
- slug,
260
- environment,
261
- enableTokenRevocation: true,
262
- })
263
-
264
- expect(client.Properties?.EnableTokenRevocation).toBe(true)
265
- })
266
- })
267
-
268
- describe('auth Module - User Pool Domain', () => {
269
- test('should create a user pool domain', () => {
270
- const { logicalId: poolId } = Auth.createUserPool({
271
- slug,
272
- environment,
273
- })
274
-
275
- const { domain, logicalId } = Auth.createUserPoolDomain(poolId, {
276
- slug,
277
- environment,
278
- domain: 'my-app-auth',
279
- })
280
-
281
- expect(domain.Type).toBe('AWS::Cognito::UserPoolDomain')
282
- expect(domain.Properties?.Domain).toBe('my-app-auth')
283
- expect(logicalId).toBeTruthy()
284
- })
285
-
286
- test('should create a custom domain', () => {
287
- const { logicalId: poolId } = Auth.createUserPool({
288
- slug,
289
- environment,
290
- })
291
-
292
- const { domain } = Auth.createUserPoolDomain(poolId, {
293
- slug,
294
- environment,
295
- domain: 'auth.example.com',
296
- customDomainConfig: {
297
- CertificateArn: 'arn:aws:acm:us-east-1:123456789012:certificate/12345678',
298
- },
299
- })
300
-
301
- expect(domain.Properties?.Domain).toBe('auth.example.com')
302
- expect(domain.Properties?.CustomDomainConfig?.CertificateArn).toBeTruthy()
303
- })
304
- })
305
-
306
- describe('auth Module - Identity Pool', () => {
307
- test('should create a basic identity pool', () => {
308
- const { identityPool, logicalId } = Auth.createIdentityPool({
309
- slug,
310
- environment,
311
- })
312
-
313
- expect(identityPool.Type).toBe('AWS::Cognito::IdentityPool')
314
- expect(identityPool.Properties?.IdentityPoolName).toContain('test-app')
315
- expect(identityPool.Properties?.AllowUnauthenticatedIdentities).toBe(false)
316
- expect(logicalId).toBeTruthy()
317
- })
318
-
319
- test('should create an identity pool with custom name', () => {
320
- const { identityPool } = Auth.createIdentityPool({
321
- slug,
322
- environment,
323
- identityPoolName: 'my-identity-pool',
324
- })
325
-
326
- expect(identityPool.Properties?.IdentityPoolName).toBe('my-identity-pool')
327
- })
328
-
329
- test('should create an identity pool allowing unauthenticated access', () => {
330
- const { identityPool } = Auth.createIdentityPool({
331
- slug,
332
- environment,
333
- allowUnauthenticatedIdentities: true,
334
- })
335
-
336
- expect(identityPool.Properties?.AllowUnauthenticatedIdentities).toBe(true)
337
- })
338
-
339
- test('should create an identity pool with Cognito provider', () => {
340
- const { identityPool } = Auth.createIdentityPool({
341
- slug,
342
- environment,
343
- cognitoIdentityProviders: [
344
- {
345
- ClientId: 'abc123',
346
- ProviderName: 'cognito-idp.us-east-1.amazonaws.com/us-east-1_ABC123',
347
- },
348
- ],
349
- })
350
-
351
- expect(identityPool.Properties?.CognitoIdentityProviders).toHaveLength(1)
352
- expect(identityPool.Properties?.CognitoIdentityProviders?.[0].ClientId).toBe('abc123')
353
- })
354
-
355
- test('should create an identity pool with social providers', () => {
356
- const { identityPool } = Auth.createIdentityPool({
357
- slug,
358
- environment,
359
- supportedLoginProviders: {
360
- 'accounts.google.com': 'google-client-id',
361
- 'graph.facebook.com': 'facebook-app-id',
362
- },
363
- })
364
-
365
- expect(identityPool.Properties?.SupportedLoginProviders).toBeDefined()
366
- expect(identityPool.Properties?.SupportedLoginProviders?.['accounts.google.com']).toBe('google-client-id')
367
- })
368
- })
369
-
370
- describe('auth Module - Identity Pool Roles', () => {
371
- test('should create authenticated role', () => {
372
- const { logicalId: identityPoolId } = Auth.createIdentityPool({
373
- slug,
374
- environment,
375
- })
376
-
377
- const { role, logicalId } = Auth.createAuthenticatedRole({
378
- slug,
379
- environment,
380
- identityPoolLogicalId: identityPoolId,
381
- })
382
-
383
- expect(role.Type).toBe('AWS::IAM::Role')
384
- expect(role.Properties?.RoleName).toContain('cognito-authenticated-role')
385
- expect(role.Properties?.AssumeRolePolicyDocument?.Statement?.[0].Principal?.Federated).toBe('cognito-identity.amazonaws.com')
386
- expect(logicalId).toBeTruthy()
387
- })
388
-
389
- test('should create unauthenticated role', () => {
390
- const { logicalId: identityPoolId } = Auth.createIdentityPool({
391
- slug,
392
- environment,
393
- })
394
-
395
- const { role, logicalId } = Auth.createUnauthenticatedRole({
396
- slug,
397
- environment,
398
- identityPoolLogicalId: identityPoolId,
399
- })
400
-
401
- expect(role.Type).toBe('AWS::IAM::Role')
402
- expect(role.Properties?.RoleName).toContain('cognito-unauthenticated-role')
403
- expect(logicalId).toBeTruthy()
404
- })
405
-
406
- test('should create identity pool role attachment', () => {
407
- const { logicalId: identityPoolId } = Auth.createIdentityPool({
408
- slug,
409
- environment,
410
- })
411
-
412
- const { attachment, logicalId } = Auth.createIdentityPoolRoleAttachment(identityPoolId, {
413
- slug,
414
- environment,
415
- authenticatedRole: 'arn:aws:iam::123456789012:role/Cognito_AuthRole',
416
- unauthenticatedRole: 'arn:aws:iam::123456789012:role/Cognito_UnauthRole',
417
- })
418
-
419
- expect(attachment.Type).toBe('AWS::Cognito::IdentityPoolRoleAttachment')
420
- expect(attachment.Properties?.Roles?.authenticated).toBeTruthy()
421
- expect(attachment.Properties?.Roles?.unauthenticated).toBeTruthy()
422
- expect(logicalId).toBeTruthy()
423
- })
424
- })
425
-
426
- describe('auth Module - Password Policies', () => {
427
- test('should have relaxed password policy', () => {
428
- const policy = Auth.PasswordPolicies.relaxed()
429
-
430
- expect(policy.minimumLength).toBe(8)
431
- expect(policy.requireLowercase).toBe(false)
432
- expect(policy.requireUppercase).toBe(false)
433
- expect(policy.requireNumbers).toBe(false)
434
- expect(policy.requireSymbols).toBe(false)
435
- })
436
-
437
- test('should have standard password policy', () => {
438
- const policy = Auth.PasswordPolicies.standard()
439
-
440
- expect(policy.minimumLength).toBe(8)
441
- expect(policy.requireLowercase).toBe(true)
442
- expect(policy.requireUppercase).toBe(true)
443
- expect(policy.requireNumbers).toBe(true)
444
- expect(policy.requireSymbols).toBe(false)
445
- })
446
-
447
- test('should have strict password policy', () => {
448
- const policy = Auth.PasswordPolicies.strict()
449
-
450
- expect(policy.minimumLength).toBe(12)
451
- expect(policy.requireLowercase).toBe(true)
452
- expect(policy.requireUppercase).toBe(true)
453
- expect(policy.requireNumbers).toBe(true)
454
- expect(policy.requireSymbols).toBe(true)
455
- })
456
- })
457
-
458
- describe('auth Module - Auth Flows', () => {
459
- test('should have standard auth flows', () => {
460
- expect(Auth.AuthFlows.standard).toContain('ALLOW_USER_SRP_AUTH')
461
- expect(Auth.AuthFlows.standard).toContain('ALLOW_REFRESH_TOKEN_AUTH')
462
- })
463
-
464
- test('should have admin auth flows', () => {
465
- expect(Auth.AuthFlows.admin).toContain('ALLOW_ADMIN_USER_PASSWORD_AUTH')
466
- expect(Auth.AuthFlows.admin).toContain('ALLOW_REFRESH_TOKEN_AUTH')
467
- })
468
-
469
- test('should have custom auth flows', () => {
470
- expect(Auth.AuthFlows.custom).toContain('ALLOW_CUSTOM_AUTH')
471
- expect(Auth.AuthFlows.custom).toContain('ALLOW_REFRESH_TOKEN_AUTH')
472
- })
473
- })
474
-
475
- describe('auth Module - OAuth Scopes', () => {
476
- test('should have basic OAuth scopes', () => {
477
- expect(Auth.OAuthScopes.basic).toContain('openid')
478
- expect(Auth.OAuthScopes.basic).toContain('email')
479
- expect(Auth.OAuthScopes.basic).toContain('profile')
480
- })
481
-
482
- test('should have all OAuth scopes', () => {
483
- expect(Auth.OAuthScopes.all).toContain('openid')
484
- expect(Auth.OAuthScopes.all).toContain('email')
485
- expect(Auth.OAuthScopes.all).toContain('profile')
486
- expect(Auth.OAuthScopes.all).toContain('phone')
487
- expect(Auth.OAuthScopes.all).toContain('aws.cognito.signin.user.admin')
488
- })
489
- })
490
-
491
- describe('auth Module - Use Cases', () => {
492
- test('should create web app authentication setup', () => {
493
- const { userPool, poolId, client, clientId } = Auth.UseCases.webApp(
494
- slug,
495
- environment,
496
- 'https://example.com/callback',
497
- )
498
-
499
- expect(userPool.Type).toBe('AWS::Cognito::UserPool')
500
- expect(client.Type).toBe('AWS::Cognito::UserPoolClient')
501
- expect(client.Properties?.AllowedOAuthFlows).toContain('code')
502
- expect(client.Properties?.CallbackURLs).toContain('https://example.com/callback')
503
- expect(poolId).toBeTruthy()
504
- expect(clientId).toBeTruthy()
505
- })
506
-
507
- test('should create mobile app authentication setup', () => {
508
- const {
509
- userPool,
510
- poolId,
511
- client,
512
- clientId,
513
- identityPool,
514
- identityPoolId,
515
- authRole,
516
- authRoleId,
517
- attachment,
518
- attachmentId,
519
- } = Auth.UseCases.mobileApp(slug, environment)
520
-
521
- expect(userPool.Type).toBe('AWS::Cognito::UserPool')
522
- expect(client.Type).toBe('AWS::Cognito::UserPoolClient')
523
- expect(identityPool.Type).toBe('AWS::Cognito::IdentityPool')
524
- expect(authRole.Type).toBe('AWS::IAM::Role')
525
- expect(attachment.Type).toBe('AWS::Cognito::IdentityPoolRoleAttachment')
526
- expect(poolId).toBeTruthy()
527
- expect(clientId).toBeTruthy()
528
- expect(identityPoolId).toBeTruthy()
529
- expect(authRoleId).toBeTruthy()
530
- expect(attachmentId).toBeTruthy()
531
- })
532
- })
533
-
534
- describe('auth Module - Integration with TemplateBuilder', () => {
535
- test('should add user pool to template', () => {
536
- const builder = new TemplateBuilder()
537
-
538
- const { userPool, logicalId } = Auth.createUserPool({
539
- slug,
540
- environment,
541
- passwordPolicy: Auth.PasswordPolicies.standard(),
542
- mfaConfiguration: 'OPTIONAL',
543
- })
544
-
545
- builder.addResource(logicalId, userPool)
546
-
547
- const template = builder.build()
548
-
549
- expect(template.Resources[logicalId]).toBeDefined()
550
- expect(template.Resources[logicalId].Type).toBe('AWS::Cognito::UserPool')
551
- })
552
-
553
- test('should add complete authentication stack to template', () => {
554
- const builder = new TemplateBuilder()
555
-
556
- const { userPool, logicalId: poolId } = Auth.createUserPool({
557
- slug,
558
- environment,
559
- aliasAttributes: ['email'],
560
- autoVerifiedAttributes: ['email'],
561
- passwordPolicy: Auth.PasswordPolicies.standard(),
562
- })
563
-
564
- const { client, logicalId: clientId } = Auth.createUserPoolClient(poolId, {
565
- slug,
566
- environment,
567
- explicitAuthFlows: [...Auth.AuthFlows.standard],
568
- })
569
-
570
- const { domain, logicalId: domainId } = Auth.createUserPoolDomain(poolId, {
571
- slug,
572
- environment,
573
- domain: 'my-app-auth',
574
- })
575
-
576
- builder.addResource(poolId, userPool)
577
- builder.addResource(clientId, client)
578
- builder.addResource(domainId, domain)
579
-
580
- const template = builder.build()
581
-
582
- expect(Object.keys(template.Resources)).toHaveLength(3)
583
- expect(template.Resources[poolId].Type).toBe('AWS::Cognito::UserPool')
584
- expect(template.Resources[clientId].Type).toBe('AWS::Cognito::UserPoolClient')
585
- expect(template.Resources[domainId].Type).toBe('AWS::Cognito::UserPoolDomain')
586
- })
587
-
588
- test('should add identity pool stack to template', () => {
589
- const builder = new TemplateBuilder()
590
-
591
- const { identityPool, logicalId: identityPoolId } = Auth.createIdentityPool({
592
- slug,
593
- environment,
594
- allowUnauthenticatedIdentities: false,
595
- })
596
-
597
- const { role: authRole, logicalId: authRoleId } = Auth.createAuthenticatedRole({
598
- slug,
599
- environment,
600
- identityPoolLogicalId: identityPoolId,
601
- })
602
-
603
- const { role: unauthRole, logicalId: unauthRoleId } = Auth.createUnauthenticatedRole({
604
- slug,
605
- environment,
606
- identityPoolLogicalId: identityPoolId,
607
- })
608
-
609
- const { attachment, logicalId: attachmentId } = Auth.createIdentityPoolRoleAttachment(
610
- identityPoolId,
611
- {
612
- slug,
613
- environment,
614
- authenticatedRole: `\${${authRoleId}.Arn}`,
615
- unauthenticatedRole: `\${${unauthRoleId}.Arn}`,
616
- },
617
- )
618
-
619
- builder.addResource(identityPoolId, identityPool)
620
- builder.addResource(authRoleId, authRole)
621
- builder.addResource(unauthRoleId, unauthRole)
622
- builder.addResource(attachmentId, attachment)
623
-
624
- const template = builder.build()
625
-
626
- expect(Object.keys(template.Resources)).toHaveLength(4)
627
- expect(template.Resources[identityPoolId].Type).toBe('AWS::Cognito::IdentityPool')
628
- expect(template.Resources[authRoleId].Type).toBe('AWS::IAM::Role')
629
- expect(template.Resources[unauthRoleId].Type).toBe('AWS::IAM::Role')
630
- expect(template.Resources[attachmentId].Type).toBe('AWS::Cognito::IdentityPoolRoleAttachment')
631
- })
632
- })