@aws/nx-plugin 1.0.0-rc.22 → 1.0.0-rc.24
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 +2088 -971
- package/package.json +25 -10
- package/src/agentcore-gateway/attach-upstream.d.ts +7 -7
- package/src/agentcore-gateway/attach-upstream.js +19 -22
- package/src/agentcore-gateway/attach-upstream.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +3 -3
- package/src/agentcore-gateway/gateway-connection/generator.js +42 -45
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
- 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/generator.js +89 -72
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +2 -2
- package/src/agentcore-gateway/mcp-connection/generator.js +24 -30
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- 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/schema.d.js +6 -0
- package/src/agentcore-gateway/schema.d.js.map +1 -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} +5 -5
- 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.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/generator.js +262 -207
- package/src/connection/generator.js.map +1 -1
- package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.js.map +1 -0
- package/src/connection/schema.d.js +6 -0
- package/src/connection/schema.d.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 +4 -26
- package/src/infra/app/generator.js +133 -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/license/config-types.js +5 -3
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +1 -1
- package/src/license/config.js +267 -242
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.js +51 -46
- package/src/license/dependency-check/check.js.map +1 -1
- package/src/license/dependency-check/collectors/collector.js +41 -71
- package/src/license/dependency-check/collectors/collector.js.map +1 -1
- package/src/license/dependency-check/collectors/npm-collector.js +34 -41
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
- package/src/license/dependency-check/collectors/python-collector.js +55 -62
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
- package/src/license/dependency-check/evaluator.js +40 -68
- package/src/license/dependency-check/evaluator.js.map +1 -1
- package/src/license/dependency-check/executor.js +30 -22
- package/src/license/dependency-check/executor.js.map +1 -1
- package/src/license/dependency-check/pre-approved.js +949 -336
- package/src/license/dependency-check/pre-approved.js.map +1 -1
- package/src/license/dependency-check/types.js +2 -3
- package/src/license/dependency-check/types.js.map +1 -1
- package/src/license/generator.js +55 -60
- package/src/license/generator.js.map +1 -1
- package/src/license/index.js +3 -9
- package/src/license/index.js.map +1 -1
- package/src/license/known-exceptions.js +14 -13
- package/src/license/known-exceptions.js.map +1 -1
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/sync/generator.js +94 -119
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.js +28 -35
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.js +130 -160
- package/src/mcp-server/generator-info.js.map +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 +39 -57
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/option-filter.js +33 -47
- package/src/mcp-server/option-filter.js.map +1 -1
- package/src/mcp-server/schema-registry.js +27 -40
- 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.js +23 -24
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.js +28 -25
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +29 -37
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/generator.js +16 -26
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-client/schema.d.js +6 -0
- package/src/open-api/ts-client/schema.d.js.map +1 -0
- package/src/open-api/ts-hooks/generator.js +13 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- 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.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.js +42 -60
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.js +31 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +253 -269
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.js +242 -241
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.js +8 -14
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +31 -6
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +130 -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 +0 -1
- package/src/preset/schema.json +0 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
- package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +18 -845
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/a2a-connection/generator.js +70 -75
- 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/files/ag-ui-langchain/main.py.template +10 -0
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
- package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
- package/src/py/agent/gateway-connection/generator.js +61 -58
- package/src/py/agent/gateway-connection/generator.js.map +1 -1
- 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/generator.js +227 -194
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/mcp-connection/generator.js +53 -52
- 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/react-connection/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/agent/react-connection/generator.js +51 -58
- 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} +4 -4
- 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/schema.d.js +6 -0
- package/src/py/agent/schema.d.js.map +1 -0
- package/src/py/api/generator.js +12 -12
- 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/dynamodb/__snapshots__/generator.spec.ts.snap +68 -28
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/agent-connection/generator.js +27 -29
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
- 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/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/dynamodb/fast-api-connection/generator.js +26 -28
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
- 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/files/__name__/client.py.template +5 -5
- package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
- package/src/py/dynamodb/files/config.json.template +1 -1
- package/src/py/dynamodb/generator.js +63 -62
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/mcp-server-connection/generator.js +27 -29
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
- 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/schema.d.js +6 -0
- package/src/py/dynamodb/schema.d.js.map +1 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
- package/src/py/fast-api/generator.js +79 -85
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/fast-api/react/generator.js +22 -24
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.js +28 -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/schema.d.js +6 -0
- package/src/py/fast-api/schema.d.js.map +1 -0
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/lambda-function/generator.js +57 -58
- 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/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/mcp-server/generator.js +149 -131
- 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/project/generator.d.ts +14 -1
- package/src/py/project/generator.js +137 -88
- 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/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/{sdk → src/sdk}/license.d.ts +4 -4
- 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 +2 -2
- package/src/sdk/utils/ast.js +7 -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 +2 -8
- package/src/smithy/project/files/build.Dockerfile.template +1 -4
- package/src/smithy/project/generator.js +44 -42
- 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/react-connection/generator.js +35 -46
- 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/ts/api/__snapshots__/generator.spec.ts.snap +395 -72
- package/src/smithy/ts/api/generator.js +121 -111
- 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/terraform/project/files/application/src/providers.tf.template +1 -1
- package/src/terraform/project/generator.js +141 -103
- 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/trpc/backend/__snapshots__/generator.spec.ts.snap +336 -92
- package/src/trpc/backend/generator.js +93 -86
- 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/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/trpc/react/generator.js +59 -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/ts/agent/__snapshots__/generator.spec.ts.snap +11 -11
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/a2a-connection/generator.js +58 -54
- 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/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
- package/src/ts/agent/gateway-connection/generator.js +57 -52
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- 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/generator.js +165 -136
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/mcp-connection/generator.js +48 -46
- 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/react-connection/generator.js +79 -79
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +2 -2
- 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/schema.d.js +6 -0
- package/src/ts/agent/schema.d.js.map +1 -0
- package/src/ts/api/generator.js +16 -18
- 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/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/ts/astro-docs/generator.js +59 -48
- 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/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/dynamodb/__snapshots__/generator.spec.ts.snap +68 -30
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/agent-connection/generator.js +21 -23
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/files/config.json.template +1 -1
- package/src/ts/dynamodb/files/src/client.ts.template +7 -7
- package/src/ts/dynamodb/generator.js +64 -63
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/schema.d.js +6 -0
- package/src/ts/dynamodb/schema.d.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/lambda-function/generator.js +55 -55
- 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/lib/__snapshots__/generator.spec.ts.snap +23 -36
- package/src/ts/lib/biome.js +37 -37
- package/src/ts/lib/biome.js.map +1 -1
- package/src/ts/lib/generator.js +75 -77
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.d.js +6 -0
- package/src/ts/lib/schema.d.js.map +1 -0
- package/src/ts/lib/ts-project-utils.js +65 -70
- 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.js +29 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/mcp-server/generator.js +157 -138
- 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/nx-generator/__snapshots__/generator.spec.ts.snap +14 -9
- 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 +4 -4
- package/src/ts/nx-generator/generator.js +84 -83
- 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-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.js +49 -48
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/schema.d.js +9 -0
- package/src/ts/nx-plugin/schema.d.js.map +1 -0
- package/src/ts/nx-plugin/utils.js +32 -44
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +34 -30
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
- 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/files/config.json.template +1 -1
- package/src/ts/rdb/files/prisma.config.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +7 -7
- package/src/ts/rdb/files/src/utils.ts.template +3 -0
- package/src/ts/rdb/generator.js +130 -117
- 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.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/schema.d.js +6 -0
- package/src/ts/rdb/schema.d.js.map +1 -0
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +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/trpc-connection/__snapshots__/generator.spec.ts.snap +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/utils.js +9 -11
- package/src/ts/rdb/utils.js.map +1 -1
- package/src/ts/react-website/agui/generator.js +69 -61
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +179 -332
- package/src/ts/react-website/app/generator.js +197 -188
- 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.json +6 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +118 -4
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +27 -7
- package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
- package/src/ts/react-website/cognito-auth/generator.js +60 -60
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
- package/src/ts/react-website/cognito-auth/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.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/sync/generator.js +60 -59
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.js +10 -10
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.js +6 -0
- package/src/ts/website/app/schema.d.js.map +1 -0
- package/src/ts/website/app/schema.json +6 -6
- package/src/ts/website/auth/generator.js +11 -11
- 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/utils/agent-chat/agent-chat.d.ts +1 -1
- package/src/utils/agent-chat/agent-chat.js +11 -12
- package/src/utils/agent-chat/agent-chat.js.map +1 -1
- package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +9 -3
- package/src/utils/agent-connection/agent-connection.js +133 -147
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +5 -5
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +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/core/api/http/http-api.ts.template +14 -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 +28 -14
- 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 +91 -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.js +22 -22
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.js +17 -19
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.js +72 -97
- package/src/utils/ast.js.map +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 +2 -2
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.js +48 -58
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.d.ts +5 -5
- 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.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
- 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/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
- package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
- 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 +3 -3
- 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 +2 -2
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.js +153 -99
- package/src/utils/format.js.map +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.js +21 -26
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.js +18 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.js +19 -34
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.js +5 -5
- package/src/utils/iac-providers.js.map +1 -1
- package/src/utils/iac.js +12 -14
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +19 -6
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
- package/src/utils/identity-constructs/identity-constructs.js +24 -28
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.js +34 -41
- package/src/utils/mcp.js.map +1 -1
- package/src/utils/metrics.js +30 -45
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +8 -12
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.d.ts +16 -0
- package/src/utils/names.js +39 -48
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.js +9 -17
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +18 -2
- package/src/utils/nx.js +111 -74
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.js +27 -15
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/object.js +5 -11
- package/src/utils/object.js.map +1 -1
- package/src/utils/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.js +22 -22
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.js +26 -36
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +14 -1
- package/src/utils/py.js +63 -45
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
- package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.js +16 -16
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.js +57 -54
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.js +16 -14
- package/src/utils/shared-dynamodb-scripts.js.map +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.js +30 -25
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-rdb-scripts.d.ts +8 -3
- package/src/utils/shared-rdb-scripts.js +21 -13
- package/src/utils/shared-rdb-scripts.js.map +1 -1
- package/src/utils/shared-scripts.js +12 -17
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +64 -60
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +8 -0
- package/src/utils/test.js +33 -25
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.js +7 -15
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +31 -4
- package/src/utils/versions.js +40 -23
- package/src/utils/versions.js.map +1 -1
- 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 +4 -4
- 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/agentcore-gateway.d.ts +0 -6
- package/sdk/agentcore-gateway.js +0 -11
- package/sdk/agentcore-gateway.js.map +0 -1
- package/sdk/connection.d.ts +0 -6
- package/sdk/connection.js +0 -10
- package/sdk/connection.js.map +0 -1
- package/sdk/license.js +0 -14
- package/sdk/license.js.map +0 -1
- package/sdk/open-api.d.ts +0 -10
- package/sdk/open-api.js +0 -15
- package/sdk/open-api.js.map +0 -1
- package/sdk/py.d.ts +0 -14
- package/sdk/py.js +0 -18
- package/sdk/py.js.map +0 -1
- package/sdk/terraform.d.ts +0 -6
- package/sdk/terraform.js +0 -11
- package/sdk/terraform.js.map +0 -1
- package/sdk/ts.d.ts +0 -33
- package/sdk/ts.js +0 -53
- 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.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/react-connection/serve-local.js +0 -38
- package/src/py/agent/react-connection/serve-local.js.map +0 -1
- 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/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
- /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
- /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
package/src/utils/nx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/nx.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/nx.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n getProjects,\n type ProjectConfiguration,\n readProjectConfiguration,\n type Tree,\n updateProjectConfiguration,\n} from '@nx/devkit';\nimport * as path from 'path';\nimport PackageJson from '../../package.json' with { type: 'json' };\nimport { toSnakeCase } from './names';\nimport { getNpmScope, getNpmScopePrefix } from './npm-scope';\n\nexport type { GeneratorInfo, NxGeneratorInfo } from './generators';\nexport { buildGeneratorInfoList } from './generators';\n\nimport { buildGeneratorInfoList, type GeneratorInfo } from './generators';\n\nconst GENERATORS = buildGeneratorInfoList(\n path.resolve(import.meta.dirname, '..', '..'),\n);\n\n/**\n * List Nx Plugin for AWS generators\n * @param includeHidden include hidden generators (default false)\n */\nexport const listGenerators = (includeHidden = false) =>\n GENERATORS.filter((g) => includeHidden || !g.hidden);\n\n/**\n * Return generator information. Call this from a generator method with import.meta.filename\n */\nexport const getGeneratorInfo = (generatorFileName: string): GeneratorInfo => {\n const { dir, name } = path.parse(path.resolve(generatorFileName));\n const resolvedFactoryPath = path.join(dir, name);\n return GENERATORS.find(\n (generatorInfo) =>\n generatorInfo.resolvedFactoryPath === resolvedFactoryPath,\n );\n};\n\nexport const getPackageVersion = () => {\n return PackageJson.version;\n};\n\n/**\n * Read a project configuration where the project name may not be fully qualified (ie may omit the scope prefix)\n */\nexport const readProjectConfigurationUnqualified = (\n tree: Tree,\n projectName: string,\n) => {\n try {\n return readProjectConfiguration(tree, projectName);\n } catch (e) {\n // Attempt to find the project without the scope\n const project = [...getProjects(tree).values()].find(\n (p) =>\n p.name &&\n (p.name === `${getNpmScopePrefix(tree)}${projectName}` || // TypeScript fully-qualified name\n p.name === `${toSnakeCase(getNpmScope(tree))}.${projectName}`), // Python fully-qualified name\n );\n if (project) {\n return project;\n }\n throw e;\n }\n};\n\n/**\n * Returns whether a project with the given name already exists in the workspace.\n * The project name may be unqualified (ie may omit the scope prefix).\n */\nexport const projectExists = (tree: Tree, projectName: string): boolean => {\n try {\n readProjectConfigurationUnqualified(tree, projectName);\n return true;\n } catch {\n return false;\n }\n};\n\n/**\n * Add metadata about the generator that generated the project to the project.json\n */\nexport const addGeneratorMetadata = (\n tree: Tree,\n projectName: string,\n info: { id: string },\n additionalMetadata?: { [key: string]: any },\n) => {\n const config = readProjectConfigurationUnqualified(tree, projectName);\n const metadata = {\n ...config?.metadata,\n generator: info.id,\n ...additionalMetadata,\n };\n // Skip the write when nothing changed so re-running doesn't reserialize\n // project.json. metadata is plain JSON built in a fixed key order, so a\n // stringify comparison is exact here.\n if (JSON.stringify(config?.metadata) === JSON.stringify(metadata)) {\n return;\n }\n // Place metadata immediately before targets so the serialized key order is\n // identical whether or not metadata already existed (matching the order Nx\n // normalizes a read config to), keeping the change a pure metadata insert.\n const { targets, ...rest } = config;\n updateProjectConfiguration(tree, config.name, {\n ...rest,\n metadata: metadata as any,\n ...(targets ? { targets } : {}),\n });\n};\n\n/**\n * Represents a component entry in project metadata\n */\nexport interface ComponentMetadata {\n readonly generator: string;\n readonly name?: string;\n readonly path?: string;\n [key: string]: any;\n}\n\n/**\n * Add metadata about the generator that generated the component to the project.json\n */\nexport const addComponentGeneratorMetadata = (\n tree: Tree,\n projectName: string,\n info: { id: string },\n componentPath: string,\n componentName?: string,\n additionalMetadata?: { [key: string]: any },\n) => {\n const config = readProjectConfigurationUnqualified(tree, projectName);\n\n const existingComponents = (config?.metadata as any)?.components ?? [];\n const alreadyAdded = existingComponents.filter(\n (c: any) => c.generator === info.id && c.name === componentName,\n );\n\n if (alreadyAdded.length === 0) {\n const componentMetadata: ComponentMetadata = {\n generator: info.id,\n path: componentPath,\n ...(componentName ? { name: componentName } : {}),\n ...additionalMetadata,\n };\n // Place metadata before targets for a stable serialized key order.\n const { targets, ...rest } = config;\n updateProjectConfiguration(tree, config.name, {\n ...rest,\n metadata: {\n ...config?.metadata,\n components: [...existingComponents, componentMetadata],\n } as any,\n ...(targets ? { targets } : {}),\n });\n }\n};\n\n/**\n * A single entry in an Nx `dependsOn` array.\n * Matches the shape accepted by Nx without requiring a devkit type import.\n */\nexport type TargetDependency =\n | string\n | {\n projects?: string | string[];\n target: string;\n params?: 'ignore' | 'forward';\n };\n\nconst targetDependencyEquals = (a: TargetDependency, b: TargetDependency) => {\n if (typeof a === 'string' || typeof b === 'string') {\n return a === b;\n }\n if (a.target !== b.target || a.params !== b.params) {\n return false;\n }\n const aProjects = Array.isArray(a.projects)\n ? a.projects\n : a.projects !== undefined\n ? [a.projects]\n : [];\n const bProjects = Array.isArray(b.projects)\n ? b.projects\n : b.projects !== undefined\n ? [b.projects]\n : [];\n if (aProjects.length !== bProjects.length) {\n return false;\n }\n return aProjects.every((p, i) => p === bProjects[i]);\n};\n\n// The order target properties are authored in. Nx preserves a target's\n// authored key order when it reads then rewrites an existing project.json,\n// except `options` and `configurations`, which it always moves to the end (in\n// that order). Keeping `options`/`configurations` last here therefore makes a\n// generator's first-run output byte-identical to subsequent runs (idempotency);\n// the remaining keys are ordered to read intuitively.\nconst NX_TARGET_KEY_ORDER = [\n 'executor',\n 'dependsOn',\n 'continuous',\n 'cache',\n 'inputs',\n 'outputs',\n 'metadata',\n 'defaultConfiguration',\n 'options',\n 'configurations',\n];\n\n/**\n * Reorder a target's keys to match Nx's own serialization order. Nx reorders\n * target properties when it rewrites an existing project.json, so applying the\n * same order when first authoring a target keeps generators idempotent.\n */\nexport const normalizeTargetKeyOrder = <T extends object>(target: T): T =>\n Object.fromEntries(\n Object.entries(target as Record<string, unknown>).sort(([a], [b]) => {\n const ai = NX_TARGET_KEY_ORDER.indexOf(a);\n const bi = NX_TARGET_KEY_ORDER.indexOf(b);\n return (\n (ai === -1 ? NX_TARGET_KEY_ORDER.length : ai) -\n (bi === -1 ? NX_TARGET_KEY_ORDER.length : bi)\n );\n }),\n ) as T;\n\n/**\n * Mutate the project to add the dependency to the target if not already present\n * Adds the target if not present.\n *\n * Accepts either a string target name (e.g. `'build'`) or a dependency config\n * object (e.g. `{ projects: ['foo'], target: 'dev' }`). Deduplicates\n * using deep equality so re-running a generator does not grow `dependsOn`.\n */\nexport const addDependencyToTargetIfNotPresent = (\n project: ProjectConfiguration,\n target: string,\n dependency: TargetDependency,\n) => {\n project.targets ??= {};\n project.targets[target] ??= {};\n project.targets[target].dependsOn ??= [];\n const dependsOn = project.targets[target].dependsOn;\n // Leave existing dependencies in place so re-running does not reorder them;\n // only append when the dependency is genuinely absent.\n if (!dependsOn.some((d) => targetDependencyEquals(d, dependency))) {\n dependsOn.push(dependency);\n }\n // Keep key order aligned with Nx's so first run matches subsequent runs.\n project.targets[target] = normalizeTargetKeyOrder(project.targets[target]);\n};\n\n/**\n * Register a component's `<name>-dev` target under the project-level `dev`\n * target, so `nx run <project>:dev` starts every component in the project.\n *\n * Component generators author their own continuous `<name>-dev` runner and call\n * this to aggregate it. Every component added to the project accumulates its\n * `<name>-dev` under `dev`. Nx keys tasks by `project:target`, so any\n * dependencies shared between components run exactly once.\n */\nexport const addComponentDevTarget = (\n targets: Record<string, ProjectConfiguration['targets'][string]>,\n componentDevTargetName: string,\n) => {\n targets['dev'] ??= { continuous: true, dependsOn: [] };\n const projectDev = targets['dev'];\n projectDev.continuous = true;\n projectDev.dependsOn ??= [];\n // Append in component-creation order; dedupe keeps re-runs idempotent.\n if (!projectDev.dependsOn.includes(componentDevTargetName)) {\n projectDev.dependsOn.push(componentDevTargetName);\n }\n targets['dev'] = normalizeTargetKeyOrder(projectDev);\n};\n"],"names":["getProjects","readProjectConfiguration","updateProjectConfiguration","path","PackageJson","type","toSnakeCase","getNpmScope","getNpmScopePrefix","buildGeneratorInfoList","GENERATORS","resolve","dirname","listGenerators","includeHidden","filter","g","hidden","getGeneratorInfo","generatorFileName","dir","name","parse","resolvedFactoryPath","join","find","generatorInfo","getPackageVersion","version","readProjectConfigurationUnqualified","tree","projectName","e","project","values","p","projectExists","addGeneratorMetadata","info","additionalMetadata","config","metadata","generator","id","JSON","stringify","targets","rest","addComponentGeneratorMetadata","componentPath","componentName","existingComponents","components","alreadyAdded","c","length","componentMetadata","targetDependencyEquals","a","b","target","params","aProjects","Array","isArray","projects","undefined","bProjects","every","i","NX_TARGET_KEY_ORDER","normalizeTargetKeyOrder","Object","fromEntries","entries","sort","ai","indexOf","bi","addDependencyToTargetIfNotPresent","dependency","dependsOn","some","d","push","addComponentDevTarget","componentDevTargetName","continuous","projectDev","includes"],"mappings":"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"}
|
package/src/utils/nxlv-python.js
CHANGED
|
@@ -1,29 +1,41 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
*/ /**
|
|
5
|
+
* Re-exports internal modules from @nxlv/python that are not exposed
|
|
6
|
+
* via the package's "exports" field.
|
|
7
|
+
*
|
|
8
|
+
* Newer versions of Node.js and Vite strictly enforce the "exports" map
|
|
9
|
+
* in package.json, which prevents deep imports like:
|
|
10
|
+
* import { UVProvider } from '@nxlv/python/dist/provider/uv/provider'
|
|
11
|
+
*
|
|
12
|
+
* This module resolves the package location and loads the internal modules
|
|
13
|
+
* directly by filesystem path, bypassing the exports restriction.
|
|
14
|
+
*
|
|
15
|
+
* Type definitions are inlined from the @nxlv/python .d.ts files because
|
|
16
|
+
* moduleResolution: "bundler" does not allow deep path type imports for
|
|
17
|
+
* packages without proper exports.
|
|
18
|
+
*/ import { createRequire } from "module";
|
|
19
|
+
import path from "path";
|
|
20
|
+
const require = createRequire(import.meta.url);
|
|
10
21
|
// ---------------------------------------------------------------------------
|
|
11
22
|
// Runtime module loading via filesystem paths
|
|
12
23
|
// ---------------------------------------------------------------------------
|
|
13
24
|
// Resolve the @nxlv/python package root by finding its package.json
|
|
14
25
|
// (which IS listed in the exports map as "./package.json")
|
|
15
26
|
const nxlvPythonPkgJson = require.resolve('@nxlv/python/package.json');
|
|
16
|
-
const nxlvPythonRoot =
|
|
27
|
+
const nxlvPythonRoot = path.dirname(nxlvPythonPkgJson);
|
|
17
28
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
18
|
-
const uvProviderModule = require(
|
|
29
|
+
const uvProviderModule = require(path.join(nxlvPythonRoot, 'dist/provider/uv/provider'));
|
|
19
30
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
20
|
-
const loggerModule = require(
|
|
31
|
+
const loggerModule = require(path.join(nxlvPythonRoot, 'dist/executors/utils/logger'));
|
|
21
32
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
22
|
-
const migrateToSharedVenvModule = require(
|
|
33
|
+
const migrateToSharedVenvModule = require(path.join(nxlvPythonRoot, 'dist/generators/migrate-to-shared-venv/generator'));
|
|
23
34
|
// eslint-disable-next-line @typescript-eslint/no-require-imports
|
|
24
|
-
const uvProjectModule = require(
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
35
|
+
const uvProjectModule = require(path.join(nxlvPythonRoot, 'dist/generators/uv-project/generator'));
|
|
36
|
+
export const UVProvider = uvProviderModule.UVProvider;
|
|
37
|
+
export const Logger = loggerModule.Logger;
|
|
38
|
+
export const migrateToSharedVenvGenerator = migrateToSharedVenvModule.default ?? migrateToSharedVenvModule;
|
|
39
|
+
export const uvProjectGenerator = uvProjectModule.default ?? uvProjectModule;
|
|
40
|
+
|
|
29
41
|
//# sourceMappingURL=nxlv-python.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/nxlv-python.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Re-exports internal modules from @nxlv/python that are not exposed\n * via the package's \"exports\" field.\n *\n * Newer versions of Node.js and Vite strictly enforce the \"exports\" map\n * in package.json, which prevents deep imports like:\n * import { UVProvider } from '@nxlv/python/dist/provider/uv/provider'\n *\n * This module resolves the package location and loads the internal modules\n * directly by filesystem path, bypassing the exports restriction.\n *\n * Type definitions are inlined from the @nxlv/python .d.ts files because\n * moduleResolution: \"bundler\" does not allow deep path type imports for\n * packages without proper exports.\n */\nimport type { Tree } from '@nx/devkit';\nimport { createRequire } from 'module';\nimport path from 'path';\n\nconst require = createRequire(import.meta.url);\n\n// ---------------------------------------------------------------------------\n// Inlined types from @nxlv/python (sourced from dist/**\\/*.d.ts)\n// ---------------------------------------------------------------------------\n\nexport type UVPyprojectTomlIndex = {\n name: string;\n url: string;\n};\n\nexport type UVPyprojectToml = {\n project?: {\n name: string;\n version: string;\n dependencies: string[];\n 'optional-dependencies': {\n [key: string]: string[];\n };\n };\n 'dependency-groups': {\n [key: string]: string[];\n };\n 'build-system'?: {\n requires?: string[];\n 'build-backend'?: string;\n };\n tool?: {\n hatch?: {\n build?: {\n targets?: {\n wheel?: {\n packages: string[];\n };\n };\n };\n metadata?: {\n 'allow-direct-references'?: boolean;\n };\n };\n uv?: {\n sources?: {\n [key: string]: {\n path?: string;\n workspace?: boolean;\n index?: string;\n };\n };\n index?: UVPyprojectTomlIndex[];\n workspace?: {\n members: string[];\n };\n 'build-backend'?: {\n 'module-name'?: string[];\n namespace?: boolean;\n };\n };\n };\n};\n\ninterface ILogger {\n setOptions(options: { silent: boolean }): void;\n info(message: unknown): void;\n}\n\ninterface IUVProvider {\n install(): Promise<void>;\n}\n\ninterface IUVProviderConstructor {\n new (workspaceRoot: string, logger: ILogger, tree?: Tree): IUVProvider;\n}\n\ninterface ILoggerConstructor {\n new (): ILogger;\n}\n\ninterface MigrateToSharedVenvSchema {\n moveDevDependencies: boolean;\n pyprojectPythonDependency: string;\n pyenvPythonVersion: string | number;\n autoActivate: boolean;\n packageManager: 'poetry' | 'uv';\n}\n\ninterface UVProjectGeneratorSchema {\n name: string;\n publishable: boolean;\n buildLockedVersions: boolean;\n buildBundleLocalDependencies: boolean;\n linter: 'flake8' | 'ruff' | 'none';\n devDependenciesProject?: string;\n rootPyprojectDependencyGroup: string;\n templateDir?: string;\n pyprojectPythonDependency: string;\n projectType: 'application' | 'library';\n projectNameAndRootFormat: 'as-provided' | 'derived';\n packageName?: string;\n description?: string;\n moduleName?: string;\n pyenvPythonVersion?: string | number;\n tags?: string;\n directory?: string;\n useSyncGenerators?: boolean;\n unitTestRunner: 'pytest' | 'none';\n codeCoverage: boolean;\n codeCoverageHtmlReport: boolean;\n codeCoverageXmlReport: boolean;\n codeCoverageThreshold?: number;\n unitTestHtmlReport: boolean;\n unitTestJUnitReport: boolean;\n buildSystem: 'hatch' | 'uv';\n srcDir: boolean;\n}\n\n// ---------------------------------------------------------------------------\n// Runtime module loading via filesystem paths\n// ---------------------------------------------------------------------------\n\n// Resolve the @nxlv/python package root by finding its package.json\n// (which IS listed in the exports map as \"./package.json\")\nconst nxlvPythonPkgJson = require.resolve('@nxlv/python/package.json');\nconst nxlvPythonRoot = path.dirname(nxlvPythonPkgJson);\n\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst uvProviderModule = require(\n path.join(nxlvPythonRoot, 'dist/provider/uv/provider'),\n);\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst loggerModule = require(\n path.join(nxlvPythonRoot, 'dist/executors/utils/logger'),\n);\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst migrateToSharedVenvModule = require(\n path.join(nxlvPythonRoot, 'dist/generators/migrate-to-shared-venv/generator'),\n);\n// eslint-disable-next-line @typescript-eslint/no-require-imports\nconst uvProjectModule = require(\n path.join(nxlvPythonRoot, 'dist/generators/uv-project/generator'),\n);\n\nexport const UVProvider: IUVProviderConstructor = uvProviderModule.UVProvider;\n\nexport const Logger: ILoggerConstructor = loggerModule.Logger;\n\nexport const migrateToSharedVenvGenerator: (\n tree: Tree,\n options: MigrateToSharedVenvSchema,\n) => Promise<() => Promise<void>> =\n migrateToSharedVenvModule.default ?? migrateToSharedVenvModule;\n\nexport const uvProjectGenerator: (\n tree: Tree,\n options: UVProjectGeneratorSchema,\n) => Promise<() => Promise<void>> = uvProjectModule.default ?? uvProjectModule;\n"],"names":["createRequire","path","require","url","nxlvPythonPkgJson","resolve","nxlvPythonRoot","dirname","uvProviderModule","join","loggerModule","migrateToSharedVenvModule","uvProjectModule","UVProvider","Logger","migrateToSharedVenvGenerator","default","uvProjectGenerator"],"mappings":"AAAA;;;CAGC,GAED;;;;;;;;;;;;;;CAcC,GAED,SAASA,aAAa,QAAQ,SAAS;AACvC,OAAOC,UAAU,OAAO;AAExB,MAAMC,UAAUF,cAAc,YAAYG,GAAG;AAmH7C,8EAA8E;AAC9E,8CAA8C;AAC9C,8EAA8E;AAE9E,oEAAoE;AACpE,2DAA2D;AAC3D,MAAMC,oBAAoBF,QAAQG,OAAO,CAAC;AAC1C,MAAMC,iBAAiBL,KAAKM,OAAO,CAACH;AAEpC,iEAAiE;AACjE,MAAMI,mBAAmBN,QACvBD,KAAKQ,IAAI,CAACH,gBAAgB;AAE5B,iEAAiE;AACjE,MAAMI,eAAeR,QACnBD,KAAKQ,IAAI,CAACH,gBAAgB;AAE5B,iEAAiE;AACjE,MAAMK,4BAA4BT,QAChCD,KAAKQ,IAAI,CAACH,gBAAgB;AAE5B,iEAAiE;AACjE,MAAMM,kBAAkBV,QACtBD,KAAKQ,IAAI,CAACH,gBAAgB;AAG5B,OAAO,MAAMO,aAAqCL,iBAAiBK,UAAU,CAAC;AAE9E,OAAO,MAAMC,SAA6BJ,aAAaI,MAAM,CAAC;AAE9D,OAAO,MAAMC,+BAIXJ,0BAA0BK,OAAO,IAAIL,0BAA0B;AAEjE,OAAO,MAAMM,qBAGuBL,gBAAgBI,OAAO,IAAIJ,gBAAgB"}
|
package/src/utils/object.js
CHANGED
|
@@ -1,15 +1,9 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
.reduce((obj, key) => {
|
|
11
|
-
obj[key] = object[key];
|
|
12
|
-
return obj;
|
|
13
|
-
}, {});
|
|
14
|
-
exports.sortObjectKeys = sortObjectKeys;
|
|
4
|
+
*/ export const sortObjectKeys = (object)=>Object.keys(object).sort().reduce((obj, key)=>{
|
|
5
|
+
obj[key] = object[key];
|
|
6
|
+
return obj;
|
|
7
|
+
}, {});
|
|
8
|
+
|
|
15
9
|
//# sourceMappingURL=object.js.map
|
package/src/utils/object.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/object.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const sortObjectKeys = <T>(object: {\n [key: string]: T;\n}): { [key: string]: T } =>\n Object.keys(object)\n .sort()\n .reduce((obj, key) => {\n obj[key] = object[key];\n return obj;\n }, {});\n"],"names":["sortObjectKeys","object","Object","keys","sort","reduce","obj","key"],"mappings":"AAAA;;;CAGC,GAED,OAAO,MAAMA,iBAAiB,CAAIC,SAGhCC,OAAOC,IAAI,CAACF,QACTG,IAAI,GACJC,MAAM,CAAC,CAACC,KAAKC;QACZD,GAAG,CAACC,IAAI,GAAGN,MAAM,CAACM,IAAI;QACtB,OAAOD;IACT,GAAG,CAAC,GAAG"}
|
package/src/utils/paths.js
CHANGED
|
@@ -1,27 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const projectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, projectName);
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import * as path from "path";
|
|
5
|
+
import { readProjectConfigurationUnqualified } from "./nx.js";
|
|
6
|
+
export const getRelativePathToRoot = (tree, projectName)=>{
|
|
7
|
+
const projectConfig = readProjectConfigurationUnqualified(tree, projectName);
|
|
9
8
|
const projectRoot = projectConfig.root;
|
|
10
|
-
return
|
|
9
|
+
return getRelativePathToRootByDirectory(projectRoot);
|
|
11
10
|
};
|
|
12
|
-
|
|
13
|
-
const getRelativePathToRootByDirectory = (directory) => {
|
|
11
|
+
export const getRelativePathToRootByDirectory = (directory)=>{
|
|
14
12
|
// Count the number of path segments to determine how many '../' we need
|
|
15
13
|
const levels = directory.split('/').filter(Boolean).length;
|
|
16
14
|
// Create the relative path back to root
|
|
17
15
|
return '../'.repeat(levels);
|
|
18
16
|
};
|
|
19
|
-
exports.getRelativePathToRootByDirectory = getRelativePathToRootByDirectory;
|
|
20
17
|
/**
|
|
21
18
|
* Convert an absolute path within a project to a path relative to the project root.
|
|
22
|
-
*/
|
|
23
|
-
const toProjectRelativePath = (projectConfiguration, absolutePath) => {
|
|
19
|
+
*/ export const toProjectRelativePath = (projectConfiguration, absolutePath)=>{
|
|
24
20
|
return path.relative(projectConfiguration.root, absolutePath);
|
|
25
21
|
};
|
|
26
|
-
|
|
22
|
+
|
|
27
23
|
//# sourceMappingURL=paths.js.map
|
package/src/utils/paths.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/paths.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { ProjectConfiguration, Tree } from '@nx/devkit';\nimport * as path from 'path';\nimport { readProjectConfigurationUnqualified } from './nx';\n\nexport const getRelativePathToRoot = (\n tree: Tree,\n projectName: string,\n): string => {\n const projectConfig = readProjectConfigurationUnqualified(tree, projectName);\n const projectRoot = projectConfig.root;\n return getRelativePathToRootByDirectory(projectRoot);\n};\n\nexport const getRelativePathToRootByDirectory = (directory: string): string => {\n // Count the number of path segments to determine how many '../' we need\n const levels = directory.split('/').filter(Boolean).length;\n // Create the relative path back to root\n return '../'.repeat(levels);\n};\n\n/**\n * Convert an absolute path within a project to a path relative to the project root.\n */\nexport const toProjectRelativePath = (\n projectConfiguration: ProjectConfiguration,\n absolutePath: string,\n): string => {\n return path.relative(projectConfiguration.root, absolutePath);\n};\n"],"names":["path","readProjectConfigurationUnqualified","getRelativePathToRoot","tree","projectName","projectConfig","projectRoot","root","getRelativePathToRootByDirectory","directory","levels","split","filter","Boolean","length","repeat","toProjectRelativePath","projectConfiguration","absolutePath","relative"],"mappings":"AAAA;;;CAGC,GAED,YAAYA,UAAU,OAAO;AAC7B,SAASC,mCAAmC,QAAQ,UAAO;AAE3D,OAAO,MAAMC,wBAAwB,CACnCC,MACAC;IAEA,MAAMC,gBAAgBJ,oCAAoCE,MAAMC;IAChE,MAAME,cAAcD,cAAcE,IAAI;IACtC,OAAOC,iCAAiCF;AAC1C,EAAE;AAEF,OAAO,MAAME,mCAAmC,CAACC;IAC/C,wEAAwE;IACxE,MAAMC,SAASD,UAAUE,KAAK,CAAC,KAAKC,MAAM,CAACC,SAASC,MAAM;IAC1D,wCAAwC;IACxC,OAAO,MAAMC,MAAM,CAACL;AACtB,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMM,wBAAwB,CACnCC,sBACAC;IAEA,OAAOlB,KAAKmB,QAAQ,CAACF,qBAAqBV,IAAI,EAAEW;AAClD,EAAE"}
|
package/src/utils/pkg-manager.js
CHANGED
|
@@ -1,15 +1,10 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPackageManagerDisplayCommands = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
const commands_1 = require("./commands");
|
|
4
|
+
*/ import { detectPackageManager } from "@nx/devkit";
|
|
5
|
+
import { PACKAGE_MANAGER_COMMANDS } from "./commands.js";
|
|
10
6
|
/**
|
|
11
7
|
* Returns display-friendly command prefixes for the detected package manager.
|
|
12
|
-
*/
|
|
13
|
-
|
|
14
|
-
exports.getPackageManagerDisplayCommands = getPackageManagerDisplayCommands;
|
|
8
|
+
*/ export const getPackageManagerDisplayCommands = (pm = detectPackageManager())=>PACKAGE_MANAGER_COMMANDS[pm] ?? PACKAGE_MANAGER_COMMANDS['npm'];
|
|
9
|
+
|
|
15
10
|
//# sourceMappingURL=pkg-manager.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/pkg-manager.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { detectPackageManager } from '@nx/devkit';\nimport {\n PACKAGE_MANAGER_COMMANDS,\n type PackageManagerDisplayCommands,\n} from './commands';\n\nexport type { PackageManagerDisplayCommands };\n\n/**\n * Returns display-friendly command prefixes for the detected package manager.\n */\nexport const getPackageManagerDisplayCommands = (\n pm = detectPackageManager(),\n): PackageManagerDisplayCommands =>\n PACKAGE_MANAGER_COMMANDS[pm] ?? PACKAGE_MANAGER_COMMANDS['npm'];\n"],"names":["detectPackageManager","PACKAGE_MANAGER_COMMANDS","getPackageManagerDisplayCommands","pm"],"mappings":"AAAA;;;CAGC,GACD,SAASA,oBAAoB,QAAQ,aAAa;AAClD,SACEC,wBAAwB,QAEnB,gBAAa;AAIpB;;CAEC,GACD,OAAO,MAAMC,mCAAmC,CAC9CC,KAAKH,sBAAsB,GAE3BC,wBAAwB,CAACE,GAAG,IAAIF,wBAAwB,CAAC,MAAM,CAAC"}
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ensurePnpmIgnoresWorkspaceRootCheck = exports.registerPnpmBuiltDependencies = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
1
|
/**
|
|
6
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
4
|
+
*/ import { detectPackageManager } from "@nx/devkit";
|
|
5
|
+
import yaml from "js-yaml";
|
|
11
6
|
const WORKSPACE_FILE = 'pnpm-workspace.yaml';
|
|
12
7
|
/**
|
|
13
8
|
* Merge `allowBuilds` (pnpm 11) / `onlyBuiltDependencies` (pnpm 10) entries
|
|
@@ -24,20 +19,21 @@ const WORKSPACE_FILE = 'pnpm-workspace.yaml';
|
|
|
24
19
|
*
|
|
25
20
|
* Only `true` entries are also added to `onlyBuiltDependencies` (pnpm 10's
|
|
26
21
|
* allowlist has no equivalent of the `false` decision).
|
|
27
|
-
*/
|
|
28
|
-
|
|
29
|
-
if ((0, devkit_1.detectPackageManager)(tree.root) !== 'pnpm') {
|
|
22
|
+
*/ export const registerPnpmBuiltDependencies = (tree, entries)=>{
|
|
23
|
+
if (detectPackageManager(tree.root) !== 'pnpm') {
|
|
30
24
|
return;
|
|
31
25
|
}
|
|
32
26
|
if (!tree.exists(WORKSPACE_FILE)) {
|
|
33
27
|
return;
|
|
34
28
|
}
|
|
35
29
|
const original = tree.read(WORKSPACE_FILE, 'utf-8') ?? '';
|
|
36
|
-
const parsed =
|
|
37
|
-
const allowBuilds = {
|
|
30
|
+
const parsed = yaml.load(original) ?? {};
|
|
31
|
+
const allowBuilds = {
|
|
32
|
+
...parsed.allowBuilds ?? {}
|
|
33
|
+
};
|
|
38
34
|
const onlyBuiltDependencies = new Set(parsed.onlyBuiltDependencies ?? []);
|
|
39
35
|
let changed = false;
|
|
40
|
-
for (const [pkg, decision] of Object.entries(entries))
|
|
36
|
+
for (const [pkg, decision] of Object.entries(entries)){
|
|
41
37
|
if (allowBuilds[pkg] !== decision) {
|
|
42
38
|
allowBuilds[pkg] = decision;
|
|
43
39
|
changed = true;
|
|
@@ -51,10 +47,13 @@ const registerPnpmBuiltDependencies = (tree, entries) => {
|
|
|
51
47
|
return;
|
|
52
48
|
}
|
|
53
49
|
parsed.allowBuilds = allowBuilds;
|
|
54
|
-
parsed.onlyBuiltDependencies = [
|
|
55
|
-
|
|
50
|
+
parsed.onlyBuiltDependencies = [
|
|
51
|
+
...onlyBuiltDependencies
|
|
52
|
+
];
|
|
53
|
+
tree.write(WORKSPACE_FILE, yaml.dump(parsed, {
|
|
54
|
+
quotingType: "'"
|
|
55
|
+
}));
|
|
56
56
|
};
|
|
57
|
-
exports.registerPnpmBuiltDependencies = registerPnpmBuiltDependencies;
|
|
58
57
|
/**
|
|
59
58
|
* Set `ignoreWorkspaceRootCheck: true` in `pnpm-workspace.yaml` so `pnpm add`
|
|
60
59
|
* from the workspace root does not error with `ERR_PNPM_ADDING_TO_ROOT`.
|
|
@@ -64,22 +63,23 @@ exports.registerPnpmBuiltDependencies = registerPnpmBuiltDependencies;
|
|
|
64
63
|
* accepts the yaml form, so writing it here works for both majors.
|
|
65
64
|
*
|
|
66
65
|
* No-op for non-pnpm workspaces or when `pnpm-workspace.yaml` is absent.
|
|
67
|
-
*/
|
|
68
|
-
|
|
69
|
-
if ((0, devkit_1.detectPackageManager)(tree.root) !== 'pnpm') {
|
|
66
|
+
*/ export const ensurePnpmIgnoresWorkspaceRootCheck = (tree)=>{
|
|
67
|
+
if (detectPackageManager(tree.root) !== 'pnpm') {
|
|
70
68
|
return false;
|
|
71
69
|
}
|
|
72
70
|
if (!tree.exists(WORKSPACE_FILE)) {
|
|
73
71
|
return false;
|
|
74
72
|
}
|
|
75
73
|
const original = tree.read(WORKSPACE_FILE, 'utf-8') ?? '';
|
|
76
|
-
const parsed =
|
|
74
|
+
const parsed = yaml.load(original) ?? {};
|
|
77
75
|
if (parsed.ignoreWorkspaceRootCheck === true) {
|
|
78
76
|
return false;
|
|
79
77
|
}
|
|
80
78
|
parsed.ignoreWorkspaceRootCheck = true;
|
|
81
|
-
tree.write(WORKSPACE_FILE,
|
|
79
|
+
tree.write(WORKSPACE_FILE, yaml.dump(parsed, {
|
|
80
|
+
quotingType: "'"
|
|
81
|
+
}));
|
|
82
82
|
return true;
|
|
83
83
|
};
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
//# sourceMappingURL=pnpm-workspace.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/pnpm-workspace.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { detectPackageManager, type Tree } from '@nx/devkit';\nimport yaml from 'js-yaml';\n\nconst WORKSPACE_FILE = 'pnpm-workspace.yaml';\n\ninterface PnpmWorkspaceYaml {\n allowBuilds?: Record<string, boolean>;\n onlyBuiltDependencies?: string[];\n ignoreWorkspaceRootCheck?: boolean;\n [key: string]: unknown;\n}\n\n/**\n * Merge `allowBuilds` (pnpm 11) / `onlyBuiltDependencies` (pnpm 10) entries\n * into the generated workspace's `pnpm-workspace.yaml`. No-op for non-pnpm\n * workspaces.\n *\n * Generators call this when they introduce a dependency whose install\n * script pnpm would otherwise reject under pnpm 11's default\n * `strictDepBuilds=true`. Keeping the allowlist explicit — rather than\n * globally disabling strictness — preserves the supply-chain audit pnpm 11\n * intends: each build-script dep is reviewed by the generator author and\n * entered as either `true` (run the script) or `false` (known dep we\n * don't want to run but have seen).\n *\n * Only `true` entries are also added to `onlyBuiltDependencies` (pnpm 10's\n * allowlist has no equivalent of the `false` decision).\n */\nexport const registerPnpmBuiltDependencies = (\n tree: Tree,\n entries: Record<string, boolean>,\n): void => {\n if (detectPackageManager(tree.root) !== 'pnpm') {\n return;\n }\n if (!tree.exists(WORKSPACE_FILE)) {\n return;\n }\n\n const original = tree.read(WORKSPACE_FILE, 'utf-8') ?? '';\n const parsed = (yaml.load(original) as PnpmWorkspaceYaml | null) ?? {};\n\n const allowBuilds = { ...(parsed.allowBuilds ?? {}) };\n const onlyBuiltDependencies = new Set(parsed.onlyBuiltDependencies ?? []);\n let changed = false;\n\n for (const [pkg, decision] of Object.entries(entries)) {\n if (allowBuilds[pkg] !== decision) {\n allowBuilds[pkg] = decision;\n changed = true;\n }\n if (decision === true && !onlyBuiltDependencies.has(pkg)) {\n onlyBuiltDependencies.add(pkg);\n changed = true;\n }\n }\n\n if (!changed) {\n return;\n }\n\n parsed.allowBuilds = allowBuilds;\n parsed.onlyBuiltDependencies = [...onlyBuiltDependencies];\n\n tree.write(WORKSPACE_FILE, yaml.dump(parsed, { quotingType: \"'\" }));\n};\n\n/**\n * Set `ignoreWorkspaceRootCheck: true` in `pnpm-workspace.yaml` so `pnpm add`\n * from the workspace root does not error with `ERR_PNPM_ADDING_TO_ROOT`.\n *\n * pnpm 11 no longer honours `ignore-workspace-root-check=true` in `.npmrc`;\n * it must live in `pnpm-workspace.yaml` as the camelCased key. pnpm 10 also\n * accepts the yaml form, so writing it here works for both majors.\n *\n * No-op for non-pnpm workspaces or when `pnpm-workspace.yaml` is absent.\n */\nexport const ensurePnpmIgnoresWorkspaceRootCheck = (tree: Tree): boolean => {\n if (detectPackageManager(tree.root) !== 'pnpm') {\n return false;\n }\n if (!tree.exists(WORKSPACE_FILE)) {\n return false;\n }\n\n const original = tree.read(WORKSPACE_FILE, 'utf-8') ?? '';\n const parsed = (yaml.load(original) as PnpmWorkspaceYaml | null) ?? {};\n\n if (parsed.ignoreWorkspaceRootCheck === true) {\n return false;\n }\n\n parsed.ignoreWorkspaceRootCheck = true;\n tree.write(WORKSPACE_FILE, yaml.dump(parsed, { quotingType: \"'\" }));\n return true;\n};\n"],"names":["detectPackageManager","yaml","WORKSPACE_FILE","registerPnpmBuiltDependencies","tree","entries","root","exists","original","read","parsed","load","allowBuilds","onlyBuiltDependencies","Set","changed","pkg","decision","Object","has","add","write","dump","quotingType","ensurePnpmIgnoresWorkspaceRootCheck","ignoreWorkspaceRootCheck"],"mappings":"AAAA;;;CAGC,GACD,SAASA,oBAAoB,QAAmB,aAAa;AAC7D,OAAOC,UAAU,UAAU;AAE3B,MAAMC,iBAAiB;AASvB;;;;;;;;;;;;;;;CAeC,GACD,OAAO,MAAMC,gCAAgC,CAC3CC,MACAC;IAEA,IAAIL,qBAAqBI,KAAKE,IAAI,MAAM,QAAQ;QAC9C;IACF;IACA,IAAI,CAACF,KAAKG,MAAM,CAACL,iBAAiB;QAChC;IACF;IAEA,MAAMM,WAAWJ,KAAKK,IAAI,CAACP,gBAAgB,YAAY;IACvD,MAAMQ,SAAS,AAACT,KAAKU,IAAI,CAACH,aAA0C,CAAC;IAErE,MAAMI,cAAc;QAAE,GAAIF,OAAOE,WAAW,IAAI,CAAC,CAAC;IAAE;IACpD,MAAMC,wBAAwB,IAAIC,IAAIJ,OAAOG,qBAAqB,IAAI,EAAE;IACxE,IAAIE,UAAU;IAEd,KAAK,MAAM,CAACC,KAAKC,SAAS,IAAIC,OAAOb,OAAO,CAACA,SAAU;QACrD,IAAIO,WAAW,CAACI,IAAI,KAAKC,UAAU;YACjCL,WAAW,CAACI,IAAI,GAAGC;YACnBF,UAAU;QACZ;QACA,IAAIE,aAAa,QAAQ,CAACJ,sBAAsBM,GAAG,CAACH,MAAM;YACxDH,sBAAsBO,GAAG,CAACJ;YAC1BD,UAAU;QACZ;IACF;IAEA,IAAI,CAACA,SAAS;QACZ;IACF;IAEAL,OAAOE,WAAW,GAAGA;IACrBF,OAAOG,qBAAqB,GAAG;WAAIA;KAAsB;IAEzDT,KAAKiB,KAAK,CAACnB,gBAAgBD,KAAKqB,IAAI,CAACZ,QAAQ;QAAEa,aAAa;IAAI;AAClE,EAAE;AAEF;;;;;;;;;CASC,GACD,OAAO,MAAMC,sCAAsC,CAACpB;IAClD,IAAIJ,qBAAqBI,KAAKE,IAAI,MAAM,QAAQ;QAC9C,OAAO;IACT;IACA,IAAI,CAACF,KAAKG,MAAM,CAACL,iBAAiB;QAChC,OAAO;IACT;IAEA,MAAMM,WAAWJ,KAAKK,IAAI,CAACP,gBAAgB,YAAY;IACvD,MAAMQ,SAAS,AAACT,KAAKU,IAAI,CAACH,aAA0C,CAAC;IAErE,IAAIE,OAAOe,wBAAwB,KAAK,MAAM;QAC5C,OAAO;IACT;IAEAf,OAAOe,wBAAwB,GAAG;IAClCrB,KAAKiB,KAAK,CAACnB,gBAAgBD,KAAKqB,IAAI,CAACZ,QAAQ;QAAEa,aAAa;IAAI;IAChE,OAAO;AACT,EAAE"}
|
package/src/utils/port.js
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.assignPort = exports.assignSharedPort = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
|
-
const devkit_1 = require("@nx/devkit");
|
|
4
|
+
*/ import { getProjects } from "@nx/devkit";
|
|
9
5
|
/**
|
|
10
6
|
* Return the first port already registered in a project's own metadata, if any.
|
|
11
7
|
* Supports both the metadata.ports array and the legacy metadata.port.
|
|
12
|
-
*/
|
|
13
|
-
const getExistingProjectPort = (project) => {
|
|
8
|
+
*/ const getExistingProjectPort = (project)=>{
|
|
14
9
|
const metadata = project.metadata;
|
|
15
10
|
if (Array.isArray(metadata?.ports) && typeof metadata.ports[0] === 'number') {
|
|
16
11
|
return metadata.ports[0];
|
|
@@ -24,10 +19,9 @@ const getExistingProjectPort = (project) => {
|
|
|
24
19
|
* Return the port previously assigned to a particular component within a
|
|
25
20
|
* project, if any. Projects which host multiple components (e.g. one agent or
|
|
26
21
|
* MCP server per component) record a port per component in metadata.components.
|
|
27
|
-
*/
|
|
28
|
-
const getExistingComponentPort = (project, component) => {
|
|
22
|
+
*/ const getExistingComponentPort = (project, component)=>{
|
|
29
23
|
const components = project.metadata?.components ?? [];
|
|
30
|
-
const match = components.find((c)
|
|
24
|
+
const match = components.find((c)=>c.generator === component.info.id && c.name === component.name);
|
|
31
25
|
return typeof match?.port === 'number' ? match.port : undefined;
|
|
32
26
|
};
|
|
33
27
|
/**
|
|
@@ -36,33 +30,32 @@ const getExistingComponentPort = (project, component) => {
|
|
|
36
30
|
* project created by any of the given generator IDs has one, reuse it;
|
|
37
31
|
* otherwise assign a fresh one. Mutates the project to register the port in
|
|
38
32
|
* its metadata.ports.
|
|
39
|
-
*/
|
|
40
|
-
const
|
|
41
|
-
|
|
33
|
+
*/ export const assignSharedPort = (tree, project, generatorId, startPort)=>{
|
|
34
|
+
const generatorIds = Array.isArray(generatorId) ? generatorId : [
|
|
35
|
+
generatorId
|
|
36
|
+
];
|
|
42
37
|
// Reuse this project's own port if it already has one (idempotent on re-run)
|
|
43
38
|
const ownPort = getExistingProjectPort(project);
|
|
44
39
|
if (ownPort !== undefined) {
|
|
45
40
|
return ownPort;
|
|
46
41
|
}
|
|
47
42
|
// Otherwise reuse a sibling project's shared port if one exists
|
|
48
|
-
const siblingPort = [
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
.find((p) => generatorIds.includes(p.generator) && p.port !== undefined)?.port;
|
|
43
|
+
const siblingPort = [
|
|
44
|
+
...getProjects(tree).values()
|
|
45
|
+
].filter((p)=>p.name !== project.name).map((p)=>({
|
|
46
|
+
generator: p.metadata?.generator,
|
|
47
|
+
port: getExistingProjectPort(p)
|
|
48
|
+
})).find((p)=>generatorIds.includes(p.generator) && p.port !== undefined)?.port;
|
|
55
49
|
if (siblingPort !== undefined) {
|
|
56
50
|
project.metadata ??= {};
|
|
57
51
|
project.metadata.ports = [
|
|
58
|
-
...
|
|
59
|
-
siblingPort
|
|
52
|
+
...project.metadata.ports ?? [],
|
|
53
|
+
siblingPort
|
|
60
54
|
];
|
|
61
55
|
return siblingPort;
|
|
62
56
|
}
|
|
63
|
-
return
|
|
57
|
+
return assignPort(tree, project, startPort);
|
|
64
58
|
};
|
|
65
|
-
exports.assignSharedPort = assignSharedPort;
|
|
66
59
|
/**
|
|
67
60
|
* Assign a port for a particular target within a project.
|
|
68
61
|
* Mutates the project to add/update its metadata.ports with the newly assigned port.
|
|
@@ -70,42 +63,39 @@ exports.assignSharedPort = assignSharedPort;
|
|
|
70
63
|
* Re-runs are idempotent: a port previously assigned to this project (or, when
|
|
71
64
|
* `options.component` is provided, to this component) is returned as-is without
|
|
72
65
|
* registering a duplicate.
|
|
73
|
-
*/
|
|
74
|
-
const assignPort = (tree, project, startPort, options) => {
|
|
66
|
+
*/ export const assignPort = (tree, project, startPort, options)=>{
|
|
75
67
|
// Reuse a port already assigned to this project/component on re-run
|
|
76
|
-
const existingPort = options?.component
|
|
77
|
-
? getExistingComponentPort(project, options.component)
|
|
78
|
-
: getExistingProjectPort(project);
|
|
68
|
+
const existingPort = options?.component ? getExistingComponentPort(project, options.component) : getExistingProjectPort(project);
|
|
79
69
|
if (existingPort !== undefined) {
|
|
80
70
|
return existingPort;
|
|
81
71
|
}
|
|
82
72
|
// Find all existing ports
|
|
83
|
-
const allPorts = new Set([
|
|
73
|
+
const allPorts = new Set([
|
|
74
|
+
...getProjects(tree).values()
|
|
75
|
+
].flatMap((p)=>{
|
|
84
76
|
const metadata = p.metadata;
|
|
85
77
|
const ports = [];
|
|
86
78
|
// Support old port assignment where each project registered a single port
|
|
87
79
|
if (metadata?.port && typeof metadata.port === 'number') {
|
|
88
80
|
ports.push(metadata.port);
|
|
89
81
|
}
|
|
90
|
-
if (metadata?.ports &&
|
|
91
|
-
typeof metadata.ports === 'object' &&
|
|
92
|
-
Array.isArray(metadata.ports)) {
|
|
82
|
+
if (metadata?.ports && typeof metadata.ports === 'object' && Array.isArray(metadata.ports)) {
|
|
93
83
|
ports.push(...metadata.ports);
|
|
94
84
|
}
|
|
95
85
|
return ports;
|
|
96
86
|
}));
|
|
97
87
|
// Find the next available port higher than the start port
|
|
98
88
|
let candidatePort = startPort;
|
|
99
|
-
while
|
|
89
|
+
while(allPorts.has(candidatePort)){
|
|
100
90
|
candidatePort++;
|
|
101
91
|
}
|
|
102
92
|
project.metadata ??= {};
|
|
103
93
|
project.metadata.ports ??= [];
|
|
104
94
|
project.metadata.ports = [
|
|
105
95
|
...project.metadata.ports,
|
|
106
|
-
candidatePort
|
|
96
|
+
candidatePort
|
|
107
97
|
];
|
|
108
98
|
return candidatePort;
|
|
109
99
|
};
|
|
110
|
-
|
|
100
|
+
|
|
111
101
|
//# sourceMappingURL=port.js.map
|
package/src/utils/port.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/port.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { getProjects, type ProjectConfiguration, type Tree } from '@nx/devkit';\n\n/**\n * Return the first port already registered in a project's own metadata, if any.\n * Supports both the metadata.ports array and the legacy metadata.port.\n */\nconst getExistingProjectPort = (\n project: ProjectConfiguration,\n): number | undefined => {\n const metadata = project.metadata as any;\n if (Array.isArray(metadata?.ports) && typeof metadata.ports[0] === 'number') {\n return metadata.ports[0];\n }\n if (typeof metadata?.port === 'number') {\n return metadata.port;\n }\n return undefined;\n};\n\n/**\n * Return the port previously assigned to a particular component within a\n * project, if any. Projects which host multiple components (e.g. one agent or\n * MCP server per component) record a port per component in metadata.components.\n */\nconst getExistingComponentPort = (\n project: ProjectConfiguration,\n component: { info: { id: string }; name?: string },\n): number | undefined => {\n const components = (project.metadata as any)?.components ?? [];\n const match = components.find(\n (c: any) => c.generator === component.info.id && c.name === component.name,\n );\n return typeof match?.port === 'number' ? match.port : undefined;\n};\n\n/**\n * Options for assigning a port to a target within a project.\n */\nexport interface AssignPortOptions {\n /**\n * Identifies the component the port is being assigned for. When provided, a\n * port already assigned to this component is reused so re-runs are\n * idempotent. Use this for projects which host a port per component.\n */\n component?: { info: { id: string }; name?: string };\n}\n\n/**\n * Assign a port shared across all projects created by the same generator (or\n * family of generators). If this project already has a port, or a sibling\n * project created by any of the given generator IDs has one, reuse it;\n * otherwise assign a fresh one. Mutates the project to register the port in\n * its metadata.ports.\n */\nexport const assignSharedPort = (\n tree: Tree,\n project: ProjectConfiguration,\n generatorId: string | string[],\n startPort: number,\n): number => {\n const generatorIds = Array.isArray(generatorId) ? generatorId : [generatorId];\n\n // Reuse this project's own port if it already has one (idempotent on re-run)\n const ownPort = getExistingProjectPort(project);\n if (ownPort !== undefined) {\n return ownPort;\n }\n\n // Otherwise reuse a sibling project's shared port if one exists\n const siblingPort = [...getProjects(tree).values()]\n .filter((p) => p.name !== project.name)\n .map((p) => ({\n generator: (p.metadata as any)?.generator,\n port: getExistingProjectPort(p),\n }))\n .find(\n (p) => generatorIds.includes(p.generator) && p.port !== undefined,\n )?.port;\n\n if (siblingPort !== undefined) {\n project.metadata ??= {};\n (project.metadata as any).ports = [\n ...((project.metadata as any).ports ?? []),\n siblingPort,\n ];\n return siblingPort;\n }\n\n return assignPort(tree, project, startPort);\n};\n\n/**\n * Assign a port for a particular target within a project.\n * Mutates the project to add/update its metadata.ports with the newly assigned port.\n *\n * Re-runs are idempotent: a port previously assigned to this project (or, when\n * `options.component` is provided, to this component) is returned as-is without\n * registering a duplicate.\n */\nexport const assignPort = (\n tree: Tree,\n project: ProjectConfiguration,\n startPort: number,\n options?: AssignPortOptions,\n) => {\n // Reuse a port already assigned to this project/component on re-run\n const existingPort = options?.component\n ? getExistingComponentPort(project, options.component)\n : getExistingProjectPort(project);\n if (existingPort !== undefined) {\n return existingPort;\n }\n\n // Find all existing ports\n const allPorts = new Set(\n [...getProjects(tree).values()].flatMap((p) => {\n const metadata = p.metadata as any;\n const ports: number[] = [];\n // Support old port assignment where each project registered a single port\n if (metadata?.port && typeof metadata.port === 'number') {\n ports.push(metadata.port);\n }\n if (\n metadata?.ports &&\n typeof metadata.ports === 'object' &&\n Array.isArray(metadata.ports)\n ) {\n ports.push(...metadata.ports);\n }\n return ports;\n }),\n );\n\n // Find the next available port higher than the start port\n let candidatePort = startPort;\n while (allPorts.has(candidatePort)) {\n candidatePort++;\n }\n\n project.metadata ??= {};\n (project.metadata as any).ports ??= [];\n (project.metadata as any).ports = [\n ...(project.metadata as any).ports,\n candidatePort,\n ];\n\n return candidatePort;\n};\n"],"names":["getProjects","getExistingProjectPort","project","metadata","Array","isArray","ports","port","undefined","getExistingComponentPort","component","components","match","find","c","generator","info","id","name","assignSharedPort","tree","generatorId","startPort","generatorIds","ownPort","siblingPort","values","filter","p","map","includes","assignPort","options","existingPort","allPorts","Set","flatMap","push","candidatePort","has"],"mappings":"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"}
|
package/src/utils/py.d.ts
CHANGED
|
@@ -19,5 +19,18 @@ export declare const uvxCommand: (dep: IPyDepVersion, args?: string, withDeps?:
|
|
|
19
19
|
/**
|
|
20
20
|
* Add a workspace dependency from one Python project to another.
|
|
21
21
|
* Adds the dependency to [project].dependencies and [tool.uv.sources].
|
|
22
|
+
*
|
|
23
|
+
* Both projects are passed as Nx project configurations (not names): the
|
|
24
|
+
* dependency's PEP 503 distribution name is derived from its own
|
|
25
|
+
* `pyproject.toml` here, so callers cannot accidentally pass the dotted Nx id
|
|
26
|
+
* (which @nxlv/python splits on `.` and drops, losing the project-graph edge).
|
|
27
|
+
* This is the single entry point all generators use to wire a Python workspace
|
|
28
|
+
* dependency.
|
|
22
29
|
*/
|
|
23
|
-
export declare const addWorkspaceDependencyToPyProject: (tree: Tree,
|
|
30
|
+
export declare const addWorkspaceDependencyToPyProject: (tree: Tree, dependentProject: {
|
|
31
|
+
name?: string;
|
|
32
|
+
root: string;
|
|
33
|
+
}, dependencyProject: {
|
|
34
|
+
name?: string;
|
|
35
|
+
root: string;
|
|
36
|
+
}) => void;
|