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,207 +0,0 @@
1
- import { Construct } from "constructs";
2
- import * as kinesis from "aws-cdk-lib/aws-kinesis";
3
- import * as lambda from "aws-cdk-lib/aws-lambda";
4
- import * as lambdaEventSources from "aws-cdk-lib/aws-lambda-event-sources";
5
- import { getFunctionRef, isCDKConstruct } from "./Construct.js";
6
- import { Function as Fn, } from "./Function.js";
7
- /////////////////////
8
- // Construct
9
- /////////////////////
10
- /**
11
- * The `KinesisStream` construct is a higher level CDK construct that makes it easy to create a Kinesis Data Stream and add a list of consumers to it.
12
- *
13
- * @example
14
- *
15
- * ```js
16
- * import { KinesisStream } from "sst/constructs";
17
- *
18
- * new KinesisStream(stack, "Stream", {
19
- * consumers: {
20
- * myConsumer: "src/lambda.main",
21
- * }
22
- * });
23
- * ```
24
- */
25
- export class KinesisStream extends Construct {
26
- id;
27
- cdk;
28
- functions = {};
29
- bindingForAllConsumers = [];
30
- permissionsAttachedForAllConsumers = [];
31
- props;
32
- constructor(scope, id, props) {
33
- super(scope, props?.cdk?.id || id);
34
- this.id = id;
35
- this.props = props || {};
36
- this.cdk = {};
37
- this.createStream();
38
- // Create Consumers
39
- if (props?.consumers) {
40
- for (const consumerName in props.consumers) {
41
- this.addConsumer(this, consumerName, props.consumers[consumerName]);
42
- }
43
- }
44
- }
45
- /**
46
- * The ARN of the internally created Kinesis Stream
47
- */
48
- get streamArn() {
49
- return this.cdk.stream.streamArn;
50
- }
51
- /**
52
- * The name of the internally created Kinesis Stream
53
- */
54
- get streamName() {
55
- return this.cdk.stream.streamName;
56
- }
57
- /**
58
- * Add consumers to a stream after creating it
59
- *
60
- * @example
61
- * ```js
62
- * stream.addConsumers(stack, {
63
- * consumer1: "src/function.handler"
64
- * })
65
- * ```
66
- */
67
- addConsumers(scope, consumers) {
68
- Object.keys(consumers).forEach((consumerName) => {
69
- this.addConsumer(scope, consumerName, consumers[consumerName]);
70
- });
71
- }
72
- /**
73
- * Binds the given list of resources to all the consumers.
74
- *
75
- * @example
76
- *
77
- * ```js
78
- * stream.bind([STRIPE_KEY, bucket]]);
79
- * ```
80
- */
81
- bind(constructs) {
82
- Object.values(this.functions).forEach((fn) => fn.bind(constructs));
83
- this.bindingForAllConsumers.push(...constructs);
84
- }
85
- /**
86
- * Binds the given list of resources to a specific consumer.
87
- *
88
- * @example
89
- * ```js
90
- * stream.bindToConsumer("consumer1", [STRIPE_KEY, bucket]);
91
- * ```
92
- */
93
- bindToConsumer(consumerName, constructs) {
94
- if (!this.functions[consumerName]) {
95
- throw new Error(`The "${consumerName}" consumer was not found in the "${this.node.id}" KinesisStream.`);
96
- }
97
- this.functions[consumerName].bind(constructs);
98
- }
99
- /**
100
- * Attaches the given list of permissions to all the consumers. This allows the functions to access other AWS resources.
101
- *
102
- * @example
103
- *
104
- * ```js
105
- * stream.attachPermissions(["s3"]);
106
- * ```
107
- */
108
- attachPermissions(permissions) {
109
- Object.values(this.functions).forEach((fn) => fn.attachPermissions(permissions));
110
- this.permissionsAttachedForAllConsumers.push(permissions);
111
- }
112
- /**
113
- * Attaches the given list of permissions to a specific consumer. This allows that function to access other AWS resources.
114
- *
115
- * @example
116
- * ```js
117
- * stream.attachPermissionsToConsumer("consumer1", ["s3"]);
118
- * ```
119
- */
120
- attachPermissionsToConsumer(consumerName, permissions) {
121
- if (!this.functions[consumerName]) {
122
- throw new Error(`The "${consumerName}" consumer was not found in the "${this.node.id}" KinesisStream.`);
123
- }
124
- this.functions[consumerName].attachPermissions(permissions);
125
- }
126
- /**
127
- * Get the function for a specific consumer
128
- *
129
- * @example
130
- * ```js
131
- * stream.getFunction("consumer1");
132
- * ```
133
- */
134
- getFunction(consumerName) {
135
- return this.functions[consumerName];
136
- }
137
- getConstructMetadata() {
138
- return {
139
- type: "KinesisStream",
140
- data: {
141
- streamName: this.cdk.stream.streamName,
142
- consumers: Object.entries(this.functions).map(([name, fn]) => ({
143
- name,
144
- fn: getFunctionRef(fn),
145
- })),
146
- },
147
- };
148
- }
149
- /** @internal */
150
- getFunctionBinding() {
151
- return {
152
- clientPackage: "kinesis-stream",
153
- variables: {
154
- streamName: {
155
- type: "plain",
156
- value: this.streamName,
157
- },
158
- },
159
- permissions: {
160
- "kinesis:*": [this.streamArn],
161
- },
162
- };
163
- }
164
- createStream() {
165
- const { cdk } = this.props;
166
- const app = this.node.root;
167
- const id = this.node.id;
168
- if (isCDKConstruct(cdk?.stream)) {
169
- this.cdk.stream = cdk?.stream;
170
- }
171
- else {
172
- const kinesisStreamProps = (cdk?.stream || {});
173
- this.cdk.stream = new kinesis.Stream(this, "Stream", {
174
- streamName: app.logicalPrefixedName(id),
175
- ...kinesisStreamProps,
176
- });
177
- }
178
- }
179
- addConsumer(scope, consumerName, consumer) {
180
- // normalize consumer
181
- let consumerFunction, consumerProps;
182
- if (consumer.function) {
183
- consumer = consumer;
184
- consumerFunction = consumer.function;
185
- consumerProps = consumer.cdk?.eventSource;
186
- }
187
- else {
188
- consumerFunction = consumer;
189
- }
190
- consumerProps = {
191
- startingPosition: lambda.StartingPosition.LATEST,
192
- ...(consumerProps || {}),
193
- };
194
- // create function
195
- const fn = Fn.fromDefinition(scope, `Consumer_${this.node.id}_${consumerName}`, consumerFunction, this.props.defaults?.function, `The "defaults.function" cannot be applied if an instance of a Function construct is passed in. Make sure to define all the consumers using FunctionProps, so the KinesisStream construct can apply the "defaults.function" to them.`);
196
- this.functions[consumerName] = fn;
197
- // create event source
198
- const eventSource = new lambdaEventSources.KinesisEventSource(this.cdk.stream, consumerProps);
199
- fn.addEventSource(eventSource);
200
- // attach permissions
201
- this.permissionsAttachedForAllConsumers.forEach((permissions) => {
202
- fn.attachPermissions(permissions);
203
- });
204
- fn.bind(this.bindingForAllConsumers);
205
- return fn;
206
- }
207
- }
@@ -1,60 +0,0 @@
1
- import { SSTConstruct } from "./Construct.js";
2
- type ExtractMetadata<T extends SSTConstruct> = ReturnType<T["getConstructMetadata"]> & {
3
- id: string;
4
- addr: string;
5
- stack: string;
6
- };
7
- import type { Api } from "./Api.js";
8
- export type ApiMetadata = ExtractMetadata<Api<any>>;
9
- import type { ApiGatewayV1Api } from "./ApiGatewayV1Api.js";
10
- export type ApiGatewayV1ApiMetadata = ExtractMetadata<ApiGatewayV1Api<any>>;
11
- import type { Cognito } from "./Cognito.js";
12
- export type CognitoMetadata = ExtractMetadata<Cognito>;
13
- import type { AppSyncApi } from "./AppSyncApi.js";
14
- export type AppSyncApiMetadata = ExtractMetadata<AppSyncApi>;
15
- import type { Bucket } from "./Bucket.js";
16
- export type BucketMetadata = ExtractMetadata<Bucket>;
17
- import type { Cron } from "./Cron.js";
18
- export type CronMetadata = ExtractMetadata<Cron>;
19
- import type { EventBus } from "./EventBus.js";
20
- export type EventBusMetadata = ExtractMetadata<EventBus>;
21
- import type { Function as Fn } from "./Function.js";
22
- import type { SsrFunction } from "./SsrFunction.js";
23
- export type FunctionMetadata = ExtractMetadata<Fn> | ExtractMetadata<SsrFunction>;
24
- import type { KinesisStream } from "./KinesisStream.js";
25
- export type KinesisStreamMetadata = ExtractMetadata<KinesisStream>;
26
- import type { NextjsSite as SlsNextjsSite } from "./deprecated/NextjsSite.js";
27
- export type SlsNextjsMetadata = ExtractMetadata<SlsNextjsSite>;
28
- import type { Queue } from "./Queue.js";
29
- export type QueueMetadata = ExtractMetadata<Queue>;
30
- import type { Service } from "./Service.js";
31
- export type ServiceMetadata = ExtractMetadata<Service>;
32
- import type { StaticSite } from "./StaticSite.js";
33
- export type StaticSiteMetadata = ExtractMetadata<StaticSite>;
34
- import type { Table } from "./Table.js";
35
- export type TableMetadata = ExtractMetadata<Table>;
36
- import type { Topic } from "./Topic.js";
37
- export type TopicMetadata = ExtractMetadata<Topic>;
38
- import type { WebSocketApi } from "./WebSocketApi.js";
39
- export type WebSocketApiMetadata = ExtractMetadata<WebSocketApi>;
40
- import type { RDS } from "./RDS.js";
41
- export type RDSMetadata = ExtractMetadata<RDS>;
42
- import type { Auth } from "./future/Auth.js";
43
- export type AuthMetadata = ExtractMetadata<Auth>;
44
- import type { Script } from "./Script.js";
45
- export type ScriptMetadata = ExtractMetadata<Script>;
46
- import type { Job } from "./Job.js";
47
- export type JobMetadata = ExtractMetadata<Job>;
48
- import type { NextjsSite } from "./NextjsSite.js";
49
- export type NextjsSiteMetadata = ExtractMetadata<NextjsSite>;
50
- import type { AstroSite } from "./AstroSite.js";
51
- export type AstroSiteMetadata = ExtractMetadata<AstroSite>;
52
- import type { RemixSite } from "./RemixSite.js";
53
- export type RemixSiteMetadata = ExtractMetadata<RemixSite>;
54
- import type { SvelteKitSite } from "./SvelteKitSite.js";
55
- export type SvelteKitSiteMetadata = ExtractMetadata<SvelteKitSite>;
56
- import type { SolidStartSite } from "./SolidStartSite.js";
57
- export type SolidStartSiteMetadata = ExtractMetadata<SolidStartSite>;
58
- export type SSRSiteMetadata = NextjsSiteMetadata | AstroSiteMetadata | RemixSiteMetadata | SolidStartSiteMetadata | SvelteKitSiteMetadata;
59
- export type Metadata = ApiMetadata | ApiGatewayV1ApiMetadata | CognitoMetadata | AppSyncApiMetadata | BucketMetadata | CronMetadata | EventBusMetadata | FunctionMetadata | KinesisStreamMetadata | SlsNextjsMetadata | QueueMetadata | StaticSiteMetadata | TableMetadata | TopicMetadata | WebSocketApiMetadata | RDSMetadata | AuthMetadata | ScriptMetadata | JobMetadata | SSRSiteMetadata | ServiceMetadata;
60
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,104 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { FunctionProps } from "aws-cdk-lib/aws-lambda";
3
- import { Distribution } from "./Distribution.js";
4
- import { SsrFunction } from "./SsrFunction.js";
5
- import { EdgeFunction } from "./EdgeFunction.js";
6
- import { SsrSite, SsrSiteProps } from "./SsrSite.js";
7
- import { Size } from "./util/size.js";
8
- export interface NextjsSiteProps extends Omit<SsrSiteProps, "nodejs"> {
9
- imageOptimization?: {
10
- /**
11
- * The amount of memory in MB allocated for image optimization function.
12
- * @default 1024 MB
13
- * @example
14
- * ```js
15
- * memorySize: "512 MB",
16
- * ```
17
- */
18
- memorySize?: number | Size;
19
- };
20
- cdk?: SsrSiteProps["cdk"] & {
21
- revalidation?: Pick<FunctionProps, "vpc" | "vpcSubnets">;
22
- /**
23
- * Override the CloudFront cache policy properties for responses from the
24
- * server rendering Lambda.
25
- *
26
- * @default
27
- * By default, the cache policy is configured to cache all responses from
28
- * the server rendering Lambda based on the query-key only. If you're using
29
- * cookie or header based authentication, you'll need to override the
30
- * cache policy to cache based on those values as well.
31
- *
32
- * ```js
33
- * serverCachePolicy: new CachePolicy(this, "ServerCache", {
34
- * queryStringBehavior: CacheQueryStringBehavior.all()
35
- * headerBehavior: CacheHeaderBehavior.allowList(
36
- * "accept",
37
- * "rsc",
38
- * "next-router-prefetch",
39
- * "next-router-state-tree",
40
- * "next-url",
41
- * ),
42
- * cookieBehavior: CacheCookieBehavior.none()
43
- * defaultTtl: Duration.days(0)
44
- * maxTtl: Duration.days(365)
45
- * minTtl: Duration.days(0)
46
- * })
47
- * ```
48
- */
49
- serverCachePolicy?: NonNullable<SsrSiteProps["cdk"]>["serverCachePolicy"];
50
- };
51
- }
52
- /**
53
- * The `NextjsSite` construct is a higher level CDK construct that makes it easy to create a Next.js app.
54
- * @example
55
- * Deploys a Next.js app in the `my-next-app` directory.
56
- *
57
- * ```js
58
- * new NextjsSite(stack, "web", {
59
- * path: "my-next-app/",
60
- * });
61
- * ```
62
- */
63
- export declare class NextjsSite extends SsrSite {
64
- protected props: NextjsSiteProps & {
65
- path: Exclude<NextjsSiteProps["path"], undefined>;
66
- runtime: Exclude<NextjsSiteProps["runtime"], undefined>;
67
- timeout: Exclude<NextjsSiteProps["timeout"], undefined>;
68
- memorySize: Exclude<NextjsSiteProps["memorySize"], undefined>;
69
- waitForInvalidation: Exclude<NextjsSiteProps["waitForInvalidation"], undefined>;
70
- };
71
- constructor(scope: Construct, id: string, props?: NextjsSiteProps);
72
- protected createRevalidation(): void;
73
- protected initBuildConfig(): {
74
- typesPath: string;
75
- serverBuildOutputFile: string;
76
- clientBuildOutputDir: string;
77
- clientBuildVersionedSubDir: string;
78
- clientBuildS3KeyPrefix: string;
79
- prerenderedBuildOutputDir: string;
80
- prerenderedBuildS3KeyPrefix: string;
81
- warmerFunctionAssetPath: string;
82
- };
83
- protected createFunctionForRegional(): SsrFunction;
84
- protected createFunctionForEdge(): EdgeFunction;
85
- private createImageOptimizationFunction;
86
- protected createCloudFrontDistributionForRegional(): Distribution;
87
- protected createCloudFrontDistributionForEdge(): Distribution;
88
- protected useServerBehaviorCachePolicy(): import("aws-cdk-lib/aws-cloudfront").CachePolicy;
89
- private buildImageBehavior;
90
- protected generateBuildId(): string;
91
- getConstructMetadata(): {
92
- data: {
93
- mode: "placeholder" | "deployed";
94
- path: string;
95
- runtime: "nodejs14.x" | "nodejs16.x" | "nodejs18.x";
96
- customDomainUrl: string | undefined;
97
- url: string | undefined;
98
- edge: boolean | undefined;
99
- server: string;
100
- secrets: string[];
101
- };
102
- type: "NextjsSite";
103
- };
104
- }
@@ -1,308 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
- import { Fn, Duration as CdkDuration, RemovalPolicy } from "aws-cdk-lib/core";
4
- import { PolicyStatement } from "aws-cdk-lib/aws-iam";
5
- import { RetentionDays } from "aws-cdk-lib/aws-logs";
6
- import { Code, Runtime, Architecture, Function as CdkFunction, FunctionUrlAuthType, } from "aws-cdk-lib/aws-lambda";
7
- import { ViewerProtocolPolicy, AllowedMethods, CachedMethods, LambdaEdgeEventType, } from "aws-cdk-lib/aws-cloudfront";
8
- import { HttpOrigin } from "aws-cdk-lib/aws-cloudfront-origins";
9
- import { Queue } from "aws-cdk-lib/aws-sqs";
10
- import { SqsEventSource } from "aws-cdk-lib/aws-lambda-event-sources";
11
- import { Stack } from "./Stack.js";
12
- import { Distribution } from "./Distribution.js";
13
- import { SsrFunction } from "./SsrFunction.js";
14
- import { EdgeFunction } from "./EdgeFunction.js";
15
- import { SsrSite } from "./SsrSite.js";
16
- import { toCdkSize } from "./util/size.js";
17
- /**
18
- * The `NextjsSite` construct is a higher level CDK construct that makes it easy to create a Next.js app.
19
- * @example
20
- * Deploys a Next.js app in the `my-next-app` directory.
21
- *
22
- * ```js
23
- * new NextjsSite(stack, "web", {
24
- * path: "my-next-app/",
25
- * });
26
- * ```
27
- */
28
- export class NextjsSite extends SsrSite {
29
- constructor(scope, id, props) {
30
- super(scope, id, {
31
- buildCommand: "npx --yes open-next@2.1.5 build",
32
- ...props,
33
- });
34
- this.deferredTaskCallbacks.push(() => {
35
- this.createRevalidation();
36
- });
37
- }
38
- createRevalidation() {
39
- if (!this.serverLambdaForRegional && !this.serverLambdaForEdge)
40
- return;
41
- const { cdk } = this.props;
42
- const queue = new Queue(this, "RevalidationQueue", {
43
- fifo: true,
44
- receiveMessageWaitTime: CdkDuration.seconds(20),
45
- });
46
- const consumer = new CdkFunction(this, "RevalidationFunction", {
47
- description: "Next.js revalidator",
48
- handler: "index.handler",
49
- code: Code.fromAsset(path.join(this.props.path, ".open-next", "revalidation-function")),
50
- runtime: Runtime.NODEJS_18_X,
51
- timeout: CdkDuration.seconds(30),
52
- ...cdk?.revalidation,
53
- });
54
- consumer.addEventSource(new SqsEventSource(queue, { batchSize: 5 }));
55
- // Allow server to send messages to the queue
56
- const server = this.serverLambdaForRegional || this.serverLambdaForEdge;
57
- server?.addEnvironment("REVALIDATION_QUEUE_URL", queue.queueUrl);
58
- server?.addEnvironment("REVALIDATION_QUEUE_REGION", Stack.of(this).region);
59
- queue.grantSendMessages(server?.role);
60
- }
61
- initBuildConfig() {
62
- return {
63
- typesPath: ".",
64
- serverBuildOutputFile: ".open-next/server-function/index.mjs",
65
- clientBuildOutputDir: ".open-next/assets",
66
- clientBuildVersionedSubDir: "_next",
67
- clientBuildS3KeyPrefix: "_assets",
68
- prerenderedBuildOutputDir: ".open-next/cache",
69
- prerenderedBuildS3KeyPrefix: "_cache",
70
- warmerFunctionAssetPath: path.join(this.props.path, ".open-next/warmer-function"),
71
- };
72
- }
73
- createFunctionForRegional() {
74
- const { runtime, timeout, memorySize, bind, permissions, environment, cdk, } = this.props;
75
- return new SsrFunction(this, `ServerFunction`, {
76
- description: "Next.js server",
77
- bundle: path.join(this.props.path, ".open-next", "server-function"),
78
- handler: "index.handler",
79
- runtime,
80
- timeout,
81
- memorySize,
82
- bind,
83
- permissions,
84
- environment: {
85
- ...environment,
86
- CACHE_BUCKET_NAME: this.bucket.bucketName,
87
- CACHE_BUCKET_KEY_PREFIX: "_cache",
88
- CACHE_BUCKET_REGION: Stack.of(this).region,
89
- },
90
- ...cdk?.server,
91
- });
92
- }
93
- createFunctionForEdge() {
94
- const { runtime, timeout, memorySize, bind, permissions, environment } = this.props;
95
- return new EdgeFunction(this, "ServerFunction", {
96
- bundle: path.join(this.props.path, ".open-next", "server-function"),
97
- handler: "index.handler",
98
- runtime,
99
- timeout,
100
- memorySize,
101
- bind,
102
- permissions,
103
- environment: {
104
- ...environment,
105
- CACHE_BUCKET_NAME: this.bucket.bucketName,
106
- CACHE_BUCKET_KEY_PREFIX: "_cache",
107
- CACHE_BUCKET_REGION: Stack.of(this).region,
108
- },
109
- });
110
- }
111
- createImageOptimizationFunction() {
112
- const { imageOptimization, path: sitePath } = this.props;
113
- const fn = new CdkFunction(this, `ImageFunction`, {
114
- description: "Next.js image optimizer",
115
- handler: "index.handler",
116
- currentVersionOptions: {
117
- removalPolicy: RemovalPolicy.DESTROY,
118
- },
119
- logRetention: RetentionDays.THREE_DAYS,
120
- code: Code.fromInline("export function handler() {}"),
121
- runtime: Runtime.NODEJS_18_X,
122
- memorySize: imageOptimization?.memorySize
123
- ? typeof imageOptimization.memorySize === "string"
124
- ? toCdkSize(imageOptimization.memorySize).toMebibytes()
125
- : imageOptimization.memorySize
126
- : 1536,
127
- timeout: CdkDuration.seconds(25),
128
- architecture: Architecture.ARM_64,
129
- environment: {
130
- BUCKET_NAME: this.bucket.bucketName,
131
- BUCKET_KEY_PREFIX: "_assets",
132
- },
133
- initialPolicy: [
134
- new PolicyStatement({
135
- actions: ["s3:GetObject"],
136
- resources: [this.bucket.arnForObjects("*")],
137
- }),
138
- ],
139
- });
140
- // update code after build
141
- this.deferredTaskCallbacks.push(() => {
142
- const cfnFunction = fn.node.defaultChild;
143
- const code = Code.fromAsset(path.join(sitePath, ".open-next/image-optimization-function"));
144
- const codeConfig = code.bind(fn);
145
- cfnFunction.code = {
146
- s3Bucket: codeConfig.s3Location?.bucketName,
147
- s3Key: codeConfig.s3Location?.objectKey,
148
- s3ObjectVersion: codeConfig.s3Location?.objectVersion,
149
- };
150
- code.bindToResource(cfnFunction);
151
- });
152
- return fn;
153
- }
154
- createCloudFrontDistributionForRegional() {
155
- /**
156
- * Next.js requests
157
- *
158
- * - Public asset
159
- * Use case: When you request an asset in /public
160
- * Request: /myImage.png
161
- * Response cache:
162
- * - Cache-Control: public, max-age=0, must-revalidate
163
- * - x-vercel-cache: MISS (1st request)
164
- * - x-vercel-cache: HIT (2nd request)
165
- *
166
- * - SSG page
167
- * Use case: When you request an SSG page directly
168
- * Request: /myPage
169
- * Response cache:
170
- * - Cache-Control: public, max-age=0, must-revalidate
171
- * - Content-Encoding: br
172
- * - x-vercel-cache: HIT (2nd request, not set for 1st request)
173
- *
174
- * - SSR page (directly)
175
- * Use case: When you request an SSR page directly
176
- * Request: /myPage
177
- * Response cache:
178
- * - Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
179
- * - x-vercel-cache: MISS
180
- *
181
- * - SSR pages (user transition)
182
- * Use case: When the page uses getServerSideProps(), and you request this page on
183
- * client-side page trasitions. Next.js sends an API request to the server,
184
- * which runs getServerSideProps()
185
- * Request: /_next/data/_-fpIB1rqWyRD-EJO59pO/myPage.json
186
- * Response cache:
187
- * - Cache-Control: private, no-cache, no-store, max-age=0, must-revalidate
188
- * - x-vercel-cache: MISS
189
- *
190
- * - Image optimization
191
- * Use case: when you request an image
192
- * Request: /_next/image?url=%2F_next%2Fstatic%2Fmedia%2F4600x4600.ce39e3d6.jpg&w=256&q=75
193
- * Response cache:
194
- * - Cache-Control: public, max-age=31536000, immutable
195
- * - x-vercel-cache: HIT
196
- *
197
- * - API
198
- * Use case: when you request an API endpoint
199
- * Request: /api/hello
200
- * Response cache:
201
- * - Cache-Control: public, max-age=0, must-revalidate
202
- * - x-vercel-cache: MISS
203
- */
204
- const { customDomain, cdk } = this.props;
205
- const cfDistributionProps = cdk?.distribution || {};
206
- const serverBehavior = this.buildDefaultBehaviorForRegional();
207
- return new Distribution(this, "CDN", {
208
- scopeOverride: this,
209
- customDomain,
210
- cdk: {
211
- distribution: {
212
- // these values can be overwritten by cfDistributionProps
213
- defaultRootObject: "",
214
- // Override props.
215
- ...cfDistributionProps,
216
- // these values can NOT be overwritten by cfDistributionProps
217
- defaultBehavior: serverBehavior,
218
- additionalBehaviors: {
219
- "api/*": serverBehavior,
220
- "_next/data/*": serverBehavior,
221
- "_next/image*": this.buildImageBehavior(),
222
- ...(cfDistributionProps.additionalBehaviors || {}),
223
- },
224
- },
225
- },
226
- });
227
- }
228
- createCloudFrontDistributionForEdge() {
229
- const { customDomain, cdk } = this.props;
230
- const cfDistributionProps = cdk?.distribution || {};
231
- const serverBehavior = this.buildDefaultBehaviorForEdge();
232
- return new Distribution(this, "CDN", {
233
- scopeOverride: this,
234
- customDomain,
235
- cdk: {
236
- distribution: {
237
- // these values can be overwritten by cfDistributionProps
238
- defaultRootObject: "",
239
- // Override props.
240
- ...cfDistributionProps,
241
- // these values can NOT be overwritten by cfDistributionProps
242
- defaultBehavior: serverBehavior,
243
- additionalBehaviors: {
244
- "api/*": serverBehavior,
245
- "_next/data/*": serverBehavior,
246
- "_next/image*": this.buildImageBehavior(),
247
- ...(cfDistributionProps.additionalBehaviors || {}),
248
- },
249
- },
250
- },
251
- });
252
- }
253
- useServerBehaviorCachePolicy() {
254
- return super.useServerBehaviorCachePolicy([
255
- "accept",
256
- "rsc",
257
- "next-router-prefetch",
258
- "next-router-state-tree",
259
- "next-url",
260
- ]);
261
- }
262
- buildImageBehavior() {
263
- const { cdk, regional } = this.props;
264
- const imageFn = this.createImageOptimizationFunction();
265
- const imageFnUrl = imageFn.addFunctionUrl({
266
- authType: regional?.enableServerUrlIamAuth
267
- ? FunctionUrlAuthType.AWS_IAM
268
- : FunctionUrlAuthType.NONE,
269
- });
270
- return {
271
- viewerProtocolPolicy: ViewerProtocolPolicy.REDIRECT_TO_HTTPS,
272
- origin: new HttpOrigin(Fn.parseDomainName(imageFnUrl.url)),
273
- allowedMethods: AllowedMethods.ALLOW_ALL,
274
- cachedMethods: CachedMethods.CACHE_GET_HEAD_OPTIONS,
275
- compress: true,
276
- cachePolicy: cdk?.serverCachePolicy ?? this.useServerBehaviorCachePolicy(),
277
- responseHeadersPolicy: cdk?.responseHeadersPolicy,
278
- edgeLambdas: regional?.enableServerUrlIamAuth
279
- ? [
280
- (() => {
281
- const fn = this.useServerUrlSigningFunction();
282
- fn.attachPermissions([
283
- new PolicyStatement({
284
- actions: ["lambda:InvokeFunctionUrl"],
285
- resources: [imageFn.functionArn],
286
- }),
287
- ]);
288
- return {
289
- includeBody: true,
290
- eventType: LambdaEdgeEventType.ORIGIN_REQUEST,
291
- functionVersion: fn.currentVersion,
292
- };
293
- })(),
294
- ]
295
- : [],
296
- };
297
- }
298
- generateBuildId() {
299
- const filePath = path.join(this.props.path, ".next/BUILD_ID");
300
- return fs.readFileSync(filePath).toString();
301
- }
302
- getConstructMetadata() {
303
- return {
304
- type: "NextjsSite",
305
- ...this.getConstructMetadataBase(),
306
- };
307
- }
308
- }