@aws/nx-plugin 1.0.0-rc.3 → 1.0.0-rc.31
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 +6746 -6133
- package/README.md +7 -7
- package/executors.json +9 -0
- package/generators.json +100 -1
- package/package.json +35 -17
- 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.additional-properties.spec.ts.snap +147 -33
- package/src/open-api/ts-client/__snapshots__/generator.arrays.spec.ts.snap +308 -75
- package/src/open-api/ts-client/__snapshots__/generator.complex-types.spec.ts.snap +286 -62
- package/src/open-api/ts-client/__snapshots__/generator.composite-types.spec.ts.snap +674 -93
- package/src/open-api/ts-client/__snapshots__/generator.content-type.spec.ts.snap +147 -33
- package/src/open-api/ts-client/__snapshots__/generator.duplicate-types.spec.ts.snap +196 -44
- package/src/open-api/ts-client/__snapshots__/generator.edge-cases.spec.ts.snap +5507 -0
- package/src/open-api/ts-client/__snapshots__/generator.fast-api.spec.ts.snap +219 -60
- package/src/open-api/ts-client/__snapshots__/generator.primitive-types.spec.ts.snap +351 -80
- package/src/open-api/ts-client/__snapshots__/generator.request.spec.ts.snap +170 -49
- package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +99 -23
- package/src/open-api/ts-client/__snapshots__/generator.response.spec.ts.snap +147 -33
- package/src/open-api/ts-client/__snapshots__/generator.streaming.spec.ts.snap +392 -88
- package/src/open-api/ts-client/__snapshots__/generator.tags.spec.ts.snap +196 -44
- package/src/open-api/ts-client/files/client.gen.ts.template +130 -18
- package/src/open-api/ts-client/files/types.gen.ts.template +4 -4
- 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/files/options-proxy.gen.ts.template +5 -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 +84 -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 +3 -5
- package/src/open-api/utils/codegen-data/languages.js +53 -66
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.d.ts +240 -10
- package/src/open-api/utils/codegen-data/types.js +54 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +8 -4
- package/src/open-api/utils/codegen-data.js +398 -674
- 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 +386 -247
- 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/parser.d.ts +55 -0
- package/src/open-api/utils/parser.js +743 -0
- package/src/open-api/utils/parser.js.map +1 -0
- package/src/open-api/utils/refs.d.ts +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.d.ts +15 -0
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +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 +22 -0
- package/src/utils/names.js +44 -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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/open-api/utils/parser.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport camelCase from 'lodash.camelcase';\nimport trim from 'lodash.trim';\nimport type { OpenAPIV3 } from 'openapi-types';\nimport {\n type ClientData,\n COLLECTION_TYPES,\n COMPOSED_SCHEMA_TYPES,\n createModel,\n DEFAULT_SERVICE_NAME,\n type Discriminator,\n type DiscriminatorMapping,\n type EnumMember,\n indexModelsByName,\n type Model,\n type ModelExport,\n type ModelIn,\n type ModelsByName,\n type Operation,\n PRIMITIVE_TYPES,\n type Service,\n} from './codegen-data/types';\nimport { isRef, resolveIfRef, splitRef } from './refs';\nimport type {\n OpenApiSchemaOrRef,\n OpenApiSchema as Schema,\n Spec,\n} from './types';\n\n/**\n * OpenAPI primitive `type` values mapped to the internal model `type`.\n */\nconst PRIMITIVE_TYPE_MAP: { [openApiType: string]: string } = {\n string: 'string',\n number: 'number',\n integer: 'number',\n boolean: 'boolean',\n null: 'null',\n};\n\nconst HTTP_METHODS = [\n 'get',\n 'put',\n 'post',\n 'delete',\n 'options',\n 'head',\n 'patch',\n 'trace',\n] as const;\n\ntype HttpMethod = (typeof HTTP_METHODS)[number];\n\ntype SchemaOrRef = Schema | OpenAPIV3.ReferenceObject;\n\ntype ParameterOrRef = OpenAPIV3.ParameterObject | OpenAPIV3.ReferenceObject;\n\nconst schemaType = (schema: Schema): string | string[] | undefined =>\n (schema as { type?: string | string[] }).type;\n\nconst isNullable = (schema: Schema): boolean => {\n const type = schemaType(schema);\n return (\n schema.nullable === true ||\n type === 'null' ||\n (Array.isArray(type) && type.includes('null'))\n );\n};\n\n/**\n * The \"primary\" type of a schema, ignoring 'null' in a 3.1 type array.\n */\nconst primaryType = (schema: Schema): string | undefined => {\n const type = schemaType(schema);\n return Array.isArray(type) ? type.find((t) => t !== 'null') : type;\n};\n\nconst isEnumSchema = (schema: Schema): boolean =>\n Array.isArray(schema.enum) && schema.enum.length > 0;\n\nconst compositeExport = (schema: Schema): ModelExport | undefined => {\n if (schema.allOf) return 'all-of';\n if (schema.anyOf) return 'any-of';\n if (schema.oneOf) return 'one-of';\n return undefined;\n};\n\nconst compositeMembers = (schema: Schema): SchemaOrRef[] =>\n (schema.allOf ?? schema.anyOf ?? schema.oneOf ?? []) as SchemaOrRef[];\n\n/**\n * A schema is a \"dictionary\" (map) when it is an object with no explicit\n * properties (it may have `additionalProperties`, or be a bare `object`).\n */\nconst isDictionarySchema = (schema: Schema): boolean => {\n if (primaryType(schema) !== 'object') return false;\n if (compositeExport(schema) || isEnumSchema(schema)) return false;\n const hasProperties = Object.keys(schema.properties ?? {}).length > 0;\n return !hasProperties && !schema.patternProperties;\n};\n\n/**\n * The internal primitive type name for a primitive schema.\n */\nconst primitiveType = (schema: Schema): string => {\n const type = primaryType(schema);\n if (type === 'string' && schema.format === 'binary') return 'binary';\n return (type && PRIMITIVE_TYPE_MAP[type]) ?? 'unknown';\n};\n\n/**\n * Prefer application/json, falling back to the first declared media type.\n */\nconst preferredMediaType = (content: { [media: string]: unknown }): string =>\n 'application/json' in content ? 'application/json' : Object.keys(content)[0];\n\nconst parseResponseCode = (code: string): number | string =>\n /^\\d+$/.test(code) ? parseInt(code, 10) : code;\n\n/**\n * The unique imports declared across a set of models, in first-seen order.\n */\nconst collectImports = (models: Model[]): string[] => [\n ...new Set(models.flatMap((m) => m.imports)),\n];\n\n/**\n * The structural fields (export/type/link/properties/enum/imports/format) a\n * schema contributes to a model.\n */\nconst schemaStructure = (spec: Spec, schema: Schema): Partial<Model> => {\n // A null member (3.0 nullable enums list null as a value) marks the model\n // nullable rather than becoming a literal. An enum of only null degrades to\n // a plain (nullable) schema.\n const enumMembers = (schema.enum ?? []).filter((value) => value !== null);\n if (isEnumSchema(schema) && enumMembers.length > 0) {\n // A string (or untyped) enum renders as a literal union; a boolean/number\n // enum renders as its bare primitive, so it must carry the declared type.\n const declared = primaryType(schema);\n return {\n export: 'enum',\n type: (declared && PRIMITIVE_TYPE_MAP[declared]) ?? 'string',\n enum: enumMembers.map(\n (value): EnumMember => ({ value: value as EnumMember['value'] }),\n ),\n ...(enumMembers.length < schema.enum!.length ? { isNullable: true } : {}),\n };\n }\n\n const composite = compositeExport(schema);\n if (composite) {\n const properties = compositeMembers(schema).map((member) =>\n buildInlineModel(spec, member),\n );\n return {\n export: composite,\n type: 'unknown',\n properties,\n imports: collectImports(properties),\n };\n }\n\n const type = primaryType(schema);\n\n if (type === 'array') {\n const items = (schema as { items?: SchemaOrRef }).items;\n return { export: 'array', ...collectionValue(spec, items) };\n }\n\n if (isDictionarySchema(schema)) {\n return { export: 'dictionary', ...dictionaryValue(spec, schema) };\n }\n\n if (type === 'object' || schema.properties || schema.patternProperties) {\n const properties = buildProperties(spec, schema);\n return {\n export: 'interface',\n type: 'unknown',\n properties,\n imports: collectImports(properties),\n };\n }\n\n // A schema with no type (e.g. `{}`) is an untyped object.\n if (type === undefined) {\n return { export: 'interface', type: 'unknown' };\n }\n\n return {\n export: 'generic',\n type: primitiveType(schema),\n ...(schema.format ? { format: schema.format } : {}),\n };\n};\n\n/**\n * The value type of a collection (array items / dictionary values): a `type`,\n * `link` and `imports`.\n *\n * - ref value → `type` is the referenced model name; `link` is left null and\n * resolved later by `linkModels`.\n * - non-ref value → a `link` model carrying the (innermost) type and imports.\n */\nconst collectionValue = (\n spec: Spec,\n value: SchemaOrRef | undefined,\n): Partial<Model> => {\n if (value && isRef(value)) {\n const type = splitRef(value.$ref)[2];\n return { type, imports: [type], link: null };\n }\n const link = createModel(schemaStructure(spec, (value ?? {}) as Schema));\n return { link, type: link.type, imports: [...link.imports] };\n};\n\n/**\n * The value type of a dictionary (map).\n */\nconst dictionaryValue = (spec: Spec, schema: Schema): Partial<Model> => {\n const additional = schema.additionalProperties;\n if (additional && additional !== true) {\n return collectionValue(spec, additional);\n }\n if (schema.properties && additional !== true) {\n // An object with an (empty) `properties` map but no additionalProperties\n // renders as `{}`.\n return { type: 'unknown', link: null };\n }\n // `additionalProperties: true`, or a bare `{ type: 'object' }` → an \"any\"\n // value type.\n return {\n type: 'unknown',\n link: createModel({ export: 'interface', type: 'unknown' }),\n };\n};\n\n/**\n * A model for an inline sub-schema (property value, array item, dictionary\n * value, composite member, parameter, or response).\n */\nexport const buildInlineModel = (\n spec: Spec,\n schemaOrRef: SchemaOrRef,\n): Model => {\n if (isRef(schemaOrRef)) {\n const name = splitRef(schemaOrRef.$ref)[2];\n return createModel({ export: 'reference', type: name, imports: [name] });\n }\n return createModel({\n description: schemaOrRef.description ?? null,\n deprecated: !!schemaOrRef.deprecated,\n isNullable: isNullable(schemaOrRef),\n isReadOnly: !!schemaOrRef.readOnly,\n ...schemaStructure(spec, schemaOrRef),\n });\n};\n\n/**\n * A model for a top-level named schema (a definition). Object definitions are\n * typed as their own name (the type the generator emits for them).\n */\nconst buildDefinitionModel = (\n spec: Spec,\n name: string,\n schema: Schema,\n): Model => {\n const structure = schemaStructure(spec, schema);\n const isNamedObject =\n schema.type === 'object' &&\n !!(schema.properties || schema.patternProperties);\n return createModel({\n name,\n description: schema.description ?? null,\n deprecated: !!schema.deprecated,\n isNullable: isNullable(schema),\n ...structure,\n ...(isNamedObject ? { type: name } : {}),\n });\n};\n\n/**\n * The property models for an object schema.\n */\nconst buildProperties = (spec: Spec, schema: Schema): Model[] => {\n const required = new Set(schema.required ?? []);\n return Object.entries(schema.properties ?? {}).map(([name, propSchema]) => ({\n ...buildInlineModel(spec, propSchema),\n name,\n isRequired: required.has(name),\n }));\n};\n\n/**\n * A `{ modelName → { propertyName } }` map of the discriminator properties\n * declared by composite schemas with an explicit `mapping`.\n */\nconst discriminatorTargets = (spec: Spec): Map<string, Set<string>> => {\n const targets = new Map<string, Set<string>>();\n for (const schemaOrRef of Object.values(spec.components?.schemas ?? {})) {\n const { discriminator } = resolveIfRef(spec, schemaOrRef) as Schema;\n if (!discriminator?.propertyName || !discriminator.mapping) continue;\n for (const mappedRef of Object.values(discriminator.mapping)) {\n if (typeof mappedRef !== 'string' || !mappedRef.startsWith('#/'))\n continue;\n const modelName = splitRef(mappedRef)[2];\n const properties = targets.get(modelName) ?? new Set<string>();\n properties.add(discriminator.propertyName);\n targets.set(modelName, properties);\n }\n }\n return targets;\n};\n\n/**\n * For discriminated composites, collapse each mapped schema's discriminator\n * property from its enum reference to the bare primitive type (`export` stays\n * `reference`, `type` becomes the primitive, `imports` are cleared). The\n * referenced enum models are left in place. This drops the literal narrowing\n * but keeps the emitted code valid.\n */\nconst collapseDiscriminators = (spec: Spec, models: Model[]): Model[] => {\n const targets = discriminatorTargets(spec);\n if (targets.size === 0) return models;\n\n const byName = new Map(models.map((m) => [m.name, m]));\n return models.map((model) => {\n const properties = targets.get(model.name);\n if (!properties) return model;\n return {\n ...model,\n properties: model.properties.map((property) => {\n if (!properties.has(property.name) || property.export !== 'reference') {\n return property;\n }\n const referenced = byName.get(property.type);\n return referenced?.export === 'enum'\n ? { ...property, type: referenced.type, imports: [] }\n : property;\n }),\n };\n });\n};\n\nconst buildModels = (spec: Spec): Model[] =>\n collapseDiscriminators(\n spec,\n Object.entries(spec.components?.schemas ?? {}).map(([name, schemaOrRef]) =>\n buildDefinitionModel(spec, name, resolveIfRef(spec, schemaOrRef)),\n ),\n );\n\n/**\n * The synthetic `body` parameter for an operation's request body.\n */\nconst buildRequestBody = (\n spec: Spec,\n specOp: OpenAPIV3.OperationObject,\n): Model | null => {\n const requestBody = resolveIfRef<OpenAPIV3.RequestBodyObject | undefined>(\n spec,\n specOp.requestBody,\n );\n // An empty content map declares no acceptable media types, ie no body.\n if (!requestBody?.content || Object.keys(requestBody.content).length === 0)\n return null;\n\n const mediaType = preferredMediaType(requestBody.content);\n const base = buildInlineModel(\n spec,\n (requestBody.content[mediaType]?.schema ?? {}) as Schema,\n );\n return {\n ...base,\n name: 'requestBody',\n prop: 'requestBody',\n in: 'body',\n mediaType,\n isRequired: !!requestBody.required,\n description: requestBody.description ?? base.description,\n };\n};\n\n/**\n * The parameter models for an operation, including a synthetic body parameter.\n * Ordered required-first with a stable sort (`Array.prototype.sort`), so the\n * original relative order within each group is preserved.\n */\nconst buildParameters = (\n spec: Spec,\n specOp: OpenAPIV3.OperationObject,\n pathParameters: ParameterOrRef[] = [],\n): Model[] => {\n const declared: Model[] = mergeParameters(spec, pathParameters, [\n ...(specOp.parameters ?? []),\n ]).flatMap((p) => {\n const param = resolveIfRef<OpenAPIV3.ParameterObject | undefined>(spec, p);\n if (!param) return [];\n const base = buildInlineModel(spec, (param.schema ?? {}) as Schema);\n return [\n {\n ...base,\n name: param.name,\n prop: param.name,\n in: param.in as ModelIn,\n mediaType: null,\n isRequired: !!param.required,\n description: param.description ? param.description : base.description,\n },\n ];\n });\n\n const body = buildRequestBody(spec, specOp);\n const params = body ? [...declared, body] : declared;\n\n return [...params].sort((a, b) =>\n a.isRequired === b.isRequired ? 0 : a.isRequired ? -1 : 1,\n );\n};\n\n/**\n * Merge path-level parameters with operation-level parameters. Per the OpenAPI\n * spec, path-level parameters apply to every operation in the path unless an\n * operation-level parameter overrides one with the same `name` + `in`.\n */\nconst mergeParameters = (\n spec: Spec,\n pathParameters: ParameterOrRef[],\n operationParameters: ParameterOrRef[],\n): ParameterOrRef[] => {\n const key = (p: ParameterOrRef) => {\n const param = resolveIfRef<OpenAPIV3.ParameterObject | undefined>(spec, p);\n return param ? specParameterKey(param) : null;\n };\n const overridden = new Set(operationParameters.map(key));\n const inherited = pathParameters.filter((p) => !overridden.has(key(p)));\n return [...inherited, ...operationParameters];\n};\n\n/**\n * The response models for an operation.\n */\nconst buildResponses = (\n spec: Spec,\n specOp: OpenAPIV3.OperationObject,\n): Model[] =>\n Object.entries(specOp.responses ?? {}).flatMap(([code, resOrRef]) => {\n const response = resolveIfRef<OpenAPIV3.ResponseObject | undefined>(\n spec,\n resOrRef,\n );\n if (!response) return [];\n\n const content = response.content ?? {};\n const mediaType = Object.keys(content).length\n ? preferredMediaType(content)\n : undefined;\n const responseSchema = mediaType\n ? (content[mediaType]?.schema as SchemaOrRef | undefined)\n : undefined;\n\n return [\n {\n ...(responseSchema\n ? buildInlineModel(spec, responseSchema)\n : createModel({ export: 'generic', type: 'void' })),\n name: '',\n code: parseResponseCode(code),\n in: 'response' as ModelIn,\n description: response.description ?? null,\n },\n ];\n });\n\nconst buildOperation = (\n spec: Spec,\n path: string,\n method: string,\n specOp: OpenAPIV3.OperationObject,\n pathParameters: ParameterOrRef[] = [],\n): Operation => {\n const parameters = buildParameters(spec, specOp, pathParameters);\n const responses = buildResponses(spec, specOp);\n const id = (specOp as { operationId: string }).operationId;\n\n return {\n id,\n name: id,\n method: method.toUpperCase(),\n path,\n description: specOp.description ?? null,\n tags: specOp.tags ?? null,\n deprecated: !!specOp.deprecated,\n parameters,\n parametersBody: parameters.find((p) => p.in === 'body') ?? null,\n responses,\n imports: collectImports([...parameters, ...responses]),\n };\n};\n\nconst buildOperations = (spec: Spec): Operation[] =>\n Object.entries(spec.paths ?? {}).flatMap(([path, pathItemOrRef]) => {\n const pathItem = resolveIfRef<OpenAPIV3.PathItemObject | undefined>(\n spec,\n pathItemOrRef,\n );\n if (!pathItem) return [];\n const pathParameters = pathItem.parameters ?? [];\n return HTTP_METHODS.flatMap((method: HttpMethod) => {\n const specOp = pathItem[method as OpenAPIV3.HttpMethods];\n return specOp\n ? [buildOperation(spec, path, method, specOp, pathParameters)]\n : [];\n });\n });\n\nconst buildDefaultService = (spec: Spec): Service => {\n const operations = buildOperations(spec);\n return {\n name: DEFAULT_SERVICE_NAME,\n operations,\n imports: [...new Set(operations.flatMap((op) => op.imports))],\n };\n};\n\n/**\n * Look up the spec operation object for a parsed operation.\n */\nexport const getSpecOperation = (\n spec: Spec,\n op: Operation,\n): OpenAPIV3.OperationObject | undefined =>\n (spec.paths?.[op.path] as OpenAPIV3.PathItemObject | undefined)?.[\n op.method.toLowerCase() as OpenAPIV3.HttpMethods\n ];\n\n/**\n * The `in`-qualified key for a parameter, distinguishing parameters that share\n * a name across positions (e.g. `id` in both path and query).\n */\nexport const specParameterKey = (parameter: {\n in: string;\n name: string;\n}): string => `${parameter.in}:${parameter.name}`;\n\n/**\n * An operation's resolved parameters indexed by `in:name`, including any\n * path-level parameters inherited from the containing path item\n * (operation-level parameters take precedence when both declare the same\n * `name` + `in`).\n */\nexport const getSpecParametersByKey = (\n spec: Spec,\n specOp: OpenAPIV3.OperationObject | undefined,\n pathParameters: ParameterOrRef[] = [],\n): { [key: string]: OpenAPIV3.ParameterObject } =>\n Object.fromEntries(\n [...pathParameters, ...(specOp?.parameters ?? [])].map((p) => {\n const param = resolveIfRef(spec, p);\n return [specParameterKey(param), param];\n }),\n );\n\n/**\n * The path-level parameters declared on the path item containing an operation.\n */\nexport const getSpecPathParameters = (\n spec: Spec,\n op: Operation,\n): ParameterOrRef[] => {\n const pathItem = resolveIfRef<OpenAPIV3.PathItemObject | undefined>(\n spec,\n spec.paths?.[op.path],\n );\n return pathItem?.parameters ?? [];\n};\n\n/**\n * The member sub-schemas of a composite (allOf/anyOf/oneOf) schema, in order.\n */\nexport const compositeMemberSchemas = (\n schema: Schema,\n compositeExport: ModelExport,\n): OpenApiSchemaOrRef[] => {\n const keyword = camelCase(compositeExport) as 'allOf' | 'anyOf' | 'oneOf';\n return (schema[keyword] as OpenApiSchemaOrRef[] | undefined) ?? [];\n};\n\n/**\n * Recursively stitch a model's collection `link` to the named model it\n * references (ref values are left null by the builders, since the target model\n * does not exist until every definition is built).\n */\nexport const linkModel = (\n spec: Spec,\n modelsByName: ModelsByName,\n model: Model,\n schema: Schema,\n visited: Set<Model> = new Set(),\n): void => {\n if (visited.has(model)) return;\n visited.add(model);\n\n if (\n model.export === 'dictionary' &&\n 'additionalProperties' in schema &&\n schema.additionalProperties\n ) {\n if (isRef(schema.additionalProperties)) {\n const name = splitRef(schema.additionalProperties.$ref)[2];\n if (modelsByName[name] && !model.link) {\n model.link = modelsByName[name];\n }\n } else if (model.link && typeof schema.additionalProperties !== 'boolean') {\n linkModel(\n spec,\n modelsByName,\n model.link,\n schema.additionalProperties,\n visited,\n );\n }\n } else if (model.export === 'array' && 'items' in schema && schema.items) {\n if (isRef(schema.items)) {\n const name = splitRef(schema.items.$ref)[2];\n if (modelsByName[name] && !model.link) {\n model.link = modelsByName[name];\n }\n } else if (model.link) {\n linkModel(spec, modelsByName, model.link, schema.items, visited);\n }\n }\n\n model.properties\n .filter((p) => !visited.has(p) && schema.properties?.[trim(p.name, `\"'`)])\n .forEach((property) => {\n const subSchema = resolveIfRef(\n spec,\n schema.properties![trim(property.name, `\"'`)],\n );\n linkModel(spec, modelsByName, property, subSchema, visited);\n });\n\n if (COMPOSED_SCHEMA_TYPES.has(model.export)) {\n const memberSchemas = compositeMemberSchemas(schema, model.export);\n model.properties.forEach((property, i) => {\n const subSchema = resolveIfRef(spec, memberSchemas[i]);\n if (subSchema) {\n linkModel(spec, modelsByName, property, subSchema, visited);\n }\n });\n }\n};\n\n/**\n * Stitch collection links across every model, operation parameter and response.\n */\nconst linkModels = (spec: Spec, data: ClientData): void => {\n const modelsByName = indexModelsByName(data.models);\n const visited = new Set<Model>();\n\n data.models.forEach((model) => {\n const schema = resolveIfRef<Schema | undefined>(\n spec,\n spec.components?.schemas?.[model.name],\n );\n if (schema) {\n linkModel(spec, modelsByName, model, schema, visited);\n }\n });\n\n data.services.forEach((service) => {\n service.operations.forEach((op) => {\n const specOp = getSpecOperation(spec, op);\n const specParametersByKey = getSpecParametersByKey(\n spec,\n specOp,\n getSpecPathParameters(spec, op),\n );\n\n op.parameters.forEach((parameter) => {\n const specParameter =\n specParametersByKey[\n specParameterKey({ in: parameter.in, name: parameter.prop })\n ];\n const specParameterSchema = resolveIfRef(spec, specParameter?.schema);\n if (specParameterSchema) {\n linkModel(\n spec,\n modelsByName,\n parameter,\n specParameterSchema,\n visited,\n );\n } else if (parameter.in === 'body') {\n const specBody = resolveIfRef(spec, specOp?.requestBody);\n const specBodySchema = resolveIfRef(\n spec,\n specBody?.content?.[parameter.mediaType]?.schema,\n );\n if (specBodySchema) {\n linkModel(spec, modelsByName, parameter, specBodySchema, visited);\n }\n }\n });\n\n op.responses.forEach((response) => {\n const specResponse = resolveIfRef(\n spec,\n specOp?.responses?.[response.code],\n );\n Object.keys(specResponse?.content ?? {}).forEach((mediaType) => {\n const responseSchema = resolveIfRef(\n spec,\n specResponse?.content?.[mediaType]?.schema,\n );\n if (responseSchema) {\n linkModel(spec, modelsByName, response, responseSchema, visited);\n }\n });\n });\n });\n });\n};\n\n/**\n * Populate `composedModels` and `composedPrimitives` on each composite model\n * with the models and primitive types it is composed of.\n */\nconst resolveComposedModel = (\n modelsByName: ModelsByName,\n model: Model,\n visited: Set<Model>,\n): void => {\n if (!COMPOSED_SCHEMA_TYPES.has(model.export) || visited.has(model)) return;\n visited.add(model);\n\n const members = model.properties.filter((p) => !p.name);\n const referenced = members\n .filter((p) => p.export === 'reference')\n .flatMap((r) => (modelsByName[r.type] ? [modelsByName[r.type]] : []));\n\n // Resolve recursively so all-of mixins include nested all-of properties\n referenced.forEach((m) => resolveComposedModel(modelsByName, m, visited));\n\n // Enums serialise as primitives, so group them with the primitives\n const composedModels = referenced.filter((m) => m.export !== 'enum');\n const composedPrimitives = [\n ...members.filter((p) => p.export !== 'reference'),\n ...referenced.filter((m) => m.export === 'enum'),\n ];\n\n // A composite of multiple non-primitive array members can't be told apart at\n // runtime: each arrives as a plain JSON array with no property to switch on.\n // A `discriminator` can't disambiguate here either — it names a property on\n // an object member, not on an array. Model a polymorphic list as an array of\n // a discriminated union instead (`type: array` whose `items` is the oneOf).\n const isPrimitiveArray = (m: Model): boolean =>\n m.link && COLLECTION_TYPES.has(m.export)\n ? isPrimitiveArray(m.link)\n : PRIMITIVE_TYPES.has(m.type) &&\n !['date', 'date-time'].includes(m.format ?? '');\n const arrayComposedModels = composedPrimitives.filter(\n (m) => m.export === 'array' && !isPrimitiveArray(m),\n );\n if (arrayComposedModels.length > 1) {\n throw new Error(\n `Schema \"${model.name}\" defines ${camelCase(model.export)} with multiple array types which cannot be distinguished at runtime. Model a polymorphic list as an array whose items are a discriminated union instead (a \"type: array\" schema with a \"oneOf\" in \"items\").`,\n );\n }\n\n if (model.export === 'all-of' && composedPrimitives.length > 0) {\n throw new Error(\n `Schema \"${model.name}\" defines allOf with non-object types. allOf may only compose object types in the OpenAPI specification.`,\n );\n }\n\n model.composedModels = composedModels;\n model.composedPrimitives = composedPrimitives;\n};\n\nconst resolveComposedModels = (data: ClientData): void => {\n const modelsByName = indexModelsByName(data.models);\n const visited = new Set<Model>();\n data.models.forEach((model) =>\n resolveComposedModel(modelsByName, model, visited),\n );\n};\n\nconst isHoisted = (spec: Spec, name: string): boolean =>\n !!(\n resolveIfRef<Schema | undefined>(\n spec,\n spec.components?.schemas?.[name],\n ) as { 'x-aws-nx-hoisted'?: boolean } | undefined\n )?.['x-aws-nx-hoisted'];\n\n/**\n * The on-the-wire name of a schema: its original name before normalisation to\n * a valid identifier (recorded by the normaliser), or its current name. An\n * implicit discriminator matches on this, not the normalised model name.\n */\nconst wireName = (spec: Spec, name: string): string =>\n (\n resolveIfRef<Schema | undefined>(\n spec,\n spec.components?.schemas?.[name],\n ) as { 'x-aws-nx-original-name'?: string } | undefined\n )?.['x-aws-nx-original-name'] ?? name;\n\n/**\n * The value → model-name mapping for a discriminator, resolved either from an\n * explicit `mapping` (value → schema ref) or implicitly (each candidate model's\n * schema name is its own discriminator value). Only candidates in\n * `candidateNames` are kept, so unknown values fall through to the default\n * marshalling; hoisted synthetic names (which never appear on the wire) are\n * excluded from the implicit form.\n */\nconst buildDiscriminatorMapping = (\n spec: Spec,\n discriminator: OpenAPIV3.DiscriminatorObject,\n candidateNames: Set<string>,\n): DiscriminatorMapping[] => {\n if (discriminator.mapping) {\n const mapping: DiscriminatorMapping[] = [];\n for (const [value, ref] of Object.entries(discriminator.mapping)) {\n if (typeof ref !== 'string' || !ref.startsWith('#/')) continue;\n const modelName = splitRef(ref)[2];\n if (candidateNames.has(modelName)) mapping.push({ value, modelName });\n }\n return mapping;\n }\n return [...candidateNames]\n .filter((name) => !isHoisted(spec, name))\n // The wire value is the schema's original name; the model it selects is the\n // normalised name.\n .map((name) => ({ value: wireName(spec, name), modelName: name }));\n};\n\n/**\n * Build the {@link Discriminator} for a `oneOf`/`anyOf` composite, if declared.\n * The candidates are the models composed by the union.\n */\nconst buildCompositeDiscriminator = (\n spec: Spec,\n model: Model,\n schema: Schema,\n): Discriminator | undefined => {\n const { discriminator } = schema;\n if (!discriminator?.propertyName) return undefined;\n\n const candidateNames = new Set(\n (model.composedModels ?? []).map((m) => m.name),\n );\n const mapping = buildDiscriminatorMapping(spec, discriminator, candidateNames);\n\n return mapping.length > 0\n ? { propertyName: discriminator.propertyName, mapping }\n : undefined;\n};\n\n/**\n * Build the {@link Discriminator} for an inheritance base — an `object` schema\n * carrying a `discriminator` whose subtypes `allOf`-compose it. The candidates\n * are those subtypes (found by scanning every model for one that composes this\n * base). Marked `isBase` so the generator emits a non-dispatching body the\n * subtypes can compose without recursing.\n */\nconst buildBaseDiscriminator = (\n spec: Spec,\n base: Model,\n schema: Schema,\n models: Model[],\n): Discriminator | undefined => {\n const { discriminator } = schema;\n if (!discriminator?.propertyName) return undefined;\n\n const subtypeNames = new Set(\n models\n .filter(\n (m) =>\n m.export === 'all-of' &&\n (m.composedModels ?? []).some((c) => c.name === base.name),\n )\n .map((m) => m.name),\n );\n if (subtypeNames.size === 0) return undefined;\n\n const mapping = buildDiscriminatorMapping(spec, discriminator, subtypeNames);\n\n return mapping.length > 0\n ? { propertyName: discriminator.propertyName, mapping, isBase: true }\n : undefined;\n};\n\n/**\n * Attach discriminator metadata so the generator can marshal directly to the\n * matching branch/subtype. Two shapes carry a discriminator:\n * - a `oneOf`/`anyOf` composite (dispatch to the matching member), and\n * - an inheritance base `object` whose subtypes `allOf`-compose it (dispatch\n * to the matching subtype so subtype-only fields survive marshalling).\n * `allOf` itself is a conjunction (not a choice) so it is never discriminated.\n */\nconst resolveDiscriminators = (spec: Spec, data: ClientData): void => {\n data.models.forEach((model) => {\n const schema = resolveIfRef<Schema | undefined>(\n spec,\n spec.components?.schemas?.[model.name],\n );\n if (!schema) return;\n\n if (model.export === 'one-of' || model.export === 'any-of') {\n const discriminator = buildCompositeDiscriminator(spec, model, schema);\n if (discriminator) model.discriminator = discriminator;\n } else if (model.export === 'interface') {\n const discriminator = buildBaseDiscriminator(\n spec,\n model,\n schema,\n data.models,\n );\n if (discriminator) model.discriminator = discriminator;\n }\n });\n};\n\n/**\n * Type each discriminated subtype's discriminator property as its literal\n * value(s), turning `Cat | Dog` into a true TypeScript tagged union that\n * narrows on the discriminator (e.g. `Cat.petType: 'cat'`).\n *\n * The literal is taken from every discriminator's `mapping` (value → subtype).\n * A subtype selected by several values within one discriminator becomes a union\n * of those literals. A subtype that appears in multiple discriminators with\n * conflicting values can't be pinned to a single literal, so it is left as the\n * plain primitive (`string`) — the marshalling dispatch is unaffected either\n * way, this only affects the emitted type.\n */\nconst resolveDiscriminatorLiterals = (data: ClientData): void => {\n const modelsByName = indexModelsByName(data.models);\n\n // Collect, per (subtype, discriminator property), the set of literal values\n // that select it — across every discriminator in the spec.\n const valuesBySubtypeProp = new Map<string, Set<string>>();\n const conflicting = new Set<string>();\n\n for (const model of data.models) {\n const discriminator = model.discriminator;\n if (!discriminator) continue;\n const byName = new Map<string, string[]>();\n for (const { value, modelName } of discriminator.mapping) {\n byName.set(modelName, [...(byName.get(modelName) ?? []), value]);\n }\n for (const [modelName, values] of byName) {\n const key = `${modelName}\u0000${discriminator.propertyName}`;\n const existing = valuesBySubtypeProp.get(key);\n const incoming = new Set(values);\n if (existing && !setsEqual(existing, incoming)) {\n // Same subtype+property tagged differently by another union.\n conflicting.add(key);\n }\n valuesBySubtypeProp.set(key, existing ? union(existing, incoming) : incoming);\n }\n }\n\n for (const [key, values] of valuesBySubtypeProp) {\n if (conflicting.has(key)) continue;\n const [modelName, propertyName] = key.split('\u0000');\n const property = modelsByName[modelName]?.properties.find(\n (p) => p.name === propertyName,\n );\n // Only pin a literal when the property is a plain (string/enum) scalar —\n // never an object/array reference.\n if (property && (property.type === 'string' || property.isEnum)) {\n property.discriminatorValue = [...values]\n .map((v) => JSON.stringify(v))\n .join(' | ');\n }\n }\n};\n\nconst setsEqual = (a: Set<string>, b: Set<string>): boolean =>\n a.size === b.size && [...a].every((v) => b.has(v));\n\nconst union = (a: Set<string>, b: Set<string>): Set<string> =>\n new Set([...a, ...b]);\n\n/**\n * Build the client data structure from a (normalised) OpenAPI spec: a fully\n * linked model graph with composite members resolved, ready for augmentation.\n */\nexport const buildClientData = (spec: Spec): ClientData => {\n const data: ClientData = {\n models: buildModels(spec),\n services: [buildDefaultService(spec)],\n };\n linkModels(spec, data);\n resolveComposedModels(data);\n resolveDiscriminators(spec, data);\n resolveDiscriminatorLiterals(data);\n return data;\n};\n"],"names":["camelCase","trim","COLLECTION_TYPES","COMPOSED_SCHEMA_TYPES","createModel","DEFAULT_SERVICE_NAME","indexModelsByName","PRIMITIVE_TYPES","isRef","resolveIfRef","splitRef","PRIMITIVE_TYPE_MAP","string","number","integer","boolean","null","HTTP_METHODS","schemaType","schema","type","isNullable","nullable","Array","isArray","includes","primaryType","find","t","isEnumSchema","enum","length","compositeExport","allOf","anyOf","oneOf","undefined","compositeMembers","isDictionarySchema","hasProperties","Object","keys","properties","patternProperties","primitiveType","format","preferredMediaType","content","parseResponseCode","code","test","parseInt","collectImports","models","Set","flatMap","m","imports","schemaStructure","spec","enumMembers","filter","value","declared","export","map","composite","member","buildInlineModel","items","collectionValue","dictionaryValue","buildProperties","$ref","link","additional","additionalProperties","schemaOrRef","name","description","deprecated","isReadOnly","readOnly","buildDefinitionModel","structure","isNamedObject","required","entries","propSchema","isRequired","has","discriminatorTargets","targets","Map","values","components","schemas","discriminator","propertyName","mapping","mappedRef","startsWith","modelName","get","add","set","collapseDiscriminators","size","byName","model","property","referenced","buildModels","buildRequestBody","specOp","requestBody","mediaType","base","prop","in","buildParameters","pathParameters","mergeParameters","parameters","p","param","body","params","sort","a","b","operationParameters","key","specParameterKey","overridden","inherited","buildResponses","responses","resOrRef","response","responseSchema","buildOperation","path","method","id","operationId","toUpperCase","tags","parametersBody","buildOperations","paths","pathItemOrRef","pathItem","buildDefaultService","operations","op","getSpecOperation","toLowerCase","parameter","getSpecParametersByKey","fromEntries","getSpecPathParameters","compositeMemberSchemas","keyword","linkModel","modelsByName","visited","forEach","subSchema","memberSchemas","i","linkModels","data","services","service","specParametersByKey","specParameter","specParameterSchema","specBody","specBodySchema","specResponse","resolveComposedModel","members","r","composedModels","composedPrimitives","isPrimitiveArray","arrayComposedModels","Error","resolveComposedModels","isHoisted","wireName","buildDiscriminatorMapping","candidateNames","ref","push","buildCompositeDiscriminator","buildBaseDiscriminator","subtypeNames","some","c","isBase","resolveDiscriminators","resolveDiscriminatorLiterals","valuesBySubtypeProp","conflicting","existing","incoming","setsEqual","union","split","isEnum","discriminatorValue","v","JSON","stringify","join","every","buildClientData"],"mappings":"AAAA;;;CAGC,GAED,OAAOA,eAAe,mBAAmB;AACzC,OAAOC,UAAU,cAAc;AAE/B,SAEEC,gBAAgB,EAChBC,qBAAqB,EACrBC,WAAW,EACXC,oBAAoB,EAIpBC,iBAAiB,EAMjBC,eAAe,QAEV,0BAAuB;AAC9B,SAASC,KAAK,EAAEC,YAAY,EAAEC,QAAQ,QAAQ,YAAS;AAOvD;;CAEC,GACD,MAAMC,qBAAwD;IAC5DC,QAAQ;IACRC,QAAQ;IACRC,SAAS;IACTC,SAAS;IACTC,MAAM;AACR;AAEA,MAAMC,eAAe;IACnB;IACA;IACA;IACA;IACA;IACA;IACA;IACA;CACD;AAQD,MAAMC,aAAa,CAACC,SAClB,AAACA,OAAwCC,IAAI;AAE/C,MAAMC,aAAa,CAACF;IAClB,MAAMC,OAAOF,WAAWC;IACxB,OACEA,OAAOG,QAAQ,KAAK,QACpBF,SAAS,UACRG,MAAMC,OAAO,CAACJ,SAASA,KAAKK,QAAQ,CAAC;AAE1C;AAEA;;CAEC,GACD,MAAMC,cAAc,CAACP;IACnB,MAAMC,OAAOF,WAAWC;IACxB,OAAOI,MAAMC,OAAO,CAACJ,QAAQA,KAAKO,IAAI,CAAC,CAACC,IAAMA,MAAM,UAAUR;AAChE;AAEA,MAAMS,eAAe,CAACV,SACpBI,MAAMC,OAAO,CAACL,OAAOW,IAAI,KAAKX,OAAOW,IAAI,CAACC,MAAM,GAAG;AAErD,MAAMC,kBAAkB,CAACb;IACvB,IAAIA,OAAOc,KAAK,EAAE,OAAO;IACzB,IAAId,OAAOe,KAAK,EAAE,OAAO;IACzB,IAAIf,OAAOgB,KAAK,EAAE,OAAO;IACzB,OAAOC;AACT;AAEA,MAAMC,mBAAmB,CAAClB,SACvBA,OAAOc,KAAK,IAAId,OAAOe,KAAK,IAAIf,OAAOgB,KAAK,IAAI,EAAE;AAErD;;;CAGC,GACD,MAAMG,qBAAqB,CAACnB;IAC1B,IAAIO,YAAYP,YAAY,UAAU,OAAO;IAC7C,IAAIa,gBAAgBb,WAAWU,aAAaV,SAAS,OAAO;IAC5D,MAAMoB,gBAAgBC,OAAOC,IAAI,CAACtB,OAAOuB,UAAU,IAAI,CAAC,GAAGX,MAAM,GAAG;IACpE,OAAO,CAACQ,iBAAiB,CAACpB,OAAOwB,iBAAiB;AACpD;AAEA;;CAEC,GACD,MAAMC,gBAAgB,CAACzB;IACrB,MAAMC,OAAOM,YAAYP;IACzB,IAAIC,SAAS,YAAYD,OAAO0B,MAAM,KAAK,UAAU,OAAO;IAC5D,OAAO,AAACzB,CAAAA,QAAQT,kBAAkB,CAACS,KAAK,AAAD,KAAM;AAC/C;AAEA;;CAEC,GACD,MAAM0B,qBAAqB,CAACC,UAC1B,sBAAsBA,UAAU,qBAAqBP,OAAOC,IAAI,CAACM,QAAQ,CAAC,EAAE;AAE9E,MAAMC,oBAAoB,CAACC,OACzB,QAAQC,IAAI,CAACD,QAAQE,SAASF,MAAM,MAAMA;AAE5C;;CAEC,GACD,MAAMG,iBAAiB,CAACC,SAA8B;WACjD,IAAIC,IAAID,OAAOE,OAAO,CAAC,CAACC,IAAMA,EAAEC,OAAO;KAC3C;AAED;;;CAGC,GACD,MAAMC,kBAAkB,CAACC,MAAYxC;IACnC,0EAA0E;IAC1E,4EAA4E;IAC5E,6BAA6B;IAC7B,MAAMyC,cAAc,AAACzC,CAAAA,OAAOW,IAAI,IAAI,EAAE,AAAD,EAAG+B,MAAM,CAAC,CAACC,QAAUA,UAAU;IACpE,IAAIjC,aAAaV,WAAWyC,YAAY7B,MAAM,GAAG,GAAG;QAClD,0EAA0E;QAC1E,0EAA0E;QAC1E,MAAMgC,WAAWrC,YAAYP;QAC7B,OAAO;YACL6C,QAAQ;YACR5C,MAAM,AAAC2C,CAAAA,YAAYpD,kBAAkB,CAACoD,SAAS,AAAD,KAAM;YACpDjC,MAAM8B,YAAYK,GAAG,CACnB,CAACH,QAAuB,CAAA;oBAAEA,OAAOA;gBAA6B,CAAA;YAEhE,GAAIF,YAAY7B,MAAM,GAAGZ,OAAOW,IAAI,CAAEC,MAAM,GAAG;gBAAEV,YAAY;YAAK,IAAI,CAAC,CAAC;QAC1E;IACF;IAEA,MAAM6C,YAAYlC,gBAAgBb;IAClC,IAAI+C,WAAW;QACb,MAAMxB,aAAaL,iBAAiBlB,QAAQ8C,GAAG,CAAC,CAACE,SAC/CC,iBAAiBT,MAAMQ;QAEzB,OAAO;YACLH,QAAQE;YACR9C,MAAM;YACNsB;YACAe,SAASL,eAAeV;QAC1B;IACF;IAEA,MAAMtB,OAAOM,YAAYP;IAEzB,IAAIC,SAAS,SAAS;QACpB,MAAMiD,QAAQ,AAAClD,OAAmCkD,KAAK;QACvD,OAAO;YAAEL,QAAQ;YAAS,GAAGM,gBAAgBX,MAAMU,MAAM;QAAC;IAC5D;IAEA,IAAI/B,mBAAmBnB,SAAS;QAC9B,OAAO;YAAE6C,QAAQ;YAAc,GAAGO,gBAAgBZ,MAAMxC,OAAO;QAAC;IAClE;IAEA,IAAIC,SAAS,YAAYD,OAAOuB,UAAU,IAAIvB,OAAOwB,iBAAiB,EAAE;QACtE,MAAMD,aAAa8B,gBAAgBb,MAAMxC;QACzC,OAAO;YACL6C,QAAQ;YACR5C,MAAM;YACNsB;YACAe,SAASL,eAAeV;QAC1B;IACF;IAEA,0DAA0D;IAC1D,IAAItB,SAASgB,WAAW;QACtB,OAAO;YAAE4B,QAAQ;YAAa5C,MAAM;QAAU;IAChD;IAEA,OAAO;QACL4C,QAAQ;QACR5C,MAAMwB,cAAczB;QACpB,GAAIA,OAAO0B,MAAM,GAAG;YAAEA,QAAQ1B,OAAO0B,MAAM;QAAC,IAAI,CAAC,CAAC;IACpD;AACF;AAEA;;;;;;;CAOC,GACD,MAAMyB,kBAAkB,CACtBX,MACAG;IAEA,IAAIA,SAAStD,MAAMsD,QAAQ;QACzB,MAAM1C,OAAOV,SAASoD,MAAMW,IAAI,CAAC,CAAC,EAAE;QACpC,OAAO;YAAErD;YAAMqC,SAAS;gBAACrC;aAAK;YAAEsD,MAAM;QAAK;IAC7C;IACA,MAAMA,OAAOtE,YAAYsD,gBAAgBC,MAAOG,SAAS,CAAC;IAC1D,OAAO;QAAEY;QAAMtD,MAAMsD,KAAKtD,IAAI;QAAEqC,SAAS;eAAIiB,KAAKjB,OAAO;SAAC;IAAC;AAC7D;AAEA;;CAEC,GACD,MAAMc,kBAAkB,CAACZ,MAAYxC;IACnC,MAAMwD,aAAaxD,OAAOyD,oBAAoB;IAC9C,IAAID,cAAcA,eAAe,MAAM;QACrC,OAAOL,gBAAgBX,MAAMgB;IAC/B;IACA,IAAIxD,OAAOuB,UAAU,IAAIiC,eAAe,MAAM;QAC5C,yEAAyE;QACzE,mBAAmB;QACnB,OAAO;YAAEvD,MAAM;YAAWsD,MAAM;QAAK;IACvC;IACA,0EAA0E;IAC1E,cAAc;IACd,OAAO;QACLtD,MAAM;QACNsD,MAAMtE,YAAY;YAAE4D,QAAQ;YAAa5C,MAAM;QAAU;IAC3D;AACF;AAEA;;;CAGC,GACD,OAAO,MAAMgD,mBAAmB,CAC9BT,MACAkB;IAEA,IAAIrE,MAAMqE,cAAc;QACtB,MAAMC,OAAOpE,SAASmE,YAAYJ,IAAI,CAAC,CAAC,EAAE;QAC1C,OAAOrE,YAAY;YAAE4D,QAAQ;YAAa5C,MAAM0D;YAAMrB,SAAS;gBAACqB;aAAK;QAAC;IACxE;IACA,OAAO1E,YAAY;QACjB2E,aAAaF,YAAYE,WAAW,IAAI;QACxCC,YAAY,CAAC,CAACH,YAAYG,UAAU;QACpC3D,YAAYA,WAAWwD;QACvBI,YAAY,CAAC,CAACJ,YAAYK,QAAQ;QAClC,GAAGxB,gBAAgBC,MAAMkB,YAAY;IACvC;AACF,EAAE;AAEF;;;CAGC,GACD,MAAMM,uBAAuB,CAC3BxB,MACAmB,MACA3D;IAEA,MAAMiE,YAAY1B,gBAAgBC,MAAMxC;IACxC,MAAMkE,gBACJlE,OAAOC,IAAI,KAAK,YAChB,CAAC,CAAED,CAAAA,OAAOuB,UAAU,IAAIvB,OAAOwB,iBAAiB,AAAD;IACjD,OAAOvC,YAAY;QACjB0E;QACAC,aAAa5D,OAAO4D,WAAW,IAAI;QACnCC,YAAY,CAAC,CAAC7D,OAAO6D,UAAU;QAC/B3D,YAAYA,WAAWF;QACvB,GAAGiE,SAAS;QACZ,GAAIC,gBAAgB;YAAEjE,MAAM0D;QAAK,IAAI,CAAC,CAAC;IACzC;AACF;AAEA;;CAEC,GACD,MAAMN,kBAAkB,CAACb,MAAYxC;IACnC,MAAMmE,WAAW,IAAIhC,IAAInC,OAAOmE,QAAQ,IAAI,EAAE;IAC9C,OAAO9C,OAAO+C,OAAO,CAACpE,OAAOuB,UAAU,IAAI,CAAC,GAAGuB,GAAG,CAAC,CAAC,CAACa,MAAMU,WAAW,GAAM,CAAA;YAC1E,GAAGpB,iBAAiBT,MAAM6B,WAAW;YACrCV;YACAW,YAAYH,SAASI,GAAG,CAACZ;QAC3B,CAAA;AACF;AAEA;;;CAGC,GACD,MAAMa,uBAAuB,CAAChC;IAC5B,MAAMiC,UAAU,IAAIC;IACpB,KAAK,MAAMhB,eAAerC,OAAOsD,MAAM,CAACnC,KAAKoC,UAAU,EAAEC,WAAW,CAAC,GAAI;QACvE,MAAM,EAAEC,aAAa,EAAE,GAAGxF,aAAakD,MAAMkB;QAC7C,IAAI,CAACoB,eAAeC,gBAAgB,CAACD,cAAcE,OAAO,EAAE;QAC5D,KAAK,MAAMC,aAAa5D,OAAOsD,MAAM,CAACG,cAAcE,OAAO,EAAG;YAC5D,IAAI,OAAOC,cAAc,YAAY,CAACA,UAAUC,UAAU,CAAC,OACzD;YACF,MAAMC,YAAY5F,SAAS0F,UAAU,CAAC,EAAE;YACxC,MAAM1D,aAAakD,QAAQW,GAAG,CAACD,cAAc,IAAIhD;YACjDZ,WAAW8D,GAAG,CAACP,cAAcC,YAAY;YACzCN,QAAQa,GAAG,CAACH,WAAW5D;QACzB;IACF;IACA,OAAOkD;AACT;AAEA;;;;;;CAMC,GACD,MAAMc,yBAAyB,CAAC/C,MAAYN;IAC1C,MAAMuC,UAAUD,qBAAqBhC;IACrC,IAAIiC,QAAQe,IAAI,KAAK,GAAG,OAAOtD;IAE/B,MAAMuD,SAAS,IAAIf,IAAIxC,OAAOY,GAAG,CAAC,CAACT,IAAM;YAACA,EAAEsB,IAAI;YAAEtB;SAAE;IACpD,OAAOH,OAAOY,GAAG,CAAC,CAAC4C;QACjB,MAAMnE,aAAakD,QAAQW,GAAG,CAACM,MAAM/B,IAAI;QACzC,IAAI,CAACpC,YAAY,OAAOmE;QACxB,OAAO;YACL,GAAGA,KAAK;YACRnE,YAAYmE,MAAMnE,UAAU,CAACuB,GAAG,CAAC,CAAC6C;gBAChC,IAAI,CAACpE,WAAWgD,GAAG,CAACoB,SAAShC,IAAI,KAAKgC,SAAS9C,MAAM,KAAK,aAAa;oBACrE,OAAO8C;gBACT;gBACA,MAAMC,aAAaH,OAAOL,GAAG,CAACO,SAAS1F,IAAI;gBAC3C,OAAO2F,YAAY/C,WAAW,SAC1B;oBAAE,GAAG8C,QAAQ;oBAAE1F,MAAM2F,WAAW3F,IAAI;oBAAEqC,SAAS,EAAE;gBAAC,IAClDqD;YACN;QACF;IACF;AACF;AAEA,MAAME,cAAc,CAACrD,OACnB+C,uBACE/C,MACAnB,OAAO+C,OAAO,CAAC5B,KAAKoC,UAAU,EAAEC,WAAW,CAAC,GAAG/B,GAAG,CAAC,CAAC,CAACa,MAAMD,YAAY,GACrEM,qBAAqBxB,MAAMmB,MAAMrE,aAAakD,MAAMkB;AAI1D;;CAEC,GACD,MAAMoC,mBAAmB,CACvBtD,MACAuD;IAEA,MAAMC,cAAc1G,aAClBkD,MACAuD,OAAOC,WAAW;IAEpB,uEAAuE;IACvE,IAAI,CAACA,aAAapE,WAAWP,OAAOC,IAAI,CAAC0E,YAAYpE,OAAO,EAAEhB,MAAM,KAAK,GACvE,OAAO;IAET,MAAMqF,YAAYtE,mBAAmBqE,YAAYpE,OAAO;IACxD,MAAMsE,OAAOjD,iBACXT,MACCwD,YAAYpE,OAAO,CAACqE,UAAU,EAAEjG,UAAU,CAAC;IAE9C,OAAO;QACL,GAAGkG,IAAI;QACPvC,MAAM;QACNwC,MAAM;QACNC,IAAI;QACJH;QACA3B,YAAY,CAAC,CAAC0B,YAAY7B,QAAQ;QAClCP,aAAaoC,YAAYpC,WAAW,IAAIsC,KAAKtC,WAAW;IAC1D;AACF;AAEA;;;;CAIC,GACD,MAAMyC,kBAAkB,CACtB7D,MACAuD,QACAO,iBAAmC,EAAE;IAErC,MAAM1D,WAAoB2D,gBAAgB/D,MAAM8D,gBAAgB;WAC1DP,OAAOS,UAAU,IAAI,EAAE;KAC5B,EAAEpE,OAAO,CAAC,CAACqE;QACV,MAAMC,QAAQpH,aAAoDkD,MAAMiE;QACxE,IAAI,CAACC,OAAO,OAAO,EAAE;QACrB,MAAMR,OAAOjD,iBAAiBT,MAAOkE,MAAM1G,MAAM,IAAI,CAAC;QACtD,OAAO;YACL;gBACE,GAAGkG,IAAI;gBACPvC,MAAM+C,MAAM/C,IAAI;gBAChBwC,MAAMO,MAAM/C,IAAI;gBAChByC,IAAIM,MAAMN,EAAE;gBACZH,WAAW;gBACX3B,YAAY,CAAC,CAACoC,MAAMvC,QAAQ;gBAC5BP,aAAa8C,MAAM9C,WAAW,GAAG8C,MAAM9C,WAAW,GAAGsC,KAAKtC,WAAW;YACvE;SACD;IACH;IAEA,MAAM+C,OAAOb,iBAAiBtD,MAAMuD;IACpC,MAAMa,SAASD,OAAO;WAAI/D;QAAU+D;KAAK,GAAG/D;IAE5C,OAAO;WAAIgE;KAAO,CAACC,IAAI,CAAC,CAACC,GAAGC,IAC1BD,EAAExC,UAAU,KAAKyC,EAAEzC,UAAU,GAAG,IAAIwC,EAAExC,UAAU,GAAG,CAAC,IAAI;AAE5D;AAEA;;;;CAIC,GACD,MAAMiC,kBAAkB,CACtB/D,MACA8D,gBACAU;IAEA,MAAMC,MAAM,CAACR;QACX,MAAMC,QAAQpH,aAAoDkD,MAAMiE;QACxE,OAAOC,QAAQQ,iBAAiBR,SAAS;IAC3C;IACA,MAAMS,aAAa,IAAIhF,IAAI6E,oBAAoBlE,GAAG,CAACmE;IACnD,MAAMG,YAAYd,eAAe5D,MAAM,CAAC,CAAC+D,IAAM,CAACU,WAAW5C,GAAG,CAAC0C,IAAIR;IACnE,OAAO;WAAIW;WAAcJ;KAAoB;AAC/C;AAEA;;CAEC,GACD,MAAMK,iBAAiB,CACrB7E,MACAuD,SAEA1E,OAAO+C,OAAO,CAAC2B,OAAOuB,SAAS,IAAI,CAAC,GAAGlF,OAAO,CAAC,CAAC,CAACN,MAAMyF,SAAS;QAC9D,MAAMC,WAAWlI,aACfkD,MACA+E;QAEF,IAAI,CAACC,UAAU,OAAO,EAAE;QAExB,MAAM5F,UAAU4F,SAAS5F,OAAO,IAAI,CAAC;QACrC,MAAMqE,YAAY5E,OAAOC,IAAI,CAACM,SAAShB,MAAM,GACzCe,mBAAmBC,WACnBX;QACJ,MAAMwG,iBAAiBxB,YAClBrE,OAAO,CAACqE,UAAU,EAAEjG,SACrBiB;QAEJ,OAAO;YACL;gBACE,GAAIwG,iBACAxE,iBAAiBT,MAAMiF,kBACvBxI,YAAY;oBAAE4D,QAAQ;oBAAW5C,MAAM;gBAAO,EAAE;gBACpD0D,MAAM;gBACN7B,MAAMD,kBAAkBC;gBACxBsE,IAAI;gBACJxC,aAAa4D,SAAS5D,WAAW,IAAI;YACvC;SACD;IACH;AAEF,MAAM8D,iBAAiB,CACrBlF,MACAmF,MACAC,QACA7B,QACAO,iBAAmC,EAAE;IAErC,MAAME,aAAaH,gBAAgB7D,MAAMuD,QAAQO;IACjD,MAAMgB,YAAYD,eAAe7E,MAAMuD;IACvC,MAAM8B,KAAK,AAAC9B,OAAmC+B,WAAW;IAE1D,OAAO;QACLD;QACAlE,MAAMkE;QACND,QAAQA,OAAOG,WAAW;QAC1BJ;QACA/D,aAAamC,OAAOnC,WAAW,IAAI;QACnCoE,MAAMjC,OAAOiC,IAAI,IAAI;QACrBnE,YAAY,CAAC,CAACkC,OAAOlC,UAAU;QAC/B2C;QACAyB,gBAAgBzB,WAAWhG,IAAI,CAAC,CAACiG,IAAMA,EAAEL,EAAE,KAAK,WAAW;QAC3DkB;QACAhF,SAASL,eAAe;eAAIuE;eAAec;SAAU;IACvD;AACF;AAEA,MAAMY,kBAAkB,CAAC1F,OACvBnB,OAAO+C,OAAO,CAAC5B,KAAK2F,KAAK,IAAI,CAAC,GAAG/F,OAAO,CAAC,CAAC,CAACuF,MAAMS,cAAc;QAC7D,MAAMC,WAAW/I,aACfkD,MACA4F;QAEF,IAAI,CAACC,UAAU,OAAO,EAAE;QACxB,MAAM/B,iBAAiB+B,SAAS7B,UAAU,IAAI,EAAE;QAChD,OAAO1G,aAAasC,OAAO,CAAC,CAACwF;YAC3B,MAAM7B,SAASsC,QAAQ,CAACT,OAAgC;YACxD,OAAO7B,SACH;gBAAC2B,eAAelF,MAAMmF,MAAMC,QAAQ7B,QAAQO;aAAgB,GAC5D,EAAE;QACR;IACF;AAEF,MAAMgC,sBAAsB,CAAC9F;IAC3B,MAAM+F,aAAaL,gBAAgB1F;IACnC,OAAO;QACLmB,MAAMzE;QACNqJ;QACAjG,SAAS;eAAI,IAAIH,IAAIoG,WAAWnG,OAAO,CAAC,CAACoG,KAAOA,GAAGlG,OAAO;SAAG;IAC/D;AACF;AAEA;;CAEC,GACD,OAAO,MAAMmG,mBAAmB,CAC9BjG,MACAgG,KAEChG,KAAK2F,KAAK,EAAE,CAACK,GAAGb,IAAI,CAAC,EAA2C,CAC/Da,GAAGZ,MAAM,CAACc,WAAW,GACtB,CAAC;AAEJ;;;CAGC,GACD,OAAO,MAAMxB,mBAAmB,CAACyB,YAGnB,GAAGA,UAAUvC,EAAE,CAAC,CAAC,EAAEuC,UAAUhF,IAAI,EAAE,CAAC;AAElD;;;;;CAKC,GACD,OAAO,MAAMiF,yBAAyB,CACpCpG,MACAuD,QACAO,iBAAmC,EAAE,GAErCjF,OAAOwH,WAAW,CAChB;WAAIvC;WAAoBP,QAAQS,cAAc,EAAE;KAAE,CAAC1D,GAAG,CAAC,CAAC2D;QACtD,MAAMC,QAAQpH,aAAakD,MAAMiE;QACjC,OAAO;YAACS,iBAAiBR;YAAQA;SAAM;IACzC,IACA;AAEJ;;CAEC,GACD,OAAO,MAAMoC,wBAAwB,CACnCtG,MACAgG;IAEA,MAAMH,WAAW/I,aACfkD,MACAA,KAAK2F,KAAK,EAAE,CAACK,GAAGb,IAAI,CAAC;IAEvB,OAAOU,UAAU7B,cAAc,EAAE;AACnC,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMuC,yBAAyB,CACpC/I,QACAa;IAEA,MAAMmI,UAAUnK,UAAUgC;IAC1B,OAAO,AAACb,MAAM,CAACgJ,QAAQ,IAAyC,EAAE;AACpE,EAAE;AAEF;;;;CAIC,GACD,OAAO,MAAMC,YAAY,CACvBzG,MACA0G,cACAxD,OACA1F,QACAmJ,UAAsB,IAAIhH,KAAK;IAE/B,IAAIgH,QAAQ5E,GAAG,CAACmB,QAAQ;IACxByD,QAAQ9D,GAAG,CAACK;IAEZ,IACEA,MAAM7C,MAAM,KAAK,gBACjB,0BAA0B7C,UAC1BA,OAAOyD,oBAAoB,EAC3B;QACA,IAAIpE,MAAMW,OAAOyD,oBAAoB,GAAG;YACtC,MAAME,OAAOpE,SAASS,OAAOyD,oBAAoB,CAACH,IAAI,CAAC,CAAC,EAAE;YAC1D,IAAI4F,YAAY,CAACvF,KAAK,IAAI,CAAC+B,MAAMnC,IAAI,EAAE;gBACrCmC,MAAMnC,IAAI,GAAG2F,YAAY,CAACvF,KAAK;YACjC;QACF,OAAO,IAAI+B,MAAMnC,IAAI,IAAI,OAAOvD,OAAOyD,oBAAoB,KAAK,WAAW;YACzEwF,UACEzG,MACA0G,cACAxD,MAAMnC,IAAI,EACVvD,OAAOyD,oBAAoB,EAC3B0F;QAEJ;IACF,OAAO,IAAIzD,MAAM7C,MAAM,KAAK,WAAW,WAAW7C,UAAUA,OAAOkD,KAAK,EAAE;QACxE,IAAI7D,MAAMW,OAAOkD,KAAK,GAAG;YACvB,MAAMS,OAAOpE,SAASS,OAAOkD,KAAK,CAACI,IAAI,CAAC,CAAC,EAAE;YAC3C,IAAI4F,YAAY,CAACvF,KAAK,IAAI,CAAC+B,MAAMnC,IAAI,EAAE;gBACrCmC,MAAMnC,IAAI,GAAG2F,YAAY,CAACvF,KAAK;YACjC;QACF,OAAO,IAAI+B,MAAMnC,IAAI,EAAE;YACrB0F,UAAUzG,MAAM0G,cAAcxD,MAAMnC,IAAI,EAAEvD,OAAOkD,KAAK,EAAEiG;QAC1D;IACF;IAEAzD,MAAMnE,UAAU,CACbmB,MAAM,CAAC,CAAC+D,IAAM,CAAC0C,QAAQ5E,GAAG,CAACkC,MAAMzG,OAAOuB,UAAU,EAAE,CAACzC,KAAK2H,EAAE9C,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE,EACxEyF,OAAO,CAAC,CAACzD;QACR,MAAM0D,YAAY/J,aAChBkD,MACAxC,OAAOuB,UAAU,AAAC,CAACzC,KAAK6G,SAAShC,IAAI,EAAE,CAAC,EAAE,CAAC,EAAE;QAE/CsF,UAAUzG,MAAM0G,cAAcvD,UAAU0D,WAAWF;IACrD;IAEF,IAAInK,sBAAsBuF,GAAG,CAACmB,MAAM7C,MAAM,GAAG;QAC3C,MAAMyG,gBAAgBP,uBAAuB/I,QAAQ0F,MAAM7C,MAAM;QACjE6C,MAAMnE,UAAU,CAAC6H,OAAO,CAAC,CAACzD,UAAU4D;YAClC,MAAMF,YAAY/J,aAAakD,MAAM8G,aAAa,CAACC,EAAE;YACrD,IAAIF,WAAW;gBACbJ,UAAUzG,MAAM0G,cAAcvD,UAAU0D,WAAWF;YACrD;QACF;IACF;AACF,EAAE;AAEF;;CAEC,GACD,MAAMK,aAAa,CAAChH,MAAYiH;IAC9B,MAAMP,eAAe/J,kBAAkBsK,KAAKvH,MAAM;IAClD,MAAMiH,UAAU,IAAIhH;IAEpBsH,KAAKvH,MAAM,CAACkH,OAAO,CAAC,CAAC1D;QACnB,MAAM1F,SAASV,aACbkD,MACAA,KAAKoC,UAAU,EAAEC,SAAS,CAACa,MAAM/B,IAAI,CAAC;QAExC,IAAI3D,QAAQ;YACViJ,UAAUzG,MAAM0G,cAAcxD,OAAO1F,QAAQmJ;QAC/C;IACF;IAEAM,KAAKC,QAAQ,CAACN,OAAO,CAAC,CAACO;QACrBA,QAAQpB,UAAU,CAACa,OAAO,CAAC,CAACZ;YAC1B,MAAMzC,SAAS0C,iBAAiBjG,MAAMgG;YACtC,MAAMoB,sBAAsBhB,uBAC1BpG,MACAuD,QACA+C,sBAAsBtG,MAAMgG;YAG9BA,GAAGhC,UAAU,CAAC4C,OAAO,CAAC,CAACT;gBACrB,MAAMkB,gBACJD,mBAAmB,CACjB1C,iBAAiB;oBAAEd,IAAIuC,UAAUvC,EAAE;oBAAEzC,MAAMgF,UAAUxC,IAAI;gBAAC,GAC3D;gBACH,MAAM2D,sBAAsBxK,aAAakD,MAAMqH,eAAe7J;gBAC9D,IAAI8J,qBAAqB;oBACvBb,UACEzG,MACA0G,cACAP,WACAmB,qBACAX;gBAEJ,OAAO,IAAIR,UAAUvC,EAAE,KAAK,QAAQ;oBAClC,MAAM2D,WAAWzK,aAAakD,MAAMuD,QAAQC;oBAC5C,MAAMgE,iBAAiB1K,aACrBkD,MACAuH,UAAUnI,SAAS,CAAC+G,UAAU1C,SAAS,CAAC,EAAEjG;oBAE5C,IAAIgK,gBAAgB;wBAClBf,UAAUzG,MAAM0G,cAAcP,WAAWqB,gBAAgBb;oBAC3D;gBACF;YACF;YAEAX,GAAGlB,SAAS,CAAC8B,OAAO,CAAC,CAAC5B;gBACpB,MAAMyC,eAAe3K,aACnBkD,MACAuD,QAAQuB,WAAW,CAACE,SAAS1F,IAAI,CAAC;gBAEpCT,OAAOC,IAAI,CAAC2I,cAAcrI,WAAW,CAAC,GAAGwH,OAAO,CAAC,CAACnD;oBAChD,MAAMwB,iBAAiBnI,aACrBkD,MACAyH,cAAcrI,SAAS,CAACqE,UAAU,EAAEjG;oBAEtC,IAAIyH,gBAAgB;wBAClBwB,UAAUzG,MAAM0G,cAAc1B,UAAUC,gBAAgB0B;oBAC1D;gBACF;YACF;QACF;IACF;AACF;AAEA;;;CAGC,GACD,MAAMe,uBAAuB,CAC3BhB,cACAxD,OACAyD;IAEA,IAAI,CAACnK,sBAAsBuF,GAAG,CAACmB,MAAM7C,MAAM,KAAKsG,QAAQ5E,GAAG,CAACmB,QAAQ;IACpEyD,QAAQ9D,GAAG,CAACK;IAEZ,MAAMyE,UAAUzE,MAAMnE,UAAU,CAACmB,MAAM,CAAC,CAAC+D,IAAM,CAACA,EAAE9C,IAAI;IACtD,MAAMiC,aAAauE,QAChBzH,MAAM,CAAC,CAAC+D,IAAMA,EAAE5D,MAAM,KAAK,aAC3BT,OAAO,CAAC,CAACgI,IAAOlB,YAAY,CAACkB,EAAEnK,IAAI,CAAC,GAAG;YAACiJ,YAAY,CAACkB,EAAEnK,IAAI,CAAC;SAAC,GAAG,EAAE;IAErE,wEAAwE;IACxE2F,WAAWwD,OAAO,CAAC,CAAC/G,IAAM6H,qBAAqBhB,cAAc7G,GAAG8G;IAEhE,mEAAmE;IACnE,MAAMkB,iBAAiBzE,WAAWlD,MAAM,CAAC,CAACL,IAAMA,EAAEQ,MAAM,KAAK;IAC7D,MAAMyH,qBAAqB;WACtBH,QAAQzH,MAAM,CAAC,CAAC+D,IAAMA,EAAE5D,MAAM,KAAK;WACnC+C,WAAWlD,MAAM,CAAC,CAACL,IAAMA,EAAEQ,MAAM,KAAK;KAC1C;IAED,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,6EAA6E;IAC7E,4EAA4E;IAC5E,MAAM0H,mBAAmB,CAAClI,IACxBA,EAAEkB,IAAI,IAAIxE,iBAAiBwF,GAAG,CAAClC,EAAEQ,MAAM,IACnC0H,iBAAiBlI,EAAEkB,IAAI,IACvBnE,gBAAgBmF,GAAG,CAAClC,EAAEpC,IAAI,KAC1B,CAAC;YAAC;YAAQ;SAAY,CAACK,QAAQ,CAAC+B,EAAEX,MAAM,IAAI;IAClD,MAAM8I,sBAAsBF,mBAAmB5H,MAAM,CACnD,CAACL,IAAMA,EAAEQ,MAAM,KAAK,WAAW,CAAC0H,iBAAiBlI;IAEnD,IAAImI,oBAAoB5J,MAAM,GAAG,GAAG;QAClC,MAAM,IAAI6J,MACR,CAAC,QAAQ,EAAE/E,MAAM/B,IAAI,CAAC,UAAU,EAAE9E,UAAU6G,MAAM7C,MAAM,EAAE,2MAA2M,CAAC;IAE1Q;IAEA,IAAI6C,MAAM7C,MAAM,KAAK,YAAYyH,mBAAmB1J,MAAM,GAAG,GAAG;QAC9D,MAAM,IAAI6J,MACR,CAAC,QAAQ,EAAE/E,MAAM/B,IAAI,CAAC,wGAAwG,CAAC;IAEnI;IAEA+B,MAAM2E,cAAc,GAAGA;IACvB3E,MAAM4E,kBAAkB,GAAGA;AAC7B;AAEA,MAAMI,wBAAwB,CAACjB;IAC7B,MAAMP,eAAe/J,kBAAkBsK,KAAKvH,MAAM;IAClD,MAAMiH,UAAU,IAAIhH;IACpBsH,KAAKvH,MAAM,CAACkH,OAAO,CAAC,CAAC1D,QACnBwE,qBAAqBhB,cAAcxD,OAAOyD;AAE9C;AAEA,MAAMwB,YAAY,CAACnI,MAAYmB,OAC7B,CAAC,CACCrE,aACEkD,MACAA,KAAKoC,UAAU,EAAEC,SAAS,CAAClB,KAAK,GAEjC,CAAC,mBAAmB;AAEzB;;;;CAIC,GACD,MAAMiH,WAAW,CAACpI,MAAYmB,OAC5B,AACErE,aACEkD,MACAA,KAAKoC,UAAU,EAAEC,SAAS,CAAClB,KAAK,GAEjC,CAAC,yBAAyB,IAAIA;AAEnC;;;;;;;CAOC,GACD,MAAMkH,4BAA4B,CAChCrI,MACAsC,eACAgG;IAEA,IAAIhG,cAAcE,OAAO,EAAE;QACzB,MAAMA,UAAkC,EAAE;QAC1C,KAAK,MAAM,CAACrC,OAAOoI,IAAI,IAAI1J,OAAO+C,OAAO,CAACU,cAAcE,OAAO,EAAG;YAChE,IAAI,OAAO+F,QAAQ,YAAY,CAACA,IAAI7F,UAAU,CAAC,OAAO;YACtD,MAAMC,YAAY5F,SAASwL,IAAI,CAAC,EAAE;YAClC,IAAID,eAAevG,GAAG,CAACY,YAAYH,QAAQgG,IAAI,CAAC;gBAAErI;gBAAOwC;YAAU;QACrE;QACA,OAAOH;IACT;IACA,OAAO;WAAI8F;KAAe,CACvBpI,MAAM,CAAC,CAACiB,OAAS,CAACgH,UAAUnI,MAAMmB,MACnC,4EAA4E;IAC5E,mBAAmB;KAClBb,GAAG,CAAC,CAACa,OAAU,CAAA;YAAEhB,OAAOiI,SAASpI,MAAMmB;YAAOwB,WAAWxB;QAAK,CAAA;AACnE;AAEA;;;CAGC,GACD,MAAMsH,8BAA8B,CAClCzI,MACAkD,OACA1F;IAEA,MAAM,EAAE8E,aAAa,EAAE,GAAG9E;IAC1B,IAAI,CAAC8E,eAAeC,cAAc,OAAO9D;IAEzC,MAAM6J,iBAAiB,IAAI3I,IACzB,AAACuD,CAAAA,MAAM2E,cAAc,IAAI,EAAE,AAAD,EAAGvH,GAAG,CAAC,CAACT,IAAMA,EAAEsB,IAAI;IAEhD,MAAMqB,UAAU6F,0BAA0BrI,MAAMsC,eAAegG;IAE/D,OAAO9F,QAAQpE,MAAM,GAAG,IACpB;QAAEmE,cAAcD,cAAcC,YAAY;QAAEC;IAAQ,IACpD/D;AACN;AAEA;;;;;;CAMC,GACD,MAAMiK,yBAAyB,CAC7B1I,MACA0D,MACAlG,QACAkC;IAEA,MAAM,EAAE4C,aAAa,EAAE,GAAG9E;IAC1B,IAAI,CAAC8E,eAAeC,cAAc,OAAO9D;IAEzC,MAAMkK,eAAe,IAAIhJ,IACvBD,OACGQ,MAAM,CACL,CAACL,IACCA,EAAEQ,MAAM,KAAK,YACb,AAACR,CAAAA,EAAEgI,cAAc,IAAI,EAAE,AAAD,EAAGe,IAAI,CAAC,CAACC,IAAMA,EAAE1H,IAAI,KAAKuC,KAAKvC,IAAI,GAE5Db,GAAG,CAAC,CAACT,IAAMA,EAAEsB,IAAI;IAEtB,IAAIwH,aAAa3F,IAAI,KAAK,GAAG,OAAOvE;IAEpC,MAAM+D,UAAU6F,0BAA0BrI,MAAMsC,eAAeqG;IAE/D,OAAOnG,QAAQpE,MAAM,GAAG,IACpB;QAAEmE,cAAcD,cAAcC,YAAY;QAAEC;QAASsG,QAAQ;IAAK,IAClErK;AACN;AAEA;;;;;;;CAOC,GACD,MAAMsK,wBAAwB,CAAC/I,MAAYiH;IACzCA,KAAKvH,MAAM,CAACkH,OAAO,CAAC,CAAC1D;QACnB,MAAM1F,SAASV,aACbkD,MACAA,KAAKoC,UAAU,EAAEC,SAAS,CAACa,MAAM/B,IAAI,CAAC;QAExC,IAAI,CAAC3D,QAAQ;QAEb,IAAI0F,MAAM7C,MAAM,KAAK,YAAY6C,MAAM7C,MAAM,KAAK,UAAU;YAC1D,MAAMiC,gBAAgBmG,4BAA4BzI,MAAMkD,OAAO1F;YAC/D,IAAI8E,eAAeY,MAAMZ,aAAa,GAAGA;QAC3C,OAAO,IAAIY,MAAM7C,MAAM,KAAK,aAAa;YACvC,MAAMiC,gBAAgBoG,uBACpB1I,MACAkD,OACA1F,QACAyJ,KAAKvH,MAAM;YAEb,IAAI4C,eAAeY,MAAMZ,aAAa,GAAGA;QAC3C;IACF;AACF;AAEA;;;;;;;;;;;CAWC,GACD,MAAM0G,+BAA+B,CAAC/B;IACpC,MAAMP,eAAe/J,kBAAkBsK,KAAKvH,MAAM;IAElD,4EAA4E;IAC5E,2DAA2D;IAC3D,MAAMuJ,sBAAsB,IAAI/G;IAChC,MAAMgH,cAAc,IAAIvJ;IAExB,KAAK,MAAMuD,SAAS+D,KAAKvH,MAAM,CAAE;QAC/B,MAAM4C,gBAAgBY,MAAMZ,aAAa;QACzC,IAAI,CAACA,eAAe;QACpB,MAAMW,SAAS,IAAIf;QACnB,KAAK,MAAM,EAAE/B,KAAK,EAAEwC,SAAS,EAAE,IAAIL,cAAcE,OAAO,CAAE;YACxDS,OAAOH,GAAG,CAACH,WAAW;mBAAKM,OAAOL,GAAG,CAACD,cAAc,EAAE;gBAAGxC;aAAM;QACjE;QACA,KAAK,MAAM,CAACwC,WAAWR,OAAO,IAAIc,OAAQ;YACxC,MAAMwB,MAAM,GAAG9B,UAAU,CAAC,EAAEL,cAAcC,YAAY,EAAE;YACxD,MAAM4G,WAAWF,oBAAoBrG,GAAG,CAAC6B;YACzC,MAAM2E,WAAW,IAAIzJ,IAAIwC;YACzB,IAAIgH,YAAY,CAACE,UAAUF,UAAUC,WAAW;gBAC9C,6DAA6D;gBAC7DF,YAAYrG,GAAG,CAAC4B;YAClB;YACAwE,oBAAoBnG,GAAG,CAAC2B,KAAK0E,WAAWG,MAAMH,UAAUC,YAAYA;QACtE;IACF;IAEA,KAAK,MAAM,CAAC3E,KAAKtC,OAAO,IAAI8G,oBAAqB;QAC/C,IAAIC,YAAYnH,GAAG,CAAC0C,MAAM;QAC1B,MAAM,CAAC9B,WAAWJ,aAAa,GAAGkC,IAAI8E,KAAK,CAAC;QAC5C,MAAMpG,WAAWuD,YAAY,CAAC/D,UAAU,EAAE5D,WAAWf,KACnD,CAACiG,IAAMA,EAAE9C,IAAI,KAAKoB;QAEpB,yEAAyE;QACzE,mCAAmC;QACnC,IAAIY,YAAaA,CAAAA,SAAS1F,IAAI,KAAK,YAAY0F,SAASqG,MAAM,AAAD,GAAI;YAC/DrG,SAASsG,kBAAkB,GAAG;mBAAItH;aAAO,CACtC7B,GAAG,CAAC,CAACoJ,IAAMC,KAAKC,SAAS,CAACF,IAC1BG,IAAI,CAAC;QACV;IACF;AACF;AAEA,MAAMR,YAAY,CAAC/E,GAAgBC,IACjCD,EAAEtB,IAAI,KAAKuB,EAAEvB,IAAI,IAAI;WAAIsB;KAAE,CAACwF,KAAK,CAAC,CAACJ,IAAMnF,EAAExC,GAAG,CAAC2H;AAEjD,MAAMJ,QAAQ,CAAChF,GAAgBC,IAC7B,IAAI5E,IAAI;WAAI2E;WAAMC;KAAE;AAEtB;;;CAGC,GACD,OAAO,MAAMwF,kBAAkB,CAAC/J;IAC9B,MAAMiH,OAAmB;QACvBvH,QAAQ2D,YAAYrD;QACpBkH,UAAU;YAACpB,oBAAoB9F;SAAM;IACvC;IACAgH,WAAWhH,MAAMiH;IACjBiB,sBAAsBjB;IACtB8B,sBAAsB/I,MAAMiH;IAC5B+B,6BAA6B/B;IAC7B,OAAOA;AACT,EAAE"}
|
|
@@ -1,41 +1,31 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveIfRef = exports.resolveRef = exports.splitRef = exports.isRef = void 0;
|
|
4
1
|
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ /**
|
|
5
5
|
* Return whether or not the given OpenAPI object is a reference
|
|
6
|
-
*/
|
|
7
|
-
const isRef = (obj) => !!obj && typeof obj === 'object' && '$ref' in obj;
|
|
8
|
-
exports.isRef = isRef;
|
|
6
|
+
*/ export const isRef = (obj)=>!!obj && typeof obj === 'object' && '$ref' in obj;
|
|
9
7
|
/**
|
|
10
8
|
* Split a reference into its component parts
|
|
11
9
|
* eg: #/components/schemas/Foo -> ["components", "schemas", "Foo"]
|
|
12
|
-
*/
|
|
13
|
-
const splitRef = (ref) => ref
|
|
14
|
-
.slice(2)
|
|
15
|
-
.split('/')
|
|
16
|
-
.map((p) => p.replace(/~0/g, '~').replace(/~1/g, '/'));
|
|
17
|
-
exports.splitRef = splitRef;
|
|
10
|
+
*/ export const splitRef = (ref)=>ref.slice(2).split('/').map((p)=>p.replace(/~0/g, '~').replace(/~1/g, '/'));
|
|
18
11
|
/**
|
|
19
12
|
* Resolve the given reference in the spec
|
|
20
|
-
*/
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const resolved = refParts.reduce((resolvedInSpec, refPart) => resolvedInSpec?.[refPart], spec);
|
|
13
|
+
*/ export const resolveRef = (spec, ref)=>{
|
|
14
|
+
const refParts = splitRef(ref);
|
|
15
|
+
const resolved = refParts.reduce((resolvedInSpec, refPart)=>resolvedInSpec?.[refPart], spec);
|
|
24
16
|
if (!resolved) {
|
|
25
17
|
throw new Error(`Unable to resolve ref ${ref} in spec`);
|
|
26
18
|
}
|
|
27
19
|
return resolved;
|
|
28
20
|
};
|
|
29
|
-
exports.resolveRef = resolveRef;
|
|
30
21
|
/**
|
|
31
22
|
* Resolve the given object in an openapi spec if it's a ref
|
|
32
|
-
*/
|
|
33
|
-
const resolveIfRef = (spec, possibleRef) => {
|
|
23
|
+
*/ export const resolveIfRef = (spec, possibleRef)=>{
|
|
34
24
|
let resolved = possibleRef;
|
|
35
|
-
if (
|
|
36
|
-
resolved =
|
|
25
|
+
if (isRef(possibleRef)) {
|
|
26
|
+
resolved = resolveRef(spec, possibleRef.$ref);
|
|
37
27
|
}
|
|
38
28
|
return resolved;
|
|
39
29
|
};
|
|
40
|
-
|
|
30
|
+
|
|
41
31
|
//# sourceMappingURL=refs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/open-api/utils/refs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { OpenAPIV3 } from 'openapi-types';\nimport type { Spec } from './types';\n\n/**\n * Return whether or not the given OpenAPI object is a reference\n */\nexport const isRef = (obj: unknown): obj is OpenAPIV3.ReferenceObject =>\n !!obj && typeof obj === 'object' && '$ref' in obj;\n\n/**\n * Split a reference into its component parts\n * eg: #/components/schemas/Foo -> [\"components\", \"schemas\", \"Foo\"]\n */\nexport const splitRef = (ref: string): string[] =>\n ref\n .slice(2)\n .split('/')\n .map((p) => p.replace(/~0/g, '~').replace(/~1/g, '/'));\n\n/**\n * Resolve the given reference in the spec\n */\nexport const resolveRef = (spec: Spec, ref: string): any => {\n const refParts = splitRef(ref);\n const resolved = refParts.reduce(\n (resolvedInSpec, refPart) => resolvedInSpec?.[refPart],\n spec,\n );\n if (!resolved) {\n throw new Error(`Unable to resolve ref ${ref} in spec`);\n }\n return resolved;\n};\n\n/**\n * Resolve the given object in an openapi spec if it's a ref\n */\nexport const resolveIfRef = <T>(\n spec: Spec,\n possibleRef: T | OpenAPIV3.ReferenceObject,\n): T => {\n let resolved = possibleRef;\n if (isRef(possibleRef)) {\n resolved = resolveRef(spec, possibleRef.$ref);\n }\n return resolved as T;\n};\n"],"names":["isRef","obj","splitRef","ref","slice","split","map","p","replace","resolveRef","spec","refParts","resolved","reduce","resolvedInSpec","refPart","Error","resolveIfRef","possibleRef","$ref"],"mappings":"AAAA;;;CAGC,GAID;;CAEC,GACD,OAAO,MAAMA,QAAQ,CAACC,MACpB,CAAC,CAACA,OAAO,OAAOA,QAAQ,YAAY,UAAUA,IAAI;AAEpD;;;CAGC,GACD,OAAO,MAAMC,WAAW,CAACC,MACvBA,IACGC,KAAK,CAAC,GACNC,KAAK,CAAC,KACNC,GAAG,CAAC,CAACC,IAAMA,EAAEC,OAAO,CAAC,OAAO,KAAKA,OAAO,CAAC,OAAO,MAAM;AAE3D;;CAEC,GACD,OAAO,MAAMC,aAAa,CAACC,MAAYP;IACrC,MAAMQ,WAAWT,SAASC;IAC1B,MAAMS,WAAWD,SAASE,MAAM,CAC9B,CAACC,gBAAgBC,UAAYD,gBAAgB,CAACC,QAAQ,EACtDL;IAEF,IAAI,CAACE,UAAU;QACb,MAAM,IAAII,MAAM,CAAC,sBAAsB,EAAEb,IAAI,QAAQ,CAAC;IACxD;IACA,OAAOS;AACT,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMK,eAAe,CAC1BP,MACAQ;IAEA,IAAIN,WAAWM;IACf,IAAIlB,MAAMkB,cAAc;QACtBN,WAAWH,WAAWC,MAAMQ,YAAYC,IAAI;IAC9C;IACA,OAAOP;AACT,EAAE"}
|
|
@@ -4,3 +4,18 @@
|
|
|
4
4
|
*/
|
|
5
5
|
import type { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';
|
|
6
6
|
export type Spec = OpenAPIV3.Document | OpenAPIV3_1.Document;
|
|
7
|
+
/**
|
|
8
|
+
* An OpenAPI schema object, spanning the 3.0 and 3.1 shapes plus the additional
|
|
9
|
+
* JSON-Schema / 3.1 keywords the code generator inspects that are absent from
|
|
10
|
+
* the `openapi-types` 3.0 definition (`patternProperties`, `const`, and the 3.0
|
|
11
|
+
* `nullable` flag).
|
|
12
|
+
*/
|
|
13
|
+
export type OpenApiSchema = (OpenAPIV3.SchemaObject | OpenAPIV3_1.SchemaObject) & {
|
|
14
|
+
nullable?: boolean;
|
|
15
|
+
const?: unknown;
|
|
16
|
+
patternProperties?: {
|
|
17
|
+
[pattern: string]: OpenApiSchemaOrRef;
|
|
18
|
+
};
|
|
19
|
+
discriminator?: OpenAPIV3.DiscriminatorObject;
|
|
20
|
+
};
|
|
21
|
+
export type OpenApiSchemaOrRef = OpenApiSchema | OpenAPIV3.ReferenceObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/open-api/utils/types.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { OpenAPIV3, OpenAPIV3_1 } from 'openapi-types';\n\nexport type Spec = OpenAPIV3.Document | OpenAPIV3_1.Document;\n\n/**\n * An OpenAPI schema object, spanning the 3.0 and 3.1 shapes plus the additional\n * JSON-Schema / 3.1 keywords the code generator inspects that are absent from\n * the `openapi-types` 3.0 definition (`patternProperties`, `const`, and the 3.0\n * `nullable` flag).\n */\nexport type OpenApiSchema = (\n | OpenAPIV3.SchemaObject\n | OpenAPIV3_1.SchemaObject\n) & {\n nullable?: boolean;\n const?: unknown;\n patternProperties?: {\n [pattern: string]: OpenApiSchemaOrRef;\n };\n discriminator?: OpenAPIV3.DiscriminatorObject;\n};\n\nexport type OpenApiSchemaOrRef = OpenApiSchema | OpenAPIV3.ReferenceObject;\n"],"names":[],"mappings":"AAAA;;;CAGC,GAuBD,WAA2E"}
|
|
@@ -1,17 +1,74 @@
|
|
|
1
1
|
// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
|
|
2
2
|
|
|
3
|
+
exports[`preset generator > should run successfully > .codex/config.toml 1`] = `
|
|
4
|
+
"[mcp_servers.nx-plugin-for-aws]
|
|
5
|
+
command = "npx"
|
|
6
|
+
args = [ "-y", "@aws/nx-plugin-mcp" ]
|
|
7
|
+
"
|
|
8
|
+
`;
|
|
9
|
+
|
|
10
|
+
exports[`preset generator > should run successfully > .cursor/mcp.json 1`] = `
|
|
11
|
+
"{
|
|
12
|
+
"mcpServers": {
|
|
13
|
+
"nx-plugin-for-aws": {
|
|
14
|
+
"command": "npx",
|
|
15
|
+
"args": ["-y", "@aws/nx-plugin-mcp"]
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
"
|
|
20
|
+
`;
|
|
21
|
+
|
|
22
|
+
exports[`preset generator > should run successfully > .gemini/settings.json 1`] = `
|
|
23
|
+
"{
|
|
24
|
+
"mcpServers": {
|
|
25
|
+
"nx-plugin-for-aws": {
|
|
26
|
+
"command": "npx",
|
|
27
|
+
"args": ["-y", "@aws/nx-plugin-mcp"]
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
"
|
|
32
|
+
`;
|
|
33
|
+
|
|
3
34
|
exports[`preset generator > should run successfully > .gitignore 1`] = `".grit"`;
|
|
4
35
|
|
|
5
|
-
exports[`preset generator > should run successfully > .
|
|
6
|
-
"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
36
|
+
exports[`preset generator > should run successfully > .kiro/settings/mcp.json 1`] = `
|
|
37
|
+
"{
|
|
38
|
+
"mcpServers": {
|
|
39
|
+
"nx-plugin-for-aws": {
|
|
40
|
+
"command": "npx",
|
|
41
|
+
"args": ["-y", "@aws/nx-plugin-mcp"]
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
"
|
|
11
46
|
`;
|
|
12
47
|
|
|
13
|
-
exports[`preset generator > should run successfully > .
|
|
14
|
-
"{
|
|
48
|
+
exports[`preset generator > should run successfully > .mcp.json 1`] = `
|
|
49
|
+
"{
|
|
50
|
+
"mcpServers": {
|
|
51
|
+
"nx-plugin-for-aws": {
|
|
52
|
+
"command": "npx",
|
|
53
|
+
"args": ["-y", "@aws/nx-plugin-mcp"]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
"
|
|
58
|
+
`;
|
|
59
|
+
|
|
60
|
+
exports[`preset generator > should run successfully > .prettierrc 1`] = `"{"singleQuote":true}"`;
|
|
61
|
+
|
|
62
|
+
exports[`preset generator > should run successfully > .vscode/mcp.json 1`] = `
|
|
63
|
+
"{
|
|
64
|
+
"servers": {
|
|
65
|
+
"nx-plugin-for-aws": {
|
|
66
|
+
"type": "stdio",
|
|
67
|
+
"command": "npx",
|
|
68
|
+
"args": ["-y", "@aws/nx-plugin-mcp"]
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
15
72
|
"
|
|
16
73
|
`;
|
|
17
74
|
|
|
@@ -32,6 +89,9 @@ Nx Console is an editor extension that enriches your developer experience. It le
|
|
|
32
89
|
|
|
33
90
|
The following list of generators are what is currently available in the \`@aws/nx-plugin\`:
|
|
34
91
|
|
|
92
|
+
|
|
93
|
+
- **agentcore-gateway**: Generate an AgentCore Gateway project
|
|
94
|
+
|
|
35
95
|
- **connection**: Integrates a source project with a target project
|
|
36
96
|
|
|
37
97
|
- **license**: Add LICENSE files and configure source code licence headers
|
|
@@ -72,6 +132,10 @@ The following list of generators are what is currently available in the \`@aws/n
|
|
|
72
132
|
|
|
73
133
|
- **ts#rdb**: Create a relational database project
|
|
74
134
|
|
|
135
|
+
- **ts#dynamodb**: Create a TypeScript DynamoDB project
|
|
136
|
+
|
|
137
|
+
- **py#dynamodb**: Create a Python DynamoDB project
|
|
138
|
+
|
|
75
139
|
You also have the option of using additional [commmunity plugins](https://nx.dev/plugin-registry) as needed.
|
|
76
140
|
|
|
77
141
|
## Invoking a generator
|
|
@@ -173,6 +237,61 @@ export default {
|
|
|
173
237
|
"
|
|
174
238
|
`;
|
|
175
239
|
|
|
240
|
+
exports[`preset generator > should run successfully > biome.json 1`] = `
|
|
241
|
+
"{
|
|
242
|
+
"$schema": "https://biomejs.dev/schemas/2.4.16/schema.json",
|
|
243
|
+
"root": true,
|
|
244
|
+
"formatter": {
|
|
245
|
+
"enabled": true,
|
|
246
|
+
"indentStyle": "space",
|
|
247
|
+
"indentWidth": 2,
|
|
248
|
+
"lineWidth": 80
|
|
249
|
+
},
|
|
250
|
+
"javascript": {
|
|
251
|
+
"formatter": {
|
|
252
|
+
"quoteStyle": "single",
|
|
253
|
+
"trailingCommas": "all"
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"css": {
|
|
257
|
+
"formatter": {
|
|
258
|
+
"quoteStyle": "single"
|
|
259
|
+
},
|
|
260
|
+
"linter": {
|
|
261
|
+
"enabled": false
|
|
262
|
+
}
|
|
263
|
+
},
|
|
264
|
+
"linter": {
|
|
265
|
+
"enabled": true,
|
|
266
|
+
"rules": {
|
|
267
|
+
"recommended": false,
|
|
268
|
+
"correctness": {
|
|
269
|
+
"noUndeclaredDependencies": "warn"
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"assist": {
|
|
274
|
+
"actions": {
|
|
275
|
+
"source": {
|
|
276
|
+
"organizeImports": "on"
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"files": {
|
|
281
|
+
"includes": [
|
|
282
|
+
"**",
|
|
283
|
+
"!**/dist",
|
|
284
|
+
"!**/out-tsc",
|
|
285
|
+
"!**/node_modules",
|
|
286
|
+
"!**/.nx",
|
|
287
|
+
"!**/.venv",
|
|
288
|
+
"!**/*.css"
|
|
289
|
+
]
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
"
|
|
293
|
+
`;
|
|
294
|
+
|
|
176
295
|
exports[`preset generator > should run successfully > nx.json 1`] = `
|
|
177
296
|
"{
|
|
178
297
|
"affected": {
|
|
@@ -189,6 +308,22 @@ exports[`preset generator > should run successfully > nx.json 1`] = `
|
|
|
189
308
|
"syncGenerators": ["@nx/js:typescript-sync", "@aws/nx-plugin:ts#sync"]
|
|
190
309
|
}
|
|
191
310
|
},
|
|
311
|
+
"plugins": [
|
|
312
|
+
{
|
|
313
|
+
"plugin": "@nx/js/typescript",
|
|
314
|
+
"options": {
|
|
315
|
+
"typecheck": {
|
|
316
|
+
"targetName": "typecheck"
|
|
317
|
+
},
|
|
318
|
+
"build": {
|
|
319
|
+
"targetName": "build",
|
|
320
|
+
"configName": "tsconfig.lib.json",
|
|
321
|
+
"buildDepsName": "build-deps",
|
|
322
|
+
"watchDepsName": "watch-deps"
|
|
323
|
+
}
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
],
|
|
192
327
|
"analytics": false
|
|
193
328
|
}
|
|
194
329
|
"
|
|
@@ -199,17 +334,15 @@ exports[`preset generator > should run successfully > package.json 1`] = `
|
|
|
199
334
|
"name": "@proj/source",
|
|
200
335
|
"dependencies": {},
|
|
201
336
|
"devDependencies": {
|
|
202
|
-
"@
|
|
203
|
-
"@nx/
|
|
204
|
-
"@
|
|
205
|
-
"@swc/core": "~1.15.5",
|
|
337
|
+
"@biomejs/biome": "2.5.1",
|
|
338
|
+
"@nx/js": "23.0.1",
|
|
339
|
+
"@nx/workspace": "23.0.1",
|
|
206
340
|
"@swc/helpers": "~0.5.18",
|
|
207
|
-
"
|
|
208
|
-
"typescript": "6.0.3",
|
|
209
|
-
"typescript-eslint": "8.60.1"
|
|
341
|
+
"typescript": "6.0.3"
|
|
210
342
|
},
|
|
211
343
|
"type": "module",
|
|
212
344
|
"scripts": {
|
|
345
|
+
"dev": "nx run-many --target dev",
|
|
213
346
|
"build": "nx run-many --target build",
|
|
214
347
|
"lint": "nx run-many --target lint --configuration=fix",
|
|
215
348
|
"test": "nx run-many --target test --all",
|
|
@@ -240,11 +373,21 @@ onlyBuiltDependencies:
|
|
|
240
373
|
`;
|
|
241
374
|
|
|
242
375
|
exports[`preset generator > should run successfully > tsconfig.base.json 1`] = `
|
|
243
|
-
"{
|
|
376
|
+
"{
|
|
377
|
+
"compilerOptions": {
|
|
378
|
+
"paths": {},
|
|
379
|
+
"composite": true
|
|
380
|
+
}
|
|
381
|
+
}
|
|
244
382
|
"
|
|
245
383
|
`;
|
|
246
384
|
|
|
247
385
|
exports[`preset generator > should run successfully > tsconfig.json 1`] = `
|
|
248
|
-
"{
|
|
386
|
+
"{
|
|
387
|
+
"extends": "./tsconfig.base.json",
|
|
388
|
+
"files": [],
|
|
389
|
+
"include": [],
|
|
390
|
+
"references": []
|
|
391
|
+
}
|
|
249
392
|
"
|
|
250
393
|
`;
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { GeneratorCallback, Tree } from '@nx/devkit';
|
|
6
|
-
import { NxGeneratorInfo } from '../utils/nx';
|
|
7
|
-
import { PresetGeneratorSchema } from './schema';
|
|
5
|
+
import { type GeneratorCallback, type Tree } from '@nx/devkit';
|
|
6
|
+
import { type NxGeneratorInfo } from '../utils/nx';
|
|
7
|
+
import type { PresetGeneratorSchema } from './schema';
|
|
8
8
|
export declare const PRESET_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
9
|
/**
|
|
10
10
|
* Determines if the current user is an Amazon employee based on their git configuration.
|
|
@@ -29,5 +29,5 @@ export declare const PRESET_GENERATOR_INFO: NxGeneratorInfo;
|
|
|
29
29
|
* isAmazonian(); // false
|
|
30
30
|
*/
|
|
31
31
|
export declare function isAmazonian(): boolean;
|
|
32
|
-
export declare const presetGenerator: (tree: Tree, {
|
|
32
|
+
export declare const presetGenerator: (tree: Tree, { iac, gitSecrets, mcp, containers, preferInstallDependencies, }: PresetGeneratorSchema) => Promise<GeneratorCallback>;
|
|
33
33
|
export default presetGenerator;
|