sst 3.0.0 → 3.0.1-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (457) hide show
  1. package/package.json +7 -139
  2. package/src/index.ts +1 -0
  3. package/src/resource.ts +15 -0
  4. package/tsconfig.json +11 -0
  5. package/LICENSE +0 -21
  6. package/README.md +0 -43
  7. package/bootstrap.d.ts +0 -5
  8. package/bootstrap.js +0 -318
  9. package/bus.d.ts +0 -20
  10. package/bus.js +0 -52
  11. package/cache.d.ts +0 -4
  12. package/cache.js +0 -31
  13. package/cdk/deploy-stack.d.ts +0 -223
  14. package/cdk/deploy-stack.js +0 -562
  15. package/cdk/deployments-wrapper.d.ts +0 -3
  16. package/cdk/deployments-wrapper.js +0 -135
  17. package/cdk/deployments.d.ts +0 -327
  18. package/cdk/deployments.js +0 -360
  19. package/cdk/util.d.ts +0 -1
  20. package/cdk/util.js +0 -17
  21. package/cli/ci-info.d.ts +0 -4
  22. package/cli/ci-info.js +0 -8
  23. package/cli/colors.d.ts +0 -17
  24. package/cli/colors.js +0 -27
  25. package/cli/commands/bind.d.ts +0 -19
  26. package/cli/commands/bind.js +0 -360
  27. package/cli/commands/bootstrap.d.ts +0 -15
  28. package/cli/commands/bootstrap.js +0 -11
  29. package/cli/commands/build.d.ts +0 -17
  30. package/cli/commands/build.js +0 -25
  31. package/cli/commands/connect.d.ts +0 -17
  32. package/cli/commands/connect.js +0 -55
  33. package/cli/commands/console.d.ts +0 -15
  34. package/cli/commands/console.js +0 -22
  35. package/cli/commands/deploy.d.ts +0 -19
  36. package/cli/commands/deploy.js +0 -112
  37. package/cli/commands/dev.d.ts +0 -25
  38. package/cli/commands/dev.js +0 -351
  39. package/cli/commands/diff.d.ts +0 -19
  40. package/cli/commands/diff.js +0 -89
  41. package/cli/commands/plugins/kysely.d.ts +0 -1
  42. package/cli/commands/plugins/kysely.js +0 -87
  43. package/cli/commands/plugins/pothos.d.ts +0 -1
  44. package/cli/commands/plugins/pothos.js +0 -58
  45. package/cli/commands/plugins/warmer.d.ts +0 -1
  46. package/cli/commands/plugins/warmer.js +0 -33
  47. package/cli/commands/remove.d.ts +0 -19
  48. package/cli/commands/remove.js +0 -62
  49. package/cli/commands/secrets/get.d.ts +0 -19
  50. package/cli/commands/secrets/get.js +0 -27
  51. package/cli/commands/secrets/list.d.ts +0 -19
  52. package/cli/commands/secrets/list.js +0 -69
  53. package/cli/commands/secrets/load.d.ts +0 -17
  54. package/cli/commands/secrets/load.js +0 -47
  55. package/cli/commands/secrets/remove.d.ts +0 -19
  56. package/cli/commands/secrets/remove.js +0 -27
  57. package/cli/commands/secrets/secrets.d.ts +0 -2
  58. package/cli/commands/secrets/secrets.js +0 -16
  59. package/cli/commands/secrets/set.d.ts +0 -21
  60. package/cli/commands/secrets/set.js +0 -54
  61. package/cli/commands/telemetry.d.ts +0 -17
  62. package/cli/commands/telemetry.js +0 -24
  63. package/cli/commands/transform.d.ts +0 -17
  64. package/cli/commands/transform.js +0 -62
  65. package/cli/commands/types.d.ts +0 -15
  66. package/cli/commands/types.js +0 -25
  67. package/cli/commands/update.d.ts +0 -17
  68. package/cli/commands/update.js +0 -116
  69. package/cli/commands/version.d.ts +0 -15
  70. package/cli/commands/version.js +0 -15
  71. package/cli/local/router.d.ts +0 -44
  72. package/cli/local/router.js +0 -43
  73. package/cli/local/server.d.ts +0 -22
  74. package/cli/local/server.js +0 -319
  75. package/cli/program.d.ts +0 -19
  76. package/cli/program.js +0 -87
  77. package/cli/spinner.d.ts +0 -3
  78. package/cli/spinner.js +0 -14
  79. package/cli/sst.d.ts +0 -2
  80. package/cli/sst.js +0 -74
  81. package/cli/telemetry/environment.d.ts +0 -15
  82. package/cli/telemetry/environment.js +0 -27
  83. package/cli/telemetry/post-payload.d.ts +0 -1
  84. package/cli/telemetry/post-payload.js +0 -27
  85. package/cli/telemetry/project-id.d.ts +0 -2
  86. package/cli/telemetry/project-id.js +0 -47
  87. package/cli/telemetry/telemetry.d.ts +0 -19
  88. package/cli/telemetry/telemetry.js +0 -103
  89. package/cli/terminal.d.ts +0 -1
  90. package/cli/terminal.js +0 -8
  91. package/cli/ui/deploy.d.ts +0 -10
  92. package/cli/ui/deploy.js +0 -172
  93. package/cli/ui/functions.d.ts +0 -2
  94. package/cli/ui/functions.js +0 -130
  95. package/cli/ui/header.d.ts +0 -5
  96. package/cli/ui/header.js +0 -16
  97. package/cli/ui/stack.d.ts +0 -1
  98. package/cli/ui/stack.js +0 -6
  99. package/config.d.ts +0 -56
  100. package/config.js +0 -244
  101. package/constructs/Api.d.ts +0 -814
  102. package/constructs/Api.js +0 -743
  103. package/constructs/ApiGatewayV1Api.d.ts +0 -642
  104. package/constructs/ApiGatewayV1Api.js +0 -767
  105. package/constructs/App.d.ts +0 -168
  106. package/constructs/App.js +0 -493
  107. package/constructs/AppSyncApi.d.ts +0 -550
  108. package/constructs/AppSyncApi.js +0 -493
  109. package/constructs/AstroSite.d.ts +0 -39
  110. package/constructs/AstroSite.js +0 -78
  111. package/constructs/AstroSite.tsdoc.d.ts +0 -2
  112. package/constructs/AstroSite.tsdoc.js +0 -2
  113. package/constructs/Auth.d.ts +0 -100
  114. package/constructs/Auth.js +0 -177
  115. package/constructs/BaseSite.d.ts +0 -29
  116. package/constructs/BaseSite.js +0 -43
  117. package/constructs/Bucket.d.ts +0 -364
  118. package/constructs/Bucket.js +0 -327
  119. package/constructs/Cognito.d.ts +0 -232
  120. package/constructs/Cognito.js +0 -370
  121. package/constructs/Config.d.ts +0 -3
  122. package/constructs/Config.js +0 -3
  123. package/constructs/Construct.d.ts +0 -23
  124. package/constructs/Construct.js +0 -46
  125. package/constructs/Cron.d.ts +0 -164
  126. package/constructs/Cron.js +0 -114
  127. package/constructs/Distribution.d.ts +0 -143
  128. package/constructs/Distribution.js +0 -260
  129. package/constructs/EdgeFunction.d.ts +0 -49
  130. package/constructs/EdgeFunction.js +0 -442
  131. package/constructs/EventBus.d.ts +0 -444
  132. package/constructs/EventBus.js +0 -440
  133. package/constructs/Function.d.ts +0 -690
  134. package/constructs/Function.js +0 -583
  135. package/constructs/FunctionalStack.d.ts +0 -13
  136. package/constructs/FunctionalStack.js +0 -62
  137. package/constructs/Job.d.ts +0 -337
  138. package/constructs/Job.js +0 -404
  139. package/constructs/KinesisStream.d.ts +0 -224
  140. package/constructs/KinesisStream.js +0 -207
  141. package/constructs/Metadata.d.ts +0 -60
  142. package/constructs/Metadata.js +0 -1
  143. package/constructs/NextjsSite.d.ts +0 -104
  144. package/constructs/NextjsSite.js +0 -308
  145. package/constructs/Parameter.d.ts +0 -37
  146. package/constructs/Parameter.js +0 -53
  147. package/constructs/Queue.d.ts +0 -194
  148. package/constructs/Queue.js +0 -204
  149. package/constructs/RDS.d.ts +0 -221
  150. package/constructs/RDS.js +0 -363
  151. package/constructs/RemixSite.d.ts +0 -42
  152. package/constructs/RemixSite.js +0 -158
  153. package/constructs/RemixSite.tsdoc.d.ts +0 -2
  154. package/constructs/RemixSite.tsdoc.js +0 -2
  155. package/constructs/Script.d.ts +0 -160
  156. package/constructs/Script.js +0 -179
  157. package/constructs/Secret.d.ts +0 -30
  158. package/constructs/Secret.js +0 -59
  159. package/constructs/Service.d.ts +0 -487
  160. package/constructs/Service.js +0 -655
  161. package/constructs/SolidStartSite.d.ts +0 -37
  162. package/constructs/SolidStartSite.js +0 -66
  163. package/constructs/SolidStartSite.tsdoc.d.ts +0 -2
  164. package/constructs/SolidStartSite.tsdoc.js +0 -2
  165. package/constructs/SsrFunction.d.ts +0 -60
  166. package/constructs/SsrFunction.js +0 -226
  167. package/constructs/SsrSite.d.ts +0 -407
  168. package/constructs/SsrSite.js +0 -850
  169. package/constructs/Stack.d.ts +0 -127
  170. package/constructs/Stack.js +0 -243
  171. package/constructs/StaticSite.d.ts +0 -348
  172. package/constructs/StaticSite.js +0 -468
  173. package/constructs/SvelteKitSite.d.ts +0 -40
  174. package/constructs/SvelteKitSite.js +0 -106
  175. package/constructs/SvelteKitSite.tsdoc.d.ts +0 -2
  176. package/constructs/SvelteKitSite.tsdoc.js +0 -2
  177. package/constructs/Table.d.ts +0 -410
  178. package/constructs/Table.js +0 -425
  179. package/constructs/Topic.d.ts +0 -257
  180. package/constructs/Topic.js +0 -273
  181. package/constructs/WebSocketApi.d.ts +0 -355
  182. package/constructs/WebSocketApi.js +0 -404
  183. package/constructs/cdk/HttpAwsIntegration.d.ts +0 -32
  184. package/constructs/cdk/HttpAwsIntegration.js +0 -24
  185. package/constructs/cdk/certificate-base.d.ts +0 -18
  186. package/constructs/cdk/certificate-base.js +0 -26
  187. package/constructs/cdk/dns-validated-certificate.d.ts +0 -77
  188. package/constructs/cdk/dns-validated-certificate.js +0 -125
  189. package/constructs/cdk/website-redirect.d.ts +0 -53
  190. package/constructs/cdk/website-redirect.js +0 -77
  191. package/constructs/context.d.ts +0 -3
  192. package/constructs/context.js +0 -27
  193. package/constructs/deferred_task.d.ts +0 -6
  194. package/constructs/deferred_task.js +0 -45
  195. package/constructs/deprecated/NextjsSite.d.ts +0 -309
  196. package/constructs/deprecated/NextjsSite.js +0 -1074
  197. package/constructs/deprecated/cross-region-helper.d.ts +0 -7
  198. package/constructs/deprecated/cross-region-helper.js +0 -152
  199. package/constructs/deprecated/index.d.ts +0 -1
  200. package/constructs/deprecated/index.js +0 -1
  201. package/constructs/future/Auth.d.ts +0 -80
  202. package/constructs/future/Auth.js +0 -122
  203. package/constructs/future/index.d.ts +0 -1
  204. package/constructs/future/index.js +0 -1
  205. package/constructs/index.d.ts +0 -32
  206. package/constructs/index.js +0 -32
  207. package/constructs/static-file-list.d.ts +0 -1
  208. package/constructs/static-file-list.js +0 -51
  209. package/constructs/util/apiGatewayV1AccessLog.d.ts +0 -15
  210. package/constructs/util/apiGatewayV1AccessLog.js +0 -76
  211. package/constructs/util/apiGatewayV2AccessLog.d.ts +0 -10
  212. package/constructs/util/apiGatewayV2AccessLog.js +0 -107
  213. package/constructs/util/apiGatewayV2Cors.d.ts +0 -67
  214. package/constructs/util/apiGatewayV2Cors.js +0 -21
  215. package/constructs/util/apiGatewayV2Domain.d.ts +0 -47
  216. package/constructs/util/apiGatewayV2Domain.js +0 -208
  217. package/constructs/util/appSyncApiDomain.d.ts +0 -41
  218. package/constructs/util/appSyncApiDomain.js +0 -176
  219. package/constructs/util/builder.d.ts +0 -3
  220. package/constructs/util/builder.js +0 -9
  221. package/constructs/util/duration.d.ts +0 -3
  222. package/constructs/util/duration.js +0 -19
  223. package/constructs/util/functionBinding.d.ts +0 -31
  224. package/constructs/util/functionBinding.js +0 -104
  225. package/constructs/util/functionUrlCors.d.ts +0 -67
  226. package/constructs/util/functionUrlCors.js +0 -23
  227. package/constructs/util/permission.d.ts +0 -8
  228. package/constructs/util/permission.js +0 -228
  229. package/constructs/util/size.d.ts +0 -3
  230. package/constructs/util/size.js +0 -12
  231. package/constructs/util/warning.d.ts +0 -11
  232. package/constructs/util/warning.js +0 -21
  233. package/context/context.d.ts +0 -13
  234. package/context/context.js +0 -69
  235. package/context/context2.d.ts +0 -16
  236. package/context/context2.js +0 -108
  237. package/context/handler.d.ts +0 -25
  238. package/context/handler.js +0 -21
  239. package/context/index.d.ts +0 -2
  240. package/context/index.js +0 -2
  241. package/credentials.d.ts +0 -9
  242. package/credentials.js +0 -145
  243. package/error.d.ts +0 -6
  244. package/error.js +0 -10
  245. package/index.d.ts +0 -1
  246. package/index.js +0 -1
  247. package/iot.d.ts +0 -6
  248. package/iot.js +0 -163
  249. package/logger.d.ts +0 -3
  250. package/logger.js +0 -32
  251. package/node/actor/index.d.ts +0 -29
  252. package/node/actor/index.js +0 -17
  253. package/node/api/index.d.ts +0 -64
  254. package/node/api/index.js +0 -179
  255. package/node/auth/adapter/adapter.d.ts +0 -3
  256. package/node/auth/adapter/adapter.js +0 -3
  257. package/node/auth/adapter/facebook.d.ts +0 -2
  258. package/node/auth/adapter/facebook.js +0 -26
  259. package/node/auth/adapter/github.d.ts +0 -2
  260. package/node/auth/adapter/github.js +0 -21
  261. package/node/auth/adapter/google.d.ts +0 -9
  262. package/node/auth/adapter/google.js +0 -18
  263. package/node/auth/adapter/link.d.ts +0 -8
  264. package/node/auth/adapter/link.js +0 -39
  265. package/node/auth/adapter/oauth.d.ts +0 -25
  266. package/node/auth/adapter/oauth.js +0 -52
  267. package/node/auth/adapter/oidc.d.ts +0 -17
  268. package/node/auth/adapter/oidc.js +0 -50
  269. package/node/auth/adapter/twitch.d.ts +0 -2
  270. package/node/auth/adapter/twitch.js +0 -11
  271. package/node/auth/auth.d.ts +0 -24
  272. package/node/auth/auth.js +0 -74
  273. package/node/auth/index.d.ts +0 -13
  274. package/node/auth/index.js +0 -12
  275. package/node/auth/session.d.ts +0 -76
  276. package/node/auth/session.js +0 -121
  277. package/node/bucket/index.d.ts +0 -3
  278. package/node/bucket/index.js +0 -2
  279. package/node/config/index.d.ts +0 -13
  280. package/node/config/index.js +0 -22
  281. package/node/event-bus/index.d.ts +0 -51
  282. package/node/event-bus/index.js +0 -76
  283. package/node/function/index.d.ts +0 -3
  284. package/node/function/index.js +0 -3
  285. package/node/future/auth/adapter/adapter.d.ts +0 -10
  286. package/node/future/auth/adapter/adapter.js +0 -1
  287. package/node/future/auth/adapter/code.d.ts +0 -17
  288. package/node/future/auth/adapter/code.js +0 -68
  289. package/node/future/auth/adapter/facebook.d.ts +0 -16
  290. package/node/future/auth/adapter/facebook.js +0 -27
  291. package/node/future/auth/adapter/github.d.ts +0 -23
  292. package/node/future/auth/adapter/github.js +0 -23
  293. package/node/future/auth/adapter/google.d.ts +0 -28
  294. package/node/future/auth/adapter/google.js +0 -22
  295. package/node/future/auth/adapter/link.d.ts +0 -13
  296. package/node/future/auth/adapter/link.js +0 -47
  297. package/node/future/auth/adapter/microsoft.d.ts +0 -22
  298. package/node/future/auth/adapter/microsoft.js +0 -16
  299. package/node/future/auth/adapter/oauth.d.ts +0 -41
  300. package/node/future/auth/adapter/oauth.js +0 -67
  301. package/node/future/auth/adapter/oidc.d.ts +0 -30
  302. package/node/future/auth/adapter/oidc.js +0 -63
  303. package/node/future/auth/adapter/spotify.d.ts +0 -23
  304. package/node/future/auth/adapter/spotify.js +0 -22
  305. package/node/future/auth/encryption.d.ts +0 -2
  306. package/node/future/auth/encryption.js +0 -30
  307. package/node/future/auth/handler.d.ts +0 -46
  308. package/node/future/auth/handler.js +0 -280
  309. package/node/future/auth/index.d.ts +0 -17
  310. package/node/future/auth/index.js +0 -15
  311. package/node/future/auth/session.d.ts +0 -71
  312. package/node/future/auth/session.js +0 -146
  313. package/node/graphql/index.d.ts +0 -15
  314. package/node/graphql/index.js +0 -32
  315. package/node/job/index.d.ts +0 -37
  316. package/node/job/index.js +0 -64
  317. package/node/kinesis-stream/index.d.ts +0 -3
  318. package/node/kinesis-stream/index.js +0 -3
  319. package/node/queue/index.d.ts +0 -3
  320. package/node/queue/index.js +0 -2
  321. package/node/rds/index.d.ts +0 -3
  322. package/node/rds/index.js +0 -2
  323. package/node/service/index.d.ts +0 -3
  324. package/node/service/index.js +0 -4
  325. package/node/site/index.d.ts +0 -18
  326. package/node/site/index.js +0 -18
  327. package/node/table/index.d.ts +0 -3
  328. package/node/table/index.js +0 -4
  329. package/node/topic/index.d.ts +0 -3
  330. package/node/topic/index.js +0 -4
  331. package/node/util/index.d.ts +0 -2
  332. package/node/util/index.js +0 -196
  333. package/node/util/loader.d.ts +0 -2
  334. package/node/util/loader.js +0 -51
  335. package/node/websocket-api/index.d.ts +0 -23
  336. package/node/websocket-api/index.js +0 -48
  337. package/pothos.d.ts +0 -7
  338. package/pothos.js +0 -160
  339. package/project.d.ts +0 -75
  340. package/project.js +0 -188
  341. package/runtime/handlers/container.d.ts +0 -2
  342. package/runtime/handlers/container.js +0 -263
  343. package/runtime/handlers/dotnet.d.ts +0 -2
  344. package/runtime/handlers/dotnet.js +0 -115
  345. package/runtime/handlers/go.d.ts +0 -2
  346. package/runtime/handlers/go.js +0 -126
  347. package/runtime/handlers/java.d.ts +0 -2
  348. package/runtime/handlers/java.js +0 -103
  349. package/runtime/handlers/node.d.ts +0 -2
  350. package/runtime/handlers/node.js +0 -269
  351. package/runtime/handlers/python.d.ts +0 -2
  352. package/runtime/handlers/python.js +0 -141
  353. package/runtime/handlers/pythonBundling.d.ts +0 -82
  354. package/runtime/handlers/pythonBundling.js +0 -80
  355. package/runtime/handlers/rust.d.ts +0 -2
  356. package/runtime/handlers/rust.js +0 -110
  357. package/runtime/handlers.d.ts +0 -74
  358. package/runtime/handlers.js +0 -151
  359. package/runtime/iot.d.ts +0 -1
  360. package/runtime/iot.js +0 -17
  361. package/runtime/runtime.d.ts +0 -32
  362. package/runtime/runtime.js +0 -1
  363. package/runtime/server.d.ts +0 -6
  364. package/runtime/server.js +0 -150
  365. package/runtime/workers.d.ts +0 -37
  366. package/runtime/workers.js +0 -85
  367. package/stacks/app-metadata.d.ts +0 -7
  368. package/stacks/app-metadata.js +0 -75
  369. package/stacks/assembly.d.ts +0 -1
  370. package/stacks/assembly.js +0 -4
  371. package/stacks/build.d.ts +0 -9
  372. package/stacks/build.js +0 -110
  373. package/stacks/deploy.d.ts +0 -9
  374. package/stacks/deploy.js +0 -240
  375. package/stacks/diff.d.ts +0 -8
  376. package/stacks/diff.js +0 -62
  377. package/stacks/index.d.ts +0 -10
  378. package/stacks/index.js +0 -10
  379. package/stacks/metadata.d.ts +0 -11
  380. package/stacks/metadata.js +0 -83
  381. package/stacks/monitor.d.ts +0 -32
  382. package/stacks/monitor.js +0 -151
  383. package/stacks/remove.d.ts +0 -8
  384. package/stacks/remove.js +0 -76
  385. package/stacks/synth.d.ts +0 -12
  386. package/stacks/synth.js +0 -94
  387. package/support/base-site-archiver.mjs +0 -99
  388. package/support/base-site-custom-resource/s3-handler.py +0 -195
  389. package/support/base-site-custom-resource/s3-upload.py +0 -89
  390. package/support/bootstrap-metadata-function/index.mjs +0 -58011
  391. package/support/bridge/Dockerfile +0 -3
  392. package/support/bridge/bridge.mjs +0 -146
  393. package/support/certificate-requestor/index.js +0 -549
  394. package/support/custom-resources/index.mjs +0 -180627
  395. package/support/dotnet31-bootstrap/Program.cs +0 -17
  396. package/support/dotnet31-bootstrap/dotnet-bootstrap.csproj +0 -12
  397. package/support/dotnet31-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  398. package/support/dotnet31-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  399. package/support/dotnet31-bootstrap/release/System.Runtime.CompilerServices.Unsafe.dll +0 -0
  400. package/support/dotnet31-bootstrap/release/System.Text.Encodings.Web.dll +0 -0
  401. package/support/dotnet31-bootstrap/release/System.Text.Json.dll +0 -0
  402. package/support/dotnet31-bootstrap/release/dotnet-bootstrap +0 -0
  403. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.deps.json +0 -230
  404. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.dll +0 -0
  405. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  406. package/support/dotnet31-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -9
  407. package/support/dotnet6-bootstrap/Program.cs +0 -17
  408. package/support/dotnet6-bootstrap/dotnet-bootstrap.csproj +0 -12
  409. package/support/dotnet6-bootstrap/release/Amazon.Lambda.Core.dll +0 -0
  410. package/support/dotnet6-bootstrap/release/Amazon.Lambda.RuntimeSupport.dll +0 -0
  411. package/support/dotnet6-bootstrap/release/dotnet-bootstrap +0 -0
  412. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.deps.json +0 -59
  413. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.dll +0 -0
  414. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.pdb +0 -0
  415. package/support/dotnet6-bootstrap/release/dotnet-bootstrap.runtimeconfig.json +0 -12
  416. package/support/edge-function/edge-lambda-version.mjs +0 -3
  417. package/support/edge-function/edge-lambda.mjs +0 -3
  418. package/support/edge-function/s3-bucket.mjs +0 -3
  419. package/support/event-bus-retrier/index.mjs +0 -75
  420. package/support/java-runtime/install.sh +0 -25
  421. package/support/java-runtime/pom.xml +0 -39
  422. package/support/java-runtime/release/aws-lambda-java-core-1.2.0.jar +0 -0
  423. package/support/java-runtime/release/aws-lambda-java-runtime-interface-client-1.1.0.jar +0 -0
  424. package/support/java-runtime/release/aws-lambda-java-serialization-1.0.0.jar +0 -0
  425. package/support/job-manager/index.mjs +0 -57679
  426. package/support/nixpacks/Dockerfile +0 -6
  427. package/support/nodejs-runtime/index.mjs +0 -169
  428. package/support/python-runtime/Dockerfile +0 -9
  429. package/support/python-runtime/Dockerfile.custom +0 -21
  430. package/support/python-runtime/Dockerfile.dependencies +0 -26
  431. package/support/python-runtime/runtime.py +0 -127
  432. package/support/rds-migrator/index.mjs +0 -49
  433. package/support/remix-site-function/edge-server.js +0 -161
  434. package/support/remix-site-function/polyfill.js +0 -24
  435. package/support/remix-site-function/regional-server.js +0 -164
  436. package/support/script-function/index.mjs +0 -48760
  437. package/support/service-dev-function/index.js +0 -1
  438. package/support/signing-function/index.mjs +0 -3769
  439. package/support/sls-nextjs-site-build-helper/build.cjs +0 -91
  440. package/support/sls-nextjs-site-build-helper/index-wrapper.js +0 -19
  441. package/support/sls-nextjs-site-function-code-replacer/lambda-code-updater.py +0 -156
  442. package/support/sls-nextjs-site-stub/index.html +0 -99
  443. package/support/ssr-site-function-archiver.mjs +0 -96
  444. package/support/ssr-site-function-stub/index.js +0 -5
  445. package/support/ssr-warmer/index.mjs +0 -34235
  446. package/util/error.d.ts +0 -3
  447. package/util/error.js +0 -6
  448. package/util/fs.d.ts +0 -4
  449. package/util/fs.js +0 -46
  450. package/util/lazy.d.ts +0 -1
  451. package/util/lazy.js +0 -11
  452. package/util/module.d.ts +0 -1
  453. package/util/module.js +0 -5
  454. package/util/process.d.ts +0 -2
  455. package/util/process.js +0 -3
  456. package/watcher.d.ts +0 -14
  457. package/watcher.js +0 -35
