sst 3.0.0 → 3.0.1-10

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 (460) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +2 -0
  3. package/dist/resource.d.ts +4 -0
  4. package/dist/resource.js +15 -0
  5. package/dist/vector-client.d.ts +126 -0
  6. package/dist/vector-client.js +38 -0
  7. package/package.json +16 -137
  8. package/LICENSE +0 -21
  9. package/README.md +0 -43
  10. package/bootstrap.d.ts +0 -5
  11. package/bootstrap.js +0 -318
  12. package/bus.d.ts +0 -20
  13. package/bus.js +0 -52
  14. package/cache.d.ts +0 -4
  15. package/cache.js +0 -31
  16. package/cdk/deploy-stack.d.ts +0 -223
  17. package/cdk/deploy-stack.js +0 -562
  18. package/cdk/deployments-wrapper.d.ts +0 -3
  19. package/cdk/deployments-wrapper.js +0 -135
  20. package/cdk/deployments.d.ts +0 -327
  21. package/cdk/deployments.js +0 -360
  22. package/cdk/util.d.ts +0 -1
  23. package/cdk/util.js +0 -17
  24. package/cli/ci-info.d.ts +0 -4
  25. package/cli/ci-info.js +0 -8
  26. package/cli/colors.d.ts +0 -17
  27. package/cli/colors.js +0 -27
  28. package/cli/commands/bind.d.ts +0 -19
  29. package/cli/commands/bind.js +0 -360
  30. package/cli/commands/bootstrap.d.ts +0 -15
  31. package/cli/commands/bootstrap.js +0 -11
  32. package/cli/commands/build.d.ts +0 -17
  33. package/cli/commands/build.js +0 -25
  34. package/cli/commands/connect.d.ts +0 -17
  35. package/cli/commands/connect.js +0 -55
  36. package/cli/commands/console.d.ts +0 -15
  37. package/cli/commands/console.js +0 -22
  38. package/cli/commands/deploy.d.ts +0 -19
  39. package/cli/commands/deploy.js +0 -112
  40. package/cli/commands/dev.d.ts +0 -25
  41. package/cli/commands/dev.js +0 -351
  42. package/cli/commands/diff.d.ts +0 -19
  43. package/cli/commands/diff.js +0 -89
  44. package/cli/commands/plugins/kysely.d.ts +0 -1
  45. package/cli/commands/plugins/kysely.js +0 -87
  46. package/cli/commands/plugins/pothos.d.ts +0 -1
  47. package/cli/commands/plugins/pothos.js +0 -58
  48. package/cli/commands/plugins/warmer.d.ts +0 -1
  49. package/cli/commands/plugins/warmer.js +0 -33
  50. package/cli/commands/remove.d.ts +0 -19
  51. package/cli/commands/remove.js +0 -62
  52. package/cli/commands/secrets/get.d.ts +0 -19
  53. package/cli/commands/secrets/get.js +0 -27
  54. package/cli/commands/secrets/list.d.ts +0 -19
  55. package/cli/commands/secrets/list.js +0 -69
  56. package/cli/commands/secrets/load.d.ts +0 -17
  57. package/cli/commands/secrets/load.js +0 -47
  58. package/cli/commands/secrets/remove.d.ts +0 -19
  59. package/cli/commands/secrets/remove.js +0 -27
  60. package/cli/commands/secrets/secrets.d.ts +0 -2
  61. package/cli/commands/secrets/secrets.js +0 -16
  62. package/cli/commands/secrets/set.d.ts +0 -21
  63. package/cli/commands/secrets/set.js +0 -54
  64. package/cli/commands/telemetry.d.ts +0 -17
  65. package/cli/commands/telemetry.js +0 -24
  66. package/cli/commands/transform.d.ts +0 -17
  67. package/cli/commands/transform.js +0 -62
  68. package/cli/commands/types.d.ts +0 -15
  69. package/cli/commands/types.js +0 -25
  70. package/cli/commands/update.d.ts +0 -17
  71. package/cli/commands/update.js +0 -116
  72. package/cli/commands/version.d.ts +0 -15
  73. package/cli/commands/version.js +0 -15
  74. package/cli/local/router.d.ts +0 -44
  75. package/cli/local/router.js +0 -43
  76. package/cli/local/server.d.ts +0 -22
  77. package/cli/local/server.js +0 -319
  78. package/cli/program.d.ts +0 -19
  79. package/cli/program.js +0 -87
  80. package/cli/spinner.d.ts +0 -3
  81. package/cli/spinner.js +0 -14
  82. package/cli/sst.d.ts +0 -2
  83. package/cli/sst.js +0 -74
  84. package/cli/telemetry/environment.d.ts +0 -15
  85. package/cli/telemetry/environment.js +0 -27
  86. package/cli/telemetry/post-payload.d.ts +0 -1
  87. package/cli/telemetry/post-payload.js +0 -27
  88. package/cli/telemetry/project-id.d.ts +0 -2
  89. package/cli/telemetry/project-id.js +0 -47
  90. package/cli/telemetry/telemetry.d.ts +0 -19
  91. package/cli/telemetry/telemetry.js +0 -103
  92. package/cli/terminal.d.ts +0 -1
  93. package/cli/terminal.js +0 -8
  94. package/cli/ui/deploy.d.ts +0 -10
  95. package/cli/ui/deploy.js +0 -172
  96. package/cli/ui/functions.d.ts +0 -2
  97. package/cli/ui/functions.js +0 -130
  98. package/cli/ui/header.d.ts +0 -5
  99. package/cli/ui/header.js +0 -16
  100. package/cli/ui/stack.d.ts +0 -1
  101. package/cli/ui/stack.js +0 -6
  102. package/config.d.ts +0 -56
  103. package/config.js +0 -244
  104. package/constructs/Api.d.ts +0 -814
  105. package/constructs/Api.js +0 -743
  106. package/constructs/ApiGatewayV1Api.d.ts +0 -642
  107. package/constructs/ApiGatewayV1Api.js +0 -767
  108. package/constructs/App.d.ts +0 -168
  109. package/constructs/App.js +0 -493
  110. package/constructs/AppSyncApi.d.ts +0 -550
  111. package/constructs/AppSyncApi.js +0 -493
  112. package/constructs/AstroSite.d.ts +0 -39
  113. package/constructs/AstroSite.js +0 -78
  114. package/constructs/AstroSite.tsdoc.d.ts +0 -2
  115. package/constructs/AstroSite.tsdoc.js +0 -2
  116. package/constructs/Auth.d.ts +0 -100
  117. package/constructs/Auth.js +0 -177
  118. package/constructs/BaseSite.d.ts +0 -29
  119. package/constructs/BaseSite.js +0 -43
  120. package/constructs/Bucket.d.ts +0 -364
  121. package/constructs/Bucket.js +0 -327
  122. package/constructs/Cognito.d.ts +0 -232
  123. package/constructs/Cognito.js +0 -370
  124. package/constructs/Config.d.ts +0 -3
  125. package/constructs/Config.js +0 -3
  126. package/constructs/Construct.d.ts +0 -23
  127. package/constructs/Construct.js +0 -46
  128. package/constructs/Cron.d.ts +0 -164
  129. package/constructs/Cron.js +0 -114
  130. package/constructs/Distribution.d.ts +0 -143
  131. package/constructs/Distribution.js +0 -260
  132. package/constructs/EdgeFunction.d.ts +0 -49
  133. package/constructs/EdgeFunction.js +0 -442
  134. package/constructs/EventBus.d.ts +0 -444
  135. package/constructs/EventBus.js +0 -440
  136. package/constructs/Function.d.ts +0 -690
  137. package/constructs/Function.js +0 -583
  138. package/constructs/FunctionalStack.d.ts +0 -13
  139. package/constructs/FunctionalStack.js +0 -62
  140. package/constructs/Job.d.ts +0 -337
  141. package/constructs/Job.js +0 -404
  142. package/constructs/KinesisStream.d.ts +0 -224
  143. package/constructs/KinesisStream.js +0 -207
  144. package/constructs/Metadata.d.ts +0 -60
  145. package/constructs/Metadata.js +0 -1
  146. package/constructs/NextjsSite.d.ts +0 -104
  147. package/constructs/NextjsSite.js +0 -308
  148. package/constructs/Parameter.d.ts +0 -37
  149. package/constructs/Parameter.js +0 -53
  150. package/constructs/Queue.d.ts +0 -194
  151. package/constructs/Queue.js +0 -204
  152. package/constructs/RDS.d.ts +0 -221
  153. package/constructs/RDS.js +0 -363
  154. package/constructs/RemixSite.d.ts +0 -42
  155. package/constructs/RemixSite.js +0 -158
  156. package/constructs/RemixSite.tsdoc.d.ts +0 -2
  157. package/constructs/RemixSite.tsdoc.js +0 -2
  158. package/constructs/Script.d.ts +0 -160
  159. package/constructs/Script.js +0 -179
  160. package/constructs/Secret.d.ts +0 -30
  161. package/constructs/Secret.js +0 -59
  162. package/constructs/Service.d.ts +0 -487
  163. package/constructs/Service.js +0 -655
  164. package/constructs/SolidStartSite.d.ts +0 -37
  165. package/constructs/SolidStartSite.js +0 -66
  166. package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
  167. package/constructs/SolidStartSite.tsdoc.js +0 -2
  168. package/constructs/SsrFunction.d.ts +0 -60
  169. package/constructs/SsrFunction.js +0 -226
  170. package/constructs/SsrSite.d.ts +0 -407
  171. package/constructs/SsrSite.js +0 -850
  172. package/constructs/Stack.d.ts +0 -127
  173. package/constructs/Stack.js +0 -243
  174. package/constructs/StaticSite.d.ts +0 -348
  175. package/constructs/StaticSite.js +0 -468
  176. package/constructs/SvelteKitSite.d.ts +0 -40
  177. package/constructs/SvelteKitSite.js +0 -106
  178. package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
  179. package/constructs/SvelteKitSite.tsdoc.js +0 -2
  180. package/constructs/Table.d.ts +0 -410
  181. package/constructs/Table.js +0 -425
  182. package/constructs/Topic.d.ts +0 -257
  183. package/constructs/Topic.js +0 -273
  184. package/constructs/WebSocketApi.d.ts +0 -355
  185. package/constructs/WebSocketApi.js +0 -404
  186. package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
  187. package/constructs/cdk/HttpAwsIntegration.js +0 -24
  188. package/constructs/cdk/certificate-base.d.ts +0 -18
  189. package/constructs/cdk/certificate-base.js +0 -26
  190. package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
  191. package/constructs/cdk/dns-validated-certificate.js +0 -125
  192. package/constructs/cdk/website-redirect.d.ts +0 -53
  193. package/constructs/cdk/website-redirect.js +0 -77
  194. package/constructs/context.d.ts +0 -3
  195. package/constructs/context.js +0 -27
  196. package/constructs/deferred_task.d.ts +0 -6
  197. package/constructs/deferred_task.js +0 -45
  198. package/constructs/deprecated/NextjsSite.d.ts +0 -309
  199. package/constructs/deprecated/NextjsSite.js +0 -1074
  200. package/constructs/deprecated/cross-region-helper.d.ts +0 -7
  201. package/constructs/deprecated/cross-region-helper.js +0 -152
  202. package/constructs/deprecated/index.d.ts +0 -1
  203. package/constructs/deprecated/index.js +0 -1
  204. package/constructs/future/Auth.d.ts +0 -80
  205. package/constructs/future/Auth.js +0 -122
  206. package/constructs/future/index.d.ts +0 -1
  207. package/constructs/future/index.js +0 -1
  208. package/constructs/index.d.ts +0 -32
  209. package/constructs/index.js +0 -32
  210. package/constructs/static-file-list.d.ts +0 -1
  211. package/constructs/static-file-list.js +0 -51
  212. package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
  213. package/constructs/util/apiGatewayV1AccessLog.js +0 -76
  214. package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
  215. package/constructs/util/apiGatewayV2AccessLog.js +0 -107
  216. package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
  217. package/constructs/util/apiGatewayV2Cors.js +0 -21
  218. package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
  219. package/constructs/util/apiGatewayV2Domain.js +0 -208
  220. package/constructs/util/appSyncApiDomain.d.ts +0 -41
  221. package/constructs/util/appSyncApiDomain.js +0 -176
  222. package/constructs/util/builder.d.ts +0 -3
  223. package/constructs/util/builder.js +0 -9
  224. package/constructs/util/duration.d.ts +0 -3
  225. package/constructs/util/duration.js +0 -19
  226. package/constructs/util/functionBinding.d.ts +0 -31
  227. package/constructs/util/functionBinding.js +0 -104
  228. package/constructs/util/functionUrlCors.d.ts +0 -67
  229. package/constructs/util/functionUrlCors.js +0 -23
  230. package/constructs/util/permission.d.ts +0 -8
  231. package/constructs/util/permission.js +0 -228
  232. package/constructs/util/size.d.ts +0 -3
  233. package/constructs/util/size.js +0 -12
  234. package/constructs/util/warning.d.ts +0 -11
  235. package/constructs/util/warning.js +0 -21
  236. package/context/context.d.ts +0 -13
  237. package/context/context.js +0 -69
  238. package/context/context2.d.ts +0 -16
  239. package/context/context2.js +0 -108
  240. package/context/handler.d.ts +0 -25
  241. package/context/handler.js +0 -21
  242. package/context/index.d.ts +0 -2
  243. package/context/index.js +0 -2
  244. package/credentials.d.ts +0 -9
  245. package/credentials.js +0 -145
  246. package/error.d.ts +0 -6
  247. package/error.js +0 -10
  248. package/index.d.ts +0 -1
  249. package/index.js +0 -1
  250. package/iot.d.ts +0 -6
  251. package/iot.js +0 -163
  252. package/logger.d.ts +0 -3
  253. package/logger.js +0 -32
  254. package/node/actor/index.d.ts +0 -29
  255. package/node/actor/index.js +0 -17
  256. package/node/api/index.d.ts +0 -64
  257. package/node/api/index.js +0 -179
  258. package/node/auth/adapter/adapter.d.ts +0 -3
  259. package/node/auth/adapter/adapter.js +0 -3
  260. package/node/auth/adapter/facebook.d.ts +0 -2
  261. package/node/auth/adapter/facebook.js +0 -26
  262. package/node/auth/adapter/github.d.ts +0 -2
  263. package/node/auth/adapter/github.js +0 -21
  264. package/node/auth/adapter/google.d.ts +0 -9
  265. package/node/auth/adapter/google.js +0 -18
  266. package/node/auth/adapter/link.d.ts +0 -8
  267. package/node/auth/adapter/link.js +0 -39
  268. package/node/auth/adapter/oauth.d.ts +0 -25
  269. package/node/auth/adapter/oauth.js +0 -52
  270. package/node/auth/adapter/oidc.d.ts +0 -17
  271. package/node/auth/adapter/oidc.js +0 -50
  272. package/node/auth/adapter/twitch.d.ts +0 -2
  273. package/node/auth/adapter/twitch.js +0 -11
  274. package/node/auth/auth.d.ts +0 -24
  275. package/node/auth/auth.js +0 -74
  276. package/node/auth/index.d.ts +0 -13
  277. package/node/auth/index.js +0 -12
  278. package/node/auth/session.d.ts +0 -76
  279. package/node/auth/session.js +0 -121
  280. package/node/bucket/index.d.ts +0 -3
  281. package/node/bucket/index.js +0 -2
  282. package/node/config/index.d.ts +0 -13
  283. package/node/config/index.js +0 -22
  284. package/node/event-bus/index.d.ts +0 -51
  285. package/node/event-bus/index.js +0 -76
  286. package/node/function/index.d.ts +0 -3
  287. package/node/function/index.js +0 -3
  288. package/node/future/auth/adapter/adapter.d.ts +0 -10
  289. package/node/future/auth/adapter/adapter.js +0 -1
  290. package/node/future/auth/adapter/code.d.ts +0 -17
  291. package/node/future/auth/adapter/code.js +0 -68
  292. package/node/future/auth/adapter/facebook.d.ts +0 -16
  293. package/node/future/auth/adapter/facebook.js +0 -27
  294. package/node/future/auth/adapter/github.d.ts +0 -23
  295. package/node/future/auth/adapter/github.js +0 -23
  296. package/node/future/auth/adapter/google.d.ts +0 -28
  297. package/node/future/auth/adapter/google.js +0 -22
  298. package/node/future/auth/adapter/link.d.ts +0 -13
  299. package/node/future/auth/adapter/link.js +0 -47
  300. package/node/future/auth/adapter/microsoft.d.ts +0 -22
  301. package/node/future/auth/adapter/microsoft.js +0 -16
  302. package/node/future/auth/adapter/oauth.d.ts +0 -41
  303. package/node/future/auth/adapter/oauth.js +0 -67
  304. package/node/future/auth/adapter/oidc.d.ts +0 -30
  305. package/node/future/auth/adapter/oidc.js +0 -63
  306. package/node/future/auth/adapter/spotify.d.ts +0 -23
  307. package/node/future/auth/adapter/spotify.js +0 -22
  308. package/node/future/auth/encryption.d.ts +0 -2
  309. package/node/future/auth/encryption.js +0 -30
  310. package/node/future/auth/handler.d.ts +0 -46
  311. package/node/future/auth/handler.js +0 -280
  312. package/node/future/auth/index.d.ts +0 -17
  313. package/node/future/auth/index.js +0 -15
  314. package/node/future/auth/session.d.ts +0 -71
  315. package/node/future/auth/session.js +0 -146
  316. package/node/graphql/index.d.ts +0 -15
  317. package/node/graphql/index.js +0 -32
  318. package/node/job/index.d.ts +0 -37
  319. package/node/job/index.js +0 -64
  320. package/node/kinesis-stream/index.d.ts +0 -3
  321. package/node/kinesis-stream/index.js +0 -3
  322. package/node/queue/index.d.ts +0 -3
  323. package/node/queue/index.js +0 -2
  324. package/node/rds/index.d.ts +0 -3
  325. package/node/rds/index.js +0 -2
  326. package/node/service/index.d.ts +0 -3
  327. package/node/service/index.js +0 -4
  328. package/node/site/index.d.ts +0 -18
  329. package/node/site/index.js +0 -18
  330. package/node/table/index.d.ts +0 -3
  331. package/node/table/index.js +0 -4
  332. package/node/topic/index.d.ts +0 -3
  333. package/node/topic/index.js +0 -4
  334. package/node/util/index.d.ts +0 -2
  335. package/node/util/index.js +0 -196
  336. package/node/util/loader.d.ts +0 -2
  337. package/node/util/loader.js +0 -51
  338. package/node/websocket-api/index.d.ts +0 -23
  339. package/node/websocket-api/index.js +0 -48
  340. package/pothos.d.ts +0 -7
  341. package/pothos.js +0 -160
  342. package/project.d.ts +0 -75
  343. package/project.js +0 -188
  344. package/runtime/handlers/container.d.ts +0 -2
  345. package/runtime/handlers/container.js +0 -263
  346. package/runtime/handlers/dotnet.d.ts +0 -2
  347. package/runtime/handlers/dotnet.js +0 -115
  348. package/runtime/handlers/go.d.ts +0 -2
  349. package/runtime/handlers/go.js +0 -126
  350. package/runtime/handlers/java.d.ts +0 -2
  351. package/runtime/handlers/java.js +0 -103
  352. package/runtime/handlers/node.d.ts +0 -2
  353. package/runtime/handlers/node.js +0 -269
  354. package/runtime/handlers/python.d.ts +0 -2
  355. package/runtime/handlers/python.js +0 -141
  356. package/runtime/handlers/pythonBundling.d.ts +0 -82
  357. package/runtime/handlers/pythonBundling.js +0 -80
  358. package/runtime/handlers/rust.d.ts +0 -2
  359. package/runtime/handlers/rust.js +0 -110
  360. package/runtime/handlers.d.ts +0 -74
  361. package/runtime/handlers.js +0 -151
  362. package/runtime/iot.d.ts +0 -1
  363. package/runtime/iot.js +0 -17
  364. package/runtime/runtime.d.ts +0 -32
  365. package/runtime/runtime.js +0 -1
  366. package/runtime/server.d.ts +0 -6
  367. package/runtime/server.js +0 -150
  368. package/runtime/workers.d.ts +0 -37
  369. package/runtime/workers.js +0 -85
  370. package/stacks/app-metadata.d.ts +0 -7
  371. package/stacks/app-metadata.js +0 -75
  372. package/stacks/assembly.d.ts +0 -1
  373. package/stacks/assembly.js +0 -4
  374. package/stacks/build.d.ts +0 -9
  375. package/stacks/build.js +0 -110
  376. package/stacks/deploy.d.ts +0 -9
  377. package/stacks/deploy.js +0 -240
  378. package/stacks/diff.d.ts +0 -8
  379. package/stacks/diff.js +0 -62
  380. package/stacks/index.d.ts +0 -10
  381. package/stacks/index.js +0 -10
  382. package/stacks/metadata.d.ts +0 -11
  383. package/stacks/metadata.js +0 -83
  384. package/stacks/monitor.d.ts +0 -32
  385. package/stacks/monitor.js +0 -151
  386. package/stacks/remove.d.ts +0 -8
  387. package/stacks/remove.js +0 -76
  388. package/stacks/synth.d.ts +0 -12
  389. package/stacks/synth.js +0 -94
  390. package/support/base-site-archiver.mjs +0 -99
  391. package/support/base-site-custom-resource/s3-handler.py +0 -195
  392. package/support/base-site-custom-resource/s3-upload.py +0 -89
  393. package/support/bootstrap-metadata-function/index.mjs +0 -58011
  394. package/support/bridge/Dockerfile +0 -3
  395. package/support/bridge/bridge.mjs +0 -146
  396. package/support/certificate-requestor/index.js +0 -549
  397. package/support/custom-resources/index.mjs +0 -180627
  398. package/support/dotnet31-bootstrap/Program.cs +0 -17
  399. package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
  400. package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  401. package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  402. package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  403. package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
  404. package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
  405. package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
  406. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
  407. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
  408. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  409. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
  410. package/support/dotnet6-bootstrap/Program.cs +0 -17
  411. package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
  412. package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  413. package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  414. package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
  415. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
  416. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
  417. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  418. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
  419. package/support/edge-function/edge-lambda-version.mjs +0 -3
  420. package/support/edge-function/edge-lambda.mjs +0 -3
  421. package/support/edge-function/s3-bucket.mjs +0 -3
  422. package/support/event-bus-retrier/index.mjs +0 -75
  423. package/support/java-runtime/install.sh +0 -25
  424. package/support/java-runtime/pom.xml +0 -39
  425. package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
  426. package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
  427. package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
  428. package/support/job-manager/index.mjs +0 -57679
  429. package/support/nixpacks/Dockerfile +0 -6
  430. package/support/nodejs-runtime/index.mjs +0 -169
  431. package/support/python-runtime/Dockerfile +0 -9
  432. package/support/python-runtime/Dockerfile.custom +0 -21
  433. package/support/python-runtime/Dockerfile.dependencies +0 -26
  434. package/support/python-runtime/runtime.py +0 -127
  435. package/support/rds-migrator/index.mjs +0 -49
  436. package/support/remix-site-function/edge-server.js +0 -161
  437. package/support/remix-site-function/polyfill.js +0 -24
  438. package/support/remix-site-function/regional-server.js +0 -164
  439. package/support/script-function/index.mjs +0 -48760
  440. package/support/service-dev-function/index.js +0 -1
  441. package/support/signing-function/index.mjs +0 -3769
  442. package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
  443. package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
  444. package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
  445. package/support/sls-nextjs-site-stub/index.html +0 -99
  446. package/support/ssr-site-function-archiver.mjs +0 -96
  447. package/support/ssr-site-function-stub/index.js +0 -5
  448. package/support/ssr-warmer/index.mjs +0 -34235
  449. package/util/error.d.ts +0 -3
  450. package/util/error.js +0 -6
  451. package/util/fs.d.ts +0 -4
  452. package/util/fs.js +0 -46
  453. package/util/lazy.d.ts +0 -1
  454. package/util/lazy.js +0 -11
  455. package/util/module.d.ts +0 -1
  456. package/util/module.js +0 -5
  457. package/util/process.d.ts +0 -2
  458. package/util/process.js +0 -3
  459. package/watcher.d.ts +0 -14
  460. package/watcher.js +0 -35
