@aws/nx-plugin 1.0.0-rc.65 → 1.0.0-rc.67

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 (101) hide show
  1. package/LICENSE-THIRD-PARTY +59 -87
  2. package/migrations.json +61 -56
  3. package/package.json +4 -4
  4. package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +1 -1
  5. package/src/migrations/latest/smithy-server-package-rename/metadata.json +3 -0
  6. package/src/migrations/latest/smithy-server-package-rename/migration.js +123 -0
  7. package/src/migrations/latest/smithy-server-package-rename/migration.js.map +1 -0
  8. package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js.map +1 -0
  9. package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js.map +1 -0
  10. package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js.map +1 -0
  11. package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js.map +1 -0
  12. package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js.map +1 -0
  13. package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js.map +1 -0
  14. package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js.map +1 -0
  15. package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js.map +1 -0
  16. package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js.map +1 -0
  17. package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js.map +1 -0
  18. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.d.ts +6 -0
  19. package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js.map +1 -0
  20. package/src/preset/__snapshots__/generator.spec.ts.snap +2 -2
  21. package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +4 -4
  22. package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +3 -3
  23. package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +2 -2
  24. package/src/py/agent/a2a-connection/generator.d.ts +1 -1
  25. package/src/py/agent/gateway-connection/generator.d.ts +1 -1
  26. package/src/py/agent/mcp-connection/generator.d.ts +1 -1
  27. package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  28. package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +12 -12
  29. package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  30. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +3 -3
  31. package/src/py/rdb/__snapshots__/generator.spec.ts.snap +3 -3
  32. package/src/smithy/project/__snapshots__/generator.spec.ts.snap +2 -2
  33. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +10 -10
  34. package/src/smithy/ts/api/files/handler.ts.template +1 -1
  35. package/src/smithy/ts/api/files/local-server.ts.template +1 -1
  36. package/src/smithy/ts/api/generator.d.ts +2 -2
  37. package/src/smithy/ts/api/generator.js +2 -2
  38. package/src/smithy/ts/api/generator.js.map +1 -1
  39. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +12 -12
  40. package/src/ts/agent/__snapshots__/generator.spec.ts.snap +2 -2
  41. package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +1 -1
  42. package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +2 -2
  43. package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +2 -2
  44. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
  45. package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +4 -4
  46. package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +6 -6
  47. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +19 -19
  48. package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +2 -2
  49. package/src/utils/versions.d.ts +50 -50
  50. package/src/utils/versions.js +49 -49
  51. package/src/utils/versions.js.map +1 -1
  52. package/src/migrations/latest/add-deploy-sandbox-target/migration.js.map +0 -1
  53. package/src/migrations/latest/gateway-agent-targets/migration.js.map +0 -1
  54. package/src/migrations/latest/gateway-cognito-passthrough/migration.js.map +0 -1
  55. package/src/migrations/latest/py-agent-lifespan-construction/migration.js.map +0 -1
  56. package/src/migrations/latest/rename-load-runtime-config-target/migration.js.map +0 -1
  57. package/src/migrations/latest/rolldown-code-splitting/migration.js.map +0 -1
  58. package/src/migrations/latest/smithy-build-without-docker/migration.js.map +0 -1
  59. package/src/migrations/latest/smithy-ssdk-bundle-pins/migration.js.map +0 -1
  60. package/src/migrations/latest/strip-pip-from-python-images/migration.js.map +0 -1
  61. package/src/migrations/latest/vite-config-import-meta-dirname/migration.js.map +0 -1
  62. package/src/migrations/latest/waf-log-group-removal/migration.js.map +0 -1
  63. /package/src/migrations/latest/{add-deploy-sandbox-target → smithy-server-package-rename}/migration.d.ts +0 -0
  64. /package/src/migrations/{latest/smithy-ssdk-bundle-pins → v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins}/metadata.json +0 -0
  65. /package/src/migrations/{latest/py-agent-lifespan-construction → v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins}/migration.d.ts +0 -0
  66. /package/src/migrations/{latest/smithy-ssdk-bundle-pins → v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins}/migration.js +0 -0
  67. /package/src/migrations/{latest/smithy-ssdk-bundle-pins → v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins}/rc57-service.Dockerfile.fixture +0 -0
  68. /package/src/migrations/{latest/gateway-agent-targets → v1.0.0-rc.59/0001-gateway-agent-targets}/__snapshots__/migration.spec.ts.snap +0 -0
  69. /package/src/migrations/{latest/gateway-agent-targets → v1.0.0-rc.59/0001-gateway-agent-targets}/metadata.json +0 -0
  70. /package/src/migrations/{latest/gateway-agent-targets → v1.0.0-rc.59/0001-gateway-agent-targets}/migration.d.ts +0 -0
  71. /package/src/migrations/{latest/gateway-agent-targets → v1.0.0-rc.59/0001-gateway-agent-targets}/migration.js +0 -0
  72. /package/src/migrations/{latest/gateway-cognito-passthrough → v1.0.0-rc.60/0001-gateway-cognito-passthrough}/__snapshots__/migration.spec.ts.snap +0 -0
  73. /package/src/migrations/{latest/gateway-cognito-passthrough → v1.0.0-rc.60/0001-gateway-cognito-passthrough}/metadata.json +0 -0
  74. /package/src/migrations/{latest/gateway-cognito-passthrough → v1.0.0-rc.60/0001-gateway-cognito-passthrough}/migration.d.ts +0 -0
  75. /package/src/migrations/{latest/gateway-cognito-passthrough → v1.0.0-rc.60/0001-gateway-cognito-passthrough}/migration.js +0 -0
  76. /package/src/migrations/{latest/waf-log-group-removal → v1.0.0-rc.60/0002-waf-log-group-removal}/__snapshots__/migration.spec.ts.snap +0 -0
  77. /package/src/migrations/{latest/waf-log-group-removal → v1.0.0-rc.60/0002-waf-log-group-removal}/metadata.json +0 -0
  78. /package/src/migrations/{latest/waf-log-group-removal → v1.0.0-rc.60/0002-waf-log-group-removal}/migration.d.ts +0 -0
  79. /package/src/migrations/{latest/waf-log-group-removal → v1.0.0-rc.60/0002-waf-log-group-removal}/migration.js +0 -0
  80. /package/src/migrations/{latest/strip-pip-from-python-images → v1.0.0-rc.60/0003-strip-pip-from-python-images}/__snapshots__/migration.spec.ts.snap +0 -0
  81. /package/src/migrations/{latest/strip-pip-from-python-images → v1.0.0-rc.60/0003-strip-pip-from-python-images}/metadata.json +0 -0
  82. /package/src/migrations/{latest/rename-load-runtime-config-target → v1.0.0-rc.60/0003-strip-pip-from-python-images}/migration.d.ts +0 -0
  83. /package/src/migrations/{latest/strip-pip-from-python-images → v1.0.0-rc.60/0003-strip-pip-from-python-images}/migration.js +0 -0
  84. /package/src/migrations/{latest/py-agent-lifespan-construction → v1.0.0-rc.61/0001-py-agent-lifespan-construction}/metadata.json +0 -0
  85. /package/src/migrations/{latest/rolldown-code-splitting → v1.0.0-rc.61/0001-py-agent-lifespan-construction}/migration.d.ts +0 -0
  86. /package/src/migrations/{latest/py-agent-lifespan-construction → v1.0.0-rc.61/0001-py-agent-lifespan-construction}/migration.js +0 -0
  87. /package/src/migrations/{latest/rename-load-runtime-config-target → v1.0.0-rc.62/0001-rename-load-runtime-config-target}/metadata.json +0 -0
  88. /package/src/migrations/{latest/smithy-build-without-docker → v1.0.0-rc.62/0001-rename-load-runtime-config-target}/migration.d.ts +0 -0
  89. /package/src/migrations/{latest/rename-load-runtime-config-target → v1.0.0-rc.62/0001-rename-load-runtime-config-target}/migration.js +0 -0
  90. /package/src/migrations/{latest/add-deploy-sandbox-target → v1.0.0-rc.63/0001-add-deploy-sandbox-target}/metadata.json +0 -0
  91. /package/src/migrations/{latest/smithy-ssdk-bundle-pins → v1.0.0-rc.63/0001-add-deploy-sandbox-target}/migration.d.ts +0 -0
  92. /package/src/migrations/{latest/add-deploy-sandbox-target → v1.0.0-rc.63/0001-add-deploy-sandbox-target}/migration.js +0 -0
  93. /package/src/migrations/{latest/smithy-build-without-docker → v1.0.0-rc.64/0001-smithy-build-without-docker}/legacy-service.Dockerfile.fixture +0 -0
  94. /package/src/migrations/{latest/smithy-build-without-docker → v1.0.0-rc.64/0001-smithy-build-without-docker}/metadata.json +0 -0
  95. /package/src/migrations/{latest/strip-pip-from-python-images → v1.0.0-rc.64/0001-smithy-build-without-docker}/migration.d.ts +0 -0
  96. /package/src/migrations/{latest/smithy-build-without-docker → v1.0.0-rc.64/0001-smithy-build-without-docker}/migration.js +0 -0
  97. /package/src/migrations/{latest/vite-config-import-meta-dirname → v1.0.0-rc.65/0001-vite-config-import-meta-dirname}/metadata.json +0 -0
  98. /package/src/migrations/{latest/vite-config-import-meta-dirname → v1.0.0-rc.65/0001-vite-config-import-meta-dirname}/migration.d.ts +0 -0
  99. /package/src/migrations/{latest/vite-config-import-meta-dirname → v1.0.0-rc.65/0001-vite-config-import-meta-dirname}/migration.js +0 -0
  100. /package/src/migrations/{latest/rolldown-code-splitting → v1.0.0-rc.65/0002-rolldown-code-splitting}/metadata.json +0 -0
  101. /package/src/migrations/{latest/rolldown-code-splitting → v1.0.0-rc.65/0002-rolldown-code-splitting}/migration.js +0 -0