@@ -1,107 +0,0 @@
1
- import * as logs from "aws-cdk-lib/aws-logs";
2
- import * as apig from "@aws-cdk/aws-apigatewayv2-alpha";
3
- const defaultHttpFields = [
4
- // request info
5
- `"requestTime":"$context.requestTime"`,
6
- `"requestId":"$context.requestId"`,
7
- `"httpMethod":"$context.httpMethod"`,
8
- `"path":"$context.path"`,
9
- `"routeKey":"$context.routeKey"`,
10
- `"status":$context.status`,
11
- `"responseLatency":$context.responseLatency`,
12
- // integration info
13
- `"integrationRequestId":"$context.integration.requestId"`,
14
- `"integrationStatus":"$context.integration.status"`,
15
- `"integrationLatency":"$context.integration.latency"`,
16
- `"integrationServiceStatus":"$context.integration.integrationStatus"`,
17
- // caller info
18
- `"ip":"$context.identity.sourceIp"`,
19
- `"userAgent":"$context.identity.userAgent"`,
20
- // `cognitoIdentityId` is not supported in us-west-2 region
21
- //`"cognitoIdentityId":"$context.identity.cognitoIdentityId"`,
22
- ];
23
- const defaultWebSocketFields = [
24
- // request info
25
- `"requestTime":"$context.requestTime"`,
26
- `"requestId":"$context.requestId"`,
27
- `"eventType":"$context.eventType"`,
28
- `"routeKey":"$context.routeKey"`,
29
- `"status":$context.status`,
30
- // integration info
31
- `"integrationRequestId":"$context.awsEndpointRequestId"`,
32
- `"integrationStatus":"$context.integrationStatus"`,
33
- `"integrationLatency":"$context.integrationLatency"`,
34
- `"integrationServiceStatus":"$context.integration.integrationStatus"`,
35
- // caller info
36
- `"ip":"$context.identity.sourceIp"`,
37
- `"userAgent":"$context.identity.userAgent"`,
38
- `"cognitoIdentityId":"$context.identity.cognitoIdentityId"`,
39
- `"connectedAt":"$context.connectedAt"`,
40
- `"connectionId":"$context.connectionId"`,
41
- ];
42
- export function buildAccessLogData(scope, accessLog, apiStage, isDefaultStage) {
43
- if (accessLog === false) {
44
- return;
45
- }
46
- const isWebSocketApi = apiStage instanceof apig.WebSocketStage;
47
- // note: Access log configuration is not supported by L2 constructs as of CDK v1.85.0. We
48
- // need to define it at L1 construct level.
49
- // create log group
50
- let logGroup;
51
- let destinationArn;
52
- if (accessLog && accessLog.destinationArn) {
53
- destinationArn = accessLog.destinationArn;
54
- }
55
- else {
56
- const root = scope.node.root;
57
- const apiName = root.logicalPrefixedName(scope.node.id);
58
- // Backwards compatibility, only suffix if not default stage
59
- const logGroupName = "LogGroup" + (isDefaultStage ? "" : apiStage.stageName);
60
- logGroup = new logs.LogGroup(scope, logGroupName, {
61
- logGroupName: [
62
- `/aws/vendedlogs/apis`,
63
- `/${cleanupLogGroupName(apiName)}-${apiStage.api.apiId}`,
64
- `/${cleanupLogGroupName(apiStage.stageName)}`,
65
- ].join(""),
66
- retention: buildLogGroupRetention(accessLog),
67
- });
68
- destinationArn = logGroup.logGroupArn;
69
- }
70
- // get log format
71
- let format;
72
- if (accessLog && accessLog.format) {
73
- format = accessLog.format;
74
- }
75
- else if (typeof accessLog === "string") {
76
- format = accessLog;
77
- }
78
- else {
79
- format = isWebSocketApi
80
- ? "{" + defaultWebSocketFields.join(",") + "}"
81
- : "{" + defaultHttpFields.join(",") + "}";
82
- }
83
- // get L1 cfnStage construct
84
- if (!apiStage?.node.defaultChild) {
85
- throw new Error(`Failed to define the default stage for Http API`);
86
- }
87
- // set access log settings
88
- const cfnStage = apiStage.node.defaultChild;
89
- cfnStage.accessLogSettings = { format, destinationArn };
90
- return logGroup;
91
- }
92
- export function cleanupLogGroupName(str) {
93
- return str.replace(/[^.\-_/#A-Za-z0-9]/g, "");
94
- }
95
- function buildLogGroupRetention(accessLog) {
96
- const retention = accessLog && accessLog.retention;
97
- if (!retention) {
98
- return logs.RetentionDays.INFINITE;
99
- }
100
- // Case: retention is string
101
- const retentionValue = logs.RetentionDays[retention.toUpperCase()];
102
- // validate retention
103
- if (!retentionValue) {
104
- throw new Error(`Invalid access log retention value "${retention}".`);
105
- }
106
- return retentionValue;
107
- }
@@ -1,67 +0,0 @@
1
- import * as apig from "@aws-cdk/aws-apigatewayv2-alpha";
2
- import { Duration } from "./duration.js";
3
- export interface CorsProps {
4
- /**
5
- * Specifies whether credentials are included in the CORS request.
6
- * @default false
7
- */
8
- allowCredentials?: boolean;
9
- /**
10
- * The collection of allowed headers.
11
- * @default Allow all headers.
12
- *
13
- * @example
14
- * ```js
15
- * // Allow all headers
16
- * allowHeaders: ["*"]
17
- *
18
- * // Allow specific headers
19
- * allowHeaders: ["Accept", "Content-Type", "Authorization"]
20
- * ```
21
- */
22
- allowHeaders?: string[];
23
- /**
24
- * The collection of allowed HTTP methods.
25
- * @default Allow all methods.
26
- *
27
- * @example
28
- * ```js
29
- * // Allow all methods
30
- * allowMethods: ["ANY"]
31
- *
32
- * // Allow specific methods
33
- * allowMethods: ["GET", "POST"]
34
- * ```
35
- */
36
- allowMethods?: (keyof typeof apig.CorsHttpMethod)[];
37
- /**
38
- * The collection of allowed origins.
39
- * @default Allow all origins.
40
- *
41
- * @example
42
- * ```js
43
- * // Allow all origins
44
- * allowOrigins: ["*"]
45
- *
46
- * // Allow specific origins. Note that the url protocol, ie. "https://", is required.
47
- * allowOrigins: ["https://domain.com"]
48
- * ```
49
- */
50
- allowOrigins?: string[];
51
- /**
52
- * The collection of exposed headers.
53
- * @default No expose headers are allowed.
54
- */
55
- exposeHeaders?: string[];
56
- /**
57
- * Specify how long the results of a preflight response can be cached
58
- * @default No caching
59
- *
60
- * @example
61
- * ```js
62
- * maxAge: "1 day"
63
- * ```
64
- */
65
- maxAge?: Duration;
66
- }
67
- export declare function buildCorsConfig(cors?: boolean | CorsProps): apig.CorsPreflightOptions | undefined;
@@ -1,21 +0,0 @@
1
- import * as apig from "@aws-cdk/aws-apigatewayv2-alpha";
2
- import { toCdkDuration } from "./duration.js";
3
- export function buildCorsConfig(cors) {
4
- // Handle cors: false
5
- if (cors === false) {
6
- return;
7
- }
8
- // Handle cors: true | undefined
9
- if (cors === undefined || cors === true) {
10
- cors = {};
11
- }
12
- // Handle cors: CorsProps
13
- return {
14
- allowCredentials: cors.allowCredentials || false,
15
- allowHeaders: cors.allowHeaders || ["*"],
16
- allowMethods: (cors.allowMethods || ["ANY"]).map((method) => apig.CorsHttpMethod[method]),
17
- allowOrigins: cors.allowOrigins || ["*"],
18
- exposeHeaders: cors.exposeHeaders,
19
- maxAge: cors.maxAge && toCdkDuration(cors.maxAge),
20
- };
21
- }
@@ -1,47 +0,0 @@
1
- import { Construct } from "constructs";
2
- import * as apig from "@aws-cdk/aws-apigatewayv2-alpha";
3
- import * as route53 from "aws-cdk-lib/aws-route53";
4
- import * as acm from "aws-cdk-lib/aws-certificatemanager";
5
- export interface CustomDomainProps {
6
- /**
7
- * The domain to be assigned to the API endpoint (ie. api.domain.com)
8
- */
9
- domainName?: string;
10
- /**
11
- * The hosted zone in Route 53 that contains the domain. By default, SST will look for a hosted zone by stripping out the first part of the domainName that's passed in. So, if your domainName is api.domain.com. SST will default the hostedZone to domain.com.
12
- */
13
- hostedZone?: string;
14
- /**
15
- * The base mapping for the custom domain.
16
- *
17
- * For example, by setting the domainName to api.domain.com and the path to v1, the custom domain URL of the API will become https://api.domain.com/v1/. If the path is not set, the custom domain URL will be https://api.domain.com. Note the additional trailing slash in the former case.
18
- */
19
- path?: string;
20
- /**
21
- * Set this option if the domain is not hosted on Amazon Route 53.
22
- */
23
- isExternalDomain?: boolean;
24
- cdk?: {
25
- /**
26
- * Override the internally created domain name
27
- */
28
- domainName?: apig.IDomainName;
29
- /**
30
- * Override the internally created hosted zone
31
- */
32
- hostedZone?: route53.IHostedZone;
33
- /**
34
- * Override the internally created certificate
35
- */
36
- certificate?: acm.ICertificate;
37
- };
38
- }
39
- export interface CustomDomainData {
40
- readonly apigDomain: apig.IDomainName;
41
- readonly mappingKey?: string;
42
- readonly certificate?: acm.ICertificate;
43
- readonly isApigDomainCreated: boolean;
44
- readonly isCertificatedCreated: boolean;
45
- readonly url: string;
46
- }
47
- export declare function buildCustomDomainData(scope: Construct, customDomain: string | CustomDomainProps | undefined): CustomDomainData | undefined;
@@ -1,208 +0,0 @@
1
- import { Token } from "aws-cdk-lib/core";
2
- import * as apig from "@aws-cdk/aws-apigatewayv2-alpha";
3
- import * as route53 from "aws-cdk-lib/aws-route53";
4
- import * as route53Targets from "aws-cdk-lib/aws-route53-targets";
5
- import * as acm from "aws-cdk-lib/aws-certificatemanager";
6
- export function buildCustomDomainData(scope, customDomain) {
7
- if (customDomain === undefined) {
8
- return;
9
- }
10
- // customDomain is a string
11
- else if (typeof customDomain === "string") {
12
- return buildDataForStringInput(scope, customDomain);
13
- }
14
- // customDomain.domainName is a string
15
- else if (customDomain.domainName) {
16
- return customDomain.isExternalDomain
17
- ? buildDataForExternalDomainInput(scope, customDomain)
18
- : buildDataForInternalDomainInput(scope, customDomain);
19
- }
20
- // customDomain.domainName is a construct
21
- else if (customDomain.cdk?.domainName) {
22
- return buildDataForConstructInput(scope, customDomain);
23
- }
24
- // customDomain.domainName not exists
25
- throw new Error(`Missing "domainName" in sst.Api's customDomain setting`);
26
- }
27
- function buildDataForStringInput(scope, customDomain) {
28
- // validate: customDomain is a TOKEN string
29
- // ie. imported SSM value: ssm.StringParameter.valueForStringParameter()
30
- if (Token.isUnresolved(customDomain)) {
31
- throw new Error(`You also need to specify the "hostedZone" if the "domainName" is passed in as a reference.`);
32
- }
33
- assertDomainNameIsLowerCase(customDomain);
34
- const domainName = customDomain;
35
- const hostedZoneDomain = parseRoute53Domain(domainName);
36
- const hostedZone = lookupHostedZone(scope, hostedZoneDomain);
37
- const certificate = createCertificate(scope, domainName, hostedZone);
38
- const apigDomain = createApigDomain(scope, domainName, certificate);
39
- createARecords(scope, hostedZone, domainName, apigDomain);
40
- return {
41
- apigDomain,
42
- certificate,
43
- isApigDomainCreated: true,
44
- isCertificatedCreated: true,
45
- url: buildDomainUrl(domainName),
46
- };
47
- }
48
- function buildDataForInternalDomainInput(scope, customDomain) {
49
- // If customDomain is a TOKEN string, "hostedZone" has to be passed in. This
50
- // is because "hostedZone" cannot be parsed from a TOKEN value.
51
- if (Token.isUnresolved(customDomain.domainName)) {
52
- if (!customDomain.hostedZone && !customDomain.cdk?.hostedZone) {
53
- throw new Error(`You also need to specify the "hostedZone" if the "domainName" is passed in as a reference.`);
54
- }
55
- }
56
- // If domain is not a token, ensure it is lower case
57
- else {
58
- assertDomainNameIsLowerCase(customDomain.domainName);
59
- }
60
- const domainName = customDomain.domainName;
61
- // Lookup hosted zone
62
- // Note: Allow user passing in `hostedZone` object. The use case is when
63
- // there are multiple HostedZones with the same domain, but one is
64
- // public, and one is private.
65
- let hostedZone;
66
- if (customDomain.hostedZone) {
67
- const hostedZoneDomain = customDomain.hostedZone;
68
- hostedZone = lookupHostedZone(scope, hostedZoneDomain);
69
- }
70
- else if (customDomain.cdk?.hostedZone) {
71
- hostedZone = customDomain.cdk.hostedZone;
72
- }
73
- else {
74
- const hostedZoneDomain = parseRoute53Domain(domainName);
75
- hostedZone = lookupHostedZone(scope, hostedZoneDomain);
76
- }
77
- // Create certificate
78
- // Note: Allow user passing in `certificate` object. The use case is for
79
- // user to create wildcard certificate or using an imported certificate.
80
- let certificate;
81
- let isCertificatedCreated;
82
- if (customDomain.cdk?.certificate) {
83
- certificate = customDomain.cdk.certificate;
84
- isCertificatedCreated = false;
85
- }
86
- else {
87
- certificate = createCertificate(scope, domainName, hostedZone);
88
- isCertificatedCreated = true;
89
- }
90
- const apigDomain = createApigDomain(scope, domainName, certificate);
91
- const mappingKey = customDomain.path;
92
- createARecords(scope, hostedZone, domainName, apigDomain);
93
- return {
94
- apigDomain,
95
- mappingKey,
96
- certificate,
97
- isApigDomainCreated: true,
98
- isCertificatedCreated,
99
- url: buildDomainUrl(domainName, mappingKey),
100
- };
101
- }
102
- function buildDataForExternalDomainInput(scope, customDomain) {
103
- // if it is external, then a certificate is required
104
- if (!customDomain.cdk?.certificate) {
105
- throw new Error(`A valid certificate is required when "isExternalDomain" is set to "true".`);
106
- }
107
- // if it is external, then the hostedZone is not required
108
- if (customDomain.hostedZone || customDomain.cdk?.hostedZone) {
109
- throw new Error(`Hosted zones can only be configured for domains hosted on Amazon Route 53. Do not set the "hostedZone" when "isExternalDomain" is enabled.`);
110
- }
111
- // If domain is not a token, ensure it is lower case
112
- if (!Token.isUnresolved(customDomain.domainName)) {
113
- assertDomainNameIsLowerCase(customDomain.domainName);
114
- }
115
- const domainName = customDomain.domainName;
116
- const certificate = customDomain.cdk.certificate;
117
- const apigDomain = createApigDomain(scope, domainName, certificate);
118
- const mappingKey = customDomain.path;
119
- return {
120
- apigDomain,
121
- mappingKey,
122
- certificate,
123
- isApigDomainCreated: true,
124
- isCertificatedCreated: false,
125
- url: buildDomainUrl(domainName, mappingKey),
126
- };
127
- }
128
- function buildDataForConstructInput(_scope, customDomain) {
129
- // Allow user passing in `apigDomain` object. The use case is a user creates
130
- // multiple API endpoints, and is mapping them under the same custom domain.
131
- // `sst.Api` needs to expose the `apigDomain` construct created in the first
132
- // Api, and lets user pass it in when creating the second Api.
133
- if (customDomain.hostedZone || customDomain.cdk?.hostedZone) {
134
- throw new Error(`Cannot configure the "hostedZone" when the "domainName" is a construct`);
135
- }
136
- if (customDomain.cdk?.certificate) {
137
- throw new Error(`Cannot configure the "certificate" when the "domainName" is a construct`);
138
- }
139
- const apigDomain = customDomain.cdk?.domainName;
140
- const domainName = apigDomain.name;
141
- const mappingKey = customDomain.path;
142
- return {
143
- apigDomain,
144
- mappingKey,
145
- certificate: undefined,
146
- isApigDomainCreated: false,
147
- isCertificatedCreated: false,
148
- url: buildDomainUrl(domainName, mappingKey),
149
- };
150
- }
151
- function lookupHostedZone(scope, hostedZoneDomain) {
152
- return route53.HostedZone.fromLookup(scope, "HostedZone", {
153
- domainName: hostedZoneDomain,
154
- });
155
- }
156
- function createCertificate(scope, domainName, hostedZone) {
157
- return new acm.Certificate(scope, "Certificate", {
158
- domainName,
159
- validation: acm.CertificateValidation.fromDns(hostedZone),
160
- });
161
- }
162
- function createApigDomain(scope, domainName, certificate) {
163
- return new apig.DomainName(scope, "DomainName", {
164
- domainName,
165
- certificate,
166
- });
167
- }
168
- function createARecords(scope, hostedZone, domainName, apigDomain) {
169
- // create DNS record
170
- const recordProps = {
171
- recordName: domainName,
172
- zone: hostedZone,
173
- target: route53.RecordTarget.fromAlias(new route53Targets.ApiGatewayv2DomainProperties(apigDomain.regionalDomainName, apigDomain.regionalHostedZoneId)),
174
- };
175
- const records = [
176
- new route53.ARecord(scope, "AliasRecord", recordProps),
177
- new route53.AaaaRecord(scope, "AliasRecordAAAA", recordProps),
178
- ];
179
- // note: If domainName is a TOKEN string ie. ${TOKEN..}, the route53.ARecord
180
- // construct will append ".${hostedZoneName}" to the end of the domain.
181
- // This is because the construct tries to check if the record name
182
- // ends with the domain name. If not, it will append the domain name.
183
- // So, we need remove this behavior.
184
- if (Token.isUnresolved(domainName)) {
185
- records.forEach((record) => {
186
- const cfnRecord = record.node.defaultChild;
187
- cfnRecord.name = domainName;
188
- });
189
- }
190
- }
191
- function buildDomainUrl(domainName, mappingKey) {
192
- // Note: If mapping key is set, the URL needs a trailing slash. Without the
193
- // trailing slash, the API fails with the error
194
- // {"message":"Not Found"}
195
- return mappingKey ? `${domainName}/${mappingKey}/` : domainName;
196
- }
197
- function assertDomainNameIsLowerCase(domainName) {
198
- if (domainName !== domainName.toLowerCase()) {
199
- throw new Error(`The domain name needs to be in lowercase`);
200
- }
201
- }
202
- function parseRoute53Domain(domainName) {
203
- const parts = domainName.split(".");
204
- // If the domain contains subdomain, ie. api.example.com,
205
- // strip the subdomain and use the root domain, ie. example.com.
206
- // Otherwise, use the domain as is.
207
- return parts.length <= 2 ? domainName : parts.slice(1).join(".");
208
- }
@@ -1,41 +0,0 @@
1
- import * as route53 from "aws-cdk-lib/aws-route53";
2
- import * as acm from "aws-cdk-lib/aws-certificatemanager";
3
- import { AppSyncApi } from "../AppSyncApi.js";
4
- export interface CustomDomainProps {
5
- /**
6
- * The domain to be assigned to the API endpoint (ie. api.domain.com)
7
- */
8
- domainName?: string;
9
- /**
10
- * The hosted zone in Route 53 that contains the domain. By default, SST will look for a hosted zone by stripping out the first part of the domainName that's passed in. So, if your domainName is api.domain.com. SST will default the hostedZone to domain.com.
11
- */
12
- hostedZone?: string;
13
- /**
14
- * DNS record type for the Route 53 record associated with the custom domain. Default is CNAME.
15
- * @default CNAME
16
- */
17
- recordType?: "CNAME" | "A_AAAA";
18
- /**
19
- * Set this option if the domain is not hosted on Amazon Route 53.
20
- */
21
- isExternalDomain?: boolean;
22
- cdk?: {
23
- /**
24
- * Override the internally created hosted zone
25
- */
26
- hostedZone?: route53.IHostedZone;
27
- /**
28
- * Override the internally created certificate
29
- */
30
- certificate?: acm.ICertificate;
31
- };
32
- }
33
- interface CustomDomainData {
34
- certificate: acm.ICertificate;
35
- domainName: string;
36
- hostedZone?: route53.IHostedZone;
37
- recordType?: CustomDomainProps["recordType"];
38
- }
39
- export declare function buildCustomDomainData(scope: AppSyncApi, customDomain: string | CustomDomainProps | undefined): CustomDomainData | undefined;
40
- export declare function cleanup(scope: AppSyncApi, domainData: CustomDomainData): void;
41
- export {};
@@ -1,176 +0,0 @@
1
- import { Token } from "aws-cdk-lib/core";
2
- import * as route53 from "aws-cdk-lib/aws-route53";
3
- import * as route53Targets from "aws-cdk-lib/aws-route53-targets";
4
- import * as acm from "aws-cdk-lib/aws-certificatemanager";
5
- export function buildCustomDomainData(scope, customDomain) {
6
- if (customDomain === undefined) {
7
- return;
8
- }
9
- // customDomain is a string
10
- else if (typeof customDomain === "string") {
11
- return buildDataForStringInput(scope, customDomain);
12
- }
13
- // customDomain.domainName is a string
14
- else if (customDomain.domainName) {
15
- return customDomain.isExternalDomain
16
- ? buildDataForExternalDomainInput(scope, customDomain)
17
- : buildDataForInternalDomainInput(scope, customDomain);
18
- }
19
- // customDomain.domainName not exists
20
- throw new Error(`Missing "domainName" in sst.AppSyncApi's customDomain setting`);
21
- }
22
- export function cleanup(scope, domainData) {
23
- const cfnDomainName = getCfnDomainName(scope);
24
- const cfnDomainNameApiAssociation = getCfnDomainNameApiAssociation(scope);
25
- if (domainData.hostedZone) {
26
- createRecords(scope, domainData.domainName, domainData.hostedZone, domainData.recordType, cfnDomainName);
27
- }
28
- fixDomainResourceDependencies(cfnDomainName, cfnDomainNameApiAssociation);
29
- }
30
- function buildDataForStringInput(scope, customDomain) {
31
- // validate: customDomain is a TOKEN string
32
- // ie. imported SSM value: ssm.StringParameter.valueForStringParameter()
33
- if (Token.isUnresolved(customDomain)) {
34
- throw new Error(`You also need to specify the "hostedZone" if the "domainName" is passed in as a reference.`);
35
- }
36
- assertDomainNameIsLowerCase(customDomain);
37
- const domainName = customDomain;
38
- const hostedZoneDomain = domainName.split(".").slice(1).join(".");
39
- const hostedZone = lookupHostedZone(scope, hostedZoneDomain);
40
- const certificate = createCertificate(scope, domainName, hostedZone);
41
- return {
42
- certificate,
43
- domainName,
44
- hostedZone,
45
- };
46
- }
47
- function buildDataForInternalDomainInput(scope, customDomain) {
48
- // If customDomain is a TOKEN string, "hostedZone" has to be passed in. This
49
- // is because "hostedZone" cannot be parsed from a TOKEN value.
50
- if (Token.isUnresolved(customDomain.domainName)) {
51
- if (!customDomain.hostedZone) {
52
- throw new Error(`You also need to specify the "hostedZone" if the "domainName" is passed in as a reference.`);
53
- }
54
- }
55
- else {
56
- assertDomainNameIsLowerCase(customDomain.domainName);
57
- }
58
- const domainName = customDomain.domainName;
59
- // Lookup hosted zone
60
- // Note: Allow user passing in `hostedZone` object. The use case is when
61
- // there are multiple HostedZones with the same domain, but one is
62
- // public, and one is private.
63
- let hostedZone;
64
- if (customDomain.hostedZone) {
65
- const hostedZoneDomain = customDomain.hostedZone;
66
- hostedZone = lookupHostedZone(scope, hostedZoneDomain);
67
- }
68
- else if (customDomain.cdk?.hostedZone) {
69
- hostedZone = customDomain.cdk.hostedZone;
70
- }
71
- else {
72
- const hostedZoneDomain = domainName.split(".").slice(1).join(".");
73
- hostedZone = lookupHostedZone(scope, hostedZoneDomain);
74
- }
75
- // Create certificate
76
- // Note: Allow user passing in `certificate` object. The use case is for
77
- // user to create wildcard certificate or using an imported certificate.
78
- const certificate = customDomain.cdk?.certificate
79
- ? customDomain.cdk.certificate
80
- : createCertificate(scope, domainName, hostedZone);
81
- return {
82
- certificate,
83
- domainName,
84
- hostedZone,
85
- recordType: customDomain.recordType,
86
- };
87
- }
88
- function buildDataForExternalDomainInput(_scope, customDomain) {
89
- // if it is external, then a certificate is required
90
- if (!customDomain.cdk?.certificate) {
91
- throw new Error(`A valid certificate is required when "isExternalDomain" is set to "true".`);
92
- }
93
- // if it is external, then the hostedZone is not required
94
- if (customDomain.hostedZone || customDomain.cdk?.hostedZone) {
95
- throw new Error(`Hosted zones can only be configured for domains hosted on Amazon Route 53. Do not set the "hostedZone" when "isExternalDomain" is enabled.`);
96
- }
97
- const domainName = customDomain.domainName;
98
- assertDomainNameIsLowerCase(domainName);
99
- const certificate = customDomain.cdk.certificate;
100
- return {
101
- certificate,
102
- domainName,
103
- };
104
- }
105
- function lookupHostedZone(scope, hostedZoneDomain) {
106
- return route53.HostedZone.fromLookup(scope, "HostedZone", {
107
- domainName: hostedZoneDomain,
108
- });
109
- }
110
- function createCertificate(scope, domainName, hostedZone) {
111
- return new acm.Certificate(scope, "Certificate", {
112
- domainName,
113
- validation: acm.CertificateValidation.fromDns(hostedZone),
114
- });
115
- }
116
- function createRecords(scope, domainName, hostedZone, recordType, cfnDomainName) {
117
- // create DNS record
118
- const aRecordProps = {
119
- recordName: domainName,
120
- zone: hostedZone,
121
- target: route53.RecordTarget.fromAlias({
122
- bind() {
123
- return {
124
- hostedZoneId: route53Targets.CloudFrontTarget.CLOUDFRONT_ZONE_ID,
125
- dnsName: cfnDomainName.attrAppSyncDomainName,
126
- };
127
- },
128
- }),
129
- };
130
- const records = (recordType || "CNAME") === "CNAME"
131
- ? [
132
- new route53.CnameRecord(scope, "CnameRecord", {
133
- recordName: domainName,
134
- zone: hostedZone,
135
- domainName: cfnDomainName.attrAppSyncDomainName,
136
- }),
137
- ]
138
- : [
139
- new route53.ARecord(scope, "AliasRecord", aRecordProps),
140
- new route53.AaaaRecord(scope, "AliasRecordAAAA", aRecordProps),
141
- ];
142
- // note: If domainName is a TOKEN string ie. ${TOKEN..}, the route53.ARecord
143
- // construct will append ".${hostedZoneName}" to the end of the domain.
144
- // This is because the construct tries to check if the record name
145
- // ends with the domain name. If not, it will append the domain name.
146
- // So, we need remove this behavior.
147
- if (Token.isUnresolved(domainName)) {
148
- records.forEach((record) => {
149
- const cfnRecord = record.node.defaultChild;
150
- cfnRecord.name = domainName;
151
- });
152
- }
153
- }
154
- function getCfnDomainName(scope) {
155
- return scope.cdk.graphqlApi.node.children.find((child) => child.cfnResourceType === "AWS::AppSync::DomainName");
156
- }
157
- function getCfnDomainNameApiAssociation(scope) {
158
- return scope.cdk.graphqlApi.node.children.find((child) => child.cfnResourceType ===
159
- "AWS::AppSync::DomainNameApiAssociation");
160
- }
161
- function fixDomainResourceDependencies(cfnDomainName, cfnDomainNameApiAssociation) {
162
- // note: As of CDK 2.20.0, the "AWS::AppSync::DomainNameApiAssociation" resource
163
- // is not dependent on the "AWS::AppSync::DomainName" resource. This leads
164
- // CloudFormation deploy error if DomainNameApiAssociation is created before
165
- // DomainName is created.
166
- // https://github.com/aws/aws-cdk/issues/18395#issuecomment-1099455502
167
- // To workaround this issue, we need to add a dependency manually.
168
- if (cfnDomainName && cfnDomainNameApiAssociation) {
169
- cfnDomainNameApiAssociation.node.addDependency(cfnDomainName);
170
- }
171
- }
172
- function assertDomainNameIsLowerCase(domainName) {
173
- if (domainName !== domainName.toLowerCase()) {
174
- throw new Error(`The domain name needs to be in lowercase`);
175
- }
176
- }
@@ -1,3 +0,0 @@
1
- export declare function addExtensionToHandler(handler: string, extension: string): string;
2
- export declare function getHandlerFullPosixPath(srcPath: string, handler: string): string;
3
- export declare function getHandlerHash(posixPath: string): string;