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,25 +0,0 @@
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
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- } & {
16
- "increase-timeout": boolean | undefined;
17
- }>;
18
- declare module "../../bus.js" {
19
- interface Events {
20
- "cli.dev": {
21
- app: string;
22
- stage: string;
23
- };
24
- }
25
- }
@@ -1,351 +0,0 @@
1
- import { lazy } from "../../util/lazy.js";
2
- export const dev = (program) => program.command(["dev", "start"], "Work on your app locally", (yargs) => yargs.option("increase-timeout", {
3
- type: "boolean",
4
- description: "Increase function timeout",
5
- }), async (args) => {
6
- const { Colors } = await import("../colors.js");
7
- const { printHeader } = await import("../ui/header.js");
8
- const { mapValues } = await import("remeda");
9
- const path = await import("path");
10
- const { useRuntimeWorkers } = await import("../../runtime/workers.js");
11
- const { useIOTBridge } = await import("../../runtime/iot.js");
12
- const { useRuntimeServer } = await import("../../runtime/server.js");
13
- const { useBus } = await import("../../bus.js");
14
- const { useWatcher } = await import("../../watcher.js");
15
- const { useAppMetadata, saveAppMetadata, Stacks } = await import("../../stacks/index.js");
16
- const { exit, exitWithError, trackDevError, trackDevRunning } = await import("../program.js");
17
- const { Logger } = await import("../../logger.js");
18
- const { createSpinner } = await import("../spinner.js");
19
- const { bold, dim, yellow } = await import("colorette");
20
- const { render } = await import("ink");
21
- const React = await import("react");
22
- const { Context } = await import("../../context/context.js");
23
- const { printDeploymentResults, DeploymentUI } = await import("../ui/deploy.js");
24
- const { useLocalServer } = await import("../local/server.js");
25
- const fs = await import("fs/promises");
26
- const crypto = await import("crypto");
27
- const { useFunctions } = await import("../../constructs/Function.js");
28
- const { useSites } = await import("../../constructs/SsrSite.js");
29
- const { usePothosBuilder } = await import("./plugins/pothos.js");
30
- const { useKyselyTypeGenerator } = await import("./plugins/kysely.js");
31
- const { useRDSWarmer } = await import("./plugins/warmer.js");
32
- const { useProject } = await import("../../project.js");
33
- const { useMetadataCache } = await import("../../stacks/metadata.js");
34
- const { useIOT } = await import("../../iot.js");
35
- const { clear } = await import("../terminal.js");
36
- const { getCiInfo } = await import("../ci-info.js");
37
- try {
38
- if (args._[0] === "start") {
39
- console.log(yellow(`Warning: ${bold(`sst start`)} has been renamed to ${bold(`sst dev`)}`));
40
- }
41
- const project = useProject();
42
- const useFunctionLogger = lazy(async () => {
43
- const bus = useBus();
44
- const colors = ["#01cdfe", "#ff71ce", "#05ffa1", "#b967ff"];
45
- let index = 0;
46
- const pending = new Map();
47
- function prefix(requestID) {
48
- const exists = pending.get(requestID);
49
- if (exists) {
50
- return Colors.hex(exists.color)(Colors.prefix);
51
- }
52
- pending.set(requestID, {
53
- requestID,
54
- started: Date.now(),
55
- color: colors[index % colors.length],
56
- });
57
- index++;
58
- return prefix(requestID);
59
- }
60
- function end(requestID) {
61
- // index--;
62
- // if (index < 0) index = colors.length - 1;
63
- pending.delete(requestID);
64
- }
65
- bus.subscribe("function.invoked", async (evt) => {
66
- Colors.line(prefix(evt.properties.requestID), Colors.dim.bold("Invoked"), Colors.dim(useFunctions().fromID(evt.properties.functionID)?.handler));
67
- });
68
- bus.subscribe("worker.stdout", async (evt) => {
69
- const info = useFunctions().fromID(evt.properties.functionID);
70
- prefix(evt.properties.requestID);
71
- const { started } = pending.get(evt.properties.requestID);
72
- for (let line of evt.properties.message.split("\n")) {
73
- // Remove prefix from container logs
74
- if (info?.runtime === "container") {
75
- // handle Node.js container logs
76
- // ie. 2023-07-05T00:13:42.448Z\td7330533-2429-4871-a632-ed29a1d32246\tINFO\tfoo!
77
- const parts = line.split("\t");
78
- if (parts.length >= 4 &&
79
- Date.parse(parts[0]) &&
80
- parts[1].length === 36) {
81
- line = parts.slice(3).join("\t");
82
- }
83
- }
84
- Colors.line(prefix(evt.properties.requestID), Colors.dim(("+" + (Date.now() - started) + "ms").padEnd(7)), Colors.dim(line));
85
- }
86
- });
87
- bus.subscribe("function.build.started", async (evt) => {
88
- const info = useFunctions().fromID(evt.properties.functionID);
89
- if (!info)
90
- return;
91
- if (info.enableLiveDev === false)
92
- return;
93
- if (info.runtime !== "container")
94
- return;
95
- Colors.line(Colors.dim(Colors.prefix, "Building", info.handler, "container"));
96
- });
97
- bus.subscribe("function.build.success", async (evt) => {
98
- const info = useFunctions().fromID(evt.properties.functionID);
99
- if (!info)
100
- return;
101
- if (info.enableLiveDev === false)
102
- return;
103
- Colors.line(info.runtime === "container"
104
- ? Colors.dim(Colors.prefix, "Built", info.handler, "container")
105
- : Colors.dim(Colors.prefix, "Built", info.handler));
106
- });
107
- bus.subscribe("function.build.failed", async (evt) => {
108
- const info = useFunctions().fromID(evt.properties.functionID);
109
- if (!info)
110
- return;
111
- if (info.enableLiveDev === false)
112
- return;
113
- Colors.gap();
114
- Colors.line(Colors.danger("✖ "), "Build failed", info.handler);
115
- for (const line of evt.properties.errors) {
116
- Colors.line(" ", line);
117
- }
118
- Colors.gap();
119
- });
120
- bus.subscribe("function.success", async (evt) => {
121
- // stdout logs sometimes come in after
122
- const p = prefix(evt.properties.requestID);
123
- const req = pending.get(evt.properties.requestID);
124
- setTimeout(() => {
125
- Colors.line(p, Colors.dim(`Done in ${Date.now() - req.started - 100}ms`));
126
- end(evt.properties.requestID);
127
- }, 100);
128
- });
129
- bus.subscribe("function.error", async (evt) => {
130
- setTimeout(() => {
131
- Colors.line(prefix(evt.properties.requestID), Colors.danger.bold("Error:"), Colors.danger.bold(evt.properties.errorMessage));
132
- for (const line of evt.properties.trace || []) {
133
- // Skip double printing error message
134
- if (line.includes(evt.properties.errorMessage))
135
- continue;
136
- Colors.line(" ", `${dim(line)}`);
137
- }
138
- end(evt.properties.requestID);
139
- }, 100);
140
- });
141
- });
142
- const useStackBuilder = lazy(async () => {
143
- const watcher = useWatcher();
144
- const scriptVersion = Date.now().toString();
145
- let lastDeployed;
146
- let isWorking = false;
147
- let isDirty = false;
148
- async function build() {
149
- if (isWorking) {
150
- isDirty = true;
151
- return;
152
- }
153
- isDirty = false;
154
- isWorking = true;
155
- Colors.gap();
156
- const spinner = createSpinner({
157
- color: "gray",
158
- text: lastDeployed
159
- ? ` Building...`
160
- : dim(` Checking for changes`),
161
- }).start();
162
- try {
163
- const [metafile, sstConfig] = await Stacks.load(project.paths.config);
164
- project.metafile = metafile;
165
- project.stacks = sstConfig.stacks;
166
- const assembly = await Stacks.synth({
167
- increaseTimeout: args["increase-timeout"],
168
- scriptVersion,
169
- fn: project.stacks,
170
- outDir: `.sst/cdk.out`,
171
- mode: "dev",
172
- });
173
- Logger.debug("Directory", assembly.directory);
174
- const next = await checksum(assembly.directory);
175
- Logger.debug("Checksum", "next", next, "old", lastDeployed);
176
- if (next === lastDeployed) {
177
- spinner.succeed(Colors.dim(" Built with no changes"));
178
- isWorking = false;
179
- if (isDirty)
180
- build();
181
- return;
182
- }
183
- if (!lastDeployed) {
184
- spinner.stop();
185
- spinner.clear();
186
- Colors.mode("gap");
187
- }
188
- else {
189
- spinner.succeed(Colors.dim(` Built`));
190
- Colors.gap();
191
- }
192
- deploy(assembly);
193
- }
194
- catch (ex) {
195
- isWorking = false;
196
- spinner.fail();
197
- Colors.line(ex.stack
198
- .split("\n")
199
- .map((line) => " " + line)
200
- .join("\n"));
201
- Colors.gap();
202
- if (!lastDeployed) {
203
- trackDevError(ex);
204
- }
205
- }
206
- }
207
- async function deploy(assembly) {
208
- const nextChecksum = await checksum(assembly.directory);
209
- const component = render(React.createElement(DeploymentUI, { assembly: assembly }));
210
- const results = await Stacks.deployMany(assembly.stacks);
211
- component.clear();
212
- component.unmount();
213
- printDeploymentResults(assembly, results);
214
- // Run after initial deploy
215
- if (!lastDeployed) {
216
- await saveAppMetadata({ mode: "dev" });
217
- // Check failed stacks
218
- const failed = Object.values(results).find((result) => Stacks.isFailed(result.status));
219
- failed
220
- ? trackDevError(new Error(`CloudFormation status ${failed.status}`))
221
- : trackDevRunning();
222
- // print start frontend commands
223
- useSites()
224
- .all.filter(({ props }) => props.dev?.deploy !== true)
225
- .forEach(({ type, props }) => {
226
- const framework = type === "AstroSite"
227
- ? "Astro"
228
- : type === "NextjsSite"
229
- ? "Next.js"
230
- : type === "RemixSite"
231
- ? "Remix"
232
- : type === "SolidStartSite"
233
- ? "SolidStart"
234
- : type === "SvelteKitSite"
235
- ? "SvelteKit"
236
- : undefined;
237
- if (framework) {
238
- const cdCmd = path.resolve(props.path) === process.cwd()
239
- ? ""
240
- : `cd ${props.path} && `;
241
- Colors.line(Colors.primary(`➜ `), Colors.bold(`Start ${framework}:`), `${cdCmd}npm run dev`);
242
- Colors.gap();
243
- }
244
- });
245
- }
246
- lastDeployed = nextChecksum;
247
- // Write outputs.json
248
- fs.writeFile(project.config.outputs ||
249
- path.join(project.paths.out, "outputs.json"), JSON.stringify(mapValues(results, (val) => val.outputs), null, 2));
250
- isWorking = false;
251
- if (isDirty)
252
- build();
253
- }
254
- async function checksum(cdkOutPath) {
255
- const manifestPath = path.join(cdkOutPath, "manifest.json");
256
- const cdkManifest = JSON.parse(await fs.readFile(manifestPath).then((x) => x.toString()));
257
- const checksumData = await Promise.all(Object.keys(cdkManifest.artifacts)
258
- .filter((key) => cdkManifest.artifacts[key].type ===
259
- "aws:cloudformation:stack")
260
- .map(async (key) => {
261
- const { templateFile } = cdkManifest.artifacts[key].properties;
262
- const templatePath = path.join(cdkOutPath, templateFile);
263
- const templateContent = await fs.readFile(templatePath);
264
- return templateContent;
265
- })).then((x) => x.join("\n"));
266
- const hash = crypto
267
- .createHash("sha256")
268
- .update(checksumData)
269
- .digest("hex");
270
- return hash;
271
- }
272
- watcher.subscribe("file.changed", async (evt) => {
273
- if (!project.metafile)
274
- return;
275
- if (!project.metafile.inputs[evt.properties.relative.split(path.sep).join(path.posix.sep)])
276
- return;
277
- build();
278
- });
279
- await build();
280
- });
281
- const useDisconnector = lazy(async () => {
282
- const bus = useBus();
283
- const iot = await useIOT();
284
- bus.subscribe("cli.dev", async (evt) => {
285
- const topic = `${iot.prefix}/events`;
286
- iot.publish(topic, "cli.dev", evt.properties);
287
- });
288
- bus.publish("cli.dev", {
289
- stage: project.config.stage,
290
- app: project.config.name,
291
- });
292
- bus.subscribe("cli.dev", async (evt) => {
293
- if (evt.properties.stage !== project.config.stage)
294
- return;
295
- if (evt.properties.app !== project.config.name)
296
- return;
297
- Colors.gap();
298
- Colors.line(Colors.danger(`➜ `), "Another `sst dev` session has been started for this stage. Exiting...");
299
- await exit();
300
- });
301
- });
302
- const [appMetadata] = await Promise.all([
303
- useAppMetadata(),
304
- useLocalServer({
305
- key: "",
306
- cert: "",
307
- live: true,
308
- }),
309
- ]);
310
- async function promptChangeMode() {
311
- const readline = await import("readline");
312
- const rl = readline.createInterface({
313
- input: process.stdin,
314
- output: process.stdout,
315
- });
316
- return new Promise((resolve) => {
317
- console.log("");
318
- rl.question(`You have previously deployed the stage "${project.config.stage}" in production. It is recommended that you use a different stage for development. Read more here — https://docs.sst.dev/live-lambda-development\n\nAre you sure you want to run this stage in dev mode? [y/N] `, async (input) => {
319
- rl.close();
320
- resolve(input.trim() === "y");
321
- });
322
- });
323
- }
324
- // Check app mode changed
325
- if (!project.config.advanced?.disableAppModeCheck &&
326
- !getCiInfo().isCI &&
327
- appMetadata &&
328
- appMetadata.mode !== "dev") {
329
- if (!(await promptChangeMode())) {
330
- await exit();
331
- }
332
- }
333
- clear();
334
- await printHeader({ console: true, hint: "ready!" });
335
- await useStackBuilder();
336
- await Promise.all([
337
- useDisconnector(),
338
- useRuntimeWorkers(),
339
- useIOTBridge(),
340
- useRuntimeServer(),
341
- usePothosBuilder(),
342
- useMetadataCache(),
343
- useKyselyTypeGenerator(),
344
- useRDSWarmer(),
345
- useFunctionLogger(),
346
- ]);
347
- }
348
- catch (e) {
349
- await exitWithError(e);
350
- }
351
- });
@@ -1,19 +0,0 @@
1
- /// <reference types="yargs" />
2
- import type { Program } from "../program.js";
3
- export declare const diff: (program: Program) => import("yargs").Argv<{
4
- stage: string | undefined;
5
- } & {
6
- profile: string | undefined;
7
- } & {
8
- region: string | undefined;
9
- } & {
10
- verbose: boolean | undefined;
11
- } & {
12
- role: string | undefined;
13
- } & {
14
- future: boolean | undefined;
15
- } & {
16
- dev: boolean | undefined;
17
- } & {
18
- to: string | undefined;
19
- }>;
@@ -1,89 +0,0 @@
1
- import { stackNameToId } from "../ui/stack.js";
2
- export const diff = (program) => program.command("diff", "Compare your app with what is deployed on AWS", (yargs) => yargs
3
- .option("dev", {
4
- type: "boolean",
5
- describe: "Compare in dev mode",
6
- })
7
- .option("to", {
8
- type: "string",
9
- describe: "Output directory, defaults to .sst/dist",
10
- }), async (args) => {
11
- const { exit, exitWithError } = await import("../program.js");
12
- const { useProject } = await import("../../project.js");
13
- const { Stacks } = await import("../../stacks/index.js");
14
- const { useAWSClient } = await import("../../credentials.js");
15
- const { CloudFormationClient, GetTemplateCommand } = await import("@aws-sdk/client-cloudformation");
16
- const { createSpinner } = await import("../spinner.js");
17
- const { Colors } = await import("../colors.js");
18
- try {
19
- // Build app
20
- const project = useProject();
21
- const [_metafile, sstConfig] = await Stacks.load(project.paths.config);
22
- const assembly = await Stacks.synth({
23
- fn: sstConfig.stacks,
24
- buildDir: args.to,
25
- mode: args.dev ? "dev" : "deploy",
26
- });
27
- // Diff each stack
28
- let changesAcc = 0;
29
- let changedStacks = 0;
30
- const cfn = useAWSClient(CloudFormationClient);
31
- for (const stack of assembly.stacks) {
32
- const spinner = createSpinner(`${stack.stackName}: Checking for changes...`);
33
- // get old template
34
- const oldTemplate = await getTemplate(stack.stackName);
35
- if (!oldTemplate) {
36
- spinner.clear();
37
- Colors.line(`➜ ${Colors.dim.bold(stackNameToId(stack.stackName) + ":")} New stack`);
38
- Colors.gap();
39
- continue;
40
- }
41
- // generate diff
42
- const { count, diff } = await Stacks.diff(stack, oldTemplate);
43
- spinner.clear();
44
- // print diff result
45
- if (count === 0) {
46
- Colors.line(`➜ ${Colors.dim.bold(stackNameToId(stack.stackName) + ":")} No changes`);
47
- Colors.gap();
48
- }
49
- else if (count === 1) {
50
- Colors.line(`➜ ${Colors.dim.bold(stackNameToId(stack.stackName) + ":")} ${count} change`);
51
- Colors.gap();
52
- console.log(diff);
53
- changesAcc += count;
54
- changedStacks++;
55
- }
56
- else {
57
- Colors.line(`➜ ${Colors.dim.bold(stackNameToId(stack.stackName) + ":")} ${count} changes`);
58
- Colors.gap();
59
- console.log(diff);
60
- changesAcc += count;
61
- changedStacks++;
62
- }
63
- }
64
- // Handle no changes
65
- if (changedStacks === 0) {
66
- Colors.line(Colors.success(`✔`), Colors.bold(" Diff:"), "No changes");
67
- }
68
- else {
69
- Colors.line(Colors.success(`✔`), Colors.bold(" Diff:"), changesAcc === 1 ? "1 change found in" : `${changesAcc} changes in`, changedStacks === 1 ? "1 stack" : `${changedStacks} stacks`);
70
- }
71
- async function getTemplate(stackName) {
72
- try {
73
- const response = await cfn.send(new GetTemplateCommand({ StackName: stackName }));
74
- return JSON.parse(response.TemplateBody);
75
- }
76
- catch (e) {
77
- if (e.name === "ValidationError" &&
78
- e.message.includes("does not exist")) {
79
- return;
80
- }
81
- throw e;
82
- }
83
- }
84
- await exit();
85
- }
86
- catch (e) {
87
- await exitWithError(e);
88
- }
89
- });
@@ -1 +0,0 @@
1
- export declare const useKyselyTypeGenerator: () => Promise<void>;
@@ -1,87 +0,0 @@
1
- import { Kysely } from "kysely";
2
- import { DataApiDialect } from "kysely-data-api";
3
- import { RDSData } from "@aws-sdk/client-rds-data";
4
- import * as fs from "fs/promises";
5
- import { PostgresDialect, MysqlDialect, Serializer, Transformer, } from "kysely-codegen";
6
- import { useBus } from "../../../bus.js";
7
- import { Logger } from "../../../logger.js";
8
- import { useAWSClient } from "../../../credentials.js";
9
- import { lazy } from "../../../util/lazy.js";
10
- export const useKyselyTypeGenerator = lazy(async () => {
11
- let databases = [];
12
- const bus = useBus();
13
- const logger = Logger.debug.bind(null, "[kysely-codegen]");
14
- async function generate(db) {
15
- if (!db.types)
16
- return;
17
- logger("generating types for", db.migratorID);
18
- const dataApi = new DataApiDialect({
19
- mode: db.engine.includes("postgres") ? "postgres" : "mysql",
20
- driver: {
21
- secretArn: db.secretArn,
22
- resourceArn: db.clusterArn,
23
- database: db.defaultDatabaseName,
24
- client: useAWSClient(RDSData),
25
- },
26
- });
27
- const k = new Kysely({
28
- dialect: dataApi,
29
- });
30
- const dialect = db.engine.includes("postgres")
31
- ? new PostgresDialect()
32
- : new MysqlDialect();
33
- const instrospection = await dialect.introspector.introspect({
34
- // @ts-ignore
35
- db: k,
36
- });
37
- logger("introspected tables");
38
- const transformer = new Transformer();
39
- const nodes = transformer.transform({
40
- dialect: dialect,
41
- camelCase: db.types.camelCase === true,
42
- metadata: instrospection,
43
- });
44
- logger("transformed nodes", nodes.length);
45
- const lastIndex = nodes.length - 1;
46
- const last = nodes[lastIndex];
47
- nodes[lastIndex] = {
48
- ...last,
49
- argument: {
50
- ...last.argument,
51
- name: "Database",
52
- },
53
- };
54
- const serializer = new Serializer();
55
- const data = serializer.serialize(nodes);
56
- await fs.writeFile(db.types.path, data);
57
- }
58
- bus.subscribe("stacks.metadata", (evt) => {
59
- const constructs = Object.values(evt.properties).flat();
60
- databases = constructs
61
- .filter((c) => c.type === "RDS")
62
- .filter((c) => c.data.migrator)
63
- .filter((c) => c.data.types)
64
- .map((c) => ({
65
- migratorID: constructs.find((fn) => fn.addr == c.data.migrator?.node).addr,
66
- clusterArn: c.data.clusterArn,
67
- types: c.data.types,
68
- engine: c.data.engine,
69
- defaultDatabaseName: c.data.defaultDatabaseName,
70
- secretArn: c.data.secretArn,
71
- }));
72
- databases.map((db) => generate(db).catch((err) => {
73
- logger(err);
74
- }));
75
- });
76
- bus.subscribe("function.success", async (evt) => {
77
- if (!evt.properties.body?.results)
78
- return;
79
- const db = databases.find((db) => db.migratorID === evt.properties.functionID);
80
- if (!db)
81
- return;
82
- generate(db).catch((err) => {
83
- logger(err);
84
- });
85
- });
86
- logger("Loaded kyseley type generator");
87
- });
@@ -1 +0,0 @@
1
- export declare const usePothosBuilder: () => void;
@@ -1,58 +0,0 @@
1
- import { useBus } from "../../../bus.js";
2
- import { Pothos } from "../../../pothos.js";
3
- import fs from "fs/promises";
4
- import { exec } from "child_process";
5
- import { promisify } from "util";
6
- const execAsync = promisify(exec);
7
- import path from "path";
8
- import { Colors } from "../../colors.js";
9
- import { lazy } from "../../../util/lazy.js";
10
- export const usePothosBuilder = lazy(() => {
11
- let routes = [];
12
- const bus = useBus();
13
- async function build(route) {
14
- try {
15
- const schema = await Pothos.generate({
16
- schema: route.schema,
17
- internalPackages: route.internalPackages,
18
- });
19
- await fs.writeFile(route.output, schema);
20
- // bus.publish("pothos.extracted", { file: route.output });
21
- if (Array.isArray(route.commands) && route.commands.length > 0) {
22
- await Promise.all(route.commands.map((cmd) => execAsync(cmd)));
23
- }
24
- Colors.line(Colors.success(`✔`), " Pothos: Extracted pothos schema");
25
- }
26
- catch (ex) {
27
- Colors.line(Colors.danger(`✖`), " Pothos: Failed to extract schema:");
28
- for (let line of ex.message.split("\n")) {
29
- console.log(` `, line);
30
- }
31
- }
32
- }
33
- bus.subscribe("file.changed", async (evt) => {
34
- if (evt.properties.file.endsWith("out.mjs"))
35
- return;
36
- for (const route of routes) {
37
- const dir = path.dirname(route.schema);
38
- const relative = path.relative(dir, evt.properties.file);
39
- if (relative && !relative.startsWith("..") && !path.isAbsolute(relative))
40
- build(route);
41
- }
42
- });
43
- let first = false;
44
- bus.subscribe("stacks.metadata", async (evt) => {
45
- routes = Object.values(evt.properties)
46
- .flat()
47
- .filter((c) => c.type == "Api")
48
- .flatMap((c) => c.data.routes)
49
- .filter((r) => ["pothos", "graphql"].includes(r.type))
50
- .filter((r) => r.schema);
51
- if (first)
52
- return;
53
- for (const route of routes) {
54
- build(route);
55
- first = true;
56
- }
57
- });
58
- });
@@ -1 +0,0 @@
1
- export declare const useRDSWarmer: () => Promise<void>;
@@ -1,33 +0,0 @@
1
- import { useBus } from "../../../bus.js";
2
- import { RDSDataClient, ExecuteStatementCommand, } from "@aws-sdk/client-rds-data";
3
- import { useAWSClient } from "../../../credentials.js";
4
- import { lazy } from "../../../util/lazy.js";
5
- export const useRDSWarmer = lazy(async () => {
6
- let interval;
7
- const bus = useBus();
8
- const client = useAWSClient(RDSDataClient);
9
- bus.subscribe("stacks.metadata", (evt) => {
10
- if (interval)
11
- clearInterval(interval);
12
- interval = setInterval(() => {
13
- Object.values(evt.properties)
14
- .flat()
15
- .filter((c) => c.type === "RDS")
16
- .map((c) => {
17
- try {
18
- client.send(new ExecuteStatementCommand({
19
- sql: "SELECT 1",
20
- secretArn: c.data.secretArn,
21
- resourceArn: c.data.clusterArn,
22
- database: c.data.defaultDatabaseName,
23
- }));
24
- }
25
- catch (e) {
26
- // Ignore error
27
- // If the cluster is not warm, this will throw:
28
- // BadRequestException: Communication link failure
29
- }
30
- });
31
- }, 1000 * 60);
32
- });
33
- });