@@ -364,7 +364,7 @@ exports[`smithyProjectGenerator > should generate smithy project with default op
364
364
  "software.amazon.smithy:smithy-aws-traits:1.72.1",
365
365
  "software.amazon.smithy:smithy-validation-model:1.72.1",
366
366
  "software.amazon.smithy:smithy-openapi:1.72.1",
367
- "software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.50.0"
367
+ "software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.52.0"
368
368
  ]
369
369
  }
370
370
  }
@@ -550,7 +550,7 @@ exports[`smithyProjectGenerator > should handle kebab-case conversion for servic
550
550
  "software.amazon.smithy:smithy-aws-traits:1.72.1",
551
551
  "software.amazon.smithy:smithy-validation-model:1.72.1",
552
552
  "software.amazon.smithy:smithy-openapi:1.72.1",
553
- "software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.50.0"
553
+ "software.amazon.smithy.typescript:smithy-aws-typescript-codegen:0.52.0"
554
554
  ]
555
555
  }
556
556
  }
@@ -413,7 +413,7 @@ terraform {
413
413
  required_providers {
414
414
  aws = {
415
415
  source = "hashicorp/aws"
416
- version = "6.57.1"
416
+ version = "6.58.0"
417
417
  }
418
418
  random = {
419
419
  source = "hashicorp/random"
@@ -672,7 +672,7 @@ exports[`tsSmithyApiGenerator > should generate smithy ts api with Terraform pro
672
672
  required_providers {
673
673
  aws = {
674
674
  source = "hashicorp/aws"
675
- version = "6.57.1"
675
+ version = "6.58.0"
676
676
  }
677
677
  }
678
678
  }
@@ -1628,7 +1628,7 @@ exports[`tsSmithyApiGenerator > should generate smithy ts api with default optio
1628
1628
  "import {
1629
1629
  convertEvent,
1630
1630
  convertVersion1Response,
1631
- } from '@aws-smithy/server-apigateway';
1631
+ } from '@smithy/server-apigateway';
1632
1632
  import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
1633
1633
  import middy from '@middy/core';
1634
1634
  import { Tracer } from '@aws-lambda-powertools/tracer';
@@ -1693,7 +1693,7 @@ export const handler = middy<APIGatewayProxyEvent, APIGatewayProxyResult>()
1693
1693
 
1694
1694
  exports[`tsSmithyApiGenerator > should generate smithy ts api with default options > local-server.ts 1`] = `
1695
1695
  "import { IncomingMessage, ServerResponse, createServer } from 'http';
1696
- import { convertRequest, writeResponse } from '@aws-smithy/server-node';
1696
+ import { convertRequest, writeResponse } from '@smithy/server-node';
1697
1697
  import { Logger } from '@aws-lambda-powertools/logger';
1698
1698
  import { Metrics } from '@aws-lambda-powertools/metrics';
1699
1699
  import { Tracer } from '@aws-lambda-powertools/tracer';
@@ -1807,7 +1807,7 @@ exports[`tsSmithyApiGenerator > should handle kebab-case API names correctly > k
1807
1807
  "import {
1808
1808
  convertEvent,
1809
1809
  convertVersion1Response,
1810
- } from '@aws-smithy/server-apigateway';
1810
+ } from '@smithy/server-apigateway';
1811
1811
  import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
1812
1812
  import middy from '@middy/core';
1813
1813
  import { Tracer } from '@aws-lambda-powertools/tracer';
