sst 3.0.0 → 3.0.1-2

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 +8 -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
package/cli/spinner.js DELETED
@@ -1,14 +0,0 @@
1
- import ora from "ora";
2
- import { Colors } from "./colors.js";
3
- import { lazy } from "../util/lazy.js";
4
- export const useSpinners = lazy(() => {
5
- const spinners = [];
6
- return spinners;
7
- });
8
- export function createSpinner(options) {
9
- const spinners = useSpinners();
10
- const next = ora(options);
11
- spinners.push(next);
12
- Colors.mode("line");
13
- return next;
14
- }
package/cli/sst.d.ts DELETED
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
package/cli/sst.js DELETED
@@ -1,74 +0,0 @@
1
- #!/usr/bin/env node
2
- import { blue, red } from "colorette";
3
- import { program } from "./program.js";
4
- import { SilentError, VisibleError } from "../error.js";
5
- import { useSpinners } from "./spinner.js";
6
- import { Logger } from "../logger.js";
7
- import dotenv from "dotenv";
8
- dotenv.config({
9
- override: true,
10
- });
11
- dotenv.config({
12
- path: ".env.local",
13
- override: true,
14
- });
15
- import { bootstrap } from "./commands/bootstrap.js";
16
- import { dev } from "./commands/dev.js";
17
- import { bind } from "./commands/bind.js";
18
- import { build } from "./commands/build.js";
19
- import { deploy } from "./commands/deploy.js";
20
- import { remove } from "./commands/remove.js";
21
- import { consoleCommand } from "./commands/console.js";
22
- import { secrets } from "./commands/secrets/secrets.js";
23
- import { update } from "./commands/update.js";
24
- import { transform } from "./commands/transform.js";
25
- import { diff } from "./commands/diff.js";
26
- import { version } from "./commands/version.js";
27
- import { telemetry } from "./commands/telemetry.js";
28
- import { types } from "./commands/types.js";
29
- import { connect } from "./commands/connect.js";
30
- bootstrap(program);
31
- dev(program);
32
- deploy(program);
33
- build(program);
34
- bind(program);
35
- secrets(program);
36
- remove(program);
37
- update(program);
38
- transform(program);
39
- consoleCommand(program);
40
- diff(program);
41
- version(program);
42
- telemetry(program);
43
- types(program);
44
- connect(program);
45
- if ("setSourceMapsEnabled" in process) {
46
- // @ts-expect-error
47
- process.setSourceMapsEnabled(true);
48
- }
49
- process.removeAllListeners("uncaughtException");
50
- process.on("uncaughtException", (err) => {
51
- Logger.debug(err);
52
- const spinners = useSpinners();
53
- for (const spinner of spinners) {
54
- if (spinner.isSpinning)
55
- spinner.fail(spinner.text);
56
- }
57
- if (!(err instanceof SilentError)) {
58
- console.log();
59
- console.log(red("Error:"), err.message);
60
- if (!(err instanceof VisibleError)) {
61
- console.log();
62
- console.trace(err.stack);
63
- }
64
- console.log();
65
- console.log(`Need help with this error? Post it in #help on the SST Discord ${blue(`https://sst.dev/discord`)}`);
66
- }
67
- process.exit(1);
68
- });
69
- // Check Node version
70
- const nodeVersion = process.versions.node;
71
- if (Number(nodeVersion.split(".")[0]) < 16) {
72
- throw new VisibleError(`Node.js version ${nodeVersion} is not supported by SST. Please upgrade to Node.js 16 or later.`);
73
- }
74
- program.parse();
@@ -1,15 +0,0 @@
1
- /// <reference types="node" resolution-mode="require"/>
2
- type EnvironmentData = {
3
- systemPlatform: NodeJS.Platform;
4
- systemRelease: string;
5
- systemArchitecture: string;
6
- cpuCount: number;
7
- cpuModel: string | null;
8
- cpuSpeed: number | null;
9
- memoryInMb: number;
10
- isCI: boolean;
11
- ciName: string | null;
12
- sstVersion: string;
13
- };
14
- export declare function getEnvironmentData(): EnvironmentData;
15
- export {};
@@ -1,27 +0,0 @@
1
- import os from "os";
2
- import { getCiInfo } from "../ci-info.js";
3
- import { useProject } from "../../project.js";
4
- let data;
5
- export function getEnvironmentData() {
6
- if (data) {
7
- return data;
8
- }
9
- const cpus = os.cpus() || [];
10
- const ciInfo = getCiInfo();
11
- data = {
12
- // Software information
13
- systemPlatform: os.platform(),
14
- systemRelease: os.release(),
15
- systemArchitecture: os.arch(),
16
- // Machine information
17
- cpuCount: cpus.length,
18
- cpuModel: cpus.length ? cpus[0].model : null,
19
- cpuSpeed: cpus.length ? cpus[0].speed : null,
20
- memoryInMb: Math.trunc(os.totalmem() / Math.pow(1024, 2)),
21
- // Environment information
22
- isCI: ciInfo.isCI,
23
- ciName: ciInfo.name,
24
- sstVersion: useProject().version,
25
- };
26
- return data;
27
- }
@@ -1 +0,0 @@
1
- export declare function postPayload(endpoint: string, body: any): Promise<void>;
@@ -1,27 +0,0 @@
1
- import https from "https";
2
- export function postPayload(endpoint, body) {
3
- return new Promise((resolve, reject) => {
4
- try {
5
- const req = https
6
- .request(endpoint, {
7
- method: "POST",
8
- headers: { "content-type": "application/json" },
9
- timeout: 5000,
10
- }, (resp) => {
11
- if (resp.statusCode !== 200) {
12
- reject(new Error(`Unexpected status code: ${resp.statusCode}`));
13
- return;
14
- }
15
- resolve();
16
- })
17
- .on("error", () => {
18
- // catches connect ECONNREFUSED while the below catch does not work as expected
19
- });
20
- req.write(JSON.stringify(body));
21
- req.end();
22
- }
23
- catch (ex) {
24
- reject(ex);
25
- }
26
- });
27
- }
@@ -1,2 +0,0 @@
1
- export declare function normalizeGitUrl(url: string): string;
2
- export declare function getRawProjectId(): string;
@@ -1,47 +0,0 @@
1
- import { execSync } from "child_process";
2
- function getProjectIdByGit() {
3
- try {
4
- const originBuffer = execSync(`git config --local --get remote.origin.url`, {
5
- timeout: 1000,
6
- stdio: `pipe`,
7
- });
8
- return String(originBuffer).trim();
9
- }
10
- catch (_) {
11
- return null;
12
- }
13
- }
14
- export function normalizeGitUrl(url) {
15
- // Normalize url
16
- // - https://x-access-token:ghs_xxxx@github.com/user/repo.git
17
- // - https://github.com/user/repo.git
18
- // - git@github.com:user/repo.git
19
- // trim
20
- url = url.trim();
21
- // clean up ending `.git`
22
- url = url.endsWith(".git") ? url.substring(0, url.length - 4) : url;
23
- if (url.startsWith("git@")) {
24
- const match = url.match(/git@([^:]+):(.*)/);
25
- if (match && match.length > 2) {
26
- return `${match[1]}/${match[2]}`;
27
- }
28
- }
29
- else if (url.startsWith("http://") || url.startsWith("https://")) {
30
- const match = url.match(/https?:\/\/([^@]+@)?(.*)/);
31
- if (match && match.length > 2) {
32
- return match[2];
33
- }
34
- }
35
- return url;
36
- }
37
- export function getRawProjectId() {
38
- const gitUrl = getProjectIdByGit();
39
- if (gitUrl) {
40
- return normalizeGitUrl(gitUrl);
41
- }
42
- const repoUrl = process.env.REPOSITORY_URL;
43
- if (repoUrl) {
44
- return normalizeGitUrl(repoUrl);
45
- }
46
- return process.cwd();
47
- }
@@ -1,19 +0,0 @@
1
- type CliFailedEvent = {
2
- rawCommand: string;
3
- duration: number;
4
- errorName: string;
5
- errorMessage: string;
6
- };
7
- type CliSucceededEvent = {
8
- rawCommand: string;
9
- duration: number;
10
- };
11
- export declare function enable(): void;
12
- export declare function disable(): void;
13
- export declare function isEnabled(): boolean;
14
- export declare function trackCli(command: string): Promise<any>;
15
- export declare function trackCliFailed(event: CliFailedEvent): Promise<any>;
16
- export declare function trackCliSucceeded(event: CliSucceededEvent): Promise<any>;
17
- export declare function trackCliDevError(event: CliFailedEvent): Promise<any>;
18
- export declare function trackCliDevRunning(event: CliSucceededEvent): Promise<any>;
19
- export {};
@@ -1,103 +0,0 @@
1
- import Conf from "conf";
2
- import { createHash, randomBytes } from "crypto";
3
- import { postPayload } from "./post-payload.js";
4
- import { getRawProjectId } from "./project-id.js";
5
- import { getEnvironmentData } from "./environment.js";
6
- import { cyan } from "colorette";
7
- const TELEMETRY_API = "https://telemetry.sst.dev/events";
8
- const TELEMETRY_KEY_ENABLED = "telemetry.enabled";
9
- const TELEMETRY_KEY_NOTIFY_DATE = "telemetry.notifiedAt";
10
- const TELEMETRY_KEY_ID = `telemetry.anonymousId`;
11
- const conf = initializeConf();
12
- const sessionId = randomBytes(32).toString("hex");
13
- const projectId = hash(getRawProjectId());
14
- const anonymousId = getAnonymousId();
15
- notify();
16
- export function enable() {
17
- conf && conf.set(TELEMETRY_KEY_ENABLED, true);
18
- }
19
- export function disable() {
20
- conf && conf.set(TELEMETRY_KEY_ENABLED, false);
21
- }
22
- export function isEnabled() {
23
- if (!conf) {
24
- return false;
25
- }
26
- return conf.get(TELEMETRY_KEY_ENABLED, true) !== false;
27
- }
28
- export function trackCli(command) {
29
- return record("CLI_COMMAND", { command });
30
- }
31
- export function trackCliFailed(event) {
32
- return record("CLI_COMMAND_FAILED", event);
33
- }
34
- export function trackCliSucceeded(event) {
35
- return record("CLI_COMMAND_SUCCEEDED", event);
36
- }
37
- export function trackCliDevError(event) {
38
- return record("CLI_COMMAND_DEV_ERROR", event);
39
- }
40
- export function trackCliDevRunning(event) {
41
- return record("CLI_COMMAND_DEV_RUNNING", event);
42
- }
43
- function initializeConf() {
44
- try {
45
- // @ts-expect-error
46
- return new Conf({ projectName: "sst" });
47
- }
48
- catch (_) {
49
- return null;
50
- }
51
- }
52
- function notify() {
53
- if (!conf || willNotRecord()) {
54
- return;
55
- }
56
- // Do not notify if user has been notified before.
57
- if (conf.get(TELEMETRY_KEY_NOTIFY_DATE) !== undefined) {
58
- return;
59
- }
60
- conf.set(TELEMETRY_KEY_NOTIFY_DATE, Date.now().toString());
61
- console.log(`${cyan("Attention")}: SST now collects completely anonymous telemetry regarding usage. This is used to guide SST's roadmap.`);
62
- console.log(`You can learn more, including how to opt-out of this anonymous program, by heading over to:`);
63
- console.log("https://docs.sst.dev/anonymous-telemetry");
64
- console.log();
65
- }
66
- function willNotRecord() {
67
- return !isEnabled() || !!process.env.SST_TELEMETRY_DISABLED;
68
- }
69
- async function record(name, properties) {
70
- if (willNotRecord()) {
71
- return Promise.resolve();
72
- }
73
- const context = {
74
- anonymousId,
75
- projectId,
76
- sessionId,
77
- };
78
- try {
79
- await postPayload(TELEMETRY_API, {
80
- context,
81
- environment: getEnvironmentData(),
82
- events: [
83
- {
84
- name,
85
- properties,
86
- },
87
- ],
88
- });
89
- }
90
- catch { }
91
- }
92
- function getAnonymousId() {
93
- const val = conf && conf.get(TELEMETRY_KEY_ID);
94
- if (val) {
95
- return val;
96
- }
97
- const generated = randomBytes(32).toString("hex");
98
- conf && conf.set(TELEMETRY_KEY_ID, generated);
99
- return generated;
100
- }
101
- function hash(payload) {
102
- return createHash("sha256").update(payload).digest("hex");
103
- }
package/cli/terminal.d.ts DELETED
@@ -1 +0,0 @@
1
- export declare function clear(): void;
package/cli/terminal.js DELETED
@@ -1,8 +0,0 @@
1
- export function clear() {
2
- // console.clear() removes the content in the viewport in VSCode
3
- // and on Windows. This is a workaround to preserve the viewport.
4
- for (let i = 0, l = process.stdout.rows; i < l - 1; i++) {
5
- console.log("");
6
- }
7
- console.clear();
8
- }
@@ -1,10 +0,0 @@
1
- /// <reference types="react" resolution-mode="require"/>
2
- import { Stacks } from "../../stacks/index.js";
3
- import type { CloudAssembly } from "aws-cdk-lib/cx-api";
4
- interface Props {
5
- assembly: CloudAssembly;
6
- remove?: boolean;
7
- }
8
- export declare const DeploymentUI: (props: Props) => JSX.Element;
9
- export declare function printDeploymentResults(assembly: CloudAssembly, results: Awaited<ReturnType<typeof Stacks.deployMany>>, remove?: boolean): void;
10
- export {};
package/cli/ui/deploy.js DELETED
@@ -1,172 +0,0 @@
1
- import React, { useState, useEffect } from "react";
2
- import { Box, Text } from "ink";
3
- import { useBus } from "../../bus.js";
4
- import { Stacks } from "../../stacks/index.js";
5
- import Spinner from "ink-spinner";
6
- import { Colors } from "../colors.js";
7
- import { useProject } from "../../project.js";
8
- export const DeploymentUI = (props) => {
9
- const [statuses, setStatuses] = useState({});
10
- const [resources, setResources] = useState({});
11
- useEffect(() => {
12
- Colors.gap();
13
- const bus = useBus();
14
- const status = bus.subscribe("stack.status", (payload) => {
15
- const { stackID, status } = payload.properties;
16
- setStatuses((previous) => {
17
- if (status !== "PUBLISH_ASSETS_IN_PROGRESS") {
18
- if (previous[stackID]) {
19
- Colors.line(Colors.warning(Colors.prefix), Colors.dim(stackNameToId(stackID)), Colors.dim("PUBLISH_ASSETS_COMPLETE"), "");
20
- }
21
- const { [stackID]: _, ...next } = previous;
22
- return next;
23
- }
24
- return {
25
- ...previous,
26
- [stackID]: status,
27
- };
28
- });
29
- });
30
- const event = bus.subscribe("stack.event", (payload) => {
31
- const { event } = payload.properties;
32
- setResources((previous) => {
33
- if (Stacks.isFinal(event.ResourceStatus)) {
34
- const readable = logicalIdToCdkPath(props.assembly, event.StackName, event.LogicalResourceId);
35
- Colors.line(Colors.warning(Colors.prefix), readable
36
- ? Colors.dim(`${stackNameToId(event.StackName)} ${readable} ${event.ResourceType}`)
37
- : Colors.dim(`${stackNameToId(event.StackName)} ${event.ResourceType}`), Stacks.isFailed(event.ResourceStatus)
38
- ? Colors.danger(event.ResourceStatus)
39
- : Colors.dim(event.ResourceStatus), Stacks.isFailed(event.ResourceStatus) && event.ResourceStatusReason
40
- ? event.ResourceStatusReason
41
- : "");
42
- const { [event.LogicalResourceId]: _, ...next } = previous;
43
- return next;
44
- }
45
- return {
46
- ...previous,
47
- [payload.properties.event.LogicalResourceId]: payload.properties.event,
48
- };
49
- });
50
- });
51
- return () => {
52
- bus.unsubscribe(event);
53
- bus.unsubscribe(status);
54
- };
55
- }, []);
56
- function color(status) {
57
- if (Stacks.isFailed(status))
58
- return "red";
59
- if (Stacks.isSuccess(status))
60
- return "green";
61
- return "yellow";
62
- }
63
- return (React.createElement(Box, { flexDirection: "column" },
64
- Object.entries(statuses)
65
- .slice(0, process.stdout.rows - 2)
66
- .map(([stack, status], index) => {
67
- return (React.createElement(Box, { key: index },
68
- React.createElement(Text, null,
69
- React.createElement(Spinner, null),
70
- " ",
71
- stackNameToId(stack),
72
- " "),
73
- React.createElement(Text, { color: color(status) }, status)));
74
- }),
75
- Object.entries(resources)
76
- .slice(0, Math.max(0, process.stdout.rows - Object.entries(statuses).length - 2))
77
- .map(([_, evt], index) => {
78
- const readable = logicalIdToCdkPath(props.assembly, evt.StackName, evt.LogicalResourceId);
79
- return (React.createElement(Box, { key: index },
80
- React.createElement(Text, null,
81
- React.createElement(Spinner, null),
82
- " ",
83
- readable
84
- ? `${stackNameToId(evt.StackName)} ${readable} ${evt.ResourceType}`
85
- : `${stackNameToId(evt.StackName)} ${evt.ResourceType}`,
86
- " "),
87
- React.createElement(Text, { color: color(evt.ResourceStatus || "") }, evt.ResourceStatus)));
88
- }),
89
- Object.entries(resources).length === 0 &&
90
- Object.entries(statuses).length === 0 && (React.createElement(Box, null,
91
- React.createElement(Text, null,
92
- React.createElement(Spinner, null),
93
- " ",
94
- React.createElement(Text, { dimColor: true }, props.remove ? "Removing..." : "Deploying..."))))));
95
- };
96
- export function printDeploymentResults(assembly, results, remove) {
97
- // Print success stacks
98
- const success = Object.entries(results).filter(([_stack, result]) => Stacks.isSuccess(result.status));
99
- if (success.length) {
100
- Colors.gap();
101
- Colors.line(Colors.success(`✔`), Colors.bold(remove ? ` Removed:` : ` Deployed:`));
102
- for (const [stack, result] of success) {
103
- Colors.line(` ${Colors.dim(stackNameToId(stack))}`);
104
- for (const key of Object.keys(result.outputs).sort()) {
105
- const value = result.outputs[key];
106
- Colors.line(` ${Colors.bold.dim(key + ":")} ${value}`);
107
- }
108
- }
109
- Colors.gap();
110
- }
111
- // Print failed stacks
112
- const failed = Object.entries(results).filter(([_stack, result]) => Stacks.isFailed(result.status));
113
- if (failed.length) {
114
- Colors.gap();
115
- Colors.line(`${Colors.danger(`✖`)} ${Colors.bold.dim(`Errors`)}`);
116
- for (const [stack, result] of failed) {
117
- Colors.line(` ${Colors.dim(stackNameToId(stack))} ${Colors.dim(result.status)}`);
118
- for (const [id, error] of Object.entries(result.errors)) {
119
- const readable = logicalIdToCdkPath(assembly, stack, id) || id;
120
- Colors.line(` ${Colors.danger.bold(readable + ":")} ${error}`);
121
- const helper = getHelper(error);
122
- if (helper) {
123
- Colors.line(` ${Colors.warning.bold("⮑ Hint:")} ${helper}`);
124
- }
125
- }
126
- }
127
- Colors.gap();
128
- }
129
- }
130
- function stackNameToId(stack) {
131
- const project = useProject();
132
- const prefix = `${project.config.stage}-${project.config.name}-`;
133
- return stack.startsWith(prefix) ? stack.substring(prefix.length) : stack;
134
- }
135
- function logicalIdToCdkPath(assembly, stack, logicalId) {
136
- const found = Object.entries(assembly.manifest.artifacts?.[stack]?.metadata || {}).find(([_key, value]) => value[0]?.type === "aws:cdk:logicalId" && value[0]?.data === logicalId)?.[0];
137
- if (!found) {
138
- return;
139
- }
140
- return found.split("/").filter(Boolean).slice(1, -1).join("/");
141
- }
142
- function getHelper(error) {
143
- return (getCloudFrontBehaviorLimitHelper(error) ||
144
- getApiAccessLogPermissionsHelper(error) ||
145
- getAppSyncMultiResolverHelper(error) ||
146
- getApiLogRoleHelper(error));
147
- }
148
- function getCloudFrontBehaviorLimitHelper(error) {
149
- if (error.indexOf("Your request contains more CacheBehaviors than are allowed per distribution.") > -1) {
150
- return `This error often occurs when deploying a frontend with a large number of top-level files and folders in the assets directory. Check out this doc on how to resolve the issue - https://docs.sst.dev/known-issues#cloudfront-cachebehaviors-limit-exceeded`;
151
- }
152
- }
153
- function getApiAccessLogPermissionsHelper(error) {
154
- // Can run into this issue when enabling access logs for API Gateway
155
- // note: this should be handled in SST as access log group names are now
156
- // hardcoded with /aws/vendedlogs/apis prefix.
157
- if (error.indexOf("Insufficient permissions to enable logging") > -1) {
158
- return `This is a common deploy error. Check out this GitHub issue for more details - https://github.com/sst/sst/issues/125`;
159
- }
160
- }
161
- function getAppSyncMultiResolverHelper(error) {
162
- // Can run into this issue when updating an AppSyncApi resolver
163
- if (error.indexOf("Only one resolver is allowed per field. (Service: AWSAppSync") > -1) {
164
- return `This is a common error for deploying AppSync APIs. Check out this GitHub issue for more details - https://github.com/aws/aws-cdk/issues/13269`;
165
- }
166
- }
167
- function getApiLogRoleHelper(error) {
168
- // Can run into this issue when enabling access logs for WebSocketApi
169
- if (error.indexOf("CloudWatch Logs role ARN must be set in account settings to enable logging (Service: AmazonApiGatewayV2") > -1) {
170
- return `This is a common error when configuring Access Log for WebSocket APIs. The AWS API Gateway service in your AWS account does not have permissions to the CloudWatch logs service. Follow this article to create an IAM role for logging to CloudWatch - https://aws.amazon.com/premiumsupport/knowledge-center/api-gateway-cloudwatch-logs/`;
171
- }
172
- }
@@ -1,2 +0,0 @@
1
- /// <reference types="react" resolution-mode="require"/>
2
- export declare function Functions(): JSX.Element;
@@ -1,130 +0,0 @@
1
- import { dim } from "colorette";
2
- import { Text } from "ink";
3
- import Spinner from "ink-spinner";
4
- import React, { useEffect, useState } from "react";
5
- import { useBus } from "../../bus.js";
6
- import { useFunctions } from "../../constructs/Function.js";
7
- import { Colors } from "../colors.js";
8
- export function Functions() {
9
- const [functions, setFunctions] = useState({});
10
- useEffect(() => {
11
- const bus = useBus();
12
- const invoke = bus.subscribe("function.invoked", (evt) => {
13
- setFunctions((functions) => {
14
- setTimeout(() => {
15
- setFunctions((functions) => {
16
- const existing = functions[evt.properties.requestID];
17
- if (!existing)
18
- return functions;
19
- return { ...functions };
20
- });
21
- }, 500);
22
- return {
23
- ...functions,
24
- [evt.properties.requestID]: {
25
- requestID: evt.properties.requestID,
26
- functionID: evt.properties.functionID,
27
- started: Date.now(),
28
- logs: [],
29
- },
30
- };
31
- });
32
- });
33
- const stdout = bus.subscribe("worker.stdout", (evt) => {
34
- setFunctions((functions) => {
35
- const existing = functions[evt.properties.requestID];
36
- if (!existing)
37
- return functions;
38
- return {
39
- ...functions,
40
- [evt.properties.requestID]: {
41
- ...existing,
42
- logs: [...existing.logs, evt.properties.message],
43
- },
44
- };
45
- });
46
- });
47
- // This is all ugly but the timeouts are for UI smootheness
48
- const success = bus.subscribe("function.success", (evt) => {
49
- function print(input, diff) {
50
- setTimeout(() => {
51
- console.log(Colors.primary(` ➜ `), useFunctions().fromID(input.functionID)?.handler);
52
- for (const log of input.logs) {
53
- console.log(` ${dim(log)}`);
54
- }
55
- console.log(` ${dim(`Done in ${diff}ms`)}`);
56
- console.log();
57
- }, diff > 500 ? 60 : 0);
58
- }
59
- setFunctions((functions) => {
60
- const { [evt.properties.requestID]: existing, ...next } = functions;
61
- if (!existing)
62
- return functions;
63
- const diff = Date.now() - existing.started;
64
- if (diff > 500 && diff < 1500) {
65
- setTimeout(() => {
66
- setFunctions((functions) => {
67
- const { [evt.properties.requestID]: existing, ...next } = functions;
68
- print(existing, diff);
69
- return next;
70
- });
71
- }, 1500 - diff);
72
- return functions;
73
- }
74
- print(existing, diff);
75
- return next;
76
- });
77
- });
78
- const error = bus.subscribe("function.error", (evt) => {
79
- function print(input, diff) {
80
- setTimeout(() => {
81
- console.log(Colors.primary(` ➜ `), useFunctions().fromID(input.functionID)?.handler);
82
- for (const log of input.logs) {
83
- console.log(` ${dim(log)}`);
84
- }
85
- console.log(` ${Colors.danger(evt.properties.errorMessage)}`);
86
- for (const line of evt.properties.trace || []) {
87
- console.log(` ${dim(line)}`);
88
- }
89
- console.log();
90
- }, diff > 500 ? 60 : 0);
91
- }
92
- setFunctions((functions) => {
93
- const { [evt.properties.requestID]: existing, ...next } = functions;
94
- if (!existing)
95
- return functions;
96
- const diff = Date.now() - existing.started;
97
- if (diff > 500 && diff < 1500) {
98
- setTimeout(() => {
99
- setFunctions((functions) => {
100
- const { [evt.properties.requestID]: existing, ...next } = functions;
101
- print(existing, diff);
102
- return next;
103
- });
104
- }, 1500 - diff);
105
- return functions;
106
- }
107
- print(existing, diff);
108
- return next;
109
- });
110
- });
111
- return () => {
112
- bus.unsubscribe(invoke);
113
- bus.unsubscribe(success);
114
- bus.unsubscribe(error);
115
- bus.unsubscribe(stdout);
116
- };
117
- }, []);
118
- return (React.createElement(React.Fragment, null, Object.values(functions)
119
- .filter((f) => Date.now() - f.started >= 500)
120
- .map((evt) => (React.createElement(React.Fragment, { key: evt.requestID },
121
- React.createElement(Text, null,
122
- " ",
123
- React.createElement(Spinner, null),
124
- " ",
125
- useFunctions().fromID(evt.functionID)?.handler),
126
- evt.logs.map((log, index) => (React.createElement(Text, { dimColor: true, key: index },
127
- " ",
128
- log))),
129
- React.createElement(Text, null, " "))))));
130
- }