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,168 +0,0 @@
1
- import { Stack } from "./Stack.js";
2
- import { SSTConstruct } from "./Construct.js";
3
- import { FunctionProps } from "./Function.js";
4
- import { Permissions } from "./util/permission.js";
5
- import { StackProps } from "./Stack.js";
6
- import { FunctionalStack } from "./FunctionalStack.js";
7
- import { AppProps as CDKAppProps, App as CDKApp, Stack as CDKStack, RemovalPolicy } from "aws-cdk-lib/core";
8
- import { ILayerVersion } from "aws-cdk-lib/aws-lambda";
9
- /**
10
- * @internal
11
- */
12
- export interface AppDeployProps {
13
- /**
14
- * The app name, used to prefix stacks.
15
- *
16
- * @default - Defaults to empty string
17
- */
18
- readonly name?: string;
19
- /**
20
- * The stage to deploy this app to.
21
- *
22
- * @default - Defaults to dev
23
- */
24
- readonly stage?: string;
25
- /**
26
- * The region to deploy this app to.
27
- *
28
- * @default - Defaults to us-east-1
29
- */
30
- readonly region?: string;
31
- readonly buildDir?: string;
32
- readonly account?: string;
33
- readonly debugScriptVersion?: string;
34
- readonly debugIncreaseTimeout?: boolean;
35
- readonly mode: "deploy" | "dev" | "remove";
36
- readonly isActiveStack?: (stackName: string) => boolean;
37
- }
38
- type AppRemovalPolicy = Lowercase<RemovalPolicy>;
39
- export type AppProps = CDKAppProps;
40
- /**
41
- * The App construct extends cdk.App and is used internally by SST.
42
- */
43
- export declare class App extends CDKApp {
44
- /**
45
- * Whether or not the app is running locally under `sst dev`
46
- */
47
- readonly local: boolean;
48
- /**
49
- * Whether the app is running locally under start, deploy or remove
50
- */
51
- readonly mode: AppDeployProps["mode"];
52
- /**
53
- * The name of your app, comes from the `name` in your `sst.config.ts`
54
- */
55
- readonly name: string;
56
- /**
57
- * The stage the app is being deployed to. If this is not specified as the --stage option, it'll default to the stage configured during the initial run of the SST CLI.
58
- */
59
- readonly stage: string;
60
- /**
61
- * The region the app is being deployed to. If this is not specified as the --region option in the SST CLI, it'll default to the region in your sst.config.ts.
62
- */
63
- readonly region: string;
64
- /**
65
- * The AWS account the app is being deployed to. This comes from the IAM credentials being used to run the SST CLI.
66
- */
67
- readonly account: string;
68
- /** @internal */
69
- readonly debugScriptVersion?: string;
70
- /** @internal */
71
- readonly debugIncreaseTimeout?: boolean;
72
- /** @internal */
73
- readonly appPath: string;
74
- /** @internal */
75
- readonly isActiveStack?: (stackName: string) => boolean;
76
- /** @internal */
77
- defaultFunctionProps: (FunctionProps | ((stack: Stack) => FunctionProps))[];
78
- private _defaultRemovalPolicy?;
79
- /** @internal */
80
- get defaultRemovalPolicy(): "destroy" | "retain" | "snapshot" | "retain-on-update-or-delete" | undefined;
81
- /**
82
- * @internal
83
- */
84
- constructor(deployProps: AppDeployProps, props?: AppProps);
85
- /**
86
- * Use this method to prefix resource names in your stacks to make sure they don't thrash when deployed to different stages in the same AWS account. This method will prefix a given resource name with the stage and app name. Using the format `${stage}-${name}-${logicalName}`.
87
- * @example
88
- * ```js
89
- * console.log(app.logicalPrefixedName("myTopic"));
90
- *
91
- * // dev-my-app-myTopic
92
- * ```
93
- */
94
- logicalPrefixedName(logicalName: string): string;
95
- /**
96
- * The default removal policy that'll be applied to all the resources in the app. This can be useful to set ephemeral (dev or feature branch) environments to remove all the resources on deletion.
97
- * :::danger
98
- * Make sure to not set the default removal policy to `DESTROY` for production environments.
99
- * :::
100
- * @example
101
- * ```js
102
- * app.setDefaultRemovalPolicy(app.mode === "dev" ? "destroy" : "retain")
103
- * ```
104
- */
105
- setDefaultRemovalPolicy(policy: AppRemovalPolicy): void;
106
- /**
107
- * The default function props to be applied to all the Lambda functions in the app. These default values will be overridden if a Function sets its own props.
108
- * This needs to be called before a stack with any functions have been added to the app.
109
- *
110
- * @example
111
- * ```js
112
- * app.setDefaultFunctionProps({
113
- * runtime: "nodejs12.x",
114
- * timeout: 30
115
- * })
116
- * ```
117
- */
118
- setDefaultFunctionProps(props: FunctionProps | ((stack: CDKStack) => FunctionProps)): void;
119
- /**
120
- * Adds additional default Permissions to be applied to all Lambda functions in the app.
121
- *
122
- * @example
123
- * ```js
124
- * app.addDefaultFunctionPermissions(["s3"])
125
- * ```
126
- */
127
- addDefaultFunctionPermissions(permissions: Permissions): void;
128
- /**
129
- * Adds additional default environment variables to be applied to all Lambda functions in the app.
130
- *
131
- * @example
132
- * ```js
133
- * app.addDefaultFunctionEnv({
134
- * "MY_ENV_VAR": "my-value"
135
- * })
136
- * ```
137
- */
138
- addDefaultFunctionEnv(environment: Record<string, string>): void;
139
- /**
140
- * Binds additional default resources to be applied to all Lambda functions in the app.
141
- *
142
- * @example
143
- * ```js
144
- * app.addDefaultFunctionBinding([STRIPE_KEY, bucket]);
145
- * ```
146
- */
147
- addDefaultFunctionBinding(bind: SSTConstruct[]): void;
148
- /**
149
- * Adds additional default layers to be applied to all Lambda functions in the stack.
150
- */
151
- addDefaultFunctionLayers(layers: ILayerVersion[]): void;
152
- private isFinished;
153
- finish(): Promise<void>;
154
- isRunningSSTTest(): boolean;
155
- getInputFilesFromEsbuildMetafile(file: string): Array<string>;
156
- private createBindingSsmParameters;
157
- private buildConstructsMetadata;
158
- private buildConstructsMetadata_collectConstructs;
159
- private applyRemovalPolicy;
160
- private removeGovCloudUnsupportedResourceProperties;
161
- private ensureUniqueConstructIds;
162
- codegenTypes(): void;
163
- private foreachConstruct;
164
- stack<T extends FunctionalStack<any>>(fn: T, props?: StackProps & {
165
- id?: string;
166
- }): ReturnType<T> extends Promise<any> ? Promise<void> : App;
167
- }
168
- export {};
package/constructs/App.js DELETED
@@ -1,493 +0,0 @@
1
- import path from "path";
2
- import fs from "fs";
3
- import { Stack } from "./Stack.js";
4
- import { isSSTConstruct, isStackConstruct, } from "./Construct.js";
5
- import { useFunctions } from "./Function.js";
6
- import { bindParameters, bindType } from "./util/functionBinding.js";
7
- import { stack } from "./FunctionalStack.js";
8
- import { Auth } from "./Auth.js";
9
- import { useDeferredTasks } from "./deferred_task.js";
10
- import { provideApp } from "./context.js";
11
- import { useProject } from "../project.js";
12
- import { VisibleError } from "../error.js";
13
- import { Logger } from "../logger.js";
14
- import { App as CDKApp, Tags, CfnResource, RemovalPolicy, CustomResource, Aspects, } from "aws-cdk-lib/core";
15
- import { CfnFunction } from "aws-cdk-lib/aws-lambda";
16
- import { Bucket } from "aws-cdk-lib/aws-s3";
17
- import { Effect, Policy, PolicyStatement } from "aws-cdk-lib/aws-iam";
18
- import { CfnLogGroup } from "aws-cdk-lib/aws-logs";
19
- import { useBootstrap } from "../bootstrap.js";
20
- import { useWarning } from "./util/warning.js";
21
- /**
22
- * The App construct extends cdk.App and is used internally by SST.
23
- */
24
- export class App extends CDKApp {
25
- /**
26
- * Whether or not the app is running locally under `sst dev`
27
- */
28
- local = false;
29
- /**
30
- * Whether the app is running locally under start, deploy or remove
31
- */
32
- mode;
33
- /**
34
- * The name of your app, comes from the `name` in your `sst.config.ts`
35
- */
36
- name;
37
- /**
38
- * The stage the app is being deployed to. If this is not specified as the --stage option, it'll default to the stage configured during the initial run of the SST CLI.
39
- */
40
- stage;
41
- /**
42
- * The region the app is being deployed to. If this is not specified as the --region option in the SST CLI, it'll default to the region in your sst.config.ts.
43
- */
44
- region;
45
- /**
46
- * The AWS account the app is being deployed to. This comes from the IAM credentials being used to run the SST CLI.
47
- */
48
- account;
49
- /** @internal */
50
- debugScriptVersion;
51
- /** @internal */
52
- debugIncreaseTimeout;
53
- /** @internal */
54
- appPath;
55
- /** @internal */
56
- isActiveStack;
57
- /** @internal */
58
- defaultFunctionProps;
59
- _defaultRemovalPolicy;
60
- /** @internal */
61
- get defaultRemovalPolicy() {
62
- return this._defaultRemovalPolicy;
63
- }
64
- /**
65
- * @internal
66
- */
67
- constructor(deployProps, props = {}) {
68
- super(props);
69
- provideApp(this);
70
- this.appPath = process.cwd();
71
- this.mode = deployProps.mode;
72
- this.local = this.mode === "dev";
73
- this.stage = deployProps.stage || "dev";
74
- this.name = deployProps.name || "my-app";
75
- this.region =
76
- deployProps.region || process.env.CDK_DEFAULT_REGION || "us-east-1";
77
- this.account =
78
- deployProps.account || process.env.CDK_DEFAULT_ACCOUNT || "my-account";
79
- this.isActiveStack = deployProps.isActiveStack;
80
- this.defaultFunctionProps = [];
81
- if (this.mode === "dev") {
82
- this.debugScriptVersion = deployProps.debugScriptVersion;
83
- this.debugIncreaseTimeout = deployProps.debugIncreaseTimeout;
84
- }
85
- }
86
- /**
87
- * Use this method to prefix resource names in your stacks to make sure they don't thrash when deployed to different stages in the same AWS account. This method will prefix a given resource name with the stage and app name. Using the format `${stage}-${name}-${logicalName}`.
88
- * @example
89
- * ```js
90
- * console.log(app.logicalPrefixedName("myTopic"));
91
- *
92
- * // dev-my-app-myTopic
93
- * ```
94
- */
95
- logicalPrefixedName(logicalName) {
96
- const namePrefix = this.name === "" ? "" : `${this.name}-`;
97
- return `${this.stage}-${namePrefix}${logicalName}`;
98
- }
99
- /**
100
- * The default removal policy that'll be applied to all the resources in the app. This can be useful to set ephemeral (dev or feature branch) environments to remove all the resources on deletion.
101
- * :::danger
102
- * Make sure to not set the default removal policy to `DESTROY` for production environments.
103
- * :::
104
- * @example
105
- * ```js
106
- * app.setDefaultRemovalPolicy(app.mode === "dev" ? "destroy" : "retain")
107
- * ```
108
- */
109
- setDefaultRemovalPolicy(policy) {
110
- this._defaultRemovalPolicy = policy;
111
- }
112
- /**
113
- * The default function props to be applied to all the Lambda functions in the app. These default values will be overridden if a Function sets its own props.
114
- * This needs to be called before a stack with any functions have been added to the app.
115
- *
116
- * @example
117
- * ```js
118
- * app.setDefaultFunctionProps({
119
- * runtime: "nodejs12.x",
120
- * timeout: 30
121
- * })
122
- * ```
123
- */
124
- setDefaultFunctionProps(props) {
125
- this.defaultFunctionProps.push(props);
126
- }
127
- /**
128
- * Adds additional default Permissions to be applied to all Lambda functions in the app.
129
- *
130
- * @example
131
- * ```js
132
- * app.addDefaultFunctionPermissions(["s3"])
133
- * ```
134
- */
135
- addDefaultFunctionPermissions(permissions) {
136
- this.defaultFunctionProps.push({
137
- permissions,
138
- });
139
- }
140
- /**
141
- * Adds additional default environment variables to be applied to all Lambda functions in the app.
142
- *
143
- * @example
144
- * ```js
145
- * app.addDefaultFunctionEnv({
146
- * "MY_ENV_VAR": "my-value"
147
- * })
148
- * ```
149
- */
150
- addDefaultFunctionEnv(environment) {
151
- this.defaultFunctionProps.push({
152
- environment,
153
- });
154
- }
155
- /**
156
- * Binds additional default resources to be applied to all Lambda functions in the app.
157
- *
158
- * @example
159
- * ```js
160
- * app.addDefaultFunctionBinding([STRIPE_KEY, bucket]);
161
- * ```
162
- */
163
- addDefaultFunctionBinding(bind) {
164
- this.defaultFunctionProps.push({ bind });
165
- }
166
- /**
167
- * Adds additional default layers to be applied to all Lambda functions in the stack.
168
- */
169
- addDefaultFunctionLayers(layers) {
170
- this.defaultFunctionProps.push({
171
- layers,
172
- });
173
- }
174
- isFinished = false;
175
- async finish() {
176
- if (this.isFinished)
177
- return;
178
- this.isFinished = true;
179
- const { config, paths } = useProject();
180
- Auth.injectConfig();
181
- this.buildConstructsMetadata();
182
- this.ensureUniqueConstructIds();
183
- this.codegenTypes();
184
- // Run deferred tasks
185
- // - after codegen b/c some frontend frameworks (ie. Next.js apps) runs
186
- // type checking in the build step
187
- // - before remove govcloud unsupported resource properties b/c deferred
188
- // tasks may add govcloud unsupported resource properties
189
- await useDeferredTasks().run();
190
- this.createBindingSsmParameters();
191
- this.removeGovCloudUnsupportedResourceProperties();
192
- useWarning().print();
193
- for (const child of this.node.children) {
194
- if (isStackConstruct(child)) {
195
- // Tag stacks
196
- Tags.of(child).add("sst:app", this.name);
197
- Tags.of(child).add("sst:stage", this.stage);
198
- if (child instanceof Stack && !this.isRunningSSTTest()) {
199
- const bootstrap = await useBootstrap();
200
- const functions = useFunctions();
201
- const sourcemaps = functions.sourcemaps.forStack(child.stackName);
202
- if (sourcemaps.length) {
203
- const policy = new Policy(child, "FunctionSourcemapUploaderPolicy", {
204
- statements: [
205
- new PolicyStatement({
206
- effect: Effect.ALLOW,
207
- actions: ["s3:GetObject", "s3:PutObject"],
208
- resources: [
209
- sourcemaps[0].bucket.bucketArn + "/*",
210
- `arn:${child.partition}:s3:::${bootstrap.bucket}/*`,
211
- ],
212
- }),
213
- ],
214
- });
215
- child.customResourceHandler.role?.attachInlinePolicy(policy);
216
- const resource = new CustomResource(child, "FunctionSourcemapUploader", {
217
- serviceToken: child.customResourceHandler.functionArn,
218
- resourceType: "Custom::FunctionSourcemapUploader",
219
- properties: {
220
- app: this.name,
221
- stage: this.stage,
222
- bootstrap: bootstrap.bucket,
223
- bucket: sourcemaps[0].bucket.bucketName,
224
- functions: sourcemaps.map((s) => [s.func.functionArn, s.key]),
225
- },
226
- });
227
- resource.node.addDependency(policy);
228
- }
229
- }
230
- // Set removal policy
231
- this.applyRemovalPolicy(child);
232
- // Stack names need to be parameterized with the stage name
233
- if (config.advanced?.disableParameterizedStackNameCheck !== true &&
234
- !child.stackName.startsWith(`${this.stage}-`) &&
235
- !child.stackName.endsWith(`-${this.stage}`) &&
236
- child.stackName.indexOf(`-${this.stage}-`) === -1) {
237
- throw new Error(`Stack "${child.stackName}" is not parameterized with the stage name. The stack name needs to either start with "$stage-", end in "-$stage", or contain the stage name "-$stage-".`);
238
- }
239
- }
240
- }
241
- }
242
- isRunningSSTTest() {
243
- return process.env.NODE_ENV === "test";
244
- }
245
- getInputFilesFromEsbuildMetafile(file) {
246
- let metaJson;
247
- try {
248
- metaJson = JSON.parse(fs.readFileSync(file).toString());
249
- }
250
- catch (e) {
251
- throw new VisibleError("There was a problem reading the esbuild metafile.");
252
- }
253
- return Object.keys(metaJson.inputs).map((input) => path.resolve(input));
254
- }
255
- createBindingSsmParameters() {
256
- class CreateSsmParameters {
257
- visit(c) {
258
- if (!isSSTConstruct(c)) {
259
- return;
260
- }
261
- if ("_doNotAllowOthersToBind" in c && c._doNotAllowOthersToBind) {
262
- return;
263
- }
264
- bindParameters(c);
265
- }
266
- }
267
- Aspects.of(this).add(new CreateSsmParameters());
268
- }
269
- buildConstructsMetadata() {
270
- const constructs = this.buildConstructsMetadata_collectConstructs(this);
271
- const byStack = {};
272
- const local = [];
273
- for (const c of constructs) {
274
- const stack = Stack.of(c);
275
- const list = byStack[stack.node.id] || [];
276
- const metadata = c.getConstructMetadata();
277
- const item = {
278
- id: c.node.id,
279
- addr: c.node.addr,
280
- stack: Stack.of(c).stackName,
281
- ...metadata,
282
- };
283
- local.push(item);
284
- list.push({
285
- ...item,
286
- local: undefined,
287
- });
288
- byStack[stack.node.id] = list;
289
- }
290
- // Register constructs
291
- for (const child of this.node.children) {
292
- if (child instanceof Stack) {
293
- const stackName = child.node.id;
294
- child.addOutputs({
295
- SSTMetadata: JSON.stringify({
296
- app: this.name,
297
- stage: this.stage,
298
- version: useProject().version,
299
- metadata: byStack[stackName] || [],
300
- }),
301
- });
302
- }
303
- }
304
- }
305
- buildConstructsMetadata_collectConstructs(construct) {
306
- return [
307
- isSSTConstruct(construct) ? construct : undefined,
308
- ...construct.node.children.flatMap((c) => this.buildConstructsMetadata_collectConstructs(c)),
309
- ].filter((c) => Boolean(c));
310
- }
311
- applyRemovalPolicy(current) {
312
- if (!this._defaultRemovalPolicy)
313
- return;
314
- // Apply removal policy to all resources
315
- if (current instanceof CfnResource) {
316
- current.applyRemovalPolicy(RemovalPolicy[this._defaultRemovalPolicy.toUpperCase()]);
317
- }
318
- // Remove S3 objects on destroy
319
- if (this._defaultRemovalPolicy === "destroy" &&
320
- current instanceof Bucket &&
321
- !current.node.tryFindChild("AutoDeleteObjectsCustomResource")) {
322
- // Calling a private method here. It's the easiest way to lazily
323
- // enable auto-delete.
324
- // @ts-expect-error
325
- current.enableAutoDeleteObjects();
326
- }
327
- current.node.children.forEach((resource) => this.applyRemovalPolicy(resource));
328
- }
329
- removeGovCloudUnsupportedResourceProperties() {
330
- if (!this.region.startsWith("us-gov-")) {
331
- return;
332
- }
333
- class RemoveGovCloudUnsupportedResourceProperties {
334
- visit(node) {
335
- if (node instanceof CfnFunction) {
336
- node.addPropertyDeletionOverride("EphemeralStorage");
337
- }
338
- else if (node instanceof CfnLogGroup) {
339
- node.addPropertyDeletionOverride("Tags");
340
- }
341
- }
342
- }
343
- Aspects.of(this).add(new RemoveGovCloudUnsupportedResourceProperties());
344
- }
345
- ensureUniqueConstructIds() {
346
- // "ids" has the shape of:
347
- // {
348
- // Table: {
349
- // "id_with_hyphen": "id-with-hyphen",
350
- // "id_with_underscore": "id_with_underscore",
351
- // }
352
- // }
353
- const ids = {};
354
- class EnsureUniqueConstructIds {
355
- visit(c) {
356
- if (!isSSTConstruct(c)) {
357
- return;
358
- }
359
- if ("_doNotAllowOthersToBind" in c && c._doNotAllowOthersToBind) {
360
- return;
361
- }
362
- const className = c.constructor.name;
363
- const id = c.id;
364
- const normId = id.replace(/-/g, "_");
365
- const existingIds = ids[className] || {};
366
- if (!id.match(/^[a-zA-Z]([a-zA-Z0-9-_])*$/)) {
367
- throw new Error([
368
- `Invalid id "${id}" for ${className} construct.`,
369
- ``,
370
- `Starting v1.16, construct ids can only contain alphabetic characters, hyphens ("-"), and underscores ("_"), and must start with an alphabetic character. If you are migrating from version 1.15 or earlier, please see the upgrade guide — https://docs.serverless-stack.com/upgrade-guide#upgrade-to-v116`,
371
- ].join("\n"));
372
- }
373
- else if (["Parameter", "Secret"].includes(className)) {
374
- const existingConfigId = ids.Secret?.[normId] || ids.Parameter?.[normId];
375
- if (existingConfigId === id) {
376
- throw new Error(`ERROR: Config with id "${id}" already exists.`);
377
- }
378
- else if (existingConfigId) {
379
- throw new Error(`ERROR: You cannot have the same Config id with an underscore and hyphen: "${existingConfigId}" and "${id}".`);
380
- }
381
- }
382
- else if (existingIds[normId]) {
383
- throw new Error([
384
- existingIds[normId] === id
385
- ? `${className} with id "${id}" already exists.`
386
- : `You cannot have the same ${className} id with an underscore and hyphen: "${existingIds[normId]}" and "${id}".`,
387
- ``,
388
- `Starting v1.16, constructs must have unique ids for a given construct type. If you are migrating from version 1.15 or earlier, set the "cdk.id" in the construct with the existing id, and pick a unique id for the construct. Please see the upgrade guide — https://docs.serverless-stack.com/upgrade-guide#upgrade-to-v116`,
389
- ``,
390
- ` For example, if you have two Bucket constructs with the same id:`,
391
- ` new Bucket(this, "bucket");`,
392
- ` new Bucket(this, "bucket");`,
393
- ``,
394
- ` Change it to:`,
395
- ` new Bucket(this, "usersBucket", {`,
396
- ` cdk: {`,
397
- ` id: "bucket"`,
398
- ` }`,
399
- ` });`,
400
- ` new Bucket(this, "adminBucket", {`,
401
- ` cdk: {`,
402
- ` id: "bucket"`,
403
- ` }`,
404
- ` });`,
405
- ].join("\n"));
406
- }
407
- existingIds[normId] = id;
408
- ids[className] = existingIds;
409
- }
410
- }
411
- Aspects.of(this).add(new EnsureUniqueConstructIds());
412
- }
413
- codegenTypes() {
414
- const project = useProject();
415
- const typesPath = path.resolve(project.paths.out, "types");
416
- Logger.debug(`Generating types in ${typesPath}`);
417
- fs.rmSync(typesPath, {
418
- recursive: true,
419
- force: true,
420
- });
421
- fs.mkdirSync(typesPath, {
422
- recursive: true,
423
- });
424
- fs.appendFileSync(`${typesPath}/index.ts`, [
425
- `import "sst/node/config";`,
426
- `declare module "sst/node/config" {`,
427
- ` export interface ConfigTypes {`,
428
- ` APP: string;`,
429
- ` STAGE: string;`,
430
- ` }`,
431
- `}`,
432
- ``,
433
- ``,
434
- ].join("\n"));
435
- this.foreachConstruct((c) => {
436
- if (!isSSTConstruct(c)) {
437
- return;
438
- }
439
- if ("_doNotAllowOthersToBind" in c && c._doNotAllowOthersToBind) {
440
- return;
441
- }
442
- const binding = bindType(c);
443
- if (!binding) {
444
- return;
445
- }
446
- const className = c.constructor.name;
447
- const id = c.id;
448
- // Case 1: variable does not have properties, ie. Secrets and Parameters
449
- fs.appendFileSync(`${typesPath}/index.ts`, (binding.variables[0] === "."
450
- ? [
451
- `import "sst/node/${binding.clientPackage}";`,
452
- `declare module "sst/node/${binding.clientPackage}" {`,
453
- ` export interface ${className}Resources {`,
454
- ` "${id}": string;`,
455
- ` }`,
456
- `}`,
457
- ``,
458
- ``,
459
- ]
460
- : [
461
- `import "sst/node/${binding.clientPackage}";`,
462
- `declare module "sst/node/${binding.clientPackage}" {`,
463
- ` export interface ${className}Resources {`,
464
- ` "${id}": {`,
465
- ...binding.variables.map((p) => ` ${p}: string;`),
466
- ` }`,
467
- ` }`,
468
- `}`,
469
- ``,
470
- ``,
471
- ]).join("\n"));
472
- });
473
- }
474
- foreachConstruct(fn) {
475
- const loop = (parent) => {
476
- for (const child of parent.node.children) {
477
- fn(child);
478
- loop(child);
479
- }
480
- };
481
- for (const child of this.node.children) {
482
- if (child instanceof Stack) {
483
- loop(child);
484
- }
485
- }
486
- }
487
- // Functional Stack
488
- // This is a magical global to avoid having to pass app everywhere.
489
- // We only every have one instance of app
490
- stack(fn, props) {
491
- return stack(this, fn, props);
492
- }
493
- }