sst 3.0.0 → 3.0.1-10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (460) hide show
  1. package/dist/index.d.ts +2 -0
  2. package/dist/index.js +2 -0
  3. package/dist/resource.d.ts +4 -0
  4. package/dist/resource.js +15 -0
  5. package/dist/vector-client.d.ts +126 -0
  6. package/dist/vector-client.js +38 -0
  7. package/package.json +16 -137
  8. package/LICENSE +0 -21
  9. package/README.md +0 -43
  10. package/bootstrap.d.ts +0 -5
  11. package/bootstrap.js +0 -318
  12. package/bus.d.ts +0 -20
  13. package/bus.js +0 -52
  14. package/cache.d.ts +0 -4
  15. package/cache.js +0 -31
  16. package/cdk/deploy-stack.d.ts +0 -223
  17. package/cdk/deploy-stack.js +0 -562
  18. package/cdk/deployments-wrapper.d.ts +0 -3
  19. package/cdk/deployments-wrapper.js +0 -135
  20. package/cdk/deployments.d.ts +0 -327
  21. package/cdk/deployments.js +0 -360
  22. package/cdk/util.d.ts +0 -1
  23. package/cdk/util.js +0 -17
  24. package/cli/ci-info.d.ts +0 -4
  25. package/cli/ci-info.js +0 -8
  26. package/cli/colors.d.ts +0 -17
  27. package/cli/colors.js +0 -27
  28. package/cli/commands/bind.d.ts +0 -19
  29. package/cli/commands/bind.js +0 -360
  30. package/cli/commands/bootstrap.d.ts +0 -15
  31. package/cli/commands/bootstrap.js +0 -11
  32. package/cli/commands/build.d.ts +0 -17
  33. package/cli/commands/build.js +0 -25
  34. package/cli/commands/connect.d.ts +0 -17
  35. package/cli/commands/connect.js +0 -55
  36. package/cli/commands/console.d.ts +0 -15
  37. package/cli/commands/console.js +0 -22
  38. package/cli/commands/deploy.d.ts +0 -19
  39. package/cli/commands/deploy.js +0 -112
  40. package/cli/commands/dev.d.ts +0 -25
  41. package/cli/commands/dev.js +0 -351
  42. package/cli/commands/diff.d.ts +0 -19
  43. package/cli/commands/diff.js +0 -89
  44. package/cli/commands/plugins/kysely.d.ts +0 -1
  45. package/cli/commands/plugins/kysely.js +0 -87
  46. package/cli/commands/plugins/pothos.d.ts +0 -1
  47. package/cli/commands/plugins/pothos.js +0 -58
  48. package/cli/commands/plugins/warmer.d.ts +0 -1
  49. package/cli/commands/plugins/warmer.js +0 -33
  50. package/cli/commands/remove.d.ts +0 -19
  51. package/cli/commands/remove.js +0 -62
  52. package/cli/commands/secrets/get.d.ts +0 -19
  53. package/cli/commands/secrets/get.js +0 -27
  54. package/cli/commands/secrets/list.d.ts +0 -19
  55. package/cli/commands/secrets/list.js +0 -69
  56. package/cli/commands/secrets/load.d.ts +0 -17
  57. package/cli/commands/secrets/load.js +0 -47
  58. package/cli/commands/secrets/remove.d.ts +0 -19
  59. package/cli/commands/secrets/remove.js +0 -27
  60. package/cli/commands/secrets/secrets.d.ts +0 -2
  61. package/cli/commands/secrets/secrets.js +0 -16
  62. package/cli/commands/secrets/set.d.ts +0 -21
  63. package/cli/commands/secrets/set.js +0 -54
  64. package/cli/commands/telemetry.d.ts +0 -17
  65. package/cli/commands/telemetry.js +0 -24
  66. package/cli/commands/transform.d.ts +0 -17
  67. package/cli/commands/transform.js +0 -62
  68. package/cli/commands/types.d.ts +0 -15
  69. package/cli/commands/types.js +0 -25
  70. package/cli/commands/update.d.ts +0 -17
  71. package/cli/commands/update.js +0 -116
  72. package/cli/commands/version.d.ts +0 -15
  73. package/cli/commands/version.js +0 -15
  74. package/cli/local/router.d.ts +0 -44
  75. package/cli/local/router.js +0 -43
  76. package/cli/local/server.d.ts +0 -22
  77. package/cli/local/server.js +0 -319
  78. package/cli/program.d.ts +0 -19
  79. package/cli/program.js +0 -87
  80. package/cli/spinner.d.ts +0 -3
  81. package/cli/spinner.js +0 -14
  82. package/cli/sst.d.ts +0 -2
  83. package/cli/sst.js +0 -74
  84. package/cli/telemetry/environment.d.ts +0 -15
  85. package/cli/telemetry/environment.js +0 -27
  86. package/cli/telemetry/post-payload.d.ts +0 -1
  87. package/cli/telemetry/post-payload.js +0 -27
  88. package/cli/telemetry/project-id.d.ts +0 -2
  89. package/cli/telemetry/project-id.js +0 -47
  90. package/cli/telemetry/telemetry.d.ts +0 -19
  91. package/cli/telemetry/telemetry.js +0 -103
  92. package/cli/terminal.d.ts +0 -1
  93. package/cli/terminal.js +0 -8
  94. package/cli/ui/deploy.d.ts +0 -10
  95. package/cli/ui/deploy.js +0 -172
  96. package/cli/ui/functions.d.ts +0 -2
  97. package/cli/ui/functions.js +0 -130
  98. package/cli/ui/header.d.ts +0 -5
  99. package/cli/ui/header.js +0 -16
  100. package/cli/ui/stack.d.ts +0 -1
  101. package/cli/ui/stack.js +0 -6
  102. package/config.d.ts +0 -56
  103. package/config.js +0 -244
  104. package/constructs/Api.d.ts +0 -814
  105. package/constructs/Api.js +0 -743
  106. package/constructs/ApiGatewayV1Api.d.ts +0 -642
  107. package/constructs/ApiGatewayV1Api.js +0 -767
  108. package/constructs/App.d.ts +0 -168
  109. package/constructs/App.js +0 -493
  110. package/constructs/AppSyncApi.d.ts +0 -550
  111. package/constructs/AppSyncApi.js +0 -493
  112. package/constructs/AstroSite.d.ts +0 -39
  113. package/constructs/AstroSite.js +0 -78
  114. package/constructs/AstroSite.tsdoc.d.ts +0 -2
  115. package/constructs/AstroSite.tsdoc.js +0 -2
  116. package/constructs/Auth.d.ts +0 -100
  117. package/constructs/Auth.js +0 -177
  118. package/constructs/BaseSite.d.ts +0 -29
  119. package/constructs/BaseSite.js +0 -43
  120. package/constructs/Bucket.d.ts +0 -364
  121. package/constructs/Bucket.js +0 -327
  122. package/constructs/Cognito.d.ts +0 -232
  123. package/constructs/Cognito.js +0 -370
  124. package/constructs/Config.d.ts +0 -3
  125. package/constructs/Config.js +0 -3
  126. package/constructs/Construct.d.ts +0 -23
  127. package/constructs/Construct.js +0 -46
  128. package/constructs/Cron.d.ts +0 -164
  129. package/constructs/Cron.js +0 -114
  130. package/constructs/Distribution.d.ts +0 -143
  131. package/constructs/Distribution.js +0 -260
  132. package/constructs/EdgeFunction.d.ts +0 -49
  133. package/constructs/EdgeFunction.js +0 -442
  134. package/constructs/EventBus.d.ts +0 -444
  135. package/constructs/EventBus.js +0 -440
  136. package/constructs/Function.d.ts +0 -690
  137. package/constructs/Function.js +0 -583
  138. package/constructs/FunctionalStack.d.ts +0 -13
  139. package/constructs/FunctionalStack.js +0 -62
  140. package/constructs/Job.d.ts +0 -337
  141. package/constructs/Job.js +0 -404
  142. package/constructs/KinesisStream.d.ts +0 -224
  143. package/constructs/KinesisStream.js +0 -207
  144. package/constructs/Metadata.d.ts +0 -60
  145. package/constructs/Metadata.js +0 -1
  146. package/constructs/NextjsSite.d.ts +0 -104
  147. package/constructs/NextjsSite.js +0 -308
  148. package/constructs/Parameter.d.ts +0 -37
  149. package/constructs/Parameter.js +0 -53
  150. package/constructs/Queue.d.ts +0 -194
  151. package/constructs/Queue.js +0 -204
  152. package/constructs/RDS.d.ts +0 -221
  153. package/constructs/RDS.js +0 -363
  154. package/constructs/RemixSite.d.ts +0 -42
  155. package/constructs/RemixSite.js +0 -158
  156. package/constructs/RemixSite.tsdoc.d.ts +0 -2
  157. package/constructs/RemixSite.tsdoc.js +0 -2
  158. package/constructs/Script.d.ts +0 -160
  159. package/constructs/Script.js +0 -179
  160. package/constructs/Secret.d.ts +0 -30
  161. package/constructs/Secret.js +0 -59
  162. package/constructs/Service.d.ts +0 -487
  163. package/constructs/Service.js +0 -655
  164. package/constructs/SolidStartSite.d.ts +0 -37
  165. package/constructs/SolidStartSite.js +0 -66
  166. package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
  167. package/constructs/SolidStartSite.tsdoc.js +0 -2
  168. package/constructs/SsrFunction.d.ts +0 -60
  169. package/constructs/SsrFunction.js +0 -226
  170. package/constructs/SsrSite.d.ts +0 -407
  171. package/constructs/SsrSite.js +0 -850
  172. package/constructs/Stack.d.ts +0 -127
  173. package/constructs/Stack.js +0 -243
  174. package/constructs/StaticSite.d.ts +0 -348
  175. package/constructs/StaticSite.js +0 -468
  176. package/constructs/SvelteKitSite.d.ts +0 -40
  177. package/constructs/SvelteKitSite.js +0 -106
  178. package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
  179. package/constructs/SvelteKitSite.tsdoc.js +0 -2
  180. package/constructs/Table.d.ts +0 -410
  181. package/constructs/Table.js +0 -425
  182. package/constructs/Topic.d.ts +0 -257
  183. package/constructs/Topic.js +0 -273
  184. package/constructs/WebSocketApi.d.ts +0 -355
  185. package/constructs/WebSocketApi.js +0 -404
  186. package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
  187. package/constructs/cdk/HttpAwsIntegration.js +0 -24
  188. package/constructs/cdk/certificate-base.d.ts +0 -18
  189. package/constructs/cdk/certificate-base.js +0 -26
  190. package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
  191. package/constructs/cdk/dns-validated-certificate.js +0 -125
  192. package/constructs/cdk/website-redirect.d.ts +0 -53
  193. package/constructs/cdk/website-redirect.js +0 -77
  194. package/constructs/context.d.ts +0 -3
  195. package/constructs/context.js +0 -27
  196. package/constructs/deferred_task.d.ts +0 -6
  197. package/constructs/deferred_task.js +0 -45
  198. package/constructs/deprecated/NextjsSite.d.ts +0 -309
  199. package/constructs/deprecated/NextjsSite.js +0 -1074
  200. package/constructs/deprecated/cross-region-helper.d.ts +0 -7
  201. package/constructs/deprecated/cross-region-helper.js +0 -152
  202. package/constructs/deprecated/index.d.ts +0 -1
  203. package/constructs/deprecated/index.js +0 -1
  204. package/constructs/future/Auth.d.ts +0 -80
  205. package/constructs/future/Auth.js +0 -122
  206. package/constructs/future/index.d.ts +0 -1
  207. package/constructs/future/index.js +0 -1
  208. package/constructs/index.d.ts +0 -32
  209. package/constructs/index.js +0 -32
  210. package/constructs/static-file-list.d.ts +0 -1
  211. package/constructs/static-file-list.js +0 -51
  212. package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
  213. package/constructs/util/apiGatewayV1AccessLog.js +0 -76
  214. package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
  215. package/constructs/util/apiGatewayV2AccessLog.js +0 -107
  216. package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
  217. package/constructs/util/apiGatewayV2Cors.js +0 -21
  218. package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
  219. package/constructs/util/apiGatewayV2Domain.js +0 -208
  220. package/constructs/util/appSyncApiDomain.d.ts +0 -41
  221. package/constructs/util/appSyncApiDomain.js +0 -176
  222. package/constructs/util/builder.d.ts +0 -3
  223. package/constructs/util/builder.js +0 -9
  224. package/constructs/util/duration.d.ts +0 -3
  225. package/constructs/util/duration.js +0 -19
  226. package/constructs/util/functionBinding.d.ts +0 -31
  227. package/constructs/util/functionBinding.js +0 -104
  228. package/constructs/util/functionUrlCors.d.ts +0 -67
  229. package/constructs/util/functionUrlCors.js +0 -23
  230. package/constructs/util/permission.d.ts +0 -8
  231. package/constructs/util/permission.js +0 -228
  232. package/constructs/util/size.d.ts +0 -3
  233. package/constructs/util/size.js +0 -12
  234. package/constructs/util/warning.d.ts +0 -11
  235. package/constructs/util/warning.js +0 -21
  236. package/context/context.d.ts +0 -13
  237. package/context/context.js +0 -69
  238. package/context/context2.d.ts +0 -16
  239. package/context/context2.js +0 -108
  240. package/context/handler.d.ts +0 -25
  241. package/context/handler.js +0 -21
  242. package/context/index.d.ts +0 -2
  243. package/context/index.js +0 -2
  244. package/credentials.d.ts +0 -9
  245. package/credentials.js +0 -145
  246. package/error.d.ts +0 -6
  247. package/error.js +0 -10
  248. package/index.d.ts +0 -1
  249. package/index.js +0 -1
  250. package/iot.d.ts +0 -6
  251. package/iot.js +0 -163
  252. package/logger.d.ts +0 -3
  253. package/logger.js +0 -32
  254. package/node/actor/index.d.ts +0 -29
  255. package/node/actor/index.js +0 -17
  256. package/node/api/index.d.ts +0 -64
  257. package/node/api/index.js +0 -179
  258. package/node/auth/adapter/adapter.d.ts +0 -3
  259. package/node/auth/adapter/adapter.js +0 -3
  260. package/node/auth/adapter/facebook.d.ts +0 -2
  261. package/node/auth/adapter/facebook.js +0 -26
  262. package/node/auth/adapter/github.d.ts +0 -2
  263. package/node/auth/adapter/github.js +0 -21
  264. package/node/auth/adapter/google.d.ts +0 -9
  265. package/node/auth/adapter/google.js +0 -18
  266. package/node/auth/adapter/link.d.ts +0 -8
  267. package/node/auth/adapter/link.js +0 -39
  268. package/node/auth/adapter/oauth.d.ts +0 -25
  269. package/node/auth/adapter/oauth.js +0 -52
  270. package/node/auth/adapter/oidc.d.ts +0 -17
  271. package/node/auth/adapter/oidc.js +0 -50
  272. package/node/auth/adapter/twitch.d.ts +0 -2
  273. package/node/auth/adapter/twitch.js +0 -11
  274. package/node/auth/auth.d.ts +0 -24
  275. package/node/auth/auth.js +0 -74
  276. package/node/auth/index.d.ts +0 -13
  277. package/node/auth/index.js +0 -12
  278. package/node/auth/session.d.ts +0 -76
  279. package/node/auth/session.js +0 -121
  280. package/node/bucket/index.d.ts +0 -3
  281. package/node/bucket/index.js +0 -2
  282. package/node/config/index.d.ts +0 -13
  283. package/node/config/index.js +0 -22
  284. package/node/event-bus/index.d.ts +0 -51
  285. package/node/event-bus/index.js +0 -76
  286. package/node/function/index.d.ts +0 -3
  287. package/node/function/index.js +0 -3
  288. package/node/future/auth/adapter/adapter.d.ts +0 -10
  289. package/node/future/auth/adapter/adapter.js +0 -1
  290. package/node/future/auth/adapter/code.d.ts +0 -17
  291. package/node/future/auth/adapter/code.js +0 -68
  292. package/node/future/auth/adapter/facebook.d.ts +0 -16
  293. package/node/future/auth/adapter/facebook.js +0 -27
  294. package/node/future/auth/adapter/github.d.ts +0 -23
  295. package/node/future/auth/adapter/github.js +0 -23
  296. package/node/future/auth/adapter/google.d.ts +0 -28
  297. package/node/future/auth/adapter/google.js +0 -22
  298. package/node/future/auth/adapter/link.d.ts +0 -13
  299. package/node/future/auth/adapter/link.js +0 -47
  300. package/node/future/auth/adapter/microsoft.d.ts +0 -22
  301. package/node/future/auth/adapter/microsoft.js +0 -16
  302. package/node/future/auth/adapter/oauth.d.ts +0 -41
  303. package/node/future/auth/adapter/oauth.js +0 -67
  304. package/node/future/auth/adapter/oidc.d.ts +0 -30
  305. package/node/future/auth/adapter/oidc.js +0 -63
  306. package/node/future/auth/adapter/spotify.d.ts +0 -23
  307. package/node/future/auth/adapter/spotify.js +0 -22
  308. package/node/future/auth/encryption.d.ts +0 -2
  309. package/node/future/auth/encryption.js +0 -30
  310. package/node/future/auth/handler.d.ts +0 -46
  311. package/node/future/auth/handler.js +0 -280
  312. package/node/future/auth/index.d.ts +0 -17
  313. package/node/future/auth/index.js +0 -15
  314. package/node/future/auth/session.d.ts +0 -71
  315. package/node/future/auth/session.js +0 -146
  316. package/node/graphql/index.d.ts +0 -15
  317. package/node/graphql/index.js +0 -32
  318. package/node/job/index.d.ts +0 -37
  319. package/node/job/index.js +0 -64
  320. package/node/kinesis-stream/index.d.ts +0 -3
  321. package/node/kinesis-stream/index.js +0 -3
  322. package/node/queue/index.d.ts +0 -3
  323. package/node/queue/index.js +0 -2
  324. package/node/rds/index.d.ts +0 -3
  325. package/node/rds/index.js +0 -2
  326. package/node/service/index.d.ts +0 -3
  327. package/node/service/index.js +0 -4
  328. package/node/site/index.d.ts +0 -18
  329. package/node/site/index.js +0 -18
  330. package/node/table/index.d.ts +0 -3
  331. package/node/table/index.js +0 -4
  332. package/node/topic/index.d.ts +0 -3
  333. package/node/topic/index.js +0 -4
  334. package/node/util/index.d.ts +0 -2
  335. package/node/util/index.js +0 -196
  336. package/node/util/loader.d.ts +0 -2
  337. package/node/util/loader.js +0 -51
  338. package/node/websocket-api/index.d.ts +0 -23
  339. package/node/websocket-api/index.js +0 -48
  340. package/pothos.d.ts +0 -7
  341. package/pothos.js +0 -160
  342. package/project.d.ts +0 -75
  343. package/project.js +0 -188
  344. package/runtime/handlers/container.d.ts +0 -2
  345. package/runtime/handlers/container.js +0 -263
  346. package/runtime/handlers/dotnet.d.ts +0 -2
  347. package/runtime/handlers/dotnet.js +0 -115
  348. package/runtime/handlers/go.d.ts +0 -2
  349. package/runtime/handlers/go.js +0 -126
  350. package/runtime/handlers/java.d.ts +0 -2
  351. package/runtime/handlers/java.js +0 -103
  352. package/runtime/handlers/node.d.ts +0 -2
  353. package/runtime/handlers/node.js +0 -269
  354. package/runtime/handlers/python.d.ts +0 -2
  355. package/runtime/handlers/python.js +0 -141
  356. package/runtime/handlers/pythonBundling.d.ts +0 -82
  357. package/runtime/handlers/pythonBundling.js +0 -80
  358. package/runtime/handlers/rust.d.ts +0 -2
  359. package/runtime/handlers/rust.js +0 -110
  360. package/runtime/handlers.d.ts +0 -74
  361. package/runtime/handlers.js +0 -151
  362. package/runtime/iot.d.ts +0 -1
  363. package/runtime/iot.js +0 -17
  364. package/runtime/runtime.d.ts +0 -32
  365. package/runtime/runtime.js +0 -1
  366. package/runtime/server.d.ts +0 -6
  367. package/runtime/server.js +0 -150
  368. package/runtime/workers.d.ts +0 -37
  369. package/runtime/workers.js +0 -85
  370. package/stacks/app-metadata.d.ts +0 -7
  371. package/stacks/app-metadata.js +0 -75
  372. package/stacks/assembly.d.ts +0 -1
  373. package/stacks/assembly.js +0 -4
  374. package/stacks/build.d.ts +0 -9
  375. package/stacks/build.js +0 -110
  376. package/stacks/deploy.d.ts +0 -9
  377. package/stacks/deploy.js +0 -240
  378. package/stacks/diff.d.ts +0 -8
  379. package/stacks/diff.js +0 -62
  380. package/stacks/index.d.ts +0 -10
  381. package/stacks/index.js +0 -10
  382. package/stacks/metadata.d.ts +0 -11
  383. package/stacks/metadata.js +0 -83
  384. package/stacks/monitor.d.ts +0 -32
  385. package/stacks/monitor.js +0 -151
  386. package/stacks/remove.d.ts +0 -8
  387. package/stacks/remove.js +0 -76
  388. package/stacks/synth.d.ts +0 -12
  389. package/stacks/synth.js +0 -94
  390. package/support/base-site-archiver.mjs +0 -99
  391. package/support/base-site-custom-resource/s3-handler.py +0 -195
  392. package/support/base-site-custom-resource/s3-upload.py +0 -89
  393. package/support/bootstrap-metadata-function/index.mjs +0 -58011
  394. package/support/bridge/Dockerfile +0 -3
  395. package/support/bridge/bridge.mjs +0 -146
  396. package/support/certificate-requestor/index.js +0 -549
  397. package/support/custom-resources/index.mjs +0 -180627
  398. package/support/dotnet31-bootstrap/Program.cs +0 -17
  399. package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
  400. package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  401. package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  402. package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  403. package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
  404. package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
  405. package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
  406. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
  407. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
  408. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  409. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
  410. package/support/dotnet6-bootstrap/Program.cs +0 -17
  411. package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
  412. package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  413. package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  414. package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
  415. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
  416. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
  417. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  418. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
  419. package/support/edge-function/edge-lambda-version.mjs +0 -3
  420. package/support/edge-function/edge-lambda.mjs +0 -3
  421. package/support/edge-function/s3-bucket.mjs +0 -3
  422. package/support/event-bus-retrier/index.mjs +0 -75
  423. package/support/java-runtime/install.sh +0 -25
  424. package/support/java-runtime/pom.xml +0 -39
  425. package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
  426. package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
  427. package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
  428. package/support/job-manager/index.mjs +0 -57679
  429. package/support/nixpacks/Dockerfile +0 -6
  430. package/support/nodejs-runtime/index.mjs +0 -169
  431. package/support/python-runtime/Dockerfile +0 -9
  432. package/support/python-runtime/Dockerfile.custom +0 -21
  433. package/support/python-runtime/Dockerfile.dependencies +0 -26
  434. package/support/python-runtime/runtime.py +0 -127
  435. package/support/rds-migrator/index.mjs +0 -49
  436. package/support/remix-site-function/edge-server.js +0 -161
  437. package/support/remix-site-function/polyfill.js +0 -24
  438. package/support/remix-site-function/regional-server.js +0 -164
  439. package/support/script-function/index.mjs +0 -48760
  440. package/support/service-dev-function/index.js +0 -1
  441. package/support/signing-function/index.mjs +0 -3769
  442. package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
  443. package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
  444. package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
  445. package/support/sls-nextjs-site-stub/index.html +0 -99
  446. package/support/ssr-site-function-archiver.mjs +0 -96
  447. package/support/ssr-site-function-stub/index.js +0 -5
  448. package/support/ssr-warmer/index.mjs +0 -34235
  449. package/util/error.d.ts +0 -3
  450. package/util/error.js +0 -6
  451. package/util/fs.d.ts +0 -4
  452. package/util/fs.js +0 -46
  453. package/util/lazy.d.ts +0 -1
  454. package/util/lazy.js +0 -11
  455. package/util/module.d.ts +0 -1
  456. package/util/module.js +0 -5
  457. package/util/process.d.ts +0 -2
  458. package/util/process.js +0 -3
  459. package/watcher.d.ts +0 -14
  460. package/watcher.js +0 -35
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
- }