@aws/nx-plugin 1.0.0-rc.3 → 1.0.0-rc.30
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE-THIRD-PARTY +7246 -5532
- package/README.md +8 -8
- package/executors.json +9 -0
- package/generators.json +100 -1
- package/package.json +35 -16
- package/src/agentcore-gateway/attach-upstream.d.ts +33 -0
- package/src/agentcore-gateway/attach-upstream.js +38 -0
- package/src/agentcore-gateway/attach-upstream.js.map +1 -0
- package/src/agentcore-gateway/files/cedar/policies/README.md +52 -0
- package/src/agentcore-gateway/files/cedar/policies/permit-all.cedar +11 -0
- package/src/agentcore-gateway/files/project/local-dev.ts.template +134 -0
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +21 -0
- package/src/agentcore-gateway/gateway-connection/generator.js +101 -0
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.ts +13 -0
- package/src/agentcore-gateway/gateway-connection/schema.json +31 -0
- package/src/agentcore-gateway/generator.d.ts +25 -0
- package/src/agentcore-gateway/generator.js +149 -0
- package/src/agentcore-gateway/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +19 -0
- package/src/agentcore-gateway/mcp-connection/generator.js +59 -0
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.ts +13 -0
- package/src/agentcore-gateway/mcp-connection/schema.json +31 -0
- package/src/agentcore-gateway/schema.d.js +6 -0
- package/src/agentcore-gateway/schema.d.js.map +1 -0
- package/src/agentcore-gateway/schema.d.ts +17 -0
- package/src/agentcore-gateway/schema.json +70 -0
- package/src/bin/aws-nx-mcp.js +14 -0
- package/src/bin/aws-nx-mcp.js.map +1 -0
- package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +7 -7
- package/src/connection/agent-local-dev.js +42 -0
- package/src/connection/agent-local-dev.js.map +1 -0
- package/src/connection/agent-runtime-config.d.ts +1 -1
- package/src/connection/agent-runtime-config.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/generator.d.ts +7 -14
- package/src/connection/generator.js +158 -177
- package/src/connection/generator.js.map +1 -1
- package/src/connection/local-dev.d.ts +15 -0
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.js.map +1 -0
- package/src/connection/schema.d.js +6 -0
- package/src/connection/schema.d.js.map +1 -0
- package/src/connection/schema.d.ts +1 -0
- package/src/connection/schema.json +5 -0
- package/src/connection/supported-connections.d.ts +98 -0
- package/src/connection/supported-connections.js +138 -0
- package/src/connection/supported-connections.js.map +1 -0
- package/src/index.js +2 -5
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +51 -81
- package/src/infra/app/generator.d.ts +3 -3
- package/src/infra/app/generator.js +141 -123
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.js +6 -0
- package/src/infra/app/schema.d.js.map +1 -0
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +5 -0
- package/src/license/__snapshots__/config.spec.ts.snap +23 -0
- package/src/license/config-types.d.ts +18 -1
- package/src/license/config-types.js +8 -2
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +65 -7
- package/src/license/config.js +442 -109
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.d.ts +16 -0
- package/src/license/dependency-check/check.js +116 -0
- package/src/license/dependency-check/check.js.map +1 -0
- package/src/license/dependency-check/collectors/collector.d.ts +21 -0
- package/src/license/dependency-check/collectors/collector.js +46 -0
- package/src/license/dependency-check/collectors/collector.js.map +1 -0
- package/src/license/dependency-check/collectors/npm-collector.d.ts +10 -0
- package/src/license/dependency-check/collectors/npm-collector.js +68 -0
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -0
- package/src/license/dependency-check/collectors/python-collector.d.ts +23 -0
- package/src/license/dependency-check/collectors/python-collector.js +114 -0
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -0
- package/src/license/dependency-check/evaluator.d.ts +9 -0
- package/src/license/dependency-check/evaluator.js +94 -0
- package/src/license/dependency-check/evaluator.js.map +1 -0
- package/src/license/dependency-check/executor-schema.json +6 -0
- package/src/license/dependency-check/executor.d.ts +9 -0
- package/src/license/dependency-check/executor.js +51 -0
- package/src/license/dependency-check/executor.js.map +1 -0
- package/src/license/dependency-check/pre-approved.d.ts +6 -0
- package/src/license/dependency-check/pre-approved.js +1893 -0
- package/src/license/dependency-check/pre-approved.js.map +1 -0
- package/src/license/dependency-check/types.d.ts +45 -0
- package/src/license/dependency-check/types.js +6 -0
- package/src/license/dependency-check/types.js.map +1 -0
- package/src/license/generator.d.ts +3 -3
- package/src/license/generator.js +127 -30
- package/src/license/generator.js.map +1 -1
- package/src/license/index.d.ts +8 -0
- package/src/license/index.js +7 -0
- package/src/license/index.js.map +1 -0
- package/src/license/known-exceptions.d.ts +7 -0
- package/src/license/known-exceptions.js +39 -0
- package/src/license/known-exceptions.js.map +1 -0
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/schema.d.ts +7 -0
- package/src/license/schema.json +11 -0
- package/src/license/sync/generator.d.ts +2 -2
- package/src/license/sync/generator.js +100 -125
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.d.ts +3 -3
- package/src/license/sync/project-file-sync.js +28 -35
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.d.ts +5 -1
- package/src/mcp-server/generator-info.js +130 -160
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.d.ts +1 -1
- package/src/mcp-server/guide-pipeline.js +184 -206
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/guide-render.js +10 -25
- package/src/mcp-server/guide-render.js.map +1 -1
- package/src/mcp-server/index.js +6 -10
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +42 -56
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/option-filter.js +33 -47
- package/src/mcp-server/option-filter.js.map +1 -1
- package/src/mcp-server/schema-registry.d.ts +9 -3
- package/src/mcp-server/schema-registry.js +41 -38
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/mcp-server/schema.js +9 -7
- package/src/mcp-server/schema.js.map +1 -1
- package/src/mcp-server/server.js +20 -24
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.d.ts +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +23 -24
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.d.ts +2 -2
- package/src/mcp-server/tools/general-guidance.js +46 -25
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.d.ts +2 -2
- package/src/mcp-server/tools/generator-guide.js +29 -37
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.d.ts +2 -2
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/__snapshots__/generator.reserved-keywords.spec.ts.snap +1 -1
- package/src/open-api/ts-client/generator.d.ts +3 -3
- package/src/open-api/ts-client/generator.js +16 -26
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-client/schema.d.js +6 -0
- package/src/open-api/ts-client/schema.d.js.map +1 -0
- package/src/open-api/ts-hooks/generator.d.ts +3 -3
- package/src/open-api/ts-hooks/generator.js +13 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.spec.tsx +14 -14
- package/src/open-api/ts-hooks/schema.d.js +6 -0
- package/src/open-api/ts-hooks/schema.d.js.map +1 -0
- package/src/open-api/ts-metadata/generator.d.ts +3 -3
- package/src/open-api/ts-metadata/generator.js +12 -20
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/ts-metadata/schema.d.js +6 -0
- package/src/open-api/ts-metadata/schema.d.js.map +1 -0
- package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
- package/src/open-api/utils/codegen-data/languages.js +42 -60
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.js +31 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +6 -2
- package/src/open-api/utils/codegen-data.js +253 -269
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.d.ts +5 -1
- package/src/open-api/utils/normalise.js +242 -241
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.d.ts +2 -2
- package/src/open-api/utils/parse.js +11 -13
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.d.ts +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +160 -17
- package/src/preset/generator.d.ts +4 -4
- package/src/preset/generator.js +140 -112
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js +6 -0
- package/src/preset/schema.d.js.map +1 -0
- package/src/preset/schema.d.ts +4 -2
- package/src/preset/schema.json +10 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +734 -0
- package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.protocols.spec.ts.snap} +80 -314
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +189 -0
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +30 -0
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +28 -0
- package/src/py/agent/a2a-connection/generator.d.ts +3 -3
- package/src/py/agent/a2a-connection/generator.js +113 -85
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/schema.d.js +8 -0
- package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/py/agent/a2a-connection/schema.d.ts +1 -0
- package/src/py/agent/a2a-connection/schema.json +5 -0
- package/src/py/agent/files/a2a-langchain/main.py.template +89 -0
- package/src/py/agent/files/ag-ui-langchain/main.py.template +83 -0
- package/src/py/agent/files/common/agent.py.template +2 -0
- package/src/py/agent/files/common-langchain/agent.py.template +30 -0
- package/src/py/agent/files/http/init.py.template +7 -25
- package/src/py/agent/files/http/main.py.template +2 -3
- package/src/py/agent/files/http-langchain/main.py.template +84 -0
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +184 -0
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +35 -0
- package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +34 -0
- package/src/py/agent/gateway-connection/generator.d.ts +10 -0
- package/src/py/agent/gateway-connection/generator.js +119 -0
- package/src/py/agent/gateway-connection/generator.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.js +6 -0
- package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.ts +13 -0
- package/src/py/agent/gateway-connection/schema.json +31 -0
- package/src/py/agent/generator.d.ts +3 -3
- package/src/py/agent/generator.js +280 -180
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +153 -89
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +30 -0
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +30 -0
- package/src/py/agent/mcp-connection/generator.d.ts +3 -3
- package/src/py/agent/mcp-connection/generator.js +65 -126
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/schema.d.js +8 -0
- package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/py/agent/mcp-connection/schema.d.ts +1 -0
- package/src/py/agent/mcp-connection/schema.json +5 -0
- package/src/py/agent/react-connection/__snapshots__/generator.spec.ts.snap +11 -19
- package/src/py/agent/react-connection/generator.d.ts +4 -4
- package/src/py/agent/react-connection/generator.js +55 -59
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/{serve-local.d.ts → local-dev.d.ts} +6 -6
- package/src/py/agent/react-connection/local-dev.js +36 -0
- package/src/py/agent/react-connection/local-dev.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.js +8 -0
- package/src/py/agent/react-connection/schema.d.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.ts +1 -0
- package/src/py/agent/react-connection/schema.json +5 -0
- package/src/py/agent/schema.d.js +6 -0
- package/src/py/agent/schema.d.js.map +1 -0
- package/src/py/agent/schema.d.ts +2 -1
- package/src/py/agent/schema.json +6 -1
- package/src/py/api/generator.d.ts +3 -3
- package/src/py/api/generator.js +12 -11
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.js +6 -0
- package/src/py/api/schema.d.js.map +1 -0
- package/src/py/api/schema.d.ts +1 -0
- package/src/py/api/schema.json +5 -0
- package/src/py/dynamodb/__snapshots__/generator.spec.ts.snap +1526 -0
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/py/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/agent-connection/generator.js +39 -0
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.ts +15 -0
- package/src/py/dynamodb/agent-connection/schema.json +27 -0
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/py/dynamodb/fast-api-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/fast-api-connection/generator.js +37 -0
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.ts +13 -0
- package/src/py/dynamodb/fast-api-connection/schema.json +23 -0
- package/src/py/dynamodb/files/__name__/__init__.py.template +6 -0
- package/src/py/dynamodb/files/__name__/client.py.template +39 -0
- package/src/py/dynamodb/files/__name__/entities/__init__.py.template +4 -0
- package/src/py/dynamodb/files/__name__/entities/base.py.template +63 -0
- package/src/py/dynamodb/files/__name__/entities/example.py.template +64 -0
- package/src/py/dynamodb/files/config.json.template +24 -0
- package/src/py/dynamodb/generator.d.ts +10 -0
- package/src/py/dynamodb/generator.js +110 -0
- package/src/py/dynamodb/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/py/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js +39 -0
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.ts +15 -0
- package/src/py/dynamodb/mcp-server-connection/schema.json +27 -0
- package/src/py/dynamodb/schema.d.js +6 -0
- package/src/py/dynamodb/schema.d.js.map +1 -0
- package/src/py/dynamodb/schema.d.ts +16 -0
- package/src/py/dynamodb/schema.json +75 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +212 -4678
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
- package/src/py/fast-api/files/app/__name__/init.py.template +5 -22
- package/src/py/fast-api/files/app/__name__/main.py.template +4 -1
- package/src/py/fast-api/generator.d.ts +3 -3
- package/src/py/fast-api/generator.js +90 -87
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +4 -3
- package/src/py/fast-api/react/generator.d.ts +4 -4
- package/src/py/fast-api/react/generator.js +25 -25
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.d.ts +1 -1
- package/src/py/fast-api/react/open-api.js +31 -29
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/fast-api/react/schema.d.js +6 -0
- package/src/py/fast-api/react/schema.d.js.map +1 -0
- package/src/py/fast-api/react/schema.d.ts +1 -0
- package/src/py/fast-api/react/schema.json +5 -0
- package/src/py/fast-api/schema.d.js +6 -0
- package/src/py/fast-api/schema.d.js.map +1 -0
- package/src/py/fast-api/schema.d.ts +1 -0
- package/src/py/fast-api/schema.json +5 -0
- package/src/py/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/py/lambda-function/generator.d.ts +3 -3
- package/src/py/lambda-function/generator.js +60 -59
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.js +6 -0
- package/src/py/lambda-function/schema.d.js.map +1 -0
- package/src/py/lambda-function/schema.d.ts +1 -0
- package/src/py/lambda-function/schema.json +5 -0
- package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +87 -17
- package/src/py/mcp-server/generator.d.ts +3 -3
- package/src/py/mcp-server/generator.js +152 -125
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.js +6 -0
- package/src/py/mcp-server/schema.d.js.map +1 -0
- package/src/py/mcp-server/schema.d.ts +1 -0
- package/src/py/mcp-server/schema.json +5 -0
- package/src/py/project/generator.d.ts +17 -4
- package/src/py/project/generator.js +205 -127
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.js +6 -0
- package/src/py/project/schema.d.js.map +1 -0
- package/src/py/project/schema.d.ts +1 -0
- package/src/py/project/schema.json +5 -0
- package/src/sdk/agentcore-gateway.d.ts +6 -0
- package/src/sdk/agentcore-gateway.js +7 -0
- package/src/sdk/agentcore-gateway.js.map +1 -0
- package/src/sdk/connection.d.ts +6 -0
- package/src/sdk/connection.js +6 -0
- package/src/sdk/connection.js.map +1 -0
- package/src/sdk/license.d.ts +8 -0
- package/src/sdk/license.js +7 -0
- package/src/sdk/license.js.map +1 -0
- package/src/sdk/open-api.d.ts +10 -0
- package/src/sdk/open-api.js +8 -0
- package/src/sdk/open-api.js.map +1 -0
- package/src/sdk/py.d.ts +14 -0
- package/src/sdk/py.js +10 -0
- package/src/sdk/py.js.map +1 -0
- package/src/sdk/terraform.d.ts +6 -0
- package/src/sdk/terraform.js +7 -0
- package/src/sdk/terraform.js.map +1 -0
- package/src/sdk/ts.d.ts +33 -0
- package/src/sdk/ts.js +35 -0
- package/src/sdk/ts.js.map +1 -0
- package/{sdk → src/sdk}/utils/ast.d.ts +1 -2
- package/src/sdk/utils/ast.js +6 -0
- package/src/sdk/utils/ast.js.map +1 -0
- package/{sdk → src/sdk}/utils/format.d.ts +1 -1
- package/src/sdk/utils/format.js +6 -0
- package/src/sdk/utils/format.js.map +1 -0
- package/{sdk → src/sdk}/utils/test.d.ts +1 -1
- package/src/sdk/utils/test.js +6 -0
- package/src/sdk/utils/test.js.map +1 -0
- package/src/smithy/project/__snapshots__/generator.spec.ts.snap +19 -24
- package/src/smithy/project/files/build.Dockerfile.template +1 -4
- package/src/smithy/project/files/src/operations/echo.smithy.template +1 -0
- package/src/smithy/project/generator.d.ts +3 -3
- package/src/smithy/project/generator.js +64 -57
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/project/schema.d.js +6 -0
- package/src/smithy/project/schema.d.js.map +1 -0
- package/src/smithy/project/schema.d.ts +1 -0
- package/src/smithy/project/schema.json +5 -0
- package/src/smithy/react-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/smithy/react-connection/generator.d.ts +3 -3
- package/src/smithy/react-connection/generator.js +39 -47
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/react-connection/schema.d.js +6 -0
- package/src/smithy/react-connection/schema.d.js.map +1 -0
- package/src/smithy/react-connection/schema.d.ts +1 -0
- package/src/smithy/react-connection/schema.json +5 -0
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +409 -106
- package/src/smithy/ts/api/generator.d.ts +3 -3
- package/src/smithy/ts/api/generator.js +127 -106
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.js +6 -0
- package/src/smithy/ts/api/schema.d.js.map +1 -0
- package/src/smithy/ts/api/schema.d.ts +1 -0
- package/src/smithy/ts/api/schema.json +5 -0
- package/src/terraform/project/files/application/src/main.tf.template +6 -1
- package/src/terraform/project/files/application/src/providers.tf.template +1 -1
- package/src/terraform/project/generator.d.ts +3 -3
- package/src/terraform/project/generator.js +156 -104
- package/src/terraform/project/generator.js.map +1 -1
- package/src/terraform/project/schema.d.js +9 -0
- package/src/terraform/project/schema.d.js.map +1 -0
- package/src/terraform/project/schema.d.ts +1 -0
- package/src/terraform/project/schema.json +5 -0
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +499 -110
- package/src/trpc/backend/files/src/procedures/echo.ts.template +1 -1
- package/src/trpc/backend/files/src/schema/echo.ts.template +2 -2
- package/src/trpc/backend/generator.d.ts +4 -4
- package/src/trpc/backend/generator.js +97 -85
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.js +6 -0
- package/src/trpc/backend/schema.d.js.map +1 -0
- package/src/trpc/backend/schema.d.ts +3 -2
- package/src/trpc/backend/schema.json +5 -0
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +3 -3
- package/src/trpc/react/generator.d.ts +4 -4
- package/src/trpc/react/generator.js +63 -58
- package/src/trpc/react/generator.js.map +1 -1
- package/src/trpc/react/schema.d.js +6 -0
- package/src/trpc/react/schema.d.js.map +1 -0
- package/src/trpc/react/schema.d.ts +1 -0
- package/src/trpc/react/schema.json +5 -0
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +656 -18
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +256 -0
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +23 -0
- package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
- package/src/ts/agent/a2a-connection/generator.js +63 -56
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/a2a-connection/schema.d.js +8 -0
- package/src/ts/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/ts/agent/a2a-connection/schema.d.ts +1 -0
- package/src/ts/agent/a2a-connection/schema.json +5 -0
- package/src/ts/agent/files/common/agent.ts.template +6 -2
- package/src/ts/agent/files/http/router.ts.template +1 -1
- package/src/ts/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +220 -0
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +30 -0
- package/src/ts/agent/gateway-connection/generator.d.ts +10 -0
- package/src/ts/agent/gateway-connection/generator.js +114 -0
- package/src/ts/agent/gateway-connection/generator.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.js +6 -0
- package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.ts +13 -0
- package/src/ts/agent/gateway-connection/schema.json +31 -0
- package/src/ts/agent/generator.d.ts +3 -3
- package/src/ts/agent/generator.js +188 -144
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +192 -111
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +22 -0
- package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
- package/src/ts/agent/mcp-connection/generator.js +53 -60
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/schema.d.js +8 -0
- package/src/ts/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/ts/agent/mcp-connection/schema.d.ts +1 -0
- package/src/ts/agent/mcp-connection/schema.json +5 -0
- package/src/ts/agent/react-connection/generator.d.ts +4 -4
- package/src/ts/agent/react-connection/generator.js +86 -80
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/local-dev.d.ts +13 -0
- package/src/ts/agent/react-connection/local-dev.js +17 -0
- package/src/ts/agent/react-connection/local-dev.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.js +8 -0
- package/src/ts/agent/react-connection/schema.d.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.ts +1 -0
- package/src/ts/agent/react-connection/schema.json +5 -0
- package/src/ts/agent/schema.d.js +6 -0
- package/src/ts/agent/schema.d.js.map +1 -0
- package/src/ts/agent/schema.d.ts +1 -0
- package/src/ts/agent/schema.json +5 -0
- package/src/ts/api/generator.d.ts +3 -3
- package/src/ts/api/generator.js +16 -16
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.js +6 -0
- package/src/ts/api/schema.d.js.map +1 -0
- package/src/ts/api/schema.d.ts +3 -1
- package/src/ts/api/schema.json +5 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +15 -16
- package/src/ts/astro-docs/generator.d.ts +3 -3
- package/src/ts/astro-docs/generator.js +69 -54
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/astro-docs/schema.d.js +6 -0
- package/src/ts/astro-docs/schema.d.js.map +1 -0
- package/src/ts/astro-docs/schema.d.ts +2 -2
- package/src/ts/astro-docs/schema.json +3 -3
- package/src/ts/docs/generator.d.ts +3 -3
- package/src/ts/docs/generator.js +10 -10
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/docs/schema.d.js +6 -0
- package/src/ts/docs/schema.d.js.map +1 -0
- package/src/ts/docs/schema.d.ts +1 -4
- package/src/ts/docs/schema.json +3 -3
- package/src/ts/dynamodb/__snapshots__/generator.spec.ts.snap +1390 -0
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/agent-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/agent-connection/generator.js +30 -0
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.ts +15 -0
- package/src/ts/dynamodb/agent-connection/schema.json +27 -0
- package/src/ts/dynamodb/files/config.json.template +24 -0
- package/src/ts/dynamodb/files/src/client.ts.template +61 -0
- package/src/ts/dynamodb/files/src/entities/example.ts.template +47 -0
- package/src/ts/dynamodb/files/src/entities/index.ts.template +1 -0
- package/src/ts/dynamodb/files/src/index.ts.template +2 -0
- package/src/ts/dynamodb/generator.d.ts +10 -0
- package/src/ts/dynamodb/generator.js +116 -0
- package/src/ts/dynamodb/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +45 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js +30 -0
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +15 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.json +27 -0
- package/src/ts/dynamodb/schema.d.js +6 -0
- package/src/ts/dynamodb/schema.d.js.map +1 -0
- package/src/ts/dynamodb/schema.d.ts +16 -0
- package/src/ts/dynamodb/schema.json +75 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/smithy-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/smithy-connection/generator.js +28 -0
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.ts +13 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +23 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +23 -0
- package/src/ts/dynamodb/trpc-connection/generator.d.ts +10 -0
- package/src/ts/dynamodb/trpc-connection/generator.js +28 -0
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.ts +13 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +23 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- package/src/ts/lambda-function/generator.d.ts +3 -3
- package/src/ts/lambda-function/generator.js +59 -56
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/io.js +83 -52
- package/src/ts/lambda-function/io.js.map +1 -1
- package/src/ts/lambda-function/schema.d.js +6 -0
- package/src/ts/lambda-function/schema.d.js.map +1 -0
- package/src/ts/lambda-function/schema.d.ts +1 -0
- package/src/ts/lambda-function/schema.json +5 -0
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +53 -99
- package/src/ts/lib/__snapshots__/vitest.spec.ts.snap +24 -0
- package/src/ts/lib/biome.d.ts +7 -0
- package/src/ts/lib/biome.js +58 -0
- package/src/ts/lib/biome.js.map +1 -0
- package/src/ts/lib/generator.d.ts +3 -3
- package/src/ts/lib/generator.js +96 -96
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -4
- package/src/ts/lib/schema.d.js +6 -0
- package/src/ts/lib/schema.d.js.map +1 -0
- package/src/ts/lib/schema.d.ts +1 -1
- package/src/ts/lib/schema.json +5 -0
- package/src/ts/lib/ts-project-utils.d.ts +12 -2
- package/src/ts/lib/ts-project-utils.js +80 -65
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.js +5 -2
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +2 -2
- package/src/ts/lib/vitest.js +29 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +83 -13
- package/src/ts/mcp-server/generator.d.ts +3 -3
- package/src/ts/mcp-server/generator.js +164 -120
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.js +6 -0
- package/src/ts/mcp-server/schema.d.js.map +1 -0
- package/src/ts/mcp-server/schema.d.ts +1 -0
- package/src/ts/mcp-server/schema.json +5 -0
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +46 -26
- package/src/ts/nx-generator/files/common/schema.d.ts.template +1 -0
- package/src/ts/nx-generator/files/common/schema.json.template +5 -0
- package/src/ts/nx-generator/files/local/generator.ts.template +3 -3
- package/src/ts/nx-generator/files/nx-plugin-for-aws/generator/generator.ts.template +6 -7
- package/src/ts/nx-generator/generator.d.ts +2 -2
- package/src/ts/nx-generator/generator.js +111 -74
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-generator/schema.d.js +6 -0
- package/src/ts/nx-generator/schema.d.js.map +1 -0
- package/src/ts/nx-generator/schema.d.ts +1 -0
- package/src/ts/nx-generator/schema.json +5 -0
- package/src/ts/nx-plugin/__snapshots__/generator.spec.ts.snap +30 -18
- package/src/ts/nx-plugin/files/mcp-server/server.ts.template +5 -5
- package/src/ts/nx-plugin/files/mcp-server/tools/create-workspace-command.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/general-guidance.ts.template +1 -1
- package/src/ts/nx-plugin/files/mcp-server/tools/generator-guide.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/tools/list-generators.ts.template +2 -2
- package/src/ts/nx-plugin/files/mcp-server/utils.ts.template +3 -3
- package/src/ts/nx-plugin/generator.d.ts +3 -3
- package/src/ts/nx-plugin/generator.js +60 -51
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/schema.d.js +9 -0
- package/src/ts/nx-plugin/schema.d.js.map +1 -0
- package/src/ts/nx-plugin/schema.json +5 -0
- package/src/ts/nx-plugin/utils.d.ts +1 -1
- package/src/ts/nx-plugin/utils.js +32 -38
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +312 -482
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
- package/src/ts/rdb/agent-connection/generator.js +38 -39
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/agent-connection/schema.d.js +8 -0
- package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/agent-connection/schema.d.ts +1 -0
- package/src/ts/rdb/agent-connection/schema.json +5 -0
- package/src/ts/rdb/files/config.json.template +14 -0
- package/src/ts/rdb/files/prisma.config.ts.template +6 -5
- package/src/ts/rdb/files/src/create-db-user-handler.ts.template +7 -9
- package/src/ts/rdb/files/src/index.ts.template +0 -1
- package/src/ts/rdb/files/src/migration-handler.ts.template +1 -28
- package/src/ts/rdb/files/src/prisma.ts.template +28 -23
- package/src/ts/rdb/files/src/utils.ts.template +3 -0
- package/src/ts/rdb/generator.d.ts +3 -7
- package/src/ts/rdb/generator.js +158 -130
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
- package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.ts +1 -0
- package/src/ts/rdb/mcp-server-connection/schema.json +5 -0
- package/src/ts/rdb/schema.d.js +6 -0
- package/src/ts/rdb/schema.d.js.map +1 -0
- package/src/ts/rdb/schema.d.ts +1 -0
- package/src/ts/rdb/schema.json +5 -0
- package/src/ts/rdb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +46 -43
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/schema.d.js +8 -0
- package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/smithy-connection/schema.d.ts +1 -0
- package/src/ts/rdb/smithy-connection/schema.json +5 -0
- package/src/ts/rdb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +36 -31
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/schema.d.js +8 -0
- package/src/ts/rdb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/rdb/trpc-connection/schema.json +5 -0
- package/src/ts/rdb/utils.d.ts +1 -1
- package/src/ts/rdb/utils.js +9 -11
- package/src/ts/rdb/utils.js.map +1 -1
- package/src/ts/react-website/agui/files/common/src/hooks/useAgui__agentNameClassName__.tsx.template +1 -16
- package/src/ts/react-website/agui/generator.d.ts +1 -1
- package/src/ts/react-website/agui/generator.js +69 -62
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +626 -612
- package/src/ts/react-website/app/generator.d.ts +4 -4
- package/src/ts/react-website/app/generator.js +217 -192
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.js +6 -0
- package/src/ts/react-website/app/schema.d.js.map +1 -0
- package/src/ts/react-website/app/schema.d.ts +1 -1
- package/src/ts/react-website/app/schema.json +11 -6
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +129 -18
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +36 -10
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +0 -20
- package/src/ts/react-website/cognito-auth/files/app/components/CognitoAuth/index.tsx.template +2 -2
- package/src/ts/react-website/cognito-auth/generator.d.ts +4 -4
- package/src/ts/react-website/cognito-auth/generator.js +64 -63
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +8 -6
- package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
- package/src/ts/react-website/cognito-auth/grit/none-auth-menu.grit +1 -0
- package/src/ts/react-website/cognito-auth/grit/shadcn-auth-menu.grit +3 -1
- package/src/ts/react-website/cognito-auth/grit/shadcn-state-declarations.grit +3 -1
- package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
- package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
- package/src/ts/react-website/cognito-auth/schema.json +5 -0
- package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
- package/src/ts/react-website/cognito-auth/utils.js +34 -32
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
- package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
- package/src/ts/react-website/runtime-config/generator.js +29 -31
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/schema.d.js +6 -0
- package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
- package/src/ts/react-website/runtime-config/schema.d.ts +1 -0
- package/src/ts/react-website/runtime-config/schema.json +5 -0
- package/src/ts/sync/generator.d.ts +3 -3
- package/src/ts/sync/generator.js +60 -59
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.d.ts +3 -3
- package/src/ts/website/app/generator.js +10 -10
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.js +6 -0
- package/src/ts/website/app/schema.d.js.map +1 -0
- package/src/ts/website/app/schema.d.ts +1 -1
- package/src/ts/website/app/schema.json +11 -6
- package/src/ts/website/auth/generator.d.ts +4 -4
- package/src/ts/website/auth/generator.js +11 -10
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.js +6 -0
- package/src/ts/website/auth/schema.d.js.map +1 -0
- package/src/ts/website/auth/schema.d.ts +1 -0
- package/src/ts/website/auth/schema.json +5 -0
- package/src/utils/agent-chat/agent-chat.d.ts +31 -0
- package/src/utils/agent-chat/agent-chat.js +29 -0
- package/src/utils/agent-chat/agent-chat.js.map +1 -0
- package/src/utils/agent-chat/files/a2a/chat.ts.template +33 -0
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +17 -0
- package/src/utils/agent-chat/files/common/agentcore.ts.template +81 -0
- package/src/utils/agent-chat/files/http-py/chat.ts.template +43 -0
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +54 -0
- package/src/utils/agent-connection/agent-connection.d.ts +117 -25
- package/src/utils/agent-connection/agent-connection.js +411 -103
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client-config.ts.template +93 -0
- package/src/utils/agent-connection/files/core-auth/agentcore-endpoints.ts.template +37 -0
- package/src/utils/agent-connection/files/core-auth/agentcore-fetch.ts.template +54 -0
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +41 -0
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-transport.ts.template +70 -0
- package/src/utils/agent-connection/files/core-runtime-config/runtime-config.ts.template +22 -32
- package/src/utils/agent-connection/files/core-shared/agentcore-transport.ts.template +39 -0
- package/src/utils/agent-connection/files/core-strands/a2a/agentcore-a2a-client-strands.ts.template +61 -0
- package/src/utils/agent-connection/files/core-strands/base/model-errors-strands.ts.template +36 -0
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +26 -0
- package/src/utils/agent-connection/files/core-strands/mcp/agentcore-mcp-client-strands.ts.template +27 -0
- package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client_config.py.template +43 -0
- package/src/utils/agent-connection/files/py-core-auth/agentcore_endpoints.py.template +47 -0
- package/src/utils/agent-connection/files/py-core-auth/auth/session.py.template +51 -0
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +28 -0
- package/src/utils/agent-connection/files/py-core-langchain/a2a/agentcore_a2a_client_langchain.py.template +99 -0
- package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +57 -0
- package/src/utils/agent-connection/files/py-core-langchain/mcp/agentcore_mcp_client_langchain.py.template +64 -0
- package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_transport.py.template +34 -0
- package/src/utils/agent-connection/files/py-core-runtime-config/runtime_config.py.template +5 -18
- package/src/utils/agent-connection/files/py-core-shared/agentcore_transport.py.template +40 -0
- package/src/utils/agent-connection/files/py-core-strands/a2a/agentcore_a2a_client_strands.py.template +66 -0
- package/src/utils/agent-connection/files/py-core-strands/base/model_errors_strands.py.template +40 -0
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +22 -0
- package/src/utils/agent-connection/files/py-core-strands/mcp/agentcore_mcp_client_strands.py.template +30 -0
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +11 -3
- package/src/utils/agent-core-constructs/agent-core-constructs.js +86 -38
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/cdk/app/agent-core/__nameKebabCase__/__nameKebabCase__.ts.template +4 -0
- package/src/utils/agent-core-constructs/files/cdk/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.ts.template +50 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/agentcore-gateway.ts.template +487 -0
- package/src/utils/agent-core-constructs/files/cdk/core/agentcore-gateway/readiness-probe/index.js.template +55 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +449 -0
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/render-cedar.cjs.template +13 -0
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +80 -12
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +14 -0
- package/src/utils/api-constructs/api-constructs.d.ts +2 -2
- package/src/utils/api-constructs/api-constructs.js +30 -31
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +3 -0
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +23 -6
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +51 -15
- package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +61 -7
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +94 -4
- package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
- package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
- package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
- package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
- package/src/utils/api-constructs/open-api-metadata.js +22 -22
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.d.ts +5 -1
- package/src/utils/ast/website.js +18 -20
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +33 -1
- package/src/utils/ast.js +130 -70
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +1 -1
- package/src/utils/bundle/bundle.js +50 -47
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.js +47 -26
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +5 -5
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.d.ts +13 -3
- package/src/utils/config/utils.js +65 -43
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/files/components/__apiNameClassName__Provider.tsx.template +1 -1
- package/src/utils/connection/open-api/react.d.ts +6 -6
- package/src/utils/connection/open-api/react.js +81 -77
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.d.ts +1 -1
- package/src/utils/containers.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +18 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +48 -0
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -0
- package/src/utils/dynamodb-constructs/files/cdk/app/dynamodb/__nameKebabCase__.ts.template +43 -0
- package/src/utils/dynamodb-constructs/files/cdk/core/dynamodb.ts.template +105 -0
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +72 -0
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +155 -0
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +195 -0
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +13 -0
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +106 -0
- package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/cdk-command.ts.template +6 -3
- package/src/utils/files/common/scripts/src/rdb/mysql/wait-for-mysql-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/postgres/wait-for-postgres-db.ts.template +32 -0
- package/src/utils/files/common/scripts/src/rdb/shared/pull-image.ts.template +16 -0
- package/src/utils/files/common/scripts/src/rdb/shared/start-container.ts.template +117 -0
- package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
- package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +12 -6
- package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +9 -4
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.d.ts +45 -2
- package/src/utils/format.js +323 -81
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +1 -1
- package/src/utils/fs.js +14 -13
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
- package/src/utils/function-constructs/function-constructs.d.ts +2 -2
- package/src/utils/function-constructs/function-constructs.js +21 -26
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.d.ts +4 -0
- package/src/utils/generators.js +18 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.d.ts +1 -1
- package/src/utils/git.js +19 -34
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.js +5 -5
- package/src/utils/iac-providers.js.map +1 -1
- package/src/utils/iac.d.ts +1 -1
- package/src/utils/iac.js +12 -14
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +123 -14
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +28 -9
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +106 -6
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
- package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +24 -28
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/install.d.ts +32 -0
- package/src/utils/install.js +56 -0
- package/src/utils/install.js.map +1 -0
- package/src/utils/js.d.ts +4 -0
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.d.ts +25 -0
- package/src/utils/mcp.js +74 -0
- package/src/utils/mcp.js.map +1 -0
- package/src/utils/metrics.d.ts +9 -3
- package/src/utils/metrics.js +61 -46
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +8 -12
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.d.ts +16 -0
- package/src/utils/names.js +39 -48
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.d.ts +1 -1
- package/src/utils/npm-scope.js +9 -17
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +25 -4
- package/src/utils/nx.js +144 -75
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +1 -1
- package/src/utils/nxlv-python.js +27 -15
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/object.js +5 -11
- package/src/utils/object.js.map +1 -1
- package/src/utils/paths.d.ts +1 -1
- package/src/utils/paths.js +11 -15
- package/src/utils/paths.js.map +1 -1
- package/src/utils/pkg-manager.js +4 -9
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/pnpm-workspace.d.ts +1 -1
- package/src/utils/pnpm-workspace.js +22 -22
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.d.ts +31 -3
- package/src/utils/port.js +72 -12
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +16 -3
- package/src/utils/py.js +72 -47
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/cdk/app/dbs/__nameKebabCase__.ts.template +12 -2
- package/src/utils/rdb-constructs/files/cdk/core/rdb/aurora.ts.template +35 -16
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +42 -48
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +31 -16
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +5 -4
- package/src/utils/rdb-constructs/rdb-constructs.js +31 -41
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.d.ts +1 -0
- package/src/utils/shared-constructs-constants.js +16 -15
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +2 -2
- package/src/utils/shared-constructs.js +57 -54
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.d.ts +11 -0
- package/src/utils/shared-dynamodb-scripts.js +25 -0
- package/src/utils/shared-dynamodb-scripts.js.map +1 -0
- package/src/utils/shared-infra-config.d.ts +1 -1
- package/src/utils/shared-infra-config.js +30 -31
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.d.ts +11 -0
- package/src/utils/shared-infra-scripts.js +40 -0
- package/src/utils/shared-infra-scripts.js.map +1 -0
- package/src/utils/shared-rdb-scripts.d.ts +16 -0
- package/src/utils/shared-rdb-scripts.js +28 -0
- package/src/utils/shared-rdb-scripts.js.map +1 -0
- package/src/utils/shared-scripts.d.ts +2 -5
- package/src/utils/shared-scripts.js +12 -38
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +1 -1
- package/src/utils/shared-shadcn.js +64 -72
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +13 -1
- package/src/utils/test.js +35 -23
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.d.ts +1 -1
- package/src/utils/toml.js +10 -14
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +116 -84
- package/src/utils/versions.js +124 -102
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/cdk/core/static-website.ts.template +73 -5
- package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +68 -19
- package/src/utils/website-constructs/website-constructs.d.ts +2 -2
- package/src/utils/website-constructs/website-constructs.js +31 -30
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/bin/aws-nx-mcp.js +0 -17
- package/bin/aws-nx-mcp.js.map +0 -1
- package/sdk/connection.d.ts +0 -6
- package/sdk/connection.js +0 -10
- package/sdk/connection.js.map +0 -1
- package/sdk/open-api.d.ts +0 -10
- package/sdk/open-api.js +0 -15
- package/sdk/open-api.js.map +0 -1
- package/sdk/py.d.ts +0 -14
- package/sdk/py.js +0 -18
- package/sdk/py.js.map +0 -1
- package/sdk/terraform.d.ts +0 -6
- package/sdk/terraform.js +0 -11
- package/sdk/terraform.js.map +0 -1
- package/sdk/ts.d.ts +0 -29
- package/sdk/ts.js +0 -47
- package/sdk/ts.js.map +0 -1
- package/sdk/utils/ast.js +0 -12
- package/sdk/utils/ast.js.map +0 -1
- package/sdk/utils/format.js +0 -10
- package/sdk/utils/format.js.map +0 -1
- package/sdk/utils/test.js +0 -10
- package/sdk/utils/test.js.map +0 -1
- package/src/connection/agent-serve-local.js +0 -48
- package/src/connection/agent-serve-local.js.map +0 -1
- package/src/connection/serve-local.d.ts +0 -15
- package/src/connection/serve-local.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client.py.template +0 -22
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client.py.template +0 -22
- package/src/py/agent/react-connection/serve-local.js +0 -30
- package/src/py/agent/react-connection/serve-local.js.map +0 -1
- package/src/py/agent/scripts/http/chat.ts.template +0 -38
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client.ts.template +0 -19
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client.ts.template +0 -19
- package/src/ts/agent/react-connection/serve-local.d.ts +0 -13
- package/src/ts/agent/react-connection/serve-local.js +0 -19
- package/src/ts/agent/react-connection/serve-local.js.map +0 -1
- package/src/ts/agent/scripts/http/chat.ts.template +0 -35
- package/src/ts/lib/eslint.d.ts +0 -14
- package/src/ts/lib/eslint.js +0 -90
- package/src/ts/lib/eslint.js.map +0 -1
- package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +0 -1
- package/src/ts/rdb/files/scripts/docker-pull.ts.template +0 -15
- package/src/ts/rdb/files/scripts/docker-start.ts.template +0 -84
- package/src/ts/rdb/files/scripts/wait-for-db.ts.template +0 -55
- package/src/ts/rdb/files/src/constants.ts.template +0 -8
- package/src/utils/agent-connection/files/core-a2a/agentcore-a2a-client.ts.template +0 -123
- package/src/utils/agent-connection/files/core-mcp/agentcore-mcp-client.ts.template +0 -128
- package/src/utils/agent-connection/files/py-core-a2a/agentcore_a2a_client.py.template +0 -120
- package/src/utils/agent-connection/files/py-core-mcp/agentcore_mcp_client.py.template +0 -89
- /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
- /package/src/utils/agent-connection/files/{core-runtime-config/with-session-id.ts.template → core-strands/base/with-session-id-strands.ts.template} +0 -0
- /package/src/utils/agent-connection/files/{py-core-runtime-config/with_session_id.py.template → py-core-strands/base/with_session_id_strands.py.template} +0 -0
- /package/src/utils/files/common/scripts/src/{index.ts.template → infra/index.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{infra-deploy.ts.template → infra/infra-deploy.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{infra-destroy.ts.template → infra/infra-destroy.ts.template} +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/credentials.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/run.ts.template +0 -0
- /package/src/utils/files/common/scripts/src/{stage-credentials → infra/stage-credentials}/stage-parser.ts.template +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/license/config.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 {\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n readAwsNxPluginConfig,\n updateAwsNxPluginConfig,\n} from '../utils/config/utils';\nimport { formatFilesInSubtree } from '../utils/format';\nimport { addDependencyToTargetIfNotPresent } from '../utils/nx';\nimport type {\n CommentSyntax,\n LicenseConfig,\n LicenseSourceConfig,\n} from './config-types';\nimport type { DependencyCheckException } from './dependency-check/types';\nimport type { SPDXLicenseIdentifier } from './schema';\n\n/**\n * Licenses containing a placeholder for the copyright year.\n */\nconst LICENSES_WITH_YEAR: Set<SPDXLicenseIdentifier> = new Set(['MIT']);\n\n/**\n * Defines the comment syntax for popular programming languages\n */\nexport const LANGUAGE_COMMENT_SYNTAX: { [ext: string]: CommentSyntax } = {\n // C++ style comments\n ...Object.fromEntries(\n [\n // Node\n 'js',\n 'ts',\n 'cjs',\n 'mjs',\n 'cts',\n 'mts',\n // React\n 'jsx',\n 'tsx',\n // Web\n 'sass',\n 'scss',\n 'php',\n // Java\n 'java',\n // TypeSpec\n 'tsp',\n // Golang\n 'go',\n // Rust\n 'rs',\n // C and C++\n 'c',\n 'cpp',\n 'cxx',\n 'cc',\n 'h',\n 'hpp',\n // C#\n 'cs',\n // Scala\n 'scala',\n 'sc',\n 'sbt',\n // Kotlin\n 'kt',\n // Swift\n 'swift',\n ].map((ext) => [ext, { line: '//', block: { start: '/*', end: '*/' } }]),\n ),\n // Bash style comments\n ...Object.fromEntries(\n [\n // Bash\n 'sh',\n // Perl\n 'pl',\n // YAML\n 'yaml',\n 'yml',\n // R\n 'r',\n ].map((ext) => [ext, { line: '#' }]),\n ),\n // Docker\n Dockerfile: { line: '#' },\n // Python\n py: { line: '#', block: { start: '\"\"\"', end: '\"\"\"' } },\n // Web\n html: { block: { start: '<!--', end: '-->' } },\n css: { block: { start: '/*', end: '*/' } },\n // Ruby\n rb: { line: '#', block: { start: '=begin', end: '=end' } },\n // F#\n ...Object.fromEntries(\n ['fs', 'fsx'].map((ext) => [\n ext,\n { line: '//', block: { start: '(*', end: '*)' } },\n ]),\n ),\n // Visual Basic\n vb: { line: \"' \" },\n // Lua\n lua: { line: '--', block: { start: '--[[', end: ']]' } },\n // PowerShell\n ps1: { line: '#', block: { start: '<#', end: '#>' } },\n psm1: { line: '#', block: { start: '<#', end: '#>' } },\n // Markdown\n md: { block: { start: '<!--', end: '-->' } },\n // Terraform\n tf: { line: '#', block: { start: '/*', end: '*/' } },\n // Smithy\n smithy: { line: '//' },\n};\n\n/**\n * Module specifier for the license helpers exported by this package, used by\n * imports written into the user's config file.\n */\nconst LICENSE_SDK_MODULE = '@aws/nx-plugin/sdk/license';\n\n/**\n * Build the object literal source for a dependency check exception.\n * `JSON.stringify` produces valid string literals for arbitrary text (quotes,\n * backslashes, newlines all escaped); prettier later normalises quote style.\n */\nconst exceptionLiteral = (exception: DependencyCheckException): string => {\n const parts = [`package: ${JSON.stringify(exception.package)}`];\n if (exception.version !== undefined) {\n parts.push(`version: ${JSON.stringify(exception.version)}`);\n }\n parts.push(`reason: ${JSON.stringify(exception.reason)}`);\n if (exception.spdx !== undefined) {\n parts.push(`spdx: ${JSON.stringify(exception.spdx)}`);\n }\n return `{ ${parts.join(', ')} }`;\n};\n\n/**\n * GritQL `or` block that appends `$ins` (the insert placeholder) to the named\n * array inside the matched `$scope`, without ever producing an array hole:\n * - empty `key: []` → `key: [$ins]` (a list-append `+=` does not match an\n * empty array, so the empty case is rewritten directly)\n * - otherwise → list-append `+=` of `, $ins`; the leading comma is the\n * element separator and `+=` places it correctly for single inline,\n * single-with-trailing-comma and multi-element arrays alike\n */\nconst appendToArray = (key: string, ins: string) =>\n `or {\n $scope <: contains \\`${key}: []\\` => \\`${key}: [${ins}]\\`,\n $scope <: contains \\`${key}: [$items]\\` where { $items += \\`, ${ins}\\` }\n }`;\n\n/**\n * Insert `property` (TypeScript source like `dependencies: { ... }`) as the\n * first property of the `license` object literal.\n *\n * Prepending is comma-safe for every shape — empty `{}`, single- or multi-line.\n * `+=` appending is not: it omits the separator when the last property's value\n * is an object/array literal (e.g. `source: { ... }`), corrupting the file. The\n * property text is routed through a placeholder so its content never enters the\n * GritQL pattern. Returns true if the file changed (a `license` object existed).\n */\nconst prependLicenseProperty = async (\n tree: Tree,\n property: string,\n): Promise<boolean> => {\n const { insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await import(\n '../utils/ast'\n );\n\n // Non-empty license object: insert before the first existing property.\n const intoNonEmpty = await insertViaGritQL(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n `\\`license: { $props }\\` where { $props => \\`${GRIT_INSERT_PLACEHOLDER}, $props\\` }`,\n property,\n );\n if (intoNonEmpty) return true;\n\n // Empty license object: `{ $props }` doesn't match `{}`, so fill it directly.\n return insertViaGritQL(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n `\\`license: {}\\` => \\`license: { ${GRIT_INSERT_PLACEHOLDER} }\\``,\n property,\n );\n};\n\n/**\n * Whether `license.dependencies` (the dependency-check block) is configured.\n * Scoped within `license` so a `dependencies`-shaped object elsewhere in the\n * file isn't mistaken for it.\n */\nconst hasDependenciesBlock = async (tree: Tree): Promise<boolean> => {\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) return false;\n const { matchGritQL } = await import('../utils/ast');\n return matchGritQL(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n '`license: { $l }` where { $l <: contains `dependencies: $_` }',\n );\n};\n\n/**\n * Workspace-root npm-ecosystem lockfiles. Each is added to the license-check\n * cache inputs only when present, so the cache invalidates on dependency\n * changes without listing lockfiles for package managers the workspace doesn't\n * use.\n */\nconst NPM_LOCKFILES = [\n 'pnpm-lock.yaml',\n 'yarn.lock',\n 'package-lock.json',\n 'bun.lockb',\n];\n\n/**\n * Recompute the `inputs` of the root `license-check` target from what's\n * currently in the workspace: the present npm lockfiles, the config file, and\n * a recursive uv.lock glob when the dependency check uses a Python collector.\n *\n * The uv lockfile is keyed off the collector (not file presence) because it is\n * created by `uv` *after* the generator runs, and may live in a subdirectory of\n * a uv workspace. Callers run this whenever they change the relevant state, so\n * the inputs stay correct regardless of generator order. No-op if the\n * license-check target doesn't exist yet.\n */\nexport const updateLicenseCheckTargetInputs = async (\n tree: Tree,\n): Promise<void> => {\n const rootProjectJsonPath = 'project.json';\n if (!tree.exists(rootProjectJsonPath)) return;\n\n const rootProject = JSON.parse(tree.read(rootProjectJsonPath, 'utf-8')!);\n const target = rootProject.targets?.['license-check'];\n if (!target) return;\n\n const inputs = NPM_LOCKFILES.filter((f) => tree.exists(f)).map(\n (f) => `{workspaceRoot}/${f}`,\n );\n\n if (await hasPythonCollector(tree)) {\n inputs.push('{workspaceRoot}/**/uv.lock');\n }\n\n inputs.push('{workspaceRoot}/aws-nx-plugin.config.mts');\n\n target.inputs = inputs;\n tree.write(rootProjectJsonPath, JSON.stringify(rootProject, null, 2));\n};\n\n/**\n * Whether the dependency check config has a `pythonCollector` configured.\n */\nconst hasPythonCollector = async (tree: Tree): Promise<boolean> => {\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) return false;\n const { matchGritQL } = await import('../utils/ast');\n return matchGritQL(tree, AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`pythonCollector`');\n};\n\n/**\n * The name of the project that owns the root `license-check` target, or\n * undefined if no project defines it.\n */\nconst findLicenseCheckProjectName = (tree: Tree): string | undefined => {\n for (const [name, config] of getProjects(tree)) {\n if (config.targets?.['license-check']) return name;\n }\n return undefined;\n};\n\n/**\n * Make a project's `lint` target depend on the root `license-check` target, so\n * license checking runs as part of lint/build. No-op when the project has no\n * `lint` target or there's no license-check target to depend on. Idempotent.\n *\n * Callers format afterwards (generators call `formatFilesInSubtree` at the end),\n * so the rewritten project.json matches prettier.\n */\nexport const addLicenseCheckToLintTarget = (\n tree: Tree,\n projectName: string,\n): void => {\n const licenseCheckProject = findLicenseCheckProjectName(tree);\n if (!licenseCheckProject) return;\n\n let project: ProjectConfiguration;\n try {\n project = readProjectConfiguration(tree, projectName);\n } catch {\n return;\n }\n\n // Only wire projects that actually lint, and never the license-check project\n // itself (a target can't depend on its own project's target).\n if (!project.targets?.lint || projectName === licenseCheckProject) return;\n\n addDependencyToTargetIfNotPresent(project, 'lint', {\n projects: [licenseCheckProject],\n target: 'license-check',\n });\n updateProjectConfiguration(tree, projectName, project);\n};\n\n/**\n * Wire every project's `lint` target to the root `license-check` target.\n * Called by the license generator so existing projects pick up the dependency\n * regardless of the order generators ran in.\n */\nexport const addLicenseCheckToAllLintTargets = (tree: Tree): void => {\n for (const [name] of getProjects(tree)) {\n addLicenseCheckToLintTarget(tree, name);\n }\n};\n\nexport interface EnsureDependencyCheckBlockOptions {\n includeCollectors?: 'npm' | 'npm+python';\n}\n\n/**\n * Ensure the `dependencies` block (dependency license checking) exists within\n * the `license` config. If one already exists it is left untouched, so user\n * customizations survive.\n */\nexport const ensureDependencyCheckBlock = async (\n tree: Tree,\n options?: EnsureDependencyCheckBlockOptions,\n): Promise<void> => {\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) return;\n\n const { addDestructuredImport } = await import('../utils/ast');\n\n if (await hasDependenciesBlock(tree)) {\n return;\n }\n\n const withPython = options?.includeCollectors === 'npm+python';\n const collectors = withPython\n ? 'collectors: [npmCollector(), pythonCollector()]'\n : 'collectors: [npmCollector()]';\n\n const block = `dependencies: { allow: DEFAULT_LICENSE_ALLOWLIST, ${collectors}, exceptions: [] }`;\n\n // Prepend the block as the first property of the license object. Prepending\n // (rather than `+=` appending) is comma-safe for every shape: GritQL's `+=`\n // omits the separator when the last existing property's value is an object\n // literal (e.g. `source: { ... }`), which would corrupt the file.\n const added = await prependLicenseProperty(tree, block);\n\n // Only add the imports if the block was actually written (i.e. a license\n // object literal existed to attach it to).\n if (added) {\n await addDestructuredImport(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n withPython\n ? ['DEFAULT_LICENSE_ALLOWLIST', 'npmCollector', 'pythonCollector']\n : ['DEFAULT_LICENSE_ALLOWLIST', 'npmCollector'],\n LICENSE_SDK_MODULE,\n );\n await formatFilesInSubtree(tree, AWS_NX_PLUGIN_CONFIG_FILE_NAME);\n }\n};\n\n/**\n * Ensure license exceptions are present in `license.dependencies.exceptions`.\n * An exception whose package is already listed is skipped (so existing reasons\n * are never overwritten). Other exceptions, collectors and the allowlist are\n * left untouched.\n *\n * The `dependencies: { $scope }` scope keeps edits within the dependency-check\n * block, so an `exceptions` array elsewhere in the file isn't matched.\n */\nexport const ensureLicenseExceptions = async (\n tree: Tree,\n exceptions: DependencyCheckException[],\n): Promise<void> => {\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) return;\n\n const { insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await import(\n '../utils/ast'\n );\n\n if (!(await hasDependenciesBlock(tree))) {\n return;\n }\n\n let modified = false;\n for (const exception of exceptions) {\n const pkg = JSON.stringify(exception.package);\n const inserted = await insertViaGritQL(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n `\\`dependencies: { $scope }\\` where {\n $scope <: not contains \\`package: ${pkg}\\`,\n ${appendToArray('exceptions', GRIT_INSERT_PLACEHOLDER)}\n }`,\n exceptionLiteral(exception),\n );\n modified ||= inserted;\n }\n\n if (modified) {\n await formatFilesInSubtree(tree, AWS_NX_PLUGIN_CONFIG_FILE_NAME);\n }\n};\n\n/**\n * Add `pythonCollector()` to `license.dependencies.collectors`, unless one is\n * already configured.\n */\nexport const ensurePythonLicenseCollector = async (\n tree: Tree,\n): Promise<void> => {\n if (!tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)) return;\n\n const { addDestructuredImport, insertViaGritQL, GRIT_INSERT_PLACEHOLDER } =\n await import('../utils/ast');\n\n if (!(await hasDependenciesBlock(tree))) {\n return;\n }\n\n const added = await insertViaGritQL(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n `\\`dependencies: { $scope }\\` where {\n $scope <: not contains \\`pythonCollector\\`,\n ${appendToArray('collectors', GRIT_INSERT_PLACEHOLDER)}\n }`,\n 'pythonCollector()',\n );\n\n if (added) {\n await addDestructuredImport(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n ['pythonCollector'],\n LICENSE_SDK_MODULE,\n );\n await formatFilesInSubtree(tree, AWS_NX_PLUGIN_CONFIG_FILE_NAME);\n // Now that a Python collector is configured, ensure uv.lock is a cache\n // input. Runs here (not only in the license generator) so it's added\n // whenever the collector is — e.g. when py#project runs after license.\n await updateLicenseCheckTargetInputs(tree);\n }\n};\n\n/**\n * Build the default `license.source` config for a given license\n */\nexport const defaultLicenseConfig = (\n spdx: SPDXLicenseIdentifier,\n copyrightHolder: string,\n): LicenseSourceConfig => {\n switch (spdx) {\n case 'ASL': {\n // For ASL, we use a \"box\" style license header\n const rawContent = [\n `Copyright ${copyrightHolder}. All Rights Reserved.`,\n '',\n 'Licensed under the Amazon Software License (the \"License\"). You may not use this file except in compliance',\n 'with the License. A copy of the License is located at',\n '',\n ' https://aws.amazon.com/asl/',\n '',\n 'or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES',\n 'OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions',\n 'and limitations under the License.',\n ];\n const maxLen = Math.max(...rawContent.map((line) => line.length));\n const lines = rawContent.map(\n (line) => `${line}${' '.repeat(maxLen - line.length)}`,\n );\n return {\n spdx,\n copyrightHolder,\n header: {\n content: { lines },\n format: {\n '**/*.{js,ts,jsx,tsx,mjs,mts}': {\n blockStart: `/***${'*'.repeat(maxLen)}**`,\n lineStart: ' * ',\n lineEnd: ' *',\n blockEnd: ` ***${'*'.repeat(maxLen)}**/`,\n },\n '**/*.{py,sh,tf}': {\n blockStart: `###${'#'.repeat(maxLen)}##`,\n lineStart: '# ',\n lineEnd: ' #',\n blockEnd: `###${'#'.repeat(maxLen)}##`,\n },\n },\n exclude: ['**/*.gen.*'],\n },\n };\n }\n default: {\n return {\n spdx,\n copyrightHolder,\n ...(LICENSES_WITH_YEAR.has(spdx)\n ? {\n copyrightYear: new Date().getFullYear(),\n }\n : {}),\n header: {\n content: {\n lines: [\n `Copyright ${copyrightHolder}. All Rights Reserved.`,\n `SPDX-License-Identifier: ${spdx}`,\n ],\n },\n format: {\n '**/*.{js,ts,jsx,tsx,mjs,mts}': {\n blockStart: '/**',\n lineStart: ' * ',\n blockEnd: ' */',\n },\n '**/*.{py,sh,tf}': {\n blockStart: '#',\n lineStart: '# ',\n blockEnd: '#',\n },\n },\n exclude: ['**/*.gen.*'],\n },\n };\n }\n }\n};\n\n/**\n * Write the `license.source` config (headers + LICENSE files) to the aws nx\n * plugin config.\n *\n * The `source` block is (re)written, but any existing `license.dependencies`\n * block — a user-customized allowlist, collectors and exceptions — is\n * preserved, so re-running the license generator (e.g. to change the copyright\n * holder) never clobbers dependency-check customizations.\n */\nexport const writeLicenseConfig = async (\n tree: Tree,\n source: LicenseSourceConfig,\n) => {\n const { captureGritQL } = await import('../utils/ast');\n\n // Capture the existing `dependencies: { ... }` block before overwriting the\n // license value, so we can re-attach it afterwards. It's managed by the\n // ensure* helpers, never written from here.\n const preserved = tree.exists(AWS_NX_PLUGIN_CONFIG_FILE_NAME)\n ? await captureGritQL(\n tree,\n AWS_NX_PLUGIN_CONFIG_FILE_NAME,\n '`dependencies: $_`',\n )\n : undefined;\n\n await updateAwsNxPluginConfig(tree, { license: { source } });\n\n // Re-attach the preserved block. The captured text may contain backticks,\n // `${...}` or quotes — prependLicenseProperty routes it through a placeholder\n // so it never enters the GritQL pattern.\n if (preserved) {\n await prependLicenseProperty(tree, preserved);\n await formatFilesInSubtree(tree, AWS_NX_PLUGIN_CONFIG_FILE_NAME);\n }\n};\n\n/**\n * Read license configuration\n */\nexport const readLicenseConfig = async (\n tree: Tree,\n): Promise<LicenseConfig | undefined> => {\n return (await readAwsNxPluginConfig(tree))?.license;\n};\n"],"names":["getProjects","readProjectConfiguration","updateProjectConfiguration","AWS_NX_PLUGIN_CONFIG_FILE_NAME","readAwsNxPluginConfig","updateAwsNxPluginConfig","formatFilesInSubtree","addDependencyToTargetIfNotPresent","LICENSES_WITH_YEAR","Set","LANGUAGE_COMMENT_SYNTAX","Object","fromEntries","map","ext","line","block","start","end","Dockerfile","py","html","css","rb","vb","lua","ps1","psm1","md","tf","smithy","LICENSE_SDK_MODULE","exceptionLiteral","exception","parts","JSON","stringify","package","version","undefined","push","reason","spdx","join","appendToArray","key","ins","prependLicenseProperty","tree","property","insertViaGritQL","GRIT_INSERT_PLACEHOLDER","intoNonEmpty","hasDependenciesBlock","exists","matchGritQL","NPM_LOCKFILES","updateLicenseCheckTargetInputs","rootProjectJsonPath","rootProject","parse","read","target","targets","inputs","filter","f","hasPythonCollector","write","findLicenseCheckProjectName","name","config","addLicenseCheckToLintTarget","projectName","licenseCheckProject","project","lint","projects","addLicenseCheckToAllLintTargets","ensureDependencyCheckBlock","options","addDestructuredImport","withPython","includeCollectors","collectors","added","ensureLicenseExceptions","exceptions","modified","pkg","inserted","ensurePythonLicenseCollector","defaultLicenseConfig","copyrightHolder","rawContent","maxLen","Math","max","length","lines","repeat","header","content","format","blockStart","lineStart","lineEnd","blockEnd","exclude","has","copyrightYear","Date","getFullYear","writeLicenseConfig","source","captureGritQL","preserved","license","readLicenseConfig"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { type LicenseCollector } from './collectors/collector';
|
|
6
|
+
import type { CheckResult, DependencyCheckConfig } from './types';
|
|
7
|
+
export interface RunCheckOptions {
|
|
8
|
+
projectRoot: string;
|
|
9
|
+
config: DependencyCheckConfig;
|
|
10
|
+
collectors?: LicenseCollector[];
|
|
11
|
+
}
|
|
12
|
+
export declare const runCheck: (options: RunCheckOptions) => Promise<CheckResult>;
|
|
13
|
+
export interface FormatReportOptions {
|
|
14
|
+
collectors?: LicenseCollector[];
|
|
15
|
+
}
|
|
16
|
+
export declare const formatReport: (result: CheckResult, options?: FormatReportOptions) => string;
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import { AWS_NX_PLUGIN_CONFIG_FILE_NAME } from "../../utils/config/utils.js";
|
|
5
|
+
import { DEFAULT_COLLECTORS } from "./collectors/collector.js";
|
|
6
|
+
import { createEvaluator } from "./evaluator.js";
|
|
7
|
+
const findException = (exceptions, name, version)=>{
|
|
8
|
+
if (!exceptions) return undefined;
|
|
9
|
+
return exceptions.find((e)=>e && e.package === name && (!e.version || e.version === version));
|
|
10
|
+
};
|
|
11
|
+
export const runCheck = async (options)=>{
|
|
12
|
+
const { projectRoot, config } = options;
|
|
13
|
+
const collectors = options.collectors ?? DEFAULT_COLLECTORS;
|
|
14
|
+
const evaluator = createEvaluator({
|
|
15
|
+
allow: config.allow
|
|
16
|
+
});
|
|
17
|
+
const allDeps = await Promise.all(collectors.map((c)=>c.collect({
|
|
18
|
+
workspaceRoot: projectRoot
|
|
19
|
+
})));
|
|
20
|
+
const dependencies = [];
|
|
21
|
+
for (const deps of allDeps){
|
|
22
|
+
for (const dep of deps){
|
|
23
|
+
const exception = findException(config.exceptions, dep.name, dep.version);
|
|
24
|
+
const license = exception?.spdx ?? dep.rawLicense;
|
|
25
|
+
const status = exception ? 'PRE_APPROVED' : evaluator.evaluate(license);
|
|
26
|
+
config.onDependency?.({
|
|
27
|
+
package: dep.name,
|
|
28
|
+
spdx: license
|
|
29
|
+
});
|
|
30
|
+
dependencies.push({
|
|
31
|
+
name: dep.name,
|
|
32
|
+
version: dep.version,
|
|
33
|
+
ecosystem: dep.ecosystem,
|
|
34
|
+
rawLicense: dep.rawLicense,
|
|
35
|
+
status,
|
|
36
|
+
exception
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const pass = !dependencies.some((d)=>d.status === 'NOT_APPROVED' || d.status === 'UNKNOWN');
|
|
41
|
+
return {
|
|
42
|
+
pass,
|
|
43
|
+
dependencies
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
export const formatReport = (result, options)=>{
|
|
47
|
+
const groups = new Map();
|
|
48
|
+
for (const dep of result.dependencies){
|
|
49
|
+
if (dep.status === 'PRE_APPROVED') continue;
|
|
50
|
+
const arr = groups.get(dep.status) ?? [];
|
|
51
|
+
arr.push(dep);
|
|
52
|
+
groups.set(dep.status, arr);
|
|
53
|
+
}
|
|
54
|
+
if (groups.size === 0) {
|
|
55
|
+
const total = result.dependencies.length;
|
|
56
|
+
return `License check passed (${total} dependencies inspected).`;
|
|
57
|
+
}
|
|
58
|
+
const failing = [
|
|
59
|
+
...groups.get('NOT_APPROVED') ?? [],
|
|
60
|
+
...groups.get('UNKNOWN') ?? []
|
|
61
|
+
];
|
|
62
|
+
const lines = [
|
|
63
|
+
'License check failed:',
|
|
64
|
+
''
|
|
65
|
+
];
|
|
66
|
+
for (const status of [
|
|
67
|
+
'NOT_APPROVED',
|
|
68
|
+
'UNKNOWN'
|
|
69
|
+
]){
|
|
70
|
+
const deps = groups.get(status);
|
|
71
|
+
if (!deps || deps.length === 0) continue;
|
|
72
|
+
lines.push(` ${status}:`);
|
|
73
|
+
for (const dep of deps){
|
|
74
|
+
const license = dep.rawLicense || '(no license declared)';
|
|
75
|
+
lines.push(` - ${dep.name}@${dep.version} [${dep.ecosystem}] ${license}`);
|
|
76
|
+
}
|
|
77
|
+
lines.push('');
|
|
78
|
+
}
|
|
79
|
+
const collectors = options?.collectors ?? DEFAULT_COLLECTORS;
|
|
80
|
+
const activeEcosystems = new Set(result.dependencies.map((d)=>d.ecosystem));
|
|
81
|
+
const traceCommands = collectors.filter((c)=>{
|
|
82
|
+
if (!c.traceCommand) return false;
|
|
83
|
+
const eco = c.name === 'python' ? 'pypi' : c.name;
|
|
84
|
+
return activeEcosystems.has(eco);
|
|
85
|
+
});
|
|
86
|
+
if (traceCommands.length > 0) {
|
|
87
|
+
lines.push('To trace the dependency chain:');
|
|
88
|
+
for (const c of traceCommands){
|
|
89
|
+
lines.push(` ${c.name}: ${c.traceCommand}`);
|
|
90
|
+
}
|
|
91
|
+
lines.push('');
|
|
92
|
+
}
|
|
93
|
+
lines.push(`To fix, add exceptions to license.dependencies.exceptions in ${AWS_NX_PLUGIN_CONFIG_FILE_NAME}:`);
|
|
94
|
+
lines.push('');
|
|
95
|
+
lines.push(' exceptions: [');
|
|
96
|
+
for (const dep of failing){
|
|
97
|
+
lines.push(` { package: '${dep.name}', reason: '<your reason>' },`);
|
|
98
|
+
}
|
|
99
|
+
lines.push(' ]');
|
|
100
|
+
lines.push('');
|
|
101
|
+
const uniqueLicenses = [
|
|
102
|
+
...new Set(failing.filter((d)=>d.rawLicense && d.status === 'NOT_APPROVED').map((d)=>d.rawLicense))
|
|
103
|
+
];
|
|
104
|
+
if (uniqueLicenses.length > 0) {
|
|
105
|
+
lines.push('Or add the license to license.dependencies.allow if it should be broadly permitted:');
|
|
106
|
+
lines.push('');
|
|
107
|
+
lines.push(' allow: [');
|
|
108
|
+
for (const lic of uniqueLicenses){
|
|
109
|
+
lines.push(` { spdxId: '${lic}', fullName: '${lic}', aliases: [] },`);
|
|
110
|
+
}
|
|
111
|
+
lines.push(' ]');
|
|
112
|
+
}
|
|
113
|
+
return lines.join('\n');
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/license/dependency-check/check.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AWS_NX_PLUGIN_CONFIG_FILE_NAME } from '../../utils/config/utils';\nimport {\n DEFAULT_COLLECTORS,\n type LicenseCollector,\n} from './collectors/collector';\nimport { createEvaluator } from './evaluator';\nimport type {\n CheckedDependency,\n CheckResult,\n DependencyCheckConfig,\n DependencyCheckException,\n} from './types';\n\nexport interface RunCheckOptions {\n projectRoot: string;\n config: DependencyCheckConfig;\n collectors?: LicenseCollector[];\n}\n\nconst findException = (\n exceptions: DependencyCheckException[] | undefined,\n name: string,\n version: string,\n): DependencyCheckException | undefined => {\n if (!exceptions) return undefined;\n return exceptions.find(\n (e) => e && e.package === name && (!e.version || e.version === version),\n );\n};\n\nexport const runCheck = async (\n options: RunCheckOptions,\n): Promise<CheckResult> => {\n const { projectRoot, config } = options;\n const collectors = options.collectors ?? DEFAULT_COLLECTORS;\n const evaluator = createEvaluator({ allow: config.allow });\n\n const allDeps = await Promise.all(\n collectors.map((c) => c.collect({ workspaceRoot: projectRoot })),\n );\n\n const dependencies: CheckedDependency[] = [];\n\n for (const deps of allDeps) {\n for (const dep of deps) {\n const exception = findException(config.exceptions, dep.name, dep.version);\n const license = exception?.spdx ?? dep.rawLicense;\n const status = exception ? 'PRE_APPROVED' : evaluator.evaluate(license);\n config.onDependency?.({ package: dep.name, spdx: license });\n dependencies.push({\n name: dep.name,\n version: dep.version,\n ecosystem: dep.ecosystem,\n rawLicense: dep.rawLicense,\n status,\n exception,\n });\n }\n }\n\n const pass = !dependencies.some(\n (d) => d.status === 'NOT_APPROVED' || d.status === 'UNKNOWN',\n );\n\n return { pass, dependencies };\n};\n\nexport interface FormatReportOptions {\n collectors?: LicenseCollector[];\n}\n\nexport const formatReport = (\n result: CheckResult,\n options?: FormatReportOptions,\n): string => {\n const groups = new Map<string, CheckedDependency[]>();\n for (const dep of result.dependencies) {\n if (dep.status === 'PRE_APPROVED') continue;\n const arr = groups.get(dep.status) ?? [];\n arr.push(dep);\n groups.set(dep.status, arr);\n }\n\n if (groups.size === 0) {\n const total = result.dependencies.length;\n return `License check passed (${total} dependencies inspected).`;\n }\n\n const failing = [\n ...(groups.get('NOT_APPROVED') ?? []),\n ...(groups.get('UNKNOWN') ?? []),\n ];\n\n const lines: string[] = ['License check failed:', ''];\n for (const status of ['NOT_APPROVED', 'UNKNOWN'] as const) {\n const deps = groups.get(status);\n if (!deps || deps.length === 0) continue;\n lines.push(` ${status}:`);\n for (const dep of deps) {\n const license = dep.rawLicense || '(no license declared)';\n lines.push(\n ` - ${dep.name}@${dep.version} [${dep.ecosystem}] ${license}`,\n );\n }\n lines.push('');\n }\n\n const collectors = options?.collectors ?? DEFAULT_COLLECTORS;\n const activeEcosystems = new Set(result.dependencies.map((d) => d.ecosystem));\n const traceCommands = collectors.filter((c) => {\n if (!c.traceCommand) return false;\n const eco = c.name === 'python' ? 'pypi' : c.name;\n return activeEcosystems.has(eco);\n });\n if (traceCommands.length > 0) {\n lines.push('To trace the dependency chain:');\n for (const c of traceCommands) {\n lines.push(` ${c.name}: ${c.traceCommand}`);\n }\n lines.push('');\n }\n\n lines.push(\n `To fix, add exceptions to license.dependencies.exceptions in ${AWS_NX_PLUGIN_CONFIG_FILE_NAME}:`,\n );\n lines.push('');\n lines.push(' exceptions: [');\n for (const dep of failing) {\n lines.push(` { package: '${dep.name}', reason: '<your reason>' },`);\n }\n lines.push(' ]');\n lines.push('');\n const uniqueLicenses = [\n ...new Set(\n failing\n .filter((d) => d.rawLicense && d.status === 'NOT_APPROVED')\n .map((d) => d.rawLicense),\n ),\n ];\n if (uniqueLicenses.length > 0) {\n lines.push(\n 'Or add the license to license.dependencies.allow if it should be broadly permitted:',\n );\n lines.push('');\n lines.push(' allow: [');\n for (const lic of uniqueLicenses) {\n lines.push(` { spdxId: '${lic}', fullName: '${lic}', aliases: [] },`);\n }\n lines.push(' ]');\n }\n\n return lines.join('\\n');\n};\n"],"names":["AWS_NX_PLUGIN_CONFIG_FILE_NAME","DEFAULT_COLLECTORS","createEvaluator","findException","exceptions","name","version","undefined","find","e","package","runCheck","options","projectRoot","config","collectors","evaluator","allow","allDeps","Promise","all","map","c","collect","workspaceRoot","dependencies","deps","dep","exception","license","spdx","rawLicense","status","evaluate","onDependency","push","ecosystem","pass","some","d","formatReport","result","groups","Map","arr","get","set","size","total","length","failing","lines","activeEcosystems","Set","traceCommands","filter","traceCommand","eco","has","uniqueLicenses","lic","join"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
export interface CollectedDependency {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
rawLicense: string;
|
|
9
|
+
ecosystem: string;
|
|
10
|
+
path?: string;
|
|
11
|
+
}
|
|
12
|
+
export interface LicenseCollector {
|
|
13
|
+
name: string;
|
|
14
|
+
traceCommand?: string;
|
|
15
|
+
collect(options: {
|
|
16
|
+
workspaceRoot: string;
|
|
17
|
+
}): Promise<CollectedDependency[]>;
|
|
18
|
+
}
|
|
19
|
+
export declare const npmCollector: () => LicenseCollector;
|
|
20
|
+
export declare const pythonCollector: () => LicenseCollector;
|
|
21
|
+
export declare const DEFAULT_COLLECTORS: LicenseCollector[];
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import { workspaceRoot } from "@nx/devkit";
|
|
5
|
+
import { existsSync } from "fs";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
export const npmCollector = ()=>({
|
|
8
|
+
name: 'npm',
|
|
9
|
+
get traceCommand () {
|
|
10
|
+
if (existsSync(join(workspaceRoot, 'yarn.lock'))) return 'yarn why <package>';
|
|
11
|
+
if (existsSync(join(workspaceRoot, 'bun.lockb'))) return 'bun pm why <package>';
|
|
12
|
+
if (existsSync(join(workspaceRoot, 'package-lock.json'))) return 'npm why <package>';
|
|
13
|
+
return 'pnpm why <package>';
|
|
14
|
+
},
|
|
15
|
+
async collect ({ workspaceRoot }) {
|
|
16
|
+
const { collectNpmDependencies } = await import("./npm-collector.js");
|
|
17
|
+
return (await collectNpmDependencies({
|
|
18
|
+
start: workspaceRoot
|
|
19
|
+
})).map((d)=>({
|
|
20
|
+
...d,
|
|
21
|
+
ecosystem: 'npm'
|
|
22
|
+
}));
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
export const pythonCollector = ()=>({
|
|
26
|
+
name: 'python',
|
|
27
|
+
traceCommand: 'uv tree --invert --package <package>',
|
|
28
|
+
async collect ({ workspaceRoot }) {
|
|
29
|
+
const { collectPythonDependencies } = await import("./python-collector.js");
|
|
30
|
+
const { findWorkspacePyProjectNames } = await import("./python-collector.js");
|
|
31
|
+
const excludePackages = await findWorkspacePyProjectNames(workspaceRoot);
|
|
32
|
+
return (await collectPythonDependencies({
|
|
33
|
+
start: workspaceRoot,
|
|
34
|
+
excludePackages
|
|
35
|
+
})).map((d)=>({
|
|
36
|
+
...d,
|
|
37
|
+
ecosystem: 'pypi'
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
export const DEFAULT_COLLECTORS = [
|
|
42
|
+
npmCollector(),
|
|
43
|
+
pythonCollector()
|
|
44
|
+
];
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/license/dependency-check/collectors/collector.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { workspaceRoot } from '@nx/devkit';\nimport { existsSync } from 'fs';\nimport { join } from 'path';\n\nexport interface CollectedDependency {\n name: string;\n version: string;\n rawLicense: string;\n ecosystem: string;\n path?: string;\n}\n\nexport interface LicenseCollector {\n name: string;\n traceCommand?: string;\n collect(options: { workspaceRoot: string }): Promise<CollectedDependency[]>;\n}\n\nexport const npmCollector = (): LicenseCollector => ({\n name: 'npm',\n get traceCommand() {\n if (existsSync(join(workspaceRoot, 'yarn.lock')))\n return 'yarn why <package>';\n if (existsSync(join(workspaceRoot, 'bun.lockb')))\n return 'bun pm why <package>';\n if (existsSync(join(workspaceRoot, 'package-lock.json')))\n return 'npm why <package>';\n return 'pnpm why <package>';\n },\n async collect({ workspaceRoot }) {\n const { collectNpmDependencies } = await import('./npm-collector');\n return (await collectNpmDependencies({ start: workspaceRoot })).map(\n (d) => ({ ...d, ecosystem: 'npm' }),\n );\n },\n});\n\nexport const pythonCollector = (): LicenseCollector => ({\n name: 'python',\n traceCommand: 'uv tree --invert --package <package>',\n async collect({ workspaceRoot }) {\n const { collectPythonDependencies } = await import('./python-collector');\n const { findWorkspacePyProjectNames } = await import('./python-collector');\n const excludePackages = await findWorkspacePyProjectNames(workspaceRoot);\n return (\n await collectPythonDependencies({ start: workspaceRoot, excludePackages })\n ).map((d) => ({ ...d, ecosystem: 'pypi' }));\n },\n});\n\nexport const DEFAULT_COLLECTORS: LicenseCollector[] = [\n npmCollector(),\n pythonCollector(),\n];\n"],"names":["workspaceRoot","existsSync","join","npmCollector","name","traceCommand","collect","collectNpmDependencies","start","map","d","ecosystem","pythonCollector","collectPythonDependencies","findWorkspacePyProjectNames","excludePackages","DEFAULT_COLLECTORS"],"mappings":"AAAA;;;CAGC,GAED,SAASA,aAAa,QAAQ,aAAa;AAC3C,SAASC,UAAU,QAAQ,KAAK;AAChC,SAASC,IAAI,QAAQ,OAAO;AAgB5B,OAAO,MAAMC,eAAe,IAAyB,CAAA;QACnDC,MAAM;QACN,IAAIC,gBAAe;YACjB,IAAIJ,WAAWC,KAAKF,eAAe,eACjC,OAAO;YACT,IAAIC,WAAWC,KAAKF,eAAe,eACjC,OAAO;YACT,IAAIC,WAAWC,KAAKF,eAAe,uBACjC,OAAO;YACT,OAAO;QACT;QACA,MAAMM,SAAQ,EAAEN,aAAa,EAAE;YAC7B,MAAM,EAAEO,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC;YAChD,OAAO,AAAC,CAAA,MAAMA,uBAAuB;gBAAEC,OAAOR;YAAc,EAAC,EAAGS,GAAG,CACjE,CAACC,IAAO,CAAA;oBAAE,GAAGA,CAAC;oBAAEC,WAAW;gBAAM,CAAA;QAErC;IACF,CAAA,EAAG;AAEH,OAAO,MAAMC,kBAAkB,IAAyB,CAAA;QACtDR,MAAM;QACNC,cAAc;QACd,MAAMC,SAAQ,EAAEN,aAAa,EAAE;YAC7B,MAAM,EAAEa,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC;YACnD,MAAM,EAAEC,2BAA2B,EAAE,GAAG,MAAM,MAAM,CAAC;YACrD,MAAMC,kBAAkB,MAAMD,4BAA4Bd;YAC1D,OAAO,AACL,CAAA,MAAMa,0BAA0B;gBAAEL,OAAOR;gBAAee;YAAgB,EAAC,EACzEN,GAAG,CAAC,CAACC,IAAO,CAAA;oBAAE,GAAGA,CAAC;oBAAEC,WAAW;gBAAO,CAAA;QAC1C;IACF,CAAA,EAAG;AAEH,OAAO,MAAMK,qBAAyC;IACpDb;IACAS;CACD,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface NpmDependency {
|
|
2
|
+
name: string;
|
|
3
|
+
version: string;
|
|
4
|
+
rawLicense: string;
|
|
5
|
+
path?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface NpmCollectorOptions {
|
|
8
|
+
start: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const collectNpmDependencies: (options: NpmCollectorOptions) => Promise<NpmDependency[]>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import { existsSync, readFileSync } from "fs";
|
|
5
|
+
import * as licenseChecker from "license-checker-rseidelsohn";
|
|
6
|
+
import { join } from "path";
|
|
7
|
+
const NAME_VERSION_RE = /^(@?[^@]+)@(.+)$/;
|
|
8
|
+
const splitNameVersion = (identifier)=>{
|
|
9
|
+
const match = identifier.match(NAME_VERSION_RE);
|
|
10
|
+
if (!match) {
|
|
11
|
+
return {
|
|
12
|
+
name: identifier,
|
|
13
|
+
version: '0.0.0'
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
name: match[1],
|
|
18
|
+
version: match[2]
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
const flattenLicense = (raw)=>{
|
|
22
|
+
if (!raw) return '';
|
|
23
|
+
if (Array.isArray(raw)) {
|
|
24
|
+
if (raw.length === 0) return '';
|
|
25
|
+
if (raw.length === 1) return raw[0];
|
|
26
|
+
return `(${raw.join(' OR ')})`;
|
|
27
|
+
}
|
|
28
|
+
return raw;
|
|
29
|
+
};
|
|
30
|
+
export const collectNpmDependencies = async (options)=>{
|
|
31
|
+
const nodeModules = join(options.start, 'node_modules');
|
|
32
|
+
if (!existsSync(nodeModules)) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
const exclude = new Set();
|
|
36
|
+
const projectPackageJson = join(options.start, 'package.json');
|
|
37
|
+
if (existsSync(projectPackageJson)) {
|
|
38
|
+
try {
|
|
39
|
+
const pkg = JSON.parse(readFileSync(projectPackageJson, 'utf-8'));
|
|
40
|
+
if (pkg.name) exclude.add(pkg.name);
|
|
41
|
+
} catch {
|
|
42
|
+
// ignore
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
const packages = await new Promise((resolve, reject)=>{
|
|
46
|
+
licenseChecker.init({
|
|
47
|
+
start: options.start,
|
|
48
|
+
excludePrivatePackages: true
|
|
49
|
+
}, (err, results)=>{
|
|
50
|
+
if (err) reject(err);
|
|
51
|
+
else resolve(results);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
const out = [];
|
|
55
|
+
for (const [identifier, info] of Object.entries(packages)){
|
|
56
|
+
const { name, version } = splitNameVersion(identifier);
|
|
57
|
+
if (exclude.has(name)) continue;
|
|
58
|
+
out.push({
|
|
59
|
+
name,
|
|
60
|
+
version,
|
|
61
|
+
rawLicense: flattenLicense(info.licenses),
|
|
62
|
+
path: info.path
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
return out;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
//# sourceMappingURL=npm-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/license/dependency-check/collectors/npm-collector.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { existsSync, readFileSync } from 'fs';\nimport * as licenseChecker from 'license-checker-rseidelsohn';\nimport { join } from 'path';\n\nexport interface NpmDependency {\n name: string;\n version: string;\n rawLicense: string;\n path?: string;\n}\n\nexport interface NpmCollectorOptions {\n start: string;\n}\n\nconst NAME_VERSION_RE = /^(@?[^@]+)@(.+)$/;\n\nconst splitNameVersion = (\n identifier: string,\n): { name: string; version: string } => {\n const match = identifier.match(NAME_VERSION_RE);\n if (!match) {\n return { name: identifier, version: '0.0.0' };\n }\n return { name: match[1], version: match[2] };\n};\n\nconst flattenLicense = (raw: string | string[] | undefined | null): string => {\n if (!raw) return '';\n if (Array.isArray(raw)) {\n if (raw.length === 0) return '';\n if (raw.length === 1) return raw[0];\n return `(${raw.join(' OR ')})`;\n }\n return raw;\n};\n\nexport const collectNpmDependencies = async (\n options: NpmCollectorOptions,\n): Promise<NpmDependency[]> => {\n const nodeModules = join(options.start, 'node_modules');\n if (!existsSync(nodeModules)) {\n return [];\n }\n\n const exclude = new Set<string>();\n\n const projectPackageJson = join(options.start, 'package.json');\n if (existsSync(projectPackageJson)) {\n try {\n const pkg = JSON.parse(readFileSync(projectPackageJson, 'utf-8')) as {\n name?: string;\n };\n if (pkg.name) exclude.add(pkg.name);\n } catch {\n // ignore\n }\n }\n\n const packages = await new Promise<licenseChecker.ModuleInfos>(\n (resolve, reject) => {\n licenseChecker.init(\n {\n start: options.start,\n excludePrivatePackages: true,\n },\n (err, results) => {\n if (err) reject(err);\n else resolve(results);\n },\n );\n },\n );\n\n const out: NpmDependency[] = [];\n for (const [identifier, info] of Object.entries(packages)) {\n const { name, version } = splitNameVersion(identifier);\n if (exclude.has(name)) continue;\n out.push({\n name,\n version,\n rawLicense: flattenLicense(info.licenses),\n path: info.path,\n });\n }\n return out;\n};\n"],"names":["existsSync","readFileSync","licenseChecker","join","NAME_VERSION_RE","splitNameVersion","identifier","match","name","version","flattenLicense","raw","Array","isArray","length","collectNpmDependencies","options","nodeModules","start","exclude","Set","projectPackageJson","pkg","JSON","parse","add","packages","Promise","resolve","reject","init","excludePrivatePackages","err","results","out","info","Object","entries","has","push","rawLicense","licenses","path"],"mappings":"AAAA;;;CAGC,GACD,SAASA,UAAU,EAAEC,YAAY,QAAQ,KAAK;AAC9C,YAAYC,oBAAoB,8BAA8B;AAC9D,SAASC,IAAI,QAAQ,OAAO;AAa5B,MAAMC,kBAAkB;AAExB,MAAMC,mBAAmB,CACvBC;IAEA,MAAMC,QAAQD,WAAWC,KAAK,CAACH;IAC/B,IAAI,CAACG,OAAO;QACV,OAAO;YAAEC,MAAMF;YAAYG,SAAS;QAAQ;IAC9C;IACA,OAAO;QAAED,MAAMD,KAAK,CAAC,EAAE;QAAEE,SAASF,KAAK,CAAC,EAAE;IAAC;AAC7C;AAEA,MAAMG,iBAAiB,CAACC;IACtB,IAAI,CAACA,KAAK,OAAO;IACjB,IAAIC,MAAMC,OAAO,CAACF,MAAM;QACtB,IAAIA,IAAIG,MAAM,KAAK,GAAG,OAAO;QAC7B,IAAIH,IAAIG,MAAM,KAAK,GAAG,OAAOH,GAAG,CAAC,EAAE;QACnC,OAAO,CAAC,CAAC,EAAEA,IAAIR,IAAI,CAAC,QAAQ,CAAC,CAAC;IAChC;IACA,OAAOQ;AACT;AAEA,OAAO,MAAMI,yBAAyB,OACpCC;IAEA,MAAMC,cAAcd,KAAKa,QAAQE,KAAK,EAAE;IACxC,IAAI,CAAClB,WAAWiB,cAAc;QAC5B,OAAO,EAAE;IACX;IAEA,MAAME,UAAU,IAAIC;IAEpB,MAAMC,qBAAqBlB,KAAKa,QAAQE,KAAK,EAAE;IAC/C,IAAIlB,WAAWqB,qBAAqB;QAClC,IAAI;YACF,MAAMC,MAAMC,KAAKC,KAAK,CAACvB,aAAaoB,oBAAoB;YAGxD,IAAIC,IAAId,IAAI,EAAEW,QAAQM,GAAG,CAACH,IAAId,IAAI;QACpC,EAAE,OAAM;QACN,SAAS;QACX;IACF;IAEA,MAAMkB,WAAW,MAAM,IAAIC,QACzB,CAACC,SAASC;QACR3B,eAAe4B,IAAI,CACjB;YACEZ,OAAOF,QAAQE,KAAK;YACpBa,wBAAwB;QAC1B,GACA,CAACC,KAAKC;YACJ,IAAID,KAAKH,OAAOG;iBACXJ,QAAQK;QACf;IAEJ;IAGF,MAAMC,MAAuB,EAAE;IAC/B,KAAK,MAAM,CAAC5B,YAAY6B,KAAK,IAAIC,OAAOC,OAAO,CAACX,UAAW;QACzD,MAAM,EAAElB,IAAI,EAAEC,OAAO,EAAE,GAAGJ,iBAAiBC;QAC3C,IAAIa,QAAQmB,GAAG,CAAC9B,OAAO;QACvB0B,IAAIK,IAAI,CAAC;YACP/B;YACAC;YACA+B,YAAY9B,eAAeyB,KAAKM,QAAQ;YACxCC,MAAMP,KAAKO,IAAI;QACjB;IACF;IACA,OAAOR;AACT,EAAE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
export interface PythonDependency {
|
|
6
|
+
name: string;
|
|
7
|
+
version: string;
|
|
8
|
+
rawLicense: string;
|
|
9
|
+
}
|
|
10
|
+
export interface PythonCollectorOptions {
|
|
11
|
+
start: string;
|
|
12
|
+
excludePackages?: string[];
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Discover Python project names in the workspace (from pyproject.toml files)
|
|
16
|
+
* so they can be excluded from the license check.
|
|
17
|
+
*/
|
|
18
|
+
export declare const findWorkspacePyProjectNames: (start: string) => Promise<string[]>;
|
|
19
|
+
/**
|
|
20
|
+
* Collect Python dependency licenses by invoking `uvx pip-licenses` against
|
|
21
|
+
* each discovered virtual environment.
|
|
22
|
+
*/
|
|
23
|
+
export declare const collectPythonDependencies: (options: PythonCollectorOptions) => Promise<PythonDependency[]>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import TOML from "@iarna/toml";
|
|
5
|
+
import { execSync } from "child_process";
|
|
6
|
+
import fastGlob from "fast-glob";
|
|
7
|
+
import { existsSync, readFileSync } from "fs";
|
|
8
|
+
import { join } from "path";
|
|
9
|
+
import { uvxCommand } from "../../../utils/py.js";
|
|
10
|
+
const isUsable = (value)=>!!value && value !== 'UNKNOWN';
|
|
11
|
+
// Priority: License-Expression (PEP 639) > License-Metadata (legacy) > License-Classifier (deprecated classifiers)
|
|
12
|
+
const pickLicense = (entry)=>{
|
|
13
|
+
if (isUsable(entry['License-Expression'])) return entry['License-Expression'];
|
|
14
|
+
if (isUsable(entry['License-Metadata'])) return entry['License-Metadata'];
|
|
15
|
+
if (isUsable(entry['License-Classifier'])) return entry['License-Classifier'];
|
|
16
|
+
return '';
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Discover Python project names in the workspace (from pyproject.toml files)
|
|
20
|
+
* so they can be excluded from the license check.
|
|
21
|
+
*/ export const findWorkspacePyProjectNames = async (start)=>{
|
|
22
|
+
const tomlFiles = await fastGlob([
|
|
23
|
+
'**/pyproject.toml'
|
|
24
|
+
], {
|
|
25
|
+
cwd: start,
|
|
26
|
+
ignore: [
|
|
27
|
+
'**/node_modules/**',
|
|
28
|
+
'**/.venv/**',
|
|
29
|
+
'**/venv/**',
|
|
30
|
+
'**/dist/**'
|
|
31
|
+
],
|
|
32
|
+
deep: 4,
|
|
33
|
+
suppressErrors: true
|
|
34
|
+
});
|
|
35
|
+
const names = [];
|
|
36
|
+
for (const tomlFile of tomlFiles){
|
|
37
|
+
try {
|
|
38
|
+
const content = readFileSync(join(start, tomlFile), 'utf-8');
|
|
39
|
+
const parsed = TOML.parse(content);
|
|
40
|
+
const name = parsed.project?.name;
|
|
41
|
+
if (typeof name === 'string') names.push(name);
|
|
42
|
+
} catch {
|
|
43
|
+
// skip unreadable or malformed files
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return names;
|
|
47
|
+
};
|
|
48
|
+
const findVenvPythons = async (start)=>{
|
|
49
|
+
const patterns = [
|
|
50
|
+
'**/.venv/bin/python',
|
|
51
|
+
'**/venv/bin/python',
|
|
52
|
+
'**/.venv/Scripts/python.exe',
|
|
53
|
+
'**/venv/Scripts/python.exe'
|
|
54
|
+
];
|
|
55
|
+
const candidates = await fastGlob(patterns, {
|
|
56
|
+
cwd: start,
|
|
57
|
+
ignore: [
|
|
58
|
+
'**/node_modules/**',
|
|
59
|
+
'**/.nx/**',
|
|
60
|
+
'**/dist/**',
|
|
61
|
+
'**/build/**',
|
|
62
|
+
'**/.git/**'
|
|
63
|
+
],
|
|
64
|
+
deep: 6,
|
|
65
|
+
suppressErrors: true
|
|
66
|
+
});
|
|
67
|
+
const pythons = candidates.map((c)=>join(start, c));
|
|
68
|
+
if (process.env.UV_PROJECT_ENVIRONMENT) {
|
|
69
|
+
const envPython = join(process.env.UV_PROJECT_ENVIRONMENT, process.platform === 'win32' ? 'Scripts/python.exe' : 'bin/python');
|
|
70
|
+
if (existsSync(envPython)) {
|
|
71
|
+
pythons.push(envPython);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return pythons.filter((p)=>existsSync(p));
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Collect Python dependency licenses by invoking `uvx pip-licenses` against
|
|
78
|
+
* each discovered virtual environment.
|
|
79
|
+
*/ export const collectPythonDependencies = async (options)=>{
|
|
80
|
+
const pythons = await findVenvPythons(options.start);
|
|
81
|
+
if (pythons.length === 0) return [];
|
|
82
|
+
const seen = new Map();
|
|
83
|
+
const ignoreFlag = options.excludePackages?.length ? ` --ignore-packages ${options.excludePackages.join(' ')}` : '';
|
|
84
|
+
const cmd = uvxCommand('pip-licenses', `--format json --from all${ignoreFlag}`);
|
|
85
|
+
for (const python of pythons){
|
|
86
|
+
try {
|
|
87
|
+
const output = execSync(`${cmd} --python ${python}`, {
|
|
88
|
+
cwd: options.start,
|
|
89
|
+
encoding: 'utf-8',
|
|
90
|
+
stdio: [
|
|
91
|
+
'pipe',
|
|
92
|
+
'pipe',
|
|
93
|
+
'pipe'
|
|
94
|
+
],
|
|
95
|
+
timeout: 60_000
|
|
96
|
+
});
|
|
97
|
+
const entries = JSON.parse(output);
|
|
98
|
+
for (const entry of entries){
|
|
99
|
+
const key = `${entry.Name}@${entry.Version}`;
|
|
100
|
+
if (seen.has(key)) continue;
|
|
101
|
+
seen.set(key, {
|
|
102
|
+
name: entry.Name,
|
|
103
|
+
version: entry.Version,
|
|
104
|
+
rawLicense: pickLicense(entry)
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
} catch {
|
|
108
|
+
// If pip-licenses fails for this venv, skip it
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return Array.from(seen.values());
|
|
112
|
+
};
|
|
113
|
+
|
|
114
|
+
//# sourceMappingURL=python-collector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/license/dependency-check/collectors/python-collector.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport TOML from '@iarna/toml';\nimport { execSync } from 'child_process';\nimport fastGlob from 'fast-glob';\nimport { existsSync, readFileSync } from 'fs';\nimport { join } from 'path';\nimport { uvxCommand } from '../../../utils/py';\n\nexport interface PythonDependency {\n name: string;\n version: string;\n rawLicense: string;\n}\n\nexport interface PythonCollectorOptions {\n start: string;\n excludePackages?: string[];\n}\n\ninterface PipLicensesEntry {\n Name: string;\n Version: string;\n 'License-Expression': string;\n 'License-Metadata': string;\n 'License-Classifier': string;\n}\n\nconst isUsable = (value: string | undefined): value is string =>\n !!value && value !== 'UNKNOWN';\n\n// Priority: License-Expression (PEP 639) > License-Metadata (legacy) > License-Classifier (deprecated classifiers)\nconst pickLicense = (entry: PipLicensesEntry): string => {\n if (isUsable(entry['License-Expression'])) return entry['License-Expression'];\n if (isUsable(entry['License-Metadata'])) return entry['License-Metadata'];\n if (isUsable(entry['License-Classifier'])) return entry['License-Classifier'];\n return '';\n};\n\n/**\n * Discover Python project names in the workspace (from pyproject.toml files)\n * so they can be excluded from the license check.\n */\nexport const findWorkspacePyProjectNames = async (\n start: string,\n): Promise<string[]> => {\n const tomlFiles = await fastGlob(['**/pyproject.toml'], {\n cwd: start,\n ignore: ['**/node_modules/**', '**/.venv/**', '**/venv/**', '**/dist/**'],\n deep: 4,\n suppressErrors: true,\n });\n const names: string[] = [];\n for (const tomlFile of tomlFiles) {\n try {\n const content = readFileSync(join(start, tomlFile), 'utf-8');\n const parsed = TOML.parse(content);\n const name = (parsed.project as TOML.JsonMap | undefined)?.name;\n if (typeof name === 'string') names.push(name);\n } catch {\n // skip unreadable or malformed files\n }\n }\n return names;\n};\n\nconst findVenvPythons = async (start: string): Promise<string[]> => {\n const patterns = [\n '**/.venv/bin/python',\n '**/venv/bin/python',\n '**/.venv/Scripts/python.exe',\n '**/venv/Scripts/python.exe',\n ];\n\n const candidates = await fastGlob(patterns, {\n cwd: start,\n ignore: [\n '**/node_modules/**',\n '**/.nx/**',\n '**/dist/**',\n '**/build/**',\n '**/.git/**',\n ],\n deep: 6,\n suppressErrors: true,\n });\n\n const pythons = candidates.map((c) => join(start, c));\n\n if (process.env.UV_PROJECT_ENVIRONMENT) {\n const envPython = join(\n process.env.UV_PROJECT_ENVIRONMENT,\n process.platform === 'win32' ? 'Scripts/python.exe' : 'bin/python',\n );\n if (existsSync(envPython)) {\n pythons.push(envPython);\n }\n }\n\n return pythons.filter((p) => existsSync(p));\n};\n\n/**\n * Collect Python dependency licenses by invoking `uvx pip-licenses` against\n * each discovered virtual environment.\n */\nexport const collectPythonDependencies = async (\n options: PythonCollectorOptions,\n): Promise<PythonDependency[]> => {\n const pythons = await findVenvPythons(options.start);\n if (pythons.length === 0) return [];\n\n const seen = new Map<string, PythonDependency>();\n const ignoreFlag = options.excludePackages?.length\n ? ` --ignore-packages ${options.excludePackages.join(' ')}`\n : '';\n const cmd = uvxCommand(\n 'pip-licenses',\n `--format json --from all${ignoreFlag}`,\n );\n\n for (const python of pythons) {\n try {\n const output = execSync(`${cmd} --python ${python}`, {\n cwd: options.start,\n encoding: 'utf-8',\n stdio: ['pipe', 'pipe', 'pipe'],\n timeout: 60_000,\n });\n\n const entries: PipLicensesEntry[] = JSON.parse(output);\n for (const entry of entries) {\n const key = `${entry.Name}@${entry.Version}`;\n if (seen.has(key)) continue;\n seen.set(key, {\n name: entry.Name,\n version: entry.Version,\n rawLicense: pickLicense(entry),\n });\n }\n } catch {\n // If pip-licenses fails for this venv, skip it\n }\n }\n\n return Array.from(seen.values());\n};\n"],"names":["TOML","execSync","fastGlob","existsSync","readFileSync","join","uvxCommand","isUsable","value","pickLicense","entry","findWorkspacePyProjectNames","start","tomlFiles","cwd","ignore","deep","suppressErrors","names","tomlFile","content","parsed","parse","name","project","push","findVenvPythons","patterns","candidates","pythons","map","c","process","env","UV_PROJECT_ENVIRONMENT","envPython","platform","filter","p","collectPythonDependencies","options","length","seen","Map","ignoreFlag","excludePackages","cmd","python","output","encoding","stdio","timeout","entries","JSON","key","Name","Version","has","set","version","rawLicense","Array","from","values"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { AllowlistEntry, LicenseStatus } from './types';
|
|
2
|
+
export interface EvaluatorOptions {
|
|
3
|
+
allow: AllowlistEntry[];
|
|
4
|
+
}
|
|
5
|
+
interface Evaluator {
|
|
6
|
+
evaluate(rawLicense: string | undefined | null): LicenseStatus;
|
|
7
|
+
}
|
|
8
|
+
export declare const createEvaluator: (options: EvaluatorOptions) => Evaluator;
|
|
9
|
+
export {};
|