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
@@ -1,583 +0,0 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- // Note: disabling ban-type rule so we don't get an error referencing the class Function
3
- import path from "path";
4
- import fs from "fs/promises";
5
- import zlib from "zlib";
6
- import { Stack } from "./Stack.js";
7
- import { Job } from "./Job.js";
8
- import { Secret } from "./Config.js";
9
- import { toCdkSize } from "./util/size.js";
10
- import { toCdkDuration } from "./util/duration.js";
11
- import { bindEnvironment, bindPermissions, getReferencedSecrets, } from "./util/functionBinding.js";
12
- import { attachPermissionsToRole } from "./util/permission.js";
13
- import * as functionUrlCors from "./util/functionUrlCors.js";
14
- import url from "url";
15
- import { useDeferredTasks } from "./deferred_task.js";
16
- import { useProject } from "../project.js";
17
- import { VisibleError } from "../error.js";
18
- import { useRuntimeHandlers } from "../runtime/handlers.js";
19
- import { createAppContext } from "./context.js";
20
- import { useWarning } from "./util/warning.js";
21
- import { Architecture, AssetCode, Code, Function as CDKFunction, FunctionUrlAuthType, Handler as CDKHandler, LayerVersion, Runtime as CDKRuntime, Tracing, } from "aws-cdk-lib/aws-lambda";
22
- import { RetentionDays } from "aws-cdk-lib/aws-logs";
23
- import { Token, Size as CDKSize, Duration as CDKDuration, IgnoreMode, } from "aws-cdk-lib/core";
24
- import { Effect, PolicyStatement } from "aws-cdk-lib/aws-iam";
25
- import { StringParameter } from "aws-cdk-lib/aws-ssm";
26
- import { Platform } from "aws-cdk-lib/aws-ecr-assets";
27
- import { useBootstrap } from "../bootstrap.js";
28
- import { Colors } from "../cli/colors.js";
29
- import { Asset } from "aws-cdk-lib/aws-s3-assets";
30
- const __dirname = url.fileURLToPath(new URL(".", import.meta.url));
31
- const supportedRuntimes = {
32
- container: CDKRuntime.FROM_IMAGE,
33
- rust: CDKRuntime.PROVIDED_AL2,
34
- "nodejs12.x": CDKRuntime.NODEJS_12_X,
35
- "nodejs14.x": CDKRuntime.NODEJS_14_X,
36
- "nodejs16.x": CDKRuntime.NODEJS_16_X,
37
- "nodejs18.x": CDKRuntime.NODEJS_18_X,
38
- "python3.7": CDKRuntime.PYTHON_3_7,
39
- "python3.8": CDKRuntime.PYTHON_3_8,
40
- "python3.9": CDKRuntime.PYTHON_3_9,
41
- "python3.10": CDKRuntime.PYTHON_3_10,
42
- "python3.11": CDKRuntime.PYTHON_3_11,
43
- "dotnetcore3.1": CDKRuntime.DOTNET_CORE_3_1,
44
- dotnet6: CDKRuntime.DOTNET_6,
45
- java8: CDKRuntime.JAVA_8,
46
- java11: CDKRuntime.JAVA_11,
47
- java17: CDKRuntime.JAVA_17,
48
- "go1.x": CDKRuntime.PROVIDED_AL2,
49
- go: CDKRuntime.PROVIDED_AL2,
50
- };
51
- /**
52
- * The `Function` construct is a higher level CDK construct that makes it easy to create a Lambda Function with support for Live Lambda Development.
53
- *
54
- * @example
55
- *
56
- * ```js
57
- * import { Function } from "sst/constructs";
58
- *
59
- * new Function(stack, "MySnsLambda", {
60
- * handler: "src/sns/index.main",
61
- * });
62
- * ```
63
- */
64
- export class Function extends CDKFunction {
65
- id;
66
- _isLiveDevEnabled;
67
- /** @internal */
68
- _doNotAllowOthersToBind;
69
- functionUrl;
70
- props;
71
- allBindings = [];
72
- constructor(scope, id, props) {
73
- const app = scope.node.root;
74
- const stack = Stack.of(scope);
75
- // Merge with app defaultFunctionProps
76
- // note: reverse order so later prop override earlier ones
77
- stack.defaultFunctionProps
78
- .slice()
79
- .reverse()
80
- .forEach((per) => {
81
- props = Function.mergeProps(per, props);
82
- });
83
- props.runtime = props.runtime || "nodejs16.x";
84
- if (props.runtime === "go1.x")
85
- useWarning().add("go.deprecated");
86
- // Set defaults
87
- const functionName = props.functionName &&
88
- (typeof props.functionName === "string"
89
- ? props.functionName
90
- : props.functionName({ stack, functionProps: props }));
91
- const timeout = Function.normalizeTimeout(props.timeout);
92
- const architecture = (() => {
93
- if (props.architecture === "arm_64")
94
- return Architecture.ARM_64;
95
- if (props.architecture === "x86_64")
96
- return Architecture.X86_64;
97
- return Architecture.X86_64;
98
- })();
99
- const memorySize = Function.normalizeMemorySize(props.memorySize);
100
- const diskSize = Function.normalizeDiskSize(props.diskSize);
101
- const tracing = Tracing[(props.tracing || "active").toUpperCase()];
102
- const logRetention = props.logRetention &&
103
- RetentionDays[props.logRetention.toUpperCase()];
104
- const isLiveDevEnabled = app.mode === "dev" && (props.enableLiveDev === false ? false : true);
105
- Function.validateHandlerSet(id, props);
106
- Function.validateVpcSettings(id, props);
107
- // Handle inactive stacks
108
- if (!stack.isActive) {
109
- // Note: need to override runtime as CDK does not support inline code
110
- // for some runtimes.
111
- super(scope, id, {
112
- ...props,
113
- architecture,
114
- code: Code.fromInline("export function placeholder() {}"),
115
- handler: "index.placeholder",
116
- functionName,
117
- runtime: CDKRuntime.NODEJS_16_X,
118
- memorySize,
119
- ephemeralStorageSize: diskSize,
120
- timeout,
121
- tracing,
122
- environment: props.environment,
123
- layers: Function.buildLayers(scope, id, props),
124
- logRetention,
125
- logRetentionRetryOptions: logRetention && { maxRetries: 100 },
126
- });
127
- }
128
- // Handle local development (ie. sst start)
129
- // - set runtime to nodejs12.x for non-Node runtimes (b/c the stub is in Node)
130
- // - set retry to 0. When the debugger is disconnected, the Cron construct
131
- // will still try to periodically invoke the Lambda, and the requests would
132
- // fail and retry. So when launching `sst start`, a couple of retry requests
133
- // from recent failed request will be received. And this behavior is confusing.
134
- else if (isLiveDevEnabled) {
135
- // If debugIncreaseTimeout is enabled:
136
- // set timeout to 900s. This will give people more time to debug the function
137
- // without timing out the request. Note API Gateway requests have a maximum
138
- // timeout of 29s. In this case, the API will timeout, but the Lambda function
139
- // will continue to run.
140
- let debugOverrideProps;
141
- if (app.debugIncreaseTimeout) {
142
- debugOverrideProps = {
143
- timeout: toCdkDuration("900 second"),
144
- };
145
- }
146
- super(scope, id, {
147
- ...props,
148
- ...(props.runtime === "container"
149
- ? {
150
- code: Code.fromAssetImage(path.resolve(__dirname, "../support/bridge"), {
151
- ...(architecture?.dockerPlatform
152
- ? { platform: Platform.custom(architecture.dockerPlatform) }
153
- : {}),
154
- }),
155
- handler: CDKHandler.FROM_IMAGE,
156
- runtime: CDKRuntime.FROM_IMAGE,
157
- layers: undefined,
158
- }
159
- : {
160
- runtime: CDKRuntime.NODEJS_18_X,
161
- code: Code.fromAsset(path.resolve(__dirname, "../support/bridge")),
162
- handler: "bridge.handler",
163
- layers: [],
164
- }),
165
- architecture,
166
- functionName,
167
- memorySize,
168
- ephemeralStorageSize: diskSize,
169
- timeout,
170
- tracing,
171
- environment: props.environment,
172
- logRetention,
173
- logRetentionRetryOptions: logRetention && { maxRetries: 100 },
174
- retryAttempts: 0,
175
- ...(debugOverrideProps || {}),
176
- });
177
- this.addEnvironment("SST_FUNCTION_ID", this.node.addr);
178
- useDeferredTasks().add(async () => {
179
- if (app.isRunningSSTTest())
180
- return;
181
- const bootstrap = await useBootstrap();
182
- const bootstrapBucketArn = `arn:${Stack.of(this).partition}:s3:::${bootstrap.bucket}`;
183
- this.attachPermissions([
184
- new PolicyStatement({
185
- actions: ["iot:*"],
186
- effect: Effect.ALLOW,
187
- resources: ["*"],
188
- }),
189
- new PolicyStatement({
190
- actions: ["s3:*"],
191
- effect: Effect.ALLOW,
192
- resources: [bootstrapBucketArn, `${bootstrapBucketArn}/*`],
193
- }),
194
- ]);
195
- });
196
- }
197
- // Handle build
198
- else {
199
- super(scope, id, {
200
- ...props,
201
- ...(props.runtime === "container"
202
- ? {
203
- code: Code.fromAssetImage(props.handler, {
204
- ...(architecture?.dockerPlatform
205
- ? { platform: Platform.custom(architecture.dockerPlatform) }
206
- : {}),
207
- ...(props.container?.cmd ? { cmd: props.container.cmd } : {}),
208
- ...(props.container?.file
209
- ? { file: props.container.file }
210
- : {}),
211
- ...(props.container?.buildArgs
212
- ? { buildArgs: props.container.buildArgs }
213
- : {}),
214
- exclude: [".sst"],
215
- ignoreMode: IgnoreMode.GLOB,
216
- }),
217
- handler: CDKHandler.FROM_IMAGE,
218
- runtime: CDKRuntime.FROM_IMAGE,
219
- layers: undefined,
220
- }
221
- : {
222
- code: Code.fromInline("export function placeholder() {}"),
223
- handler: "index.placeholder",
224
- runtime: CDKRuntime.NODEJS_16_X,
225
- layers: Function.buildLayers(scope, id, props),
226
- }),
227
- architecture,
228
- functionName,
229
- memorySize,
230
- ephemeralStorageSize: diskSize,
231
- timeout,
232
- tracing,
233
- environment: props.environment,
234
- logRetention,
235
- logRetentionRetryOptions: logRetention && { maxRetries: 100 },
236
- });
237
- useDeferredTasks().add(async () => {
238
- if (props.runtime === "container")
239
- Colors.line(`➜ Building the container image for the "${this.node.id}" function...`);
240
- const project = useProject();
241
- // Build function
242
- const result = await useRuntimeHandlers().build(this.node.addr, "deploy");
243
- if (result.type === "error") {
244
- throw new VisibleError([
245
- `Failed to build function "${props.handler}"`,
246
- ...result.errors,
247
- ].join("\n"));
248
- }
249
- // No need to update code if runtime is container
250
- if (props.runtime === "container")
251
- return;
252
- if (result.sourcemap) {
253
- const data = await fs.readFile(result.sourcemap);
254
- await fs.writeFile(result.sourcemap, zlib.gzipSync(data));
255
- const asset = new Asset(this, this.id + "-Sourcemap", {
256
- path: result.sourcemap,
257
- });
258
- await fs.rm(result.sourcemap);
259
- useFunctions().sourcemaps.add(stack.stackName, {
260
- bucket: asset.bucket,
261
- key: asset.s3ObjectKey,
262
- func: this,
263
- });
264
- }
265
- // Update code
266
- const cfnFunction = this.node.defaultChild;
267
- const code = AssetCode.fromAsset(result.out);
268
- const codeConfig = code.bind(this);
269
- cfnFunction.code = {
270
- s3Bucket: codeConfig.s3Location?.bucketName,
271
- s3Key: codeConfig.s3Location?.objectKey,
272
- s3ObjectVersion: codeConfig.s3Location?.objectVersion,
273
- };
274
- cfnFunction.handler = result.handler;
275
- code.bindToResource(cfnFunction);
276
- // Update runtime
277
- // @ts-ignore - override "runtime" private property
278
- this.runtime =
279
- supportedRuntimes[props.runtime];
280
- cfnFunction.runtime = this.runtime.toString();
281
- if (props.runtime?.startsWith("java") &&
282
- props.java?.experimentalUseProvidedRuntime) {
283
- cfnFunction.runtime = props.java?.experimentalUseProvidedRuntime;
284
- }
285
- });
286
- }
287
- this.id = id;
288
- this.props = props || {};
289
- if (this.isNodeRuntime()) {
290
- // Enable reusing connections with Keep-Alive for NodeJs
291
- // Lambda function
292
- this.addEnvironment("AWS_NODEJS_CONNECTION_REUSE_ENABLED", "1", {
293
- removeInEdge: true,
294
- });
295
- }
296
- // Attach permissions
297
- this.attachPermissions(props.permissions || []);
298
- // Add config
299
- this.addEnvironment("SST_APP", app.name, { removeInEdge: true });
300
- this.addEnvironment("SST_STAGE", app.stage, { removeInEdge: true });
301
- this.addEnvironment("SST_SSM_PREFIX", useProject().config.ssmPrefix, {
302
- removeInEdge: true,
303
- });
304
- this.bind(props.bind || []);
305
- this.createUrl();
306
- this._isLiveDevEnabled = isLiveDevEnabled;
307
- useFunctions().add(this.node.addr, props);
308
- }
309
- /**
310
- * The AWS generated URL of the Function.
311
- */
312
- get url() {
313
- return this.functionUrl?.url;
314
- }
315
- /**
316
- * Binds additional resources to function.
317
- *
318
- * @example
319
- * ```js
320
- * fn.bind([STRIPE_KEY, bucket]);
321
- * ```
322
- */
323
- bind(constructs) {
324
- // Get referenced secrets
325
- const referencedSecrets = [];
326
- constructs.forEach((c) => referencedSecrets.push(...getReferencedSecrets(c)));
327
- [...constructs, ...referencedSecrets].forEach((c) => {
328
- // Bind environment
329
- const env = bindEnvironment(c);
330
- Object.entries(env).forEach(([key, value]) => this.addEnvironment(key, value));
331
- // Bind permissions
332
- const permissions = bindPermissions(c);
333
- Object.entries(permissions).forEach(([action, resources]) => this.attachPermissions([
334
- new PolicyStatement({
335
- actions: [action],
336
- effect: Effect.ALLOW,
337
- resources,
338
- }),
339
- ]));
340
- });
341
- this.allBindings.push(...constructs, ...referencedSecrets);
342
- }
343
- /**
344
- * Attaches additional permissions to function.
345
- *
346
- * @example
347
- * ```js {20}
348
- * fn.attachPermissions(["s3"]);
349
- * ```
350
- */
351
- attachPermissions(permissions) {
352
- // Grant IAM permissions
353
- if (this.role) {
354
- attachPermissionsToRole(this.role, permissions);
355
- }
356
- // Add config
357
- if (permissions !== "*") {
358
- permissions
359
- .filter((p) => p instanceof Job)
360
- .forEach((p) => this.bind([p]));
361
- }
362
- }
363
- /** @internal */
364
- getConstructMetadata() {
365
- return {
366
- type: "Function",
367
- data: {
368
- arn: this.functionArn,
369
- runtime: this.props.runtime,
370
- handler: this.props.handler,
371
- localId: this.node.addr,
372
- secrets: this.allBindings
373
- .filter((c) => c instanceof Secret)
374
- .map((c) => c.name),
375
- },
376
- };
377
- }
378
- /** @internal */
379
- getFunctionBinding() {
380
- return {
381
- clientPackage: "function",
382
- variables: {
383
- functionName: {
384
- type: "plain",
385
- value: this.functionName,
386
- },
387
- },
388
- permissions: {
389
- "lambda:*": [this.functionArn],
390
- },
391
- };
392
- }
393
- createUrl() {
394
- const { url } = this.props;
395
- if (url === false || url === undefined) {
396
- return;
397
- }
398
- let authType;
399
- let cors;
400
- if (url === true) {
401
- authType = FunctionUrlAuthType.NONE;
402
- cors = true;
403
- }
404
- else {
405
- authType =
406
- url.authorizer === "iam"
407
- ? FunctionUrlAuthType.AWS_IAM
408
- : FunctionUrlAuthType.NONE;
409
- cors = url.cors === undefined ? true : url.cors;
410
- }
411
- this.functionUrl = this.addFunctionUrl({
412
- authType,
413
- cors: functionUrlCors.buildCorsConfig(cors),
414
- });
415
- }
416
- isNodeRuntime() {
417
- const { runtime } = this.props;
418
- return runtime.startsWith("nodejs");
419
- }
420
- static validateHandlerSet(id, props) {
421
- if (!props.handler) {
422
- throw new Error(`No handler defined for the "${id}" Lambda function`);
423
- }
424
- }
425
- static validateVpcSettings(id, props) {
426
- if (props.securityGroups && !props.vpc) {
427
- throw new Error(`Cannot configure "securityGroups" without "vpc" for the "${id}" Lambda function.`);
428
- }
429
- }
430
- static buildLayers(scope, id, props) {
431
- return (props.layers || []).map((layer) => {
432
- if (typeof layer === "string") {
433
- return LayerVersion.fromLayerVersionArn(scope, `${id}${layer}`, layer);
434
- }
435
- return Function.handleImportedLayer(scope, layer);
436
- });
437
- }
438
- static normalizeMemorySize(memorySize) {
439
- if (typeof memorySize === "string") {
440
- return toCdkSize(memorySize).toMebibytes();
441
- }
442
- return memorySize || 1024;
443
- }
444
- static normalizeDiskSize(diskSize) {
445
- if (typeof diskSize === "string") {
446
- return toCdkSize(diskSize);
447
- }
448
- return CDKSize.mebibytes(diskSize || 512);
449
- }
450
- static normalizeTimeout(timeout) {
451
- if (typeof timeout === "string") {
452
- return toCdkDuration(timeout);
453
- }
454
- return CDKDuration.seconds(timeout || 10);
455
- }
456
- static handleImportedLayer(scope, layer) {
457
- const layerStack = Stack.of(layer);
458
- const currentStack = Stack.of(scope);
459
- // Use layer directly if:
460
- // - layer is created in the current stack; OR
461
- // - layer is imported (ie. layerArn is a string)
462
- if (layerStack === currentStack ||
463
- !Token.isUnresolved(layer.layerVersionArn)) {
464
- return layer;
465
- }
466
- // layer is created from another stack
467
- else {
468
- // set stack dependency b/c layerStack need to create the SSM first
469
- currentStack.addDependency(layerStack);
470
- // store layer ARN in SSM in layer's stack
471
- const parameterId = `${layer.node.id}Arn-${layer.node.addr}`;
472
- const parameterName = `/layers/${layerStack.node.id}/${parameterId}`;
473
- const existingSsmParam = layerStack.node.tryFindChild(parameterId);
474
- if (!existingSsmParam) {
475
- new StringParameter(layerStack, parameterId, {
476
- parameterName,
477
- stringValue: layer.layerVersionArn,
478
- });
479
- }
480
- // import layer from SSM value
481
- const layerId = `I${layer.node.id}-${layer.node.addr}`;
482
- const existingLayer = scope.node.tryFindChild(layerId);
483
- if (existingLayer) {
484
- return existingLayer;
485
- }
486
- else {
487
- return LayerVersion.fromLayerVersionArn(scope, layerId, StringParameter.valueForStringParameter(scope, parameterName));
488
- }
489
- }
490
- }
491
- static isInlineDefinition(definition) {
492
- return typeof definition === "string" || definition instanceof Function;
493
- }
494
- static fromDefinition(scope, id, definition, inheritedProps, inheritErrorMessage) {
495
- if (typeof definition === "string") {
496
- const fn = new Function(scope, id, {
497
- ...(inheritedProps || {}),
498
- handler: definition,
499
- });
500
- fn._doNotAllowOthersToBind = true;
501
- return fn;
502
- }
503
- else if (definition instanceof Function) {
504
- if (inheritedProps && Object.keys(inheritedProps).length > 0) {
505
- throw new Error(inheritErrorMessage ||
506
- `Cannot inherit default props when a Function is provided`);
507
- }
508
- return definition;
509
- }
510
- else if (definition instanceof CDKFunction) {
511
- throw new Error(`Please use sst.Function instead of lambda.Function for the "${id}" Function.`);
512
- }
513
- else if (definition.handler !== undefined) {
514
- const fn = new Function(scope, id, Function.mergeProps(inheritedProps, definition));
515
- fn._doNotAllowOthersToBind = true;
516
- return fn;
517
- }
518
- throw new Error(`Invalid function definition for the "${id}" Function`);
519
- }
520
- static mergeProps(baseProps, props) {
521
- // Merge environment
522
- const environment = {
523
- ...(baseProps?.environment || {}),
524
- ...(props?.environment || {}),
525
- };
526
- const environmentProp = Object.keys(environment).length === 0 ? {} : { environment };
527
- // Merge layers
528
- const layers = [...(baseProps?.layers || []), ...(props?.layers || [])];
529
- const layersProp = layers.length === 0 ? {} : { layers };
530
- // Merge bind
531
- const bind = [...(baseProps?.bind || []), ...(props?.bind || [])];
532
- const bindProp = bind.length === 0 ? {} : { bind };
533
- // Merge permissions
534
- let permissionsProp;
535
- if (baseProps?.permissions === "*") {
536
- permissionsProp = { permissions: baseProps.permissions };
537
- }
538
- else if (props?.permissions === "*") {
539
- permissionsProp = { permissions: props.permissions };
540
- }
541
- else {
542
- const permissions = (baseProps?.permissions || []).concat(props?.permissions || []);
543
- permissionsProp = permissions.length === 0 ? {} : { permissions };
544
- }
545
- return {
546
- ...(baseProps || {}),
547
- ...(props || {}),
548
- ...bindProp,
549
- ...layersProp,
550
- ...environmentProp,
551
- ...permissionsProp,
552
- };
553
- }
554
- }
555
- export const useFunctions = createAppContext(() => {
556
- const functions = {};
557
- const sourcemaps = {};
558
- return {
559
- sourcemaps: {
560
- add(stack, source) {
561
- let arr = sourcemaps[stack];
562
- if (!arr)
563
- sourcemaps[stack] = arr = [];
564
- arr.push(source);
565
- },
566
- forStack(stack) {
567
- return sourcemaps[stack] || [];
568
- },
569
- },
570
- fromID(id) {
571
- const result = functions[id];
572
- if (!result)
573
- return;
574
- return result;
575
- },
576
- add(name, props) {
577
- functions[name] = props;
578
- },
579
- get all() {
580
- return functions;
581
- },
582
- };
583
- });
@@ -1,13 +0,0 @@
1
- import { App } from "./App.js";
2
- import { Stack, StackProps } from "./Stack.js";
3
- export declare function stack(app: App, fn: FunctionalStack<any>, props?: StackProps & {
4
- id?: string;
5
- }): any;
6
- export declare function use<T>(stack: FunctionalStack<T>): T;
7
- export declare function dependsOn(stack: FunctionalStack<any>): void;
8
- export declare function getStack(stack: FunctionalStack<any>): Stack;
9
- export type StackContext = {
10
- app: App;
11
- stack: Stack;
12
- };
13
- export type FunctionalStack<T> = (this: Stack, ctx: StackContext) => T | Promise<T>;
@@ -1,62 +0,0 @@
1
- import { Stack } from "./Stack.js";
2
- export function stack(app, fn, props) {
3
- currentApp = app;
4
- currentStack = fn;
5
- const id = props?.id || fn.name;
6
- const exists = getExports(app).has(fn);
7
- if (exists)
8
- throw new Error(`StackDuplicates: Attempting to initialize stack ${id} several times`);
9
- class EmptyStack extends Stack {
10
- constructor(scope, id, props) {
11
- super(scope, id, props);
12
- }
13
- }
14
- const stack = new EmptyStack(app, id, props);
15
- getStacks(app).set(fn, stack);
16
- const ctx = {
17
- app,
18
- stack,
19
- };
20
- const returns = fn.bind(stack)(ctx);
21
- if (returns && "then" in returns)
22
- return returns.then((data) => {
23
- getExports(app).set(fn, data);
24
- });
25
- getExports(app).set(fn, returns);
26
- return app;
27
- }
28
- let currentApp;
29
- let currentStack;
30
- const exportsCache = new Map();
31
- const stackCache = new Map();
32
- function getExports(app) {
33
- if (!exportsCache.has(app))
34
- exportsCache.set(app, new Map());
35
- return exportsCache.get(app);
36
- }
37
- function getStacks(app) {
38
- if (!stackCache.has(app))
39
- stackCache.set(app, new Map());
40
- return stackCache.get(app);
41
- }
42
- export function use(stack) {
43
- if (!currentApp)
44
- throw new Error("No app is set");
45
- const exports = getExports(currentApp);
46
- if (!exports.has(stack))
47
- throw new Error(`StackWrongOrder: Initialize "${stack.name}" stack before "${currentStack?.name}" stack`);
48
- return exports.get(stack);
49
- }
50
- export function dependsOn(stack) {
51
- const current = getStack(currentStack);
52
- const target = getStack(stack);
53
- current.addDependency(target);
54
- }
55
- export function getStack(stack) {
56
- if (!currentApp)
57
- throw new Error("No app is set");
58
- const stacks = getStacks(currentApp);
59
- if (!stacks.has(stack))
60
- throw new Error(`StackWrongOrder: Initialize "${stack.name}" stack before "${currentStack?.name}" stack`);
61
- return stacks.get(stack);
62
- }