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,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;