@aws/nx-plugin 1.0.0-rc.9 → 1.0.0-rc.90
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.
- package/LICENSE-THIRD-PARTY +13999 -17963
- package/README.md +30 -110
- package/executors.json +5 -0
- package/generators.json +170 -10
- package/migrations.json +364 -0
- package/package.json +40 -21
- package/src/agentcore-gateway/__snapshots__/generator.spec.ts.snap +344 -0
- package/src/agentcore-gateway/agent-connection/generator.d.ts +19 -0
- package/src/agentcore-gateway/agent-connection/generator.js +95 -0
- package/src/agentcore-gateway/agent-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/agent-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/agent-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/agent-connection/schema.d.ts +13 -0
- package/src/agentcore-gateway/agent-connection/schema.json +31 -0
- package/src/agentcore-gateway/attach-upstream.d.ts +49 -0
- package/src/agentcore-gateway/attach-upstream.js +59 -0
- package/src/agentcore-gateway/attach-upstream.js.map +1 -0
- package/src/agentcore-gateway/files/cedar/policies/README.md +61 -0
- package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +26 -0
- package/src/agentcore-gateway/files/project/http/local-dev.ts.template +77 -0
- package/src/agentcore-gateway/files/project/mcp/local-dev.ts.template +134 -0
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
- package/src/agentcore-gateway/gateway-connection/generator.js +103 -0
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.ts +13 -0
- package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
- package/src/agentcore-gateway/generator.d.ts +90 -0
- package/src/agentcore-gateway/generator.js +202 -0
- package/src/agentcore-gateway/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
- package/src/agentcore-gateway/mcp-connection/generator.js +61 -0
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.ts +13 -0
- package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
- package/src/agentcore-gateway/react-connection/__snapshots__/generator.spec.ts.snap +68 -0
- package/src/agentcore-gateway/react-connection/generator.d.ts +19 -0
- package/src/agentcore-gateway/react-connection/generator.js +119 -0
- package/src/agentcore-gateway/react-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/react-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/react-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/react-connection/schema.d.ts +13 -0
- package/src/agentcore-gateway/react-connection/schema.json +31 -0
- package/src/agentcore-gateway/schema.d.js +6 -0
- package/src/agentcore-gateway/schema.d.js.map +1 -0
- package/src/agentcore-gateway/schema.d.ts +17 -0
- package/src/agentcore-gateway/schema.json +72 -0
- package/src/agentcore-harness/__snapshots__/generator.spec.ts.snap +237 -0
- package/src/agentcore-harness/files/project/README.md.template +82 -0
- package/src/agentcore-harness/files/project/scripts/chat.ts.template +99 -0
- package/src/agentcore-harness/files/project/src/PROMPT.md.template +16 -0
- package/src/agentcore-harness/generator.d.ts +62 -0
- package/src/agentcore-harness/generator.js +158 -0
- package/src/agentcore-harness/generator.js.map +1 -0
- package/src/agentcore-harness/schema.d.js +8 -0
- package/src/agentcore-harness/schema.d.js.map +1 -0
- package/src/agentcore-harness/schema.d.ts +17 -0
- package/src/agentcore-harness/schema.json +53 -0
- package/src/connection/agent-local-dev.d.ts +49 -0
- package/src/connection/agent-local-dev.js +84 -0
- package/src/connection/agent-local-dev.js.map +1 -0
- package/src/connection/agent-runtime-config.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/gateway-runtime-config.d.ts +19 -0
- package/src/connection/gateway-runtime-config.js +47 -0
- package/src/connection/gateway-runtime-config.js.map +1 -0
- package/src/connection/generator.d.ts +4 -11
- package/src/connection/generator.js +172 -194
- package/src/connection/generator.js.map +1 -1
- package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.js.map +1 -0
- package/src/connection/scaffold-catalog.d.ts +267 -0
- package/src/connection/scaffold-catalog.js +347 -0
- package/src/connection/scaffold-catalog.js.map +1 -0
- package/src/connection/schema-resolver.d.ts +5 -0
- package/src/connection/schema-resolver.js +27 -0
- package/src/connection/schema-resolver.js.map +1 -0
- package/src/connection/schema.d.js +6 -0
- package/src/connection/schema.d.js.map +1 -0
- package/src/connection/schema.d.ts +1 -0
- package/src/connection/schema.json +5 -0
- package/src/connection/supported-connections.d.ts +116 -0
- package/src/connection/supported-connections.js +163 -0
- package/src/connection/supported-connections.js.map +1 -0
- package/src/index.d.ts +1 -1
- package/src/index.js +2 -5
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +172 -87
- package/src/infra/app/files/app/README.md.template +22 -4
- package/src/infra/app/files/app/src/main.ts.template +5 -1
- package/src/infra/app/files/app/src/stages/application-stage.ts.template +1 -1
- package/src/infra/app/generator.d.ts +44 -1
- package/src/infra/app/generator.js +209 -128
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.js +6 -0
- package/src/infra/app/schema.d.js.map +1 -0
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +5 -0
- package/src/init/generator.d.ts +31 -0
- package/src/init/generator.js +46 -0
- package/src/init/generator.js.map +1 -0
- package/src/init/schema.d.js +6 -0
- package/src/init/schema.d.js.map +1 -0
- package/src/init/schema.d.ts +16 -0
- package/src/init/schema.json +35 -0
- package/src/internal/test-matrix/generator.d.ts +29 -0
- package/src/internal/test-matrix/generator.js +729 -0
- package/src/internal/test-matrix/generator.js.map +1 -0
- package/src/internal/test-matrix/schema.d.js +6 -0
- package/src/internal/test-matrix/schema.d.js.map +1 -0
- package/src/internal/test-matrix/schema.d.ts +12 -0
- package/src/internal/test-matrix/schema.json +21 -0
- package/src/license/config-types.d.ts +2 -2
- package/src/license/config-types.js +5 -3
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +12 -3
- package/src/license/config.js +295 -242
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.d.ts +2 -2
- package/src/license/dependency-check/check.js +51 -46
- package/src/license/dependency-check/check.js.map +1 -1
- package/src/license/dependency-check/collectors/collector.js +41 -71
- package/src/license/dependency-check/collectors/collector.js.map +1 -1
- package/src/license/dependency-check/collectors/npm-collector.js +34 -41
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
- package/src/license/dependency-check/collectors/python-collector.js +61 -62
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
- package/src/license/dependency-check/evaluator.d.ts +1 -1
- package/src/license/dependency-check/evaluator.js +91 -74
- package/src/license/dependency-check/evaluator.js.map +1 -1
- package/src/license/dependency-check/executor.js +30 -22
- package/src/license/dependency-check/executor.js.map +1 -1
- package/src/license/dependency-check/pre-approved.d.ts +1 -1
- package/src/license/dependency-check/pre-approved.js +949 -336
- package/src/license/dependency-check/pre-approved.js.map +1 -1
- package/src/license/dependency-check/types.d.ts +1 -1
- package/src/license/dependency-check/types.js +2 -3
- package/src/license/dependency-check/types.js.map +1 -1
- package/src/license/generator.d.ts +1 -1
- package/src/license/generator.js +60 -77
- package/src/license/generator.js.map +1 -1
- package/src/license/index.d.ts +4 -4
- package/src/license/index.js +3 -9
- package/src/license/index.js.map +1 -1
- package/src/license/known-exceptions.d.ts +2 -3
- package/src/license/known-exceptions.js +12 -28
- package/src/license/known-exceptions.js.map +1 -1
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/schema.d.ts +2 -0
- package/src/license/schema.json +5 -0
- package/src/license/sync/generator.js +94 -119
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.d.ts +1 -1
- package/src/license/sync/project-file-sync.js +28 -35
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/dev-server.d.ts +1 -0
- package/src/mcp-server/dev-server.js +18 -0
- package/src/mcp-server/dev-server.js.map +1 -0
- package/src/mcp-server/generator-info.d.ts +8 -3
- package/src/mcp-server/generator-info.js +155 -167
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.d.ts +1 -1
- package/src/mcp-server/guide-pipeline.js +199 -206
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/guide-render.js +10 -25
- package/src/mcp-server/guide-render.js.map +1 -1
- package/src/mcp-server/index.js +6 -10
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +39 -57
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/option-filter.js +33 -47
- package/src/mcp-server/option-filter.js.map +1 -1
- package/src/mcp-server/schema-registry.d.ts +9 -3
- package/src/mcp-server/schema-registry.js +41 -38
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/mcp-server/schema.d.ts +1 -1
- package/src/mcp-server/schema.js +9 -7
- package/src/mcp-server/schema.js.map +1 -1
- package/src/mcp-server/server.js +24 -24
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/add-to-existing-project.d.ts +12 -0
- package/src/mcp-server/tools/add-to-existing-project.js +36 -0
- package/src/mcp-server/tools/add-to-existing-project.js.map +1 -0
- package/src/mcp-server/tools/create-workspace-command.js +23 -24
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.d.ts +2 -2
- package/src/mcp-server/tools/general-guidance.js +55 -32
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.d.ts +1 -1
- package/src/mcp-server/tools/generator-guide.js +29 -37
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.d.ts +1 -1
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/mcp-server/tools/upgrade-workspace.d.ts +11 -0
- package/src/mcp-server/tools/upgrade-workspace.js +32 -0
- package/src/mcp-server/tools/upgrade-workspace.js.map +1 -0
- package/src/migrations/latest/add-assemble-target/metadata.json +3 -0
- package/src/migrations/latest/add-assemble-target/migration.d.ts +6 -0
- package/src/migrations/latest/add-assemble-target/migration.js +241 -0
- package/src/migrations/latest/add-assemble-target/migration.js.map +1 -0
- package/src/migrations/latest/add-destroy-sandbox-target/metadata.json +3 -0
- package/src/migrations/latest/add-destroy-sandbox-target/migration.d.ts +6 -0
- package/src/migrations/latest/add-destroy-sandbox-target/migration.js +150 -0
- package/src/migrations/latest/add-destroy-sandbox-target/migration.js.map +1 -0
- package/src/migrations/latest/declare-cacheable-target-inputs/metadata.json +3 -0
- package/src/migrations/latest/declare-cacheable-target-inputs/migration.d.ts +6 -0
- package/src/migrations/latest/declare-cacheable-target-inputs/migration.js +94 -0
- package/src/migrations/latest/declare-cacheable-target-inputs/migration.js.map +1 -0
- package/src/migrations/latest/dev-target-depends-on-pull-image/metadata.json +3 -0
- package/src/migrations/latest/dev-target-depends-on-pull-image/migration.d.ts +6 -0
- package/src/migrations/latest/dev-target-depends-on-pull-image/migration.js +67 -0
- package/src/migrations/latest/dev-target-depends-on-pull-image/migration.js.map +1 -0
- package/src/migrations/latest/docker-target-cache-soundness/metadata.json +3 -0
- package/src/migrations/latest/docker-target-cache-soundness/migration.d.ts +6 -0
- package/src/migrations/latest/docker-target-cache-soundness/migration.js +95 -0
- package/src/migrations/latest/docker-target-cache-soundness/migration.js.map +1 -0
- package/src/migrations/latest/nx-parallel-default/metadata.json +3 -0
- package/src/migrations/latest/nx-parallel-default/migration.d.ts +14 -0
- package/src/migrations/latest/nx-parallel-default/migration.js +29 -0
- package/src/migrations/latest/nx-parallel-default/migration.js.map +1 -0
- package/src/migrations/latest/open-api-codegen-executor/metadata.json +3 -0
- package/src/migrations/latest/open-api-codegen-executor/migration.d.ts +6 -0
- package/src/migrations/latest/open-api-codegen-executor/migration.js +100 -0
- package/src/migrations/latest/open-api-codegen-executor/migration.js.map +1 -0
- package/src/migrations/latest/python-test-input-scoping/metadata.json +3 -0
- package/src/migrations/latest/python-test-input-scoping/migration.d.ts +6 -0
- package/src/migrations/latest/python-test-input-scoping/migration.js +142 -0
- package/src/migrations/latest/python-test-input-scoping/migration.js.map +1 -0
- package/src/migrations/latest/python-version-drop-exact-patch/metadata.json +3 -0
- package/src/migrations/latest/python-version-drop-exact-patch/migration.d.ts +6 -0
- package/src/migrations/latest/python-version-drop-exact-patch/migration.js +43 -0
- package/src/migrations/latest/python-version-drop-exact-patch/migration.js.map +1 -0
- package/src/migrations/latest/react-website-nx-react-express-override/metadata.json +3 -0
- package/src/migrations/latest/react-website-nx-react-express-override/migration.d.ts +31 -0
- package/src/migrations/latest/react-website-nx-react-express-override/migration.js +74 -0
- package/src/migrations/latest/react-website-nx-react-express-override/migration.js.map +1 -0
- package/src/migrations/latest/terraform-fmt-check/metadata.json +3 -0
- package/src/migrations/latest/terraform-fmt-check/migration.d.ts +6 -0
- package/src/migrations/latest/terraform-fmt-check/migration.js +165 -0
- package/src/migrations/latest/terraform-fmt-check/migration.js.map +1 -0
- package/src/migrations/latest/terraform-provider-plugin-cache/metadata.json +3 -0
- package/src/migrations/latest/terraform-provider-plugin-cache/migration.d.ts +6 -0
- package/src/migrations/latest/terraform-provider-plugin-cache/migration.js +164 -0
- package/src/migrations/latest/terraform-provider-plugin-cache/migration.js.map +1 -0
- package/src/migrations/latest/terraform-rdb-proxy-iam-connect-grant/__snapshots__/migration.spec.ts.snap +23 -0
- package/src/migrations/latest/terraform-rdb-proxy-iam-connect-grant/metadata.json +3 -0
- package/src/migrations/latest/terraform-rdb-proxy-iam-connect-grant/migration.d.ts +6 -0
- package/src/migrations/latest/terraform-rdb-proxy-iam-connect-grant/migration.js +88 -0
- package/src/migrations/latest/terraform-rdb-proxy-iam-connect-grant/migration.js.map +1 -0
- package/src/migrations/latest/vitest-coverage-output-dir/metadata.json +3 -0
- package/src/migrations/latest/vitest-coverage-output-dir/migration.d.ts +6 -0
- package/src/migrations/latest/vitest-coverage-output-dir/migration.js +177 -0
- package/src/migrations/latest/vitest-coverage-output-dir/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js +65 -0
- package/src/migrations/v1.0.0-rc.50/0001-modernize-function-props-cast/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js +108 -0
- package/src/migrations/v1.0.0-rc.50/0002-restrict-cors-to-custom-domains/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js +128 -0
- package/src/migrations/v1.0.0-rc.50/0003-terraform-bootstrap-adopt-existing-bucket/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js +215 -0
- package/src/migrations/v1.0.0-rc.52/0001-user-identity-waf-allow-localhost-callback/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js +93 -0
- package/src/migrations/v1.0.0-rc.54/0001-order-access-log-delivery-after-bucket-policy/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.d.ts +96 -0
- package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js +670 -0
- package/src/migrations/v1.0.0-rc.55/0001-backfill-generator-metadata/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js +89 -0
- package/src/migrations/v1.0.0-rc.56/0001-dynamodb-local-remove-optimize-flag/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js +449 -0
- package/src/migrations/v1.0.0-rc.57/0001-ts-agent-session-management-support/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js +78 -0
- package/src/migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/migration.js.map +1 -0
- package/src/{smithy/project/files/build.Dockerfile.template → migrations/v1.0.0-rc.58/0001-smithy-ssdk-bundle-pins/rc57-service.Dockerfile.fixture} +1 -4
- package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/__snapshots__/migration.spec.ts.snap +223 -0
- package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js +217 -0
- package/src/migrations/v1.0.0-rc.59/0001-gateway-agent-targets/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/__snapshots__/migration.spec.ts.snap +149 -0
- package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js +195 -0
- package/src/migrations/v1.0.0-rc.60/0001-gateway-cognito-passthrough/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/__snapshots__/migration.spec.ts.snap +57 -0
- package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js +77 -0
- package/src/migrations/v1.0.0-rc.60/0002-waf-log-group-removal/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/__snapshots__/migration.spec.ts.snap +48 -0
- package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js +91 -0
- package/src/migrations/v1.0.0-rc.60/0003-strip-pip-from-python-images/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js +412 -0
- package/src/migrations/v1.0.0-rc.61/0001-py-agent-lifespan-construction/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js +33 -0
- package/src/migrations/v1.0.0-rc.62/0001-rename-load-runtime-config-target/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js +83 -0
- package/src/migrations/v1.0.0-rc.63/0001-add-deploy-sandbox-target/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/legacy-service.Dockerfile.fixture +95 -0
- package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js +154 -0
- package/src/migrations/v1.0.0-rc.64/0001-smithy-build-without-docker/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js +71 -0
- package/src/migrations/v1.0.0-rc.65/0001-vite-config-import-meta-dirname/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js +57 -0
- package/src/migrations/v1.0.0-rc.65/0002-rolldown-code-splitting/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.js +123 -0
- package/src/migrations/v1.0.0-rc.67/0001-smithy-server-package-rename/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/build-system-prompt.ts.fixture +23 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/build-user-prompt.ts.fixture +96 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/config-path.ts.fixture +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/file-to-translate.ts.fixture +10 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/get-files-to-translate.ts.fixture +96 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/header.ts.fixture +15 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/log.ts.fixture +18 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/main-call.ts.fixture +6 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/main.ts.fixture +79 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/project-root.ts.fixture +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/run-with-concurrency.ts.fixture +57 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/scripts-dir.ts.fixture +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/files/translate-file-for-language.ts.fixture +61 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/already-migrated.grit +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/build-system-prompt.grit +6 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/build-user-prompt.grit +6 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/config-path.grit +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/file-to-translate.grit +11 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/get-files-to-translate.grit +7 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/log.grit +3 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/main-call.grit +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/main.grit +8 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/project-root.grit +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/run-with-concurrency.grit +6 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/grit/translate-file-for-language.grit +6 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.d.ts +2 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.js +103 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/test-fixtures/released-script-first.ts.fixture +430 -0
- package/src/migrations/v1.0.0-rc.68/0001-translate-script-whole-file-writes/test-fixtures/released-script.ts.fixture +431 -0
- package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.js +246 -0
- package/src/migrations/v1.0.0-rc.70/0001-py-agent-a2a-lifespan-construction/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.js +329 -0
- package/src/migrations/v1.0.0-rc.71/0001-py-agent-a2a-httpx-client-per-call/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.d.ts +2 -0
- package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.js +308 -0
- package/src/migrations/v1.0.0-rc.72/0001-py-agent-session-management-support/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/metadata.json +3 -0
- package/{sdk/utils/ast.d.ts → src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/migration.d.ts} +2 -2
- package/src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/migration.js +38 -0
- package/src/migrations/v1.0.0-rc.73/0001-remove-mcp-inspector-license-exceptions/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/__snapshots__/migration.spec.ts.snap +90 -0
- package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/migration.js +90 -0
- package/src/migrations/v1.0.0-rc.73/0002-apt-security-updates-in-container-images/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/migration.d.ts +2 -0
- package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/migration.js +118 -0
- package/src/migrations/v1.0.0-rc.74/0001-py-agent-session-id-middleware-extraction/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/migration.d.ts +2 -0
- package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/migration.js +136 -0
- package/src/migrations/v1.0.0-rc.75/0001-ts-agent-session-id-middleware-extraction/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.77/0001-dynamodb-configurable-encryption/__snapshots__/migration.spec.ts.snap +429 -0
- package/src/migrations/v1.0.0-rc.77/0001-dynamodb-configurable-encryption/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.77/0001-dynamodb-configurable-encryption/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.77/0001-dynamodb-configurable-encryption/migration.js +325 -0
- package/src/migrations/v1.0.0-rc.77/0001-dynamodb-configurable-encryption/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.77/0002-user-identity-configurable-mfa/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.77/0002-user-identity-configurable-mfa/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.77/0002-user-identity-configurable-mfa/migration.js +362 -0
- package/src/migrations/v1.0.0-rc.77/0002-user-identity-configurable-mfa/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.78/0001-static-website-configurable-waf-encryption/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.78/0001-static-website-configurable-waf-encryption/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.78/0001-static-website-configurable-waf-encryption/migration.js +418 -0
- package/src/migrations/v1.0.0-rc.78/0001-static-website-configurable-waf-encryption/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.79/0001-py-agent-ag-ui-hooks/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.79/0001-py-agent-ag-ui-hooks/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.79/0001-py-agent-ag-ui-hooks/migration.js +113 -0
- package/src/migrations/v1.0.0-rc.79/0001-py-agent-ag-ui-hooks/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path/migration.js +48 -0
- package/src/migrations/v1.0.0-rc.82/0001-terraform-load-runtime-config-src-path/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.82/0002-runtime-config-namespace-defaults/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.82/0002-runtime-config-namespace-defaults/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.82/0002-runtime-config-namespace-defaults/migration.js +131 -0
- package/src/migrations/v1.0.0-rc.82/0002-runtime-config-namespace-defaults/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs/migration.js +69 -0
- package/src/migrations/v1.0.0-rc.83/0001-dynamodb-terraform-app-module-outputs/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection/__snapshots__/migration.spec.ts.snap +75 -0
- package/src/migrations/v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection/migration.js +78 -0
- package/src/migrations/v1.0.0-rc.83/0002-terraform-data-resource-destroy-protection/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs/migration.js +38 -0
- package/src/migrations/v1.0.0-rc.83/0003-terraform-gateway-cedar-render-root-ejs/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults/__snapshots__/migration.spec.ts.snap +54 -0
- package/src/migrations/v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults/migration.js +86 -0
- package/src/migrations/v1.0.0-rc.84/0001-rdb-terraform-aurora-app-module-defaults/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default/__snapshots__/migration.spec.ts.snap +79 -0
- package/src/migrations/v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default/migration.js +87 -0
- package/src/migrations/v1.0.0-rc.84/0002-agentcore-harness-no-tools-by-default/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.84/0003-terraform-declare-used-providers/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.84/0003-terraform-declare-used-providers/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.84/0003-terraform-declare-used-providers/migration.js +147 -0
- package/src/migrations/v1.0.0-rc.84/0003-terraform-declare-used-providers/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.84/0004-waf-log-group-cmk-encryption/__snapshots__/migration.spec.ts.snap +286 -0
- package/src/migrations/v1.0.0-rc.84/0004-waf-log-group-cmk-encryption/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.84/0004-waf-log-group-cmk-encryption/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.84/0004-waf-log-group-cmk-encryption/migration.js +238 -0
- package/src/migrations/v1.0.0-rc.84/0004-waf-log-group-cmk-encryption/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant/__snapshots__/migration.spec.ts.snap +521 -0
- package/src/migrations/v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant/migration.js +504 -0
- package/src/migrations/v1.0.0-rc.84/0005-terraform-harness-vpc-role-and-memory-grant/migration.js.map +1 -0
- package/src/migrations/v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy/metadata.json +3 -0
- package/src/migrations/v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy/migration.d.ts +6 -0
- package/src/migrations/v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy/migration.js +146 -0
- package/src/migrations/v1.0.0-rc.85/0001-terraform-project-checkov-target-and-bootstrap-destroy/migration.js.map +1 -0
- package/src/open-api/codegen/executor-schema.d.js +6 -0
- package/src/open-api/codegen/executor-schema.d.js.map +1 -0
- package/src/open-api/codegen/executor-schema.d.ts +18 -0
- package/src/open-api/codegen/executor-schema.json +33 -0
- package/src/open-api/codegen/executor.d.ts +18 -0
- package/src/open-api/codegen/executor.js +56 -0
- package/src/open-api/codegen/executor.js.map +1 -0
- package/src/open-api/json-metadata/generator.d.ts +24 -0
- package/src/open-api/json-metadata/generator.js +37 -0
- package/src/open-api/json-metadata/generator.js.map +1 -0
- package/src/open-api/json-metadata/schema.d.js +6 -0
- package/src/open-api/json-metadata/schema.d.js.map +1 -0
- package/src/open-api/json-metadata/schema.d.ts +9 -0
- package/src/open-api/json-metadata/schema.json +20 -0
- package/src/open-api/ts-client/__snapshots__/generator.additional-properties.spec.ts.snap +147 -33
- package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
- package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +298 -74
- package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +748 -103
- package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +230 -37
- package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +249 -52
- package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5535 -0
- package/src/open-api/ts-client/__snapshots__/generator.fast-api-gaps.spec.ts.snap +736 -0
- package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +305 -71
- package/src/open-api/ts-client/__snapshots__/generator.multipart.spec.ts.snap +298 -0
- package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +353 -82
- package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +176 -55
- package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +100 -24
- package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
- package/src/open-api/ts-client/__snapshots__/generator.spec-compliance.spec.ts.snap +1883 -0
- package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
- package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +200 -48
- package/src/open-api/ts-client/files/client.gen.ts.template +358 -24
- package/src/open-api/ts-client/files/types.gen.ts.template +6 -4
- package/src/open-api/ts-client/generator.d.ts +1 -1
- package/src/open-api/ts-client/generator.js +41 -26
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-client/schema.d.js +6 -0
- package/src/open-api/ts-client/schema.d.js.map +1 -0
- package/src/open-api/ts-hooks/files/options-proxy.gen.ts.template +7 -2
- package/src/open-api/ts-hooks/generator.d.ts +1 -1
- package/src/open-api/ts-hooks/generator.js +17 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.spec.tsx +76 -6
- package/src/open-api/ts-hooks/schema.d.js +6 -0
- package/src/open-api/ts-hooks/schema.d.js.map +1 -0
- package/src/open-api/ts-metadata/generator.d.ts +1 -1
- package/src/open-api/ts-metadata/generator.js +12 -20
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/ts-metadata/schema.d.js +6 -0
- package/src/open-api/ts-metadata/schema.d.js.map +1 -0
- package/src/open-api/utils/codegen-data/languages.d.ts +1 -7
- package/src/open-api/utils/codegen-data/languages.js +59 -66
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.d.ts +255 -10
- package/src/open-api/utils/codegen-data/types.js +54 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +4 -4
- package/src/open-api/utils/codegen-data.js +494 -674
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.d.ts +1 -1
- package/src/open-api/utils/normalise.js +437 -246
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.d.ts +1 -1
- package/src/open-api/utils/parse.js +8 -14
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/parser.d.ts +55 -0
- package/src/open-api/utils/parser.js +787 -0
- package/src/open-api/utils/parser.js.map +1 -0
- package/src/open-api/utils/refs.d.ts +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.d.ts +18 -0
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +104 -21
- package/src/preset/generator.d.ts +15 -2
- package/src/preset/generator.js +76 -151
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js +6 -0
- package/src/preset/schema.d.js.map +1 -0
- package/src/preset/schema.d.ts +6 -3
- package/src/preset/schema.json +16 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +931 -0
- package/src/py/agent/__snapshots__/generator.core.spec.ts.snap +186 -0
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +771 -0
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +1322 -0
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +231 -0
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +29 -0
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +29 -0
- package/src/py/agent/a2a-connection/generator.d.ts +25 -1
- package/src/py/agent/a2a-connection/generator.js +146 -95
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/schema.d.js +8 -0
- package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/py/agent/a2a-connection/schema.d.ts +2 -1
- package/src/py/agent/a2a-connection/schema.json +5 -0
- package/src/py/agent/files/deploy/Dockerfile.template +15 -1
- package/src/py/agent/files/langchain/a2a/main.py.template +83 -0
- package/src/py/agent/files/langchain/ag-ui/main.py.template +76 -0
- package/src/py/agent/files/langchain/common/agent.py.template +30 -0
- package/src/py/agent/files/langchain/common/middleware/__init__.py.template +0 -0
- package/src/py/agent/files/langchain/common/middleware/session_id_middleware.py.template +17 -0
- package/src/py/agent/files/langchain/common/session.py.template +61 -0
- package/src/py/agent/files/{http → langchain/http}/init.py.template +17 -25
- package/src/py/agent/files/langchain/http/main.py.template +69 -0
- package/src/py/agent/files/strands/a2a/main.py.template +61 -0
- package/src/py/agent/files/strands/ag-ui/main.py.template +86 -0
- package/src/py/agent/files/strands/common/__init__.py.template +0 -0
- package/src/py/agent/files/{common → strands/common}/agent.py.template +13 -2
- package/src/py/agent/files/strands/common/middleware/__init__.py.template +0 -0
- package/src/py/agent/files/strands/common/middleware/session_id_middleware.py.template +17 -0
- package/src/py/agent/files/strands/common/session.py.template +36 -0
- package/src/py/agent/files/strands/http/init.py.template +97 -0
- package/src/py/agent/files/{http → strands/http}/main.py.template +5 -29
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
- package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
- package/src/py/agent/gateway-connection/generator.d.ts +33 -0
- package/src/py/agent/gateway-connection/generator.js +153 -0
- package/src/py/agent/gateway-connection/generator.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.js +6 -0
- package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.ts +13 -0
- package/src/py/agent/gateway-connection/schema.json +31 -0
- package/src/py/agent/generator.d.ts +165 -2
- package/src/py/agent/generator.js +445 -199
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +155 -92
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +31 -0
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +31 -0
- package/src/py/agent/mcp-connection/generator.d.ts +24 -1
- package/src/py/agent/mcp-connection/generator.js +103 -130
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/schema.d.js +8 -0
- package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/py/agent/mcp-connection/schema.d.ts +2 -1
- package/src/py/agent/mcp-connection/schema.json +5 -0
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +17 -19
- package/src/py/agent/react-connection/generator.d.ts +152 -3
- package/src/py/agent/react-connection/generator.js +114 -65
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +5 -5
- package/src/py/agent/react-connection/local-dev.js +36 -0
- package/src/py/agent/react-connection/local-dev.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.js +8 -0
- package/src/py/agent/react-connection/schema.d.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.ts +2 -1
- package/src/py/agent/react-connection/schema.json +5 -0
- package/src/py/agent/schema.d.js +6 -0
- package/src/py/agent/schema.d.js.map +1 -0
- package/src/py/agent/schema.d.ts +6 -2
- package/src/py/agent/schema.json +15 -1
- package/src/py/api/generator.d.ts +1 -1
- package/src/py/api/generator.js +12 -11
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.js +6 -0
- package/src/py/api/schema.d.js.map +1 -0
- package/src/py/api/schema.d.ts +2 -1
- package/src/py/api/schema.json +5 -0
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1592 -0
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +63 -0
- package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/agent-connection/generator.js +45 -0
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
- package/src/py/dynamodb/agent-connection/schema.json +27 -0
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +32 -0
- package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/fast-api-connection/generator.js +39 -0
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
- package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
- package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
- package/src/py/dynamodb/files/__name__/client.py.template +39 -0
- package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
- package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
- package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
- package/src/py/dynamodb/files/config.json.template +24 -0
- package/src/py/dynamodb/generator.d.ts +39 -0
- package/src/py/dynamodb/generator.js +130 -0
- package/src/py/dynamodb/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +63 -0
- package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js +45 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
- package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
- package/src/py/dynamodb/schema.d.js +6 -0
- package/src/py/dynamodb/schema.d.js.map +1 -0
- package/src/py/dynamodb/schema.d.ts +16 -0
- package/src/py/dynamodb/schema.json +76 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +240 -4693
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +6661 -0
- package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
- package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
- package/src/py/fast-api/generator.d.ts +73 -1
- package/src/py/fast-api/generator.js +126 -92
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
- package/src/py/fast-api/react/generator.d.ts +17 -2
- package/src/py/fast-api/react/generator.js +38 -26
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.js +44 -33
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/fast-api/react/schema.d.js +6 -0
- package/src/py/fast-api/react/schema.d.js.map +1 -0
- package/src/py/fast-api/react/schema.d.ts +1 -0
- package/src/py/fast-api/react/schema.json +5 -0
- package/src/py/fast-api/schema.d.js +6 -0
- package/src/py/fast-api/schema.d.js.map +1 -0
- package/src/py/fast-api/schema.d.ts +2 -1
- package/src/py/fast-api/schema.json +6 -0
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +12 -4
- package/src/py/lambda-function/files/handler/__lambdaFunctionSnakeCase__.py.template +1 -1
- package/src/py/lambda-function/generator.d.ts +28 -1
- package/src/py/lambda-function/generator.js +88 -61
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.js +6 -0
- package/src/py/lambda-function/schema.d.js.map +1 -0
- package/src/py/lambda-function/schema.d.ts +3 -2
- package/src/py/lambda-function/schema.json +6 -1
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +225 -21
- package/src/py/mcp-server/files/deploy/Dockerfile.template +15 -1
- package/src/py/mcp-server/generator.d.ts +69 -1
- package/src/py/mcp-server/generator.js +211 -137
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.js +6 -0
- package/src/py/mcp-server/schema.d.js.map +1 -0
- package/src/py/mcp-server/schema.d.ts +2 -1
- package/src/py/mcp-server/schema.json +6 -0
- package/src/py/project/generator.d.ts +37 -2
- package/src/py/project/generator.js +246 -90
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.js +6 -0
- package/src/py/project/schema.d.js.map +1 -0
- package/src/py/project/schema.d.ts +1 -0
- package/src/py/project/schema.json +6 -0
- package/src/py/rdb/__snapshots__/generator.spec.ts.snap +2113 -0
- package/src/py/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +123 -0
- package/src/py/rdb/agent-connection/generator.d.ts +10 -0
- package/src/py/rdb/agent-connection/generator.js +52 -0
- package/src/py/rdb/agent-connection/generator.js.map +1 -0
- package/src/py/rdb/agent-connection/schema.d.js +8 -0
- package/src/py/rdb/agent-connection/schema.d.js.map +1 -0
- package/src/py/rdb/agent-connection/schema.d.ts +15 -0
- package/src/py/rdb/agent-connection/schema.json +27 -0
- package/src/py/rdb/fast-api-connection/__snapshots__/generator.spec.ts.snap +51 -0
- package/src/py/rdb/fast-api-connection/files/__apiModuleName__/dependencies/__rdbNameSnake__.py.template +14 -0
- package/src/py/rdb/fast-api-connection/generator.d.ts +10 -0
- package/src/py/rdb/fast-api-connection/generator.js +56 -0
- package/src/py/rdb/fast-api-connection/generator.js.map +1 -0
- package/src/py/rdb/fast-api-connection/schema.d.js +8 -0
- package/src/py/rdb/fast-api-connection/schema.d.js.map +1 -0
- package/src/py/rdb/fast-api-connection/schema.d.ts +13 -0
- package/src/py/rdb/fast-api-connection/schema.json +23 -0
- package/src/py/rdb/files/Dockerfile.create-db-user.template +14 -0
- package/src/py/rdb/files/Dockerfile.migration.template +14 -0
- package/src/py/rdb/files/__name__/connection.py.template +55 -0
- package/src/py/rdb/files/__name__/create_db_user_handler.py.template +97 -0
- package/src/py/rdb/files/__name__/migration_handler.py.template +36 -0
- package/src/py/rdb/files/__name__/models/__init__.py.template +3 -0
- package/src/py/rdb/files/__name__/models/example.py.template +8 -0
- package/src/py/rdb/files/__name__/utils.py.template +120 -0
- package/src/py/rdb/files/alembic.ini.template +38 -0
- package/src/py/rdb/files/migrations/env.py.template +80 -0
- package/src/py/rdb/files/migrations/script.py.mako.template +28 -0
- package/src/py/rdb/generator.d.ts +103 -0
- package/src/py/rdb/generator.js +368 -0
- package/src/py/rdb/generator.js.map +1 -0
- package/src/py/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +119 -0
- package/src/py/rdb/mcp-server-connection/generator.d.ts +10 -0
- package/src/py/rdb/mcp-server-connection/generator.js +52 -0
- package/src/py/rdb/mcp-server-connection/generator.js.map +1 -0
- package/src/py/rdb/mcp-server-connection/schema.d.js +8 -0
- package/src/py/rdb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/py/rdb/mcp-server-connection/schema.d.ts +15 -0
- package/src/py/rdb/mcp-server-connection/schema.json +27 -0
- package/src/py/rdb/schema.d.js +6 -0
- package/src/py/rdb/schema.d.js.map +1 -0
- package/src/py/rdb/schema.d.ts +16 -0
- package/src/py/rdb/schema.json +78 -0
- package/src/py/rdb/utils.d.ts +6 -0
- package/src/py/rdb/utils.js +16 -0
- package/src/py/rdb/utils.js.map +1 -0
- package/src/sdk/agentcore-gateway.d.ts +6 -0
- package/src/sdk/agentcore-gateway.js +7 -0
- package/src/sdk/agentcore-gateway.js.map +1 -0
- package/src/sdk/agentcore-harness.d.ts +6 -0
- package/src/sdk/agentcore-harness.js +7 -0
- package/src/sdk/agentcore-harness.js.map +1 -0
- package/src/sdk/connection.d.ts +6 -0
- package/src/sdk/connection.js +6 -0
- package/src/sdk/connection.js.map +1 -0
- package/src/sdk/license.d.ts +8 -0
- package/src/sdk/license.js +7 -0
- package/src/sdk/license.js.map +1 -0
- package/src/sdk/open-api.d.ts +12 -0
- package/src/sdk/open-api.js +9 -0
- package/src/sdk/open-api.js.map +1 -0
- package/src/sdk/py.d.ts +18 -0
- package/src/sdk/py.js +12 -0
- package/src/sdk/py.js.map +1 -0
- package/src/sdk/smithy.d.ts +6 -0
- package/src/sdk/smithy.js +7 -0
- package/src/sdk/smithy.js.map +1 -0
- package/src/sdk/terraform.d.ts +6 -0
- package/src/sdk/terraform.js +7 -0
- package/src/sdk/terraform.js.map +1 -0
- package/src/sdk/ts.d.ts +39 -0
- package/src/sdk/ts.js +41 -0
- package/src/sdk/ts.js.map +1 -0
- package/{sdk/utils/format.d.ts → src/sdk/utils/ast.d.ts} +1 -1
- package/src/sdk/utils/ast.js +6 -0
- package/src/sdk/utils/ast.js.map +1 -0
- package/src/sdk/utils/format.d.ts +5 -0
- package/src/sdk/utils/format.js +6 -0
- package/src/sdk/utils/format.js.map +1 -0
- package/{sdk → src/sdk}/utils/test.d.ts +1 -1
- package/src/sdk/utils/test.js +6 -0
- package/src/sdk/utils/test.js.map +1 -0
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +244 -226
- package/src/smithy/project/files/{smithy-build.json.template → service/smithy-build.json.template} +5 -5
- package/src/smithy/project/files/{src → service/src}/operations/echo.smithy.template +1 -0
- package/src/smithy/project/files/shapes/smithy-build.json.template +7 -0
- package/src/smithy/project/files/shapes/src/main.smithy.template +11 -0
- package/src/smithy/project/files/ssdk-bundle/ssdk.rolldown.config.mjs.template +52 -0
- package/src/smithy/project/generator.d.ts +91 -1
- package/src/smithy/project/generator.js +220 -45
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/project/schema.d.js +6 -0
- package/src/smithy/project/schema.d.js.map +1 -0
- package/src/smithy/project/schema.d.ts +2 -0
- package/src/smithy/project/schema.json +28 -1
- package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/smithy/react-connection/generator.d.ts +16 -1
- package/src/smithy/react-connection/generator.js +54 -48
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/react-connection/schema.d.js +6 -0
- package/src/smithy/react-connection/schema.d.js.map +1 -0
- package/src/smithy/react-connection/schema.d.ts +1 -0
- package/src/smithy/react-connection/schema.json +5 -0
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +2618 -550
- package/src/smithy/ts/api/files/handler.ts.template +3 -3
- package/src/smithy/ts/api/files/local-server.ts.template +3 -3
- package/src/smithy/ts/api/files/operations/echo.ts.template +2 -2
- package/src/smithy/ts/api/files/service.ts.template +3 -3
- package/src/smithy/ts/api/generator.d.ts +89 -1
- package/src/smithy/ts/api/generator.js +185 -119
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.js +6 -0
- package/src/smithy/ts/api/schema.d.js.map +1 -0
- package/src/smithy/ts/api/schema.d.ts +2 -1
- package/src/smithy/ts/api/schema.json +6 -0
- package/src/terraform/project/files/application/bootstrap/providers.tf.template +11 -0
- package/src/terraform/project/files/application/scripts/bootstrap-destroy.ts.template +111 -0
- package/src/terraform/project/files/application/scripts/bootstrap.ts.template +40 -1
- package/src/terraform/project/files/application/scripts/env.ts.template +11 -0
- package/src/terraform/project/files/application/scripts/init.ts.template +2 -1
- package/src/terraform/project/files/application/src/main.tf.template +6 -1
- package/src/terraform/project/files/application/src/providers.tf.template +9 -3
- package/src/terraform/project/files/checkov/checkov.yml.template +8 -0
- package/src/terraform/project/files/library/src/main.tf.template +9 -0
- package/src/terraform/project/generator.d.ts +62 -2
- package/src/terraform/project/generator.js +340 -117
- package/src/terraform/project/generator.js.map +1 -1
- package/src/terraform/project/schema.d.js +9 -0
- package/src/terraform/project/schema.d.js.map +1 -0
- package/src/terraform/project/schema.d.ts +1 -0
- package/src/terraform/project/schema.json +5 -0
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +2957 -725
- package/src/trpc/backend/files/src/client/index.ts.template +1 -1
- package/src/trpc/backend/files/src/handler.ts.template +1 -1
- package/src/trpc/backend/files/src/index.ts.template +5 -5
- package/src/trpc/backend/files/src/init.ts.template +1 -1
- package/src/trpc/backend/files/src/local-server.ts.template +1 -1
- package/src/trpc/backend/files/src/middleware/index.ts.template +7 -7
- package/src/trpc/backend/files/src/procedures/echo.ts.template +3 -3
- package/src/trpc/backend/files/src/router.ts.template +2 -2
- package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
- package/src/trpc/backend/files/src/schema/index.ts.template +1 -1
- package/src/trpc/backend/files-operations/scripts/generate-operations.ts.template +40 -0
- package/src/trpc/backend/generator.d.ts +91 -2
- package/src/trpc/backend/generator.js +186 -100
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.js +6 -0
- package/src/trpc/backend/schema.d.js.map +1 -0
- package/src/trpc/backend/schema.d.ts +2 -1
- package/src/trpc/backend/schema.json +6 -0
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
- package/src/trpc/react/generator.d.ts +39 -2
- package/src/trpc/react/generator.js +105 -63
- package/src/trpc/react/generator.js.map +1 -1
- package/src/trpc/react/schema.d.js +6 -0
- package/src/trpc/react/schema.d.js.map +1 -0
- package/src/trpc/react/schema.d.ts +1 -0
- package/src/trpc/react/schema.json +5 -0
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +1490 -31
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +258 -0
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
- package/src/ts/agent/a2a-connection/generator.d.ts +47 -1
- package/src/ts/agent/a2a-connection/generator.js +112 -63
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/a2a-connection/schema.d.js +8 -0
- package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/ts/agent/a2a-connection/schema.d.ts +2 -1
- package/src/ts/agent/a2a-connection/schema.json +5 -0
- package/src/ts/agent/files/a2a/index.ts.template +5 -12
- package/src/ts/agent/files/ag-ui/index.ts.template +29 -14
- package/src/ts/agent/files/common/agent.ts.template +11 -2
- package/src/ts/agent/files/common/session.ts.template +43 -0
- package/src/ts/agent/files/common-express/middleware/session-id-middleware.ts.template +16 -0
- package/src/ts/agent/files/deploy/Dockerfile.template +20 -2
- package/src/ts/agent/files/http/client.ts.template +2 -2
- package/src/ts/agent/files/http/index.ts.template +2 -2
- package/src/ts/agent/files/http/router.ts.template +5 -5
- package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +222 -0
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
- package/src/ts/agent/gateway-connection/generator.d.ts +47 -0
- package/src/ts/agent/gateway-connection/generator.js +144 -0
- package/src/ts/agent/gateway-connection/generator.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.js +6 -0
- package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
- package/src/ts/agent/gateway-connection/schema.json +31 -0
- package/src/ts/agent/generator.d.ts +206 -1
- package/src/ts/agent/generator.js +342 -159
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +194 -114
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +23 -0
- package/src/ts/agent/mcp-connection/generator.d.ts +38 -1
- package/src/ts/agent/mcp-connection/generator.js +88 -65
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/schema.d.js +8 -0
- package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/ts/agent/mcp-connection/schema.d.ts +2 -1
- package/src/ts/agent/mcp-connection/schema.json +5 -0
- package/src/ts/agent/react-connection/__snapshots__/generator.spec.ts.snap +8 -4
- package/src/ts/agent/react-connection/files/src/components/__agentNameClassName__AgentClientProvider.tsx.template +2 -1
- package/src/ts/agent/react-connection/generator.d.ts +204 -3
- package/src/ts/agent/react-connection/generator.js +158 -99
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/local-dev.d.ts +13 -0
- package/src/ts/agent/react-connection/local-dev.js +17 -0
- package/src/ts/agent/react-connection/local-dev.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.js +8 -0
- package/src/ts/agent/react-connection/schema.d.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.ts +2 -1
- package/src/ts/agent/react-connection/schema.json +5 -0
- package/src/ts/agent/schema.d.js +6 -0
- package/src/ts/agent/schema.d.js.map +1 -0
- package/src/ts/agent/schema.d.ts +5 -1
- package/src/ts/agent/schema.json +14 -0
- package/src/ts/api/generator.d.ts +1 -1
- package/src/ts/api/generator.js +16 -16
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.js +6 -0
- package/src/ts/api/schema.d.js.map +1 -0
- package/src/ts/api/schema.d.ts +2 -1
- package/src/ts/api/schema.json +5 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +22 -8
- package/src/ts/astro-docs/files/base/src/content/docs/en/index.mdx.template +2 -2
- package/src/ts/astro-docs/files/base/src/content.config.ts.template +4 -4
- package/src/ts/astro-docs/files/translation/scripts/translate.ts.template +272 -150
- package/src/ts/astro-docs/generator.d.ts +41 -1
- package/src/ts/astro-docs/generator.js +133 -59
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/astro-docs/schema.d.js +6 -0
- package/src/ts/astro-docs/schema.d.js.map +1 -0
- package/src/ts/astro-docs/schema.d.ts +2 -2
- package/src/ts/astro-docs/schema.json +3 -3
- package/src/ts/dcr-proxy/__snapshots__/generator.spec.ts.snap +986 -0
- package/src/ts/dcr-proxy/generator.d.ts +34 -0
- package/src/ts/dcr-proxy/generator.js +115 -0
- package/src/ts/dcr-proxy/generator.js.map +1 -0
- package/src/ts/dcr-proxy/schema.d.js +6 -0
- package/src/ts/dcr-proxy/schema.d.js.map +1 -0
- package/src/ts/dcr-proxy/schema.d.ts +13 -0
- package/src/ts/dcr-proxy/schema.json +44 -0
- package/src/ts/docs/generator.d.ts +1 -1
- package/src/ts/docs/generator.js +10 -10
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/docs/schema.d.js +6 -0
- package/src/ts/docs/schema.d.js.map +1 -0
- package/src/ts/docs/schema.d.ts +1 -4
- package/src/ts/docs/schema.json +3 -3
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +481 -527
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +23 -5
- package/src/ts/dynamodb/agent-connection/generator.d.ts +1 -1
- package/src/ts/dynamodb/agent-connection/generator.js +27 -23
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.ts +2 -1
- package/src/ts/dynamodb/agent-connection/schema.json +5 -0
- package/src/ts/dynamodb/files/config.json.template +24 -0
- package/src/ts/dynamodb/files/src/client.ts.template +30 -11
- package/src/ts/dynamodb/files/src/entities/example.ts.template +1 -1
- package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -1
- package/src/ts/dynamodb/files/src/index.ts.template +2 -11
- package/src/ts/dynamodb/generator.d.ts +42 -1
- package/src/ts/dynamodb/generator.js +110 -64
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +23 -5
- package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +1 -1
- package/src/ts/dynamodb/mcp-server-connection/generator.js +27 -23
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +2 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -0
- package/src/ts/dynamodb/schema.d.js +6 -0
- package/src/ts/dynamodb/schema.d.js.map +1 -0
- package/src/ts/dynamodb/schema.d.ts +3 -1
- package/src/ts/dynamodb/schema.json +26 -2
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +12 -3
- package/src/ts/dynamodb/smithy-connection/generator.d.ts +1 -1
- package/src/ts/dynamodb/smithy-connection/generator.js +22 -22
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
- package/src/ts/dynamodb/trpc-connection/generator.d.ts +1 -1
- package/src/ts/dynamodb/trpc-connection/generator.js +22 -22
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +19 -9
- package/src/ts/lambda-function/files/handler/__lambdaFunctionKebabCase__.ts.template +2 -1
- package/src/ts/lambda-function/generator.d.ts +39 -1
- package/src/ts/lambda-function/generator.js +98 -65
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/io.js +83 -52
- package/src/ts/lambda-function/io.js.map +1 -1
- package/src/ts/lambda-function/schema.d.js +6 -0
- package/src/ts/lambda-function/schema.d.js.map +1 -0
- package/src/ts/lambda-function/schema.d.ts +2 -1
- package/src/ts/lambda-function/schema.json +5 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +83 -36
- package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +2 -2
- package/src/ts/lib/biome.d.ts +1 -1
- package/src/ts/lib/biome.js +71 -38
- package/src/ts/lib/biome.js.map +1 -1
- package/src/ts/lib/generator.d.ts +24 -1
- package/src/ts/lib/generator.js +128 -94
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
- package/src/ts/lib/schema.d.js +6 -0
- package/src/ts/lib/schema.d.js.map +1 -0
- package/src/ts/lib/schema.d.ts +1 -1
- package/src/ts/lib/schema.json +5 -0
- package/src/ts/lib/ts-project-utils.d.ts +4 -2
- package/src/ts/lib/ts-project-utils.js +85 -74
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.d.ts +6 -0
- package/src/ts/lib/types.js +5 -2
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +22 -2
- package/src/ts/lib/vitest.js +83 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +225 -44
- package/src/ts/mcp-server/files/Dockerfile.template +20 -2
- package/src/ts/mcp-server/generator.d.ts +111 -1
- package/src/ts/mcp-server/generator.js +234 -168
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.js +6 -0
- package/src/ts/mcp-server/schema.d.js.map +1 -0
- package/src/ts/mcp-server/schema.d.ts +2 -1
- package/src/ts/mcp-server/schema.json +6 -0
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +28 -13
- package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
- package/src/ts/nx-generator/files/common/schema.json.template +5 -0
- package/src/ts/nx-generator/files/local/generator.spec.ts.template +1 -1
- package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
- package/src/ts/nx-generator/generator.d.ts +3 -0
- package/src/ts/nx-generator/generator.js +122 -75
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-generator/schema.d.js +6 -0
- package/src/ts/nx-generator/schema.d.js.map +1 -0
- package/src/ts/nx-generator/schema.d.ts +1 -0
- package/src/ts/nx-generator/schema.json +5 -0
- package/src/ts/nx-migration/files/migration.spec.ts.template +26 -0
- package/src/ts/nx-migration/files/migration.ts.template +65 -0
- package/src/ts/nx-migration/files/prompt.md.template +46 -0
- package/src/ts/nx-migration/generator.d.ts +27 -0
- package/src/ts/nx-migration/generator.js +147 -0
- package/src/ts/nx-migration/generator.js.map +1 -0
- package/src/ts/nx-migration/schema.d.js +6 -0
- package/src/ts/nx-migration/schema.d.js.map +1 -0
- package/src/ts/nx-migration/schema.d.ts +13 -0
- package/src/ts/nx-migration/schema.json +63 -0
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +36 -25
- package/src/ts/nx-plugin/files/mcp-server/resources/GENERAL_GUIDANCE.md.template +5 -6
- package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
- package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
- package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +4 -4
- package/src/ts/nx-plugin/generator.d.ts +4 -1
- package/src/ts/nx-plugin/generator.js +64 -48
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/schema.d.js +9 -0
- package/src/ts/nx-plugin/schema.d.js.map +1 -0
- package/src/ts/nx-plugin/schema.json +5 -0
- package/src/ts/nx-plugin/utils.d.ts +27 -2
- package/src/ts/nx-plugin/utils.js +66 -57
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +711 -877
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +16 -6
- package/src/ts/rdb/agent-connection/generator.d.ts +1 -1
- package/src/ts/rdb/agent-connection/generator.js +44 -39
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/agent-connection/schema.d.js +8 -0
- package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/agent-connection/schema.d.ts +2 -1
- package/src/ts/rdb/agent-connection/schema.json +5 -0
- package/src/ts/rdb/files/Dockerfile.template +19 -1
- package/src/ts/rdb/files/prisma.config.ts.template +6 -5
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +9 -11
- package/src/ts/rdb/files/src/migration-handler.ts.template +5 -30
- package/src/ts/rdb/files/src/prisma.ts.template +33 -25
- package/src/ts/rdb/files/src/utils.ts.template +31 -1
- package/src/ts/rdb/generator.d.ts +118 -5
- package/src/ts/rdb/generator.js +272 -127
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +16 -6
- package/src/ts/rdb/mcp-server-connection/generator.d.ts +1 -1
- package/src/ts/rdb/mcp-server-connection/generator.js +42 -37
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.ts +2 -1
- package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
- package/src/ts/rdb/schema.d.js +6 -0
- package/src/ts/rdb/schema.d.js.map +1 -0
- package/src/ts/rdb/schema.d.ts +2 -1
- package/src/ts/rdb/schema.json +7 -1
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +18 -9
- package/src/ts/rdb/smithy-connection/generator.d.ts +1 -1
- package/src/ts/rdb/smithy-connection/generator.js +48 -43
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
- package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
- package/src/ts/rdb/smithy-connection/schema.json +5 -0
- package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +12 -3
- package/src/ts/rdb/trpc-connection/generator.d.ts +1 -1
- package/src/ts/rdb/trpc-connection/generator.js +37 -31
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
- package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/rdb/trpc-connection/schema.json +5 -0
- package/src/ts/rdb/utils.js +9 -11
- package/src/ts/rdb/utils.js.map +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +17 -16
- package/src/ts/react-website/agui/generator.d.ts +97 -0
- package/src/ts/react-website/agui/generator.js +114 -67
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +1705 -717
- package/src/ts/react-website/app/files/app/common/README.md.template +1 -1
- package/src/ts/react-website/app/generator.d.ts +146 -3
- package/src/ts/react-website/app/generator.js +363 -209
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.js +6 -0
- package/src/ts/react-website/app/schema.d.js.map +1 -0
- package/src/ts/react-website/app/schema.d.ts +3 -3
- package/src/ts/react-website/app/schema.json +12 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +225 -31
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +78 -12
- package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
- package/src/ts/react-website/cognito-auth/generator.d.ts +26 -2
- package/src/ts/react-website/cognito-auth/generator.js +79 -61
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
- package/src/ts/react-website/cognito-auth/schema.d.ts +2 -1
- package/src/ts/react-website/cognito-auth/schema.json +5 -0
- package/src/ts/react-website/cognito-auth/utils.js +34 -32
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
- package/src/ts/react-website/runtime-config/generator.d.ts +1 -1
- package/src/ts/react-website/runtime-config/generator.js +29 -31
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/schema.d.js +6 -0
- package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
- package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
- package/src/ts/react-website/runtime-config/schema.json +5 -0
- package/src/ts/sync/generator.d.ts +1 -1
- package/src/ts/sync/generator.js +154 -60
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.d.ts +1 -1
- package/src/ts/website/app/generator.js +10 -10
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.js +6 -0
- package/src/ts/website/app/schema.d.js.map +1 -0
- package/src/ts/website/app/schema.d.ts +3 -3
- package/src/ts/website/app/schema.json +11 -6
- package/src/ts/website/auth/generator.d.ts +2 -2
- package/src/ts/website/auth/generator.js +11 -10
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.js +6 -0
- package/src/ts/website/auth/schema.d.js.map +1 -0
- package/src/ts/website/auth/schema.d.ts +2 -1
- package/src/ts/website/auth/schema.json +5 -0
- package/src/utils/__snapshots__/shared-constructs.spec.ts.snap +21 -0
- package/src/utils/add-dependencies.d.ts +38 -0
- package/src/utils/add-dependencies.js +83 -0
- package/src/utils/add-dependencies.js.map +1 -0
- package/src/utils/agent-chat/agent-chat.d.ts +31 -0
- package/src/utils/agent-chat/agent-chat.js +31 -0
- package/src/utils/agent-chat/agent-chat.js.map +1 -0
- package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
- package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
- package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
- package/src/utils/agent-connection/agent-connection.d.ts +149 -26
- package/src/utils/agent-connection/agent-connection.js +510 -108
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
- package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
- package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
- package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +35 -33
- package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
- package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
- package/src/utils/agent-connection/files/{core-runtime-config/model-errors.ts.template → core-strands/base/model-errors-strands.ts.template} +26 -15
- package/src/utils/agent-connection/files/core-strands/base/tool-errors-strands.ts.template +29 -0
- package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +1 -1
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
- package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
- package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
- package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
- package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
- package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +105 -0
- package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
- package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
- package/src/utils/agent-connection/files/py-core-langchain/s3/s3_checkpoint_saver_langchain.py.template +360 -0
- package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +4 -18
- package/src/utils/agent-connection/files/py-core-runtime-config/session_context.py.template +2 -2
- package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
- package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +111 -0
- package/src/utils/agent-connection/files/py-core-strands/base/tool_errors_strands.py.template +24 -0
- package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +2 -2
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
- package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +88 -2
- package/src/utils/agent-core-constructs/agent-core-constructs.js +227 -30
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +273 -9
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +87 -0
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.ts.template +404 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +624 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agent-core/__nameKebabCase__/__nameKebabCase__.tf.template +288 -1
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +576 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-harness/__nameKebabCase__/__nameKebabCase__.tf.template +516 -0
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +163 -13
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
- package/src/utils/api-constructs/api-constructs.d.ts +31 -3
- package/src/utils/api-constructs/api-constructs.js +96 -32
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +24 -19
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +28 -20
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +26 -9
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +70 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +56 -17
- package/src/utils/api-constructs/files/cdk/core/api/trpc/trpc-utils.ts.template +1 -1
- package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +356 -19
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +635 -14
- package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
- package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
- package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +65 -18
- package/src/utils/api-constructs/open-api-metadata.d.ts +21 -4
- package/src/utils/api-constructs/open-api-metadata.js +74 -39
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/api-constructs/trpc-operations-metadata.d.ts +21 -0
- package/src/utils/api-constructs/trpc-operations-metadata.js +61 -0
- package/src/utils/api-constructs/trpc-operations-metadata.js.map +1 -0
- package/src/utils/ast/website.js +17 -19
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +47 -0
- package/src/utils/ast.js +185 -96
- package/src/utils/ast.js.map +1 -1
- package/src/utils/base-tsconfig.d.ts +30 -0
- package/src/utils/base-tsconfig.js +32 -0
- package/src/utils/base-tsconfig.js.map +1 -0
- package/src/utils/bundle/bundle.d.ts +6 -1
- package/src/utils/bundle/bundle.js +70 -48
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.d.ts +14 -3
- package/src/utils/commands.js +83 -28
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +22 -6
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.d.ts +9 -3
- package/src/utils/config/utils.js +56 -59
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +16 -3
- package/src/utils/connection/open-api/react.d.ts +31 -5
- package/src/utils/connection/open-api/react.js +106 -86
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.d.ts +38 -0
- package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js +95 -0
- package/src/utils/dcr-proxy-constructs/dcr-proxy-constructs.js.map +1 -0
- package/src/utils/dcr-proxy-constructs/files/cdk/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.ts.template +227 -0
- package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorization-server-metadata.ts.template +39 -0
- package/src/utils/dcr-proxy-constructs/files/project/src/handlers/authorize.ts.template +26 -0
- package/src/utils/dcr-proxy-constructs/files/project/src/handlers/mcp-proxy.ts.template +89 -0
- package/src/utils/dcr-proxy-constructs/files/project/src/handlers/protected-resource-metadata.ts.template +13 -0
- package/src/utils/dcr-proxy-constructs/files/project/src/handlers/register.ts.template +70 -0
- package/src/utils/dcr-proxy-constructs/files/project/src/handlers/token.ts.template +75 -0
- package/src/utils/dcr-proxy-constructs/files/terraform/app/dcr-proxies/__nameKebabCase__/__nameKebabCase__.tf.template +414 -0
- package/src/utils/declared-dependencies.d.ts +140 -0
- package/src/utils/declared-dependencies.js +64 -0
- package/src/utils/declared-dependencies.js.map +1 -0
- package/src/utils/dependencies.d.ts +18 -0
- package/src/utils/dependencies.js +206 -0
- package/src/utils/dependencies.js.map +1 -0
- package/src/utils/docker.d.ts +101 -0
- package/src/utils/docker.js +135 -0
- package/src/utils/docker.js.map +1 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +2 -2
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +39 -33
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +18 -5
- package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +24 -4
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +66 -18
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +46 -6
- package/src/utils/files/common/constructs/src/core/cloudfront.ts.template +14 -0
- package/src/utils/files/common/constructs/src/core/index.ts.template +5 -4
- package/src/utils/files/common/constructs/src/index.ts.template +2 -2
- package/src/utils/files/common/infra-config/src/index.ts.template +3 -3
- package/src/utils/files/common/infra-config/src/resolve-stage.ts.template +2 -2
- package/src/utils/files/common/infra-config/src/stages.config.ts.template +1 -1
- package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/create-local-table.ts.template +65 -31
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
- package/src/{ts/dynamodb/files/scripts → utils/files/common/scripts/src/dynamodb}/start-container.ts.template +29 -22
- package/src/utils/files/common/scripts/src/infra/infra-deploy.ts.template +2 -0
- package/src/utils/files/common/scripts/src/infra/infra-destroy.ts.template +2 -0
- package/src/utils/files/common/scripts/src/infra/stage-credentials/cdk-command.ts.template +25 -0
- package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +3 -3
- package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
- package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +100 -0
- package/src/utils/files/common/shadcn/readme/README.md.template +3 -3
- package/src/utils/files/common/shadcn/src/index.ts.template +2 -2
- package/src/utils/files/shadcn/components.json.template +1 -1
- package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +63 -72
- package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +3 -3
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +13 -7
- package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
- package/src/utils/files/terraform/src/metrics/providers.tf.template +12 -0
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.d.ts +44 -4
- package/src/utils/format.js +323 -198
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +24 -5
- package/src/utils/fs.js +40 -15
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/cdk/app/lambda-functions/__nameKebabCase__.ts.template +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +6 -2
- package/src/utils/function-constructs/function-constructs.d.ts +1 -1
- package/src/utils/function-constructs/function-constructs.js +24 -27
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.d.ts +33 -0
- package/src/utils/generators.js +33 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.js +19 -34
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.js +5 -5
- package/src/utils/iac-providers.js.map +1 -1
- package/src/utils/iac.d.ts +2 -2
- package/src/utils/iac.js +12 -14
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +218 -30
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +32 -9
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +226 -25
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +33 -0
- package/src/utils/identity-constructs/identity-constructs.d.ts +11 -1
- package/src/utils/identity-constructs/identity-constructs.js +52 -31
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/init.d.ts +73 -0
- package/src/utils/init.js +300 -0
- package/src/utils/init.js.map +1 -0
- package/src/utils/install.d.ts +32 -0
- package/src/utils/install.js +58 -0
- package/src/utils/install.js.map +1 -0
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/lambda-runtime-resolution.d.ts +53 -0
- package/src/utils/lambda-runtime-resolution.js +83 -0
- package/src/utils/lambda-runtime-resolution.js.map +1 -0
- package/src/utils/mcp.d.ts +9 -0
- package/src/utils/mcp.js +42 -41
- package/src/utils/mcp.js.map +1 -1
- package/src/utils/metrics.d.ts +1 -1
- package/src/utils/metrics.js +30 -45
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/migration-manifest.d.ts +58 -0
- package/src/utils/migration-manifest.js +76 -0
- package/src/utils/migration-manifest.js.map +1 -0
- package/src/utils/migration-versions.d.ts +145 -0
- package/src/utils/migration-versions.js +250 -0
- package/src/utils/migration-versions.js.map +1 -0
- package/src/utils/mock-project-graph.js +12 -13
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/module-format.d.ts +25 -0
- package/src/utils/module-format.js +45 -0
- package/src/utils/module-format.js.map +1 -0
- package/src/utils/names.d.ts +22 -0
- package/src/utils/names.js +44 -48
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.d.ts +0 -4
- package/src/utils/npm-scope.js +7 -20
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +91 -6
- package/src/utils/nx.js +186 -74
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.js +27 -15
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/object.js +5 -11
- package/src/utils/object.js.map +1 -1
- package/src/utils/open-api-codegen-target.d.ts +28 -0
- package/src/utils/open-api-codegen-target.js +31 -0
- package/src/utils/open-api-codegen-target.js.map +1 -0
- package/src/utils/paths.js +11 -15
- package/src/utils/paths.js.map +1 -1
- package/src/utils/pkg-manager.d.ts +1 -1
- package/src/utils/pkg-manager.js +4 -9
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/pnpm-workspace.d.ts +1 -12
- package/src/utils/pnpm-workspace.js +16 -43
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.d.ts +6 -5
- package/src/utils/port.js +31 -39
- package/src/utils/port.js.map +1 -1
- package/src/utils/project-package-json.d.ts +39 -0
- package/src/utils/project-package-json.js +119 -0
- package/src/utils/project-package-json.js.map +1 -0
- package/src/utils/py.d.ts +18 -4
- package/src/utils/py.js +64 -46
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +72 -18
- package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +130 -88
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +132 -66
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +78 -162
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +26 -3
- package/src/utils/rdb-constructs/rdb-constructs.js +61 -33
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/ruff.d.ts +59 -0
- package/src/utils/ruff.js +140 -0
- package/src/utils/ruff.js.map +1 -0
- package/src/utils/shared-constructs-constants.d.ts +68 -4
- package/src/utils/shared-constructs-constants.js +68 -15
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +5 -2
- package/src/utils/shared-constructs.js +62 -67
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.d.ts +18 -0
- package/src/utils/shared-dynamodb-scripts.js +35 -0
- package/src/utils/shared-dynamodb-scripts.js.map +1 -0
- package/src/utils/shared-infra-config.js +31 -30
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.d.ts +26 -0
- package/src/utils/shared-infra-scripts.js +58 -0
- package/src/utils/shared-infra-scripts.js.map +1 -0
- package/src/utils/shared-rdb-scripts.d.ts +27 -0
- package/src/utils/shared-rdb-scripts.js +59 -0
- package/src/utils/shared-rdb-scripts.js.map +1 -0
- package/src/utils/shared-scripts.d.ts +1 -4
- package/src/utils/shared-scripts.js +12 -38
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +26 -1
- package/src/utils/shared-shadcn.js +93 -67
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/smithy.d.ts +59 -0
- package/src/utils/smithy.js +73 -0
- package/src/utils/smithy.js.map +1 -0
- package/src/utils/test-git.d.ts +39 -0
- package/src/utils/test-git.js +117 -0
- package/src/utils/test-git.js.map +1 -0
- package/src/utils/test.d.ts +10 -0
- package/src/utils/test.js +44 -25
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.d.ts +5 -0
- package/src/utils/toml.js +17 -15
- package/src/utils/toml.js.map +1 -1
- package/src/utils/version-upgrade-migration/migration.d.ts +14 -0
- package/src/utils/version-upgrade-migration/migration.js +16 -0
- package/src/utils/version-upgrade-migration/migration.js.map +1 -0
- package/src/utils/version-upgrade-migration/nx-package-updates.d.ts +45 -0
- package/src/utils/version-upgrade-migration/nx-package-updates.js +50 -0
- package/src/utils/version-upgrade-migration/nx-package-updates.js.map +1 -0
- package/src/utils/version-upgrade-migration/owned-dependencies.d.ts +76 -0
- package/src/utils/version-upgrade-migration/owned-dependencies.js +146 -0
- package/src/utils/version-upgrade-migration/owned-dependencies.js.map +1 -0
- package/src/utils/version-upgrade-migration/register.d.ts +29 -0
- package/src/utils/version-upgrade-migration/register.js +42 -0
- package/src/utils/version-upgrade-migration/register.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-embedded-versions.d.ts +26 -0
- package/src/utils/version-upgrade-migration/sync-embedded-versions.js +352 -0
- package/src/utils/version-upgrade-migration/sync-embedded-versions.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-lambda-runtimes.d.ts +28 -0
- package/src/utils/version-upgrade-migration/sync-lambda-runtimes.js +148 -0
- package/src/utils/version-upgrade-migration/sync-lambda-runtimes.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-metrics-version.d.ts +13 -0
- package/src/utils/version-upgrade-migration/sync-metrics-version.js +33 -0
- package/src/utils/version-upgrade-migration/sync-metrics-version.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-python-language-version.d.ts +31 -0
- package/src/utils/version-upgrade-migration/sync-python-language-version.js +110 -0
- package/src/utils/version-upgrade-migration/sync-python-language-version.js.map +1 -0
- package/src/utils/version-upgrade-migration/sync-vended-versions.d.ts +10 -0
- package/src/utils/version-upgrade-migration/sync-vended-versions.js +547 -0
- package/src/utils/version-upgrade-migration/sync-vended-versions.js.map +1 -0
- package/src/utils/version-upgrade-migration/vended-upgrade.d.ts +14 -0
- package/src/utils/version-upgrade-migration/vended-upgrade.js +40 -0
- package/src/utils/version-upgrade-migration/vended-upgrade.js.map +1 -0
- package/src/utils/versions.d.ts +300 -108
- package/src/utils/versions.js +317 -121
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/app/static-websites/__websiteNameKebabCase__.ts.template +12 -3
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +252 -49
- package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +56 -1
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +205 -107
- package/src/utils/website-constructs/website-constructs.d.ts +12 -1
- package/src/utils/website-constructs/website-constructs.js +49 -30
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/bin/aws-nx-mcp.d.ts +0 -2
- package/bin/aws-nx-mcp.js +0 -17
- package/bin/aws-nx-mcp.js.map +0 -1
- package/sdk/connection.d.ts +0 -6
- package/sdk/connection.js +0 -10
- package/sdk/connection.js.map +0 -1
- package/sdk/license.d.ts +0 -8
- package/sdk/license.js +0 -13
- package/sdk/license.js.map +0 -1
- package/sdk/open-api.d.ts +0 -10
- package/sdk/open-api.js +0 -15
- package/sdk/open-api.js.map +0 -1
- package/sdk/py.d.ts +0 -14
- package/sdk/py.js +0 -18
- package/sdk/py.js.map +0 -1
- package/sdk/terraform.d.ts +0 -6
- package/sdk/terraform.js +0 -11
- package/sdk/terraform.js.map +0 -1
- package/sdk/ts.d.ts +0 -29
- package/sdk/ts.js +0 -47
- package/sdk/ts.js.map +0 -1
- package/sdk/utils/ast.js +0 -12
- package/sdk/utils/ast.js.map +0 -1
- package/sdk/utils/format.js +0 -10
- package/sdk/utils/format.js.map +0 -1
- package/sdk/utils/test.js +0 -10
- package/sdk/utils/test.js.map +0 -1
- package/src/connection/agent-serve-local.d.ts +0 -33
- package/src/connection/agent-serve-local.js +0 -48
- package/src/connection/agent-serve-local.js.map +0 -1
- package/src/connection/serve-local.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/__snapshots__/generator.spec.ts.snap +0 -771
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
- package/src/py/agent/files/a2a/main.py.template +0 -54
- package/src/py/agent/files/ag-ui/main.py.template +0 -37
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
- package/src/py/agent/react-connection/serve-local.js +0 -30
- package/src/py/agent/react-connection/serve-local.js.map +0 -1
- package/src/py/agent/scripts/http/chat.ts.template +0 -38
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
- package/src/ts/agent/react-connection/serve-local.d.ts +0 -13
- package/src/ts/agent/react-connection/serve-local.js +0 -19
- package/src/ts/agent/react-connection/serve-local.js.map +0 -1
- package/src/ts/agent/scripts/http/chat.ts.template +0 -35
- package/src/ts/dynamodb/files/scripts/pull-image.ts.template +0 -15
- package/src/ts/dynamodb/files/src/constants.ts.template +0 -9
- package/src/ts/dynamodb/files/src/gsi.ts.template +0 -14
- package/src/ts/rdb/files/scripts/pull-image.ts.template +0 -15
- package/src/ts/rdb/files/scripts/start-container.ts.template +0 -84
- package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
- package/src/ts/rdb/files/src/constants.ts.template +0 -8
- package/src/ts/rdb/files/src/index.ts.template +0 -2
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
- package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
- package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
- package/src/utils/files/common/scripts/src/infra-deploy.ts.template +0 -2
- package/src/utils/files/common/scripts/src/infra-destroy.ts.template +0 -2
- package/src/utils/files/common/scripts/src/stage-credentials/cdk-command.ts.template +0 -18
- package/src/utils/files/terraform/scripts/reset-runtime-config.ts.template +0 -25
- /package/src/py/agent/files/{common → langchain/common}/__init__.py.template +0 -0
- /package/src/smithy/project/files/{src → service/src}/main.smithy.template +0 -0
- /package/src/utils/agent-connection/files/{py-core-runtime-config/model_errors.py.template → py-core-strands/base/model_errors_strands.py.template} +0 -0
- /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
|
@@ -1,770 +1,590 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const names_1 = require("../../utils/names");
|
|
15
|
-
const languages_1 = require("./codegen-data/languages");
|
|
16
|
-
const types_1 = require("./codegen-data/types");
|
|
17
|
-
const normalise_1 = require("./normalise");
|
|
18
|
-
const refs_1 = require("./refs");
|
|
4
|
+
*/ import orderBy from "lodash.orderby";
|
|
5
|
+
import trim from "lodash.trim";
|
|
6
|
+
import uniqBy from "lodash.uniqby";
|
|
7
|
+
import { camelCase, pascalCase, snakeCase, toClassName, upperFirst } from "../../utils/names.js";
|
|
8
|
+
import { toPythonName, toPythonType, toTypeScriptModelName, toTypeScriptName, toTypeScriptType } from "./codegen-data/languages.js";
|
|
9
|
+
import { COLLECTION_TYPES, COMPOSED_SCHEMA_TYPES, createModel, DEFAULT_SERVICE_NAME, indexModelsByName, PRIMITIVE_TYPES, STREAMING_CONTENT_TYPES, VENDOR_EXTENSIONS } from "./codegen-data/types.js";
|
|
10
|
+
import { normaliseOpenApiSpecForCodeGen } from "./normalise.js";
|
|
11
|
+
import { buildClientData, buildInlineModel, compositeMemberSchemas, getSpecOperation, getSpecParametersByKey, getSpecPathParameters, linkModel, specParameterKey } from "./parser.js";
|
|
12
|
+
import { isRef, resolveIfRef, splitRef } from "./refs.js";
|
|
19
13
|
/**
|
|
20
|
-
*
|
|
21
|
-
*/
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
const
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
//
|
|
30
|
-
ensureCompositeModels(data);
|
|
31
|
-
const modelsByName = Object.fromEntries(data.models.map((m) => [m.name, m]));
|
|
32
|
-
// Augment operations with additional data
|
|
33
|
-
for (const service of data.services) {
|
|
34
|
-
// Keep track of the request and response models we need the service (ie api client) to import
|
|
35
|
-
const requestModelImports = [];
|
|
36
|
-
const responseModelImports = [];
|
|
37
|
-
for (const op of service.operations) {
|
|
38
|
-
// Extract the operation back from the openapi spec
|
|
39
|
-
const specOp = spec?.paths?.[op.path]?.[op.method.toLowerCase()];
|
|
40
|
-
op.name = op.id ?? op.name;
|
|
41
|
-
op.uniqueName = op.name;
|
|
42
|
-
if (specOp['x-aws-nx-deduplicated-op-id']) {
|
|
43
|
-
op.uniqueName = specOp['x-aws-nx-deduplicated-op-id'];
|
|
44
|
-
}
|
|
45
|
-
if (specOp['x-aws-nx-deduplicated-dot-op-id']) {
|
|
46
|
-
op.dotNotationName = specOp['x-aws-nx-deduplicated-dot-op-id'];
|
|
47
|
-
}
|
|
48
|
-
// Add vendor extensions
|
|
49
|
-
op.vendorExtensions = op.vendorExtensions ?? {};
|
|
50
|
-
copyVendorExtensions(specOp ?? {}, op.vendorExtensions);
|
|
51
|
-
if (specOp) {
|
|
52
|
-
// Add all response models to the response model imports
|
|
53
|
-
responseModelImports.push(...op.responses
|
|
54
|
-
.filter((r) => r.export === 'reference')
|
|
55
|
-
.map((r) => r.type));
|
|
56
|
-
for (const response of op.responses) {
|
|
57
|
-
// Validate that the response is not a composite schema of primitives since we cannot determine what
|
|
58
|
-
// the type of the response is (it all comes back as text!)
|
|
59
|
-
if (response.export === 'reference' &&
|
|
60
|
-
types_1.COMPOSED_SCHEMA_TYPES.has(modelsByName[response.type]?.export)) {
|
|
61
|
-
const composedPrimitives = modelsByName[response.type].composedPrimitives.filter((p) => !['array', 'dictionary'].includes(p.export));
|
|
62
|
-
if (composedPrimitives.length > 0) {
|
|
63
|
-
throw new Error(`Operation "${op.method} ${op.path}" returns a composite schema of primitives with ${(0, lodash_camelcase_1.default)(modelsByName[response.type].export)}, which cannot be distinguished at runtime`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
const matchingSpecResponse = specOp.responses[`${response.code}`];
|
|
67
|
-
// @hey-api/openapi-ts does not distinguish between returning an "any" or returning "void"
|
|
68
|
-
// We distinguish this by looking back at each response in the spec, and checking whether it
|
|
69
|
-
// has content
|
|
70
|
-
if (matchingSpecResponse) {
|
|
71
|
-
// Resolve the ref if necessary
|
|
72
|
-
const specResponse = (0, refs_1.resolveIfRef)(spec, matchingSpecResponse);
|
|
73
|
-
// When there's no content, we set the type to 'void'
|
|
74
|
-
if (!specResponse.content) {
|
|
75
|
-
response.type = 'void';
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
// Add the response media types
|
|
79
|
-
const mediaTypes = Object.keys(specResponse.content);
|
|
80
|
-
response.mediaTypes = mediaTypes;
|
|
81
|
-
for (const mediaType of mediaTypes) {
|
|
82
|
-
const responseContent = specResponse.content?.[mediaType] ??
|
|
83
|
-
Object.values(specResponse.content)[0];
|
|
84
|
-
const responseSchema = (0, refs_1.resolveIfRef)(spec, responseContent.schema);
|
|
85
|
-
if (responseSchema) {
|
|
86
|
-
await mutateWithOpenapiSchemaProperties(spec, response, responseSchema, modelsByName);
|
|
87
|
-
}
|
|
88
|
-
if (types_1.STREAMING_CONTENT_TYPES.has(mediaType) &&
|
|
89
|
-
'itemSchema' in responseContent) {
|
|
90
|
-
response.isJsonlStreaming = true;
|
|
91
|
-
response.itemSchemaModel =
|
|
92
|
-
await buildOrReferenceModel(spec, modelsByName, responseContent.itemSchema);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
const specParametersByName = Object.fromEntries((specOp?.parameters ?? []).map((p) => {
|
|
100
|
-
const param = (0, refs_1.resolveIfRef)(spec, p);
|
|
101
|
-
return [param.name, param];
|
|
102
|
-
}));
|
|
103
|
-
// Loop through the parameters
|
|
104
|
-
for (const parameter of op.parameters) {
|
|
105
|
-
// Add the request model import
|
|
106
|
-
if (parameter.export === 'reference') {
|
|
107
|
-
requestModelImports.push(parameter.type);
|
|
108
|
-
}
|
|
109
|
-
const specParameter = specParametersByName[parameter.prop];
|
|
110
|
-
const specParameterSchema = (0, refs_1.resolveIfRef)(spec, specParameter?.schema);
|
|
111
|
-
if (specParameterSchema) {
|
|
112
|
-
await mutateWithOpenapiSchemaProperties(spec, parameter, specParameterSchema, modelsByName);
|
|
113
|
-
}
|
|
114
|
-
if (parameter.in === 'body' || parameter.in === 'formData') {
|
|
115
|
-
// Parameter name for the body is 'body'. `formData` bodies arrive
|
|
116
|
-
// under a synthetic `formData` param (hey-api convention) that's
|
|
117
|
-
// logically the body — normalise both shapes to `in === 'body'`
|
|
118
|
-
// so every downstream consumer (including ts-client's request-
|
|
119
|
-
// type composition) sees a single body kind.
|
|
120
|
-
parameter.name = 'body';
|
|
121
|
-
parameter.prop = 'body';
|
|
122
|
-
parameter.in = 'body';
|
|
123
|
-
// The request body is not in the "parameters" section of the openapi spec so we won't have added the schema
|
|
124
|
-
// properties above. Find it here.
|
|
125
|
-
const specBody = (0, refs_1.resolveIfRef)(spec, specOp?.requestBody);
|
|
126
|
-
if (specBody) {
|
|
127
|
-
if (parameter.mediaType) {
|
|
128
|
-
const bodySchema = (0, refs_1.resolveIfRef)(spec, specBody.content?.[parameter.mediaType]?.schema);
|
|
129
|
-
if (bodySchema) {
|
|
130
|
-
await mutateWithOpenapiSchemaProperties(spec, parameter, bodySchema, modelsByName);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
// Track all the media types that can be accepted in the request body
|
|
134
|
-
parameter.mediaTypes = Object.keys(specBody.content);
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
else if (['query', 'header'].includes(parameter.in) &&
|
|
138
|
-
specParameter) {
|
|
139
|
-
// Translate style/explode to OpenAPI v2 style collectionFormat
|
|
140
|
-
// https://spec.openapis.org/oas/v3.0.3.html#style-values
|
|
141
|
-
const style = specParameter.style ??
|
|
142
|
-
(parameter.in === 'query' ? 'form' : 'simple');
|
|
143
|
-
const explode = specParameter.explode ?? style === 'form';
|
|
144
|
-
if (parameter.in === 'query') {
|
|
145
|
-
parameter.collectionFormat = explode
|
|
146
|
-
? 'multi'
|
|
147
|
-
: ({
|
|
148
|
-
spaceDelimited: 'ssv',
|
|
149
|
-
pipeDelimited: 'tsv',
|
|
150
|
-
simple: 'csv',
|
|
151
|
-
form: 'csv',
|
|
152
|
-
}[style] ?? 'multi');
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
// parameter.in === "header"
|
|
156
|
-
parameter.collectionFormat = explode ? 'multi' : 'csv';
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
mutateModelWithAdditionalTypes(parameter);
|
|
160
|
-
}
|
|
161
|
-
// Add language types to response models
|
|
162
|
-
(op.responses ?? []).forEach(mutateModelWithAdditionalTypes);
|
|
163
|
-
// Sort responses by code
|
|
164
|
-
op.responses = (0, lodash_orderby_1.default)(op.responses, (r) => r.code);
|
|
165
|
-
// Result is the lowest successful response, otherwise is the 2XX or default response
|
|
166
|
-
const result = op.responses.find((r) => typeof r.code === 'number' && r.code >= 200 && r.code < 300);
|
|
167
|
-
op.result =
|
|
168
|
-
result ??
|
|
169
|
-
op.responses.find((r) => r.code === '2XX' || r.code === 'default');
|
|
170
|
-
// Add variants of operation name
|
|
171
|
-
op.operationIdPascalCase = (0, names_1.pascalCase)(op.uniqueName);
|
|
172
|
-
op.operationIdKebabCase = (0, names_1.kebabCase)(op.uniqueName);
|
|
173
|
-
op.operationIdSnakeCase = (0, languages_1.toPythonName)('operation', op.uniqueName);
|
|
174
|
-
// Add request type name (after operationIdPascalCase is set)
|
|
175
|
-
if (op.parameters && op.parameters.length > 0) {
|
|
176
|
-
const baseRequestTypeName = `${op.operationIdPascalCase}Request`;
|
|
177
|
-
const hasConflict = !!spec.components?.schemas?.[baseRequestTypeName];
|
|
178
|
-
if (hasConflict) {
|
|
179
|
-
// Use OperationRequest suffix when there's a conflict
|
|
180
|
-
op.requestTypeName =
|
|
181
|
-
`${op.operationIdPascalCase}OperationRequest`;
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
// Use standard Request suffix when no conflict
|
|
185
|
-
op.requestTypeName = baseRequestTypeName;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
mutateOperationWithAdditionalData(op);
|
|
189
|
-
}
|
|
190
|
-
// Lexicographical ordering of operations
|
|
191
|
-
service.operations = (0, lodash_orderby_1.default)(service.operations, (op) => op.uniqueName);
|
|
192
|
-
// Add the models to import
|
|
193
|
-
service.modelImports = (0, lodash_orderby_1.default)((0, lodash_uniqby_1.default)([...service.imports, ...requestModelImports, ...responseModelImports], (x) => x));
|
|
194
|
-
// Add the service class name
|
|
195
|
-
service.className = `${service.name}Api`;
|
|
196
|
-
service.classNameSnakeCase = (0, names_1.snakeCase)(service.className);
|
|
197
|
-
service.nameSnakeCase = (0, names_1.snakeCase)(service.name);
|
|
198
|
-
}
|
|
199
|
-
// All operations across all services
|
|
200
|
-
const allOperations = (0, lodash_uniqby_1.default)(data.services.flatMap((s) => s.operations), (o) => o.uniqueName);
|
|
201
|
-
// Add additional models for operation parameters
|
|
14
|
+
* Build the data structure used to generate code from an OpenAPI spec.
|
|
15
|
+
*/ export const buildOpenApiCodeGenData = (inSpec)=>{
|
|
16
|
+
const spec = normaliseOpenApiSpecForCodeGen(inSpec);
|
|
17
|
+
const data = buildClientData(spec);
|
|
18
|
+
const modelsByName = indexModelsByName(data.models);
|
|
19
|
+
for (const service of data.services){
|
|
20
|
+
augmentService(spec, service, modelsByName);
|
|
21
|
+
}
|
|
22
|
+
const allOperations = uniqBy(data.services.flatMap((s)=>s.operations), (o)=>o.uniqueName);
|
|
23
|
+
// A model per operation request parameter position (query/path/body/...).
|
|
202
24
|
data.models = [
|
|
203
25
|
...data.models,
|
|
204
|
-
...allOperations.flatMap((op)
|
|
205
|
-
if (op.parameters && op.parameters.length > 0) {
|
|
206
|
-
// Build a collection of request parameter models to create based on their position (ie 'in' in the openapi spec, eg body, query, path, header, etc)
|
|
207
|
-
const parametersByPosition = {};
|
|
208
|
-
op.parameters
|
|
209
|
-
.filter(
|
|
210
|
-
// We filter out (return false for) request bodies which we "inline" - ie we don't create a property which points to the body, the request will only be the body itself
|
|
211
|
-
(p) => {
|
|
212
|
-
// Always create models for non-body parameters
|
|
213
|
-
if (p.in !== 'body') {
|
|
214
|
-
return true;
|
|
215
|
-
}
|
|
216
|
-
// If the body is the only parameter, we can inline it no matter the type
|
|
217
|
-
if (op.parameters.length === 1) {
|
|
218
|
-
return false;
|
|
219
|
-
}
|
|
220
|
-
// We inline object bodies, so long as they aren't dictionaries (as dictionary keys could clash with other parameters),
|
|
221
|
-
// and so long as they don't have a property name that clashes with another parameter
|
|
222
|
-
const hasClashingPropertyName = (modelsByName?.[p.type]?.properties ?? []).some((prop) => op.parameters.some((param) => param.name === prop.name));
|
|
223
|
-
if (p.export === 'reference' &&
|
|
224
|
-
modelsByName?.[p.type]?.export !== 'dictionary' &&
|
|
225
|
-
!hasClashingPropertyName) {
|
|
226
|
-
return false;
|
|
227
|
-
}
|
|
228
|
-
// Don't inline anything else
|
|
229
|
-
return true;
|
|
230
|
-
})
|
|
231
|
-
.forEach((parameter) => {
|
|
232
|
-
parametersByPosition[parameter.in] = [
|
|
233
|
-
...(parametersByPosition[parameter.in] ?? []),
|
|
234
|
-
parameter,
|
|
235
|
-
];
|
|
236
|
-
});
|
|
237
|
-
// Ensure that if we have an explicit body parameter, it's called "body"
|
|
238
|
-
const requestBodyParameter = parametersByPosition['body']?.[0];
|
|
239
|
-
if (requestBodyParameter) {
|
|
240
|
-
requestBodyParameter.name = 'body';
|
|
241
|
-
requestBodyParameter.prop = 'body';
|
|
242
|
-
}
|
|
243
|
-
op.explicitRequestBodyParameter = requestBodyParameter;
|
|
244
|
-
return Object.entries(parametersByPosition).map(([position, parameters]) => {
|
|
245
|
-
const name = `${op.operationIdPascalCase}Request${(0, names_1.upperFirst)(position)}Parameters`;
|
|
246
|
-
return {
|
|
247
|
-
$refs: [],
|
|
248
|
-
base: name,
|
|
249
|
-
description: op.description,
|
|
250
|
-
enum: null,
|
|
251
|
-
enums: null,
|
|
252
|
-
export: 'interface',
|
|
253
|
-
imports: [],
|
|
254
|
-
in: '',
|
|
255
|
-
link: undefined,
|
|
256
|
-
name,
|
|
257
|
-
properties: parameters,
|
|
258
|
-
template: '',
|
|
259
|
-
type: name,
|
|
260
|
-
isDefinition: false,
|
|
261
|
-
isNullable: false,
|
|
262
|
-
isReadOnly: false,
|
|
263
|
-
isRequired: true,
|
|
264
|
-
};
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
return [];
|
|
268
|
-
}),
|
|
26
|
+
...allOperations.flatMap((op)=>buildRequestParameterModels(op, modelsByName))
|
|
269
27
|
];
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
// Add a snake_case name
|
|
273
|
-
model.nameSnakeCase = (0, languages_1.toPythonName)('model', model.name);
|
|
274
|
-
const matchingSpecModel = spec?.components?.schemas?.[model.name];
|
|
275
|
-
if (matchingSpecModel) {
|
|
276
|
-
const specModel = (0, refs_1.resolveIfRef)(spec, matchingSpecModel);
|
|
277
|
-
await mutateWithOpenapiSchemaProperties(spec, model, specModel, modelsByName);
|
|
278
|
-
// Add unique imports
|
|
279
|
-
model.uniqueImports = (0, lodash_orderby_1.default)((0, lodash_uniqby_1.default)([
|
|
280
|
-
...model.imports,
|
|
281
|
-
// Include property imports, if any
|
|
282
|
-
...model.properties
|
|
283
|
-
.filter((p) => p.export === 'reference')
|
|
284
|
-
.map((p) => p.type),
|
|
285
|
-
], (x) => x)).filter((modelImport) => modelImport !== model.name); // Filter out self for recursive model references
|
|
286
|
-
// Add deprecated flag if present
|
|
287
|
-
model.deprecated = specModel.deprecated || false;
|
|
288
|
-
// Augment properties with additional data
|
|
289
|
-
for (const property of model.properties) {
|
|
290
|
-
const matchingSpecProperty = specModel.properties?.[property.name];
|
|
291
|
-
if (matchingSpecProperty) {
|
|
292
|
-
const specProperty = (0, refs_1.resolveIfRef)(spec, matchingSpecProperty);
|
|
293
|
-
await mutateWithOpenapiSchemaProperties(spec, property, specProperty, modelsByName);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
}
|
|
297
|
-
// Augment properties with additional data
|
|
298
|
-
model.properties.forEach((property) => {
|
|
299
|
-
// Add language-specific names/types
|
|
300
|
-
mutateModelWithAdditionalTypes(property);
|
|
301
|
-
});
|
|
28
|
+
for (const model of data.models){
|
|
29
|
+
augmentModel(spec, model, modelsByName);
|
|
302
30
|
}
|
|
303
|
-
for (const model of data.models)
|
|
304
|
-
|
|
305
|
-
model.typescriptName = (0, languages_1.toTypeScriptModelName)(model.name);
|
|
31
|
+
for (const model of data.models){
|
|
32
|
+
model.typescriptName = toTypeScriptModelName(model.name);
|
|
306
33
|
model.typescriptType = model.typescriptName;
|
|
307
34
|
}
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
operationsByTag[tag] = [...(operationsByTag[tag] ?? []), op];
|
|
320
|
-
});
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
323
|
-
untaggedOperations.push(op);
|
|
324
|
-
}
|
|
325
|
-
});
|
|
326
|
-
// Add top level vendor extensions
|
|
327
|
-
const vendorExtensions = {};
|
|
328
|
-
copyVendorExtensions(spec ?? {}, vendorExtensions);
|
|
35
|
+
for (const model of data.models){
|
|
36
|
+
assertNoClashingPropertyNames(model);
|
|
37
|
+
assertNoConflictingUnionMemberMarshalling(model);
|
|
38
|
+
}
|
|
39
|
+
for (const op of allOperations){
|
|
40
|
+
assertEncodableUrlEncodedBody(op);
|
|
41
|
+
}
|
|
42
|
+
data.models = orderBy(data.models, (d)=>d.name);
|
|
43
|
+
// Default service first, then by name.
|
|
44
|
+
data.services = orderBy(data.services, (s)=>s.name === DEFAULT_SERVICE_NAME ? '' : s.name);
|
|
45
|
+
const { operationsByTag, untaggedOperations } = groupOperationsByTag(allOperations);
|
|
329
46
|
return {
|
|
330
47
|
...data,
|
|
331
48
|
operationsByTag,
|
|
332
49
|
untaggedOperations,
|
|
333
50
|
info: spec.info,
|
|
334
51
|
allOperations,
|
|
335
|
-
vendorExtensions,
|
|
336
|
-
className:
|
|
52
|
+
vendorExtensions: vendorExtensionsOf(spec),
|
|
53
|
+
className: toClassName(spec.info.title)
|
|
337
54
|
};
|
|
338
55
|
};
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Augment a service and each of its operations with the data needed for code
|
|
58
|
+
* generation (names, imports, result/request types, behavioural flags), and
|
|
59
|
+
* compute the set of models the service (ie API client) needs to import.
|
|
60
|
+
*/ const augmentService = (spec, service, modelsByName)=>{
|
|
61
|
+
const modelImports = service.operations.flatMap((op)=>augmentOperation(spec, op, modelsByName));
|
|
62
|
+
service.operations = orderBy(service.operations, (op)=>op.uniqueName);
|
|
63
|
+
service.modelImports = orderBy(uniqBy([
|
|
64
|
+
...service.imports,
|
|
65
|
+
...modelImports
|
|
66
|
+
], (x)=>x));
|
|
67
|
+
service.className = `${service.name}Api`;
|
|
68
|
+
service.nameSnakeCase = snakeCase(service.name);
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Augment a single operation with all the data the templates need, returning
|
|
72
|
+
* the names of the models it references (for the service's import list).
|
|
73
|
+
*/ const augmentOperation = (spec, op, modelsByName)=>{
|
|
74
|
+
const specOp = getSpecOperation(spec, op);
|
|
75
|
+
assignOperationNames(op, specOp);
|
|
76
|
+
op.vendorExtensions = vendorExtensionsOf(specOp);
|
|
77
|
+
const modelImports = [
|
|
78
|
+
...specOp ? augmentResponses(spec, op, specOp, modelsByName) : [],
|
|
79
|
+
...augmentParameters(spec, op, specOp, modelsByName)
|
|
80
|
+
];
|
|
81
|
+
op.responses.forEach(addLanguageTypes);
|
|
82
|
+
op.responses = orderBy(op.responses, (r)=>r.code);
|
|
83
|
+
// Result is the lowest successful response, otherwise the 2XX or default.
|
|
84
|
+
op.result = op.responses.find((r)=>typeof r.code === 'number' && r.code >= 200 && r.code < 300) ?? op.responses.find((r)=>r.code === '2XX' || r.code === 'default');
|
|
85
|
+
op.operationIdPascalCase = pascalCase(op.uniqueName);
|
|
86
|
+
op.operationIdSnakeCase = toPythonName('operation', op.uniqueName);
|
|
87
|
+
if (op.parameters.length > 0) {
|
|
88
|
+
const baseRequestTypeName = `${op.operationIdPascalCase}Request`;
|
|
89
|
+
// Use the OperationRequest suffix when the standard Request name clashes
|
|
90
|
+
// with an existing schema.
|
|
91
|
+
op.requestTypeName = spec.components?.schemas?.[baseRequestTypeName] ? `${op.operationIdPascalCase}OperationRequest` : baseRequestTypeName;
|
|
365
92
|
}
|
|
366
|
-
|
|
93
|
+
augmentOperationBehaviour(op);
|
|
94
|
+
return modelImports;
|
|
367
95
|
};
|
|
368
96
|
/**
|
|
369
|
-
*
|
|
370
|
-
*
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
const
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
paths: {},
|
|
379
|
-
components: {
|
|
380
|
-
schemas: {
|
|
381
|
-
...originalSpec.components?.schemas,
|
|
382
|
-
[targetSchemaName]: schema,
|
|
383
|
-
},
|
|
384
|
-
},
|
|
385
|
-
};
|
|
386
|
-
const data = await buildInitialCodeGenData(spec);
|
|
387
|
-
const model = data.models.find((m) => m.name === targetSchemaName);
|
|
388
|
-
if (!model) {
|
|
389
|
-
throw new Error(`Failed to construct model for schema ${JSON.stringify(schema)}`);
|
|
97
|
+
* Set an operation's name and its deduplicated variants from the vendor
|
|
98
|
+
* extensions the normaliser added.
|
|
99
|
+
*/ const assignOperationNames = (op, specOp)=>{
|
|
100
|
+
const deduplicatedOpId = specOp?.['x-aws-nx-deduplicated-op-id'];
|
|
101
|
+
const dotNotationOpId = specOp?.['x-aws-nx-deduplicated-dot-op-id'];
|
|
102
|
+
op.name = op.id ?? op.name;
|
|
103
|
+
op.uniqueName = deduplicatedOpId ?? op.name;
|
|
104
|
+
if (dotNotationOpId) {
|
|
105
|
+
op.dotNotationName = dotNotationOpId;
|
|
390
106
|
}
|
|
391
|
-
ensureModelLinks(spec, data);
|
|
392
|
-
await mutateWithOpenapiSchemaProperties(spec, model, schema, Object.fromEntries(data.models.map((m) => [m.name, m])));
|
|
393
|
-
return model;
|
|
394
107
|
};
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
108
|
+
/**
|
|
109
|
+
* Augment an operation's response models with schema-derived data, resolving
|
|
110
|
+
* void responses and streaming item schemas. Returns the response model names
|
|
111
|
+
* to import.
|
|
112
|
+
*/ const augmentResponses = (spec, op, specOp, modelsByName)=>{
|
|
113
|
+
const modelImports = op.responses.filter((r)=>r.export === 'reference').map((r)=>r.type);
|
|
114
|
+
for (const response of op.responses){
|
|
115
|
+
// We cannot distinguish a composite of primitives at runtime (it all comes
|
|
116
|
+
// back as text), so validate this away.
|
|
117
|
+
if (response.export === 'reference' && COMPOSED_SCHEMA_TYPES.has(modelsByName[response.type]?.export)) {
|
|
118
|
+
const composedPrimitives = (modelsByName[response.type].composedPrimitives ?? []).filter((p)=>!COLLECTION_TYPES.has(p.export));
|
|
119
|
+
if (composedPrimitives.length > 0) {
|
|
120
|
+
throw new Error(`Operation "${op.method} ${op.path}" returns a composite schema of primitives with ${camelCase(modelsByName[response.type].export)}, which cannot be distinguished at runtime`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
const matchingSpecResponse = specOp.responses[`${response.code}`];
|
|
124
|
+
if (!matchingSpecResponse) continue;
|
|
125
|
+
const specResponse = resolveIfRef(spec, matchingSpecResponse);
|
|
126
|
+
// When there's no content, the response type is 'void'
|
|
127
|
+
if (!specResponse.content) {
|
|
128
|
+
response.type = 'void';
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
const mediaTypes = Object.keys(specResponse.content);
|
|
132
|
+
response.mediaTypes = mediaTypes;
|
|
133
|
+
for (const mediaType of mediaTypes){
|
|
134
|
+
const responseContent = specResponse.content[mediaType];
|
|
135
|
+
const responseSchema = resolveIfRef(spec, responseContent.schema);
|
|
136
|
+
if (responseSchema) {
|
|
137
|
+
augmentModelFromSchema(spec, response, responseSchema, modelsByName);
|
|
138
|
+
}
|
|
139
|
+
if (STREAMING_CONTENT_TYPES.has(mediaType) && 'itemSchema' in responseContent) {
|
|
140
|
+
response.isJsonlStreaming = true;
|
|
141
|
+
response.itemSchemaModel = buildOrReferenceModel(spec, modelsByName, responseContent.itemSchema);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
399
144
|
}
|
|
400
|
-
|
|
401
|
-
// So we build the model here
|
|
402
|
-
return await buildModelForPrimitive(spec, schema);
|
|
145
|
+
return modelImports;
|
|
403
146
|
};
|
|
404
147
|
/**
|
|
405
|
-
*
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
148
|
+
* Augment an operation's parameter models with schema-derived data, resolving
|
|
149
|
+
* request bodies and query/header collection formats. Returns the parameter
|
|
150
|
+
* model names to import.
|
|
151
|
+
*/ const augmentParameters = (spec, op, specOp, modelsByName)=>{
|
|
152
|
+
const specParametersByKey = getSpecParametersByKey(spec, specOp, getSpecPathParameters(spec, op));
|
|
153
|
+
const modelImports = [];
|
|
154
|
+
for (const parameter of op.parameters){
|
|
155
|
+
if (parameter.export === 'reference') {
|
|
156
|
+
modelImports.push(parameter.type);
|
|
411
157
|
}
|
|
158
|
+
const specParameter = specParametersByKey[specParameterKey({
|
|
159
|
+
in: parameter.in,
|
|
160
|
+
name: parameter.prop
|
|
161
|
+
})];
|
|
162
|
+
const specParameterSchema = resolveIfRef(spec, specParameter?.schema);
|
|
163
|
+
if (specParameterSchema) {
|
|
164
|
+
augmentModelFromSchema(spec, parameter, specParameterSchema, modelsByName);
|
|
165
|
+
}
|
|
166
|
+
if (parameter.in === 'body') {
|
|
167
|
+
augmentBodyParameter(spec, parameter, specOp, modelsByName);
|
|
168
|
+
} else if ((parameter.in === 'query' || parameter.in === 'header') && specParameter) {
|
|
169
|
+
parameter.collectionFormat = getCollectionFormat(parameter.in, specParameter);
|
|
170
|
+
if (parameter.in === 'query' && specParameter.allowReserved) {
|
|
171
|
+
parameter.allowReserved = true;
|
|
172
|
+
}
|
|
173
|
+
} else if (parameter.in === 'path' && specParameter) {
|
|
174
|
+
const style = specParameter.style;
|
|
175
|
+
if (style === 'matrix' || style === 'label') {
|
|
176
|
+
parameter.pathStyle = style;
|
|
177
|
+
parameter.pathExplode = !!specParameter.explode;
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
addLanguageTypes(parameter);
|
|
181
|
+
}
|
|
182
|
+
return modelImports;
|
|
183
|
+
};
|
|
184
|
+
/**
|
|
185
|
+
* Augment a request body parameter with its schema (the body is not in the
|
|
186
|
+
* spec's `parameters`, so it is resolved from `requestBody` here) and record
|
|
187
|
+
* its acceptable media types.
|
|
188
|
+
*/ const augmentBodyParameter = (spec, parameter, specOp, modelsByName)=>{
|
|
189
|
+
// The request body parameter is named 'body' downstream.
|
|
190
|
+
parameter.name = 'body';
|
|
191
|
+
parameter.prop = 'body';
|
|
192
|
+
const specBody = resolveIfRef(spec, specOp?.requestBody);
|
|
193
|
+
if (!specBody) return;
|
|
194
|
+
if (parameter.mediaType) {
|
|
195
|
+
const bodySchema = resolveIfRef(spec, specBody.content?.[parameter.mediaType]?.schema);
|
|
196
|
+
if (bodySchema) {
|
|
197
|
+
augmentModelFromSchema(spec, parameter, bodySchema, modelsByName);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Track all the media types that can be accepted in the request body
|
|
201
|
+
parameter.mediaTypes = Object.keys(specBody.content);
|
|
202
|
+
};
|
|
203
|
+
/**
|
|
204
|
+
* Translate an OpenAPI v3 parameter's style/explode into a v2-style
|
|
205
|
+
* collectionFormat used when serialising array parameters.
|
|
206
|
+
* @see https://spec.openapis.org/oas/v3.0.3.html#style-values
|
|
207
|
+
*/ const getCollectionFormat = (position, specParameter)=>{
|
|
208
|
+
const style = specParameter.style ?? (position === 'query' ? 'form' : 'simple');
|
|
209
|
+
const explode = specParameter.explode ?? style === 'form';
|
|
210
|
+
if (position === 'header') {
|
|
211
|
+
return explode ? 'multi' : 'csv';
|
|
212
|
+
}
|
|
213
|
+
// `deepObject` serialises an object as `key[prop]=value` pairs regardless of
|
|
214
|
+
// explode; the object shape (not array collection) drives its serialisation.
|
|
215
|
+
if (style === 'deepObject') {
|
|
216
|
+
return 'deepObject';
|
|
217
|
+
}
|
|
218
|
+
return explode ? 'multi' : ({
|
|
219
|
+
spaceDelimited: 'ssv',
|
|
220
|
+
pipeDelimited: 'pipes',
|
|
221
|
+
simple: 'csv',
|
|
222
|
+
form: 'csv'
|
|
223
|
+
})[style] ?? 'multi';
|
|
224
|
+
};
|
|
225
|
+
/**
|
|
226
|
+
* Build the request parameter models for an operation — one model per parameter
|
|
227
|
+
* position (query/path/header/cookie/body), named e.g.
|
|
228
|
+
* `FooRequestQueryParameters`. Request bodies that can be represented directly
|
|
229
|
+
* (the sole parameter, or a non-clashing object reference) are inlined rather
|
|
230
|
+
* than given a wrapper model, and recorded on `op.explicitRequestBodyParameter`.
|
|
231
|
+
*/ const buildRequestParameterModels = (op, modelsByName)=>{
|
|
232
|
+
if (!op.parameters || op.parameters.length === 0) {
|
|
233
|
+
return [];
|
|
234
|
+
}
|
|
235
|
+
// Whether the request body can be represented directly, without a wrapper
|
|
236
|
+
// model (ie the request will be the body itself).
|
|
237
|
+
const canInlineBody = (body)=>{
|
|
238
|
+
// If the body is the only parameter, we can inline it no matter the type
|
|
239
|
+
if (op.parameters.length === 1) {
|
|
240
|
+
return true;
|
|
241
|
+
}
|
|
242
|
+
// We inline object bodies, so long as they aren't dictionaries (as
|
|
243
|
+
// dictionary keys could clash with other parameters), and so long as they
|
|
244
|
+
// don't have a property name that clashes with another parameter
|
|
245
|
+
const hasClashingPropertyName = (modelsByName?.[body.type]?.properties ?? []).some((prop)=>op.parameters.some((param)=>param.name === prop.name));
|
|
246
|
+
return body.export === 'reference' && modelsByName?.[body.type]?.export !== 'dictionary' && !hasClashingPropertyName;
|
|
247
|
+
};
|
|
248
|
+
// Group parameters by their position (`in`: query/path/header/cookie/body),
|
|
249
|
+
// dropping any body that can be inlined.
|
|
250
|
+
const parametersByPosition = op.parameters.filter((p)=>!(p.in === 'body' && canInlineBody(p))).reduce((acc, p)=>({
|
|
251
|
+
...acc,
|
|
252
|
+
[p.in]: [
|
|
253
|
+
...acc[p.in] ?? [],
|
|
254
|
+
p
|
|
255
|
+
]
|
|
256
|
+
}), {});
|
|
257
|
+
// The body parameter was already renamed to "body" by augmentBodyParameter.
|
|
258
|
+
op.explicitRequestBodyParameter = parametersByPosition['body']?.[0];
|
|
259
|
+
return Object.entries(parametersByPosition).map(([position, parameters])=>{
|
|
260
|
+
const name = `${op.operationIdPascalCase}Request${upperFirst(position)}Parameters`;
|
|
261
|
+
return createModel({
|
|
262
|
+
description: op.description,
|
|
263
|
+
export: 'interface',
|
|
264
|
+
name,
|
|
265
|
+
properties: parameters,
|
|
266
|
+
type: name,
|
|
267
|
+
isRequired: true
|
|
268
|
+
});
|
|
412
269
|
});
|
|
413
270
|
};
|
|
414
|
-
|
|
271
|
+
/**
|
|
272
|
+
* Augment a single model with schema-derived data (from its matching spec
|
|
273
|
+
* schema, if any) and language-specific names and types.
|
|
274
|
+
*/ const augmentModel = (spec, model, modelsByName)=>{
|
|
275
|
+
model.nameSnakeCase = toPythonName('model', model.name);
|
|
276
|
+
const matchingSpecModel = spec?.components?.schemas?.[model.name];
|
|
277
|
+
if (matchingSpecModel) {
|
|
278
|
+
const specModel = resolveIfRef(spec, matchingSpecModel);
|
|
279
|
+
augmentModelFromSchema(spec, model, specModel, modelsByName);
|
|
280
|
+
for (const property of model.properties){
|
|
281
|
+
const matchingSpecProperty = specModel.properties?.[property.name];
|
|
282
|
+
if (matchingSpecProperty) {
|
|
283
|
+
const specProperty = resolveIfRef(spec, matchingSpecProperty);
|
|
284
|
+
augmentModelFromSchema(spec, property, specProperty, modelsByName);
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
model.properties.forEach(addLanguageTypes);
|
|
289
|
+
// Resolve the discriminator's TypeScript property name for marshalling.
|
|
290
|
+
if (model.discriminator) {
|
|
291
|
+
model.discriminator.typescriptPropertyName = toTypeScriptName(model.discriminator.propertyName);
|
|
292
|
+
}
|
|
293
|
+
};
|
|
294
|
+
/**
|
|
295
|
+
* Ensure no two properties/parameters of an object model collapse onto the same
|
|
296
|
+
* TypeScript identifier (e.g. `foo-bar` and `foo_bar` both camelCase to
|
|
297
|
+
* `fooBar`, or a query and header parameter sharing a name within one request
|
|
298
|
+
* position). Such a clash would emit a type with duplicate members that does
|
|
299
|
+
* not compile, so fail fast with an actionable error instead.
|
|
300
|
+
*/ const assertNoClashingPropertyNames = (model)=>{
|
|
301
|
+
const seen = new Map();
|
|
302
|
+
for (const property of model.properties){
|
|
303
|
+
// Composite members are unnamed (their names are empty); skip them.
|
|
304
|
+
if (!property.name) continue;
|
|
305
|
+
const existing = seen.get(property.typescriptName);
|
|
306
|
+
if (existing !== undefined && existing !== property.name) {
|
|
307
|
+
throw new Error(`Property name conflict in "${model.name}": "${existing}" and "${property.name}" both map to the TypeScript name "${property.typescriptName}". Please rename one of these in your OpenAPI specification.`);
|
|
308
|
+
}
|
|
309
|
+
seen.set(property.typescriptName, property.name);
|
|
310
|
+
}
|
|
311
|
+
};
|
|
312
|
+
/**
|
|
313
|
+
* The marshalling semantics of a property — two properties with the same key
|
|
314
|
+
* convert identically on the wire (so either branch's conversion is safe).
|
|
315
|
+
*/ const marshallingKey = (m)=>{
|
|
316
|
+
if ([
|
|
317
|
+
'date',
|
|
318
|
+
'date-time'
|
|
319
|
+
].includes(m.format ?? '')) return 'date';
|
|
320
|
+
if (m.type === 'binary') return 'binary';
|
|
321
|
+
// Enums serialise as their bare primitive (no conversion).
|
|
322
|
+
if (m.isEnum || m.export === 'enum') return 'plain';
|
|
323
|
+
if (COLLECTION_TYPES.has(m.export)) {
|
|
324
|
+
return `${m.export}<${m.link ? marshallingKey(m.link) : 'plain'}>`;
|
|
325
|
+
}
|
|
326
|
+
if (m.export === 'tuple') {
|
|
327
|
+
return `tuple<${m.properties.map(marshallingKey).join(',')}>`;
|
|
328
|
+
}
|
|
329
|
+
if (m.export === 'reference' && !PRIMITIVE_TYPES.has(m.type)) {
|
|
330
|
+
return `ref:${m.type}`;
|
|
331
|
+
}
|
|
332
|
+
return 'plain';
|
|
333
|
+
};
|
|
334
|
+
/**
|
|
335
|
+
* A non-discriminated `oneOf`/`anyOf` of object members marshals by composing
|
|
336
|
+
* every member, taking only the properties present on the value. That is sound
|
|
337
|
+
* exactly when no wire property is claimed by two members with different
|
|
338
|
+
* marshalling (e.g. a `date-time` in one and a plain string in another) —
|
|
339
|
+
* otherwise the branch cannot be determined without guessing, so fail fast and
|
|
340
|
+
* ask for a discriminator rather than corrupt data at runtime.
|
|
341
|
+
*/ const assertNoConflictingUnionMemberMarshalling = (model)=>{
|
|
342
|
+
if (model.export !== 'one-of' && model.export !== 'any-of' || model.discriminator) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
const seen = new Map();
|
|
346
|
+
for (const member of model.composedModels ?? []){
|
|
347
|
+
for (const property of member.properties){
|
|
348
|
+
if (!property.name) continue;
|
|
349
|
+
const key = marshallingKey(property);
|
|
350
|
+
const existing = seen.get(property.name);
|
|
351
|
+
if (existing && existing.key !== key) {
|
|
352
|
+
throw new Error(`Schema "${model.name}" is a non-discriminated ${camelCase(model.export)} of "${existing.memberName}" and "${member.name}", which both declare a property "${property.name}" with different types, so the correct conversion cannot be determined. Add a discriminator to the union in your OpenAPI specification (e.g. with Pydantic, Field(discriminator=...)).`);
|
|
353
|
+
}
|
|
354
|
+
if (!existing) {
|
|
355
|
+
seen.set(property.name, {
|
|
356
|
+
memberName: member.name,
|
|
357
|
+
key
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
};
|
|
363
|
+
/**
|
|
364
|
+
* An `application/x-www-form-urlencoded` body is form-encoded as `key=value`
|
|
365
|
+
* pairs, so the wire form is only defined for a schema with named properties
|
|
366
|
+
* (an object) or a primitive sent verbatim. A top-level array or tuple has no
|
|
367
|
+
* property names to key on — encoding it would emit index keys (`0=a&1=b`) that
|
|
368
|
+
* no form parser can decode — so fail fast rather than generate a client that
|
|
369
|
+
* is silently wrong on the wire.
|
|
370
|
+
*/ const assertEncodableUrlEncodedBody = (op)=>{
|
|
371
|
+
const body = op.parametersBody;
|
|
372
|
+
if (!body?.mediaTypes) return;
|
|
373
|
+
const mediaTypes = Array.isArray(body.mediaTypes) ? body.mediaTypes : [
|
|
374
|
+
body.mediaTypes
|
|
375
|
+
];
|
|
376
|
+
// Match the wire media type the client actually sends: JSON is preferred, so
|
|
377
|
+
// an array body offering both JSON and urlencoded is sent as JSON and is fine.
|
|
378
|
+
const chosenMediaType = mediaTypes.find((mt)=>mt === 'application/json' || mt.endsWith('+json')) ?? mediaTypes[0];
|
|
379
|
+
if (chosenMediaType !== 'application/x-www-form-urlencoded') return;
|
|
380
|
+
if (body.isPrimitive) return;
|
|
381
|
+
if (body.export === 'array' || body.export === 'tuple') {
|
|
382
|
+
throw new Error(`Operation ${op.method} ${op.path} has an application/x-www-form-urlencoded request body whose schema is a ${body.export}, which has no defined form encoding. Use an object schema (its properties become the form fields) or a primitive schema (sent verbatim) in your OpenAPI specification.`);
|
|
383
|
+
}
|
|
384
|
+
};
|
|
385
|
+
/**
|
|
386
|
+
* Group operations by their (camelCased) tags, collecting any untagged
|
|
387
|
+
* operations separately.
|
|
388
|
+
*/ const groupOperationsByTag = (allOperations)=>{
|
|
389
|
+
const isTagged = (op)=>!!op.tags && op.tags.length > 0;
|
|
390
|
+
const operationsByTag = allOperations.filter(isTagged).flatMap((op)=>op.tags.map((tag)=>[
|
|
391
|
+
camelCase(tag),
|
|
392
|
+
op
|
|
393
|
+
])).reduce((acc, [tag, op])=>({
|
|
394
|
+
...acc,
|
|
395
|
+
[tag]: [
|
|
396
|
+
...acc[tag] ?? [],
|
|
397
|
+
op
|
|
398
|
+
]
|
|
399
|
+
}), {});
|
|
400
|
+
return {
|
|
401
|
+
operationsByTag,
|
|
402
|
+
untaggedOperations: allOperations.filter((op)=>!isTagged(op))
|
|
403
|
+
};
|
|
404
|
+
};
|
|
405
|
+
/**
|
|
406
|
+
* Resolve a schema to its model: an existing named model for a `$ref`, or a
|
|
407
|
+
* freshly built-and-augmented model for an inline (nested value) schema.
|
|
408
|
+
*/ const buildOrReferenceModel = (spec, modelsByName, schema)=>{
|
|
409
|
+
if (isRef(schema)) {
|
|
410
|
+
const name = splitRef(schema.$ref)[2];
|
|
411
|
+
return modelsByName[name];
|
|
412
|
+
}
|
|
413
|
+
const model = buildInlineModel(spec, schema);
|
|
414
|
+
linkModel(spec, modelsByName, model, schema);
|
|
415
|
+
augmentModelFromSchema(spec, model, schema, modelsByName);
|
|
416
|
+
return model;
|
|
417
|
+
};
|
|
418
|
+
/**
|
|
419
|
+
* The `x-*` vendor extensions declared on an object.
|
|
420
|
+
*/ const vendorExtensionsOf = (object)=>Object.fromEntries(Object.entries(object ?? {}).filter(([key])=>key.startsWith('x-')));
|
|
421
|
+
const augmentModelFromSchema = (spec, model, schema, modelsByName, visited = new Set())=>{
|
|
415
422
|
model.format = schema.format;
|
|
416
|
-
model.isInteger = schema.type === 'integer';
|
|
417
|
-
model.isShort = schema.format === 'int32';
|
|
418
|
-
model.isLong = schema.format === 'int64';
|
|
419
423
|
model.deprecated = !!schema.deprecated;
|
|
420
424
|
model.openapiType = schema.type;
|
|
421
|
-
model.isNotSchema = !!schema.not;
|
|
422
425
|
model.isEnum = !!schema.enum && schema.enum.length > 0;
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
// Use our added vendor extension
|
|
427
|
-
model.isHoisted = !!model.vendorExtensions?.['x-aws-nx-hoisted'];
|
|
428
|
-
// Ensure models with additional properties are handled correctly
|
|
426
|
+
model.vendorExtensions = vendorExtensionsOf(schema);
|
|
427
|
+
// A "dictionary" has only additional properties; an "interface" may mix
|
|
428
|
+
// explicit and additional properties.
|
|
429
429
|
if (schema.additionalProperties) {
|
|
430
|
-
const additionalPropertiesModel =
|
|
431
|
-
// The original models treat _some_ objects with additional properties as a "dictionary", and others as an "interface"
|
|
432
|
-
// For the purposes of our code generation, we define a "dictionary" to be a model with no explicit properties, only
|
|
433
|
-
// additional properties. Interfaces can have a mixture of explicit properties and additional properties.
|
|
430
|
+
const additionalPropertiesModel = buildOrReferenceModel(spec, modelsByName, schema.additionalProperties === true ? {} : schema.additionalProperties);
|
|
434
431
|
if (model.export === 'dictionary') {
|
|
435
|
-
//
|
|
436
|
-
const explicitProperties = model.properties.filter((p)
|
|
432
|
+
// A dictionary carries a self-referential property; the rest are explicit
|
|
433
|
+
const explicitProperties = model.properties.filter((p)=>!(p.export === 'dictionary' && p.name === model.name));
|
|
434
|
+
// Explicit properties make this an interface rather than a dictionary
|
|
437
435
|
if (explicitProperties.length > 0 || schema.patternProperties) {
|
|
438
|
-
// Treat this model as an interface instead of a dictionary, since this has
|
|
439
|
-
// explicit properties
|
|
440
436
|
model.export = 'interface';
|
|
441
437
|
model.hasAdditionalProperties = true;
|
|
442
438
|
model.additionalPropertiesModel = additionalPropertiesModel;
|
|
443
439
|
model.properties = explicitProperties;
|
|
444
440
|
}
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
441
|
+
} else {
|
|
447
442
|
model.hasAdditionalProperties = true;
|
|
448
443
|
model.additionalPropertiesModel = additionalPropertiesModel;
|
|
449
|
-
// There's a special property named [key: string] which is the definition of the additional properties
|
|
450
|
-
// We remove this so we don't render it as a regular property.
|
|
451
|
-
model.properties = (model.properties ?? []).filter((p) => p.name !== '[key: string]');
|
|
452
444
|
}
|
|
453
445
|
}
|
|
454
|
-
//
|
|
446
|
+
// Pattern properties can have different value types per pattern, so the model
|
|
447
|
+
// is an interface rather than a dictionary.
|
|
455
448
|
if (schema.patternProperties) {
|
|
456
|
-
const patternProperties =
|
|
457
|
-
const patternPropertiesModels = [];
|
|
458
|
-
// When there are pattern properties, we don't want to treat models as dictionaries since there can be more than one type of "value"
|
|
459
|
-
// depending on what pattern the key matches
|
|
449
|
+
const patternProperties = resolveIfRef(spec, schema.patternProperties);
|
|
460
450
|
if (model.export === 'dictionary') {
|
|
461
451
|
model.export = 'interface';
|
|
462
452
|
}
|
|
463
|
-
for (const [pattern, patternProperty] of Object.entries(patternProperties)) {
|
|
464
|
-
const patternPropertyModel = await buildOrReferenceModel(spec, modelsByName, patternProperty);
|
|
465
|
-
if (patternPropertyModel) {
|
|
466
|
-
patternPropertiesModels.push({
|
|
467
|
-
pattern,
|
|
468
|
-
model: patternPropertyModel,
|
|
469
|
-
});
|
|
470
|
-
}
|
|
471
|
-
}
|
|
472
453
|
model.hasPatternProperties = true;
|
|
473
|
-
model.patternPropertiesModels =
|
|
454
|
+
model.patternPropertiesModels = Object.entries(patternProperties).map(([pattern, patternProperty])=>({
|
|
455
|
+
pattern,
|
|
456
|
+
model: buildOrReferenceModel(spec, modelsByName, patternProperty)
|
|
457
|
+
})).filter((entry)=>!!entry.model);
|
|
474
458
|
}
|
|
475
|
-
|
|
459
|
+
addLanguageTypes(model);
|
|
476
460
|
visited.add(model);
|
|
477
|
-
const
|
|
478
|
-
//
|
|
479
|
-
if (model.export === 'array' &&
|
|
480
|
-
|
|
481
|
-
'items' in schema &&
|
|
482
|
-
schema.items &&
|
|
483
|
-
!visited.has(modelLink)) {
|
|
484
|
-
const subSchema = (0, refs_1.resolveIfRef)(spec, schema.items);
|
|
485
|
-
await mutateWithOpenapiSchemaProperties(spec, modelLink, subSchema, modelsByName, visited);
|
|
486
|
-
}
|
|
487
|
-
// Also apply to object properties recursively
|
|
488
|
-
if (model.export === 'dictionary' &&
|
|
489
|
-
model.link &&
|
|
490
|
-
'additionalProperties' in schema &&
|
|
491
|
-
schema.additionalProperties &&
|
|
492
|
-
!visited.has(modelLink)) {
|
|
493
|
-
const subSchema = (0, refs_1.resolveIfRef)(spec, schema.additionalProperties);
|
|
494
|
-
// Additional properties can be "true" rather than a type
|
|
495
|
-
if (subSchema !== true) {
|
|
496
|
-
await mutateWithOpenapiSchemaProperties(spec, modelLink, subSchema, modelsByName, visited);
|
|
497
|
-
}
|
|
498
|
-
}
|
|
499
|
-
for (const property of model.properties.filter((p) => !visited.has(p) && schema.properties?.[(0, lodash_trim_1.default)(p.name, `"'`)])) {
|
|
500
|
-
const subSchema = (0, refs_1.resolveIfRef)(spec, schema.properties[(0, lodash_trim_1.default)(property.name, `"'`)]);
|
|
501
|
-
await mutateWithOpenapiSchemaProperties(spec, property, subSchema, modelsByName, visited);
|
|
461
|
+
const recurse = (target, subSchema)=>augmentModelFromSchema(spec, target, subSchema, modelsByName, visited);
|
|
462
|
+
// Array element type.
|
|
463
|
+
if (model.export === 'array' && model.link && 'items' in schema && schema.items && !visited.has(model.link)) {
|
|
464
|
+
recurse(model.link, resolveIfRef(spec, schema.items));
|
|
502
465
|
}
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
466
|
+
// Dictionary value type (additionalProperties may be `true` rather than a
|
|
467
|
+
// schema).
|
|
468
|
+
if (model.export === 'dictionary' && model.link && 'additionalProperties' in schema && schema.additionalProperties && !visited.has(model.link)) {
|
|
469
|
+
const subSchema = resolveIfRef(spec, schema.additionalProperties);
|
|
470
|
+
if (subSchema !== true) {
|
|
471
|
+
recurse(model.link, subSchema);
|
|
509
472
|
}
|
|
510
473
|
}
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
const
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
// Ensure set for all models
|
|
519
|
-
data.models.forEach((model) => {
|
|
520
|
-
const schema = (0, refs_1.resolveIfRef)(spec, spec?.components?.schemas?.[model.name]);
|
|
521
|
-
if (schema) {
|
|
522
|
-
// Object schemas should be typed as the model we will create
|
|
523
|
-
if (schema.type === 'object' &&
|
|
524
|
-
(schema.properties || schema.patternProperties)) {
|
|
525
|
-
model.type = model.name;
|
|
474
|
+
// Tuple element types (3.1 `prefixItems`), positionally.
|
|
475
|
+
if (model.export === 'tuple' && 'prefixItems' in schema) {
|
|
476
|
+
const memberSchemas = schema.prefixItems ?? [];
|
|
477
|
+
model.properties.forEach((member, i)=>{
|
|
478
|
+
const subSchema = resolveIfRef(spec, memberSchemas[i]);
|
|
479
|
+
if (subSchema && !visited.has(member)) {
|
|
480
|
+
recurse(member, subSchema);
|
|
526
481
|
}
|
|
527
|
-
_ensureModelLinks(spec, modelsByName, model, schema, visited);
|
|
528
|
-
}
|
|
529
|
-
});
|
|
530
|
-
// Ensure set for all parameters and responses
|
|
531
|
-
data.services.forEach((service) => {
|
|
532
|
-
service.operations.forEach((op) => {
|
|
533
|
-
const specOp = spec?.paths?.[op.path]?.[op.method.toLowerCase()];
|
|
534
|
-
const specParametersByName = Object.fromEntries((specOp?.parameters ?? []).map((p) => {
|
|
535
|
-
const param = (0, refs_1.resolveIfRef)(spec, p);
|
|
536
|
-
return [param.name, param];
|
|
537
|
-
}));
|
|
538
|
-
op.parameters.forEach((parameter) => {
|
|
539
|
-
const specParameter = specParametersByName[parameter.prop];
|
|
540
|
-
const specParameterSchema = (0, refs_1.resolveIfRef)(spec, specParameter?.schema);
|
|
541
|
-
if (specParameterSchema) {
|
|
542
|
-
_ensureModelLinks(spec, modelsByName, parameter, specParameterSchema, visited);
|
|
543
|
-
}
|
|
544
|
-
else if (parameter.in === 'body') {
|
|
545
|
-
// Body is not in the "parameters" section of the OpenAPI spec so we handle it in an explicit case here
|
|
546
|
-
const specBody = (0, refs_1.resolveIfRef)(spec, specOp?.requestBody);
|
|
547
|
-
const specBodySchema = (0, refs_1.resolveIfRef)(spec, specBody?.content?.[parameter.mediaType]?.schema);
|
|
548
|
-
if (specBodySchema) {
|
|
549
|
-
_ensureModelLinks(spec, modelsByName, parameter, specBodySchema, visited);
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
});
|
|
553
|
-
op.responses.forEach((response) => {
|
|
554
|
-
const specResponse = (0, refs_1.resolveIfRef)(spec, specOp?.responses?.[response.code]);
|
|
555
|
-
const mediaTypes = Object.keys(specResponse?.content ?? {});
|
|
556
|
-
mediaTypes.forEach((mediaType) => {
|
|
557
|
-
const responseSchema = (0, refs_1.resolveIfRef)(spec, specResponse?.content?.[mediaType]?.schema);
|
|
558
|
-
if (responseSchema) {
|
|
559
|
-
_ensureModelLinks(spec, modelsByName, response, responseSchema, visited);
|
|
560
|
-
}
|
|
561
|
-
});
|
|
562
|
-
});
|
|
563
482
|
});
|
|
564
|
-
});
|
|
565
|
-
};
|
|
566
|
-
const _ensureModelLinks = (spec, modelsByName, model, schema, visited) => {
|
|
567
|
-
if (visited.has(model)) {
|
|
568
|
-
return;
|
|
569
|
-
}
|
|
570
|
-
visited.add(model);
|
|
571
|
-
if (model.export === 'dictionary' &&
|
|
572
|
-
'additionalProperties' in schema &&
|
|
573
|
-
schema.additionalProperties) {
|
|
574
|
-
if ((0, refs_1.isRef)(schema.additionalProperties)) {
|
|
575
|
-
const name = (0, refs_1.splitRef)(schema.additionalProperties.$ref)[2];
|
|
576
|
-
if (modelsByName[name] && !model.link) {
|
|
577
|
-
model.link = modelsByName[name];
|
|
578
|
-
}
|
|
579
|
-
}
|
|
580
|
-
else if (model.link && typeof schema.additionalProperties !== 'boolean') {
|
|
581
|
-
_ensureModelLinks(spec, modelsByName, (0, types_1.flattenModelLink)(model.link), schema.additionalProperties, visited);
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
else if (model.export === 'array' && 'items' in schema && schema.items) {
|
|
585
|
-
if ((0, refs_1.isRef)(schema.items)) {
|
|
586
|
-
const name = (0, refs_1.splitRef)(schema.items.$ref)[2];
|
|
587
|
-
if (modelsByName[name] && !model.link) {
|
|
588
|
-
model.link = modelsByName[name];
|
|
589
|
-
}
|
|
590
|
-
}
|
|
591
|
-
else if (model.link) {
|
|
592
|
-
_ensureModelLinks(spec, modelsByName, (0, types_1.flattenModelLink)(model.link), schema.items, visited);
|
|
593
|
-
}
|
|
594
483
|
}
|
|
595
|
-
model.properties
|
|
596
|
-
|
|
597
|
-
.
|
|
598
|
-
|
|
599
|
-
|
|
600
|
-
});
|
|
601
|
-
if (types_1.COMPOSED_SCHEMA_TYPES.has(model.export)) {
|
|
602
|
-
model.properties.forEach((property, i) => {
|
|
603
|
-
const subSchema = (0, refs_1.resolveIfRef)(spec, schema[(0, lodash_camelcase_1.default)(model.export)]?.[i]);
|
|
484
|
+
model.properties.filter((p)=>!visited.has(p) && schema.properties?.[trim(p.name, `"'`)]).forEach((property)=>recurse(property, resolveIfRef(spec, schema.properties[trim(property.name, `"'`)])));
|
|
485
|
+
if (COMPOSED_SCHEMA_TYPES.has(model.export)) {
|
|
486
|
+
const memberSchemas = compositeMemberSchemas(schema, model.export);
|
|
487
|
+
model.properties.forEach((property, i)=>{
|
|
488
|
+
const subSchema = resolveIfRef(spec, memberSchemas[i]);
|
|
604
489
|
if (subSchema) {
|
|
605
|
-
|
|
490
|
+
recurse(property, subSchema);
|
|
606
491
|
}
|
|
607
492
|
});
|
|
608
493
|
}
|
|
609
494
|
};
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
613
|
-
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
data.models.forEach((model) => mutateModelWithCompositeProperties(data, model, visited));
|
|
618
|
-
};
|
|
619
|
-
const mutateModelWithCompositeProperties = (data, model, visited) => {
|
|
620
|
-
if (types_1.COMPOSED_SCHEMA_TYPES.has(model.export) && !visited.has(model)) {
|
|
621
|
-
visited.add(model);
|
|
622
|
-
// Find the models/primitives which this is composed from
|
|
623
|
-
const composedModelReferences = model.properties.filter((p) => !p.name && p.export === 'reference');
|
|
624
|
-
const composedPrimitives = model.properties.filter((p) => !p.name && p.export !== 'reference');
|
|
625
|
-
const modelsByName = Object.fromEntries(data.models.map((m) => [m.name, m]));
|
|
626
|
-
let composedModels = composedModelReferences.flatMap((r) => modelsByName[r.type] ? [modelsByName[r.type]] : []);
|
|
627
|
-
// Recursively resolve composed properties of properties, to ensure mixins for all-of include all recursive all-of properties
|
|
628
|
-
composedModels.forEach((m) => mutateModelWithCompositeProperties(data, m, visited));
|
|
629
|
-
// Enums are models, however they are serialised as primitives and so should be moved to the primitives list
|
|
630
|
-
composedPrimitives.push(...composedModels.filter((m) => m.export === 'enum'));
|
|
631
|
-
composedModels = composedModels.filter((m) => m.export !== 'enum');
|
|
632
|
-
// When multiple arrays of non-primitives are composed using allOf/oneOf/anyOf, it's not possible to distinguish at runtime which
|
|
633
|
-
// type it is, and so we validate this away.
|
|
634
|
-
// TODO: consider honouring more advanced OpenAPI spec features like "discriminators" which can help for this case, but in practice
|
|
635
|
-
// users are unlikely to model their API this way
|
|
636
|
-
const isPrimitiveArray = (m) => {
|
|
637
|
-
if (m.link && ['array', 'dictionary'].includes(m.export)) {
|
|
638
|
-
return isPrimitiveArray((0, types_1.flattenModelLink)(m.link));
|
|
639
|
-
}
|
|
640
|
-
return (types_1.PRIMITIVE_TYPES.has(m.type) && !['date', 'date-time'].includes(m.format));
|
|
641
|
-
};
|
|
642
|
-
const arrayComposedModels = composedPrimitives.filter((m) => m.export === 'array' && !isPrimitiveArray(m));
|
|
643
|
-
if (arrayComposedModels.length > 1) {
|
|
644
|
-
throw new Error(`Schema "${model.name}" defines ${(0, lodash_camelcase_1.default)(model.export)} with multiple array types which cannot be distinguished at runtime.`);
|
|
645
|
-
}
|
|
646
|
-
// For all-of models, we include all composed model properties.
|
|
647
|
-
if (model.export === 'all-of') {
|
|
648
|
-
if (composedPrimitives.length > 0) {
|
|
649
|
-
throw new Error(`Schema "${model.name}" defines allOf with non-object types. allOf may only compose object types in the OpenAPI specification.`);
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
model.composedModels = composedModels;
|
|
653
|
-
model.composedPrimitives = composedPrimitives;
|
|
654
|
-
}
|
|
655
|
-
};
|
|
656
|
-
/**
|
|
657
|
-
* Mutates the given model to add language specific types and names
|
|
658
|
-
*/
|
|
659
|
-
const mutateModelWithAdditionalTypes = (model) => {
|
|
660
|
-
// Trim any surrounding quotes from name
|
|
661
|
-
model.name = (0, lodash_trim_1.default)(model.name, `"'`);
|
|
662
|
-
model.typescriptName = (0, languages_1.toTypeScriptName)(model.name);
|
|
663
|
-
model.typescriptType = (0, languages_1.toTypeScriptType)(model);
|
|
664
|
-
model.pythonName = (0, languages_1.toPythonName)('property', model.name);
|
|
665
|
-
model.pythonType = (0, languages_1.toPythonType)(model);
|
|
666
|
-
model.isPrimitive =
|
|
667
|
-
types_1.PRIMITIVE_TYPES.has(model.type) &&
|
|
668
|
-
!types_1.COMPOSED_SCHEMA_TYPES.has(model.export) &&
|
|
669
|
-
!types_1.COLLECTION_TYPES.has(model.export);
|
|
495
|
+
const addLanguageTypes = (model)=>{
|
|
496
|
+
model.name = trim(model.name, `"'`);
|
|
497
|
+
model.typescriptName = toTypeScriptName(model.name);
|
|
498
|
+
model.typescriptType = toTypeScriptType(model);
|
|
499
|
+
model.pythonName = toPythonName('property', model.name);
|
|
500
|
+
model.pythonType = toPythonType(model);
|
|
501
|
+
model.isPrimitive = PRIMITIVE_TYPES.has(model.type) && !COMPOSED_SCHEMA_TYPES.has(model.export) && !COLLECTION_TYPES.has(model.export);
|
|
670
502
|
};
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
*/
|
|
674
|
-
const isOperationMutation = (op) => {
|
|
675
|
-
// Let the user override whether an operation is a query or mutation using x-mutation/x-query
|
|
503
|
+
const isOperationMutation = (op)=>{
|
|
504
|
+
// x-mutation/x-query override the HTTP-method default.
|
|
676
505
|
const { vendorExtensions } = op;
|
|
677
|
-
if (vendorExtensions?.[
|
|
506
|
+
if (vendorExtensions?.[VENDOR_EXTENSIONS.MUTATION]) {
|
|
678
507
|
return true;
|
|
679
|
-
}
|
|
680
|
-
else if (vendorExtensions?.[types_1.VENDOR_EXTENSIONS.QUERY]) {
|
|
508
|
+
} else if (vendorExtensions?.[VENDOR_EXTENSIONS.QUERY]) {
|
|
681
509
|
return false;
|
|
682
510
|
}
|
|
683
|
-
|
|
684
|
-
|
|
511
|
+
return [
|
|
512
|
+
'PATCH',
|
|
513
|
+
'POST',
|
|
514
|
+
'PUT',
|
|
515
|
+
'DELETE'
|
|
516
|
+
].includes(op.method);
|
|
685
517
|
};
|
|
686
|
-
|
|
687
|
-
* Add infinite query details to the operation
|
|
688
|
-
*/
|
|
689
|
-
const mutateOperationWithInfiniteQueryDetails = (op) => {
|
|
518
|
+
const augmentInfiniteQuery = (op)=>{
|
|
690
519
|
const { paginationDisabled, cursorPropertyName } = getCursorOptions(op);
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
// The operation is an infinite query if:
|
|
694
|
-
// - x-cursor is not set to 'false' (this allows users to disable infinite queries for operations that accept a 'cursor')
|
|
695
|
-
// - the operation accepts a parameter named 'cursor', or a parameter named as the user specified with x-cursor
|
|
520
|
+
const cursorProperty = op.parameters.find((p)=>p.name === cursorPropertyName);
|
|
521
|
+
// An infinite query is a paginated operation that accepts the cursor parameter
|
|
696
522
|
op.isInfiniteQuery = !paginationDisabled && !!cursorProperty;
|
|
697
523
|
if (op.isInfiniteQuery) {
|
|
698
524
|
op.infiniteQueryCursorProperty = cursorProperty;
|
|
699
525
|
}
|
|
700
526
|
};
|
|
701
527
|
/**
|
|
702
|
-
*
|
|
703
|
-
*
|
|
704
|
-
*
|
|
528
|
+
* Resolve the pagination cursor options from an operation's `x-cursor` vendor
|
|
529
|
+
* extension. Accepted forms (object variants exist because Smithy vendor
|
|
530
|
+
* extensions must be objects):
|
|
705
531
|
*
|
|
706
|
-
*
|
|
707
|
-
*
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
}
|
|
723
|
-
else if (typeof cursorExtension === 'string') {
|
|
724
|
-
cursorPropertyName = cursorExtension;
|
|
725
|
-
}
|
|
726
|
-
else if (typeof cursorExtension === 'object') {
|
|
727
|
-
if (cursorExtension?.enabled === false) {
|
|
728
|
-
paginationDisabled = true;
|
|
729
|
-
}
|
|
730
|
-
if (cursorExtension?.inputToken &&
|
|
731
|
-
typeof cursorExtension.inputToken === 'string') {
|
|
732
|
-
cursorPropertyName = cursorExtension.inputToken;
|
|
733
|
-
}
|
|
532
|
+
* - `'property'` / `{ inputToken: 'property' }` — the input property to page on
|
|
533
|
+
* - `false` / `{ enabled: false }` — disable pagination
|
|
534
|
+
*/ const getCursorOptions = (op)=>{
|
|
535
|
+
const cursor = op.vendorExtensions?.[VENDOR_EXTENSIONS.CURSOR];
|
|
536
|
+
// Defaults: pagination enabled, paging on a property named 'cursor'.
|
|
537
|
+
if (cursor === false) {
|
|
538
|
+
return {
|
|
539
|
+
paginationDisabled: true,
|
|
540
|
+
cursorPropertyName: 'cursor'
|
|
541
|
+
};
|
|
542
|
+
}
|
|
543
|
+
if (typeof cursor === 'string') {
|
|
544
|
+
return {
|
|
545
|
+
paginationDisabled: false,
|
|
546
|
+
cursorPropertyName: cursor
|
|
547
|
+
};
|
|
734
548
|
}
|
|
735
|
-
|
|
549
|
+
const options = cursor ?? {};
|
|
736
550
|
return {
|
|
737
|
-
paginationDisabled,
|
|
738
|
-
cursorPropertyName
|
|
551
|
+
paginationDisabled: options.enabled === false,
|
|
552
|
+
cursorPropertyName: typeof options.inputToken === 'string' ? options.inputToken : 'cursor'
|
|
739
553
|
};
|
|
740
554
|
};
|
|
741
555
|
/**
|
|
742
|
-
* Add
|
|
743
|
-
*/
|
|
744
|
-
const mutateOperationWithAdditionalData = (op) => {
|
|
745
|
-
// Add mutation/query details
|
|
556
|
+
* Add query/mutation, streaming and infinite-query flags to an operation.
|
|
557
|
+
*/ const augmentOperationBehaviour = (op)=>{
|
|
746
558
|
const isMutation = isOperationMutation(op);
|
|
747
559
|
op.isMutation = isMutation;
|
|
748
560
|
op.isQuery = !isMutation;
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
// it will resolve to AsyncIterableIterator<{itemSchemaModel.name}>
|
|
755
|
-
const jsonlResponse = op.responses.find((res) => res.isJsonlStreaming);
|
|
561
|
+
op.isStreaming = !!op.vendorExtensions?.[VENDOR_EXTENSIONS.STREAMING] || op.responses.some((res)=>res.isJsonlStreaming);
|
|
562
|
+
// For JSON-lines streaming, the result is each streamed item, so the client
|
|
563
|
+
// method returns AsyncIterableIterator<itemSchemaModel>. Named (hoisted)
|
|
564
|
+
// item schemas become references; inline primitives keep their own type.
|
|
565
|
+
const jsonlResponse = op.responses.find((res)=>res.isJsonlStreaming);
|
|
756
566
|
if (jsonlResponse) {
|
|
757
567
|
const itemSchemaModel = jsonlResponse.itemSchemaModel;
|
|
758
568
|
const result = op.result;
|
|
759
569
|
if (result && itemSchemaModel) {
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
570
|
+
if (itemSchemaModel.name) {
|
|
571
|
+
result.type = itemSchemaModel.name;
|
|
572
|
+
result.typescriptType = itemSchemaModel.name;
|
|
573
|
+
result.export = 'reference';
|
|
574
|
+
} else {
|
|
575
|
+
result.type = itemSchemaModel.type;
|
|
576
|
+
result.typescriptType = itemSchemaModel.typescriptType;
|
|
577
|
+
result.export = itemSchemaModel.export;
|
|
578
|
+
result.format = itemSchemaModel.format;
|
|
579
|
+
result.link = itemSchemaModel.link;
|
|
580
|
+
result.isPrimitive = itemSchemaModel.isPrimitive;
|
|
581
|
+
}
|
|
763
582
|
}
|
|
764
583
|
}
|
|
765
584
|
// Add infinite query details if applicable
|
|
766
585
|
if (!isMutation) {
|
|
767
|
-
|
|
586
|
+
augmentInfiniteQuery(op);
|
|
768
587
|
}
|
|
769
588
|
};
|
|
589
|
+
|
|
770
590
|
//# sourceMappingURL=codegen-data.js.map
|