sst 3.0.0 → 3.0.1-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 (457) hide show
  1. package/package.json +7 -139
  2. package/src/index.ts +1 -0
  3. package/src/resource.ts +15 -0
  4. package/tsconfig.json +11 -0
  5. package/LICENSE +0 -21
  6. package/README.md +0 -43
  7. package/bootstrap.d.ts +0 -5
  8. package/bootstrap.js +0 -318
  9. package/bus.d.ts +0 -20
  10. package/bus.js +0 -52
  11. package/cache.d.ts +0 -4
  12. package/cache.js +0 -31
  13. package/cdk/deploy-stack.d.ts +0 -223
  14. package/cdk/deploy-stack.js +0 -562
  15. package/cdk/deployments-wrapper.d.ts +0 -3
  16. package/cdk/deployments-wrapper.js +0 -135
  17. package/cdk/deployments.d.ts +0 -327
  18. package/cdk/deployments.js +0 -360
  19. package/cdk/util.d.ts +0 -1
  20. package/cdk/util.js +0 -17
  21. package/cli/ci-info.d.ts +0 -4
  22. package/cli/ci-info.js +0 -8
  23. package/cli/colors.d.ts +0 -17
  24. package/cli/colors.js +0 -27
  25. package/cli/commands/bind.d.ts +0 -19
  26. package/cli/commands/bind.js +0 -360
  27. package/cli/commands/bootstrap.d.ts +0 -15
  28. package/cli/commands/bootstrap.js +0 -11
  29. package/cli/commands/build.d.ts +0 -17
  30. package/cli/commands/build.js +0 -25
  31. package/cli/commands/connect.d.ts +0 -17
  32. package/cli/commands/connect.js +0 -55
  33. package/cli/commands/console.d.ts +0 -15
  34. package/cli/commands/console.js +0 -22
  35. package/cli/commands/deploy.d.ts +0 -19
  36. package/cli/commands/deploy.js +0 -112
  37. package/cli/commands/dev.d.ts +0 -25
  38. package/cli/commands/dev.js +0 -351
  39. package/cli/commands/diff.d.ts +0 -19
  40. package/cli/commands/diff.js +0 -89
  41. package/cli/commands/plugins/kysely.d.ts +0 -1
  42. package/cli/commands/plugins/kysely.js +0 -87
  43. package/cli/commands/plugins/pothos.d.ts +0 -1
  44. package/cli/commands/plugins/pothos.js +0 -58
  45. package/cli/commands/plugins/warmer.d.ts +0 -1
  46. package/cli/commands/plugins/warmer.js +0 -33
  47. package/cli/commands/remove.d.ts +0 -19
  48. package/cli/commands/remove.js +0 -62
  49. package/cli/commands/secrets/get.d.ts +0 -19
  50. package/cli/commands/secrets/get.js +0 -27
  51. package/cli/commands/secrets/list.d.ts +0 -19
  52. package/cli/commands/secrets/list.js +0 -69
  53. package/cli/commands/secrets/load.d.ts +0 -17
  54. package/cli/commands/secrets/load.js +0 -47
  55. package/cli/commands/secrets/remove.d.ts +0 -19
  56. package/cli/commands/secrets/remove.js +0 -27
  57. package/cli/commands/secrets/secrets.d.ts +0 -2
  58. package/cli/commands/secrets/secrets.js +0 -16
  59. package/cli/commands/secrets/set.d.ts +0 -21
  60. package/cli/commands/secrets/set.js +0 -54
  61. package/cli/commands/telemetry.d.ts +0 -17
  62. package/cli/commands/telemetry.js +0 -24
  63. package/cli/commands/transform.d.ts +0 -17
  64. package/cli/commands/transform.js +0 -62
  65. package/cli/commands/types.d.ts +0 -15
  66. package/cli/commands/types.js +0 -25
  67. package/cli/commands/update.d.ts +0 -17
  68. package/cli/commands/update.js +0 -116
  69. package/cli/commands/version.d.ts +0 -15
  70. package/cli/commands/version.js +0 -15
  71. package/cli/local/router.d.ts +0 -44
  72. package/cli/local/router.js +0 -43
  73. package/cli/local/server.d.ts +0 -22
  74. package/cli/local/server.js +0 -319
  75. package/cli/program.d.ts +0 -19
  76. package/cli/program.js +0 -87
  77. package/cli/spinner.d.ts +0 -3
  78. package/cli/spinner.js +0 -14
  79. package/cli/sst.d.ts +0 -2
  80. package/cli/sst.js +0 -74
  81. package/cli/telemetry/environment.d.ts +0 -15
  82. package/cli/telemetry/environment.js +0 -27
  83. package/cli/telemetry/post-payload.d.ts +0 -1
  84. package/cli/telemetry/post-payload.js +0 -27
  85. package/cli/telemetry/project-id.d.ts +0 -2
  86. package/cli/telemetry/project-id.js +0 -47
  87. package/cli/telemetry/telemetry.d.ts +0 -19
  88. package/cli/telemetry/telemetry.js +0 -103
  89. package/cli/terminal.d.ts +0 -1
  90. package/cli/terminal.js +0 -8
  91. package/cli/ui/deploy.d.ts +0 -10
  92. package/cli/ui/deploy.js +0 -172
  93. package/cli/ui/functions.d.ts +0 -2
  94. package/cli/ui/functions.js +0 -130
  95. package/cli/ui/header.d.ts +0 -5
  96. package/cli/ui/header.js +0 -16
  97. package/cli/ui/stack.d.ts +0 -1
  98. package/cli/ui/stack.js +0 -6
  99. package/config.d.ts +0 -56
  100. package/config.js +0 -244
  101. package/constructs/Api.d.ts +0 -814
  102. package/constructs/Api.js +0 -743
  103. package/constructs/ApiGatewayV1Api.d.ts +0 -642
  104. package/constructs/ApiGatewayV1Api.js +0 -767
  105. package/constructs/App.d.ts +0 -168
  106. package/constructs/App.js +0 -493
  107. package/constructs/AppSyncApi.d.ts +0 -550
  108. package/constructs/AppSyncApi.js +0 -493
  109. package/constructs/AstroSite.d.ts +0 -39
  110. package/constructs/AstroSite.js +0 -78
  111. package/constructs/AstroSite.tsdoc.d.ts +0 -2
  112. package/constructs/AstroSite.tsdoc.js +0 -2
  113. package/constructs/Auth.d.ts +0 -100
  114. package/constructs/Auth.js +0 -177
  115. package/constructs/BaseSite.d.ts +0 -29
  116. package/constructs/BaseSite.js +0 -43
  117. package/constructs/Bucket.d.ts +0 -364
  118. package/constructs/Bucket.js +0 -327
  119. package/constructs/Cognito.d.ts +0 -232
  120. package/constructs/Cognito.js +0 -370
  121. package/constructs/Config.d.ts +0 -3
  122. package/constructs/Config.js +0 -3
  123. package/constructs/Construct.d.ts +0 -23
  124. package/constructs/Construct.js +0 -46
  125. package/constructs/Cron.d.ts +0 -164
  126. package/constructs/Cron.js +0 -114
  127. package/constructs/Distribution.d.ts +0 -143
  128. package/constructs/Distribution.js +0 -260
  129. package/constructs/EdgeFunction.d.ts +0 -49
  130. package/constructs/EdgeFunction.js +0 -442
  131. package/constructs/EventBus.d.ts +0 -444
  132. package/constructs/EventBus.js +0 -440
  133. package/constructs/Function.d.ts +0 -690
  134. package/constructs/Function.js +0 -583
  135. package/constructs/FunctionalStack.d.ts +0 -13
  136. package/constructs/FunctionalStack.js +0 -62
  137. package/constructs/Job.d.ts +0 -337
  138. package/constructs/Job.js +0 -404
  139. package/constructs/KinesisStream.d.ts +0 -224
  140. package/constructs/KinesisStream.js +0 -207
  141. package/constructs/Metadata.d.ts +0 -60
  142. package/constructs/Metadata.js +0 -1
  143. package/constructs/NextjsSite.d.ts +0 -104
  144. package/constructs/NextjsSite.js +0 -308
  145. package/constructs/Parameter.d.ts +0 -37
  146. package/constructs/Parameter.js +0 -53
  147. package/constructs/Queue.d.ts +0 -194
  148. package/constructs/Queue.js +0 -204
  149. package/constructs/RDS.d.ts +0 -221
  150. package/constructs/RDS.js +0 -363
  151. package/constructs/RemixSite.d.ts +0 -42
  152. package/constructs/RemixSite.js +0 -158
  153. package/constructs/RemixSite.tsdoc.d.ts +0 -2
  154. package/constructs/RemixSite.tsdoc.js +0 -2
  155. package/constructs/Script.d.ts +0 -160
  156. package/constructs/Script.js +0 -179
  157. package/constructs/Secret.d.ts +0 -30
  158. package/constructs/Secret.js +0 -59
  159. package/constructs/Service.d.ts +0 -487
  160. package/constructs/Service.js +0 -655
  161. package/constructs/SolidStartSite.d.ts +0 -37
  162. package/constructs/SolidStartSite.js +0 -66
  163. package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
  164. package/constructs/SolidStartSite.tsdoc.js +0 -2
  165. package/constructs/SsrFunction.d.ts +0 -60
  166. package/constructs/SsrFunction.js +0 -226
  167. package/constructs/SsrSite.d.ts +0 -407
  168. package/constructs/SsrSite.js +0 -850
  169. package/constructs/Stack.d.ts +0 -127
  170. package/constructs/Stack.js +0 -243
  171. package/constructs/StaticSite.d.ts +0 -348
  172. package/constructs/StaticSite.js +0 -468
  173. package/constructs/SvelteKitSite.d.ts +0 -40
  174. package/constructs/SvelteKitSite.js +0 -106
  175. package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
  176. package/constructs/SvelteKitSite.tsdoc.js +0 -2
  177. package/constructs/Table.d.ts +0 -410
  178. package/constructs/Table.js +0 -425
  179. package/constructs/Topic.d.ts +0 -257
  180. package/constructs/Topic.js +0 -273
  181. package/constructs/WebSocketApi.d.ts +0 -355
  182. package/constructs/WebSocketApi.js +0 -404
  183. package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
  184. package/constructs/cdk/HttpAwsIntegration.js +0 -24
  185. package/constructs/cdk/certificate-base.d.ts +0 -18
  186. package/constructs/cdk/certificate-base.js +0 -26
  187. package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
  188. package/constructs/cdk/dns-validated-certificate.js +0 -125
  189. package/constructs/cdk/website-redirect.d.ts +0 -53
  190. package/constructs/cdk/website-redirect.js +0 -77
  191. package/constructs/context.d.ts +0 -3
  192. package/constructs/context.js +0 -27
  193. package/constructs/deferred_task.d.ts +0 -6
  194. package/constructs/deferred_task.js +0 -45
  195. package/constructs/deprecated/NextjsSite.d.ts +0 -309
  196. package/constructs/deprecated/NextjsSite.js +0 -1074
  197. package/constructs/deprecated/cross-region-helper.d.ts +0 -7
  198. package/constructs/deprecated/cross-region-helper.js +0 -152
  199. package/constructs/deprecated/index.d.ts +0 -1
  200. package/constructs/deprecated/index.js +0 -1
  201. package/constructs/future/Auth.d.ts +0 -80
  202. package/constructs/future/Auth.js +0 -122
  203. package/constructs/future/index.d.ts +0 -1
  204. package/constructs/future/index.js +0 -1
  205. package/constructs/index.d.ts +0 -32
  206. package/constructs/index.js +0 -32
  207. package/constructs/static-file-list.d.ts +0 -1
  208. package/constructs/static-file-list.js +0 -51
  209. package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
  210. package/constructs/util/apiGatewayV1AccessLog.js +0 -76
  211. package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
  212. package/constructs/util/apiGatewayV2AccessLog.js +0 -107
  213. package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
  214. package/constructs/util/apiGatewayV2Cors.js +0 -21
  215. package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
  216. package/constructs/util/apiGatewayV2Domain.js +0 -208
  217. package/constructs/util/appSyncApiDomain.d.ts +0 -41
  218. package/constructs/util/appSyncApiDomain.js +0 -176
  219. package/constructs/util/builder.d.ts +0 -3
  220. package/constructs/util/builder.js +0 -9
  221. package/constructs/util/duration.d.ts +0 -3
  222. package/constructs/util/duration.js +0 -19
  223. package/constructs/util/functionBinding.d.ts +0 -31
  224. package/constructs/util/functionBinding.js +0 -104
  225. package/constructs/util/functionUrlCors.d.ts +0 -67
  226. package/constructs/util/functionUrlCors.js +0 -23
  227. package/constructs/util/permission.d.ts +0 -8
  228. package/constructs/util/permission.js +0 -228
  229. package/constructs/util/size.d.ts +0 -3
  230. package/constructs/util/size.js +0 -12
  231. package/constructs/util/warning.d.ts +0 -11
  232. package/constructs/util/warning.js +0 -21
  233. package/context/context.d.ts +0 -13
  234. package/context/context.js +0 -69
  235. package/context/context2.d.ts +0 -16
  236. package/context/context2.js +0 -108
  237. package/context/handler.d.ts +0 -25
  238. package/context/handler.js +0 -21
  239. package/context/index.d.ts +0 -2
  240. package/context/index.js +0 -2
  241. package/credentials.d.ts +0 -9
  242. package/credentials.js +0 -145
  243. package/error.d.ts +0 -6
  244. package/error.js +0 -10
  245. package/index.d.ts +0 -1
  246. package/index.js +0 -1
  247. package/iot.d.ts +0 -6
  248. package/iot.js +0 -163
  249. package/logger.d.ts +0 -3
  250. package/logger.js +0 -32
  251. package/node/actor/index.d.ts +0 -29
  252. package/node/actor/index.js +0 -17
  253. package/node/api/index.d.ts +0 -64
  254. package/node/api/index.js +0 -179
  255. package/node/auth/adapter/adapter.d.ts +0 -3
  256. package/node/auth/adapter/adapter.js +0 -3
  257. package/node/auth/adapter/facebook.d.ts +0 -2
  258. package/node/auth/adapter/facebook.js +0 -26
  259. package/node/auth/adapter/github.d.ts +0 -2
  260. package/node/auth/adapter/github.js +0 -21
  261. package/node/auth/adapter/google.d.ts +0 -9
  262. package/node/auth/adapter/google.js +0 -18
  263. package/node/auth/adapter/link.d.ts +0 -8
  264. package/node/auth/adapter/link.js +0 -39
  265. package/node/auth/adapter/oauth.d.ts +0 -25
  266. package/node/auth/adapter/oauth.js +0 -52
  267. package/node/auth/adapter/oidc.d.ts +0 -17
  268. package/node/auth/adapter/oidc.js +0 -50
  269. package/node/auth/adapter/twitch.d.ts +0 -2
  270. package/node/auth/adapter/twitch.js +0 -11
  271. package/node/auth/auth.d.ts +0 -24
  272. package/node/auth/auth.js +0 -74
  273. package/node/auth/index.d.ts +0 -13
  274. package/node/auth/index.js +0 -12
  275. package/node/auth/session.d.ts +0 -76
  276. package/node/auth/session.js +0 -121
  277. package/node/bucket/index.d.ts +0 -3
  278. package/node/bucket/index.js +0 -2
  279. package/node/config/index.d.ts +0 -13
  280. package/node/config/index.js +0 -22
  281. package/node/event-bus/index.d.ts +0 -51
  282. package/node/event-bus/index.js +0 -76
  283. package/node/function/index.d.ts +0 -3
  284. package/node/function/index.js +0 -3
  285. package/node/future/auth/adapter/adapter.d.ts +0 -10
  286. package/node/future/auth/adapter/adapter.js +0 -1
  287. package/node/future/auth/adapter/code.d.ts +0 -17
  288. package/node/future/auth/adapter/code.js +0 -68
  289. package/node/future/auth/adapter/facebook.d.ts +0 -16
  290. package/node/future/auth/adapter/facebook.js +0 -27
  291. package/node/future/auth/adapter/github.d.ts +0 -23
  292. package/node/future/auth/adapter/github.js +0 -23
  293. package/node/future/auth/adapter/google.d.ts +0 -28
  294. package/node/future/auth/adapter/google.js +0 -22
  295. package/node/future/auth/adapter/link.d.ts +0 -13
  296. package/node/future/auth/adapter/link.js +0 -47
  297. package/node/future/auth/adapter/microsoft.d.ts +0 -22
  298. package/node/future/auth/adapter/microsoft.js +0 -16
  299. package/node/future/auth/adapter/oauth.d.ts +0 -41
  300. package/node/future/auth/adapter/oauth.js +0 -67
  301. package/node/future/auth/adapter/oidc.d.ts +0 -30
  302. package/node/future/auth/adapter/oidc.js +0 -63
  303. package/node/future/auth/adapter/spotify.d.ts +0 -23
  304. package/node/future/auth/adapter/spotify.js +0 -22
  305. package/node/future/auth/encryption.d.ts +0 -2
  306. package/node/future/auth/encryption.js +0 -30
  307. package/node/future/auth/handler.d.ts +0 -46
  308. package/node/future/auth/handler.js +0 -280
  309. package/node/future/auth/index.d.ts +0 -17
  310. package/node/future/auth/index.js +0 -15
  311. package/node/future/auth/session.d.ts +0 -71
  312. package/node/future/auth/session.js +0 -146
  313. package/node/graphql/index.d.ts +0 -15
  314. package/node/graphql/index.js +0 -32
  315. package/node/job/index.d.ts +0 -37
  316. package/node/job/index.js +0 -64
  317. package/node/kinesis-stream/index.d.ts +0 -3
  318. package/node/kinesis-stream/index.js +0 -3
  319. package/node/queue/index.d.ts +0 -3
  320. package/node/queue/index.js +0 -2
  321. package/node/rds/index.d.ts +0 -3
  322. package/node/rds/index.js +0 -2
  323. package/node/service/index.d.ts +0 -3
  324. package/node/service/index.js +0 -4
  325. package/node/site/index.d.ts +0 -18
  326. package/node/site/index.js +0 -18
  327. package/node/table/index.d.ts +0 -3
  328. package/node/table/index.js +0 -4
  329. package/node/topic/index.d.ts +0 -3
  330. package/node/topic/index.js +0 -4
  331. package/node/util/index.d.ts +0 -2
  332. package/node/util/index.js +0 -196
  333. package/node/util/loader.d.ts +0 -2
  334. package/node/util/loader.js +0 -51
  335. package/node/websocket-api/index.d.ts +0 -23
  336. package/node/websocket-api/index.js +0 -48
  337. package/pothos.d.ts +0 -7
  338. package/pothos.js +0 -160
  339. package/project.d.ts +0 -75
  340. package/project.js +0 -188
  341. package/runtime/handlers/container.d.ts +0 -2
  342. package/runtime/handlers/container.js +0 -263
  343. package/runtime/handlers/dotnet.d.ts +0 -2
  344. package/runtime/handlers/dotnet.js +0 -115
  345. package/runtime/handlers/go.d.ts +0 -2
  346. package/runtime/handlers/go.js +0 -126
  347. package/runtime/handlers/java.d.ts +0 -2
  348. package/runtime/handlers/java.js +0 -103
  349. package/runtime/handlers/node.d.ts +0 -2
  350. package/runtime/handlers/node.js +0 -269
  351. package/runtime/handlers/python.d.ts +0 -2
  352. package/runtime/handlers/python.js +0 -141
  353. package/runtime/handlers/pythonBundling.d.ts +0 -82
  354. package/runtime/handlers/pythonBundling.js +0 -80
  355. package/runtime/handlers/rust.d.ts +0 -2
  356. package/runtime/handlers/rust.js +0 -110
  357. package/runtime/handlers.d.ts +0 -74
  358. package/runtime/handlers.js +0 -151
  359. package/runtime/iot.d.ts +0 -1
  360. package/runtime/iot.js +0 -17
  361. package/runtime/runtime.d.ts +0 -32
  362. package/runtime/runtime.js +0 -1
  363. package/runtime/server.d.ts +0 -6
  364. package/runtime/server.js +0 -150
  365. package/runtime/workers.d.ts +0 -37
  366. package/runtime/workers.js +0 -85
  367. package/stacks/app-metadata.d.ts +0 -7
  368. package/stacks/app-metadata.js +0 -75
  369. package/stacks/assembly.d.ts +0 -1
  370. package/stacks/assembly.js +0 -4
  371. package/stacks/build.d.ts +0 -9
  372. package/stacks/build.js +0 -110
  373. package/stacks/deploy.d.ts +0 -9
  374. package/stacks/deploy.js +0 -240
  375. package/stacks/diff.d.ts +0 -8
  376. package/stacks/diff.js +0 -62
  377. package/stacks/index.d.ts +0 -10
  378. package/stacks/index.js +0 -10
  379. package/stacks/metadata.d.ts +0 -11
  380. package/stacks/metadata.js +0 -83
  381. package/stacks/monitor.d.ts +0 -32
  382. package/stacks/monitor.js +0 -151
  383. package/stacks/remove.d.ts +0 -8
  384. package/stacks/remove.js +0 -76
  385. package/stacks/synth.d.ts +0 -12
  386. package/stacks/synth.js +0 -94
  387. package/support/base-site-archiver.mjs +0 -99
  388. package/support/base-site-custom-resource/s3-handler.py +0 -195
  389. package/support/base-site-custom-resource/s3-upload.py +0 -89
  390. package/support/bootstrap-metadata-function/index.mjs +0 -58011
  391. package/support/bridge/Dockerfile +0 -3
  392. package/support/bridge/bridge.mjs +0 -146
  393. package/support/certificate-requestor/index.js +0 -549
  394. package/support/custom-resources/index.mjs +0 -180627
  395. package/support/dotnet31-bootstrap/Program.cs +0 -17
  396. package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
  397. package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  398. package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  399. package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  400. package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
  401. package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
  402. package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
  403. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
  404. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
  405. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  406. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
  407. package/support/dotnet6-bootstrap/Program.cs +0 -17
  408. package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
  409. package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  410. package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  411. package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
  412. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
  413. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
  414. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  415. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
  416. package/support/edge-function/edge-lambda-version.mjs +0 -3
  417. package/support/edge-function/edge-lambda.mjs +0 -3
  418. package/support/edge-function/s3-bucket.mjs +0 -3
  419. package/support/event-bus-retrier/index.mjs +0 -75
  420. package/support/java-runtime/install.sh +0 -25
  421. package/support/java-runtime/pom.xml +0 -39
  422. package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
  423. package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
  424. package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
  425. package/support/job-manager/index.mjs +0 -57679
  426. package/support/nixpacks/Dockerfile +0 -6
  427. package/support/nodejs-runtime/index.mjs +0 -169
  428. package/support/python-runtime/Dockerfile +0 -9
  429. package/support/python-runtime/Dockerfile.custom +0 -21
  430. package/support/python-runtime/Dockerfile.dependencies +0 -26
  431. package/support/python-runtime/runtime.py +0 -127
  432. package/support/rds-migrator/index.mjs +0 -49
  433. package/support/remix-site-function/edge-server.js +0 -161
  434. package/support/remix-site-function/polyfill.js +0 -24
  435. package/support/remix-site-function/regional-server.js +0 -164
  436. package/support/script-function/index.mjs +0 -48760
  437. package/support/service-dev-function/index.js +0 -1
  438. package/support/signing-function/index.mjs +0 -3769
  439. package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
  440. package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
  441. package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
  442. package/support/sls-nextjs-site-stub/index.html +0 -99
  443. package/support/ssr-site-function-archiver.mjs +0 -96
  444. package/support/ssr-site-function-stub/index.js +0 -5
  445. package/support/ssr-warmer/index.mjs +0 -34235
  446. package/util/error.d.ts +0 -3
  447. package/util/error.js +0 -6
  448. package/util/fs.d.ts +0 -4
  449. package/util/fs.js +0 -46
  450. package/util/lazy.d.ts +0 -1
  451. package/util/lazy.js +0 -11
  452. package/util/module.d.ts +0 -1
  453. package/util/module.js +0 -5
  454. package/util/process.d.ts +0 -2
  455. package/util/process.js +0 -3
  456. package/watcher.d.ts +0 -14
  457. package/watcher.js +0 -35
