sst 1.16.0 → 2.0.0-rc.1

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 (518) hide show
  1. package/LICENSE +21 -0
  2. package/{dist/app.d.ts → app.d.ts} +8 -1
  3. package/app.js +122 -0
  4. package/{dist/bootstrap.d.ts → bootstrap.d.ts} +1 -0
  5. package/bootstrap.js +79 -0
  6. package/{dist/bus.d.ts → bus.d.ts} +0 -0
  7. package/{dist/bus.js → bus.js} +0 -0
  8. package/{dist/cache.d.ts → cache.d.ts} +0 -0
  9. package/{dist/cache.js → cache.js} +0 -0
  10. package/{dist/cdk → cdk}/cloudformation-deployments.d.ts +1 -1
  11. package/{dist/cdk → cdk}/cloudformation-deployments.js +1 -0
  12. package/{dist/cdk → cdk}/deploy-stack.d.ts +0 -0
  13. package/{dist/cdk → cdk}/deploy-stack.js +13 -6
  14. package/{dist/cli → cli}/commands/bind.d.ts +3 -1
  15. package/{dist/cli → cli}/commands/bind.js +8 -4
  16. package/{dist/cli → cli}/commands/build.d.ts +2 -0
  17. package/cli/commands/build.js +12 -0
  18. package/cli/commands/console.d.ts +9 -0
  19. package/cli/commands/console.js +15 -0
  20. package/{dist/cli → cli}/commands/deploy.d.ts +7 -1
  21. package/cli/commands/deploy.js +48 -0
  22. package/cli/commands/dev.d.ts +11 -0
  23. package/cli/commands/dev.js +188 -0
  24. package/cli/commands/env.d.ts +11 -0
  25. package/cli/commands/env.js +39 -0
  26. package/cli/commands/plugins/kysely.d.ts +1 -0
  27. package/cli/commands/plugins/kysely.js +91 -0
  28. package/cli/commands/plugins/pothos.d.ts +1 -0
  29. package/cli/commands/plugins/pothos.js +52 -0
  30. package/cli/commands/plugins/warmer.d.ts +1 -0
  31. package/cli/commands/plugins/warmer.js +33 -0
  32. package/cli/commands/remove.d.ts +13 -0
  33. package/cli/commands/remove.js +39 -0
  34. package/{dist/cli → cli}/commands/secrets/get.d.ts +2 -0
  35. package/{dist/cli → cli}/commands/secrets/get.js +0 -0
  36. package/{dist/cli → cli}/commands/secrets/list.d.ts +2 -0
  37. package/{dist/cli → cli}/commands/secrets/list.js +5 -5
  38. package/{dist/cli → cli}/commands/secrets/remove.d.ts +2 -0
  39. package/{dist/cli → cli}/commands/secrets/remove.js +0 -0
  40. package/{dist/cli → cli}/commands/secrets/secrets.d.ts +0 -0
  41. package/{dist/cli → cli}/commands/secrets/secrets.js +0 -0
  42. package/{dist/cli → cli}/commands/secrets/set.d.ts +2 -0
  43. package/{dist/cli → cli}/commands/secrets/set.js +13 -11
  44. package/{dist/cli → cli}/commands/update.d.ts +2 -0
  45. package/{dist/cli → cli}/commands/update.js +17 -21
  46. package/cli/local/router.d.ts +42 -0
  47. package/cli/local/router.js +43 -0
  48. package/cli/local/server.d.ts +20 -0
  49. package/cli/local/server.js +212 -0
  50. package/cli/program.d.ts +9 -0
  51. package/{dist/cli → cli}/program.js +6 -1
  52. package/{dist/cli → cli}/spinner.d.ts +0 -0
  53. package/{dist/cli → cli}/spinner.js +0 -0
  54. package/cli/sst.d.ts +2 -0
  55. package/{dist/cli → cli}/sst.js +27 -16
  56. package/cli/telemetry/environment.d.ts +15 -0
  57. package/cli/telemetry/environment.js +27 -0
  58. package/cli/telemetry/post-payload.d.ts +1 -0
  59. package/cli/telemetry/post-payload.js +18 -0
  60. package/cli/telemetry/project-id.d.ts +2 -0
  61. package/cli/telemetry/project-id.js +47 -0
  62. package/cli/telemetry/telemetry.d.ts +4 -0
  63. package/cli/telemetry/telemetry.js +90 -0
  64. package/cli/ui/deploy.d.ts +8 -0
  65. package/{dist/cli → cli}/ui/deploy.js +39 -1
  66. package/{dist/config.d.ts → config.d.ts} +0 -0
  67. package/{dist/config.js → config.js} +16 -4
  68. package/{dist/constructs → constructs}/Api.d.ts +98 -12
  69. package/{dist/constructs → constructs}/Api.js +93 -7
  70. package/{dist/constructs → constructs}/ApiGatewayV1Api.d.ts +0 -0
  71. package/{dist/constructs → constructs}/ApiGatewayV1Api.js +10 -5
  72. package/{dist/constructs → constructs}/App.d.ts +4 -26
  73. package/{dist/constructs → constructs}/App.js +119 -99
  74. package/{dist/constructs → constructs}/AppSyncApi.d.ts +3 -3
  75. package/{dist/constructs → constructs}/AppSyncApi.js +27 -20
  76. package/constructs/AstroSite.d.ts +25 -0
  77. package/constructs/AstroSite.js +111 -0
  78. package/constructs/AstroSite.tsdoc.d.ts +2 -0
  79. package/constructs/AstroSite.tsdoc.js +2 -0
  80. package/{dist/constructs → constructs}/Auth.d.ts +1 -1
  81. package/{dist/constructs → constructs}/Auth.js +6 -4
  82. package/{dist/constructs → constructs}/BaseSite.d.ts +0 -0
  83. package/{dist/constructs → constructs}/BaseSite.js +0 -0
  84. package/{dist/constructs → constructs}/Bucket.d.ts +0 -0
  85. package/{dist/constructs → constructs}/Bucket.js +6 -3
  86. package/{dist/constructs → constructs}/Cognito.d.ts +0 -0
  87. package/{dist/constructs → constructs}/Cognito.js +4 -1
  88. package/{dist/constructs → constructs}/Config.d.ts +0 -0
  89. package/{dist/constructs → constructs}/Config.js +0 -0
  90. package/{dist/constructs → constructs}/Construct.d.ts +0 -0
  91. package/{dist/constructs → constructs}/Construct.js +0 -0
  92. package/{dist/constructs → constructs}/Cron.d.ts +0 -0
  93. package/{dist/constructs → constructs}/Cron.js +7 -0
  94. package/{dist/constructs → constructs}/DebugApp.d.ts +2 -2
  95. package/{dist/constructs → constructs}/DebugApp.js +16 -0
  96. package/{dist/constructs → constructs}/DebugStack.d.ts +0 -0
  97. package/{dist/constructs → constructs}/DebugStack.js +4 -0
  98. package/{dist/constructs → constructs}/EdgeFunction.d.ts +1 -0
  99. package/{dist/constructs → constructs}/EdgeFunction.js +27 -22
  100. package/{dist/constructs → constructs}/EventBus.d.ts +0 -0
  101. package/{dist/constructs → constructs}/EventBus.js +7 -4
  102. package/{dist/constructs → constructs}/Function.d.ts +73 -174
  103. package/{dist/constructs → constructs}/Function.js +43 -83
  104. package/{dist/constructs → constructs}/FunctionalStack.d.ts +0 -0
  105. package/{dist/constructs → constructs}/FunctionalStack.js +5 -5
  106. package/{dist/constructs → constructs}/GraphQLApi.d.ts +11 -1
  107. package/{dist/constructs → constructs}/GraphQLApi.js +3 -0
  108. package/{dist/constructs → constructs}/Job.d.ts +0 -14
  109. package/{dist/constructs → constructs}/Job.js +50 -46
  110. package/{dist/constructs → constructs}/KinesisStream.d.ts +0 -0
  111. package/{dist/constructs → constructs}/KinesisStream.js +6 -3
  112. package/{dist/constructs → constructs}/Metadata.d.ts +1 -1
  113. package/{dist/constructs → constructs}/Metadata.js +0 -0
  114. package/constructs/NextjsSite.d.ts +33 -0
  115. package/constructs/NextjsSite.js +285 -0
  116. package/{dist/constructs → constructs}/Parameter.d.ts +0 -0
  117. package/{dist/constructs → constructs}/Parameter.js +3 -0
  118. package/{dist/constructs → constructs}/Queue.d.ts +0 -0
  119. package/{dist/constructs → constructs}/Queue.js +19 -12
  120. package/{dist/constructs → constructs}/RDS.d.ts +0 -0
  121. package/{dist/constructs → constructs}/RDS.js +26 -19
  122. package/{dist/constructs → constructs}/ReactStaticSite.d.ts +0 -0
  123. package/{dist/constructs → constructs}/ReactStaticSite.js +1 -1
  124. package/constructs/RemixSite.d.ts +28 -0
  125. package/constructs/RemixSite.js +150 -0
  126. package/constructs/RemixSite.tsdoc.d.ts +2 -0
  127. package/constructs/RemixSite.tsdoc.js +2 -0
  128. package/{dist/constructs → constructs}/Script/cfn-response.d.ts +0 -0
  129. package/{dist/constructs → constructs}/Script/cfn-response.js +0 -0
  130. package/{dist/constructs → constructs}/Script/index.d.ts +0 -0
  131. package/{dist/constructs → constructs}/Script/index.js +0 -0
  132. package/{dist/constructs → constructs}/Script/outbound.d.ts +1 -1
  133. package/{dist/constructs → constructs}/Script/outbound.js +0 -0
  134. package/{dist/constructs → constructs}/Script/util.d.ts +0 -0
  135. package/{dist/constructs → constructs}/Script/util.js +0 -0
  136. package/{dist/constructs → constructs}/Script.d.ts +0 -0
  137. package/{dist/constructs → constructs}/Script.js +13 -0
  138. package/{dist/constructs → constructs}/Secret.d.ts +0 -0
  139. package/{dist/constructs → constructs}/Secret.js +2 -0
  140. package/constructs/SolidStartSite.d.ts +24 -0
  141. package/constructs/SolidStartSite.js +103 -0
  142. package/constructs/SolidStartSite.tsdoc.d.ts +2 -0
  143. package/constructs/SolidStartSite.tsdoc.js +2 -0
  144. package/{dist/constructs/RemixSite.d.ts → constructs/SsrSite.d.ts} +69 -107
  145. package/{dist/constructs/RemixSite.js → constructs/SsrSite.js} +243 -446
  146. package/{dist/constructs → constructs}/Stack.d.ts +1 -1
  147. package/{dist/constructs → constructs}/Stack.js +19 -4
  148. package/{dist/constructs → constructs}/StaticSite.d.ts +44 -17
  149. package/{dist/constructs → constructs}/StaticSite.js +121 -72
  150. package/{dist/constructs → constructs}/Table.d.ts +0 -0
  151. package/{dist/constructs → constructs}/Table.js +9 -3
  152. package/{dist/constructs → constructs}/Topic.d.ts +0 -0
  153. package/{dist/constructs → constructs}/Topic.js +6 -3
  154. package/{dist/constructs → constructs}/ViteStaticSite.d.ts +0 -0
  155. package/{dist/constructs → constructs}/ViteStaticSite.js +2 -2
  156. package/{dist/constructs → constructs}/WebSocketApi.d.ts +0 -0
  157. package/{dist/constructs → constructs}/WebSocketApi.js +9 -4
  158. package/{dist/constructs → constructs}/context.d.ts +1 -1
  159. package/{dist/constructs → constructs}/context.js +0 -0
  160. package/{dist/constructs → constructs}/deferred_task.d.ts +0 -0
  161. package/{dist/constructs → constructs}/deferred_task.js +4 -2
  162. package/{dist/constructs → constructs/deprecated}/NextjsSite.d.ts +12 -8
  163. package/{dist/constructs → constructs/deprecated}/NextjsSite.js +112 -89
  164. package/{dist/constructs/nextjs-site → constructs/deprecated}/cross-region-helper.d.ts +0 -0
  165. package/{dist/constructs/nextjs-site → constructs/deprecated}/cross-region-helper.js +3 -3
  166. package/constructs/deprecated/index.d.ts +1 -0
  167. package/constructs/deprecated/index.js +1 -0
  168. package/{dist/constructs → constructs}/index.d.ts +3 -2
  169. package/{dist/constructs → constructs}/index.js +2 -0
  170. package/{dist/constructs → constructs}/util/apiGatewayV1AccessLog.d.ts +0 -0
  171. package/{dist/constructs → constructs}/util/apiGatewayV1AccessLog.js +0 -0
  172. package/{dist/constructs → constructs}/util/apiGatewayV2AccessLog.d.ts +0 -0
  173. package/{dist/constructs → constructs}/util/apiGatewayV2AccessLog.js +4 -4
  174. package/{dist/constructs → constructs}/util/apiGatewayV2Cors.d.ts +0 -0
  175. package/{dist/constructs → constructs}/util/apiGatewayV2Cors.js +0 -0
  176. package/{dist/constructs → constructs}/util/apiGatewayV2Domain.d.ts +0 -0
  177. package/{dist/constructs → constructs}/util/apiGatewayV2Domain.js +0 -0
  178. package/{dist/constructs → constructs}/util/appSyncApiDomain.d.ts +1 -1
  179. package/{dist/constructs → constructs}/util/appSyncApiDomain.js +15 -9
  180. package/{dist/constructs → constructs}/util/builder.d.ts +0 -0
  181. package/{dist/constructs → constructs}/util/builder.js +0 -0
  182. package/{dist/constructs → constructs}/util/duration.d.ts +0 -0
  183. package/{dist/constructs → constructs}/util/duration.js +0 -0
  184. package/{dist/constructs → constructs}/util/functionBinding.d.ts +0 -0
  185. package/{dist/constructs → constructs}/util/functionBinding.js +0 -0
  186. package/{dist/constructs → constructs}/util/functionUrlCors.d.ts +0 -0
  187. package/{dist/constructs → constructs}/util/functionUrlCors.js +0 -0
  188. package/{dist/constructs → constructs}/util/permission.d.ts +0 -0
  189. package/{dist/constructs → constructs}/util/permission.js +32 -16
  190. package/{dist/constructs → constructs}/util/python/bundling.d.ts +0 -0
  191. package/{dist/constructs → constructs}/util/python/bundling.js +0 -0
  192. package/{dist/constructs → constructs}/util/size.d.ts +0 -0
  193. package/{dist/constructs → constructs}/util/size.js +0 -0
  194. package/{dist/constructs → constructs}/util/warning.d.ts +0 -0
  195. package/{dist/constructs → constructs}/util/warning.js +0 -0
  196. package/{dist/context → context}/context.d.ts +1 -1
  197. package/{dist/context → context}/context.js +3 -4
  198. package/{dist/context → context}/handler.d.ts +0 -0
  199. package/{dist/context → context}/handler.js +1 -1
  200. package/{dist/context → context}/index.d.ts +0 -0
  201. package/{dist/context → context}/index.js +0 -0
  202. package/{dist/credentials.d.ts → credentials.d.ts} +3 -1
  203. package/{dist/credentials.js → credentials.js} +11 -3
  204. package/{dist/error.d.ts → error.d.ts} +0 -0
  205. package/{dist/error.js → error.js} +0 -0
  206. package/{dist/iot.d.ts → iot.d.ts} +0 -0
  207. package/{dist/iot.js → iot.js} +3 -0
  208. package/logger.d.ts +3 -0
  209. package/{dist/logger.js → logger.js} +12 -8
  210. package/node/api/index.d.ts +42 -0
  211. package/node/api/index.js +88 -0
  212. package/node/auth/adapter/adapter.d.ts +3 -0
  213. package/node/auth/adapter/adapter.js +3 -0
  214. package/node/auth/adapter/facebook.d.ts +2 -0
  215. package/node/auth/adapter/facebook.js +26 -0
  216. package/node/auth/adapter/github.d.ts +2 -0
  217. package/node/auth/adapter/github.js +21 -0
  218. package/node/auth/adapter/google.d.ts +9 -0
  219. package/node/auth/adapter/google.js +18 -0
  220. package/node/auth/adapter/link.d.ts +8 -0
  221. package/node/auth/adapter/link.js +39 -0
  222. package/node/auth/adapter/oauth.d.ts +25 -0
  223. package/node/auth/adapter/oauth.js +52 -0
  224. package/node/auth/adapter/oidc.d.ts +17 -0
  225. package/node/auth/adapter/oidc.js +50 -0
  226. package/node/auth/adapter/twitch.d.ts +2 -0
  227. package/node/auth/adapter/twitch.js +11 -0
  228. package/node/auth/auth.d.ts +24 -0
  229. package/node/auth/auth.js +118 -0
  230. package/node/auth/index.d.ts +10 -0
  231. package/node/auth/index.js +10 -0
  232. package/node/auth/session.d.ts +76 -0
  233. package/node/auth/session.js +109 -0
  234. package/node/bucket/index.d.ts +3 -0
  235. package/node/bucket/index.js +3 -0
  236. package/node/config/index.d.ts +13 -0
  237. package/node/config/index.js +88 -0
  238. package/node/event-bus/index.d.ts +3 -0
  239. package/node/event-bus/index.js +3 -0
  240. package/node/function/index.d.ts +3 -0
  241. package/node/function/index.js +3 -0
  242. package/node/graphql/index.d.ts +38 -0
  243. package/node/graphql/index.js +48 -0
  244. package/node/job/index.d.ts +34 -0
  245. package/node/job/index.js +51 -0
  246. package/node/kinesis-stream/index.d.ts +3 -0
  247. package/node/kinesis-stream/index.js +3 -0
  248. package/node/queue/index.d.ts +3 -0
  249. package/node/queue/index.js +3 -0
  250. package/node/rds/index.d.ts +3 -0
  251. package/node/rds/index.js +3 -0
  252. package/node/site/index.d.ts +15 -0
  253. package/node/site/index.js +64 -0
  254. package/node/table/index.d.ts +3 -0
  255. package/node/table/index.js +3 -0
  256. package/node/topic/index.d.ts +3 -0
  257. package/node/topic/index.js +3 -0
  258. package/node/util/index.d.ts +7 -0
  259. package/node/util/index.js +57 -0
  260. package/package.json +107 -40
  261. package/pothos.d.ts +8 -0
  262. package/pothos.js +156 -0
  263. package/runtime/handlers/dotnet.d.ts +1 -0
  264. package/runtime/handlers/dotnet.js +117 -0
  265. package/runtime/handlers/go.d.ts +1 -0
  266. package/runtime/handlers/go.js +105 -0
  267. package/runtime/handlers/java.d.ts +1 -0
  268. package/runtime/handlers/java.js +97 -0
  269. package/{dist/runtime → runtime/handlers}/node.d.ts +0 -0
  270. package/runtime/handlers/node.js +172 -0
  271. package/runtime/handlers/python.d.ts +1 -0
  272. package/runtime/handlers/python.js +89 -0
  273. package/{dist/runtime → runtime}/handlers.d.ts +30 -12
  274. package/runtime/handlers.js +117 -0
  275. package/{dist/runtime → runtime}/iot.d.ts +0 -0
  276. package/{dist/runtime → runtime}/iot.js +1 -1
  277. package/{dist/runtime → runtime}/runtime.d.ts +2 -0
  278. package/{dist/runtime → runtime}/runtime.js +0 -0
  279. package/{dist/runtime → runtime}/server.d.ts +0 -0
  280. package/{dist/runtime → runtime}/server.js +39 -3
  281. package/{dist/runtime → runtime}/workers.d.ts +1 -0
  282. package/{dist/runtime → runtime}/workers.js +12 -4
  283. package/{dist/cli/sst.d.ts → scrap.d.ts} +0 -0
  284. package/scrap.js +58 -0
  285. package/site-env.d.ts +13 -0
  286. package/site-env.js +47 -0
  287. package/sst.mjs +21848 -0
  288. package/{dist/stacks → stacks}/build.d.ts +0 -0
  289. package/{dist/stacks → stacks}/build.js +18 -9
  290. package/stacks/deploy.d.ts +8 -0
  291. package/stacks/deploy.js +105 -0
  292. package/stacks/index.d.ts +7 -0
  293. package/stacks/index.js +7 -0
  294. package/stacks/metadata.d.ts +9 -0
  295. package/{dist/stacks → stacks}/metadata.js +2 -14
  296. package/stacks/monitor.d.ts +27 -0
  297. package/stacks/monitor.js +111 -0
  298. package/stacks/remove.d.ts +8 -0
  299. package/stacks/remove.js +80 -0
  300. package/stacks/synth.d.ts +10 -0
  301. package/stacks/synth.js +77 -0
  302. package/support/astro-site-html-stub/index.html +99 -0
  303. package/support/base-site-archiver.cjs +12 -11
  304. package/support/base-site-archiver.mjs +20 -0
  305. package/support/bridge/bridge.mjs +59 -0
  306. package/{dist/support → support}/custom-resources/index.mjs +44209 -42781
  307. package/support/dotnet31-bootstrap/Program.cs +17 -0
  308. package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +12 -0
  309. package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  310. package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  311. package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  312. package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
  313. package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
  314. package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
  315. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +230 -0
  316. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
  317. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  318. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +9 -0
  319. package/support/dotnet6-bootstrap/Program.cs +17 -0
  320. package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +12 -0
  321. package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  322. package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  323. package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
  324. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +59 -0
  325. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
  326. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  327. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +12 -0
  328. package/support/edge-function/edge-lambda-version.mjs +3 -0
  329. package/support/edge-function/edge-lambda.mjs +3 -0
  330. package/support/edge-function/s3-bucket.mjs +3 -0
  331. package/{dist/support/base-site-custom-resource/cf-invalidate.py → support/edge-function-code-replacer/lambda-code-updater.py} +56 -30
  332. package/support/java-runtime/install.sh +25 -0
  333. package/support/java-runtime/pom.xml +39 -0
  334. package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
  335. package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
  336. package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
  337. package/support/nextjs-site-html-stub/index.html +99 -0
  338. package/{dist/support → support}/nodejs-runtime/index.mjs +7822 -2771
  339. package/support/python-runtime/runtime.py +116 -0
  340. package/support/rds-migrator/index.mjs +28 -0
  341. package/support/remix-site-function/edge-server.js +158 -0
  342. package/support/remix-site-function/polyfill.js +24 -0
  343. package/support/remix-site-function/regional-server.js +162 -0
  344. package/support/remix-site-html-stub/index.html +99 -0
  345. package/support/sls-nextjs-site-build-helper/build.cjs +91 -0
  346. package/support/sls-nextjs-site-build-helper/index-wrapper.js +19 -0
  347. package/support/sls-nextjs-site-stub/index.html +99 -0
  348. package/support/solid-start-site-html-stub/index.html +99 -0
  349. package/support/ssr-site-function-stub/index.js +5 -0
  350. package/util/fs.d.ts +4 -0
  351. package/util/fs.js +46 -0
  352. package/util/module.d.ts +1 -0
  353. package/util/module.js +5 -0
  354. package/util/process.d.ts +2 -0
  355. package/util/process.js +3 -0
  356. package/{dist/watcher.d.ts → watcher.d.ts} +0 -0
  357. package/{dist/watcher.js → watcher.js} +1 -1
  358. package/.build/sst-debug.log +0 -10
  359. package/.turbo/turbo-build.log +0 -2
  360. package/CHANGELOG.md +0 -332
  361. package/analyze +0 -11090
  362. package/bin/sst.mjs +0 -3
  363. package/build.mjs +0 -116
  364. package/debug.log +0 -6
  365. package/dist/app.js +0 -92
  366. package/dist/bootstrap.js +0 -23
  367. package/dist/cli/commands/build.js +0 -8
  368. package/dist/cli/commands/deploy.js +0 -20
  369. package/dist/cli/commands/env.d.ts +0 -0
  370. package/dist/cli/commands/env.js +0 -1
  371. package/dist/cli/commands/scrap.d.ts +0 -5
  372. package/dist/cli/commands/scrap.js +0 -1
  373. package/dist/cli/commands/start.d.ts +0 -7
  374. package/dist/cli/commands/start.js +0 -136
  375. package/dist/cli/program.d.ts +0 -7
  376. package/dist/cli/ui/deploy.d.ts +0 -6
  377. package/dist/constructs/nextjs-site/custom-resource/cfn-response.d.ts +0 -19
  378. package/dist/constructs/nextjs-site/custom-resource/cfn-response.js +0 -94
  379. package/dist/constructs/nextjs-site/custom-resource/edge-lambda-version.d.ts +0 -1
  380. package/dist/constructs/nextjs-site/custom-resource/edge-lambda-version.js +0 -138
  381. package/dist/constructs/nextjs-site/custom-resource/edge-lambda.d.ts +0 -1
  382. package/dist/constructs/nextjs-site/custom-resource/edge-lambda.js +0 -136
  383. package/dist/constructs/nextjs-site/custom-resource/s3-bucket.d.ts +0 -1
  384. package/dist/constructs/nextjs-site/custom-resource/s3-bucket.js +0 -94
  385. package/dist/constructs/nextjs-site/custom-resource/util.d.ts +0 -1
  386. package/dist/constructs/nextjs-site/custom-resource/util.js +0 -4
  387. package/dist/logger.d.ts +0 -9
  388. package/dist/runtime/handlers.js +0 -72
  389. package/dist/runtime/node.js +0 -99
  390. package/dist/sst.mjs +0 -164202
  391. package/dist/stacks/deploy.d.ts +0 -33
  392. package/dist/stacks/deploy.js +0 -168
  393. package/dist/stacks/index.d.ts +0 -21
  394. package/dist/stacks/index.js +0 -57
  395. package/dist/stacks/metadata.d.ts +0 -9
  396. package/dist/support/base-site-archiver.cjs +0 -115
  397. package/dist/support/base-site-custom-resource/s3-handler.py +0 -195
  398. package/dist/support/base-site-custom-resource/s3-upload.py +0 -91
  399. package/dist/support/bridge/bridge.mjs +0 -86
  400. package/dist/support/static-site-stub/index.html +0 -90
  401. package/src/app.ts +0 -140
  402. package/src/bootstrap.ts +0 -28
  403. package/src/bus.ts +0 -81
  404. package/src/cache.ts +0 -34
  405. package/src/cdk/cloudformation-deployments.ts +0 -730
  406. package/src/cdk/deploy-stack.ts +0 -1030
  407. package/src/cli/commands/bind.ts +0 -31
  408. package/src/cli/commands/build.ts +0 -16
  409. package/src/cli/commands/deploy.ts +0 -34
  410. package/src/cli/commands/env.ts +0 -0
  411. package/src/cli/commands/scrap.ts +0 -5
  412. package/src/cli/commands/secrets/get.ts +0 -50
  413. package/src/cli/commands/secrets/list.ts +0 -66
  414. package/src/cli/commands/secrets/remove.ts +0 -36
  415. package/src/cli/commands/secrets/secrets.ts +0 -17
  416. package/src/cli/commands/secrets/set.ts +0 -59
  417. package/src/cli/commands/start.tsx +0 -162
  418. package/src/cli/commands/update.ts +0 -100
  419. package/src/cli/program.ts +0 -22
  420. package/src/cli/spinner.ts +0 -14
  421. package/src/cli/sst.ts +0 -50
  422. package/src/cli/ui/deploy.tsx +0 -139
  423. package/src/config.ts +0 -226
  424. package/src/constructs/Api.ts +0 -1448
  425. package/src/constructs/ApiGatewayV1Api.ts +0 -1481
  426. package/src/constructs/App.ts +0 -744
  427. package/src/constructs/AppSyncApi.ts +0 -1045
  428. package/src/constructs/Auth.ts +0 -252
  429. package/src/constructs/BaseSite.ts +0 -146
  430. package/src/constructs/Bucket.ts +0 -670
  431. package/src/constructs/Cognito.ts +0 -708
  432. package/src/constructs/Config.ts +0 -4
  433. package/src/constructs/Construct.ts +0 -77
  434. package/src/constructs/Cron.ts +0 -235
  435. package/src/constructs/DebugApp.ts +0 -97
  436. package/src/constructs/DebugStack.ts +0 -182
  437. package/src/constructs/EdgeFunction.ts +0 -460
  438. package/src/constructs/EventBus.ts +0 -651
  439. package/src/constructs/Function.ts +0 -1329
  440. package/src/constructs/FunctionalStack.ts +0 -90
  441. package/src/constructs/GraphQLApi.ts +0 -140
  442. package/src/constructs/Job.ts +0 -557
  443. package/src/constructs/KinesisStream.ts +0 -388
  444. package/src/constructs/Metadata.ts +0 -75
  445. package/src/constructs/NextjsSite.ts +0 -1498
  446. package/src/constructs/Parameter.ts +0 -72
  447. package/src/constructs/Queue.ts +0 -360
  448. package/src/constructs/RDS.ts +0 -578
  449. package/src/constructs/ReactStaticSite.ts +0 -66
  450. package/src/constructs/RemixSite.ts +0 -1397
  451. package/src/constructs/Script/cfn-response.ts +0 -116
  452. package/src/constructs/Script/index.ts +0 -103
  453. package/src/constructs/Script/outbound.ts +0 -59
  454. package/src/constructs/Script/package.json +0 -3
  455. package/src/constructs/Script/util.ts +0 -19
  456. package/src/constructs/Script.ts +0 -270
  457. package/src/constructs/Secret.ts +0 -66
  458. package/src/constructs/Stack.ts +0 -319
  459. package/src/constructs/StaticSite.ts +0 -995
  460. package/src/constructs/Table.ts +0 -844
  461. package/src/constructs/Topic.ts +0 -486
  462. package/src/constructs/ViteStaticSite.ts +0 -99
  463. package/src/constructs/WebSocketApi.ts +0 -687
  464. package/src/constructs/context.ts +0 -12
  465. package/src/constructs/deferred_task.ts +0 -53
  466. package/src/constructs/descs.d.ts +0 -1
  467. package/src/constructs/index.ts +0 -39
  468. package/src/constructs/nextjs-site/cross-region-helper.ts +0 -189
  469. package/src/constructs/nextjs-site/custom-resource/cfn-response.ts +0 -146
  470. package/src/constructs/nextjs-site/custom-resource/edge-lambda-version.ts +0 -162
  471. package/src/constructs/nextjs-site/custom-resource/edge-lambda.ts +0 -167
  472. package/src/constructs/nextjs-site/custom-resource/s3-bucket.ts +0 -112
  473. package/src/constructs/nextjs-site/custom-resource/util.ts +0 -11
  474. package/src/constructs/util/apiGatewayV1AccessLog.ts +0 -106
  475. package/src/constructs/util/apiGatewayV2AccessLog.ts +0 -139
  476. package/src/constructs/util/apiGatewayV2Cors.ts +0 -94
  477. package/src/constructs/util/apiGatewayV2Domain.ts +0 -312
  478. package/src/constructs/util/appSyncApiDomain.ts +0 -204
  479. package/src/constructs/util/builder.ts +0 -17
  480. package/src/constructs/util/duration.ts +0 -27
  481. package/src/constructs/util/functionBinding.ts +0 -102
  482. package/src/constructs/util/functionUrlCors.ts +0 -96
  483. package/src/constructs/util/permission.ts +0 -299
  484. package/src/constructs/util/python/bundling.ts +0 -174
  485. package/src/constructs/util/size.ts +0 -13
  486. package/src/constructs/util/warning.ts +0 -20
  487. package/src/context/context.ts +0 -79
  488. package/src/context/handler.ts +0 -53
  489. package/src/context/index.ts +0 -2
  490. package/src/credentials.ts +0 -103
  491. package/src/error.ts +0 -5
  492. package/src/iot.ts +0 -105
  493. package/src/logger.ts +0 -35
  494. package/src/runtime/handlers.ts +0 -121
  495. package/src/runtime/iot.ts +0 -16
  496. package/src/runtime/node.ts +0 -111
  497. package/src/runtime/runtime.ts +0 -27
  498. package/src/runtime/server.ts +0 -149
  499. package/src/runtime/workers.ts +0 -96
  500. package/src/stacks/build.ts +0 -69
  501. package/src/stacks/deploy.ts +0 -232
  502. package/src/stacks/index.ts +0 -73
  503. package/src/stacks/metadata.ts +0 -125
  504. package/src/watcher.ts +0 -47
  505. package/sst.config.mjs +0 -6
  506. package/support/bridge/bridge.ts +0 -136
  507. package/support/bridge/build.mjs +0 -18
  508. package/support/custom-resources/auth-keys.ts +0 -113
  509. package/support/custom-resources/build.mjs +0 -18
  510. package/support/custom-resources/cfn-response.ts +0 -151
  511. package/support/custom-resources/index.ts +0 -18
  512. package/support/custom-resources/secrets-migration.ts +0 -82
  513. package/support/custom-resources/stack-metadata.ts +0 -75
  514. package/support/custom-resources/util.ts +0 -44
  515. package/support/nodejs-runtime/index.ts +0 -69
  516. package/support/tsconfig.json +0 -11
  517. package/tsconfig.json +0 -13
  518. package/yarn-error.log +0 -75
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2020 SST
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -1,8 +1,8 @@
1
1
  export interface Project {
2
2
  name: string;
3
+ region: string;
3
4
  stage?: string;
4
5
  profile?: string;
5
- region?: string;
6
6
  main?: string;
7
7
  ssmPrefix?: string;
8
8
  }
