@stacksjs/ts-cloud 0.7.56 → 0.7.58

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 (467) hide show
  1. package/dist/alerts/alerts.test.d.ts +1 -0
  2. package/dist/alerts/delivery.d.ts +45 -0
  3. package/dist/alerts/evaluator.d.ts +12 -0
  4. package/dist/alerts/health.d.ts +34 -0
  5. package/dist/alerts/index.d.ts +6 -0
  6. package/dist/alerts/model.d.ts +170 -0
  7. package/dist/alerts/store.d.ts +90 -0
  8. package/dist/alerts/telemetry.d.ts +3 -0
  9. package/dist/api/client.d.ts +197 -0
  10. package/dist/api/handler.d.ts +18 -0
  11. package/dist/api/handler.test.d.ts +1 -0
  12. package/dist/api/index.d.ts +6 -0
  13. package/dist/api/openapi.d.ts +2 -0
  14. package/dist/api/service.d.ts +28 -0
  15. package/dist/api/types.d.ts +119 -0
  16. package/dist/auth/encryption.d.ts +3 -0
  17. package/dist/auth/index.d.ts +8 -0
  18. package/dist/auth/mailer.d.ts +9 -0
  19. package/dist/auth/oidc.d.ts +36 -0
  20. package/dist/auth/oidc.test.d.ts +1 -0
  21. package/dist/auth/store.d.ts +121 -0
  22. package/dist/auth/store.test.d.ts +1 -0
  23. package/dist/auth/totp.d.ts +11 -0
  24. package/dist/auth/totp.test.d.ts +1 -0
  25. package/dist/auth/types.d.ts +138 -0
  26. package/dist/automation/index.d.ts +2 -0
  27. package/dist/automation/store.d.ts +46 -0
  28. package/dist/automation/store.test.d.ts +1 -0
  29. package/dist/automation/types.d.ts +66 -0
  30. package/dist/aws/acm.d.ts +0 -4
  31. package/dist/aws/application-autoscaling.d.ts +0 -5
  32. package/dist/aws/backup.d.ts +42 -0
  33. package/dist/aws/bedrock.d.ts +0 -5
  34. package/dist/aws/client.d.ts +3 -6
  35. package/dist/aws/cloudformation.d.ts +0 -4
  36. package/dist/aws/cloudfront-media.test.d.ts +1 -0
  37. package/dist/aws/cloudfront-origin.test.d.ts +1 -0
  38. package/dist/aws/cloudfront.d.ts +87 -3
  39. package/dist/aws/cloudwatch-logs.d.ts +2 -4
  40. package/dist/aws/cloudwatch.d.ts +1 -1
  41. package/dist/aws/comprehend.d.ts +0 -5
  42. package/dist/aws/connect.d.ts +0 -4
  43. package/dist/aws/cost-explorer-cache.d.ts +1 -15
  44. package/dist/aws/cost-explorer.d.ts +18 -9
  45. package/dist/aws/cost-explorer.test.d.ts +1 -0
  46. package/dist/aws/dynamodb.d.ts +0 -4
  47. package/dist/aws/ec2.d.ts +0 -4
  48. package/dist/aws/ecr.d.ts +0 -4
  49. package/dist/aws/ecs.d.ts +17 -7
  50. package/dist/aws/efs.d.ts +0 -4
  51. package/dist/aws/elasticache.d.ts +0 -4
  52. package/dist/aws/elbv2.d.ts +0 -7
  53. package/dist/aws/email.d.ts +0 -10
  54. package/dist/aws/eventbridge.d.ts +0 -4
  55. package/dist/aws/iam.d.ts +1 -5
  56. package/dist/aws/imap-server.d.ts +0 -7
  57. package/dist/aws/index.d.ts +4 -3
  58. package/dist/aws/index.js +31 -31
  59. package/dist/aws/kendra.d.ts +0 -5
  60. package/dist/aws/lambda.d.ts +3 -5
  61. package/dist/aws/opensearch.d.ts +0 -4
  62. package/dist/aws/personalize.d.ts +0 -5
  63. package/dist/aws/polly.d.ts +0 -5
  64. package/dist/aws/rds.d.ts +59 -4
  65. package/dist/aws/rekognition.d.ts +0 -5
  66. package/dist/aws/route53-domains.d.ts +0 -4
  67. package/dist/aws/route53.d.ts +0 -4
  68. package/dist/aws/s3.d.ts +10 -6
  69. package/dist/aws/scheduler.d.ts +0 -4
  70. package/dist/aws/secrets-manager.d.ts +0 -4
  71. package/dist/aws/setup-sms.d.ts +0 -14
  72. package/dist/aws/sms.d.ts +0 -10
  73. package/dist/aws/smtp-server.d.ts +0 -11
  74. package/dist/aws/sns.d.ts +0 -4
  75. package/dist/aws/sqs.d.ts +0 -4
  76. package/dist/aws/ssm.d.ts +0 -4
  77. package/dist/aws/sts.d.ts +0 -4
  78. package/dist/aws/support.d.ts +0 -4
  79. package/dist/aws/textract.d.ts +0 -5
  80. package/dist/aws/transcribe.d.ts +0 -4
  81. package/dist/aws/translate.d.ts +0 -5
  82. package/dist/aws/voice.d.ts +0 -11
  83. package/dist/aws/xray.d.ts +1 -0
  84. package/dist/backups/aws-database-source.d.ts +19 -0
  85. package/dist/backups/aws-database-source.test.d.ts +1 -0
  86. package/dist/backups/aws-infrastructure-source.d.ts +43 -0
  87. package/dist/backups/aws-infrastructure-source.test.d.ts +1 -0
  88. package/dist/backups/control-plane-source.d.ts +16 -0
  89. package/dist/backups/control-plane-source.test.d.ts +1 -0
  90. package/dist/backups/docker-volume-source.d.ts +31 -0
  91. package/dist/backups/docker-volume-source.test.d.ts +1 -0
  92. package/dist/backups/filesystem-source.d.ts +34 -0
  93. package/dist/backups/filesystem-source.test.d.ts +1 -0
  94. package/dist/backups/index.d.ts +10 -0
  95. package/dist/backups/logical-database-source.d.ts +16 -0
  96. package/dist/backups/logical-database-source.test.d.ts +1 -0
  97. package/dist/backups/model.d.ts +121 -0
  98. package/dist/backups/s3-destination.d.ts +85 -0
  99. package/dist/backups/s3-destination.test.d.ts +1 -0
  100. package/dist/backups/service.d.ts +80 -0
  101. package/dist/backups/service.test.d.ts +1 -0
  102. package/dist/backups/store.d.ts +30 -0
  103. package/dist/backups/store.test.d.ts +1 -0
  104. package/dist/bin/cli.js +3360 -1802
  105. package/dist/{chunk-tjjgajbh.js → chunk-01d86gt1.js} +301 -9
  106. package/dist/{chunk-73vcqg6z.js → chunk-0z43x8re.js} +7 -7
  107. package/dist/{chunk-tnztxpcb.js → chunk-32e7ya18.js} +61 -49
  108. package/dist/{chunk-qpj3edwz.js → chunk-4cjrg98a.js} +3 -7
  109. package/dist/{chunk-hsk6fe6x.js → chunk-50jpda9q.js} +2 -2
  110. package/dist/{chunk-93hjhs78.js → chunk-703nkybg.js} +1 -1
  111. package/dist/{chunk-d5vqwj8s.js → chunk-9m6b4m74.js} +755 -720
  112. package/dist/chunk-e05phx5f.js +10 -0
  113. package/dist/{chunk-f29w04w5.js → chunk-exbcsab2.js} +10 -4
  114. package/dist/{chunk-eq08r166.js → chunk-f55nkpvb.js} +2 -2
  115. package/dist/{chunk-3bfv1z4v.js → chunk-fv1bj3yt.js} +63 -56
  116. package/dist/chunk-fw3q88wk.js +48641 -0
  117. package/dist/{chunk-3knnr7wh.js → chunk-he9a874b.js} +170 -2
  118. package/dist/{chunk-zn0nxxa8.js → chunk-hpv68b4a.js} +1070 -1070
  119. package/dist/chunk-k114qwg9.js +12 -0
  120. package/dist/{chunk-r16e02bc.js → chunk-vdk53yyq.js} +3900 -4101
  121. package/dist/{chunk-jp2a8yad.js → chunk-vvkd46k1.js} +15 -13
  122. package/dist/{chunk-vd87cpvn.js → chunk-wj3s95p9.js} +62 -46
  123. package/dist/{chunk-mj1tmhte.js → chunk-x9s0cqfx.js} +1 -1
  124. package/dist/{chunk-3rsfns7x.js → chunk-ybcz6sxc.js} +2048 -387
  125. package/dist/{chunk-arsh1g5h.js → chunk-zqtpg06c.js} +14 -11
  126. package/dist/compose/index.d.ts +6 -0
  127. package/dist/compose/parser.d.ts +13 -0
  128. package/dist/compose/parser.test.d.ts +1 -0
  129. package/dist/compose/runtime.d.ts +10 -0
  130. package/dist/compose/service.d.ts +18 -0
  131. package/dist/compose/store.d.ts +59 -0
  132. package/dist/compose/store.test.d.ts +1 -0
  133. package/dist/compose/templates.d.ts +17 -0
  134. package/dist/compose/types.d.ts +164 -0
  135. package/dist/configuration/backends.d.ts +66 -0
  136. package/dist/configuration/backends.test.d.ts +1 -0
  137. package/dist/configuration/dotenv.d.ts +14 -0
  138. package/dist/configuration/dotenv.test.d.ts +1 -0
  139. package/dist/configuration/index.d.ts +6 -0
  140. package/dist/configuration/migrate.d.ts +10 -0
  141. package/dist/configuration/migrate.test.d.ts +1 -0
  142. package/dist/configuration/model.d.ts +50 -0
  143. package/dist/configuration/service.d.ts +144 -0
  144. package/dist/configuration/service.test.d.ts +1 -0
  145. package/dist/configuration/store.d.ts +33 -0
  146. package/dist/configuration/store.test.d.ts +1 -0
  147. package/dist/control-plane/authorization.d.ts +24 -0
  148. package/dist/control-plane/authorization.test.d.ts +1 -0
  149. package/dist/control-plane/index.d.ts +8 -0
  150. package/dist/control-plane/migrations.d.ts +7 -0
  151. package/dist/control-plane/search.d.ts +25 -0
  152. package/dist/control-plane/store.d.ts +117 -0
  153. package/dist/control-plane/store.test.d.ts +1 -0
  154. package/dist/control-plane/types.d.ts +381 -0
  155. package/dist/cost/reporting.d.ts +24 -0
  156. package/dist/cost/reporting.test.d.ts +1 -0
  157. package/dist/cost/resource-inventory.d.ts +32 -0
  158. package/dist/cost/resource-inventory.test.d.ts +1 -0
  159. package/dist/cost/resource-optimization.d.ts +59 -0
  160. package/dist/cost/resource-optimization.test.d.ts +1 -0
  161. package/dist/data-services/adapters.d.ts +39 -0
  162. package/dist/data-services/aws-transports.d.ts +29 -0
  163. package/dist/data-services/aws-transports.test.d.ts +1 -0
  164. package/dist/data-services/capabilities.d.ts +2 -0
  165. package/dist/data-services/data-services.test.d.ts +1 -0
  166. package/dist/data-services/docker-transport.d.ts +55 -0
  167. package/dist/data-services/docker-transport.test.d.ts +1 -0
  168. package/dist/data-services/index.d.ts +8 -0
  169. package/dist/data-services/model.d.ts +79 -0
  170. package/dist/data-services/secrets.d.ts +13 -0
  171. package/dist/data-services/secrets.test.d.ts +1 -0
  172. package/dist/data-services/service.d.ts +51 -0
  173. package/dist/data-services/store.d.ts +17 -0
  174. package/dist/deploy/container-image.d.ts +28 -0
  175. package/dist/deploy/container-image.test.d.ts +1 -0
  176. package/dist/deploy/dashboard-audit.test.d.ts +1 -0
  177. package/dist/deploy/dashboard-auth.d.ts +4 -23
  178. package/dist/deploy/dashboard-backups.integration.test.d.ts +1 -0
  179. package/dist/deploy/dashboard-configuration.integration.test.d.ts +1 -0
  180. package/dist/deploy/dashboard-control-plane.d.ts +37 -0
  181. package/dist/deploy/dashboard-control-plane.test.d.ts +1 -0
  182. package/dist/deploy/dashboard-data-services.integration.test.d.ts +1 -0
  183. package/dist/deploy/dashboard-environment-scope.test.d.ts +1 -0
  184. package/dist/deploy/dashboard-guard.d.ts +12 -0
  185. package/dist/deploy/dashboard-guard.test.d.ts +1 -0
  186. package/dist/deploy/dashboard-identities.d.ts +15 -0
  187. package/dist/deploy/dashboard-identities.test.d.ts +1 -0
  188. package/dist/deploy/dashboard-jobs.integration.test.d.ts +1 -0
  189. package/dist/deploy/dashboard-login-page.d.ts +5 -5
  190. package/dist/deploy/dashboard-login-page.test.d.ts +1 -0
  191. package/dist/deploy/dashboard-oidc.integration.test.d.ts +1 -0
  192. package/dist/deploy/dashboard-onboarding.integration.test.d.ts +1 -0
  193. package/dist/deploy/dashboard-policy.d.ts +4 -2
  194. package/dist/deploy/dashboard-queue-worker.integration.test.d.ts +1 -0
  195. package/dist/deploy/dashboard-release.integration.test.d.ts +1 -0
  196. package/dist/deploy/dashboard-route-manifest.d.ts +14 -0
  197. package/dist/deploy/dashboard-route-manifest.test.d.ts +1 -0
  198. package/dist/deploy/dashboard-security.integration.test.d.ts +1 -0
  199. package/dist/deploy/dashboard-session.d.ts +3 -14
  200. package/dist/deploy/dashboard-source.integration.test.d.ts +1 -0
  201. package/dist/deploy/dashboard-users.d.ts +3 -0
  202. package/dist/deploy/fullstack-container.d.ts +87 -0
  203. package/dist/deploy/fullstack-container.test.d.ts +1 -0
  204. package/dist/deploy/index.d.ts +7 -2
  205. package/dist/deploy/index.js +65 -25
  206. package/dist/deploy/local-dashboard-server.d.ts +30 -0
  207. package/dist/deploy/quick-deploy.d.ts +1 -1
  208. package/dist/deploy/serverless-operations.d.ts +1 -0
  209. package/dist/deploy/site-target.d.ts +16 -0
  210. package/dist/deploy/static-api-origin.d.ts +107 -0
  211. package/dist/deploy/static-api-origin.test.d.ts +1 -0
  212. package/dist/deploy/static-site-helper.d.ts +0 -16
  213. package/dist/deploy/telemetry-access.d.ts +5 -0
  214. package/dist/deploy/telemetry-access.test.d.ts +1 -0
  215. package/dist/deploy/telemetry-collection.d.ts +44 -0
  216. package/dist/deploy/telemetry-collection.test.d.ts +1 -0
  217. package/dist/dns/index.js +3 -3
  218. package/dist/dns/route53-adapter.d.ts +1 -1
  219. package/dist/drivers/hetzner/cloud-init.d.ts +1 -1
  220. package/dist/drivers/index.d.ts +2 -2
  221. package/dist/drivers/index.js +6 -6
  222. package/dist/drivers/shared/notifications.d.ts +1 -1
  223. package/dist/drivers/shared/rpx-gateway.d.ts +1 -0
  224. package/dist/fleet/fleet.test.d.ts +1 -0
  225. package/dist/fleet/index.d.ts +144 -0
  226. package/dist/fleet/queue.d.ts +3 -0
  227. package/dist/fleet/ssh-driver.d.ts +34 -0
  228. package/dist/index.d.ts +28 -4
  229. package/dist/index.js +1132 -424
  230. package/dist/jobs/adapters.d.ts +23 -0
  231. package/dist/jobs/index.d.ts +7 -0
  232. package/dist/jobs/jobs.test.d.ts +1 -0
  233. package/dist/jobs/model.d.ts +100 -0
  234. package/dist/jobs/provider-adapters.d.ts +49 -0
  235. package/dist/jobs/reconcile.d.ts +19 -0
  236. package/dist/jobs/schedule.d.ts +9 -0
  237. package/dist/jobs/service.d.ts +30 -0
  238. package/dist/jobs/store.d.ts +48 -0
  239. package/dist/maintenance/drivers.d.ts +117 -0
  240. package/dist/maintenance/index.d.ts +6 -0
  241. package/dist/maintenance/maintenance.test.d.ts +1 -0
  242. package/dist/maintenance/manifest.d.ts +15 -0
  243. package/dist/maintenance/queue.d.ts +9 -0
  244. package/dist/maintenance/service.d.ts +31 -0
  245. package/dist/maintenance/store.d.ts +84 -0
  246. package/dist/maintenance/types.d.ts +192 -0
  247. package/dist/media.d.ts +62 -0
  248. package/dist/media.test.d.ts +1 -0
  249. package/dist/object-storage/index.d.ts +0 -24
  250. package/dist/onboarding/archive.d.ts +12 -0
  251. package/dist/onboarding/artifact-store.d.ts +22 -0
  252. package/dist/onboarding/detection.d.ts +8 -0
  253. package/dist/onboarding/index.d.ts +9 -0
  254. package/dist/onboarding/migrations.d.ts +3 -0
  255. package/dist/onboarding/onboarding.test.d.ts +1 -0
  256. package/dist/onboarding/plan.d.ts +3 -0
  257. package/dist/onboarding/registry.d.ts +41 -0
  258. package/dist/onboarding/service.d.ts +16 -0
  259. package/dist/onboarding/store.d.ts +30 -0
  260. package/dist/onboarding/types.d.ts +204 -0
  261. package/dist/placement/builds.d.ts +20 -0
  262. package/dist/placement/drivers.d.ts +54 -0
  263. package/dist/placement/index.d.ts +6 -0
  264. package/dist/placement/placement.test.d.ts +1 -0
  265. package/dist/placement/queue.d.ts +4 -0
  266. package/dist/placement/service.d.ts +34 -0
  267. package/dist/placement/store.d.ts +49 -0
  268. package/dist/placement/types.d.ts +109 -0
  269. package/dist/preview/index.d.ts +3 -0
  270. package/dist/preview/service.d.ts +45 -0
  271. package/dist/preview/service.test.d.ts +1 -0
  272. package/dist/preview/store.d.ts +47 -0
  273. package/dist/preview/store.test.d.ts +1 -0
  274. package/dist/preview/types.d.ts +99 -0
  275. package/dist/push/apns.d.ts +0 -26
  276. package/dist/push/fcm.d.ts +0 -23
  277. package/dist/push/index.d.ts +2 -2
  278. package/dist/push/index.js +1 -1
  279. package/dist/queue/deployment-handlers.d.ts +27 -0
  280. package/dist/queue/deployment-handlers.test.d.ts +1 -0
  281. package/dist/queue/index.d.ts +4 -0
  282. package/dist/queue/queue.d.ts +57 -0
  283. package/dist/queue/queue.test.d.ts +1 -0
  284. package/dist/queue/types.d.ts +93 -0
  285. package/dist/queue/worker.d.ts +32 -0
  286. package/dist/queue/worker.test.d.ts +1 -0
  287. package/dist/regions/drivers.d.ts +139 -0
  288. package/dist/regions/index.d.ts +5 -0
  289. package/dist/regions/queue.d.ts +4 -0
  290. package/dist/regions/regions.test.d.ts +1 -0
  291. package/dist/regions/service.d.ts +23 -0
  292. package/dist/regions/store.d.ts +41 -0
  293. package/dist/regions/types.d.ts +132 -0
  294. package/dist/release/index.d.ts +6 -0
  295. package/dist/release/queue.d.ts +15 -0
  296. package/dist/release/queue.test.d.ts +1 -0
  297. package/dist/release/runtime.d.ts +35 -0
  298. package/dist/release/runtime.test.d.ts +1 -0
  299. package/dist/release/service.d.ts +28 -0
  300. package/dist/release/store.d.ts +88 -0
  301. package/dist/release/store.test.d.ts +1 -0
  302. package/dist/release/strategy.d.ts +8 -0
  303. package/dist/release/types.d.ts +103 -0
  304. package/dist/runtime/adapters/aws.d.ts +5 -0
  305. package/dist/runtime/adapters/docker.d.ts +53 -0
  306. package/dist/runtime/adapters/systemd.d.ts +26 -0
  307. package/dist/runtime/index.d.ts +9 -0
  308. package/dist/runtime/inventory.d.ts +6 -0
  309. package/dist/runtime/model.d.ts +130 -0
  310. package/dist/runtime/normalize.d.ts +5 -0
  311. package/dist/runtime/operations.d.ts +113 -0
  312. package/dist/runtime/service.d.ts +32 -0
  313. package/dist/runtime/streams.d.ts +49 -0
  314. package/dist/security/artifacts.d.ts +105 -0
  315. package/dist/security/artifacts.test.d.ts +1 -0
  316. package/dist/security/container-release.d.ts +35 -0
  317. package/dist/security/container-release.test.d.ts +1 -0
  318. package/dist/security/index.d.ts +8 -0
  319. package/dist/security/integration.d.ts +41 -0
  320. package/dist/security/integration.test.d.ts +1 -0
  321. package/dist/security/posture-store.d.ts +80 -0
  322. package/dist/security/posture-store.test.d.ts +1 -0
  323. package/dist/security/pre-deploy-scanner.d.ts +0 -4
  324. package/dist/security/scanners.d.ts +81 -0
  325. package/dist/security/scanners.test.d.ts +1 -0
  326. package/dist/security/types.d.ts +150 -0
  327. package/dist/source/git-workspace.d.ts +26 -0
  328. package/dist/source/git-workspace.test.d.ts +1 -0
  329. package/dist/source/index.d.ts +6 -0
  330. package/dist/source/providers.d.ts +199 -0
  331. package/dist/source/providers.test.d.ts +1 -0
  332. package/dist/source/service.d.ts +18 -0
  333. package/dist/source/store.d.ts +149 -0
  334. package/dist/source/store.test.d.ts +1 -0
  335. package/dist/source/types.d.ts +191 -0
  336. package/dist/source/webhooks.d.ts +33 -0
  337. package/dist/source/webhooks.test.d.ts +1 -0
  338. package/dist/ssl/acme-client.d.ts +0 -6
  339. package/dist/storage/compose.d.ts +4 -0
  340. package/dist/storage/compose.test.d.ts +1 -0
  341. package/dist/storage/drivers.d.ts +107 -0
  342. package/dist/storage/drivers.test.d.ts +1 -0
  343. package/dist/storage/index.d.ts +5 -0
  344. package/dist/storage/model.d.ts +112 -0
  345. package/dist/storage/service.d.ts +95 -0
  346. package/dist/storage/storage.test.d.ts +1 -0
  347. package/dist/storage/store.d.ts +40 -0
  348. package/dist/telemetry/correlation.test.d.ts +1 -0
  349. package/dist/telemetry/index.d.ts +4 -0
  350. package/dist/telemetry/model.d.ts +145 -0
  351. package/dist/telemetry/policy.d.ts +8 -0
  352. package/dist/telemetry/policy.test.d.ts +1 -0
  353. package/dist/telemetry/redaction.d.ts +9 -0
  354. package/dist/telemetry/store.d.ts +34 -0
  355. package/dist/telemetry/store.test.d.ts +1 -0
  356. package/dist/ui/404.html +1506 -17
  357. package/dist/ui/accept-invitation.html +1163 -0
  358. package/dist/ui/{server/backups.html → access-denied.html} +344 -55
  359. package/dist/ui/account/automation.html +1669 -0
  360. package/dist/ui/account/security.html +1646 -0
  361. package/dist/ui/applications/compose.html +1590 -0
  362. package/dist/ui/applications/new.html +1868 -0
  363. package/dist/ui/data/backups.html +1757 -0
  364. package/dist/ui/data/services.html +1723 -0
  365. package/dist/ui/data/volumes.html +1639 -0
  366. package/dist/ui/index.html +392 -29
  367. package/dist/ui/integrations.html +1865 -0
  368. package/dist/ui/operations/alerts.html +1610 -0
  369. package/dist/ui/operations/configuration.html +1746 -0
  370. package/dist/ui/operations/jobs.html +1709 -0
  371. package/dist/ui/operations/maintenance.html +1540 -0
  372. package/dist/ui/operations/observability.html +1742 -0
  373. package/dist/ui/{serverless/scheduler.html → operations/previews.html} +447 -46
  374. package/dist/ui/operations/queue.html +1615 -0
  375. package/dist/ui/{server/workers.html → operations/regions.html} +413 -49
  376. package/dist/ui/operations/releases.html +1596 -0
  377. package/dist/ui/operations/workloads.html +1775 -0
  378. package/dist/ui/security.html +1767 -0
  379. package/dist/ui/server/actions.html +446 -57
  380. package/dist/ui/server/activity.html +346 -1
  381. package/dist/ui/server/capacity.html +1542 -0
  382. package/dist/ui/server/database.html +443 -36
  383. package/dist/ui/server/deployments.html +439 -53
  384. package/dist/ui/server/diagnostics.html +346 -1
  385. package/dist/ui/server/firewall.html +476 -50
  386. package/dist/ui/server/fleet.html +1577 -0
  387. package/dist/ui/server/logs.html +389 -25
  388. package/dist/ui/server/metrics.html +346 -1
  389. package/dist/ui/server/security.html +346 -1
  390. package/dist/ui/server/services.html +421 -46
  391. package/dist/ui/server/sites.html +476 -95
  392. package/dist/ui/server/ssh-keys.html +476 -46
  393. package/dist/ui/server/team.html +700 -77
  394. package/dist/ui/server/terminal.html +444 -54
  395. package/dist/ui/serverless/alarms.html +430 -42
  396. package/dist/ui/serverless/assets.html +421 -46
  397. package/dist/ui/serverless/cost.html +346 -1
  398. package/dist/ui/serverless/data.html +422 -47
  399. package/dist/ui/serverless/deployments.html +421 -46
  400. package/dist/ui/serverless/firewall.html +346 -1
  401. package/dist/ui/serverless/functions.html +423 -48
  402. package/dist/ui/serverless/logs.html +389 -25
  403. package/dist/ui/serverless/metrics.html +346 -1
  404. package/dist/ui/serverless/queues.html +448 -62
  405. package/dist/ui/serverless/secrets.html +448 -42
  406. package/dist/ui/serverless/traces.html +350 -5
  407. package/dist/ui/serverless.html +434 -58
  408. package/dist/ui-src/pages/404.stx +18 -0
  409. package/dist/ui-src/pages/accept-invitation.stx +50 -0
  410. package/dist/ui-src/pages/access-denied.stx +18 -0
  411. package/dist/ui-src/pages/account/automation.stx +187 -0
  412. package/dist/ui-src/pages/account/security.stx +249 -0
  413. package/dist/ui-src/pages/applications/compose.stx +38 -0
  414. package/dist/ui-src/pages/applications/new.stx +76 -0
  415. package/dist/ui-src/pages/data/backups.stx +214 -0
  416. package/dist/ui-src/pages/data/services.stx +257 -0
  417. package/dist/ui-src/pages/data/volumes.stx +40 -0
  418. package/dist/ui-src/pages/index.stx +24 -10
  419. package/dist/ui-src/pages/integrations.stx +186 -0
  420. package/dist/ui-src/pages/operations/alerts.stx +40 -0
  421. package/dist/ui-src/pages/operations/configuration.stx +164 -0
  422. package/dist/ui-src/pages/operations/jobs.stx +238 -0
  423. package/dist/ui-src/pages/operations/maintenance.stx +15 -0
  424. package/dist/ui-src/pages/operations/observability.stx +76 -0
  425. package/dist/ui-src/pages/operations/previews.stx +62 -0
  426. package/dist/ui-src/pages/operations/queue.stx +158 -0
  427. package/dist/ui-src/pages/operations/regions.stx +12 -0
  428. package/dist/ui-src/pages/operations/releases.stx +39 -0
  429. package/dist/ui-src/pages/operations/workloads.stx +151 -0
  430. package/dist/ui-src/pages/partials/head.stx +148 -15
  431. package/dist/ui-src/pages/partials/nav.stx +491 -74
  432. package/dist/ui-src/pages/partials/op-confirm.stx +6 -6
  433. package/dist/ui-src/pages/security.stx +264 -0
  434. package/dist/ui-src/pages/server/actions.stx +17 -26
  435. package/dist/ui-src/pages/server/capacity.stx +16 -0
  436. package/dist/ui-src/pages/server/database.stx +31 -16
  437. package/dist/ui-src/pages/server/deployments.stx +28 -30
  438. package/dist/ui-src/pages/server/firewall.stx +25 -30
  439. package/dist/ui-src/pages/server/fleet.stx +10 -0
  440. package/dist/ui-src/pages/server/logs.stx +11 -9
  441. package/dist/ui-src/pages/server/metrics.stx +8 -16
  442. package/dist/ui-src/pages/server/services.stx +19 -28
  443. package/dist/ui-src/pages/server/sites.stx +75 -72
  444. package/dist/ui-src/pages/server/ssh-keys.stx +24 -30
  445. package/dist/ui-src/pages/server/team.stx +286 -149
  446. package/dist/ui-src/pages/server/terminal.stx +6 -28
  447. package/dist/ui-src/pages/serverless/alarms.stx +17 -31
  448. package/dist/ui-src/pages/serverless/assets.stx +13 -22
  449. package/dist/ui-src/pages/serverless/cost.stx +15 -3
  450. package/dist/ui-src/pages/serverless/data.stx +12 -25
  451. package/dist/ui-src/pages/serverless/deployments.stx +14 -23
  452. package/dist/ui-src/pages/serverless/firewall.stx +5 -1
  453. package/dist/ui-src/pages/serverless/functions.stx +20 -26
  454. package/dist/ui-src/pages/serverless/logs.stx +11 -10
  455. package/dist/ui-src/pages/serverless/metrics.stx +18 -17
  456. package/dist/ui-src/pages/serverless/queues.stx +34 -42
  457. package/dist/ui-src/pages/serverless/secrets.stx +31 -34
  458. package/dist/ui-src/pages/serverless/traces.stx +2 -6
  459. package/dist/ui-src/pages/serverless.stx +40 -74
  460. package/package.json +11 -11
  461. package/dist/chunk-b17vf1g1.js +0 -13787
  462. package/dist/chunk-b82pbxyp.js +0 -1572
  463. package/dist/chunk-pqfzdg68.js +0 -12
  464. package/dist/chunk-z58fqnjm.js +0 -10
  465. package/dist/ui-src/pages/server/backups.stx +0 -91
  466. package/dist/ui-src/pages/server/workers.stx +0 -99
  467. package/dist/ui-src/pages/serverless/scheduler.stx +0 -89