@@ -1,655 +0,0 @@
1
- import path from "path";
2
- import url from "url";
3
- import fs from "fs";
4
- import { VisibleError } from "../error.js";
5
- import { execAsync } from "../util/process.js";
6
- import { existsAsync } from "../util/fs.js";
7
- import { Colors } from "../cli/colors.js";
8
- import { Construct } from "constructs";
9
- import { Duration as CdkDuration, IgnoreMode } from "aws-cdk-lib/core";
10
- import { Role, Effect, PolicyStatement, AccountPrincipal, ServicePrincipal, CompositePrincipal, } from "aws-cdk-lib/aws-iam";
11
- import { ViewerProtocolPolicy, AllowedMethods, CachedMethods, CachePolicy, CacheQueryStringBehavior, CacheHeaderBehavior, CacheCookieBehavior, OriginProtocolPolicy, OriginRequestPolicy, } from "aws-cdk-lib/aws-cloudfront";
12
- import { HttpOrigin } from "aws-cdk-lib/aws-cloudfront-origins";
13
- import { Stack } from "./Stack.js";
14
- import { Distribution } from "./Distribution.js";
15
- import { Function } from "./Function.js";
16
- import { Secret } from "./Secret.js";
17
- import { useDeferredTasks } from "./deferred_task.js";
18
- import { attachPermissionsToRole } from "./util/permission.js";
19
- import { bindEnvironment, bindPermissions, getParameterPath, getReferencedSecrets, } from "./util/functionBinding.js";
20
- import { useProject } from "../project.js";
21
- import { Vpc, } from "aws-cdk-lib/aws-ec2";
22
- import { AwsLogDriver, Cluster, ContainerImage, CpuArchitecture, FargateService, FargateTaskDefinition, } from "aws-cdk-lib/aws-ecs";
23
- import { LogGroup, LogRetention, RetentionDays } from "aws-cdk-lib/aws-logs";
24
- import { Platform } from "aws-cdk-lib/aws-ecr-assets";
25
- import { ApplicationLoadBalancer, } from "aws-cdk-lib/aws-elasticloadbalancingv2";
26
- import { createAppContext } from "./context.js";
27
- const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
28
- const NIXPACKS_IMAGE_NAME = "sst-nixpacks";
29
- const supportedCpus = {
30
- "0.25 vCPU": 256,
31
- "0.5 vCPU": 512,
32
- "1 vCPU": 1024,
33
- "2 vCPU": 2048,
34
- "4 vCPU": 4096,
35
- "8 vCPU": 8192,
36
- "16 vCPU": 16384,
37
- };
38
- const supportedMemories = {
39
- "0.25 vCPU": {
40
- "0.5 GB": 512,
41
- "1 GB": 1024,
42
- "2 GB": 2048,
43
- },
44
- "0.5 vCPU": {
45
- "1 GB": 1024,
46
- "2 GB": 2048,
47
- "3 GB": 3072,
48
- "4 GB": 4096,
49
- },
50
- "1 vCPU": {
51
- "2 GB": 2048,
52
- "3 GB": 3072,
53
- "4 GB": 4096,
54
- "5 GB": 5120,
55
- "6 GB": 6144,
56
- "7 GB": 7168,
57
- "8 GB": 8192,
58
- },
59
- "2 vCPU": {
60
- "4 GB": 4096,
61
- "5 GB": 5120,
62
- "6 GB": 6144,
63
- "7 GB": 7168,
64
- "8 GB": 8192,
65
- "9 GB": 9216,
66
- "10 GB": 10240,
67
- "11 GB": 11264,
68
- "12 GB": 12288,
69
- "13 GB": 13312,
70
- "14 GB": 14336,
71
- "15 GB": 15360,
72
- "16 GB": 16384,
73
- },
74
- "4 vCPU": {
75
- "8 GB": 8192,
76
- "9 GB": 9216,
77
- "10 GB": 10240,
78
- "11 GB": 11264,
79
- "12 GB": 12288,
80
- "13 GB": 13312,
81
- "14 GB": 14336,
82
- "15 GB": 15360,
83
- "16 GB": 16384,
84
- "17 GB": 17408,
85
- "18 GB": 18432,
86
- "19 GB": 19456,
87
- "20 GB": 20480,
88
- "21 GB": 21504,
89
- "22 GB": 22528,
90
- "23 GB": 23552,
91
- "24 GB": 24576,
92
- "25 GB": 25600,
93
- "26 GB": 26624,
94
- "27 GB": 27648,
95
- "28 GB": 28672,
96
- "29 GB": 29696,
97
- "30 GB": 30720,
98
- },
99
- "8 vCPU": {
100
- "16 GB": 16384,
101
- "20 GB": 20480,
102
- "24 GB": 24576,
103
- "28 GB": 28672,
104
- "32 GB": 32768,
105
- "36 GB": 36864,
106
- "40 GB": 40960,
107
- "44 GB": 45056,
108
- "48 GB": 49152,
109
- "52 GB": 53248,
110
- "56 GB": 57344,
111
- "60 GB": 61440,
112
- },
113
- "16 vCPU": {
114
- "32 GB": 32768,
115
- "40 GB": 40960,
116
- "48 GB": 49152,
117
- "56 GB": 57344,
118
- "64 GB": 65536,
119
- "72 GB": 73728,
120
- "80 GB": 81920,
121
- "88 GB": 90112,
122
- "96 GB": 98304,
123
- "104 GB": 106496,
124
- "112 GB": 114688,
125
- "120 GB": 122880,
126
- },
127
- };
128
- /**
129
- * The `Service` construct is a higher level CDK construct that makes it easy to create modern web apps with Server Side Rendering capabilities.
130
- * @example
131
- * Deploys a service in the `app` directory.
132
- *
133
- * ```js
134
- * new Service(stack, "myApp", {
135
- * path: "app",
136
- * });
137
- * ```
138
- */
139
- export class Service extends Construct {
140
- id;
141
- props;
142
- doNotDeploy;
143
- devFunction;
144
- vpc;
145
- cluster;
146
- container;
147
- taskDefinition;
148
- distribution;
149
- constructor(scope, id, props) {
150
- super(scope, id);
151
- const app = scope.node.root;
152
- const stack = Stack.of(this);
153
- this.id = id;
154
- this.props = {
155
- path: ".",
156
- architecture: props?.architecture || "x86_64",
157
- cpu: props?.cpu || "0.25 vCPU",
158
- memory: props?.memory || "0.5 GB",
159
- port: props?.port || 3000,
160
- logRetention: props?.logRetention || "infinite",
161
- waitForInvalidation: false,
162
- ...props,
163
- };
164
- this.doNotDeploy =
165
- !stack.isActive || (app.mode === "dev" && !this.props.dev?.deploy);
166
- this.validateServiceExists();
167
- this.validateMemoryAndCpu();
168
- useServices().add(stack.stackName, id, this.props);
169
- if (this.doNotDeploy) {
170
- // @ts-expect-error
171
- this.vpc = this.cluster = this.container = this.taskDefinition = null;
172
- // @ts-expect-error
173
- this.distribution = null;
174
- this.devFunction = this.createDevFunction();
175
- return;
176
- }
177
- // Create ECS cluster
178
- const vpc = this.createVpc();
179
- const { cluster, container, taskDefinition, service } = this.createService(vpc);
180
- const { alb, target } = this.createLoadBalancer(vpc, service);
181
- this.createAutoScaling(service, target);
182
- // Create Distribution
183
- this.distribution = this.createDistribution(alb);
184
- this.vpc = vpc;
185
- this.cluster = cluster;
186
- this.container = container;
187
- this.taskDefinition = taskDefinition;
188
- this.bindForService(props?.bind || []);
189
- this.attachPermissionsForService(props?.permissions || []);
190
- Object.entries(props?.environment || {}).map(([key, value]) => this.addEnvironmentForService(key, value));
191
- useDeferredTasks().add(async () => {
192
- if (!app.isRunningSSTTest() && !props?.cdk?.container?.image) {
193
- Colors.line(`➜ Building the container image for the "${this.node.id}" service...`);
194
- // Build app
195
- let dockerfile;
196
- // case: custom Dockerfile provided
197
- if (this.props.file) {
198
- dockerfile = this.props.file;
199
- }
200
- // case: default Dockerfile found
201
- else if (await existsAsync(path.join(this.props.path, "Dockerfile"))) {
202
- dockerfile = "Dockerfile";
203
- }
204
- // case: nixpack
205
- else {
206
- await this.createNixpacksBuilder();
207
- dockerfile = await this.runNixpacksBuild();
208
- }
209
- await this.runDockerBuild(dockerfile);
210
- this.updateContainerImage(dockerfile, taskDefinition, container);
211
- }
212
- // Invalidate CloudFront
213
- this.distribution?.createInvalidation();
214
- });
215
- }
216
- /////////////////////
217
- // Public Properties
218
- /////////////////////
219
- /**
220
- * The CloudFront URL of the website.
221
- */
222
- get url() {
223
- if (this.doNotDeploy)
224
- return this.props.dev?.url;
225
- return this.distribution?.url;
226
- }
227
- /**
228
- * If the custom domain is enabled, this is the URL of the website with the
229
- * custom domain.
230
- */
231
- get customDomainUrl() {
232
- if (this.doNotDeploy)
233
- return;
234
- return this.distribution?.customDomainUrl;
235
- }
236
- /**
237
- * The internally created CDK resources.
238
- */
239
- get cdk() {
240
- if (this.doNotDeploy)
241
- return;
242
- return {
243
- vpc: this.vpc,
244
- cluster: this.cluster,
245
- distribution: this.distribution?.cdk.distribution,
246
- hostedZone: this.distribution?.cdk.hostedZone,
247
- certificate: this.distribution?.cdk.certificate,
248
- };
249
- }
250
- /////////////////////
251
- // Public Methods
252
- /////////////////////
253
- getConstructMetadata() {
254
- return {
255
- type: "Service",
256
- data: {
257
- mode: this.doNotDeploy
258
- ? "placeholder"
259
- : "deployed",
260
- path: this.props.path,
261
- customDomainUrl: this.customDomainUrl,
262
- url: this.url,
263
- devFunction: this.devFunction?.functionArn,
264
- task: this.taskDefinition?.taskDefinitionArn,
265
- container: this.container?.containerName,
266
- secrets: (this.props.bind || [])
267
- .filter((c) => c instanceof Secret)
268
- .map((c) => c.name),
269
- },
270
- };
271
- }
272
- /** @internal */
273
- getFunctionBinding() {
274
- const app = this.node.root;
275
- return this.distribution
276
- ? {
277
- clientPackage: "service",
278
- variables: {
279
- url: this.doNotDeploy
280
- ? {
281
- type: "plain",
282
- value: this.props.dev?.url ?? "localhost",
283
- }
284
- : {
285
- // Do not set real value b/c we don't want to make the Lambda function
286
- // depend on the Site. B/c often the site depends on the Api, causing
287
- // a CloudFormation circular dependency if the Api and the Site belong
288
- // to different stacks.
289
- type: "site_url",
290
- value: this.customDomainUrl || this.url,
291
- },
292
- },
293
- permissions: {
294
- "ssm:GetParameters": [
295
- `arn:${Stack.of(this).partition}:ssm:${app.region}:${app.account}:parameter${getParameterPath(this, "url")}`,
296
- ],
297
- },
298
- }
299
- : {
300
- clientPackage: "service",
301
- variables: {},
302
- permissions: {},
303
- };
304
- }
305
- /**
306
- * Binds additional resources to service.
307
- *
308
- * @example
309
- * ```js
310
- * service.bind([STRIPE_KEY, bucket]);
311
- * ```
312
- */
313
- bind(constructs) {
314
- this.devFunction?.bind(constructs);
315
- this.bindForService(constructs);
316
- }
317
- /**
318
- * Attaches the given list of permissions to allow the service
319
- * to access other AWS resources.
320
- *
321
- * @example
322
- * ```js
323
- * service.attachPermissions(["sns"]);
324
- * ```
325
- */
326
- attachPermissions(permissions) {
327
- this.devFunction?.attachPermissions(permissions);
328
- this.attachPermissionsForService(permissions);
329
- }
330
- /**
331
- * Attaches additional environment variable to the service.
332
- *
333
- * @example
334
- * ```js
335
- * service.addEnvironment({
336
- * DEBUG: "*"
337
- * });
338
- * ```
339
- */
340
- addEnvironment(name, value) {
341
- this.devFunction?.addEnvironment(name, value);
342
- this.addEnvironmentForService(name, value);
343
- }
344
- /////////////////////
345
- // Bundle Cluster
346
- /////////////////////
347
- validateServiceExists() {
348
- const { path: servicePath, file } = this.props;
349
- // Validate path exists
350
- if (!fs.existsSync(servicePath)) {
351
- throw new VisibleError(`In the "${this.node.id}" Service, path is not found at "${path.resolve(servicePath)}"`);
352
- }
353
- // Validate path is a directory
354
- if (fs.statSync(servicePath).isFile()) {
355
- throw new VisibleError([
356
- `In the "${this.node.id}" Service, the path "${path.resolve(servicePath)}" should be a directory.`,
357
- `Did you mean:`,
358
- ``,
359
- ` {`,
360
- ` path: "${path.dirname(servicePath)}",`,
361
- ` file: "${path.basename(servicePath)}",`,
362
- ` }`,
363
- ].join("\n"));
364
- }
365
- // Validate path exists
366
- if (file) {
367
- const dockerfilePath = path.join(servicePath, file);
368
- if (!fs.existsSync(dockerfilePath)) {
369
- throw new VisibleError(`In the "${this.node.id}" Service, no Dockerfile is found at "${dockerfilePath}". Make sure to set the "file" property to the path of the Dockerfile relative to "${servicePath}".`);
370
- }
371
- }
372
- }
373
- validateMemoryAndCpu() {
374
- const { memory, cpu } = this.props;
375
- if (!supportedCpus[cpu]) {
376
- throw new VisibleError(`In the "${this.node.id}" Service, only the following "cpu" settings are supported: ${Object.keys(supportedCpus).join(", ")}`);
377
- }
378
- // @ts-ignore
379
- if (!supportedMemories[cpu][memory]) {
380
- throw new VisibleError(`In the "${this.node.id}" Service, only the following "memory" settings are supported with "${cpu}": ${Object.keys(supportedMemories[cpu]).join(", ")}`);
381
- }
382
- }
383
- createVpc() {
384
- const { cdk } = this.props;
385
- return (cdk?.vpc ??
386
- new Vpc(this, "Vpc", {
387
- natGateways: 1,
388
- }));
389
- }
390
- createService(vpc) {
391
- const { architecture, cpu, memory, port, logRetention, cdk } = this.props;
392
- const app = this.node.root;
393
- const clusterName = app.logicalPrefixedName(this.node.id);
394
- const logGroup = new LogRetention(this, "LogRetention", {
395
- logGroupName: `/sst/service/${clusterName}`,
396
- retention: RetentionDays[logRetention.toUpperCase()],
397
- logRetentionRetryOptions: {
398
- maxRetries: 100,
399
- },
400
- });
401
- const cluster = new Cluster(this, "Cluster", {
402
- clusterName,
403
- vpc,
404
- });
405
- const taskDefinition = new FargateTaskDefinition(this, `TaskDefinition`, {
406
- // @ts-ignore
407
- memoryLimitMiB: supportedMemories[cpu][memory],
408
- cpu: supportedCpus[cpu],
409
- runtimePlatform: {
410
- cpuArchitecture: architecture === "arm64"
411
- ? CpuArchitecture.ARM64
412
- : CpuArchitecture.X86_64,
413
- },
414
- });
415
- const container = taskDefinition.addContainer("Container", {
416
- logging: new AwsLogDriver({
417
- logGroup: LogGroup.fromLogGroupArn(this, "LogGroup", logGroup.logGroupArn),
418
- streamPrefix: "service",
419
- }),
420
- portMappings: [{ containerPort: port }],
421
- environment: {
422
- SST_APP: app.name,
423
- SST_STAGE: app.stage,
424
- SST_SSM_PREFIX: useProject().config.ssmPrefix,
425
- },
426
- ...cdk?.container,
427
- image: cdk?.container?.image ?? {
428
- bind: () => ({ imageName: "placeholder" }),
429
- },
430
- });
431
- const service = new FargateService(this, "Service", {
432
- cluster,
433
- taskDefinition,
434
- ...cdk?.fargateService,
435
- });
436
- return { cluster, taskDefinition, container, service };
437
- }
438
- createLoadBalancer(vpc, service) {
439
- const { cdk } = this.props;
440
- // Do not create load balancer if disabled
441
- if (cdk?.applicationLoadBalancer === false) {
442
- if (cdk?.applicationLoadBalancerTargetGroup)
443
- throw new VisibleError(`In the "${this.node.id}" Service, the "cdk.applicationLoadBalancerTargetGroup" cannot be applied if the Application Load Balancer is diabled.`);
444
- return {};
445
- }
446
- const alb = new ApplicationLoadBalancer(this, "LoadBalancer", {
447
- vpc,
448
- internetFacing: true,
449
- });
450
- const listener = alb.addListener("Listener", { port: 80 });
451
- const target = listener.addTargets("TargetGroup", {
452
- port: 80,
453
- targets: [service],
454
- ...cdk?.applicationLoadBalancerTargetGroup,
455
- });
456
- return { alb, target };
457
- }
458
- createAutoScaling(service, target) {
459
- const { minContainers, maxContainers, cpuUtilization, memoryUtilization, requestsPerContainer, } = this.props.scaling ?? {};
460
- const scaling = service.autoScaleTaskCount({
461
- minCapacity: minContainers ?? 1,
462
- maxCapacity: maxContainers ?? 1,
463
- });
464
- scaling.scaleOnCpuUtilization("CpuScaling", {
465
- targetUtilizationPercent: cpuUtilization ?? 70,
466
- scaleOutCooldown: CdkDuration.seconds(300),
467
- });
468
- scaling.scaleOnMemoryUtilization("MemoryScaling", {
469
- targetUtilizationPercent: memoryUtilization ?? 70,
470
- scaleOutCooldown: CdkDuration.seconds(300),
471
- });
472
- if (target) {
473
- scaling.scaleOnRequestCount("RequestScaling", {
474
- requestsPerTarget: requestsPerContainer ?? 500,
475
- targetGroup: target,
476
- });
477
- }
478
- }
479
- createDistribution(alb) {
480
- const { cdk, customDomain } = this.props;
481
- // Do not create distribution if disabled or if ALB was not created (ie. disabled)
482
- if (!alb || cdk?.cloudfrontDistribution === false)
483
- return;
484
- const cachePolicy = new CachePolicy(this, "CachePolicy", {
485
- queryStringBehavior: CacheQueryStringBehavior.all(),
486
- headerBehavior: CacheHeaderBehavior.none(),
487
- cookieBehavior: CacheCookieBehavior.none(),
488
- defaultTtl: CdkDuration.days(0),
489
- maxTtl: CdkDuration.days(365),
490
- minTtl: CdkDuration.days(0),
491
- enableAcceptEncodingBrotli: true,
492
- enableAcceptEncodingGzip: true,
493
- comment: "SST server response cache policy",
494
- });
495
- return new Distribution(this, "CDN", {
496
- customDomain,
497
- cdk: {
498
- distribution: {
499
- defaultRootObject: "",
500
- defaultBehavior: {
501
- viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
502
- origin: new HttpOrigin(alb.loadBalancerDnsName, {
503
- protocolPolicy: OriginProtocolPolicy.HTTP_ONLY,
504
- readTimeout: CdkDuration.seconds(60),
505
- }),
506
- allowedMethods: AllowedMethods.ALLOW_ALL,
507
- cachedMethods: CachedMethods.CACHE_GET_HEAD_OPTIONS,
508
- compress: true,
509
- cachePolicy,
510
- originRequestPolicy: OriginRequestPolicy.ALL_VIEWER,
511
- },
512
- },
513
- },
514
- });
515
- }
516
- createDevFunction() {
517
- const { permissions, environment, bind } = this.props;
518
- const app = this.node.root;
519
- const role = new Role(this, "ServerFunctionRole", {
520
- assumedBy: new CompositePrincipal(new AccountPrincipal(app.account), new ServicePrincipal("lambda.amazonaws.com")),
521
- maxSessionDuration: CdkDuration.hours(12),
522
- });
523
- const fn = new Function(this, `ServerFunction`, {
524
- description: "Service dev function",
525
- handler: path.join(__dirname, "../support/service-dev-function", "index.handler"),
526
- runtime: "nodejs18.x",
527
- memorySize: "512 MB",
528
- timeout: "10 seconds",
529
- role,
530
- bind,
531
- environment,
532
- permissions,
533
- });
534
- fn._doNotAllowOthersToBind = true;
535
- return fn;
536
- }
537
- bindForService(constructs) {
538
- // Get referenced secrets
539
- const referencedSecrets = [];
540
- constructs.forEach((c) => referencedSecrets.push(...getReferencedSecrets(c)));
541
- [...constructs, ...referencedSecrets].forEach((c) => {
542
- // Bind environment
543
- const env = bindEnvironment(c);
544
- Object.entries(env).forEach(([key, value]) => this.addEnvironmentForService(key, value));
545
- // Bind permissions
546
- const permissions = bindPermissions(c);
547
- Object.entries(permissions).forEach(([action, resources]) => this.attachPermissionsForService([
548
- new PolicyStatement({
549
- actions: [action],
550
- effect: Effect.ALLOW,
551
- resources,
552
- }),
553
- ]));
554
- });
555
- }
556
- addEnvironmentForService(name, value) {
557
- this.container.addEnvironment(name, value);
558
- }
559
- attachPermissionsForService(permissions) {
560
- attachPermissionsToRole(this.taskDefinition.taskRole, permissions);
561
- }
562
- /////////////////////
563
- // Build App
564
- /////////////////////
565
- async createNixpacksBuilder() {
566
- try {
567
- await execAsync([
568
- "docker",
569
- "build",
570
- `-t ${NIXPACKS_IMAGE_NAME}`,
571
- "--platform=linux/amd64",
572
- path.resolve(__dirname, "../support/nixpacks"),
573
- ].join(" "), {
574
- env: {
575
- ...process.env,
576
- },
577
- });
578
- }
579
- catch (e) {
580
- console.error(e);
581
- throw new VisibleError(`Failed to setup Nixpacks builder for the ${this.node.id} service`);
582
- }
583
- }
584
- async runNixpacksBuild() {
585
- const { path: servicePath } = this.props;
586
- try {
587
- await execAsync([
588
- "docker",
589
- "run",
590
- "--rm",
591
- "--network=host",
592
- `--name=sst-${this.node.id}-service`,
593
- `-v=${path.resolve(servicePath)}:/service`,
594
- `-w="/service"`,
595
- NIXPACKS_IMAGE_NAME,
596
- `build . --out .`,
597
- ].join(" "), {
598
- env: {
599
- ...process.env,
600
- },
601
- });
602
- }
603
- catch (e) {
604
- console.error(e);
605
- throw new VisibleError(`Failed to run Nixpacks build for the ${this.node.id} service`);
606
- }
607
- return ".nixpacks/Dockerfile";
608
- }
609
- async runDockerBuild(dockerfile) {
610
- const { path: servicePath, architecture, build } = this.props;
611
- const platform = architecture === "arm64" ? "linux/arm64" : "linux/amd64";
612
- try {
613
- await execAsync([
614
- "docker",
615
- "build",
616
- `-t sst-build:service-${this.node.id}`,
617
- `--platform ${platform}`,
618
- `-f ${path.join(servicePath, dockerfile)}`,
619
- ...Object.entries(build?.buildArgs || {}).map(([k, v]) => `--build-arg ${k}=${v}`),
620
- this.props.path,
621
- ].join(" "), {
622
- env: {
623
- ...process.env,
624
- },
625
- });
626
- }
627
- catch (e) {
628
- console.error(e);
629
- throw new VisibleError(`Failed to build the ${this.node.id} service`);
630
- }
631
- }
632
- updateContainerImage(dockerfile, taskDefinition, container) {
633
- const { path: servicePath, architecture, build } = this.props;
634
- const image = ContainerImage.fromAsset(servicePath, {
635
- platform: architecture === "arm64" ? Platform.LINUX_ARM64 : Platform.LINUX_AMD64,
636
- file: dockerfile,
637
- buildArgs: build?.buildArgs,
638
- exclude: [".sst"],
639
- ignoreMode: IgnoreMode.GLOB,
640
- });
641
- const cfnTask = taskDefinition.node.defaultChild;
642
- cfnTask.addPropertyOverride("ContainerDefinitions.0.Image", image.bind(this, container).imageName);
643
- }
644
- }
645
- export const useServices = createAppContext(() => {
646
- const sites = [];
647
- return {
648
- add(stack, name, props) {
649
- sites.push({ stack, name, props });
650
- },
651
- get all() {
652
- return sites;
653
- },
654
- };
655
- });
@@ -1,37 +0,0 @@
1
- import { SsrSite } from "./SsrSite.js";
2
- import { SsrFunction } from "./SsrFunction.js";
3
- import { EdgeFunction } from "./EdgeFunction.js";
4
- /**
5
- * The `SolidStartSite` construct is a higher level CDK construct that makes it easy to create a SolidStart app.
6
- * @example
7
- * Deploys a SolidStart app in the `my-solid-start-app` directory.
8
- *
9
- * ```js
10
- * new SolidStartSite(stack, "web", {
11
- * path: "my-solid-start-app/",
12
- * });
13
- * ```
14
- */
15
- export declare class SolidStartSite extends SsrSite {
16
- protected initBuildConfig(): {
17
- typesPath: string;
18
- serverBuildOutputFile: string;
19
- clientBuildOutputDir: string;
20
- clientBuildVersionedSubDir: string;
21
- };
22
- protected createFunctionForRegional(): SsrFunction;
23
- protected createFunctionForEdge(): EdgeFunction;
24
- getConstructMetadata(): {
25
- data: {
26
- mode: "placeholder" | "deployed";
27
- path: string;
28
- runtime: "nodejs14.x" | "nodejs16.x" | "nodejs18.x";
29
- customDomainUrl: string | undefined;
30
- url: string | undefined;
31
- edge: boolean | undefined;
32
- server: string;
33
- secrets: string[];
34
- };
35
- type: "SolidStartSite";
36
- };
37
- }