@@ -14,16 +14,23 @@ declare const DEFAULTS: {
14
14
  declare type ProjectWithDefaults = Project & Required<{
15
15
  [key in keyof typeof DEFAULTS]: Exclude<Project[key], undefined>;
16
16
  }> & {
17
+ version: string;
17
18
  paths: {
18
19
  root: string;
19
20
  out: string;
21
+ artifacts: string;
20
22
  };
21
23
  };
24
+ export declare const ProjectContext: {
25
+ use(): ProjectWithDefaults;
26
+ provide(value: ProjectWithDefaults): void;
27
+ };
22
28
  export declare function useProject(): ProjectWithDefaults;
23
29
  interface GlobalOptions {
24
30
  profile?: string;
25
31
  stage?: string;
26
32
  root?: string;
33
+ region?: string;
27
34
  }
28
35
  export declare function initProject(globals: GlobalOptions): Promise<void>;
29
36
  export {};
package/app.js ADDED
@@ -0,0 +1,122 @@
1
+ import fs from "fs/promises";
2
+ import fsSync from "fs";
3
+ import path from "path";
4
+ import url from "url";
5
+ import os from "os";
6
+ import { Logger } from "./logger.js";
7
+ import { Context } from "./context/context.js";
8
+ import { VisibleError } from "./error.js";
9
+ import { blue } from "colorette";
10
+ import { dynamicImport } from "./util/module.js";
11
+ import dotenv from "dotenv";
12
+ const DEFAULTS = {
13
+ main: "stacks/index.ts",
14
+ stage: undefined,
15
+ ssmPrefix: undefined,
16
+ };
17
+ export const ProjectContext = Context.create();
18
+ export function useProject() {
19
+ return ProjectContext.use();
20
+ }
21
+ const CONFIG_EXTENSIONS = [".config.cjs", ".config.mjs", ".config.js", ".json"];
22
+ export async function initProject(globals) {
23
+ const root = globals.root || (await findRoot());
24
+ const out = path.join(root, ".sst");
25
+ await fs.mkdir(out, {
26
+ recursive: true,
27
+ });
28
+ async function load() {
29
+ const base = await (async function () {
30
+ for (const ext of CONFIG_EXTENSIONS) {
31
+ const file = path.join(root, "sst" + ext);
32
+ try {
33
+ await fs.access(file);
34
+ }
35
+ catch {
36
+ continue;
37
+ }
38
+ if (file.endsWith("js")) {
39
+ const fn = await dynamicImport(file);
40
+ return await fn.default(globals);
41
+ }
42
+ if (file.endsWith(".json")) {
43
+ const data = await fs.readFile(file);
44
+ return Object.assign(DEFAULTS, JSON.parse(data.toString("utf8")));
45
+ }
46
+ }
47
+ throw new VisibleError("Could not found a configuration file", "Make sure one of the following exists", " - sst.config.cjs", " - sst.config.mjs", " - sst.config.js", " - sst.json");
48
+ })();
49
+ return {
50
+ ...DEFAULTS,
51
+ ...base,
52
+ stage: base.stage ||
53
+ globals.stage ||
54
+ (await usePersonalStage(out)) ||
55
+ (await promptPersonalStage(out)),
56
+ profile: base.profile || globals.profile,
57
+ region: base.region || globals.region,
58
+ };
59
+ }
60
+ const project = await load();
61
+ project.ssmPrefix =
62
+ project.ssmPrefix || `/sst/${project.name}/${project.stage}/`;
63
+ project.paths = {
64
+ root,
65
+ out,
66
+ artifacts: path.join(out, "artifacts"),
67
+ };
68
+ try {
69
+ const packageJson = JSON.parse(await fs
70
+ .readFile(url.fileURLToPath(new URL("./package.json", import.meta.url)))
71
+ .then((x) => x.toString()));
72
+ project.version = packageJson.version;
73
+ }
74
+ catch {
75
+ project.version = "unknown";
76
+ }
77
+ ProjectContext.provide(project);
78
+ dotenv.config({
79
+ path: path.join(project.paths.root, `.env.${project.stage}`),
80
+ });
81
+ Logger.debug("Config loaded", project);
82
+ }
83
+ async function usePersonalStage(out) {
84
+ try {
85
+ const result = await fs.readFile(path.join(out, "stage"));
86
+ return result.toString("utf8").trim();
87
+ }
88
+ catch {
89
+ return;
90
+ }
91
+ }
92
+ async function promptPersonalStage(out) {
93
+ const readline = await import("readline");
94
+ const rl = readline.createInterface({
95
+ input: process.stdin,
96
+ output: process.stdout,
97
+ });
98
+ return new Promise((resolve) => {
99
+ const suggested = os.userInfo().username;
100
+ rl.question(`Please enter a name you’d like to use for your personal stage. Or hit enter to use ${blue(suggested)}: `, async (input) => {
101
+ rl.close();
102
+ const result = input || suggested;
103
+ await fs.writeFile(path.join(out, "stage"), result);
104
+ resolve(result);
105
+ });
106
+ });
107
+ }
108
+ async function findRoot() {
109
+ async function find(dir) {
110
+ if (dir === "/")
111
+ throw new VisibleError("Could not found a configuration file", "Make sure one of the following exists", ...CONFIG_EXTENSIONS.map((ext) => ` - sst${ext}`));
112
+ for (const ext of CONFIG_EXTENSIONS) {
113
+ const configPath = path.join(dir, `sst${ext}`);
114
+ if (fsSync.existsSync(configPath)) {
115
+ return dir;
116
+ }
117
+ }
118
+ return await find(path.join(dir, ".."));
119
+ }
120
+ const result = await find(process.cwd());
121
+ return result;
122
+ }
@@ -1,3 +1,4 @@
1
+ export declare const LATEST_VERSION = "3";
1
2
  export declare const useBootstrap: () => Promise<{
2
3
  version: string | undefined;
3
4
  bucket: string | undefined;
package/bootstrap.js ADDED
@@ -0,0 +1,79 @@
1
+ import { GetParametersCommand, SSMClient } from "@aws-sdk/client-ssm";
2
+ import { Tags, Stack, RemovalPolicy, App } from "aws-cdk-lib";
3
+ import { BlockPublicAccess, Bucket, BucketEncryption, } from "aws-cdk-lib/aws-s3";
4
+ import { ParameterTier, StringParameter } from "aws-cdk-lib/aws-ssm";
5
+ import { useProject } from "./app.js";
6
+ import { createSpinner } from "./cli/spinner.js";
7
+ import { Context } from "./context/context.js";
8
+ import { useAWSClient } from "./credentials.js";
9
+ import { VisibleError } from "./error.js";
10
+ import { Logger } from "./logger.js";
11
+ import { Stacks } from "./stacks/index.js";
12
+ const SSM_NAME_VERSION = `/sst/bootstrap/version`;
13
+ const SSM_NAME_STACK_NAME = `/sst/bootstrap/stack-name`;
14
+ const SSM_NAME_BUCKET_NAME = `/sst/bootstrap/bucket-name`;
15
+ export const LATEST_VERSION = "3";
16
+ export const useBootstrap = Context.memo(async () => {
17
+ Logger.debug("Initializing bootstrap context");
18
+ const ret = await ssm();
19
+ if (!ret.version ||
20
+ !ret.bucket ||
21
+ !ret.stack ||
22
+ ret.version !== LATEST_VERSION) {
23
+ const project = useProject();
24
+ const spinner = createSpinner("Deploying bootstrap stack, this only needs to happen once").start();
25
+ const app = new App();
26
+ const stack = new Stack(app, "SSTBootstrap", {
27
+ env: {
28
+ region: project.region,
29
+ },
30
+ });
31
+ const tags = {};
32
+ for (const [key, value] of Object.entries(tags)) {
33
+ Tags.of(app).add(key, value);
34
+ }
35
+ const bucket = new Bucket(stack, project.region, {
36
+ encryption: BucketEncryption.S3_MANAGED,
37
+ removalPolicy: RemovalPolicy.DESTROY,
38
+ autoDeleteObjects: true,
39
+ blockPublicAccess: BlockPublicAccess.BLOCK_ALL,
40
+ });
41
+ new StringParameter(stack, SSM_NAME_VERSION, {
42
+ parameterName: SSM_NAME_VERSION,
43
+ stringValue: LATEST_VERSION,
44
+ tier: ParameterTier.STANDARD,
45
+ });
46
+ new StringParameter(stack, SSM_NAME_STACK_NAME, {
47
+ parameterName: SSM_NAME_STACK_NAME,
48
+ stringValue: stack.stackName,
49
+ tier: ParameterTier.STANDARD,
50
+ });
51
+ new StringParameter(stack, SSM_NAME_BUCKET_NAME, {
52
+ parameterName: SSM_NAME_BUCKET_NAME,
53
+ stringValue: bucket.bucketName,
54
+ tier: ParameterTier.STANDARD,
55
+ });
56
+ const asm = app.synth();
57
+ const result = await Stacks.deploy(asm.stacks[0]);
58
+ if (Stacks.isFailed(result.status)) {
59
+ throw new VisibleError(`Failed to deploy bootstrap stack:\n${JSON.stringify(result.errors, null, 4)}`);
60
+ }
61
+ spinner.succeed();
62
+ return ssm();
63
+ }
64
+ Logger.debug("Loaded bootstrap info: ", JSON.stringify(ret));
65
+ return ret;
66
+ });
67
+ async function ssm() {
68
+ const ssm = useAWSClient(SSMClient);
69
+ const result = await ssm.send(new GetParametersCommand({
70
+ Names: [SSM_NAME_VERSION, SSM_NAME_STACK_NAME, SSM_NAME_BUCKET_NAME],
71
+ }));
72
+ return {
73
+ version: result.Parameters.find((p) => p.Name === SSM_NAME_VERSION)?.Value,
74
+ bucket: result.Parameters.find((p) => p.Name === SSM_NAME_BUCKET_NAME)
75
+ ?.Value,
76
+ stack: result.Parameters.find((p) => p.Name === SSM_NAME_STACK_NAME)
77
+ ?.Value,
78
+ };
79
+ }
File without changes
File without changes
File without changes
File without changes
@@ -5,7 +5,7 @@ import { ISDK } from "aws-cdk/lib/api/aws-auth/sdk.js";
5
5
  import { SdkProvider } from "aws-cdk/lib/api/aws-auth/sdk-provider.js";
6
6
  import { DeployStackResult, DeploymentMethod } from "./deploy-stack.js";
7
7
  import { Template, ResourcesToImport, ResourceIdentifierSummaries } from "aws-cdk/lib/api/util/cloudformation.js";
8
- import { StackActivityProgress } from "aws-cdk/lib/api/util/cloudformation/stack-activity-monitor";
8
+ import { StackActivityProgress } from "aws-cdk/lib/api/util/cloudformation/stack-activity-monitor.js";
9
9
  /**
10
10
  * SDK obtained by assuming the lookup role
11
11
  * for a given environment
@@ -76,6 +76,7 @@ export async function prepareSdkWithLookupRoleFor(sdkProvider, stack) {
76
76
  * stack artifact.
77
77
  */
78
78
  export class CloudFormationDeployments {
79
+ sdkProvider;
79
80
  constructor(props) {
80
81
  this.sdkProvider = props.sdkProvider;
81
82
  }
File without changes
@@ -1,6 +1,5 @@
1
1
  import * as cxapi from "@aws-cdk/cx-api";
2
- import chalk from "chalk";
3
- import * as fs from "fs-extra";
2
+ import fs from "fs/promises";
4
3
  import * as uuid from "uuid";
5
4
  import { addMetadataAssetsToManifest } from "aws-cdk/lib/assets.js";
6
5
  import { debug, error, print } from "aws-cdk/lib/logging.js";
@@ -10,9 +9,9 @@ import { publishAssets } from "aws-cdk/lib/util/asset-publishing.js";
10
9
  import { contentHash } from "aws-cdk/lib/util/content-hash.js";
11
10
  import { CfnEvaluationException } from "aws-cdk/lib/api/evaluate-cloudformation-template.js";
12
11
  import { tryHotswapDeployment } from "aws-cdk/lib/api/hotswap-deployments.js";
13
- import { ICON } from "aws-cdk/lib/api/hotswap/common.js";
14
12
  import { changeSetHasNoChanges, CloudFormationStack, TemplateParameters, waitForChangeSet, waitForStackDeploy, waitForStackDelete, } from "aws-cdk/lib/api/util/cloudformation.js";
15
13
  import { StackActivityMonitor, } from "aws-cdk/lib/api/util/cloudformation/stack-activity-monitor.js";
14
+ import { blue } from "colorette";
16
15
  const LARGE_TEMPLATE_SIZE_KB = 50;
17
16
  export async function deployStack(options) {
18
17
  const stackArtifact = options.stack;
@@ -48,7 +47,6 @@ export async function deployStack(options) {
48
47
  // if we can skip deployment and we are performing a hotswap, let the user know
49
48
  // that no hotswap deployment happened
50
49
  if (options.hotswap) {
51
- print(`\n ${ICON} %s\n`, chalk.bold("hotswap deployment skipped - no changes were detected (use --force to override)"));
52
50
  }
53
51
  return {
54
52
  noOp: true,
@@ -89,6 +87,16 @@ export async function deployStack(options) {
89
87
  * This class shares state and functionality between the different full deployment modes
90
88
  */
91
89
  class FullCloudFormationDeployment {
90
+ options;
91
+ cloudFormationStack;
92
+ stackArtifact;
93
+ stackParams;
94
+ bodyParameter;
95
+ cfn;
96
+ stackName;
97
+ update;
98
+ verb;
99
+ uuid;
92
100
  constructor(options, cloudFormationStack, stackArtifact, stackParams, bodyParameter) {
93
101
  this.options = options;
94
102
  this.cloudFormationStack = cloudFormationStack;
@@ -153,7 +161,6 @@ class FullCloudFormationDeployment {
153
161
  async createChangeSet(changeSetName, willExecute) {
154
162
  await this.cleanupOldChangeset(changeSetName);
155
163
  debug(`Attempting to create ChangeSet with name ${changeSetName} to ${this.verb} stack ${this.stackName}`);
156
- print("%s: creating CloudFormation changeset...", chalk.bold(this.stackName));
157
164
  const changeSet = await this.cfn
158
165
  .createChangeSet({
159
166
  StackName: this.stackName,
@@ -344,7 +351,7 @@ async function makeBodyParameter(stack, resolvedEnvironment, assetManifest, tool
344
351
  if (!toolkitInfo.found) {
345
352
  error(`The template for stack "${stack.displayName}" is ${Math.round(templateJson.length / 1024)}KiB. ` +
346
353
  `Templates larger than ${LARGE_TEMPLATE_SIZE_KB}KiB must be uploaded to S3.\n` +
347
- "Run the following command in order to setup an S3 bucket in this environment, and then re-deploy:\n\n", chalk.blue(`\t$ cdk bootstrap ${resolvedEnvironment.name}\n`));
354
+ "Run the following command in order to setup an S3 bucket in this environment, and then re-deploy:\n\n", blue(`\t$ cdk bootstrap ${resolvedEnvironment.name}\n`));
348
355
  throw new Error('Template too large to deploy ("cdk bootstrap" is required)');
349
356
  }
350
357
  const templateHash = contentHash(templateJson);
@@ -1,9 +1,11 @@
1
1
  /// <reference types="yargs" />
2
- import { Program } from "../program.js";
2
+ import type { Program } from "../program.js";
3
3
  export declare const bind: (program: Program) => import("yargs").Argv<{
4
4
  stage: string | undefined;
5
5
  } & {
6
6
  profile: string | undefined;
7
+ } & {
8
+ region: string | undefined;
7
9
  } & {
8
10
  command: string;
9
11
  }>;
@@ -1,12 +1,14 @@
1
- import { Config } from "../../config.js";
2
- import { spawnSync } from "child_process";
3
- import { useAWSCredentials } from "../../credentials.js";
1
+ import { useProject } from "../../app.js";
4
2
  export const bind = (program) => program.command("bind <command>", "Binds blah", (yargs) => yargs.positional("command", {
5
3
  type: "string",
6
4
  describe: "Command to bind to",
7
5
  demandOption: true,
8
6
  }), async (args) => {
7
+ const { Config } = await import("../../config.js");
8
+ const { spawnSync, spawn } = await import("child_process");
9
+ const { useAWSCredentials } = await import("../../credentials.js");
9
10
  const env = await Config.env();
11
+ const project = useProject();
10
12
  const credentials = await useAWSCredentials();
11
13
  const result = spawnSync(args.command, {
12
14
  env: {
@@ -14,9 +16,11 @@ export const bind = (program) => program.command("bind <command>", "Binds blah",
14
16
  AWS_ACCESS_KEY_ID: credentials.accessKeyId,
15
17
  AWS_SECRET_ACCESS_KEY: credentials.secretAccessKey,
16
18
  AWS_SESSION_TOKEN: credentials.sessionToken,
19
+ AWS_REGION: project.region,
20
+ PATH: process.env.PATH,
17
21
  },
18
22
  stdio: "inherit",
19
- shell: true,
23
+ shell: process.env.SHELL || true,
20
24
  });
21
25
  process.exitCode = result.status || undefined;
22
26
  });
@@ -4,6 +4,8 @@ export declare const build: (program: Program) => import("yargs").Argv<{
4
4
  stage: string | undefined;
5
5
  } & {
6
6
  profile: string | undefined;
7
+ } & {
8
+ region: string | undefined;
7
9
  } & {
8
10
  from: string | undefined;
9
11
  }>;
@@ -0,0 +1,12 @@
1
+ import { createSpinner } from "../spinner.js";
2
+ export const build = (program) => program.command("build", "Build stacks code", yargs => yargs.option("from", { type: "string" }), async () => {
3
+ const { Stacks } = await import("../../stacks/index.js");
4
+ const spinner = createSpinner("Building stacks").start();
5
+ const fn = await Stacks.build();
6
+ await Stacks.synth({
7
+ fn,
8
+ mode: "deploy"
9
+ });
10
+ spinner.succeed();
11
+ process.exit(0);
12
+ });
@@ -0,0 +1,9 @@
1
+ /// <reference types="yargs" />
2
+ import { 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
+ }>>;
@@ -0,0 +1,15 @@
1
+ import { blue } from "colorette";
2
+ import { useRuntimeServer } from "../../runtime/server.js";
3
+ import { useLocalServer } from "../local/server.js";
4
+ export const consoleCommand = async (program) => program.command("console", "Start the sst console", (yargs) => yargs, async () => {
5
+ await Promise.all([
6
+ useRuntimeServer(),
7
+ useLocalServer({
8
+ key: "",
9
+ cert: "",
10
+ live: false,
11
+ port: 13557,
12
+ }),
13
+ ]);
14
+ console.log(`Console started: ${blue(`https://console.sst.dev`)}`);
15
+ });
@@ -1,9 +1,15 @@
1
1
  /// <reference types="yargs" />
2
- import { Program } from "../program.js";
2
+ import type { Program } from "../program.js";
3
3
  export declare const deploy: (program: Program) => import("yargs").Argv<{
4
4
  stage: string | undefined;
5
5
  } & {
6
6
  profile: string | undefined;
7
+ } & {
8
+ region: string | undefined;
7
9
  } & {
8
10
  from: string | undefined;
11
+ } & {
12
+ fullscreen: boolean;
13
+ } & {
14
+ filter: string | undefined;
9
15
  }>;
@@ -0,0 +1,48 @@
1
+ import { printDeploymentResults } from "../ui/deploy.js";
2
+ export const deploy = (program) => program.command("deploy [filter]", "Work on your SST app locally", (yargs) => yargs
3
+ .option("from", { type: "string" })
4
+ .option("fullscreen", {
5
+ type: "boolean",
6
+ describe: "Disable full screen UI",
7
+ default: true,
8
+ })
9
+ .positional("filter", { type: "string" }), async (args) => {
10
+ const React = await import("react");
11
+ const { CloudAssembly } = await import("aws-cdk-lib/cx-api");
12
+ const { blue, bold } = await import("colorette");
13
+ const { useProject } = await import("../../app.js");
14
+ const { Stacks } = await import("../../stacks/index.js");
15
+ const { render } = await import("ink");
16
+ const { DeploymentUI } = await import("../ui/deploy.js");
17
+ const assembly = await (async function () {
18
+ if (args.from) {
19
+ const result = new CloudAssembly(args.from);
20
+ return result;
21
+ }
22
+ const fn = await Stacks.build();
23
+ return await Stacks.synth({
24
+ fn,
25
+ mode: "deploy",
26
+ });
27
+ })();
28
+ const project = useProject();
29
+ const target = assembly.stacks.filter((s) => !args.filter ||
30
+ s.stackName.toLowerCase().includes(args.filter.toLowerCase()));
31
+ if (!target.length) {
32
+ console.log(`No stacks found matching ${blue(args.filter)}`);
33
+ process.exit(1);
34
+ return;
35
+ }
36
+ console.log(`Deploying ${bold(target.length + " stacks")} for stage ${blue(project.stage)}...`);
37
+ let component = undefined;
38
+ if (args.fullscreen) {
39
+ process.stdout.write("\x1b[?1049h");
40
+ component = render(React.createElement(DeploymentUI, { stacks: assembly.stacks.map((s) => s.stackName) }));
41
+ }
42
+ const results = await Stacks.deployMany(target);
43
+ if (component)
44
+ component.unmount();
45
+ process.stdout.write("\x1b[?1049l");
46
+ printDeploymentResults(results);
47
+ process.exit(0);
48
+ });
@@ -0,0 +1,11 @@
1
+ /// <reference types="yargs" />
2
+ import type { Program } from "../program.js";
3
+ export declare const dev: (program: Program) => import("yargs").Argv<{
4
+ stage: string | undefined;
5
+ } & {
6
+ profile: string | undefined;
7
+ } & {
8
+ region: string | undefined;
9
+ } & {
10
+ fullscreen: boolean;
11
+ }>;