@@ -1,12 +1,213 @@
1
1
  import {
2
2
  AWSClient
3
- } from "./chunk-arsh1g5h.js";
3
+ } from "./chunk-zqtpg06c.js";
4
4
 
5
5
  // src/aws/cloudfront.ts
6
6
  class CloudFrontClient {
7
7
  client;
8
- constructor(profile) {
9
- this.client = new AWSClient;
8
+ constructor(profile, transport) {
9
+ this.client = transport ?? new AWSClient(undefined, { profile });
10
+ }
11
+ collectionItems(value, child) {
12
+ const items = value?.Items ?? value?.[child];
13
+ if (!items)
14
+ return [];
15
+ if (Array.isArray(items))
16
+ return items;
17
+ const nested = items[child] ?? items.Item;
18
+ if (nested === undefined)
19
+ return typeof items === "object" && (items.Id || items.PathPattern) ? [items] : [];
20
+ return Array.isArray(nested) ? nested : [nested];
21
+ }
22
+ validateExistingOriginInput(distributionId, input) {
23
+ if (!/^[A-Z0-9]{8,32}$/.test(distributionId))
24
+ throw new Error("CloudFront distribution ID is invalid");
25
+ if (!/^[A-Za-z0-9][A-Za-z0-9_.-]{0,127}$/.test(input.id))
26
+ throw new Error("CloudFront origin ID is invalid");
27
+ if (!/^(?=.{1,253}$)(?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?$/.test(input.domainName))
28
+ throw new Error("CloudFront origin must be a hostname without a scheme or path");
29
+ const pathPattern = input.pathPattern.startsWith("/") ? input.pathPattern : `/${input.pathPattern}`;
30
+ if (pathPattern === "/" || pathPattern === "/*" || !/^\/[A-Za-z0-9_.*?~!$&'()+,;=:@%/-]{1,255}$/.test(pathPattern))
31
+ throw new Error("CloudFront path pattern must be a non-default absolute pattern");
32
+ if (input.originPath && (!input.originPath.startsWith("/") || input.originPath.includes("..")))
33
+ throw new Error("CloudFront origin path must be absolute and traversal-free");
34
+ if (Object.entries(input.customHeaders ?? {}).some(([name, value]) => !/^[A-Za-z0-9-]{1,64}$/.test(name) || !value || value.length > 1024))
35
+ throw new Error("CloudFront custom origin headers are invalid");
36
+ return { ...input, pathPattern };
37
+ }
38
+ async upsertExistingDistributionOrigin(distributionId, rawInput) {
39
+ const input = this.validateExistingOriginInput(distributionId, rawInput);
40
+ const getResult = await this.client.request({
41
+ service: "cloudfront",
42
+ region: "us-east-1",
43
+ method: "GET",
44
+ path: `/2020-05-31/distribution/${distributionId}/config`,
45
+ returnHeaders: true
46
+ });
47
+ const etag = getResult.headers?.etag || getResult.headers?.ETag || getResult.ETag || "";
48
+ const config = getResult.body?.DistributionConfig || getResult.DistributionConfig || getResult.body;
49
+ if (!config || config.Enabled === undefined || !etag)
50
+ throw new Error("Failed to read an ETag-protected CloudFront distribution config");
51
+ const origins = this.collectionItems(config.Origins, "Origin");
52
+ const behaviors = this.collectionItems(config.CacheBehaviors, "CacheBehavior");
53
+ const existingOrigin = origins.find((value) => String(value.Id) === input.id);
54
+ const existingBehavior = behaviors.find((value) => String(value.PathPattern) === input.pathPattern);
55
+ if (existingOrigin && String(existingOrigin.DomainName) !== input.domainName && !input.replaceExisting)
56
+ throw new Error(`Origin ${input.id} already targets ${existingOrigin.DomainName}; pass replaceExisting only after reviewing the live config`);
57
+ if (existingBehavior && String(existingBehavior.TargetOriginId) !== input.id && !input.replaceExisting)
58
+ throw new Error(`Path ${input.pathPattern} already targets ${existingBehavior.TargetOriginId}; pass replaceExisting only after reviewing the live config`);
59
+ const origin = {
60
+ Id: input.id,
61
+ DomainName: input.domainName,
62
+ OriginPath: input.originPath ?? "",
63
+ CustomHeaders: {
64
+ Quantity: Object.keys(input.customHeaders ?? {}).length,
65
+ ...Object.keys(input.customHeaders ?? {}).length ? {
66
+ Items: {
67
+ OriginCustomHeader: Object.entries(input.customHeaders).map(([HeaderName, HeaderValue]) => ({
68
+ HeaderName,
69
+ HeaderValue
70
+ }))
71
+ }
72
+ } : {}
73
+ },
74
+ CustomOriginConfig: {
75
+ HTTPPort: 80,
76
+ HTTPSPort: 443,
77
+ OriginProtocolPolicy: input.protocolPolicy ?? "https-only",
78
+ OriginSslProtocols: { Quantity: 1, Items: { SslProtocol: ["TLSv1.2"] } },
79
+ OriginReadTimeout: 30,
80
+ OriginKeepaliveTimeout: 5
81
+ },
82
+ ConnectionAttempts: 3,
83
+ ConnectionTimeout: 10,
84
+ ...input.originAccessControlId ? { OriginAccessControlId: input.originAccessControlId } : {}
85
+ };
86
+ const methods = ["GET", "HEAD", "OPTIONS", "PUT", "POST", "PATCH", "DELETE"];
87
+ const behavior = {
88
+ PathPattern: input.pathPattern,
89
+ TargetOriginId: input.id,
90
+ ViewerProtocolPolicy: "redirect-to-https",
91
+ Compress: true,
92
+ CachePolicyId: "4135ea2d-6df8-44a3-9df3-4b5a84be39ad",
93
+ OriginRequestPolicyId: "b689b0a8-53d0-40ab-baf2-68738e2966ac",
94
+ AllowedMethods: {
95
+ Quantity: methods.length,
96
+ Items: { Method: methods },
97
+ CachedMethods: { Quantity: 2, Items: { Method: ["GET", "HEAD"] } }
98
+ },
99
+ SmoothStreaming: false,
100
+ FieldLevelEncryptionId: "",
101
+ TrustedSigners: { Enabled: false, Quantity: 0 },
102
+ TrustedKeyGroups: { Enabled: false, Quantity: 0 },
103
+ LambdaFunctionAssociations: { Quantity: 0 },
104
+ FunctionAssociations: { Quantity: 0 }
105
+ };
106
+ const nextOrigins = existingOrigin ? origins.map((value) => String(value.Id) === input.id ? origin : value) : [...origins, origin];
107
+ const nextBehaviors = existingBehavior ? behaviors.map((value) => String(value.PathPattern) === input.pathPattern ? behavior : value) : [...behaviors, behavior];
108
+ const changed = JSON.stringify(origins) !== JSON.stringify(nextOrigins) || JSON.stringify(behaviors) !== JSON.stringify(nextBehaviors);
109
+ if (!changed || input.dryRun)
110
+ return {
111
+ distributionId,
112
+ originId: input.id,
113
+ domainName: input.domainName,
114
+ pathPattern: input.pathPattern,
115
+ changed,
116
+ applied: false,
117
+ etag
118
+ };
119
+ config.Origins = { Quantity: nextOrigins.length, Items: { Origin: nextOrigins } };
120
+ config.CacheBehaviors = {
121
+ Quantity: nextBehaviors.length,
122
+ ...nextBehaviors.length ? { Items: { CacheBehavior: nextBehaviors } } : {}
123
+ };
124
+ const result = await this.client.request({
125
+ service: "cloudfront",
126
+ region: "us-east-1",
127
+ method: "PUT",
128
+ path: `/2020-05-31/distribution/${distributionId}/config`,
129
+ body: this.buildDistributionConfigXml(config),
130
+ headers: { "Content-Type": "application/xml", "If-Match": etag }
131
+ });
132
+ return {
133
+ distributionId,
134
+ originId: input.id,
135
+ domainName: input.domainName,
136
+ pathPattern: input.pathPattern,
137
+ changed: true,
138
+ applied: true,
139
+ etag: result.ETag || result.headers?.etag || ""
140
+ };
141
+ }
142
+ async removeExistingDistributionOrigin(distributionId, rawInput) {
143
+ const input = this.validateExistingOriginInput(distributionId, rawInput);
144
+ const getResult = await this.client.request({
145
+ service: "cloudfront",
146
+ region: "us-east-1",
147
+ method: "GET",
148
+ path: `/2020-05-31/distribution/${distributionId}/config`,
149
+ returnHeaders: true
150
+ });
151
+ const etag = getResult.headers?.etag || getResult.headers?.ETag || getResult.ETag || "";
152
+ const config = getResult.body?.DistributionConfig || getResult.DistributionConfig || getResult.body;
153
+ if (!config || config.Enabled === undefined || !etag)
154
+ throw new Error("Failed to read an ETag-protected CloudFront distribution config");
155
+ const origins = this.collectionItems(config.Origins, "Origin");
156
+ const behaviors = this.collectionItems(config.CacheBehaviors, "CacheBehavior");
157
+ const origin = origins.find((value) => String(value.Id) === input.id);
158
+ const behavior = behaviors.find((value) => String(value.PathPattern) === input.pathPattern);
159
+ if (origin && String(origin.DomainName) !== input.domainName)
160
+ throw new Error(`Origin ${input.id} no longer targets ${input.domainName}; refusing ambiguous removal`);
161
+ if (behavior && String(behavior.TargetOriginId) !== input.id)
162
+ throw new Error(`Path ${input.pathPattern} no longer targets ${input.id}; refusing ambiguous removal`);
163
+ if (!behavior)
164
+ return {
165
+ distributionId,
166
+ originId: input.id,
167
+ domainName: input.domainName,
168
+ pathPattern: input.pathPattern,
169
+ changed: false,
170
+ applied: false,
171
+ originRemoved: false,
172
+ etag
173
+ };
174
+ const nextBehaviors = behaviors.filter((value) => String(value.PathPattern) !== input.pathPattern);
175
+ const stillReferenced = String(config.DefaultCacheBehavior?.TargetOriginId) === input.id || nextBehaviors.some((value) => String(value.TargetOriginId) === input.id);
176
+ const nextOrigins = stillReferenced ? origins : origins.filter((value) => String(value.Id) !== input.id);
177
+ if (input.dryRun)
178
+ return {
179
+ distributionId,
180
+ originId: input.id,
181
+ domainName: input.domainName,
182
+ pathPattern: input.pathPattern,
183
+ changed: true,
184
+ applied: false,
185
+ originRemoved: !stillReferenced && !!origin,
186
+ etag
187
+ };
188
+ config.Origins = { Quantity: nextOrigins.length, Items: { Origin: nextOrigins } };
189
+ config.CacheBehaviors = {
190
+ Quantity: nextBehaviors.length,
191
+ ...nextBehaviors.length ? { Items: { CacheBehavior: nextBehaviors } } : {}
192
+ };
193
+ const result = await this.client.request({
194
+ service: "cloudfront",
195
+ region: "us-east-1",
196
+ method: "PUT",
197
+ path: `/2020-05-31/distribution/${distributionId}/config`,
198
+ body: this.buildDistributionConfigXml(config),
199
+ headers: { "Content-Type": "application/xml", "If-Match": etag }
200
+ });
201
+ return {
202
+ distributionId,
203
+ originId: input.id,
204
+ domainName: input.domainName,
205
+ pathPattern: input.pathPattern,
206
+ changed: true,
207
+ applied: true,
208
+ originRemoved: !stillReferenced && !!origin,
209
+ etag: result.ETag || result.headers?.etag || ""
210
+ };
10
211
  }
11
212
  async createInvalidation(options) {
12
213
  const callerReference = options.callerReference || Date.now().toString();
@@ -757,13 +958,13 @@ ${Object.entries(config).filter(([k]) => !k.startsWith("@_")).map(([key, val]) =
757
958
  ETag: result.headers?.etag || result.ETag || ""
758
959
  };
759
960
  }
760
- async findOrCreateOriginAccessControl(name) {
961
+ async findOrCreateOriginAccessControl(name, originType = "s3") {
761
962
  const oacs = await this.listOriginAccessControls();
762
- const existing = oacs.find((oac) => oac.Name === name);
963
+ const existing = oacs.find((oac) => oac.Name === name && oac.OriginAccessControlOriginType === originType);
763
964
  if (existing) {
764
965
  return { Id: existing.Id, Name: existing.Name, isNew: false };
765
966
  }
766
- const created = await this.createOriginAccessControl({ name });
967
+ const created = await this.createOriginAccessControl({ name, originType });
767
968
  return { Id: created.Id, Name: created.Name, isNew: true };
768
969
  }
769
970
  async createDistributionForS3(options) {
@@ -776,11 +977,18 @@ ${Object.entries(config).filter(([k]) => !k.startsWith("@_")).map(([key, val]) =
776
977
  defaultRootObject = "index.html",
777
978
  comment = `Distribution for ${bucketName}`,
778
979
  priceClass = "PriceClass_100",
779
- enabled = true
980
+ enabled = true,
981
+ trustedKeyGroupIds = [],
982
+ mediaDelivery = false
780
983
  } = options;
781
984
  const originId = `S3-${bucketName}`;
782
985
  const s3DomainName = `${bucketName}.s3.${bucketRegion}.amazonaws.com`;
783
986
  const callerReference = `${Date.now()}-${Math.random().toString(36).slice(2)}`;
987
+ const trustedKeyGroupsXml = trustedKeyGroupIds.length > 0 ? `<TrustedKeyGroups>
988
+ <Enabled>true</Enabled>
989
+ <Quantity>${trustedKeyGroupIds.length}</Quantity>
990
+ <Items>${trustedKeyGroupIds.map((id) => `<KeyGroup>${id}</KeyGroup>`).join("")}</Items>
991
+ </TrustedKeyGroups>` : `<TrustedKeyGroups><Enabled>false</Enabled><Quantity>0</Quantity></TrustedKeyGroups>`;
784
992
  let aliasesXml = "<Aliases><Quantity>0</Quantity></Aliases>";
785
993
  if (aliases.length > 0) {
786
994
  aliasesXml = `<Aliases>
@@ -840,6 +1048,7 @@ ${Object.entries(config).filter(([k]) => !k.startsWith("@_")).map(([key, val]) =
840
1048
  </AllowedMethods>
841
1049
  <Compress>true</Compress>
842
1050
  <CachePolicyId>658327ea-f89d-4fab-a63d-7e88639e58f6</CachePolicyId>
1051
+ ${trustedKeyGroupsXml}
843
1052
  </DefaultCacheBehavior>
844
1053
  ${aliasesXml}
845
1054
  ${viewerCertificateXml}
@@ -847,7 +1056,7 @@ ${Object.entries(config).filter(([k]) => !k.startsWith("@_")).map(([key, val]) =
847
1056
  <Enabled>${enabled}</Enabled>
848
1057
  <HttpVersion>http2and3</HttpVersion>
849
1058
  <IsIPV6Enabled>true</IsIPV6Enabled>
850
- <CustomErrorResponses>
1059
+ ${mediaDelivery ? "<CustomErrorResponses><Quantity>0</Quantity></CustomErrorResponses>" : `<CustomErrorResponses>
851
1060
  <Quantity>1</Quantity>
852
1061
  <Items>
853
1062
  <CustomErrorResponse>
@@ -857,7 +1066,7 @@ ${Object.entries(config).filter(([k]) => !k.startsWith("@_")).map(([key, val]) =
857
1066
  <ErrorCachingMinTTL>300</ErrorCachingMinTTL>
858
1067
  </CustomErrorResponse>
859
1068
  </Items>
860
- </CustomErrorResponses>
1069
+ </CustomErrorResponses>`}
861
1070
  </DistributionConfig>`;
862
1071
  const result = await this.client.request({
863
1072
  service: "cloudfront",
@@ -879,6 +1088,89 @@ ${Object.entries(config).filter(([k]) => !k.startsWith("@_")).map(([key, val]) =
879
1088
  ETag: result.headers?.etag || result.ETag || ""
880
1089
  };
881
1090
  }
1091
+ async createMediaDistributionForS3(options) {
1092
+ return this.createDistributionForS3({
1093
+ ...options,
1094
+ defaultRootObject: "",
1095
+ mediaDelivery: true,
1096
+ comment: options.comment ?? `Media distribution for ${options.bucketName}`
1097
+ });
1098
+ }
1099
+ async listPublicKeys() {
1100
+ const result = await this.client.request({
1101
+ service: "cloudfront",
1102
+ region: "us-east-1",
1103
+ method: "GET",
1104
+ path: "/2020-05-31/public-key"
1105
+ });
1106
+ const values = this.collectionItems(result.PublicKeyList ?? result, "PublicKeySummary");
1107
+ return values.map((value) => ({
1108
+ Id: String(value.Id),
1109
+ Name: String(value.Name),
1110
+ Comment: value.Comment ? String(value.Comment) : undefined
1111
+ }));
1112
+ }
1113
+ async createPublicKey(options) {
1114
+ if (!/^[A-Za-z0-9_-]{1,128}$/.test(options.name))
1115
+ throw new TypeError("CloudFront public key name is invalid");
1116
+ if (!options.encodedKey.includes("BEGIN PUBLIC KEY"))
1117
+ throw new TypeError("CloudFront public key must be PEM encoded");
1118
+ const escape = (value2) => value2.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1119
+ const result = await this.client.request({
1120
+ service: "cloudfront",
1121
+ region: "us-east-1",
1122
+ method: "POST",
1123
+ path: "/2020-05-31/public-key",
1124
+ headers: { "Content-Type": "application/xml" },
1125
+ body: `<PublicKeyConfig xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/"><CallerReference>${escape(options.callerReference ?? `${Date.now()}-${options.name}`)}</CallerReference><Name>${escape(options.name)}</Name><EncodedKey>${escape(options.encodedKey)}</EncodedKey><Comment>${escape(options.comment ?? "")}</Comment></PublicKeyConfig>`
1126
+ });
1127
+ const value = result.PublicKey ?? result;
1128
+ return {
1129
+ Id: String(value.Id),
1130
+ Name: String(value.PublicKeyConfig?.Name ?? options.name),
1131
+ EncodedKey: String(value.PublicKeyConfig?.EncodedKey ?? options.encodedKey),
1132
+ Comment: String(value.PublicKeyConfig?.Comment ?? options.comment ?? "")
1133
+ };
1134
+ }
1135
+ async listKeyGroups() {
1136
+ const result = await this.client.request({
1137
+ service: "cloudfront",
1138
+ region: "us-east-1",
1139
+ method: "GET",
1140
+ path: "/2020-05-31/key-group"
1141
+ });
1142
+ const values = this.collectionItems(result.KeyGroupList ?? result, "KeyGroupSummary");
1143
+ return values.map((value) => ({
1144
+ Id: String(value.KeyGroup?.Id ?? value.Id),
1145
+ Name: String(value.KeyGroup?.KeyGroupConfig?.Name ?? value.KeyGroupConfig?.Name ?? value.Name),
1146
+ Items: this.collectionItems(value.KeyGroup?.KeyGroupConfig?.Items ?? value.KeyGroupConfig?.Items ?? value.Items, "Item").map(String),
1147
+ Comment: value.KeyGroup?.KeyGroupConfig?.Comment ?? value.KeyGroupConfig?.Comment ?? value.Comment
1148
+ }));
1149
+ }
1150
+ async createKeyGroup(options) {
1151
+ if (!/^[A-Za-z0-9_-]{1,128}$/.test(options.name))
1152
+ throw new TypeError("CloudFront key group name is invalid");
1153
+ const publicKeyIds = [...new Set(options.publicKeyIds)];
1154
+ if (publicKeyIds.length === 0)
1155
+ throw new TypeError("CloudFront key group requires at least one public key");
1156
+ const escape = (value2) => value2.replaceAll("&", "&amp;").replaceAll("<", "&lt;").replaceAll(">", "&gt;");
1157
+ const items = publicKeyIds.map((id) => `<Item>${escape(id)}</Item>`).join("");
1158
+ const result = await this.client.request({
1159
+ service: "cloudfront",
1160
+ region: "us-east-1",
1161
+ method: "POST",
1162
+ path: "/2020-05-31/key-group",
1163
+ headers: { "Content-Type": "application/xml" },
1164
+ body: `<KeyGroupConfig xmlns="http://cloudfront.amazonaws.com/doc/2020-05-31/"><Name>${escape(options.name)}</Name><Items>${items}</Items><Comment>${escape(options.comment ?? "")}</Comment></KeyGroupConfig>`
1165
+ });
1166
+ const value = result.KeyGroup ?? result;
1167
+ return {
1168
+ Id: String(value.Id),
1169
+ Name: String(value.KeyGroupConfig?.Name ?? options.name),
1170
+ Items: publicKeyIds,
1171
+ Comment: String(value.KeyGroupConfig?.Comment ?? options.comment ?? "")
1172
+ };
1173
+ }
882
1174
  static getS3BucketPolicyForCloudFront(bucketName, distributionArn) {
883
1175
  return {
884
1176
  Version: "2012-10-17",
@@ -5,13 +5,13 @@ import {
5
5
  generateStaticSiteTemplate,
6
6
  invalidateCache,
7
7
  uploadStaticFiles
8
- } from "./chunk-jp2a8yad.js";
9
- import"./chunk-tjjgajbh.js";
10
- import"./chunk-3bfv1z4v.js";
11
- import"./chunk-tnztxpcb.js";
12
- import"./chunk-qpj3edwz.js";
13
- import"./chunk-vd87cpvn.js";
14
- import"./chunk-arsh1g5h.js";
8
+ } from "./chunk-vvkd46k1.js";
9
+ import"./chunk-01d86gt1.js";
10
+ import"./chunk-fv1bj3yt.js";
11
+ import"./chunk-4cjrg98a.js";
12
+ import"./chunk-32e7ya18.js";
13
+ import"./chunk-wj3s95p9.js";
14
+ import"./chunk-zqtpg06c.js";
15
15
  import"./chunk-v0bahtg2.js";
16
16
  export {
17
17
  uploadStaticFiles,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AWSClient
3
- } from "./chunk-arsh1g5h.js";
3
+ } from "./chunk-zqtpg06c.js";
4
4
 
5
5
  // src/aws/route53.ts
6
6
  class Route53Client {
@@ -355,15 +355,17 @@ class Route53Client {
355
355
  return this.changeResourceRecordSets({
356
356
  HostedZoneId: params.HostedZoneId,
357
357
  ChangeBatch: {
358
- Changes: [{
359
- Action: "UPSERT",
360
- ResourceRecordSet: {
361
- Name: params.Name,
362
- Type: "A",
363
- TTL: params.TTL || 300,
364
- ResourceRecords: values.map((v) => ({ Value: v }))
358
+ Changes: [
359
+ {
360
+ Action: "UPSERT",
361
+ ResourceRecordSet: {
362
+ Name: params.Name,
363
+ Type: "A",
364
+ TTL: params.TTL || 300,
365
+ ResourceRecords: values.map((v) => ({ Value: v }))
366
+ }
365
367
  }
366
- }]
368
+ ]
367
369
  }
368
370
  });
369
371
  }
@@ -371,15 +373,17 @@ class Route53Client {
371
373
  return this.changeResourceRecordSets({
372
374
  HostedZoneId: params.HostedZoneId,
373
375
  ChangeBatch: {
374
- Changes: [{
375
- Action: "UPSERT",
376
- ResourceRecordSet: {
377
- Name: params.Name,
378
- Type: "CNAME",
379
- TTL: params.TTL || 300,
380
- ResourceRecords: [{ Value: params.Value }]
376
+ Changes: [
377
+ {
378
+ Action: "UPSERT",
379
+ ResourceRecordSet: {
380
+ Name: params.Name,
381
+ Type: "CNAME",
382
+ TTL: params.TTL || 300,
383
+ ResourceRecords: [{ Value: params.Value }]
384
+ }
381
385
  }
382
- }]
386
+ ]
383
387
  }
384
388
  });
385
389
  }
@@ -387,18 +391,20 @@ class Route53Client {
387
391
  return this.changeResourceRecordSets({
388
392
  HostedZoneId: params.HostedZoneId,
389
393
  ChangeBatch: {
390
- Changes: [{
391
- Action: "UPSERT",
392
- ResourceRecordSet: {
393
- Name: params.Name,
394
- Type: params.Type || "A",
395
- AliasTarget: {
396
- HostedZoneId: params.TargetHostedZoneId,
397
- DNSName: params.TargetDNSName,
398
- EvaluateTargetHealth: params.EvaluateTargetHealth ?? false
394
+ Changes: [
395
+ {
396
+ Action: "UPSERT",
397
+ ResourceRecordSet: {
398
+ Name: params.Name,
399
+ Type: params.Type || "A",
400
+ AliasTarget: {
401
+ HostedZoneId: params.TargetHostedZoneId,
402
+ DNSName: params.TargetDNSName,
403
+ EvaluateTargetHealth: params.EvaluateTargetHealth ?? false
404
+ }
399
405
  }
400
406
  }
401
- }]
407
+ ]
402
408
  }
403
409
  });
404
410
  }
@@ -413,15 +419,17 @@ class Route53Client {
413
419
  return this.changeResourceRecordSets({
414
420
  HostedZoneId: params.HostedZoneId,
415
421
  ChangeBatch: {
416
- Changes: [{
417
- Action: "UPSERT",
418
- ResourceRecordSet: {
419
- Name: params.Name,
420
- Type: "TXT",
421
- TTL: params.TTL || 300,
422
- ResourceRecords: quotedValues.map((v) => ({ Value: v }))
422
+ Changes: [
423
+ {
424
+ Action: "UPSERT",
425
+ ResourceRecordSet: {
426
+ Name: params.Name,
427
+ Type: "TXT",
428
+ TTL: params.TTL || 300,
429
+ ResourceRecords: quotedValues.map((v) => ({ Value: v }))
430
+ }
423
431
  }
424
- }]
432
+ ]
425
433
  }
426
434
  });
427
435
  }
@@ -429,17 +437,19 @@ class Route53Client {
429
437
  return this.changeResourceRecordSets({
430
438
  HostedZoneId: params.HostedZoneId,
431
439
  ChangeBatch: {
432
- Changes: [{
433
- Action: "UPSERT",
434
- ResourceRecordSet: {
435
- Name: params.Name,
436
- Type: "MX",
437
- TTL: params.TTL || 300,
438
- ResourceRecords: params.Values.map((v) => ({
439
- Value: `${v.priority} ${v.mailServer}`
440
- }))
440
+ Changes: [
441
+ {
442
+ Action: "UPSERT",
443
+ ResourceRecordSet: {
444
+ Name: params.Name,
445
+ Type: "MX",
446
+ TTL: params.TTL || 300,
447
+ ResourceRecords: params.Values.map((v) => ({
448
+ Value: `${v.priority} ${v.mailServer}`
449
+ }))
450
+ }
441
451
  }
442
- }]
452
+ ]
443
453
  }
444
454
  });
445
455
  }
@@ -447,10 +457,12 @@ class Route53Client {
447
457
  return this.changeResourceRecordSets({
448
458
  HostedZoneId: params.HostedZoneId,
449
459
  ChangeBatch: {
450
- Changes: [{
451
- Action: "DELETE",
452
- ResourceRecordSet: params.RecordSet
453
- }]
460
+ Changes: [
461
+ {
462
+ Action: "DELETE",
463
+ ResourceRecordSet: params.RecordSet
464
+ }
465
+ ]
454
466
  }
455
467
  });
456
468
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AWSClient
3
- } from "./chunk-arsh1g5h.js";
3
+ } from "./chunk-zqtpg06c.js";
4
4
 
5
5
  // src/aws/cloudformation.ts
6
6
  class CloudFormationClient {
@@ -8,7 +8,7 @@ class CloudFormationClient {
8
8
  region;
9
9
  constructor(region = "us-east-1", profile) {
10
10
  this.region = region;
11
- this.client = new AWSClient;
11
+ this.client = new AWSClient(undefined, { profile });
12
12
  }
13
13
  async createStack(options) {
14
14
  const params = {
@@ -558,11 +558,7 @@ class CloudFormationClient {
558
558
  throw new Error(`Timeout waiting for stack to reach ${waitType}`);
559
559
  }
560
560
  async waitForStackComplete(stackName, maxAttempts = 120, delayMs = 5000) {
561
- const successStatuses = [
562
- "CREATE_COMPLETE",
563
- "UPDATE_COMPLETE",
564
- "DELETE_COMPLETE"
565
- ];
561
+ const successStatuses = ["CREATE_COMPLETE", "UPDATE_COMPLETE", "DELETE_COMPLETE"];
566
562
  const failureStatuses = [
567
563
  "CREATE_FAILED",
568
564
  "UPDATE_FAILED",
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AWSClient
3
- } from "./chunk-arsh1g5h.js";
3
+ } from "./chunk-zqtpg06c.js";
4
4
 
5
5
  // src/aws/ecr.ts
6
6
  class ECRClient {
@@ -8,7 +8,7 @@ class ECRClient {
8
8
  region;
9
9
  constructor(region = "us-east-1", profile) {
10
10
  this.region = region;
11
- this.client = new AWSClient;
11
+ this.client = new AWSClient(undefined, { profile });
12
12
  }
13
13
  async createRepository(options) {
14
14
  const params = {
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  AWSClient
3
- } from "./chunk-arsh1g5h.js";
3
+ } from "./chunk-zqtpg06c.js";
4
4
 
5
5
  // src/aws/ec2.ts
6
6
  class EC2Client {