@@ -1904,7 +1904,7 @@ terraform {
1904
1904
  required_providers {
1905
1905
  aws = {
1906
1906
  source = "hashicorp/aws"
1907
- version = "6.57.1"
1907
+ version = "6.58.0"
1908
1908
  }
1909
1909
  random = {
1910
1910
  source = "hashicorp/random"
@@ -2160,7 +2160,7 @@ output "waf_web_acl_arn" {
2160
2160
  required_providers {
2161
2161
  aws = {
2162
2162
  source = "hashicorp/aws"
2163
- version = "6.57.1"
2163
+ version = "6.58.0"
2164
2164
  }
2165
2165
  }
2166
2166
  }
@@ -2879,7 +2879,7 @@ terraform {
2879
2879
  required_providers {
2880
2880
  aws = {
2881
2881
  source = "hashicorp/aws"
2882
- version = "6.57.1"
2882
+ version = "6.58.0"
2883
2883
  }
2884
2884
  random = {
2885
2885
  source = "hashicorp/random"
@@ -3135,7 +3135,7 @@ output "waf_web_acl_arn" {
3135
3135
  required_providers {
3136
3136
  aws = {
3137
3137
  source = "hashicorp/aws"
3138
- version = "6.57.1"
3138
+ version = "6.58.0"
3139
3139
  }
3140
3140
  }
3141
3141
  }
@@ -3839,7 +3839,7 @@ exports[`tsSmithyApiGenerator > terraform iac > should generate terraform with c
3839
3839
  required_providers {
3840
3840
  aws = {
3841
3841
  source = "hashicorp/aws"
3842
- version = "6.57.1"
3842
+ version = "6.58.0"
3843
3843
  }
3844
3844
  }
3845
3845
  }
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  convertEvent,
3
3
  convertVersion1Response,
4
- } from '@aws-smithy/server-apigateway';
4
+ } from '@smithy/server-apigateway';
5
5
  import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
6
6
  import middy from '@middy/core';
7
7
  import { Tracer } from '@aws-lambda-powertools/tracer';
@@ -1,5 +1,5 @@
1
1
  import { IncomingMessage, ServerResponse, createServer } from 'http';
2
- import { convertRequest, writeResponse } from '@aws-smithy/server-node';
2
+ import { convertRequest, writeResponse } from '@smithy/server-node';
3
3
  import { Logger } from '@aws-lambda-powertools/logger';
4
4
  import { Metrics } from '@aws-lambda-powertools/metrics';
5
5
  import { Tracer } from '@aws-lambda-powertools/tracer';
@@ -13,9 +13,9 @@ export interface TsSmithyApiMetadata extends IacMetadata {
13
13
  readonly modelProject: string;
14
14
  }
15
15
  export declare const DEPENDENCIES: import("../../../utils/declared-dependencies").DependencyDeclaration<readonly [{
16
- readonly name: "@aws-smithy/server-apigateway";
16
+ readonly name: "@smithy/server-apigateway";
17
17
  }, {
18
- readonly name: "@aws-smithy/server-node";
18
+ readonly name: "@smithy/server-node";
19
19
  }, {
20
20
  readonly name: "@middy/core";
21
21
  }, {
@@ -25,10 +25,10 @@ import smithyProjectGenerator from "../../project/generator.js";
25
25
  export const DEPENDENCIES = declareDependencies()({
26
26
  ts: [
27
27
  {
28
- name: '@aws-smithy/server-apigateway'
28
+ name: '@smithy/server-apigateway'
29
29
  },
30
30
  {
31
- name: '@aws-smithy/server-node'
31
+ name: '@smithy/server-node'
32
32
  },
33
33
  {
34
34
  name: '@middy/core'
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport tsProjectGenerator, { getTsLibDetails } from '../../../ts/lib/generator';\nimport { addTsDependencies } from '../../../utils/add-dependencies';\nimport {\n API_CONSTRUCTS_DEPENDENCIES,\n API_CONSTRUCTS_PY_DEPENDENCIES,\n addApiGatewayInfra,\n} from '../../../utils/api-constructs/api-constructs';\nimport { addSharedConstructsOpenApiMetadataGenerateTarget } from '../../../utils/api-constructs/open-api-metadata';\nimport {\n addTypeScriptBundleTarget,\n BUNDLE_DEPENDENCIES,\n} from '../../../utils/bundle/bundle';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../../utils/declared-dependencies';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { FS_DEPENDENCIES, FsCommands } from '../../../utils/fs';\nimport { updateGitIgnore } from '../../../utils/git';\nimport { resolveIac } from '../../../utils/iac';\nimport { installDependencies } from '../../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport { esmVars } from '../../../utils/module-format';\nimport { toClassName, toKebabCase } from '../../../utils/names';\nimport {\n addDependencyToTargetIfNotPresent,\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n normalizeTargetKeyOrder,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport { assignPort } from '../../../utils/port';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../../utils/shared-constructs';\nimport type { IacMetadata } from '../../../utils/shared-constructs-constants';\nimport smithyProjectGenerator from '../../project/generator';\nimport type { TsSmithyApiGeneratorSchema } from './schema';\n\n/** The metadata this generator records, which its predicates read. */\nexport interface TsSmithyApiMetadata extends IacMetadata {\n readonly apiName: string;\n readonly auth: TsSmithyApiGeneratorSchema['auth'];\n readonly modelProject: string;\n}\n\n// Each entry names the branch it belongs to, so the same declaration drives both\n// adding and the version sync.\nexport const DEPENDENCIES = declareDependencies<TsSmithyApiMetadata>()({\n ts: [\n { name: '@aws-smithy/server-apigateway' },\n { name: '@aws-smithy/server-node' },\n { name: '@middy/core' },\n { name: '@aws-lambda-powertools/logger' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@aws-lambda-powertools/tracer' },\n { name: '@aws-lambda-powertools/metrics' },\n { name: '@aws-sdk/client-appconfigdata' },\n // The custom authorizer handler parses its event.\n { name: '@aws-lambda-powertools/parser', when: (m) => m.auth === 'custom' },\n { name: '@types/aws-lambda', dev: true },\n // tsx runs the local server from the workspace root.\n { name: 'tsx', dev: true, root: true },\n ...ownedElsewhere(FS_DEPENDENCIES),\n ...ownedElsewhere(API_CONSTRUCTS_DEPENDENCIES),\n ...ownedElsewhere(BUNDLE_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n py: ownedElsewhere(API_CONSTRUCTS_PY_DEPENDENCIES),\n});\n\nexport const TS_SMITHY_API_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const tsSmithyApiGenerator = async (\n tree: Tree,\n options: TsSmithyApiGeneratorSchema,\n): Promise<GeneratorCallback> => {\n if (\n (options.infra as string) !== 'rest-lambda' &&\n (options.infra as string) !== 'none'\n ) {\n throw new Error(\n `Unsupported infra '${options.infra}' for Smithy TypeScript API. ` +\n `Only 'rest-lambda' (API Gateway REST API) is supported.`,\n );\n }\n\n const integrationPattern = getIntegrationPattern(options);\n const apiNameClassName = toClassName(options.name);\n const apiNameKebabCase = toKebabCase(options.name);\n const { fullyQualifiedName: backendFullyQualifiedName, dir } =\n getTsLibDetails(tree, options);\n const modelProjectName = `${apiNameKebabCase}-model`;\n\n let projectExists: boolean;\n try {\n readProjectConfigurationUnqualified(tree, backendFullyQualifiedName);\n projectExists = true;\n } catch {\n projectExists = false;\n }\n\n if (!projectExists) {\n // Generate the model project\n await smithyProjectGenerator(tree, {\n name: modelProjectName,\n serviceName: apiNameClassName,\n namespace: options.namespace,\n directory: dir,\n subDirectory: 'model',\n preferInstallDependencies: false,\n });\n\n // Generate the backend project\n await tsProjectGenerator(tree, {\n name: options.name,\n directory: dir,\n subDirectory: 'backend',\n preferInstallDependencies: false,\n });\n }\n\n // Add metadata to associate backend project with model project\n const modelProjectConfig = readProjectConfigurationUnqualified(\n tree,\n modelProjectName,\n );\n updateProjectConfiguration(tree, modelProjectConfig.name, {\n ...modelProjectConfig,\n metadata: {\n ...modelProjectConfig.metadata,\n backendProject: backendFullyQualifiedName,\n } as any,\n });\n\n // Recorded in the metadata below so the version sync can tell a CDK\n // project from a Terraform one; undefined when no infrastructure was\n // generated, in which case neither provider's packages were added.\n const iac =\n options.infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n // Recorded here and read by the declaration's predicates, so the packages\n // added below are exactly the ones the version sync will own.\n const metadata: TsSmithyApiMetadata = {\n apiName: options.name,\n auth: options.auth,\n modelProject: modelProjectConfig.name,\n ...(iac ? { iac } : {}),\n };\n\n addGeneratorMetadata(\n tree,\n backendFullyQualifiedName,\n TS_SMITHY_API_GENERATOR_INFO,\n metadata,\n );\n\n const backendProjectConfig = readProjectConfigurationUnqualified(\n tree,\n backendFullyQualifiedName,\n );\n const port = assignPort(tree, backendProjectConfig, 3001);\n\n // Delete default index.ts with \"hello\" function\n tree.delete(joinPathFragments(backendProjectConfig.sourceRoot, 'index.ts'));\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n backendProjectConfig.sourceRoot,\n {\n apiNameClassName,\n port,\n ...esmVars(tree),\n },\n );\n\n if (options.infra !== 'none') {\n if (options.auth === 'custom') {\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n '..',\n '..',\n '..',\n 'utils',\n 'api-constructs',\n 'files',\n 'cdk',\n 'authorizer',\n 'rest',\n ),\n backendProjectConfig.sourceRoot,\n {},\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n // Add infrastructure\n await sharedConstructsGenerator(\n tree,\n {\n iac,\n },\n DEPENDENCIES,\n );\n await addApiGatewayInfra(\n tree,\n {\n iac,\n apiProjectName: backendFullyQualifiedName,\n apiNameClassName,\n apiNameKebabCase,\n auth: options.auth,\n constructType: 'rest',\n backend: {\n type: 'smithy',\n bundleOutputDir: joinPathFragments(\n 'dist',\n backendProjectConfig.root,\n 'bundle',\n ),\n integrationPattern,\n ...(options.auth === 'custom' && {\n authorizerBundleOutputDir: joinPathFragments(\n 'dist',\n backendProjectConfig.root,\n 'bundle',\n 'authorizer',\n ),\n }),\n },\n },\n DEPENDENCIES,\n );\n addSharedConstructsOpenApiMetadataGenerateTarget(tree, {\n iac,\n apiNameKebabCase,\n specPath: joinPathFragments(\n 'dist',\n modelProjectConfig.root,\n 'build',\n 'openapi',\n 'openapi.json',\n ),\n specBuildTargetName: `${modelProjectConfig.name}:build`,\n });\n\n // Add bundle target using rolldown\n await addTypeScriptBundleTarget(\n tree,\n backendProjectConfig,\n {\n targetFilePath: 'src/handler.ts',\n external: [/@aws-sdk\\/.*/], // lambda runtime provides aws sdk\n },\n DEPENDENCIES,\n );\n\n if (options.auth === 'custom') {\n await addTypeScriptBundleTarget(\n tree,\n backendProjectConfig,\n {\n targetFilePath: 'src/authorizer.ts',\n bundleOutputDir: 'authorizer',\n external: [/@aws-sdk\\/.*/],\n },\n DEPENDENCIES,\n );\n }\n }\n\n const cmd = new FsCommands(tree, DEPENDENCIES);\n const generatedSrcDirFromRoot = '{projectRoot}/src/generated';\n\n // Target for copying the ssdk built by the model\n backendProjectConfig.targets['copy-ssdk'] = {\n cache: true,\n inputs: [\n {\n dependentTasksOutputFiles: '**/*',\n },\n ],\n executor: 'nx:run-commands',\n options: {\n commands: [\n cmd.rm(generatedSrcDirFromRoot),\n cmd.mkdir(generatedSrcDirFromRoot),\n cmd.cp(\n joinPathFragments('dist', modelProjectConfig.root, 'build', 'ssdk'),\n joinPathFragments(generatedSrcDirFromRoot, 'ssdk'),\n ),\n ],\n parallel: false,\n },\n outputs: ['{projectRoot}/src/generated'],\n dependsOn: [`${modelProjectConfig.name}:build`],\n };\n addDependencyToTargetIfNotPresent(\n backendProjectConfig,\n 'compile',\n 'copy-ssdk',\n );\n\n // Add a project which continuously copies based on changes to the model project\n // This allows the \"serve\" target to hot reload when the smithy model is changed\n backendProjectConfig.targets['watch-copy-ssdk'] = {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n command: `nx watch --projects=${modelProjectConfig.name} --includeDependencies -- nx run ${backendFullyQualifiedName}:copy-ssdk`,\n },\n };\n\n // Add serve target for running the server locally\n backendProjectConfig.targets.serve = normalizeTargetKeyOrder({\n executor: 'nx:run-commands',\n continuous: true,\n dependsOn: ['copy-ssdk', 'watch-copy-ssdk'],\n options: {\n command: 'tsx --watch src/local-server.ts',\n cwd: '{projectRoot}',\n },\n });\n\n const existingDevDependsOn =\n backendProjectConfig.targets['dev']?.dependsOn ?? [];\n\n backendProjectConfig.targets['dev'] = normalizeTargetKeyOrder({\n ...backendProjectConfig.targets.serve,\n // Own copy of dependsOn so adding dev dependencies below doesn't\n // mutate the shared array referenced by the serve target.\n dependsOn: [...(backendProjectConfig.targets.serve.dependsOn ?? [])],\n options: {\n ...backendProjectConfig.targets.serve.options,\n env: {\n LOCAL_DEV: 'true',\n },\n },\n });\n\n // Preserve any dependencies added to dev by connection generators\n for (const dependency of existingDevDependsOn) {\n addDependencyToTargetIfNotPresent(backendProjectConfig, 'dev', dependency);\n }\n\n // Ignore generated code\n updateGitIgnore(tree, backendProjectConfig.root, (patterns) => [\n ...patterns,\n 'src/generated',\n ]);\n\n updateProjectConfiguration(\n tree,\n backendFullyQualifiedName,\n backendProjectConfig,\n );\n\n addTsDependencies(tree, DEPENDENCIES, {\n metadata,\n projectRoot: backendProjectConfig.root,\n });\n\n await addGeneratorMetricsIfApplicable(tree, [TS_SMITHY_API_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nconst getIntegrationPattern = (\n options: TsSmithyApiGeneratorSchema,\n): 'isolated' | 'shared' => options.integrationPattern ?? 'isolated';\n\nexport default tsSmithyApiGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","tsProjectGenerator","getTsLibDetails","addTsDependencies","API_CONSTRUCTS_DEPENDENCIES","API_CONSTRUCTS_PY_DEPENDENCIES","addApiGatewayInfra","addSharedConstructsOpenApiMetadataGenerateTarget","addTypeScriptBundleTarget","BUNDLE_DEPENDENCIES","declareDependencies","ownedElsewhere","formatFilesInSubtree","FS_DEPENDENCIES","FsCommands","updateGitIgnore","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","esmVars","toClassName","toKebabCase","addDependencyToTargetIfNotPresent","addGeneratorMetadata","getGeneratorInfo","normalizeTargetKeyOrder","readProjectConfigurationUnqualified","assignPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","smithyProjectGenerator","DEPENDENCIES","ts","name","when","m","auth","dev","root","py","TS_SMITHY_API_GENERATOR_INFO","filename","tsSmithyApiGenerator","tree","options","infra","Error","integrationPattern","getIntegrationPattern","apiNameClassName","apiNameKebabCase","fullyQualifiedName","backendFullyQualifiedName","dir","modelProjectName","projectExists","serviceName","namespace","directory","subDirectory","preferInstallDependencies","modelProjectConfig","metadata","backendProject","iac","undefined","apiName","modelProject","backendProjectConfig","port","delete","sourceRoot","dirname","overwriteStrategy","KeepExisting","apiProjectName","constructType","backend","type","bundleOutputDir","authorizerBundleOutputDir","specPath","specBuildTargetName","targetFilePath","external","cmd","generatedSrcDirFromRoot","targets","cache","inputs","dependentTasksOutputFiles","executor","commands","rm","mkdir","cp","parallel","outputs","dependsOn","continuous","command","serve","cwd","existingDevDependsOn","env","LOCAL_DEV","dependency","patterns","projectRoot","languages"],"mappings":"AAAA;;;CAGC,GACD,SAEEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,EAEjBC,0BAA0B,QACrB,aAAa;AACpB,OAAOC,sBAAsBC,eAAe,QAAQ,+BAA4B;AAChF,SAASC,iBAAiB,QAAQ,qCAAkC;AACpE,SACEC,2BAA2B,EAC3BC,8BAA8B,EAC9BC,kBAAkB,QACb,kDAA+C;AACtD,SAASC,gDAAgD,QAAQ,qDAAkD;AACnH,SACEC,yBAAyB,EACzBC,mBAAmB,QACd,kCAA+B;AACtC,SACEC,mBAAmB,EACnBC,cAAc,QACT,0CAAuC;AAC9C,SAASC,oBAAoB,QAAQ,2BAAwB;AAC7D,SAASC,eAAe,EAAEC,UAAU,QAAQ,uBAAoB;AAChE,SAASC,eAAe,QAAQ,wBAAqB;AACrD,SAASC,UAAU,QAAQ,wBAAqB;AAChD,SAASC,mBAAmB,QAAQ,4BAAyB;AAC7D,SAASC,+BAA+B,QAAQ,4BAAyB;AACzE,SAASC,OAAO,QAAQ,kCAA+B;AACvD,SAASC,WAAW,EAAEC,WAAW,QAAQ,0BAAuB;AAChE,SACEC,iCAAiC,EACjCC,oBAAoB,EACpBC,gBAAgB,EAEhBC,uBAAuB,EACvBC,mCAAmC,QAC9B,uBAAoB;AAC3B,SAASC,UAAU,QAAQ,yBAAsB;AACjD,SACEC,8BAA8B,EAC9BC,yBAAyB,QACpB,sCAAmC;AAE1C,OAAOC,4BAA4B,6BAA0B;AAU7D,iFAAiF;AACjF,+BAA+B;AAC/B,OAAO,MAAMC,eAAerB,sBAA2C;IACrEsB,IAAI;QACF;YAAEC,MAAM;QAAgC;QACxC;YAAEA,MAAM;QAA0B;QAClC;YAAEA,MAAM;QAAc;QACtB;YAAEA,MAAM;QAAgC;QACxC;YAAEA,MAAM;QAAoC;QAC5C;YAAEA,MAAM;QAAgC;QACxC;YAAEA,MAAM;QAAiC;QACzC;YAAEA,MAAM;QAAgC;QACxC,kDAAkD;QAClD;YAAEA,MAAM;YAAiCC,MAAM,CAACC,IAAMA,EAAEC,IAAI,KAAK;QAAS;QAC1E;YAAEH,MAAM;YAAqBI,KAAK;QAAK;QACvC,qDAAqD;QACrD;YAAEJ,MAAM;YAAOI,KAAK;YAAMC,MAAM;QAAK;WAClC3B,eAAeE;WACfF,eAAeP;WACfO,eAAeF;WACfE,eAAeiB;KACnB;IACDW,IAAI5B,eAAeN;AACrB,GAAG;AAEH,OAAO,MAAMmC,+BAAgDhB,iBAC3D,YAAYiB,QAAQ,EACpB;AAEF,OAAO,MAAMC,uBAAuB,OAClCC,MACAC;IAEA,IACE,AAACA,QAAQC,KAAK,KAAgB,iBAC9B,AAACD,QAAQC,KAAK,KAAgB,QAC9B;QACA,MAAM,IAAIC,MACR,CAAC,mBAAmB,EAAEF,QAAQC,KAAK,CAAC,6BAA6B,CAAC,GAChE,CAAC,uDAAuD,CAAC;IAE/D;IAEA,MAAME,qBAAqBC,sBAAsBJ;IACjD,MAAMK,mBAAmB7B,YAAYwB,QAAQX,IAAI;IACjD,MAAMiB,mBAAmB7B,YAAYuB,QAAQX,IAAI;IACjD,MAAM,EAAEkB,oBAAoBC,yBAAyB,EAAEC,GAAG,EAAE,GAC1DnD,gBAAgByC,MAAMC;IACxB,MAAMU,mBAAmB,GAAGJ,iBAAiB,MAAM,CAAC;IAEpD,IAAIK;IACJ,IAAI;QACF7B,oCAAoCiB,MAAMS;QAC1CG,gBAAgB;IAClB,EAAE,OAAM;QACNA,gBAAgB;IAClB;IAEA,IAAI,CAACA,eAAe;QAClB,6BAA6B;QAC7B,MAAMzB,uBAAuBa,MAAM;YACjCV,MAAMqB;YACNE,aAAaP;YACbQ,WAAWb,QAAQa,SAAS;YAC5BC,WAAWL;YACXM,cAAc;YACdC,2BAA2B;QAC7B;QAEA,+BAA+B;QAC/B,MAAM3D,mBAAmB0C,MAAM;YAC7BV,MAAMW,QAAQX,IAAI;YAClByB,WAAWL;YACXM,cAAc;YACdC,2BAA2B;QAC7B;IACF;IAEA,+DAA+D;IAC/D,MAAMC,qBAAqBnC,oCACzBiB,MACAW;IAEFtD,2BAA2B2C,MAAMkB,mBAAmB5B,IAAI,EAAE;QACxD,GAAG4B,kBAAkB;QACrBC,UAAU;YACR,GAAGD,mBAAmBC,QAAQ;YAC9BC,gBAAgBX;QAClB;IACF;IAEA,oEAAoE;IACpE,qEAAqE;IACrE,mEAAmE;IACnE,MAAMY,MACJpB,QAAQC,KAAK,KAAK,SAAS,MAAM7B,WAAW2B,MAAMC,QAAQoB,GAAG,IAAIC;IAEnE,0EAA0E;IAC1E,8DAA8D;IAC9D,MAAMH,WAAgC;QACpCI,SAAStB,QAAQX,IAAI;QACrBG,MAAMQ,QAAQR,IAAI;QAClB+B,cAAcN,mBAAmB5B,IAAI;QACrC,GAAI+B,MAAM;YAAEA;QAAI,IAAI,CAAC,CAAC;IACxB;IAEAzC,qBACEoB,MACAS,2BACAZ,8BACAsB;IAGF,MAAMM,uBAAuB1C,oCAC3BiB,MACAS;IAEF,MAAMiB,OAAO1C,WAAWgB,MAAMyB,sBAAsB;IAEpD,gDAAgD;IAChDzB,KAAK2B,MAAM,CAACxE,kBAAkBsE,qBAAqBG,UAAU,EAAE;IAE/D1E,cACE8C,MACA7C,kBAAkB,YAAY0E,OAAO,EAAE,UACvCJ,qBAAqBG,UAAU,EAC/B;QACEtB;QACAoB;QACA,GAAGlD,QAAQwB,KAAK;IAClB;IAGF,IAAIC,QAAQC,KAAK,KAAK,QAAQ;QAC5B,IAAID,QAAQR,IAAI,KAAK,UAAU;YAC7BvC,cACE8C,MACA7C,kBACE,YAAY0E,OAAO,EACnB,MACA,MACA,MACA,SACA,kBACA,SACA,OACA,cACA,SAEFJ,qBAAqBG,UAAU,EAC/B,CAAC,GACD;gBACEE,mBAAmB1E,kBAAkB2E,YAAY;YACnD;QAEJ;QAEA,qBAAqB;QACrB,MAAM7C,0BACJc,MACA;YACEqB;QACF,GACAjC;QAEF,MAAMzB,mBACJqC,MACA;YACEqB;YACAW,gBAAgBvB;YAChBH;YACAC;YACAd,MAAMQ,QAAQR,IAAI;YAClBwC,eAAe;YACfC,SAAS;gBACPC,MAAM;gBACNC,iBAAiBjF,kBACf,QACAsE,qBAAqB9B,IAAI,EACzB;gBAEFS;gBACA,GAAIH,QAAQR,IAAI,KAAK,YAAY;oBAC/B4C,2BAA2BlF,kBACzB,QACAsE,qBAAqB9B,IAAI,EACzB,UACA;gBAEJ,CAAC;YACH;QACF,GACAP;QAEFxB,iDAAiDoC,MAAM;YACrDqB;YACAd;YACA+B,UAAUnF,kBACR,QACA+D,mBAAmBvB,IAAI,EACvB,SACA,WACA;YAEF4C,qBAAqB,GAAGrB,mBAAmB5B,IAAI,CAAC,MAAM,CAAC;QACzD;QAEA,mCAAmC;QACnC,MAAMzB,0BACJmC,MACAyB,sBACA;YACEe,gBAAgB;YAChBC,UAAU;gBAAC;aAAe;QAC5B,GACArD;QAGF,IAAIa,QAAQR,IAAI,KAAK,UAAU;YAC7B,MAAM5B,0BACJmC,MACAyB,sBACA;gBACEe,gBAAgB;gBAChBJ,iBAAiB;gBACjBK,UAAU;oBAAC;iBAAe;YAC5B,GACArD;QAEJ;IACF;IAEA,MAAMsD,MAAM,IAAIvE,WAAW6B,MAAMZ;IACjC,MAAMuD,0BAA0B;IAEhC,iDAAiD;IACjDlB,qBAAqBmB,OAAO,CAAC,YAAY,GAAG;QAC1CC,OAAO;QACPC,QAAQ;YACN;gBACEC,2BAA2B;YAC7B;SACD;QACDC,UAAU;QACV/C,SAAS;YACPgD,UAAU;gBACRP,IAAIQ,EAAE,CAACP;gBACPD,IAAIS,KAAK,CAACR;gBACVD,IAAIU,EAAE,CACJjG,kBAAkB,QAAQ+D,mBAAmBvB,IAAI,EAAE,SAAS,SAC5DxC,kBAAkBwF,yBAAyB;aAE9C;YACDU,UAAU;QACZ;QACAC,SAAS;YAAC;SAA8B;QACxCC,WAAW;YAAC,GAAGrC,mBAAmB5B,IAAI,CAAC,MAAM,CAAC;SAAC;IACjD;IACAX,kCACE8C,sBACA,WACA;IAGF,gFAAgF;IAChF,gFAAgF;IAChFA,qBAAqBmB,OAAO,CAAC,kBAAkB,GAAG;QAChDI,UAAU;QACVQ,YAAY;QACZvD,SAAS;YACPwD,SAAS,CAAC,oBAAoB,EAAEvC,mBAAmB5B,IAAI,CAAC,iCAAiC,EAAEmB,0BAA0B,UAAU,CAAC;QAClI;IACF;IAEA,kDAAkD;IAClDgB,qBAAqBmB,OAAO,CAACc,KAAK,GAAG5E,wBAAwB;QAC3DkE,UAAU;QACVQ,YAAY;QACZD,WAAW;YAAC;YAAa;SAAkB;QAC3CtD,SAAS;YACPwD,SAAS;YACTE,KAAK;QACP;IACF;IAEA,MAAMC,uBACJnC,qBAAqBmB,OAAO,CAAC,MAAM,EAAEW,aAAa,EAAE;IAEtD9B,qBAAqBmB,OAAO,CAAC,MAAM,GAAG9D,wBAAwB;QAC5D,GAAG2C,qBAAqBmB,OAAO,CAACc,KAAK;QACrC,iEAAiE;QACjE,0DAA0D;QAC1DH,WAAW;eAAK9B,qBAAqBmB,OAAO,CAACc,KAAK,CAACH,SAAS,IAAI,EAAE;SAAE;QACpEtD,SAAS;YACP,GAAGwB,qBAAqBmB,OAAO,CAACc,KAAK,CAACzD,OAAO;YAC7C4D,KAAK;gBACHC,WAAW;YACb;QACF;IACF;IAEA,kEAAkE;IAClE,KAAK,MAAMC,cAAcH,qBAAsB;QAC7CjF,kCAAkC8C,sBAAsB,OAAOsC;IACjE;IAEA,wBAAwB;IACxB3F,gBAAgB4B,MAAMyB,qBAAqB9B,IAAI,EAAE,CAACqE,WAAa;eAC1DA;YACH;SACD;IAED3G,2BACE2C,MACAS,2BACAgB;IAGFjE,kBAAkBwC,MAAMZ,cAAc;QACpC+B;QACA8C,aAAaxC,qBAAqB9B,IAAI;IACxC;IAEA,MAAMpB,gCAAgCyB,MAAM;QAACH;KAA6B;IAE1E,MAAM5B,qBAAqB+B;IAC3B,OAAO,IACL1B,oBAAoB0B,MAAMC,QAAQgB,yBAAyB,EAAE;YAC3DiD,WAAW;gBAAC;aAAa;QAC3B;AACJ,EAAE;AAEF,MAAM7D,wBAAwB,CAC5BJ,UAC0BA,QAAQG,kBAAkB,IAAI;AAE1D,eAAeL,qBAAqB"}
1
+ {"version":3,"sources":["../../../../../../../packages/nx-plugin/src/smithy/ts/api/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n type GeneratorCallback,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport tsProjectGenerator, { getTsLibDetails } from '../../../ts/lib/generator';\nimport { addTsDependencies } from '../../../utils/add-dependencies';\nimport {\n API_CONSTRUCTS_DEPENDENCIES,\n API_CONSTRUCTS_PY_DEPENDENCIES,\n addApiGatewayInfra,\n} from '../../../utils/api-constructs/api-constructs';\nimport { addSharedConstructsOpenApiMetadataGenerateTarget } from '../../../utils/api-constructs/open-api-metadata';\nimport {\n addTypeScriptBundleTarget,\n BUNDLE_DEPENDENCIES,\n} from '../../../utils/bundle/bundle';\nimport {\n declareDependencies,\n ownedElsewhere,\n} from '../../../utils/declared-dependencies';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { FS_DEPENDENCIES, FsCommands } from '../../../utils/fs';\nimport { updateGitIgnore } from '../../../utils/git';\nimport { resolveIac } from '../../../utils/iac';\nimport { installDependencies } from '../../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport { esmVars } from '../../../utils/module-format';\nimport { toClassName, toKebabCase } from '../../../utils/names';\nimport {\n addDependencyToTargetIfNotPresent,\n addGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n normalizeTargetKeyOrder,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport { assignPort } from '../../../utils/port';\nimport {\n SHARED_CONSTRUCTS_DEPENDENCIES,\n sharedConstructsGenerator,\n} from '../../../utils/shared-constructs';\nimport type { IacMetadata } from '../../../utils/shared-constructs-constants';\nimport smithyProjectGenerator from '../../project/generator';\nimport type { TsSmithyApiGeneratorSchema } from './schema';\n\n/** The metadata this generator records, which its predicates read. */\nexport interface TsSmithyApiMetadata extends IacMetadata {\n readonly apiName: string;\n readonly auth: TsSmithyApiGeneratorSchema['auth'];\n readonly modelProject: string;\n}\n\n// Each entry names the branch it belongs to, so the same declaration drives both\n// adding and the version sync.\nexport const DEPENDENCIES = declareDependencies<TsSmithyApiMetadata>()({\n ts: [\n { name: '@smithy/server-apigateway' },\n { name: '@smithy/server-node' },\n { name: '@middy/core' },\n { name: '@aws-lambda-powertools/logger' },\n { name: '@aws-lambda-powertools/parameters' },\n { name: '@aws-lambda-powertools/tracer' },\n { name: '@aws-lambda-powertools/metrics' },\n { name: '@aws-sdk/client-appconfigdata' },\n // The custom authorizer handler parses its event.\n { name: '@aws-lambda-powertools/parser', when: (m) => m.auth === 'custom' },\n { name: '@types/aws-lambda', dev: true },\n // tsx runs the local server from the workspace root.\n { name: 'tsx', dev: true, root: true },\n ...ownedElsewhere(FS_DEPENDENCIES),\n ...ownedElsewhere(API_CONSTRUCTS_DEPENDENCIES),\n ...ownedElsewhere(BUNDLE_DEPENDENCIES),\n ...ownedElsewhere(SHARED_CONSTRUCTS_DEPENDENCIES),\n ],\n py: ownedElsewhere(API_CONSTRUCTS_PY_DEPENDENCIES),\n});\n\nexport const TS_SMITHY_API_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport const tsSmithyApiGenerator = async (\n tree: Tree,\n options: TsSmithyApiGeneratorSchema,\n): Promise<GeneratorCallback> => {\n if (\n (options.infra as string) !== 'rest-lambda' &&\n (options.infra as string) !== 'none'\n ) {\n throw new Error(\n `Unsupported infra '${options.infra}' for Smithy TypeScript API. ` +\n `Only 'rest-lambda' (API Gateway REST API) is supported.`,\n );\n }\n\n const integrationPattern = getIntegrationPattern(options);\n const apiNameClassName = toClassName(options.name);\n const apiNameKebabCase = toKebabCase(options.name);\n const { fullyQualifiedName: backendFullyQualifiedName, dir } =\n getTsLibDetails(tree, options);\n const modelProjectName = `${apiNameKebabCase}-model`;\n\n let projectExists: boolean;\n try {\n readProjectConfigurationUnqualified(tree, backendFullyQualifiedName);\n projectExists = true;\n } catch {\n projectExists = false;\n }\n\n if (!projectExists) {\n // Generate the model project\n await smithyProjectGenerator(tree, {\n name: modelProjectName,\n serviceName: apiNameClassName,\n namespace: options.namespace,\n directory: dir,\n subDirectory: 'model',\n preferInstallDependencies: false,\n });\n\n // Generate the backend project\n await tsProjectGenerator(tree, {\n name: options.name,\n directory: dir,\n subDirectory: 'backend',\n preferInstallDependencies: false,\n });\n }\n\n // Add metadata to associate backend project with model project\n const modelProjectConfig = readProjectConfigurationUnqualified(\n tree,\n modelProjectName,\n );\n updateProjectConfiguration(tree, modelProjectConfig.name, {\n ...modelProjectConfig,\n metadata: {\n ...modelProjectConfig.metadata,\n backendProject: backendFullyQualifiedName,\n } as any,\n });\n\n // Recorded in the metadata below so the version sync can tell a CDK\n // project from a Terraform one; undefined when no infrastructure was\n // generated, in which case neither provider's packages were added.\n const iac =\n options.infra !== 'none' ? await resolveIac(tree, options.iac) : undefined;\n\n // Recorded here and read by the declaration's predicates, so the packages\n // added below are exactly the ones the version sync will own.\n const metadata: TsSmithyApiMetadata = {\n apiName: options.name,\n auth: options.auth,\n modelProject: modelProjectConfig.name,\n ...(iac ? { iac } : {}),\n };\n\n addGeneratorMetadata(\n tree,\n backendFullyQualifiedName,\n TS_SMITHY_API_GENERATOR_INFO,\n metadata,\n );\n\n const backendProjectConfig = readProjectConfigurationUnqualified(\n tree,\n backendFullyQualifiedName,\n );\n const port = assignPort(tree, backendProjectConfig, 3001);\n\n // Delete default index.ts with \"hello\" function\n tree.delete(joinPathFragments(backendProjectConfig.sourceRoot, 'index.ts'));\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files'),\n backendProjectConfig.sourceRoot,\n {\n apiNameClassName,\n port,\n ...esmVars(tree),\n },\n );\n\n if (options.infra !== 'none') {\n if (options.auth === 'custom') {\n generateFiles(\n tree,\n joinPathFragments(\n import.meta.dirname,\n '..',\n '..',\n '..',\n 'utils',\n 'api-constructs',\n 'files',\n 'cdk',\n 'authorizer',\n 'rest',\n ),\n backendProjectConfig.sourceRoot,\n {},\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n }\n\n // Add infrastructure\n await sharedConstructsGenerator(\n tree,\n {\n iac,\n },\n DEPENDENCIES,\n );\n await addApiGatewayInfra(\n tree,\n {\n iac,\n apiProjectName: backendFullyQualifiedName,\n apiNameClassName,\n apiNameKebabCase,\n auth: options.auth,\n constructType: 'rest',\n backend: {\n type: 'smithy',\n bundleOutputDir: joinPathFragments(\n 'dist',\n backendProjectConfig.root,\n 'bundle',\n ),\n integrationPattern,\n ...(options.auth === 'custom' && {\n authorizerBundleOutputDir: joinPathFragments(\n 'dist',\n backendProjectConfig.root,\n 'bundle',\n 'authorizer',\n ),\n }),\n },\n },\n DEPENDENCIES,\n );\n addSharedConstructsOpenApiMetadataGenerateTarget(tree, {\n iac,\n apiNameKebabCase,\n specPath: joinPathFragments(\n 'dist',\n modelProjectConfig.root,\n 'build',\n 'openapi',\n 'openapi.json',\n ),\n specBuildTargetName: `${modelProjectConfig.name}:build`,\n });\n\n // Add bundle target using rolldown\n await addTypeScriptBundleTarget(\n tree,\n backendProjectConfig,\n {\n targetFilePath: 'src/handler.ts',\n external: [/@aws-sdk\\/.*/], // lambda runtime provides aws sdk\n },\n DEPENDENCIES,\n );\n\n if (options.auth === 'custom') {\n await addTypeScriptBundleTarget(\n tree,\n backendProjectConfig,\n {\n targetFilePath: 'src/authorizer.ts',\n bundleOutputDir: 'authorizer',\n external: [/@aws-sdk\\/.*/],\n },\n DEPENDENCIES,\n );\n }\n }\n\n const cmd = new FsCommands(tree, DEPENDENCIES);\n const generatedSrcDirFromRoot = '{projectRoot}/src/generated';\n\n // Target for copying the ssdk built by the model\n backendProjectConfig.targets['copy-ssdk'] = {\n cache: true,\n inputs: [\n {\n dependentTasksOutputFiles: '**/*',\n },\n ],\n executor: 'nx:run-commands',\n options: {\n commands: [\n cmd.rm(generatedSrcDirFromRoot),\n cmd.mkdir(generatedSrcDirFromRoot),\n cmd.cp(\n joinPathFragments('dist', modelProjectConfig.root, 'build', 'ssdk'),\n joinPathFragments(generatedSrcDirFromRoot, 'ssdk'),\n ),\n ],\n parallel: false,\n },\n outputs: ['{projectRoot}/src/generated'],\n dependsOn: [`${modelProjectConfig.name}:build`],\n };\n addDependencyToTargetIfNotPresent(\n backendProjectConfig,\n 'compile',\n 'copy-ssdk',\n );\n\n // Add a project which continuously copies based on changes to the model project\n // This allows the \"serve\" target to hot reload when the smithy model is changed\n backendProjectConfig.targets['watch-copy-ssdk'] = {\n executor: 'nx:run-commands',\n continuous: true,\n options: {\n command: `nx watch --projects=${modelProjectConfig.name} --includeDependencies -- nx run ${backendFullyQualifiedName}:copy-ssdk`,\n },\n };\n\n // Add serve target for running the server locally\n backendProjectConfig.targets.serve = normalizeTargetKeyOrder({\n executor: 'nx:run-commands',\n continuous: true,\n dependsOn: ['copy-ssdk', 'watch-copy-ssdk'],\n options: {\n command: 'tsx --watch src/local-server.ts',\n cwd: '{projectRoot}',\n },\n });\n\n const existingDevDependsOn =\n backendProjectConfig.targets['dev']?.dependsOn ?? [];\n\n backendProjectConfig.targets['dev'] = normalizeTargetKeyOrder({\n ...backendProjectConfig.targets.serve,\n // Own copy of dependsOn so adding dev dependencies below doesn't\n // mutate the shared array referenced by the serve target.\n dependsOn: [...(backendProjectConfig.targets.serve.dependsOn ?? [])],\n options: {\n ...backendProjectConfig.targets.serve.options,\n env: {\n LOCAL_DEV: 'true',\n },\n },\n });\n\n // Preserve any dependencies added to dev by connection generators\n for (const dependency of existingDevDependsOn) {\n addDependencyToTargetIfNotPresent(backendProjectConfig, 'dev', dependency);\n }\n\n // Ignore generated code\n updateGitIgnore(tree, backendProjectConfig.root, (patterns) => [\n ...patterns,\n 'src/generated',\n ]);\n\n updateProjectConfiguration(\n tree,\n backendFullyQualifiedName,\n backendProjectConfig,\n );\n\n addTsDependencies(tree, DEPENDENCIES, {\n metadata,\n projectRoot: backendProjectConfig.root,\n });\n\n await addGeneratorMetricsIfApplicable(tree, [TS_SMITHY_API_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n};\n\nconst getIntegrationPattern = (\n options: TsSmithyApiGeneratorSchema,\n): 'isolated' | 'shared' => options.integrationPattern ?? 'isolated';\n\nexport default tsSmithyApiGenerator;\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","updateProjectConfiguration","tsProjectGenerator","getTsLibDetails","addTsDependencies","API_CONSTRUCTS_DEPENDENCIES","API_CONSTRUCTS_PY_DEPENDENCIES","addApiGatewayInfra","addSharedConstructsOpenApiMetadataGenerateTarget","addTypeScriptBundleTarget","BUNDLE_DEPENDENCIES","declareDependencies","ownedElsewhere","formatFilesInSubtree","FS_DEPENDENCIES","FsCommands","updateGitIgnore","resolveIac","installDependencies","addGeneratorMetricsIfApplicable","esmVars","toClassName","toKebabCase","addDependencyToTargetIfNotPresent","addGeneratorMetadata","getGeneratorInfo","normalizeTargetKeyOrder","readProjectConfigurationUnqualified","assignPort","SHARED_CONSTRUCTS_DEPENDENCIES","sharedConstructsGenerator","smithyProjectGenerator","DEPENDENCIES","ts","name","when","m","auth","dev","root","py","TS_SMITHY_API_GENERATOR_INFO","filename","tsSmithyApiGenerator","tree","options","infra","Error","integrationPattern","getIntegrationPattern","apiNameClassName","apiNameKebabCase","fullyQualifiedName","backendFullyQualifiedName","dir","modelProjectName","projectExists","serviceName","namespace","directory","subDirectory","preferInstallDependencies","modelProjectConfig","metadata","backendProject","iac","undefined","apiName","modelProject","backendProjectConfig","port","delete","sourceRoot","dirname","overwriteStrategy","KeepExisting","apiProjectName","constructType","backend","type","bundleOutputDir","authorizerBundleOutputDir","specPath","specBuildTargetName","targetFilePath","external","cmd","generatedSrcDirFromRoot","targets","cache","inputs","dependentTasksOutputFiles","executor","commands","rm","mkdir","cp","parallel","outputs","dependsOn","continuous","command","serve","cwd","existingDevDependsOn","env","LOCAL_DEV","dependency","patterns","projectRoot","languages"],"mappings":"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"}
@@ -3175,7 +3175,7 @@ terraform {
3175
3175
  required_providers {
3176
3176
  aws = {
3177
3177
  source = "hashicorp/aws"
3178
- version = "6.57.1"
3178
+ version = "6.58.0"
3179
3179
  }
3180
3180
  }
3181
3181
  }
@@ -3422,7 +3422,7 @@ output "api_log_group_arn" {
3422
3422
  required_providers {
3423
3423
  aws = {
3424
3424
  source = "hashicorp/aws"
3425
- version = "6.57.1"
3425
+ version = "6.58.0"
3426
3426
  }
3427
3427
  }
3428
3428
  }
@@ -3917,7 +3917,7 @@ terraform {
3917
3917
  required_providers {
3918
3918
  aws = {
3919
3919
  source = "hashicorp/aws"
3920
- version = "6.57.1"
3920
+ version = "6.58.0"
3921
3921
  }
3922
3922
  }
3923
3923
  }
@@ -4164,7 +4164,7 @@ output "api_log_group_arn" {
4164
4164
  required_providers {
4165
4165
  aws = {
4166
4166
  source = "hashicorp/aws"
4167
- version = "6.57.1"
4167
+ version = "6.58.0"
4168
4168
  }
4169
4169
  }
4170
4170
  }
@@ -4731,7 +4731,7 @@ terraform {
4731
4731
  required_providers {
4732
4732
  aws = {
4733
4733
  source = "hashicorp/aws"
4734
- version = "6.57.1"
4734
+ version = "6.58.0"
4735
4735
  }
4736
4736
  }
4737
4737
  }
@@ -4978,7 +4978,7 @@ output "api_log_group_arn" {
4978
4978
  required_providers {
4979
4979
  aws = {
4980
4980
  source = "hashicorp/aws"
4981
- version = "6.57.1"
4981
+ version = "6.58.0"
4982
4982
  }
4983
4983
  }
4984
4984
  }
@@ -5450,7 +5450,7 @@ terraform {
5450
5450
  required_providers {
5451
5451
  aws = {
5452
5452
  source = "hashicorp/aws"
5453
- version = "6.57.1"
5453
+ version = "6.58.0"
5454
5454
  }
5455
5455
  random = {
5456
5456
  source = "hashicorp/random"
@@ -5706,7 +5706,7 @@ output "waf_web_acl_arn" {
5706
5706
  required_providers {
5707
5707
  aws = {
5708
5708
  source = "hashicorp/aws"
5709
- version = "6.57.1"
5709
+ version = "6.58.0"
5710
5710
  }
5711
5711
  }
5712
5712
  }
@@ -6426,7 +6426,7 @@ terraform {
6426
6426
  required_providers {
6427
6427
  aws = {
6428
6428
  source = "hashicorp/aws"
6429
- version = "6.57.1"
6429
+ version = "6.58.0"
6430
6430
  }
6431
6431
  random = {
6432
6432
  source = "hashicorp/random"
@@ -6682,7 +6682,7 @@ output "waf_web_acl_arn" {
6682
6682
  required_providers {
6683
6683
  aws = {
6684
6684
  source = "hashicorp/aws"
6685
- version = "6.57.1"
6685
+ version = "6.58.0"
6686
6686
  }
6687
6687
  }
6688
6688
  }
@@ -7391,7 +7391,7 @@ terraform {
7391
7391
  required_providers {
7392
7392
  aws = {
7393
7393
  source = "hashicorp/aws"
7394
- version = "6.57.1"
7394
+ version = "6.58.0"
7395
7395
  }
7396
7396
  random = {
7397
7397
  source = "hashicorp/random"
@@ -7647,7 +7647,7 @@ output "waf_web_acl_arn" {
7647
7647
  required_providers {
7648
7648
  aws = {
7649
7649
  source = "hashicorp/aws"
7650
- version = "6.57.1"
7650
+ version = "6.58.0"
7651
7651
  }
7652
7652
  }
7653
7653
  }
@@ -1263,7 +1263,7 @@ exports[`ts#agent generator > should match snapshot for Terraform generated file
1263
1263
  required_providers {
1264
1264
  aws = {
1265
1265
  source = "hashicorp/aws"
1266
- version = "6.57.1"
1266
+ version = "6.58.0"
1267
1267
  }
1268
1268
  null = {
1269
1269
  source = "hashicorp/null"
@@ -1679,7 +1679,7 @@ resource "null_resource" "runtime_ready" {
1679
1679
 
1680
1680
  provisioner "local-exec" {
1681
1681
  command = <<-EOT
1682
- uv run --with boto3==1.43.63 python -c "
1682
+ uv run --with boto3==1.43.67 python -c "
1683
1683
  import boto3
1684
1684
  import json
1685
1685
  import os
@@ -579,7 +579,7 @@ terraform {
579
579
  required_providers {
580
580
  aws = {
581
581
  source = "hashicorp/aws"
582
- version = "6.57.1"
582
+ version = "6.58.0"
583
583
  }
584
584
  archive = {
585
585
  source = "hashicorp/archive"
@@ -35,7 +35,7 @@ exports[`ts#dynamodb generator > should generate terraform modules when iac is t
35
35
  required_providers {
36
36
  aws = {
37
37
  source = "hashicorp/aws"
38
- version = "6.57.1"
38
+ version = "6.58.0"
39
39
  }
40
40
  }
41
41
  }
@@ -192,7 +192,7 @@ exports[`ts#dynamodb generator > should generate terraform modules when iac is t
192
192
  required_providers {
193
193
  aws = {
194
194
  source = "hashicorp/aws"
195
- version = "6.57.1"
195
+ version = "6.58.0"
196
196
  }
197
197
  random = {
198
198
  source = "hashicorp/random"
@@ -141,7 +141,7 @@ exports[`ts-lambda-function generator > terraform iac > should generate terrafor
141
141
  required_providers {
142
142
  aws = {
143
143
  source = "hashicorp/aws"
144
- version = "6.57.1"
144
+ version = "6.58.0"
145
145
  }
146
146
  archive = {
147
147
  source = "hashicorp/archive"
@@ -322,7 +322,7 @@ exports[`ts-lambda-function generator > terraform iac > should match snapshot fo
322
322
  required_providers {
323
323
  aws = {
324
324
  source = "hashicorp/aws"
325
- version = "6.57.1"
325
+ version = "6.58.0"
326
326
  }
327
327
  archive = {
328
328
  source = "hashicorp/archive"
@@ -155,7 +155,7 @@ exports[`ts#mcp-server generator > should match snapshot for Terraform generated
155
155
  required_providers {
156
156
  aws = {
157
157
  source = "hashicorp/aws"
158
- version = "6.57.1"
158
+ version = "6.58.0"
159
159
  }
160
160
  null = {
161
161
  source = "hashicorp/null"
@@ -571,7 +571,7 @@ resource "null_resource" "runtime_ready" {
571
571
 
572
572
  provisioner "local-exec" {
573
573
  command = <<-EOT
574
- uv run --with boto3==1.43.63 python -c "
574
+ uv run --with boto3==1.43.67 python -c "
575
575
  import boto3
576
576
  import json
577
577
  import os
@@ -799,7 +799,7 @@ terraform {
799
799
  required_providers {
800
800
  aws = {
801
801
  source = "hashicorp/aws"
802
- version = "6.57.1"
802
+ version = "6.58.0"
803
803
  }
804
804
  null = {
805
805
  source = "hashicorp/null"
@@ -1553,7 +1553,7 @@ exports[`ts#rdb generator > should generate terraform modules when iac is Terraf
1553
1553
  }
1554
1554
  aws = {
1555
1555
  source = "hashicorp/aws"
1556
- version = "6.57.1"
1556
+ version = "6.58.0"
1557
1557
  }
1558
1558
  null = {
1559
1559
  source = "hashicorp/null"
@@ -2285,7 +2285,7 @@ terraform {
2285
2285
  required_providers {
2286
2286
  aws = {
2287
2287
  source = "hashicorp/aws"
2288
- version = "6.57.1"
2288
+ version = "6.58.0"
2289
2289
  }
2290
2290
  null = {
2291
2291
  source = "hashicorp/null"
@@ -3039,7 +3039,7 @@ exports[`ts#rdb generator > should generate terraform modules with MySQL engine
3039
3039
  }
3040
3040
  aws = {
3041
3041
  source = "hashicorp/aws"
3042
- version = "6.57.1"
3042
+ version = "6.58.0"
3043
3043
  }
3044
3044
  null = {
3045
3045
  source = "hashicorp/null"
@@ -51,7 +51,7 @@ exports[`ts#rdb smithy-connection generator > should be idempotent across contex
51
51
  import {
52
52
  convertEvent,
53
53
  convertVersion1Response,
54
- } from '@aws-smithy/server-apigateway';
54
+ } from '@smithy/server-apigateway';
55
55
  import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
56
56
  import { Tracer } from '@aws-lambda-powertools/tracer';
57
57
  import { Logger } from '@aws-lambda-powertools/logger';
@@ -84,7 +84,7 @@ export const lambdaHandler = async (
84
84
  exports[`ts#rdb smithy-connection generator > should be idempotent across context.ts, handler.ts, and local-server.ts 3`] = `
85
85
  "import { getPrisma as getDb } from 'db';
86
86
  import { IncomingMessage, ServerResponse, createServer } from 'http';
87
- import { convertRequest, writeResponse } from '@aws-smithy/server-node';
87
+ import { convertRequest, writeResponse } from '@smithy/server-node';
88
88
  import { Tracer } from '@aws-lambda-powertools/tracer';
89
89
  import { Logger } from '@aws-lambda-powertools/logger';
90
90
  import { Metrics } from '@aws-lambda-powertools/metrics';
@@ -136,7 +136,7 @@ exports[`ts#rdb smithy-connection generator > should inject into context.ts, han
136
136
  import {
137
137
  convertEvent,
138
138
  convertVersion1Response,
139
- } from '@aws-smithy/server-apigateway';
139
+ } from '@smithy/server-apigateway';
140
140
  import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
141
141
  import { Tracer } from '@aws-lambda-powertools/tracer';
142
142
  import { Logger } from '@aws-lambda-powertools/logger';
@@ -169,7 +169,7 @@ export const lambdaHandler = async (
169
169
  exports[`ts#rdb smithy-connection generator > should inject into context.ts, handler.ts, and local-server.ts 3`] = `
170
170
  "import { getPrisma as getDb } from 'db';
171
171
  import { IncomingMessage, ServerResponse, createServer } from 'http';
172
- import { convertRequest, writeResponse } from '@aws-smithy/server-node';
172
+ import { convertRequest, writeResponse } from '@smithy/server-node';
173
173
  import { Tracer } from '@aws-lambda-powertools/tracer';
174
174
  import { Logger } from '@aws-lambda-powertools/logger';
175
175
  import { Metrics } from '@aws-lambda-powertools/metrics';
@@ -224,7 +224,7 @@ import { getPrisma as getPostgresDb } from 'postgres-db';
224
224
  import {
225
225
  convertEvent,
226
226
  convertVersion1Response,
227
- } from '@aws-smithy/server-apigateway';
227
+ } from '@smithy/server-apigateway';
228
228
  import type { APIGatewayProxyEvent, APIGatewayProxyResult } from 'aws-lambda';
229
229
  import { Tracer } from '@aws-lambda-powertools/tracer';
230
230
  import { Logger } from '@aws-lambda-powertools/logger';
@@ -260,7 +260,7 @@ exports[`ts#rdb smithy-connection generator > should support multiple rdb connec
260
260
  "import { getPrisma as getMysqlDb } from 'mysql-db';
261
261
  import { getPrisma as getPostgresDb } from 'postgres-db';
262
262
  import { IncomingMessage, ServerResponse, createServer } from 'http';
263
- import { convertRequest, writeResponse } from '@aws-smithy/server-node';
263
+ import { convertRequest, writeResponse } from '@smithy/server-node';
264
264
  import { Tracer } from '@aws-lambda-powertools/tracer';
265
265
  import { Logger } from '@aws-lambda-powertools/logger';
266
266
  import { Metrics } from '@aws-lambda-powertools/metrics';
@@ -131,7 +131,7 @@ exports[`react-website generator > TailwindCSS integration > terraform iac > sho
131
131
  required_providers {
132
132
  aws = {
133
133
  source = "hashicorp/aws"
134
- version = "6.57.1"
134
+ version = "6.58.0"
135
135
  configuration_aliases = [aws.us_east_1]
136
136
  }
137
137
  random = {
@@ -699,7 +699,7 @@ resource "null_resource" "upload_website_files" {
699
699
  provisioner "local-exec" {
700
700
  command = <<-EOT
701
701
  cd "$ROOT_PATH"
702
- uv run --with boto3==1.43.63 python3 -c "
702
+ uv run --with boto3==1.43.67 python3 -c "
703
703
  import os
704
704
  import sys
705
705
  import boto3
@@ -822,7 +822,7 @@ resource "null_resource" "cloudfront_invalidation" {
822
822
 
823
823
  provisioner "local-exec" {
824
824
  command = <<-EOT
825
- uv run --with boto3==1.43.63 python3 -c "
825
+ uv run --with boto3==1.43.67 python3 -c "
826
826
  import boto3
827
827
  import os
828
828
  import sys
@@ -908,7 +908,7 @@ output "waf_web_acl_arn" {
908
908
  required_providers {
909
909
  aws = {
910
910
  source = "hashicorp/aws"
911
- version = "6.57.1"
911
+ version = "6.58.0"
912
912
  configuration_aliases = [aws.us_east_1]
913
913
  }
914
914
  }
@@ -961,7 +961,7 @@ exports[`react-website generator > Tanstack router integration > should generate
961
961
 
962
962
  exports[`react-website generator > Tanstack router integration > should generate website with no router correctly > biome.json 1`] = `
963
963
  "{
964
- "$schema": "https://biomejs.dev/schemas/2.5.6/schema.json",
964
+ "$schema": "https://biomejs.dev/schemas/2.5.7/schema.json",
965
965
  "root": true,
966
966
  "formatter": {
967
967
  "enabled": true,
@@ -2177,16 +2177,16 @@ exports[`react-website generator > Tanstack router integration > should generate
2177
2177
  - test-app
2178
2178
  - packages/common/*
2179
2179
  catalog:
2180
- vite: 8.2.0
2180
+ vite: 8.2.1
2181
2181
  vitest: 4.1.10
2182
2182
  '@vitest/coverage-v8': 4.1.10
2183
- constructs: 10.8.0
2183
+ constructs: 10.8.1
2184
2184
  aws-cdk-lib: 2.263.0
2185
- '@types/node': 26.1.2
2185
+ '@types/node': 26.2.0
2186
2186
  react: 19.2.8
2187
2187
  react-dom: 19.2.8
2188
- '@cloudscape-design/components': 3.0.1340
2189
- '@cloudscape-design/board-components': 3.0.212
2188
+ '@cloudscape-design/components': 3.0.1342
2189
+ '@cloudscape-design/board-components': 3.0.213
2190
2190
  '@cloudscape-design/global-styles': 1.0.65
2191
2191
  tailwindcss: 4.3.3
2192
2192
  '@nx/react': 23.1.1
@@ -2782,7 +2782,7 @@ exports[`react-website generator > Tanstack router integration > should generate
2782
2782
 
2783
2783
  exports[`react-website generator > Tanstack router integration > should generate website with router correctly > biome.json 1`] = `
2784
2784
  "{
2785
- "$schema": "https://biomejs.dev/schemas/2.5.6/schema.json",
2785
+ "$schema": "https://biomejs.dev/schemas/2.5.7/schema.json",
2786
2786
  "root": true,
2787
2787
  "formatter": {
2788
2788
  "enabled": true,
@@ -4002,24 +4002,24 @@ exports[`react-website generator > Tanstack router integration > should generate
4002
4002
  - test-app
4003
4003
  - packages/common/*
4004
4004
  catalog:
4005
- vite: 8.2.0
4005
+ vite: 8.2.1
4006
4006
  vitest: 4.1.10
4007
4007
  '@vitest/coverage-v8': 4.1.10
4008
- constructs: 10.8.0
4008
+ constructs: 10.8.1
4009
4009
  aws-cdk-lib: 2.263.0
4010
- '@types/node': 26.1.2
4010
+ '@types/node': 26.2.0
4011
4011
  react: 19.2.8
4012
4012
  react-dom: 19.2.8
4013
- '@cloudscape-design/components': 3.0.1340
4014
- '@cloudscape-design/board-components': 3.0.212
4013
+ '@cloudscape-design/components': 3.0.1342
4014
+ '@cloudscape-design/board-components': 3.0.213
4015
4015
  '@cloudscape-design/global-styles': 1.0.65
4016
4016
  tailwindcss: 4.3.3
4017
- '@tanstack/react-router': 1.170.18
4017
+ '@tanstack/react-router': 1.170.23
4018
4018
  '@nx/react': 23.1.1
4019
4019
  '@vitest/ui': 4.1.10
4020
4020
  '@tailwindcss/vite': 4.3.3
4021
- '@tanstack/router-plugin': 1.168.23
4022
- '@tanstack/router-generator': 1.167.21
4021
+ '@tanstack/router-plugin': 1.168.27
4022
+ '@tanstack/router-generator': 1.167.25
4023
4023
  '@tanstack/virtual-file-routes': 1.162.0
4024
4024
  '@tanstack/router-utils': 1.162.2
4025
4025
  "