@@ -1,360 +0,0 @@
1
- import path from "path";
2
- import { VisibleError } from "../../error.js";
3
- class MetadataNotFoundError extends Error {
4
- }
5
- class MetadataOutdatedError extends Error {
6
- }
7
- export const bind = (program) => program
8
- .command(["bind <command..>", "env <command..>"], "Bind your app's resources to a command", (yargs) => yargs
9
- .option("script", {
10
- type: "boolean",
11
- describe: "Run in script mode",
12
- })
13
- .array("command")
14
- .example(`sst bind vitest run`, "Bind resources to your tests")
15
- .example(`sst bind next dev`, "Bind resources to your site")
16
- .example(`sst bind --script next build`, "Bind resources to your site before deployment"), async (args) => {
17
- const { Token } = await import("aws-cdk-lib");
18
- const { spawn } = await import("child_process");
19
- const kill = await import("tree-kill");
20
- const { exit, exitWithError } = await import("../program.js");
21
- const { useProject } = await import("../../project.js");
22
- const { Stacks } = await import("../../stacks/index.js");
23
- const { useBus } = await import("../../bus.js");
24
- const { useIOT } = await import("../../iot.js");
25
- const { Colors } = await import("../colors.js");
26
- const { Logger } = await import("../../logger.js");
27
- const [{ useServices }, { useSites: useSsrSites }, { useSites: useStaticSites }, { useSites: useSlsNextjsSites }, { Parameter }, { getEnvironmentKey },] = await Promise.all([
28
- import("../../constructs/Service.js"),
29
- import("../../constructs/SsrSite.js"),
30
- import("../../constructs/StaticSite.js"),
31
- import("../../constructs/deprecated/NextjsSite.js"),
32
- import("../../constructs/Config.js"),
33
- import("../../constructs/util/functionBinding.js"),
34
- ]);
35
- try {
36
- // Handle deprecated "env" command
37
- if (args._[0] === "env") {
38
- Colors.line(Colors.warning(`Warning: ${Colors.bold(`sst env`)} has been renamed to ${Colors.bold(`sst bind`)}`));
39
- }
40
- // Handle missing command
41
- const command = args.command?.join(" ");
42
- if (!command) {
43
- throw new VisibleError("Command is required, e.g. sst bind npm run script");
44
- }
45
- await useIOT();
46
- const bus = useBus();
47
- const project = useProject();
48
- let p;
49
- let timer;
50
- let siteConfigCache;
51
- await buildApp();
52
- const ssrSite = isInSsrSite();
53
- const staticSite = isInStaticSite();
54
- const service = isInService();
55
- // Run the script
56
- if (args.script || (!ssrSite && !staticSite && !service)) {
57
- return await runScript();
58
- }
59
- // Run the app
60
- try {
61
- await runSite("init");
62
- }
63
- catch (e) {
64
- if (!(e instanceof MetadataOutdatedError) &&
65
- !(e instanceof MetadataNotFoundError)) {
66
- return;
67
- }
68
- Colors.line(Colors.warning(e instanceof MetadataOutdatedError
69
- ? "Warning: This was deployed with an old version of SST. Run `sst dev` or `sst deploy` to update."
70
- : "Warning: The site has not been deployed. Some resources might not be available."));
71
- return await runSiteUndeployed();
72
- }
73
- bus.subscribe("stacks.metadata.updated", () => runSite("metadata_updated"));
74
- bus.subscribe("stacks.metadata.deleted", () => runSite("metadata_updated"));
75
- bus.subscribe("config.secret.updated", (payload) => {
76
- const secretName = payload.properties.name;
77
- if (!siteConfigCache.secrets.includes(secretName))
78
- return;
79
- Colors.line(`\n`, `SST secrets have been updated. Restarting \`${command}\`...`);
80
- runSite("secrets_updated");
81
- });
82
- async function buildApp() {
83
- const [_metafile, sstConfig] = await Stacks.load(project.paths.config);
84
- const cwd = process.cwd();
85
- process.chdir(project.paths.root);
86
- await Stacks.synth({
87
- fn: sstConfig.stacks,
88
- mode: "remove",
89
- });
90
- process.chdir(cwd);
91
- }
92
- function isInSsrSite() {
93
- const cwd = process.cwd();
94
- return useSsrSites().all.find(({ props }) => {
95
- return path.resolve(project.paths.root, props.path) === cwd;
96
- });
97
- }
98
- function isInStaticSite() {
99
- const cwd = process.cwd();
100
- return (useStaticSites().all.find(({ props }) => {
101
- return path.resolve(project.paths.root, props.path) === cwd;
102
- }) ||
103
- useSlsNextjsSites().all.find(({ props }) => {
104
- return path.resolve(project.paths.root, props.path) === cwd;
105
- }));
106
- }
107
- function isInService() {
108
- const cwd = process.cwd();
109
- return useServices().all.find(({ props }) => {
110
- return path.resolve(project.paths.root, props.path) === cwd;
111
- });
112
- }
113
- async function runSite(reason) {
114
- const siteConfig = ssrSite
115
- ? await getSsrSiteMetadata()
116
- : staticSite
117
- ? await getStaticSiteMetadata()
118
- : await getServiceMetadata();
119
- // Handle rebind due to metadata updated
120
- if (reason === "metadata_updated") {
121
- if (areEnvsSame(siteConfig.envs, siteConfigCache?.envs || {}))
122
- return;
123
- Colors.line(`\n`, `SST resources have been updated. Restarting \`${command}\`...`);
124
- }
125
- siteConfigCache = siteConfig;
126
- // Assume function's role credentials
127
- // Fallback to use local IAM credentials
128
- const credentials = (siteConfig.role &&
129
- (await getLiveIamCredentials(siteConfig.role))) ||
130
- (await getLocalIamCredentials());
131
- await runCommand({
132
- ...siteConfig.envs,
133
- ...credentials,
134
- });
135
- }
136
- async function runSiteUndeployed() {
137
- // Note: when the site is undeployed:
138
- // - bind all resources
139
- // - bind resources that are constant (ie. Config.Parameter)
140
- // - set environment variables that are constant
141
- const constructEnvs = {};
142
- Object.entries((ssrSite || staticSite || service)?.props.environment || {})
143
- .filter(([key, value]) => !Token.isUnresolved(value))
144
- .forEach(([key, value]) => (constructEnvs[key] = value));
145
- ((ssrSite || service)?.props.bind || []).forEach((b) => {
146
- if (b instanceof Parameter && !Token.isUnresolved(b.value)) {
147
- constructEnvs[getEnvironmentKey(b, "name")] = b.value;
148
- }
149
- });
150
- const { Config } = await import("../../config.js");
151
- await runCommand({
152
- ...constructEnvs,
153
- ...(await Config.env()),
154
- ...(await getLocalIamCredentials()),
155
- });
156
- }
157
- async function runScript() {
158
- const { Config } = await import("../../config.js");
159
- await runCommand({
160
- ...(await Config.env()),
161
- ...(await getLocalIamCredentials()),
162
- });
163
- }
164
- async function getSsrSiteMetadata() {
165
- const [{ metadataForStack }, { LambdaClient, GetFunctionCommand }, { useAWSClient },] = await Promise.all([
166
- import("../../stacks/metadata.js"),
167
- import("@aws-sdk/client-lambda"),
168
- import("../../credentials.js"),
169
- ]);
170
- const metadataData = await metadataForStack(ssrSite.stack);
171
- const metadata = metadataData
172
- ?.filter((c) => [
173
- "NextjsSite",
174
- "AstroSite",
175
- "RemixSite",
176
- "SolidStartSite",
177
- "SvelteKitSite",
178
- ].includes(c.type))
179
- .find((c) => {
180
- // metadata prior to SST v2.3.0 doesn't have path
181
- if (!c.data.path || !c.data.server) {
182
- throw new MetadataOutdatedError();
183
- }
184
- return (path.resolve(project.paths.root, c.data.path) ===
185
- process.cwd());
186
- });
187
- if (!metadata)
188
- throw new MetadataNotFoundError();
189
- // Parse metadata
190
- const lambda = useAWSClient(LambdaClient);
191
- const { Configuration: functionConfig } = await lambda.send(new GetFunctionCommand({
192
- FunctionName: metadata.data.server,
193
- }));
194
- return {
195
- role: functionConfig?.Role,
196
- envs: functionConfig?.Environment?.Variables || {},
197
- secrets: metadata.data.secrets,
198
- };
199
- }
200
- async function getStaticSiteMetadata() {
201
- const { metadataForStack } = await import("../../stacks/metadata.js");
202
- const metadataData = await metadataForStack(staticSite.stack);
203
- const metadata = metadataData
204
- ?.filter((c) => ["StaticSite", "SlsNextjsSite"].includes(c.type))
205
- .find((c) => {
206
- // metadata prior to SST v2.3.0 doesn't have path
207
- if (!c.data.path || !c.data.environment) {
208
- throw new MetadataOutdatedError();
209
- }
210
- return (path.resolve(project.paths.root, c.data.path) ===
211
- process.cwd());
212
- });
213
- if (!metadata)
214
- throw new MetadataNotFoundError();
215
- return {
216
- envs: metadata.data.environment,
217
- role: undefined,
218
- secrets: [],
219
- };
220
- }
221
- async function getServiceMetadata() {
222
- const [{ metadataForStack }, { LambdaClient, GetFunctionCommand }, { ECSClient, DescribeTaskDefinitionCommand }, { useAWSClient },] = await Promise.all([
223
- import("../../stacks/metadata.js"),
224
- import("@aws-sdk/client-lambda"),
225
- import("@aws-sdk/client-ecs"),
226
- import("../../credentials.js"),
227
- ]);
228
- // Get metadata
229
- const metadataData = await metadataForStack(service.stack);
230
- const metadata = metadataData
231
- ?.filter((c) => ["Service"].includes(c.type))
232
- .find((c) => {
233
- return (path.resolve(project.paths.root, c.data.path) ===
234
- process.cwd());
235
- });
236
- if (!metadata)
237
- throw new MetadataNotFoundError();
238
- // Parse metadata for "sst deploy"
239
- if (metadata.data.mode === "deployed") {
240
- const ecs = useAWSClient(ECSClient);
241
- const task = await ecs.send(new DescribeTaskDefinitionCommand({
242
- taskDefinition: metadata.data.task,
243
- }));
244
- const envs = {};
245
- (task?.taskDefinition?.containerDefinitions[0].environment || []).forEach(({ name, value }) => (envs[name] = value));
246
- return {
247
- role: task?.taskDefinition?.taskRoleArn,
248
- envs,
249
- secrets: metadata.data.secrets,
250
- };
251
- }
252
- // Parse metadata for "sst dev"
253
- const lambda = useAWSClient(LambdaClient);
254
- const { Configuration: functionConfig } = await lambda.send(new GetFunctionCommand({
255
- FunctionName: metadata.data.devFunction,
256
- }));
257
- return {
258
- role: functionConfig?.Role,
259
- envs: functionConfig?.Environment?.Variables || {},
260
- secrets: metadata.data.secrets,
261
- };
262
- }
263
- async function getLiveIamCredentials(roleArn) {
264
- const credentials = await assumeSsrRole(roleArn);
265
- if (!credentials)
266
- return;
267
- // refresh crecentials 1 minute before expiration
268
- const expireAt = credentials.Expiration.getTime() - 60000;
269
- clearTimeout(timer);
270
- timer = setTimeout(() => {
271
- Colors.line(`\n`, `Your AWS session is about to expire. Creating a new session and restarting \`${command}\`...`);
272
- runSite("iam_expired");
273
- }, expireAt - Date.now());
274
- return {
275
- AWS_ACCESS_KEY_ID: credentials.AccessKeyId,
276
- AWS_SECRET_ACCESS_KEY: credentials.SecretAccessKey,
277
- AWS_SESSION_TOKEN: credentials.SessionToken,
278
- };
279
- }
280
- async function getLocalIamCredentials() {
281
- const { useAWSCredentials } = await import("../../credentials.js");
282
- const credentials = await useAWSCredentials();
283
- return {
284
- AWS_ACCESS_KEY_ID: credentials.accessKeyId,
285
- AWS_SECRET_ACCESS_KEY: credentials.secretAccessKey,
286
- AWS_SESSION_TOKEN: credentials.sessionToken,
287
- };
288
- }
289
- async function runCommand(envs) {
290
- Colors.gap();
291
- if (p) {
292
- p.removeAllListeners("exit");
293
- // Note: calling p.kill() does not kill child processes. And in the
294
- // cases of Next.js and CRA, servers are child processes. Need to
295
- // kill the entire process tree to free up port ie. 3000.
296
- await new Promise((resolve, reject) => {
297
- kill.default(p?.pid, (error) => {
298
- if (error) {
299
- return reject(error);
300
- }
301
- resolve(true);
302
- });
303
- });
304
- }
305
- p = spawn(command, {
306
- env: {
307
- ...process.env,
308
- ...envs,
309
- AWS_REGION: project.config.region,
310
- },
311
- stdio: "inherit",
312
- shell: true,
313
- });
314
- p.on("exit", (code) => {
315
- exit(code || 0);
316
- });
317
- }
318
- function areEnvsSame(envs1, envs2) {
319
- return (Object.keys(envs1).length === Object.keys(envs2).length &&
320
- Object.keys(envs1).every((key) => envs1[key] === envs2[key]));
321
- }
322
- async function assumeSsrRole(roleArn) {
323
- const { STSClient, AssumeRoleCommand } = await import("@aws-sdk/client-sts");
324
- const { useAWSClient } = await import("../../credentials.js");
325
- const sts = useAWSClient(STSClient);
326
- const assumeRole = async (duration) => {
327
- const { Credentials: credentials } = await sts.send(new AssumeRoleCommand({
328
- RoleArn: roleArn,
329
- RoleSessionName: "dev-session",
330
- DurationSeconds: duration,
331
- }));
332
- return credentials;
333
- };
334
- // Assume role with max duration first. This can fail if chaining roles, or if
335
- // the role has a max duration set. If it fails, assume role with 1 hour duration.
336
- let err;
337
- try {
338
- return await assumeRole(43200);
339
- }
340
- catch (e) {
341
- err = e;
342
- }
343
- if (err.name === "ValidationError" &&
344
- err.message.startsWith("The requested DurationSeconds exceeds")) {
345
- try {
346
- return await assumeRole(3600);
347
- }
348
- catch (e) {
349
- err = e;
350
- }
351
- }
352
- Colors.line("Using local IAM credentials since `sst dev` is not running.");
353
- Logger.debug(`Failed to assume ${roleArn}.`, err);
354
- }
355
- }
356
- catch (e) {
357
- await exitWithError(e);
358
- }
359
- })
360
- .strict(false);
@@ -1,15 +0,0 @@
1
- /// <reference types="yargs" />
2
- import type { Program } from "../program.js";
3
- export declare const bootstrap: (program: Program) => import("yargs").Argv<{
4
- stage: string | undefined;
5
- } & {
6
- profile: string | undefined;
7
- } & {
8
- region: string | undefined;
9
- } & {
10
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- }>;
@@ -1,11 +0,0 @@
1
- export const bootstrap = (program) => program.command("bootstrap", "Create the SST bootstrap stack", (yargs) => yargs, async () => {
2
- const { exit, exitWithError } = await import("../program.js");
3
- const { useBootstrap } = await import("../../bootstrap.js");
4
- try {
5
- await useBootstrap();
6
- await exit();
7
- }
8
- catch (e) {
9
- await exitWithError(e);
10
- }
11
- });
@@ -1,17 +0,0 @@
1
- /// <reference types="yargs" />
2
- import type { Program } from "../program.js";
3
- export declare const build: (program: Program) => import("yargs").Argv<{
4
- stage: string | undefined;
5
- } & {
6
- profile: string | undefined;
7
- } & {
8
- region: string | undefined;
9
- } & {
10
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- } & {
16
- to: string | undefined;
17
- }>;
@@ -1,25 +0,0 @@
1
- export const build = (program) => program.command("build", "Build your app", (yargs) => yargs.option("to", {
2
- type: "string",
3
- describe: "Output directory, defaults to .sst/dist",
4
- }), async (args) => {
5
- const { exit, exitWithError } = await import("../program.js");
6
- const { useProject } = await import("../../project.js");
7
- const { Stacks } = await import("../../stacks/index.js");
8
- const { Colors } = await import("../colors.js");
9
- const path = await import("path");
10
- try {
11
- const project = useProject();
12
- const [_metafile, sstConfig] = await Stacks.load(project.paths.config);
13
- const result = await Stacks.synth({
14
- fn: sstConfig.stacks,
15
- buildDir: args.to,
16
- mode: "deploy",
17
- });
18
- Colors.line("");
19
- Colors.line(Colors.success(`✔`), Colors.bold(" Built:"), `${result.stacks.length} stack${result.stacks.length > 1 ? "s" : ""} to ${path.relative(process.cwd(), result.directory)}`);
20
- await exit();
21
- }
22
- catch (e) {
23
- await exitWithError(e);
24
- }
25
- });
@@ -1,17 +0,0 @@
1
- /// <reference types="yargs" />
2
- import type { Program } from "../program.js";
3
- export declare const connect: (program: Program) => import("yargs").Argv<{
4
- stage: string | undefined;
5
- } & {
6
- profile: string | undefined;
7
- } & {
8
- region: string | undefined;
9
- } & {
10
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- } & {
16
- dev: boolean;
17
- }>;
@@ -1,55 +0,0 @@
1
- import { Colors } from "../colors.js";
2
- export const connect = (program) => program.command("connect", "Connect a stage to SST Console", (yargs) => yargs.option("dev", {
3
- type: "boolean",
4
- default: false,
5
- describe: "Connect to SST dev account (probably don't want to do this)",
6
- }), async (args) => {
7
- if (!args.future)
8
- throw new Error("This command is not yet available.");
9
- const { exit, exitWithError } = await import("../program.js");
10
- const { useAWSClient } = await import("../../credentials.js");
11
- const { useProject } = await import("../../project.js");
12
- const { useSTSIdentity } = await import("../../credentials.js");
13
- const { IAMClient, CreateRoleCommand, AttachRolePolicyCommand } = await import("@aws-sdk/client-iam");
14
- try {
15
- const client = useAWSClient(IAMClient);
16
- if (args.dev) {
17
- Colors.line(Colors.warning("⚠"), Colors.bold(" Connecting to dev stage"));
18
- }
19
- await client
20
- .send(new CreateRoleCommand({
21
- RoleName: "sst",
22
- AssumeRolePolicyDocument: JSON.stringify({
23
- Version: "2012-10-17",
24
- Statement: [
25
- {
26
- Effect: "Allow",
27
- Principal: {
28
- AWS: `arn:aws:iam::${args.dev ? "917397401067" : "226609089145"}:root`,
29
- },
30
- Action: "sts:AssumeRole",
31
- },
32
- ],
33
- }),
34
- }))
35
- .catch((e) => {
36
- if (e.Error.Code === "EntityAlreadyExists")
37
- return;
38
- throw e;
39
- });
40
- await client.send(new AttachRolePolicyCommand({
41
- RoleName: "sst",
42
- PolicyArn: "arn:aws:iam::aws:policy/AdministratorAccess",
43
- }));
44
- const project = useProject();
45
- const identity = await useSTSIdentity();
46
- const host = args.dev
47
- ? "http://localhost:3000"
48
- : "https://console.production.sst.dev";
49
- console.log(`${host}/connect?app=${project.config.name}&stage=${project.config.stage}&aws_account_id=${identity.Account}&region=${project.config.region}`);
50
- await exit();
51
- }
52
- catch (e) {
53
- await exitWithError(e);
54
- }
55
- });
@@ -1,15 +0,0 @@
1
- /// <reference types="yargs" />
2
- import type { Program } from "../program.js";
3
- export declare const consoleCommand: (program: Program) => Promise<import("yargs").Argv<{
4
- stage: string | undefined;
5
- } & {
6
- profile: string | undefined;
7
- } & {
8
- region: string | undefined;
9
- } & {
10
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- }>>;
@@ -1,22 +0,0 @@
1
- export const consoleCommand = async (program) => program.command("console", "Start the SST Console", (yargs) => yargs, async () => {
2
- const { exit, exitWithError } = await import("../program.js");
3
- const { useRuntimeServer } = await import("../../runtime/server.js");
4
- const { useLocalServer } = await import("../local/server.js");
5
- const { printHeader } = await import("../ui/header.js");
6
- const { clear } = await import("../terminal.js");
7
- try {
8
- await Promise.all([
9
- useRuntimeServer(),
10
- useLocalServer({
11
- key: "",
12
- cert: "",
13
- live: false,
14
- }),
15
- ]);
16
- clear();
17
- printHeader({ console: true, hint: "ready!" });
18
- }
19
- catch (e) {
20
- await exitWithError(e);
21
- }
22
- });
@@ -1,19 +0,0 @@
1
- /// <reference types="yargs" />
2
- import type { Program } from "../program.js";
3
- export declare const deploy: (program: Program) => import("yargs").Argv<{
4
- stage: string | undefined;
5
- } & {
6
- profile: string | undefined;
7
- } & {
8
- region: string | undefined;
9
- } & {
10
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- } & {
16
- from: string | undefined;
17
- } & {
18
- filter: string | undefined;
19
- }>;
@@ -1,112 +0,0 @@
1
- import { useSTSIdentity } from "../../credentials.js";
2
- import { Colors } from "../colors.js";
3
- import fs from "fs/promises";
4
- import path from "path";
5
- export const deploy = (program) => program.command("deploy [filter]", "Deploy your app to AWS", (yargs) => yargs
6
- .option("from", {
7
- type: "string",
8
- describe: "Deploy using previously built output",
9
- })
10
- .positional("filter", {
11
- type: "string",
12
- describe: "Optionally filter stacks to deploy",
13
- }), async (args) => {
14
- const React = await import("react");
15
- const { printDeploymentResults } = await import("../ui/deploy.js");
16
- const { createSpinner } = await import("../spinner.js");
17
- const { dim, blue, bold } = await import("colorette");
18
- const { exit, exitWithError } = await import("../program.js");
19
- const { useProject } = await import("../../project.js");
20
- const { SilentError } = await import("../../error.js");
21
- const { loadAssembly, useAppMetadata, saveAppMetadata, Stacks } = await import("../../stacks/index.js");
22
- const { getCiInfo } = await import("../ci-info.js");
23
- const { render } = await import("ink");
24
- const { DeploymentUI } = await import("../ui/deploy.js");
25
- const { mapValues } = await import("remeda");
26
- try {
27
- const project = useProject();
28
- const [identity, appMetadata] = await Promise.all([
29
- useSTSIdentity(),
30
- useAppMetadata(),
31
- ]);
32
- async function promptChangeMode() {
33
- const readline = await import("readline");
34
- const rl = readline.createInterface({
35
- input: process.stdin,
36
- output: process.stdout,
37
- });
38
- return new Promise((resolve) => {
39
- console.log("");
40
- rl.question(`You were previously running the stage "${project.config.stage}" in dev mode. It is recommended that you use a different stage for production. Read more here — https://docs.sst.dev/live-lambda-development\n\nAre you sure you want to deploy to this stage? (y/N) `, async (input) => {
41
- rl.close();
42
- resolve(input.trim() === "y");
43
- });
44
- });
45
- }
46
- // Check app mode changed
47
- if (!project.config.advanced?.disableAppModeCheck &&
48
- !getCiInfo().isCI &&
49
- appMetadata &&
50
- appMetadata.mode !== "deploy") {
51
- if (!(await promptChangeMode())) {
52
- await exit();
53
- }
54
- }
55
- Colors.line(`${Colors.primary.bold(`SST v${project.version}`)}`);
56
- Colors.gap();
57
- Colors.line(`${Colors.primary(`➜`)} ${Colors.bold("App:")} ${project.config.name}`);
58
- Colors.line(` ${Colors.bold("Stage:")} ${project.config.stage}`);
59
- Colors.line(` ${Colors.bold("Region:")} ${project.config.region}`);
60
- Colors.line(` ${Colors.bold("Account:")} ${identity.Account}`);
61
- Colors.gap();
62
- const isActiveStack = (stackId) => !args.filter ||
63
- stackId
64
- .toLowerCase()
65
- .replace(project.config.name.toLowerCase(), "")
66
- .replace(project.config.stage.toLowerCase(), "")
67
- .includes(args.filter.toLowerCase());
68
- // Generate cloud assembly
69
- // - if --from is specified, we will use the existing cloud assembly
70
- // - if --from is not specified, we will call synth to generate
71
- const assembly = await (async function () {
72
- if (args.from) {
73
- const result = await loadAssembly(args.from);
74
- return result;
75
- }
76
- const spinner = createSpinner({
77
- text: " Building...",
78
- });
79
- const [_metafile, sstConfig] = await Stacks.load(project.paths.config);
80
- const result = await Stacks.synth({
81
- fn: sstConfig.stacks,
82
- mode: "deploy",
83
- isActiveStack,
84
- });
85
- spinner.succeed();
86
- return result;
87
- })();
88
- const target = assembly.stacks.filter((s) => isActiveStack(s.id));
89
- if (!target.length) {
90
- Colors.line(`No stacks found matching ${blue(args.filter)}`);
91
- throw new SilentError(`No stacks found matching ${args.filter}`);
92
- }
93
- const component = render(React.createElement(DeploymentUI, { assembly: assembly }));
94
- const results = await Stacks.deployMany(target);
95
- component.clear();
96
- component.unmount();
97
- printDeploymentResults(assembly, results);
98
- // Check failed stacks
99
- const failed = Object.values(results).find((result) => Stacks.isFailed(result.status));
100
- if (failed) {
101
- throw new SilentError(`CloudFormation status ${failed.status}`);
102
- }
103
- fs.writeFile(project.config.outputs ||
104
- path.join(project.paths.out, "outputs.json"), JSON.stringify(mapValues(results, (val) => val.outputs), null, 2));
105
- // Update app state
106
- await saveAppMetadata({ mode: "deploy" });
107
- await exit();
108
- }
109
- catch (e) {
110
- await exitWithError(e);
111
- }
112
- });