@aws/nx-plugin 1.0.0-rc.3 → 1.0.0-rc.30
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 +7246 -5532
- package/README.md +8 -8
- package/executors.json +9 -0
- package/generators.json +100 -1
- package/package.json +35 -16
- package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
- package/src/agentcore-gateway/attach-upstream.js +38 -0
- package/src/agentcore-gateway/attach-upstream.js.map +1 -0
- package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
- package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
- package/src/agentcore-gateway/files/project/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 +101 -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 +25 -0
- package/src/agentcore-gateway/generator.js +149 -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 +59 -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/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 +70 -0
- package/src/bin/aws-nx-mcp.js +14 -0
- package/src/bin/aws-nx-mcp.js.map +1 -0
- package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +7 -7
- package/src/connection/agent-local-dev.js +42 -0
- package/src/connection/agent-local-dev.js.map +1 -0
- package/src/connection/agent-runtime-config.d.ts +1 -1
- package/src/connection/agent-runtime-config.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/generator.d.ts +7 -14
- package/src/connection/generator.js +158 -177
- package/src/connection/generator.js.map +1 -1
- package/src/connection/local-dev.d.ts +15 -0
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.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 +98 -0
- package/src/connection/supported-connections.js +138 -0
- package/src/connection/supported-connections.js.map +1 -0
- package/src/index.js +2 -5
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +51 -81
- package/src/infra/app/generator.d.ts +3 -3
- package/src/infra/app/generator.js +141 -123
- 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/license/__snapshots__/config.spec.ts.snap +23 -0
- package/src/license/config-types.d.ts +18 -1
- package/src/license/config-types.js +8 -2
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +65 -7
- package/src/license/config.js +442 -109
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.d.ts +16 -0
- package/src/license/dependency-check/check.js +116 -0
- package/src/license/dependency-check/check.js.map +1 -0
- package/src/license/dependency-check/collectors/collector.d.ts +21 -0
- package/src/license/dependency-check/collectors/collector.js +46 -0
- package/src/license/dependency-check/collectors/collector.js.map +1 -0
- package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
- package/src/license/dependency-check/collectors/npm-collector.js +68 -0
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
- package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
- package/src/license/dependency-check/collectors/python-collector.js +114 -0
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
- package/src/license/dependency-check/evaluator.d.ts +9 -0
- package/src/license/dependency-check/evaluator.js +94 -0
- package/src/license/dependency-check/evaluator.js.map +1 -0
- package/src/license/dependency-check/executor-schema.json +6 -0
- package/src/license/dependency-check/executor.d.ts +9 -0
- package/src/license/dependency-check/executor.js +51 -0
- package/src/license/dependency-check/executor.js.map +1 -0
- package/src/license/dependency-check/pre-approved.d.ts +6 -0
- package/src/license/dependency-check/pre-approved.js +1893 -0
- package/src/license/dependency-check/pre-approved.js.map +1 -0
- package/src/license/dependency-check/types.d.ts +45 -0
- package/src/license/dependency-check/types.js +6 -0
- package/src/license/dependency-check/types.js.map +1 -0
- package/src/license/generator.d.ts +3 -3
- package/src/license/generator.js +127 -30
- package/src/license/generator.js.map +1 -1
- package/src/license/index.d.ts +8 -0
- package/src/license/index.js +7 -0
- package/src/license/index.js.map +1 -0
- package/src/license/known-exceptions.d.ts +7 -0
- package/src/license/known-exceptions.js +39 -0
- package/src/license/known-exceptions.js.map +1 -0
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/schema.d.ts +7 -0
- package/src/license/schema.json +11 -0
- package/src/license/sync/generator.d.ts +2 -2
- package/src/license/sync/generator.js +100 -125
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.d.ts +3 -3
- 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/generator-info.d.ts +5 -1
- package/src/mcp-server/generator-info.js +130 -160
- 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 +184 -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 +42 -56
- 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.js +9 -7
- package/src/mcp-server/schema.js.map +1 -1
- package/src/mcp-server/server.js +20 -24
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
- 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 +46 -25
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.d.ts +2 -2
- 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 +2 -2
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
- package/src/open-api/ts-client/generator.d.ts +3 -3
- package/src/open-api/ts-client/generator.js +16 -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/generator.d.ts +3 -3
- package/src/open-api/ts-hooks/generator.js +13 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
- 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 +3 -3
- 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 +5 -1
- package/src/open-api/utils/codegen-data/languages.js +42 -60
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.js +31 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +6 -2
- package/src/open-api/utils/codegen-data.js +253 -269
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.d.ts +5 -1
- package/src/open-api/utils/normalise.js +242 -241
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.d.ts +2 -2
- package/src/open-api/utils/parse.js +11 -13
- package/src/open-api/utils/parse.js.map +1 -1
- 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.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +160 -17
- package/src/preset/generator.d.ts +4 -4
- package/src/preset/generator.js +140 -112
- 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 +4 -2
- package/src/preset/schema.json +10 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +734 -0
- package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +80 -314
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +189 -0
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +30 -0
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +28 -0
- package/src/py/agent/a2a-connection/generator.d.ts +3 -3
- package/src/py/agent/a2a-connection/generator.js +113 -85
- 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 +1 -0
- package/src/py/agent/a2a-connection/schema.json +5 -0
- package/src/py/agent/files/a2a-langchain/main.py.template +89 -0
- package/src/py/agent/files/ag-ui-langchain/main.py.template +83 -0
- package/src/py/agent/files/common/agent.py.template +2 -0
- package/src/py/agent/files/common-langchain/agent.py.template +30 -0
- package/src/py/agent/files/http/init.py.template +7 -25
- package/src/py/agent/files/http/main.py.template +2 -3
- package/src/py/agent/files/http-langchain/main.py.template +84 -0
- 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 +10 -0
- package/src/py/agent/gateway-connection/generator.js +119 -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 +3 -3
- package/src/py/agent/generator.js +280 -180
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +153 -89
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +30 -0
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +30 -0
- package/src/py/agent/mcp-connection/generator.d.ts +3 -3
- package/src/py/agent/mcp-connection/generator.js +65 -126
- 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 +1 -0
- package/src/py/agent/mcp-connection/schema.json +5 -0
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +11 -19
- package/src/py/agent/react-connection/generator.d.ts +4 -4
- package/src/py/agent/react-connection/generator.js +55 -59
- 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} +6 -6
- 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 +1 -0
- 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 +2 -1
- package/src/py/agent/schema.json +6 -1
- package/src/py/api/generator.d.ts +3 -3
- 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 +1 -0
- package/src/py/api/schema.json +5 -0
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1526 -0
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/agent-connection/generator.js +39 -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 +23 -0
- package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/fast-api-connection/generator.js +37 -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 +10 -0
- package/src/py/dynamodb/generator.js +110 -0
- package/src/py/dynamodb/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js +39 -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 +75 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +212 -4678
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -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 +3 -3
- package/src/py/fast-api/generator.js +90 -87
- 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 +4 -4
- package/src/py/fast-api/react/generator.js +25 -25
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.d.ts +1 -1
- package/src/py/fast-api/react/open-api.js +31 -29
- 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 +1 -0
- package/src/py/fast-api/schema.json +5 -0
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/lambda-function/generator.d.ts +3 -3
- package/src/py/lambda-function/generator.js +60 -59
- 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 +1 -0
- package/src/py/lambda-function/schema.json +5 -0
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +87 -17
- package/src/py/mcp-server/generator.d.ts +3 -3
- package/src/py/mcp-server/generator.js +152 -125
- 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 +1 -0
- package/src/py/mcp-server/schema.json +5 -0
- package/src/py/project/generator.d.ts +17 -4
- package/src/py/project/generator.js +205 -127
- 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 +5 -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/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 +10 -0
- package/src/sdk/open-api.js +8 -0
- package/src/sdk/open-api.js.map +1 -0
- package/src/sdk/py.d.ts +14 -0
- package/src/sdk/py.js +10 -0
- package/src/sdk/py.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 +33 -0
- package/src/sdk/ts.js +35 -0
- package/src/sdk/ts.js.map +1 -0
- package/{sdk → src/sdk}/utils/ast.d.ts +1 -2
- package/src/sdk/utils/ast.js +6 -0
- package/src/sdk/utils/ast.js.map +1 -0
- package/{sdk → src/sdk}/utils/format.d.ts +1 -1
- 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 +19 -24
- package/src/smithy/project/files/build.Dockerfile.template +1 -4
- package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
- package/src/smithy/project/generator.d.ts +3 -3
- package/src/smithy/project/generator.js +64 -57
- 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 +1 -0
- package/src/smithy/project/schema.json +5 -0
- package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/smithy/react-connection/generator.d.ts +3 -3
- package/src/smithy/react-connection/generator.js +39 -47
- 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 +409 -106
- package/src/smithy/ts/api/generator.d.ts +3 -3
- package/src/smithy/ts/api/generator.js +127 -106
- 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 +1 -0
- package/src/smithy/ts/api/schema.json +5 -0
- package/src/terraform/project/files/application/src/main.tf.template +6 -1
- package/src/terraform/project/files/application/src/providers.tf.template +1 -1
- package/src/terraform/project/generator.d.ts +3 -3
- package/src/terraform/project/generator.js +156 -104
- 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 +499 -110
- package/src/trpc/backend/files/src/procedures/echo.ts.template +1 -1
- package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
- package/src/trpc/backend/generator.d.ts +4 -4
- package/src/trpc/backend/generator.js +97 -85
- 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 +3 -2
- package/src/trpc/backend/schema.json +5 -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 +4 -4
- package/src/trpc/react/generator.js +63 -58
- 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 +656 -18
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +256 -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 +3 -3
- package/src/ts/agent/a2a-connection/generator.js +63 -56
- 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 +1 -0
- package/src/ts/agent/a2a-connection/schema.json +5 -0
- package/src/ts/agent/files/common/agent.ts.template +6 -2
- package/src/ts/agent/files/http/router.ts.template +1 -1
- package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +220 -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 +10 -0
- package/src/ts/agent/gateway-connection/generator.js +114 -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 +3 -3
- package/src/ts/agent/generator.js +188 -144
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +192 -111
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
- package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
- package/src/ts/agent/mcp-connection/generator.js +53 -60
- 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 +1 -0
- package/src/ts/agent/mcp-connection/schema.json +5 -0
- package/src/ts/agent/react-connection/generator.d.ts +4 -4
- package/src/ts/agent/react-connection/generator.js +86 -80
- 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 +1 -0
- 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 +1 -0
- package/src/ts/agent/schema.json +5 -0
- package/src/ts/api/generator.d.ts +3 -3
- 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 +3 -1
- package/src/ts/api/schema.json +5 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +15 -16
- package/src/ts/astro-docs/generator.d.ts +3 -3
- package/src/ts/astro-docs/generator.js +69 -54
- 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/docs/generator.d.ts +3 -3
- 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 +1390 -0
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/agent-connection/generator.js +30 -0
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
- 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 +15 -0
- package/src/ts/dynamodb/agent-connection/schema.json +27 -0
- package/src/ts/dynamodb/files/config.json.template +24 -0
- package/src/ts/dynamodb/files/src/client.ts.template +61 -0
- package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
- package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
- package/src/ts/dynamodb/files/src/index.ts.template +2 -0
- package/src/ts/dynamodb/generator.d.ts +10 -0
- package/src/ts/dynamodb/generator.js +116 -0
- package/src/ts/dynamodb/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js +30 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
- 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 +15 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.json +27 -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 +16 -0
- package/src/ts/dynamodb/schema.json +75 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/smithy-connection/generator.js +28 -0
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
- 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 +13 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +23 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/trpc-connection/generator.js +28 -0
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
- 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 +13 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +23 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/lambda-function/generator.d.ts +3 -3
- package/src/ts/lambda-function/generator.js +59 -56
- 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 +1 -0
- package/src/ts/lambda-function/schema.json +5 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +53 -99
- package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
- package/src/ts/lib/biome.d.ts +7 -0
- package/src/ts/lib/biome.js +58 -0
- package/src/ts/lib/biome.js.map +1 -0
- package/src/ts/lib/generator.d.ts +3 -3
- package/src/ts/lib/generator.js +96 -96
- 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 +12 -2
- package/src/ts/lib/ts-project-utils.js +80 -65
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.js +5 -2
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +2 -2
- package/src/ts/lib/vitest.js +29 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +83 -13
- package/src/ts/mcp-server/generator.d.ts +3 -3
- package/src/ts/mcp-server/generator.js +164 -120
- 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 +1 -0
- package/src/ts/mcp-server/schema.json +5 -0
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +46 -26
- 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.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 +2 -2
- package/src/ts/nx-generator/generator.js +111 -74
- 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-plugin/__snapshots__/generator.spec.ts.snap +30 -18
- 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 +3 -3
- package/src/ts/nx-plugin/generator.d.ts +3 -3
- package/src/ts/nx-plugin/generator.js +60 -51
- 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 +1 -1
- package/src/ts/nx-plugin/utils.js +32 -38
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +312 -482
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
- package/src/ts/rdb/agent-connection/generator.js +38 -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 +1 -0
- package/src/ts/rdb/agent-connection/schema.json +5 -0
- package/src/ts/rdb/files/config.json.template +14 -0
- package/src/ts/rdb/files/prisma.config.ts.template +6 -5
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +7 -9
- package/src/ts/rdb/files/src/index.ts.template +0 -1
- package/src/ts/rdb/files/src/migration-handler.ts.template +1 -28
- package/src/ts/rdb/files/src/prisma.ts.template +28 -23
- package/src/ts/rdb/files/src/utils.ts.template +3 -0
- package/src/ts/rdb/generator.d.ts +3 -7
- package/src/ts/rdb/generator.js +158 -130
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
- package/src/ts/rdb/mcp-server-connection/generator.js +36 -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 +1 -0
- 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 +1 -0
- package/src/ts/rdb/schema.json +5 -0
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +46 -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 +3 -3
- package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +36 -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.d.ts +1 -1
- 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 +1 -16
- package/src/ts/react-website/agui/generator.d.ts +1 -1
- package/src/ts/react-website/agui/generator.js +69 -62
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +626 -612
- package/src/ts/react-website/app/generator.d.ts +4 -4
- package/src/ts/react-website/app/generator.js +217 -192
- 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 +1 -1
- package/src/ts/react-website/app/schema.json +11 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +129 -18
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +36 -10
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
- 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 +4 -4
- package/src/ts/react-website/cognito-auth/generator.js +64 -63
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
- package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
- package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
- package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
- package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -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 +1 -0
- package/src/ts/react-website/cognito-auth/schema.json +5 -0
- package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
- 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 +3 -3
- 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 +3 -3
- package/src/ts/sync/generator.js +60 -59
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.d.ts +3 -3
- 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 +1 -1
- package/src/ts/website/app/schema.json +11 -6
- package/src/ts/website/auth/generator.d.ts +4 -4
- 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 +1 -0
- package/src/ts/website/auth/schema.json +5 -0
- package/src/utils/agent-chat/agent-chat.d.ts +31 -0
- package/src/utils/agent-chat/agent-chat.js +29 -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 +117 -25
- package/src/utils/agent-connection/agent-connection.js +411 -103
- 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 +22 -32
- 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-strands/base/model-errors-strands.ts.template +36 -0
- 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 +99 -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-mcp/agentcore_mcp_transport.py.template +34 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
- 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 +66 -0
- package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
- 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 +11 -3
- package/src/utils/agent-core-constructs/agent-core-constructs.js +86 -38
- 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 +4 -0
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +50 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +487 -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/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +449 -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/core/agent-core/runtime.tf.template +80 -12
- 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 +2 -2
- package/src/utils/api-constructs/api-constructs.js +30 -31
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +3 -0
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +23 -6
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -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 +51 -15
- 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 +1 -8
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +94 -4
- 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 +5 -11
- package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
- package/src/utils/api-constructs/open-api-metadata.js +22 -22
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.d.ts +5 -1
- package/src/utils/ast/website.js +18 -20
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +33 -1
- package/src/utils/ast.js +130 -70
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +1 -1
- package/src/utils/bundle/bundle.js +50 -47
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.js +47 -26
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +5 -5
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.d.ts +13 -3
- package/src/utils/config/utils.js +65 -43
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
- package/src/utils/connection/open-api/react.d.ts +6 -6
- package/src/utils/connection/open-api/react.js +81 -77
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.d.ts +1 -1
- package/src/utils/containers.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +48 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +43 -0
- package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +72 -0
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +195 -0
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +106 -0
- package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -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 +117 -0
- package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
- package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
- 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/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.d.ts +45 -2
- package/src/utils/format.js +323 -81
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +1 -1
- package/src/utils/fs.js +14 -13
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
- package/src/utils/function-constructs/function-constructs.d.ts +2 -2
- package/src/utils/function-constructs/function-constructs.js +21 -26
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.d.ts +4 -0
- package/src/utils/generators.js +18 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.d.ts +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 +1 -1
- 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 +123 -14
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +106 -6
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
- package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +24 -28
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/install.d.ts +32 -0
- package/src/utils/install.js +56 -0
- package/src/utils/install.js.map +1 -0
- package/src/utils/js.d.ts +4 -0
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.d.ts +25 -0
- package/src/utils/mcp.js +74 -0
- package/src/utils/mcp.js.map +1 -0
- package/src/utils/metrics.d.ts +9 -3
- package/src/utils/metrics.js +61 -46
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +8 -12
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.d.ts +16 -0
- package/src/utils/names.js +39 -48
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.d.ts +1 -1
- package/src/utils/npm-scope.js +9 -17
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +25 -4
- package/src/utils/nx.js +144 -75
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +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/paths.d.ts +1 -1
- package/src/utils/paths.js +11 -15
- package/src/utils/paths.js.map +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 -1
- package/src/utils/pnpm-workspace.js +22 -22
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.d.ts +31 -3
- package/src/utils/port.js +72 -12
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +16 -3
- package/src/utils/py.js +72 -47
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +12 -2
- package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +35 -16
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +42 -48
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +31 -16
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -4
- package/src/utils/rdb-constructs/rdb-constructs.js +31 -41
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.d.ts +1 -0
- package/src/utils/shared-constructs-constants.js +16 -15
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +2 -2
- package/src/utils/shared-constructs.js +57 -54
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
- package/src/utils/shared-dynamodb-scripts.js +25 -0
- package/src/utils/shared-dynamodb-scripts.js.map +1 -0
- package/src/utils/shared-infra-config.d.ts +1 -1
- package/src/utils/shared-infra-config.js +30 -31
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.d.ts +11 -0
- package/src/utils/shared-infra-scripts.js +40 -0
- package/src/utils/shared-infra-scripts.js.map +1 -0
- package/src/utils/shared-rdb-scripts.d.ts +16 -0
- package/src/utils/shared-rdb-scripts.js +28 -0
- package/src/utils/shared-rdb-scripts.js.map +1 -0
- package/src/utils/shared-scripts.d.ts +2 -5
- package/src/utils/shared-scripts.js +12 -38
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +1 -1
- package/src/utils/shared-shadcn.js +64 -72
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +13 -1
- package/src/utils/test.js +35 -23
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.d.ts +1 -1
- package/src/utils/toml.js +10 -14
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +116 -84
- package/src/utils/versions.js +124 -102
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +73 -5
- package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +68 -19
- package/src/utils/website-constructs/website-constructs.d.ts +2 -2
- package/src/utils/website-constructs/website-constructs.js +31 -30
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- 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/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.js +0 -48
- package/src/connection/agent-serve-local.js.map +0 -1
- package/src/connection/serve-local.d.ts +0 -15
- package/src/connection/serve-local.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
- 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/lib/eslint.d.ts +0 -14
- package/src/ts/lib/eslint.js +0 -90
- package/src/ts/lib/eslint.js.map +0 -1
- package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
- package/src/ts/rdb/files/scripts/docker-pull.ts.template +0 -15
- package/src/ts/rdb/files/scripts/docker-start.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/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/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
- /package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +0 -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} +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/{infra-deploy.ts.template → infra/infra-deploy.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{infra-destroy.ts.template → infra/infra-destroy.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}/run.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
|
@@ -1,40 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildOpenApiCodeGenData = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
1
|
/**
|
|
6
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
const types_1 = require("./codegen-data/types");
|
|
4
|
+
*/ import * as gen from "@hey-api/openapi-ts";
|
|
5
|
+
import camelCase from "lodash.camelcase";
|
|
6
|
+
import orderBy from "lodash.orderby";
|
|
7
|
+
import trim from "lodash.trim";
|
|
8
|
+
import uniqBy from "lodash.uniqby";
|
|
9
|
+
import { kebabCase, pascalCase, snakeCase, toClassName, upperFirst } from "../../utils/names.js";
|
|
10
|
+
import { toPythonName, toPythonType, toTypeScriptModelName, toTypeScriptName, toTypeScriptType } from "./codegen-data/languages.js";
|
|
11
|
+
import { COLLECTION_TYPES, COMPOSED_SCHEMA_TYPES, flattenModelLink, PRIMITIVE_TYPES, STREAMING_CONTENT_TYPES, VENDOR_EXTENSIONS } from "./codegen-data/types.js";
|
|
12
|
+
import { normaliseOpenApiSpecForCodeGen } from "./normalise.js";
|
|
13
|
+
import { isRef, resolveIfRef, splitRef } from "./refs.js";
|
|
19
14
|
/**
|
|
20
15
|
* Builds a data structure from an OpenAPI spec which can be used to generate code
|
|
21
|
-
*/
|
|
22
|
-
const buildOpenApiCodeGenData = async (inSpec) => {
|
|
16
|
+
*/ export const buildOpenApiCodeGenData = async (inSpec)=>{
|
|
23
17
|
// Ensure spec is ready for codegen
|
|
24
|
-
const spec =
|
|
18
|
+
const spec = normaliseOpenApiSpecForCodeGen(inSpec);
|
|
25
19
|
// Build the initial data, which we will augment with additional information
|
|
26
20
|
const data = await buildInitialCodeGenData(spec);
|
|
27
21
|
// Ensure the models have their links set when they are arrays/dictionaries
|
|
28
22
|
ensureModelLinks(spec, data);
|
|
29
23
|
// Mutate the models with enough data to render composite models in the templates
|
|
30
24
|
ensureCompositeModels(data);
|
|
31
|
-
const modelsByName = Object.fromEntries(data.models.map((m)
|
|
25
|
+
const modelsByName = Object.fromEntries(data.models.map((m)=>[
|
|
26
|
+
m.name,
|
|
27
|
+
m
|
|
28
|
+
]));
|
|
32
29
|
// Augment operations with additional data
|
|
33
|
-
for (const service of data.services)
|
|
30
|
+
for (const service of data.services){
|
|
34
31
|
// Keep track of the request and response models we need the service (ie api client) to import
|
|
35
32
|
const requestModelImports = [];
|
|
36
33
|
const responseModelImports = [];
|
|
37
|
-
for (const op of service.operations)
|
|
34
|
+
for (const op of service.operations){
|
|
38
35
|
// Extract the operation back from the openapi spec
|
|
39
36
|
const specOp = spec?.paths?.[op.path]?.[op.method.toLowerCase()];
|
|
40
37
|
op.name = op.id ?? op.name;
|
|
@@ -50,17 +47,17 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
50
47
|
copyVendorExtensions(specOp ?? {}, op.vendorExtensions);
|
|
51
48
|
if (specOp) {
|
|
52
49
|
// Add all response models to the response model imports
|
|
53
|
-
responseModelImports.push(...op.responses
|
|
54
|
-
|
|
55
|
-
.map((r) => r.type));
|
|
56
|
-
for (const response of op.responses) {
|
|
50
|
+
responseModelImports.push(...op.responses.filter((r)=>r.export === 'reference').map((r)=>r.type));
|
|
51
|
+
for (const response of op.responses){
|
|
57
52
|
// Validate that the response is not a composite schema of primitives since we cannot determine what
|
|
58
53
|
// the type of the response is (it all comes back as text!)
|
|
59
|
-
if (response.export === 'reference' &&
|
|
60
|
-
|
|
61
|
-
|
|
54
|
+
if (response.export === 'reference' && COMPOSED_SCHEMA_TYPES.has(modelsByName[response.type]?.export)) {
|
|
55
|
+
const composedPrimitives = modelsByName[response.type].composedPrimitives.filter((p)=>![
|
|
56
|
+
'array',
|
|
57
|
+
'dictionary'
|
|
58
|
+
].includes(p.export));
|
|
62
59
|
if (composedPrimitives.length > 0) {
|
|
63
|
-
throw new Error(`Operation "${op.method} ${op.path}" returns a composite schema of primitives with ${(
|
|
60
|
+
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`);
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
63
|
const matchingSpecResponse = specOp.responses[`${response.code}`];
|
|
@@ -69,45 +66,44 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
69
66
|
// has content
|
|
70
67
|
if (matchingSpecResponse) {
|
|
71
68
|
// Resolve the ref if necessary
|
|
72
|
-
const specResponse =
|
|
69
|
+
const specResponse = resolveIfRef(spec, matchingSpecResponse);
|
|
73
70
|
// When there's no content, we set the type to 'void'
|
|
74
71
|
if (!specResponse.content) {
|
|
75
72
|
response.type = 'void';
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
73
|
+
} else {
|
|
78
74
|
// Add the response media types
|
|
79
75
|
const mediaTypes = Object.keys(specResponse.content);
|
|
80
76
|
response.mediaTypes = mediaTypes;
|
|
81
|
-
for (const mediaType of mediaTypes)
|
|
82
|
-
const responseContent = specResponse.content?.[mediaType] ??
|
|
83
|
-
|
|
84
|
-
const responseSchema = (0, refs_1.resolveIfRef)(spec, responseContent.schema);
|
|
77
|
+
for (const mediaType of mediaTypes){
|
|
78
|
+
const responseContent = specResponse.content?.[mediaType] ?? Object.values(specResponse.content)[0];
|
|
79
|
+
const responseSchema = resolveIfRef(spec, responseContent.schema);
|
|
85
80
|
if (responseSchema) {
|
|
86
81
|
await mutateWithOpenapiSchemaProperties(spec, response, responseSchema, modelsByName);
|
|
87
82
|
}
|
|
88
|
-
if (
|
|
89
|
-
'itemSchema' in responseContent) {
|
|
83
|
+
if (STREAMING_CONTENT_TYPES.has(mediaType) && 'itemSchema' in responseContent) {
|
|
90
84
|
response.isJsonlStreaming = true;
|
|
91
|
-
response.itemSchemaModel =
|
|
92
|
-
await buildOrReferenceModel(spec, modelsByName, responseContent.itemSchema);
|
|
85
|
+
response.itemSchemaModel = await buildOrReferenceModel(spec, modelsByName, responseContent.itemSchema);
|
|
93
86
|
}
|
|
94
87
|
}
|
|
95
88
|
}
|
|
96
89
|
}
|
|
97
90
|
}
|
|
98
91
|
}
|
|
99
|
-
const specParametersByName = Object.fromEntries((specOp?.parameters ?? []).map((p)
|
|
100
|
-
const param =
|
|
101
|
-
return [
|
|
92
|
+
const specParametersByName = Object.fromEntries((specOp?.parameters ?? []).map((p)=>{
|
|
93
|
+
const param = resolveIfRef(spec, p);
|
|
94
|
+
return [
|
|
95
|
+
param.name,
|
|
96
|
+
param
|
|
97
|
+
];
|
|
102
98
|
}));
|
|
103
99
|
// Loop through the parameters
|
|
104
|
-
for (const parameter of op.parameters)
|
|
100
|
+
for (const parameter of op.parameters){
|
|
105
101
|
// Add the request model import
|
|
106
102
|
if (parameter.export === 'reference') {
|
|
107
103
|
requestModelImports.push(parameter.type);
|
|
108
104
|
}
|
|
109
105
|
const specParameter = specParametersByName[parameter.prop];
|
|
110
|
-
const specParameterSchema =
|
|
106
|
+
const specParameterSchema = resolveIfRef(spec, specParameter?.schema);
|
|
111
107
|
if (specParameterSchema) {
|
|
112
108
|
await mutateWithOpenapiSchemaProperties(spec, parameter, specParameterSchema, modelsByName);
|
|
113
109
|
}
|
|
@@ -122,10 +118,10 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
122
118
|
parameter.in = 'body';
|
|
123
119
|
// The request body is not in the "parameters" section of the openapi spec so we won't have added the schema
|
|
124
120
|
// properties above. Find it here.
|
|
125
|
-
const specBody =
|
|
121
|
+
const specBody = resolveIfRef(spec, specOp?.requestBody);
|
|
126
122
|
if (specBody) {
|
|
127
123
|
if (parameter.mediaType) {
|
|
128
|
-
const bodySchema =
|
|
124
|
+
const bodySchema = resolveIfRef(spec, specBody.content?.[parameter.mediaType]?.schema);
|
|
129
125
|
if (bodySchema) {
|
|
130
126
|
await mutateWithOpenapiSchemaProperties(spec, parameter, bodySchema, modelsByName);
|
|
131
127
|
}
|
|
@@ -133,25 +129,22 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
133
129
|
// Track all the media types that can be accepted in the request body
|
|
134
130
|
parameter.mediaTypes = Object.keys(specBody.content);
|
|
135
131
|
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
|
|
132
|
+
} else if ([
|
|
133
|
+
'query',
|
|
134
|
+
'header'
|
|
135
|
+
].includes(parameter.in) && specParameter) {
|
|
139
136
|
// Translate style/explode to OpenAPI v2 style collectionFormat
|
|
140
137
|
// https://spec.openapis.org/oas/v3.0.3.html#style-values
|
|
141
|
-
const style = specParameter.style ??
|
|
142
|
-
(parameter.in === 'query' ? 'form' : 'simple');
|
|
138
|
+
const style = specParameter.style ?? (parameter.in === 'query' ? 'form' : 'simple');
|
|
143
139
|
const explode = specParameter.explode ?? style === 'form';
|
|
144
140
|
if (parameter.in === 'query') {
|
|
145
|
-
parameter.collectionFormat = explode
|
|
146
|
-
|
|
147
|
-
:
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
}[style] ?? 'multi');
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
141
|
+
parameter.collectionFormat = explode ? 'multi' : ({
|
|
142
|
+
spaceDelimited: 'ssv',
|
|
143
|
+
pipeDelimited: 'tsv',
|
|
144
|
+
simple: 'csv',
|
|
145
|
+
form: 'csv'
|
|
146
|
+
})[style] ?? 'multi';
|
|
147
|
+
} else {
|
|
155
148
|
// parameter.in === "header"
|
|
156
149
|
parameter.collectionFormat = explode ? 'multi' : 'csv';
|
|
157
150
|
}
|
|
@@ -161,26 +154,22 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
161
154
|
// Add language types to response models
|
|
162
155
|
(op.responses ?? []).forEach(mutateModelWithAdditionalTypes);
|
|
163
156
|
// Sort responses by code
|
|
164
|
-
op.responses = (
|
|
157
|
+
op.responses = orderBy(op.responses, (r)=>r.code);
|
|
165
158
|
// Result is the lowest successful response, otherwise is the 2XX or default response
|
|
166
|
-
const result = op.responses.find((r)
|
|
167
|
-
op.result =
|
|
168
|
-
result ??
|
|
169
|
-
op.responses.find((r) => r.code === '2XX' || r.code === 'default');
|
|
159
|
+
const result = op.responses.find((r)=>typeof r.code === 'number' && r.code >= 200 && r.code < 300);
|
|
160
|
+
op.result = result ?? op.responses.find((r)=>r.code === '2XX' || r.code === 'default');
|
|
170
161
|
// Add variants of operation name
|
|
171
|
-
op.operationIdPascalCase =
|
|
172
|
-
op.operationIdKebabCase =
|
|
173
|
-
op.operationIdSnakeCase =
|
|
162
|
+
op.operationIdPascalCase = pascalCase(op.uniqueName);
|
|
163
|
+
op.operationIdKebabCase = kebabCase(op.uniqueName);
|
|
164
|
+
op.operationIdSnakeCase = toPythonName('operation', op.uniqueName);
|
|
174
165
|
// Add request type name (after operationIdPascalCase is set)
|
|
175
166
|
if (op.parameters && op.parameters.length > 0) {
|
|
176
167
|
const baseRequestTypeName = `${op.operationIdPascalCase}Request`;
|
|
177
168
|
const hasConflict = !!spec.components?.schemas?.[baseRequestTypeName];
|
|
178
169
|
if (hasConflict) {
|
|
179
170
|
// Use OperationRequest suffix when there's a conflict
|
|
180
|
-
op.requestTypeName =
|
|
181
|
-
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
171
|
+
op.requestTypeName = `${op.operationIdPascalCase}OperationRequest`;
|
|
172
|
+
} else {
|
|
184
173
|
// Use standard Request suffix when no conflict
|
|
185
174
|
op.requestTypeName = baseRequestTypeName;
|
|
186
175
|
}
|
|
@@ -188,27 +177,29 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
188
177
|
mutateOperationWithAdditionalData(op);
|
|
189
178
|
}
|
|
190
179
|
// Lexicographical ordering of operations
|
|
191
|
-
service.operations = (
|
|
180
|
+
service.operations = orderBy(service.operations, (op)=>op.uniqueName);
|
|
192
181
|
// Add the models to import
|
|
193
|
-
service.modelImports = (
|
|
182
|
+
service.modelImports = orderBy(uniqBy([
|
|
183
|
+
...service.imports,
|
|
184
|
+
...requestModelImports,
|
|
185
|
+
...responseModelImports
|
|
186
|
+
], (x)=>x));
|
|
194
187
|
// Add the service class name
|
|
195
188
|
service.className = `${service.name}Api`;
|
|
196
|
-
service.classNameSnakeCase =
|
|
197
|
-
service.nameSnakeCase =
|
|
189
|
+
service.classNameSnakeCase = snakeCase(service.className);
|
|
190
|
+
service.nameSnakeCase = snakeCase(service.name);
|
|
198
191
|
}
|
|
199
192
|
// All operations across all services
|
|
200
|
-
const allOperations = (
|
|
193
|
+
const allOperations = uniqBy(data.services.flatMap((s)=>s.operations), (o)=>o.uniqueName);
|
|
201
194
|
// Add additional models for operation parameters
|
|
202
195
|
data.models = [
|
|
203
196
|
...data.models,
|
|
204
|
-
...allOperations.flatMap((op)
|
|
197
|
+
...allOperations.flatMap((op)=>{
|
|
205
198
|
if (op.parameters && op.parameters.length > 0) {
|
|
206
199
|
// 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
200
|
const parametersByPosition = {};
|
|
208
|
-
op.parameters
|
|
209
|
-
|
|
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) => {
|
|
201
|
+
op.parameters.filter(// 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
|
|
202
|
+
(p)=>{
|
|
212
203
|
// Always create models for non-body parameters
|
|
213
204
|
if (p.in !== 'body') {
|
|
214
205
|
return true;
|
|
@@ -219,19 +210,16 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
219
210
|
}
|
|
220
211
|
// We inline object bodies, so long as they aren't dictionaries (as dictionary keys could clash with other parameters),
|
|
221
212
|
// 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)
|
|
223
|
-
if (p.export === 'reference' &&
|
|
224
|
-
modelsByName?.[p.type]?.export !== 'dictionary' &&
|
|
225
|
-
!hasClashingPropertyName) {
|
|
213
|
+
const hasClashingPropertyName = (modelsByName?.[p.type]?.properties ?? []).some((prop)=>op.parameters.some((param)=>param.name === prop.name));
|
|
214
|
+
if (p.export === 'reference' && modelsByName?.[p.type]?.export !== 'dictionary' && !hasClashingPropertyName) {
|
|
226
215
|
return false;
|
|
227
216
|
}
|
|
228
217
|
// Don't inline anything else
|
|
229
218
|
return true;
|
|
230
|
-
})
|
|
231
|
-
.forEach((parameter) => {
|
|
219
|
+
}).forEach((parameter)=>{
|
|
232
220
|
parametersByPosition[parameter.in] = [
|
|
233
|
-
...
|
|
234
|
-
parameter
|
|
221
|
+
...parametersByPosition[parameter.in] ?? [],
|
|
222
|
+
parameter
|
|
235
223
|
];
|
|
236
224
|
});
|
|
237
225
|
// Ensure that if we have an explicit body parameter, it's called "body"
|
|
@@ -241,8 +229,8 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
241
229
|
requestBodyParameter.prop = 'body';
|
|
242
230
|
}
|
|
243
231
|
op.explicitRequestBodyParameter = requestBodyParameter;
|
|
244
|
-
return Object.entries(parametersByPosition).map(([position, parameters])
|
|
245
|
-
const name = `${op.operationIdPascalCase}Request${
|
|
232
|
+
return Object.entries(parametersByPosition).map(([position, parameters])=>{
|
|
233
|
+
const name = `${op.operationIdPascalCase}Request${upperFirst(position)}Parameters`;
|
|
246
234
|
return {
|
|
247
235
|
$refs: [],
|
|
248
236
|
base: name,
|
|
@@ -260,66 +248,66 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
260
248
|
isDefinition: false,
|
|
261
249
|
isNullable: false,
|
|
262
250
|
isReadOnly: false,
|
|
263
|
-
isRequired: true
|
|
251
|
+
isRequired: true
|
|
264
252
|
};
|
|
265
253
|
});
|
|
266
254
|
}
|
|
267
255
|
return [];
|
|
268
|
-
})
|
|
256
|
+
})
|
|
269
257
|
];
|
|
270
258
|
// Augment models with additional data
|
|
271
|
-
for (const model of data.models)
|
|
259
|
+
for (const model of data.models){
|
|
272
260
|
// Add a snake_case name
|
|
273
|
-
model.nameSnakeCase =
|
|
261
|
+
model.nameSnakeCase = toPythonName('model', model.name);
|
|
274
262
|
const matchingSpecModel = spec?.components?.schemas?.[model.name];
|
|
275
263
|
if (matchingSpecModel) {
|
|
276
|
-
const specModel =
|
|
264
|
+
const specModel = resolveIfRef(spec, matchingSpecModel);
|
|
277
265
|
await mutateWithOpenapiSchemaProperties(spec, model, specModel, modelsByName);
|
|
278
266
|
// Add unique imports
|
|
279
|
-
model.uniqueImports = (
|
|
267
|
+
model.uniqueImports = orderBy(uniqBy([
|
|
280
268
|
...model.imports,
|
|
281
269
|
// Include property imports, if any
|
|
282
|
-
...model.properties
|
|
283
|
-
|
|
284
|
-
.map((p) => p.type),
|
|
285
|
-
], (x) => x)).filter((modelImport) => modelImport !== model.name); // Filter out self for recursive model references
|
|
270
|
+
...model.properties.filter((p)=>p.export === 'reference').map((p)=>p.type)
|
|
271
|
+
], (x)=>x)).filter((modelImport)=>modelImport !== model.name); // Filter out self for recursive model references
|
|
286
272
|
// Add deprecated flag if present
|
|
287
273
|
model.deprecated = specModel.deprecated || false;
|
|
288
274
|
// Augment properties with additional data
|
|
289
|
-
for (const property of model.properties)
|
|
275
|
+
for (const property of model.properties){
|
|
290
276
|
const matchingSpecProperty = specModel.properties?.[property.name];
|
|
291
277
|
if (matchingSpecProperty) {
|
|
292
|
-
const specProperty =
|
|
278
|
+
const specProperty = resolveIfRef(spec, matchingSpecProperty);
|
|
293
279
|
await mutateWithOpenapiSchemaProperties(spec, property, specProperty, modelsByName);
|
|
294
280
|
}
|
|
295
281
|
}
|
|
296
282
|
}
|
|
297
283
|
// Augment properties with additional data
|
|
298
|
-
model.properties.forEach((property)
|
|
284
|
+
model.properties.forEach((property)=>{
|
|
299
285
|
// Add language-specific names/types
|
|
300
286
|
mutateModelWithAdditionalTypes(property);
|
|
301
287
|
});
|
|
302
288
|
}
|
|
303
|
-
for (const model of data.models)
|
|
289
|
+
for (const model of data.models){
|
|
304
290
|
// Set the model's typescript name and type
|
|
305
|
-
model.typescriptName =
|
|
291
|
+
model.typescriptName = toTypeScriptModelName(model.name);
|
|
306
292
|
model.typescriptType = model.typescriptName;
|
|
307
293
|
}
|
|
308
294
|
// Order models lexicographically by name
|
|
309
|
-
data.models = (
|
|
295
|
+
data.models = orderBy(data.models, (d)=>d.name);
|
|
310
296
|
// Order services so default appears first, then otherwise by name
|
|
311
|
-
data.services = (
|
|
297
|
+
data.services = orderBy(data.services, (s)=>s.name === 'Default' ? '' : s.name);
|
|
312
298
|
// All operations by tags
|
|
313
299
|
const operationsByTag = {};
|
|
314
300
|
const untaggedOperations = [];
|
|
315
|
-
allOperations.forEach((op)
|
|
301
|
+
allOperations.forEach((op)=>{
|
|
316
302
|
const tags = op.tags;
|
|
317
303
|
if (tags && tags.length > 0) {
|
|
318
|
-
tags.map(
|
|
319
|
-
operationsByTag[tag] = [
|
|
304
|
+
tags.map(camelCase).forEach((tag)=>{
|
|
305
|
+
operationsByTag[tag] = [
|
|
306
|
+
...operationsByTag[tag] ?? [],
|
|
307
|
+
op
|
|
308
|
+
];
|
|
320
309
|
});
|
|
321
|
-
}
|
|
322
|
-
else {
|
|
310
|
+
} else {
|
|
323
311
|
untaggedOperations.push(op);
|
|
324
312
|
}
|
|
325
313
|
});
|
|
@@ -333,31 +321,34 @@ const buildOpenApiCodeGenData = async (inSpec) => {
|
|
|
333
321
|
info: spec.info,
|
|
334
322
|
allOperations,
|
|
335
323
|
vendorExtensions,
|
|
336
|
-
className:
|
|
324
|
+
className: toClassName(spec.info.title)
|
|
337
325
|
};
|
|
338
326
|
};
|
|
339
|
-
|
|
340
|
-
const buildInitialCodeGenData = async (spec) => {
|
|
327
|
+
const buildInitialCodeGenData = async (spec)=>{
|
|
341
328
|
let data;
|
|
342
329
|
// We create a plugin which will capture the client data
|
|
343
|
-
const plugin = ()
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
330
|
+
const plugin = ()=>({
|
|
331
|
+
name: 'plugin',
|
|
332
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
333
|
+
_handler: ()=>{},
|
|
334
|
+
_handlerLegacy: ({ client })=>{
|
|
335
|
+
data = client;
|
|
336
|
+
}
|
|
337
|
+
});
|
|
351
338
|
// Use @hey-api/openapi-ts to build the initial data structure that we'll generate clients from
|
|
352
339
|
await gen.createClient({
|
|
353
340
|
experimentalParser: false,
|
|
354
341
|
input: {
|
|
355
|
-
path: spec
|
|
342
|
+
path: spec
|
|
356
343
|
},
|
|
357
344
|
output: 'unused',
|
|
358
|
-
plugins: [
|
|
345
|
+
plugins: [
|
|
346
|
+
plugin()
|
|
347
|
+
],
|
|
359
348
|
dryRun: true,
|
|
360
|
-
logs: {
|
|
349
|
+
logs: {
|
|
350
|
+
level: 'silent'
|
|
351
|
+
}
|
|
361
352
|
});
|
|
362
353
|
if (!data) {
|
|
363
354
|
// If this happens it indicates an update to @hey-api/openapi-ts which has removed the legacy parser
|
|
@@ -369,32 +360,37 @@ const buildInitialCodeGenData = async (spec) => {
|
|
|
369
360
|
* Build a model for a particular primitive schema.
|
|
370
361
|
* Only primitives are supported since we only return one model.
|
|
371
362
|
* For non-primitives, it assumes all referenced subschemas are already models
|
|
372
|
-
*/
|
|
373
|
-
const buildModelForPrimitive = async (originalSpec, schema) => {
|
|
363
|
+
*/ const buildModelForPrimitive = async (originalSpec, schema)=>{
|
|
374
364
|
const targetSchemaName = '___aws_nx_plugin_openapi_tmp_schema___';
|
|
375
365
|
const spec = {
|
|
376
366
|
openapi: '3.1.0',
|
|
377
|
-
info: {
|
|
367
|
+
info: {
|
|
368
|
+
title: 'tmp',
|
|
369
|
+
version: '1.0.0'
|
|
370
|
+
},
|
|
378
371
|
paths: {},
|
|
379
372
|
components: {
|
|
380
373
|
schemas: {
|
|
381
374
|
...originalSpec.components?.schemas,
|
|
382
|
-
[targetSchemaName]: schema
|
|
383
|
-
}
|
|
384
|
-
}
|
|
375
|
+
[targetSchemaName]: schema
|
|
376
|
+
}
|
|
377
|
+
}
|
|
385
378
|
};
|
|
386
379
|
const data = await buildInitialCodeGenData(spec);
|
|
387
|
-
const model = data.models.find((m)
|
|
380
|
+
const model = data.models.find((m)=>m.name === targetSchemaName);
|
|
388
381
|
if (!model) {
|
|
389
382
|
throw new Error(`Failed to construct model for schema ${JSON.stringify(schema)}`);
|
|
390
383
|
}
|
|
391
384
|
ensureModelLinks(spec, data);
|
|
392
|
-
await mutateWithOpenapiSchemaProperties(spec, model, schema, Object.fromEntries(data.models.map((m)
|
|
385
|
+
await mutateWithOpenapiSchemaProperties(spec, model, schema, Object.fromEntries(data.models.map((m)=>[
|
|
386
|
+
m.name,
|
|
387
|
+
m
|
|
388
|
+
])));
|
|
393
389
|
return model;
|
|
394
390
|
};
|
|
395
|
-
const buildOrReferenceModel = async (spec, modelsByName, schema)
|
|
396
|
-
if (
|
|
397
|
-
const name =
|
|
391
|
+
const buildOrReferenceModel = async (spec, modelsByName, schema)=>{
|
|
392
|
+
if (isRef(schema)) {
|
|
393
|
+
const name = splitRef(schema.$ref)[2];
|
|
398
394
|
return modelsByName[name];
|
|
399
395
|
}
|
|
400
396
|
// Non referenced schemas won't have a model created as they are primitives and aren't covered by @heyapi
|
|
@@ -403,15 +399,14 @@ const buildOrReferenceModel = async (spec, modelsByName, schema) => {
|
|
|
403
399
|
};
|
|
404
400
|
/**
|
|
405
401
|
* Copy vendor extensions from the first parameter to the second
|
|
406
|
-
*/
|
|
407
|
-
|
|
408
|
-
Object.entries(object ?? {}).forEach(([key, value]) => {
|
|
402
|
+
*/ const copyVendorExtensions = (object, vendorExtensions)=>{
|
|
403
|
+
Object.entries(object ?? {}).forEach(([key, value])=>{
|
|
409
404
|
if (key.startsWith('x-')) {
|
|
410
405
|
vendorExtensions[key] = value;
|
|
411
406
|
}
|
|
412
407
|
});
|
|
413
408
|
};
|
|
414
|
-
const mutateWithOpenapiSchemaProperties = async (spec, model, schema, modelsByName, visited = new Set())
|
|
409
|
+
const mutateWithOpenapiSchemaProperties = async (spec, model, schema, modelsByName, visited = new Set())=>{
|
|
415
410
|
model.format = schema.format;
|
|
416
411
|
model.isInteger = schema.type === 'integer';
|
|
417
412
|
model.isShort = schema.format === 'int32';
|
|
@@ -433,7 +428,7 @@ const mutateWithOpenapiSchemaProperties = async (spec, model, schema, modelsByNa
|
|
|
433
428
|
// additional properties. Interfaces can have a mixture of explicit properties and additional properties.
|
|
434
429
|
if (model.export === 'dictionary') {
|
|
435
430
|
// Dictionaries contain a special property which is the model itself. Other properties are explicit properties.
|
|
436
|
-
const explicitProperties = model.properties.filter((p)
|
|
431
|
+
const explicitProperties = model.properties.filter((p)=>!(p.export === 'dictionary' && p.name === model.name));
|
|
437
432
|
if (explicitProperties.length > 0 || schema.patternProperties) {
|
|
438
433
|
// Treat this model as an interface instead of a dictionary, since this has
|
|
439
434
|
// explicit properties
|
|
@@ -442,30 +437,29 @@ const mutateWithOpenapiSchemaProperties = async (spec, model, schema, modelsByNa
|
|
|
442
437
|
model.additionalPropertiesModel = additionalPropertiesModel;
|
|
443
438
|
model.properties = explicitProperties;
|
|
444
439
|
}
|
|
445
|
-
}
|
|
446
|
-
else {
|
|
440
|
+
} else {
|
|
447
441
|
model.hasAdditionalProperties = true;
|
|
448
442
|
model.additionalPropertiesModel = additionalPropertiesModel;
|
|
449
443
|
// There's a special property named [key: string] which is the definition of the additional properties
|
|
450
444
|
// We remove this so we don't render it as a regular property.
|
|
451
|
-
model.properties = (model.properties ?? []).filter((p)
|
|
445
|
+
model.properties = (model.properties ?? []).filter((p)=>p.name !== '[key: string]');
|
|
452
446
|
}
|
|
453
447
|
}
|
|
454
448
|
// Ensure models with pattern properties are handled correctly
|
|
455
449
|
if (schema.patternProperties) {
|
|
456
|
-
const patternProperties =
|
|
450
|
+
const patternProperties = resolveIfRef(spec, schema.patternProperties);
|
|
457
451
|
const patternPropertiesModels = [];
|
|
458
452
|
// 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
453
|
// depending on what pattern the key matches
|
|
460
454
|
if (model.export === 'dictionary') {
|
|
461
455
|
model.export = 'interface';
|
|
462
456
|
}
|
|
463
|
-
for (const [pattern, patternProperty] of Object.entries(patternProperties))
|
|
457
|
+
for (const [pattern, patternProperty] of Object.entries(patternProperties)){
|
|
464
458
|
const patternPropertyModel = await buildOrReferenceModel(spec, modelsByName, patternProperty);
|
|
465
459
|
if (patternPropertyModel) {
|
|
466
460
|
patternPropertiesModels.push({
|
|
467
461
|
pattern,
|
|
468
|
-
model: patternPropertyModel
|
|
462
|
+
model: patternPropertyModel
|
|
469
463
|
});
|
|
470
464
|
}
|
|
471
465
|
}
|
|
@@ -474,35 +468,27 @@ const mutateWithOpenapiSchemaProperties = async (spec, model, schema, modelsByNa
|
|
|
474
468
|
}
|
|
475
469
|
mutateModelWithAdditionalTypes(model);
|
|
476
470
|
visited.add(model);
|
|
477
|
-
const modelLink =
|
|
471
|
+
const modelLink = flattenModelLink(model.link);
|
|
478
472
|
// Also apply to array items recursively
|
|
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);
|
|
473
|
+
if (model.export === 'array' && modelLink && 'items' in schema && schema.items && !visited.has(modelLink)) {
|
|
474
|
+
const subSchema = resolveIfRef(spec, schema.items);
|
|
485
475
|
await mutateWithOpenapiSchemaProperties(spec, modelLink, subSchema, modelsByName, visited);
|
|
486
476
|
}
|
|
487
477
|
// Also apply to object properties recursively
|
|
488
|
-
if (model.export === 'dictionary' &&
|
|
489
|
-
|
|
490
|
-
'additionalProperties' in schema &&
|
|
491
|
-
schema.additionalProperties &&
|
|
492
|
-
!visited.has(modelLink)) {
|
|
493
|
-
const subSchema = (0, refs_1.resolveIfRef)(spec, schema.additionalProperties);
|
|
478
|
+
if (model.export === 'dictionary' && model.link && 'additionalProperties' in schema && schema.additionalProperties && !visited.has(modelLink)) {
|
|
479
|
+
const subSchema = resolveIfRef(spec, schema.additionalProperties);
|
|
494
480
|
// Additional properties can be "true" rather than a type
|
|
495
481
|
if (subSchema !== true) {
|
|
496
482
|
await mutateWithOpenapiSchemaProperties(spec, modelLink, subSchema, modelsByName, visited);
|
|
497
483
|
}
|
|
498
484
|
}
|
|
499
|
-
for (const property of model.properties.filter((p)
|
|
500
|
-
const subSchema =
|
|
485
|
+
for (const property of model.properties.filter((p)=>!visited.has(p) && schema.properties?.[trim(p.name, `"'`)])){
|
|
486
|
+
const subSchema = resolveIfRef(spec, schema.properties[trim(property.name, `"'`)]);
|
|
501
487
|
await mutateWithOpenapiSchemaProperties(spec, property, subSchema, modelsByName, visited);
|
|
502
488
|
}
|
|
503
|
-
if (
|
|
504
|
-
for
|
|
505
|
-
const subSchema =
|
|
489
|
+
if (COMPOSED_SCHEMA_TYPES.has(model.export)) {
|
|
490
|
+
for(let i = 0; i < model.properties.length; i++){
|
|
491
|
+
const subSchema = resolveIfRef(spec, schema[camelCase(model.export)]?.[i]);
|
|
506
492
|
if (subSchema) {
|
|
507
493
|
await mutateWithOpenapiSchemaProperties(spec, model.properties[i], subSchema, modelsByName, visited);
|
|
508
494
|
}
|
|
@@ -511,50 +497,53 @@ const mutateWithOpenapiSchemaProperties = async (spec, model, schema, modelsByNa
|
|
|
511
497
|
};
|
|
512
498
|
/**
|
|
513
499
|
* Ensure that the "link" property of all dictionary/array models and properties are set recursively
|
|
514
|
-
*/
|
|
515
|
-
const
|
|
516
|
-
|
|
500
|
+
*/ const ensureModelLinks = (spec, data)=>{
|
|
501
|
+
const modelsByName = Object.fromEntries(data.models.map((m)=>[
|
|
502
|
+
m.name,
|
|
503
|
+
m
|
|
504
|
+
]));
|
|
517
505
|
const visited = new Set();
|
|
518
506
|
// Ensure set for all models
|
|
519
|
-
data.models.forEach((model)
|
|
520
|
-
const schema =
|
|
507
|
+
data.models.forEach((model)=>{
|
|
508
|
+
const schema = resolveIfRef(spec, spec?.components?.schemas?.[model.name]);
|
|
521
509
|
if (schema) {
|
|
522
510
|
// Object schemas should be typed as the model we will create
|
|
523
|
-
if (schema.type === 'object' &&
|
|
524
|
-
(schema.properties || schema.patternProperties)) {
|
|
511
|
+
if (schema.type === 'object' && (schema.properties || schema.patternProperties)) {
|
|
525
512
|
model.type = model.name;
|
|
526
513
|
}
|
|
527
514
|
_ensureModelLinks(spec, modelsByName, model, schema, visited);
|
|
528
515
|
}
|
|
529
516
|
});
|
|
530
517
|
// Ensure set for all parameters and responses
|
|
531
|
-
data.services.forEach((service)
|
|
532
|
-
service.operations.forEach((op)
|
|
518
|
+
data.services.forEach((service)=>{
|
|
519
|
+
service.operations.forEach((op)=>{
|
|
533
520
|
const specOp = spec?.paths?.[op.path]?.[op.method.toLowerCase()];
|
|
534
|
-
const specParametersByName = Object.fromEntries((specOp?.parameters ?? []).map((p)
|
|
535
|
-
const param =
|
|
536
|
-
return [
|
|
521
|
+
const specParametersByName = Object.fromEntries((specOp?.parameters ?? []).map((p)=>{
|
|
522
|
+
const param = resolveIfRef(spec, p);
|
|
523
|
+
return [
|
|
524
|
+
param.name,
|
|
525
|
+
param
|
|
526
|
+
];
|
|
537
527
|
}));
|
|
538
|
-
op.parameters.forEach((parameter)
|
|
528
|
+
op.parameters.forEach((parameter)=>{
|
|
539
529
|
const specParameter = specParametersByName[parameter.prop];
|
|
540
|
-
const specParameterSchema =
|
|
530
|
+
const specParameterSchema = resolveIfRef(spec, specParameter?.schema);
|
|
541
531
|
if (specParameterSchema) {
|
|
542
532
|
_ensureModelLinks(spec, modelsByName, parameter, specParameterSchema, visited);
|
|
543
|
-
}
|
|
544
|
-
else if (parameter.in === 'body') {
|
|
533
|
+
} else if (parameter.in === 'body') {
|
|
545
534
|
// Body is not in the "parameters" section of the OpenAPI spec so we handle it in an explicit case here
|
|
546
|
-
const specBody =
|
|
547
|
-
const specBodySchema =
|
|
535
|
+
const specBody = resolveIfRef(spec, specOp?.requestBody);
|
|
536
|
+
const specBodySchema = resolveIfRef(spec, specBody?.content?.[parameter.mediaType]?.schema);
|
|
548
537
|
if (specBodySchema) {
|
|
549
538
|
_ensureModelLinks(spec, modelsByName, parameter, specBodySchema, visited);
|
|
550
539
|
}
|
|
551
540
|
}
|
|
552
541
|
});
|
|
553
|
-
op.responses.forEach((response)
|
|
554
|
-
const specResponse =
|
|
542
|
+
op.responses.forEach((response)=>{
|
|
543
|
+
const specResponse = resolveIfRef(spec, specOp?.responses?.[response.code]);
|
|
555
544
|
const mediaTypes = Object.keys(specResponse?.content ?? {});
|
|
556
|
-
mediaTypes.forEach((mediaType)
|
|
557
|
-
const responseSchema =
|
|
545
|
+
mediaTypes.forEach((mediaType)=>{
|
|
546
|
+
const responseSchema = resolveIfRef(spec, specResponse?.content?.[mediaType]?.schema);
|
|
558
547
|
if (responseSchema) {
|
|
559
548
|
_ensureModelLinks(spec, modelsByName, response, responseSchema, visited);
|
|
560
549
|
}
|
|
@@ -563,44 +552,37 @@ const ensureModelLinks = (spec, data) => {
|
|
|
563
552
|
});
|
|
564
553
|
});
|
|
565
554
|
};
|
|
566
|
-
const _ensureModelLinks = (spec, modelsByName, model, schema, visited)
|
|
555
|
+
const _ensureModelLinks = (spec, modelsByName, model, schema, visited)=>{
|
|
567
556
|
if (visited.has(model)) {
|
|
568
557
|
return;
|
|
569
558
|
}
|
|
570
559
|
visited.add(model);
|
|
571
|
-
if (model.export === 'dictionary' &&
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
if ((0, refs_1.isRef)(schema.additionalProperties)) {
|
|
575
|
-
const name = (0, refs_1.splitRef)(schema.additionalProperties.$ref)[2];
|
|
560
|
+
if (model.export === 'dictionary' && 'additionalProperties' in schema && schema.additionalProperties) {
|
|
561
|
+
if (isRef(schema.additionalProperties)) {
|
|
562
|
+
const name = splitRef(schema.additionalProperties.$ref)[2];
|
|
576
563
|
if (modelsByName[name] && !model.link) {
|
|
577
564
|
model.link = modelsByName[name];
|
|
578
565
|
}
|
|
566
|
+
} else if (model.link && typeof schema.additionalProperties !== 'boolean') {
|
|
567
|
+
_ensureModelLinks(spec, modelsByName, flattenModelLink(model.link), schema.additionalProperties, visited);
|
|
579
568
|
}
|
|
580
|
-
|
|
581
|
-
|
|
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];
|
|
569
|
+
} else if (model.export === 'array' && 'items' in schema && schema.items) {
|
|
570
|
+
if (isRef(schema.items)) {
|
|
571
|
+
const name = splitRef(schema.items.$ref)[2];
|
|
587
572
|
if (modelsByName[name] && !model.link) {
|
|
588
573
|
model.link = modelsByName[name];
|
|
589
574
|
}
|
|
590
|
-
}
|
|
591
|
-
|
|
592
|
-
_ensureModelLinks(spec, modelsByName, (0, types_1.flattenModelLink)(model.link), schema.items, visited);
|
|
575
|
+
} else if (model.link) {
|
|
576
|
+
_ensureModelLinks(spec, modelsByName, flattenModelLink(model.link), schema.items, visited);
|
|
593
577
|
}
|
|
594
578
|
}
|
|
595
|
-
model.properties
|
|
596
|
-
|
|
597
|
-
.forEach((property) => {
|
|
598
|
-
const subSchema = (0, refs_1.resolveIfRef)(spec, schema.properties[(0, lodash_trim_1.default)(property.name, `"'`)]);
|
|
579
|
+
model.properties.filter((p)=>!visited.has(p) && schema.properties?.[trim(p.name, `"'`)]).forEach((property)=>{
|
|
580
|
+
const subSchema = resolveIfRef(spec, schema.properties[trim(property.name, `"'`)]);
|
|
599
581
|
_ensureModelLinks(spec, modelsByName, property, subSchema, visited);
|
|
600
582
|
});
|
|
601
|
-
if (
|
|
602
|
-
model.properties.forEach((property, i)
|
|
603
|
-
const subSchema =
|
|
583
|
+
if (COMPOSED_SCHEMA_TYPES.has(model.export)) {
|
|
584
|
+
model.properties.forEach((property, i)=>{
|
|
585
|
+
const subSchema = resolveIfRef(spec, schema[camelCase(model.export)]?.[i]);
|
|
604
586
|
if (subSchema) {
|
|
605
587
|
_ensureModelLinks(spec, modelsByName, property, subSchema, visited);
|
|
606
588
|
}
|
|
@@ -611,37 +593,47 @@ const _ensureModelLinks = (spec, modelsByName, model, schema, visited) => {
|
|
|
611
593
|
* Mutates the given data to ensure composite models (ie allOf, oneOf, anyOf) have the necessary
|
|
612
594
|
* properties for representing them in generated code. Adds `composedModels` and `composedPrimitives`
|
|
613
595
|
* which contain the models and primitive types that each model is composed of.
|
|
614
|
-
*/
|
|
615
|
-
const ensureCompositeModels = (data) => {
|
|
596
|
+
*/ const ensureCompositeModels = (data)=>{
|
|
616
597
|
const visited = new Set();
|
|
617
|
-
data.models.forEach((model)
|
|
598
|
+
data.models.forEach((model)=>mutateModelWithCompositeProperties(data, model, visited));
|
|
618
599
|
};
|
|
619
|
-
const mutateModelWithCompositeProperties = (data, model, visited)
|
|
620
|
-
if (
|
|
600
|
+
const mutateModelWithCompositeProperties = (data, model, visited)=>{
|
|
601
|
+
if (COMPOSED_SCHEMA_TYPES.has(model.export) && !visited.has(model)) {
|
|
621
602
|
visited.add(model);
|
|
622
603
|
// Find the models/primitives which this is composed from
|
|
623
|
-
const composedModelReferences = model.properties.filter((p)
|
|
624
|
-
const composedPrimitives = model.properties.filter((p)
|
|
625
|
-
const modelsByName = Object.fromEntries(data.models.map((m)
|
|
626
|
-
|
|
604
|
+
const composedModelReferences = model.properties.filter((p)=>!p.name && p.export === 'reference');
|
|
605
|
+
const composedPrimitives = model.properties.filter((p)=>!p.name && p.export !== 'reference');
|
|
606
|
+
const modelsByName = Object.fromEntries(data.models.map((m)=>[
|
|
607
|
+
m.name,
|
|
608
|
+
m
|
|
609
|
+
]));
|
|
610
|
+
let composedModels = composedModelReferences.flatMap((r)=>modelsByName[r.type] ? [
|
|
611
|
+
modelsByName[r.type]
|
|
612
|
+
] : []);
|
|
627
613
|
// Recursively resolve composed properties of properties, to ensure mixins for all-of include all recursive all-of properties
|
|
628
|
-
composedModels.forEach((m)
|
|
614
|
+
composedModels.forEach((m)=>mutateModelWithCompositeProperties(data, m, visited));
|
|
629
615
|
// Enums are models, however they are serialised as primitives and so should be moved to the primitives list
|
|
630
|
-
composedPrimitives.push(...composedModels.filter((m)
|
|
631
|
-
composedModels = composedModels.filter((m)
|
|
616
|
+
composedPrimitives.push(...composedModels.filter((m)=>m.export === 'enum'));
|
|
617
|
+
composedModels = composedModels.filter((m)=>m.export !== 'enum');
|
|
632
618
|
// When multiple arrays of non-primitives are composed using allOf/oneOf/anyOf, it's not possible to distinguish at runtime which
|
|
633
619
|
// type it is, and so we validate this away.
|
|
634
620
|
// TODO: consider honouring more advanced OpenAPI spec features like "discriminators" which can help for this case, but in practice
|
|
635
621
|
// users are unlikely to model their API this way
|
|
636
|
-
const isPrimitiveArray = (m)
|
|
637
|
-
if (m.link && [
|
|
638
|
-
|
|
622
|
+
const isPrimitiveArray = (m)=>{
|
|
623
|
+
if (m.link && [
|
|
624
|
+
'array',
|
|
625
|
+
'dictionary'
|
|
626
|
+
].includes(m.export)) {
|
|
627
|
+
return isPrimitiveArray(flattenModelLink(m.link));
|
|
639
628
|
}
|
|
640
|
-
return
|
|
629
|
+
return PRIMITIVE_TYPES.has(m.type) && ![
|
|
630
|
+
'date',
|
|
631
|
+
'date-time'
|
|
632
|
+
].includes(m.format);
|
|
641
633
|
};
|
|
642
|
-
const arrayComposedModels = composedPrimitives.filter((m)
|
|
634
|
+
const arrayComposedModels = composedPrimitives.filter((m)=>m.export === 'array' && !isPrimitiveArray(m));
|
|
643
635
|
if (arrayComposedModels.length > 1) {
|
|
644
|
-
throw new Error(`Schema "${model.name}" defines ${(
|
|
636
|
+
throw new Error(`Schema "${model.name}" defines ${camelCase(model.export)} with multiple array types which cannot be distinguished at runtime.`);
|
|
645
637
|
}
|
|
646
638
|
// For all-of models, we include all composed model properties.
|
|
647
639
|
if (model.export === 'all-of') {
|
|
@@ -655,41 +647,39 @@ const mutateModelWithCompositeProperties = (data, model, visited) => {
|
|
|
655
647
|
};
|
|
656
648
|
/**
|
|
657
649
|
* Mutates the given model to add language specific types and names
|
|
658
|
-
*/
|
|
659
|
-
const mutateModelWithAdditionalTypes = (model) => {
|
|
650
|
+
*/ const mutateModelWithAdditionalTypes = (model)=>{
|
|
660
651
|
// Trim any surrounding quotes from name
|
|
661
|
-
model.name = (
|
|
662
|
-
model.typescriptName =
|
|
663
|
-
model.typescriptType =
|
|
664
|
-
model.pythonName =
|
|
665
|
-
model.pythonType =
|
|
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);
|
|
652
|
+
model.name = trim(model.name, `"'`);
|
|
653
|
+
model.typescriptName = toTypeScriptName(model.name);
|
|
654
|
+
model.typescriptType = toTypeScriptType(model);
|
|
655
|
+
model.pythonName = toPythonName('property', model.name);
|
|
656
|
+
model.pythonType = toPythonType(model);
|
|
657
|
+
model.isPrimitive = PRIMITIVE_TYPES.has(model.type) && !COMPOSED_SCHEMA_TYPES.has(model.export) && !COLLECTION_TYPES.has(model.export);
|
|
670
658
|
};
|
|
671
659
|
/**
|
|
672
660
|
* Determine whether or not an operation is a mutation
|
|
673
|
-
*/
|
|
674
|
-
const isOperationMutation = (op) => {
|
|
661
|
+
*/ const isOperationMutation = (op)=>{
|
|
675
662
|
// Let the user override whether an operation is a query or mutation using x-mutation/x-query
|
|
676
663
|
const { vendorExtensions } = op;
|
|
677
|
-
if (vendorExtensions?.[
|
|
664
|
+
if (vendorExtensions?.[VENDOR_EXTENSIONS.MUTATION]) {
|
|
678
665
|
return true;
|
|
679
|
-
}
|
|
680
|
-
else if (vendorExtensions?.[types_1.VENDOR_EXTENSIONS.QUERY]) {
|
|
666
|
+
} else if (vendorExtensions?.[VENDOR_EXTENSIONS.QUERY]) {
|
|
681
667
|
return false;
|
|
682
668
|
}
|
|
683
669
|
// Assume a restful API and treat mutative HTTP methods as mutations
|
|
684
|
-
return [
|
|
670
|
+
return [
|
|
671
|
+
'PATCH',
|
|
672
|
+
'POST',
|
|
673
|
+
'PUT',
|
|
674
|
+
'DELETE'
|
|
675
|
+
].includes(op.method);
|
|
685
676
|
};
|
|
686
677
|
/**
|
|
687
678
|
* Add infinite query details to the operation
|
|
688
|
-
*/
|
|
689
|
-
const mutateOperationWithInfiniteQueryDetails = (op) => {
|
|
679
|
+
*/ const mutateOperationWithInfiniteQueryDetails = (op)=>{
|
|
690
680
|
const { paginationDisabled, cursorPropertyName } = getCursorOptions(op);
|
|
691
681
|
// Allow users to customise the "cursor" property used for paginated requests
|
|
692
|
-
const cursorProperty = op.parameters.find((p)
|
|
682
|
+
const cursorProperty = op.parameters.find((p)=>p.name === cursorPropertyName);
|
|
693
683
|
// The operation is an infinite query if:
|
|
694
684
|
// - x-cursor is not set to 'false' (this allows users to disable infinite queries for operations that accept a 'cursor')
|
|
695
685
|
// - the operation accepts a parameter named 'cursor', or a parameter named as the user specified with x-cursor
|
|
@@ -710,49 +700,42 @@ const mutateOperationWithInfiniteQueryDetails = (op) => {
|
|
|
710
700
|
*
|
|
711
701
|
* x-cursor: { inputToken: 'property' }
|
|
712
702
|
* x-cursor: { enabled: false }
|
|
713
|
-
*/
|
|
714
|
-
const getCursorOptions = (op) => {
|
|
703
|
+
*/ const getCursorOptions = (op)=>{
|
|
715
704
|
const { vendorExtensions } = op;
|
|
716
|
-
const cursorExtension = vendorExtensions?.[
|
|
705
|
+
const cursorExtension = vendorExtensions?.[VENDOR_EXTENSIONS.CURSOR];
|
|
717
706
|
// By default pagination isn't explicitly disabled and the cursor property to look for is 'cursor'
|
|
718
707
|
let paginationDisabled = false;
|
|
719
708
|
let cursorPropertyName = 'cursor';
|
|
720
709
|
if (typeof cursorExtension === 'boolean' && cursorExtension === false) {
|
|
721
710
|
paginationDisabled = true;
|
|
722
|
-
}
|
|
723
|
-
else if (typeof cursorExtension === 'string') {
|
|
711
|
+
} else if (typeof cursorExtension === 'string') {
|
|
724
712
|
cursorPropertyName = cursorExtension;
|
|
725
|
-
}
|
|
726
|
-
else if (typeof cursorExtension === 'object') {
|
|
713
|
+
} else if (typeof cursorExtension === 'object') {
|
|
727
714
|
if (cursorExtension?.enabled === false) {
|
|
728
715
|
paginationDisabled = true;
|
|
729
716
|
}
|
|
730
|
-
if (cursorExtension?.inputToken &&
|
|
731
|
-
typeof cursorExtension.inputToken === 'string') {
|
|
717
|
+
if (cursorExtension?.inputToken && typeof cursorExtension.inputToken === 'string') {
|
|
732
718
|
cursorPropertyName = cursorExtension.inputToken;
|
|
733
719
|
}
|
|
734
720
|
}
|
|
735
721
|
// x-cursor can be: a string (indicating pagination is enabled and the property name to use)
|
|
736
722
|
return {
|
|
737
723
|
paginationDisabled,
|
|
738
|
-
cursorPropertyName
|
|
724
|
+
cursorPropertyName
|
|
739
725
|
};
|
|
740
726
|
};
|
|
741
727
|
/**
|
|
742
728
|
* Add additional data to an operation for code generation decisions
|
|
743
|
-
*/
|
|
744
|
-
const mutateOperationWithAdditionalData = (op) => {
|
|
729
|
+
*/ const mutateOperationWithAdditionalData = (op)=>{
|
|
745
730
|
// Add mutation/query details
|
|
746
731
|
const isMutation = isOperationMutation(op);
|
|
747
732
|
op.isMutation = isMutation;
|
|
748
733
|
op.isQuery = !isMutation;
|
|
749
734
|
// Streaming responses
|
|
750
|
-
op.isStreaming =
|
|
751
|
-
!!op.vendorExtensions?.[types_1.VENDOR_EXTENSIONS.STREAMING] ||
|
|
752
|
-
op.responses.some((res) => res.isJsonlStreaming);
|
|
735
|
+
op.isStreaming = !!op.vendorExtensions?.[VENDOR_EXTENSIONS.STREAMING] || op.responses.some((res)=>res.isJsonlStreaming);
|
|
753
736
|
// Set the result type for the client method to the item schema so that
|
|
754
737
|
// it will resolve to AsyncIterableIterator<{itemSchemaModel.name}>
|
|
755
|
-
const jsonlResponse = op.responses.find((res)
|
|
738
|
+
const jsonlResponse = op.responses.find((res)=>res.isJsonlStreaming);
|
|
756
739
|
if (jsonlResponse) {
|
|
757
740
|
const itemSchemaModel = jsonlResponse.itemSchemaModel;
|
|
758
741
|
const result = op.result;
|
|
@@ -767,4 +750,5 @@ const mutateOperationWithAdditionalData = (op) => {
|
|
|
767
750
|
mutateOperationWithInfiniteQueryDetails(op);
|
|
768
751
|
}
|
|
769
752
|
};
|
|
753
|
+
|
|
770
754
|
//# sourceMappingURL=codegen-data.js.map
|