@aws/nx-plugin 1.0.0-rc.4 → 1.0.0-rc.6
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 +1989 -503
- package/executors.json +9 -0
- package/package.json +8 -4
- package/sdk/license.d.ts +8 -0
- package/sdk/license.js +13 -0
- package/sdk/license.js.map +1 -0
- package/src/connection/agent-runtime-config.d.ts +1 -1
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/agent-serve-local.d.ts +2 -2
- package/src/connection/generator.d.ts +4 -4
- package/src/connection/generator.js +47 -47
- package/src/connection/generator.js.map +1 -1
- package/src/connection/serve-local.d.ts +1 -1
- package/src/connection/serve-local.js +1 -1
- package/src/connection/serve-local.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +17 -28
- package/src/infra/app/generator.d.ts +3 -3
- package/src/infra/app/generator.js +10 -10
- package/src/infra/app/generator.js.map +1 -1
- 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 +4 -0
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +65 -7
- package/src/license/config.js +315 -7
- 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 +111 -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 +76 -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 +75 -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 +121 -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 +122 -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 +43 -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 +1280 -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 +7 -0
- package/src/license/dependency-check/types.js.map +1 -0
- package/src/license/generator.d.ts +3 -3
- package/src/license/generator.js +113 -14
- package/src/license/generator.js.map +1 -1
- package/src/license/index.d.ts +8 -0
- package/src/license/index.js +13 -0
- package/src/license/index.js.map +1 -0
- package/src/license/known-exceptions.d.ts +7 -0
- package/src/license/known-exceptions.js +33 -0
- package/src/license/known-exceptions.js.map +1 -0
- package/src/license/schema.d.ts +5 -0
- package/src/license/schema.json +6 -0
- package/src/license/sync/generator.d.ts +2 -2
- package/src/license/sync/generator.js +15 -15
- 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.map +1 -1
- package/src/mcp-server/generator-info.d.ts +5 -1
- package/src/mcp-server/generator-info.js +7 -7
- 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 +2 -2
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +4 -0
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/server.js +3 -3
- 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 +2 -2
- 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 +2 -2
- 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.map +1 -1
- package/src/mcp-server/tools/list-generators.d.ts +2 -2
- package/src/mcp-server/tools/list-generators.js +1 -1
- 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 +2 -2
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.d.ts +3 -3
- package/src/open-api/ts-hooks/generator.js +2 -2
- 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-metadata/generator.d.ts +3 -3
- package/src/open-api/ts-metadata/generator.js +1 -1
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/utils/codegen-data/languages.d.ts +5 -1
- package/src/open-api/utils/codegen-data/languages.js +4 -4
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data.d.ts +6 -2
- package/src/open-api/utils/codegen-data.js +6 -6
- 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 +5 -5
- 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 +4 -0
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.d.ts +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +59 -15
- package/src/preset/generator.d.ts +3 -3
- package/src/preset/generator.js +16 -13
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.ts +2 -1
- package/src/py/agent/a2a-connection/generator.d.ts +3 -3
- package/src/py/agent/a2a-connection/generator.js +4 -4
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/generator.d.ts +3 -3
- package/src/py/agent/generator.js +19 -15
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/generator.d.ts +3 -3
- package/src/py/agent/mcp-connection/generator.js +4 -4
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/generator.d.ts +3 -3
- package/src/py/agent/react-connection/generator.js +4 -4
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/serve-local.d.ts +2 -2
- package/src/py/agent/react-connection/serve-local.js.map +1 -1
- package/src/py/api/generator.d.ts +3 -3
- package/src/py/api/generator.js.map +1 -1
- package/src/py/fast-api/generator.d.ts +3 -3
- package/src/py/fast-api/generator.js +12 -12
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.d.ts +3 -3
- package/src/py/fast-api/react/generator.js +2 -2
- 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 +1 -1
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/lambda-function/generator.d.ts +3 -3
- package/src/py/lambda-function/generator.js +9 -9
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/mcp-server/generator.d.ts +3 -3
- package/src/py/mcp-server/generator.js +14 -11
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/project/generator.d.ts +3 -3
- package/src/py/project/generator.js +14 -7
- package/src/py/project/generator.js.map +1 -1
- package/src/smithy/project/generator.d.ts +3 -3
- package/src/smithy/project/generator.js +5 -5
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.d.ts +3 -3
- package/src/smithy/react-connection/generator.js +3 -3
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +8 -34
- package/src/smithy/ts/api/generator.d.ts +3 -3
- package/src/smithy/ts/api/generator.js +9 -11
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/generator.d.ts +3 -3
- package/src/terraform/project/generator.js +6 -6
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/generator.d.ts +3 -3
- package/src/trpc/backend/generator.js +10 -10
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +2 -2
- package/src/trpc/react/generator.d.ts +3 -3
- package/src/trpc/react/generator.js +5 -5
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/agent/__snapshots__/generator.spec.ts.snap +4 -2
- package/src/ts/agent/a2a-connection/generator.d.ts +3 -3
- package/src/ts/agent/a2a-connection/generator.js +5 -5
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/generator.d.ts +3 -3
- package/src/ts/agent/generator.js +10 -10
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +4 -2
- package/src/ts/agent/mcp-connection/generator.d.ts +3 -3
- package/src/ts/agent/mcp-connection/generator.js +5 -5
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/generator.d.ts +3 -3
- package/src/ts/agent/react-connection/generator.js +9 -9
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/serve-local.d.ts +2 -2
- package/src/ts/api/generator.d.ts +3 -3
- package/src/ts/api/generator.js +4 -4
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.ts +2 -1
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +1 -2
- package/src/ts/astro-docs/generator.d.ts +3 -3
- package/src/ts/astro-docs/generator.js +4 -4
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/docs/generator.d.ts +3 -3
- package/src/ts/docs/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/generator.d.ts +3 -3
- package/src/ts/dynamodb/agent-connection/generator.js +2 -2
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/generator.d.ts +3 -3
- package/src/ts/dynamodb/generator.js +11 -13
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/generator.d.ts +3 -3
- package/src/ts/dynamodb/mcp-server-connection/generator.js +2 -2
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/generator.d.ts +3 -3
- package/src/ts/dynamodb/smithy-connection/generator.js +2 -2
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/generator.d.ts +3 -3
- package/src/ts/dynamodb/trpc-connection/generator.js +2 -2
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/lambda-function/generator.d.ts +3 -3
- package/src/ts/lambda-function/generator.js +8 -8
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +23 -56
- 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 +55 -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 +7 -13
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +1 -1
- package/src/ts/lib/ts-project-utils.d.ts +2 -2
- package/src/ts/lib/ts-project-utils.js +8 -2
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +2 -2
- package/src/ts/lib/vitest.js +1 -1
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/generator.d.ts +3 -3
- package/src/ts/mcp-server/generator.js +12 -9
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/__snapshots__/generator.spec.ts.snap +19 -14
- package/src/ts/nx-generator/generator.d.ts +2 -2
- package/src/ts/nx-generator/generator.js +6 -6
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/generator.d.ts +3 -3
- package/src/ts/nx-plugin/generator.js +3 -3
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.d.ts +1 -1
- package/src/ts/nx-plugin/utils.js +1 -1
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +22 -38
- package/src/ts/rdb/agent-connection/generator.d.ts +3 -3
- package/src/ts/rdb/agent-connection/generator.js +4 -4
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/files/scripts/{docker-pull.ts.template → pull-image.ts.template} +1 -1
- package/src/ts/rdb/files/scripts/{docker-start.ts.template → start-container.ts.template} +23 -23
- package/src/ts/rdb/generator.d.ts +3 -3
- package/src/ts/rdb/generator.js +20 -22
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/generator.d.ts +3 -3
- package/src/ts/rdb/mcp-server-connection/generator.js +4 -4
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/smithy-connection/generator.d.ts +3 -3
- package/src/ts/rdb/smithy-connection/generator.js +4 -4
- package/src/ts/rdb/smithy-connection/generator.js.map +1 -1
- package/src/ts/rdb/trpc-connection/generator.d.ts +3 -3
- package/src/ts/rdb/trpc-connection/generator.js +3 -3
- package/src/ts/rdb/trpc-connection/generator.js.map +1 -1
- package/src/ts/rdb/utils.d.ts +1 -1
- package/src/ts/react-website/agui/generator.d.ts +1 -1
- package/src/ts/react-website/agui/generator.js +4 -4
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +166 -305
- package/src/ts/react-website/app/generator.d.ts +3 -3
- package/src/ts/react-website/app/generator.js +13 -13
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/generator.d.ts +3 -3
- package/src/ts/react-website/cognito-auth/generator.js +10 -10
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/grit/cloudscape-auth-menu.grit +5 -5
- package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +1 -1
- package/src/ts/react-website/cognito-auth/utils.d.ts +1 -1
- package/src/ts/react-website/cognito-auth/utils.js +1 -1
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/generator.d.ts +3 -3
- package/src/ts/react-website/runtime-config/generator.js +4 -4
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/sync/generator.d.ts +3 -3
- package/src/ts/sync/generator.js +2 -2
- 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 +1 -1
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/auth/generator.d.ts +3 -3
- package/src/ts/website/auth/generator.js +1 -1
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/utils/agent-connection/agent-connection.d.ts +1 -1
- package/src/utils/agent-connection/agent-connection.js +8 -8
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +3 -3
- package/src/utils/agent-core-constructs/agent-core-constructs.js +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.d.ts +2 -2
- package/src/utils/api-constructs/api-constructs.js +1 -1
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/open-api-metadata.d.ts +2 -2
- 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 +2 -2
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +29 -1
- package/src/utils/ast.js +66 -4
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +1 -1
- package/src/utils/bundle/bundle.js +2 -2
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/config/index.d.ts +5 -5
- package/src/utils/config/utils.d.ts +13 -3
- package/src/utils/config/utils.js +37 -5
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.d.ts +1 -1
- package/src/utils/connection/open-api/react.js +4 -4
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.d.ts +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.d.ts +2 -2
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/format.d.ts +45 -2
- package/src/utils/format.js +91 -50
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.d.ts +1 -1
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/function-constructs.d.ts +2 -2
- package/src/utils/function-constructs/function-constructs.js +1 -1
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.d.ts +4 -0
- package/src/utils/generators.js +4 -4
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.d.ts +1 -1
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac.d.ts +1 -1
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/identity-constructs.d.ts +2 -2
- package/src/utils/identity-constructs/identity-constructs.js +1 -1
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.d.ts +4 -0
- package/src/utils/js.js +4 -4
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.d.ts +1 -1
- package/src/utils/mcp.js.map +1 -1
- package/src/utils/metrics.d.ts +2 -2
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/npm-scope.d.ts +1 -1
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +2 -2
- package/src/utils/nx.js +2 -2
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +1 -1
- package/src/utils/paths.d.ts +1 -1
- package/src/utils/pnpm-workspace.d.ts +1 -1
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.d.ts +1 -1
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.d.ts +2 -2
- package/src/utils/py.js +1 -1
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/rdb-constructs.d.ts +4 -4
- package/src/utils/rdb-constructs/rdb-constructs.js +1 -1
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs.d.ts +2 -2
- package/src/utils/shared-constructs.js +7 -7
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-infra-config.d.ts +1 -1
- package/src/utils/shared-infra-config.js +1 -1
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-scripts.d.ts +1 -1
- package/src/utils/shared-scripts.js +2 -2
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.d.ts +1 -1
- package/src/utils/shared-shadcn.js +1 -13
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +5 -1
- package/src/utils/test.js +9 -5
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.d.ts +1 -1
- package/src/utils/toml.js +4 -0
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +3 -7
- package/src/utils/versions.js +2 -6
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/website-constructs.d.ts +2 -2
- package/src/utils/website-constructs/website-constructs.js +1 -1
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config-types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"config-types.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config-types.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
|
package/src/license/config.d.ts
CHANGED
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
4
|
*/
|
|
5
|
-
import { Tree } from '@nx/devkit';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
5
|
+
import type { Tree } from '@nx/devkit';
|
|
6
|
+
import type { CommentSyntax, LicenseConfig, LicenseSourceConfig } from './config-types';
|
|
7
|
+
import type { DependencyCheckException } from './dependency-check/types';
|
|
8
|
+
import type { SPDXLicenseIdentifier } from './schema';
|
|
8
9
|
/**
|
|
9
10
|
* Defines the comment syntax for popular programming languages
|
|
10
11
|
*/
|
|
@@ -12,13 +13,70 @@ export declare const LANGUAGE_COMMENT_SYNTAX: {
|
|
|
12
13
|
[ext: string]: CommentSyntax;
|
|
13
14
|
};
|
|
14
15
|
/**
|
|
15
|
-
*
|
|
16
|
+
* Recompute the `inputs` of the root `license-check` target from what's
|
|
17
|
+
* currently in the workspace: the present npm lockfiles, the config file, and
|
|
18
|
+
* a recursive uv.lock glob when the dependency check uses a Python collector.
|
|
19
|
+
*
|
|
20
|
+
* The uv lockfile is keyed off the collector (not file presence) because it is
|
|
21
|
+
* created by `uv` *after* the generator runs, and may live in a subdirectory of
|
|
22
|
+
* a uv workspace. Callers run this whenever they change the relevant state, so
|
|
23
|
+
* the inputs stay correct regardless of generator order. No-op if the
|
|
24
|
+
* license-check target doesn't exist yet.
|
|
16
25
|
*/
|
|
17
|
-
export declare const
|
|
26
|
+
export declare const updateLicenseCheckTargetInputs: (tree: Tree) => Promise<void>;
|
|
18
27
|
/**
|
|
19
|
-
*
|
|
28
|
+
* Make a project's `lint` target depend on the root `license-check` target, so
|
|
29
|
+
* license checking runs as part of lint/build. No-op when the project has no
|
|
30
|
+
* `lint` target or there's no license-check target to depend on. Idempotent.
|
|
31
|
+
*
|
|
32
|
+
* Callers format afterwards (generators call `formatFilesInSubtree` at the end),
|
|
33
|
+
* so the rewritten project.json matches prettier.
|
|
20
34
|
*/
|
|
21
|
-
export declare const
|
|
35
|
+
export declare const addLicenseCheckToLintTarget: (tree: Tree, projectName: string) => void;
|
|
36
|
+
/**
|
|
37
|
+
* Wire every project's `lint` target to the root `license-check` target.
|
|
38
|
+
* Called by the license generator so existing projects pick up the dependency
|
|
39
|
+
* regardless of the order generators ran in.
|
|
40
|
+
*/
|
|
41
|
+
export declare const addLicenseCheckToAllLintTargets: (tree: Tree) => void;
|
|
42
|
+
export interface EnsureDependencyCheckBlockOptions {
|
|
43
|
+
includeCollectors?: 'npm' | 'npm+python';
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Ensure the `dependencies` block (dependency license checking) exists within
|
|
47
|
+
* the `license` config. If one already exists it is left untouched, so user
|
|
48
|
+
* customizations survive.
|
|
49
|
+
*/
|
|
50
|
+
export declare const ensureDependencyCheckBlock: (tree: Tree, options?: EnsureDependencyCheckBlockOptions) => Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* Ensure license exceptions are present in `license.dependencies.exceptions`.
|
|
53
|
+
* An exception whose package is already listed is skipped (so existing reasons
|
|
54
|
+
* are never overwritten). Other exceptions, collectors and the allowlist are
|
|
55
|
+
* left untouched.
|
|
56
|
+
*
|
|
57
|
+
* The `dependencies: { $scope }` scope keeps edits within the dependency-check
|
|
58
|
+
* block, so an `exceptions` array elsewhere in the file isn't matched.
|
|
59
|
+
*/
|
|
60
|
+
export declare const ensureLicenseExceptions: (tree: Tree, exceptions: DependencyCheckException[]) => Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Add `pythonCollector()` to `license.dependencies.collectors`, unless one is
|
|
63
|
+
* already configured.
|
|
64
|
+
*/
|
|
65
|
+
export declare const ensurePythonLicenseCollector: (tree: Tree) => Promise<void>;
|
|
66
|
+
/**
|
|
67
|
+
* Build the default `license.source` config for a given license
|
|
68
|
+
*/
|
|
69
|
+
export declare const defaultLicenseConfig: (spdx: SPDXLicenseIdentifier, copyrightHolder: string) => LicenseSourceConfig;
|
|
70
|
+
/**
|
|
71
|
+
* Write the `license.source` config (headers + LICENSE files) to the aws nx
|
|
72
|
+
* plugin config.
|
|
73
|
+
*
|
|
74
|
+
* The `source` block is (re)written, but any existing `license.dependencies`
|
|
75
|
+
* block — a user-customized allowlist, collectors and exceptions — is
|
|
76
|
+
* preserved, so re-running the license generator (e.g. to change the copyright
|
|
77
|
+
* holder) never clobbers dependency-check customizations.
|
|
78
|
+
*/
|
|
79
|
+
export declare const writeLicenseConfig: (tree: Tree, source: LicenseSourceConfig) => Promise<void>;
|
|
22
80
|
/**
|
|
23
81
|
* Read license configuration
|
|
24
82
|
*/
|
package/src/license/config.js
CHANGED
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.readLicenseConfig = exports.writeLicenseConfig = exports.defaultLicenseConfig = exports.LANGUAGE_COMMENT_SYNTAX = void 0;
|
|
36
|
+
exports.readLicenseConfig = exports.writeLicenseConfig = exports.defaultLicenseConfig = exports.ensurePythonLicenseCollector = exports.ensureLicenseExceptions = exports.ensureDependencyCheckBlock = exports.addLicenseCheckToAllLintTargets = exports.addLicenseCheckToLintTarget = exports.updateLicenseCheckTargetInputs = exports.LANGUAGE_COMMENT_SYNTAX = void 0;
|
|
4
37
|
const utils_1 = require("../utils/config/utils");
|
|
38
|
+
const format_1 = require("../utils/format");
|
|
39
|
+
const nx_1 = require("../utils/nx");
|
|
5
40
|
/**
|
|
6
41
|
* Licenses containing a placeholder for the copyright year.
|
|
7
42
|
*/
|
|
@@ -93,7 +128,262 @@ exports.LANGUAGE_COMMENT_SYNTAX = {
|
|
|
93
128
|
smithy: { line: '//' },
|
|
94
129
|
};
|
|
95
130
|
/**
|
|
96
|
-
*
|
|
131
|
+
* Module specifier for the license helpers exported by this package, used by
|
|
132
|
+
* imports written into the user's config file.
|
|
133
|
+
*/
|
|
134
|
+
const LICENSE_SDK_MODULE = '@aws/nx-plugin/sdk/license';
|
|
135
|
+
/**
|
|
136
|
+
* Build the object literal source for a dependency check exception.
|
|
137
|
+
* `JSON.stringify` produces valid string literals for arbitrary text (quotes,
|
|
138
|
+
* backslashes, newlines all escaped); prettier later normalises quote style.
|
|
139
|
+
*/
|
|
140
|
+
const exceptionLiteral = (exception) => {
|
|
141
|
+
const parts = [`package: ${JSON.stringify(exception.package)}`];
|
|
142
|
+
if (exception.version !== undefined) {
|
|
143
|
+
parts.push(`version: ${JSON.stringify(exception.version)}`);
|
|
144
|
+
}
|
|
145
|
+
parts.push(`reason: ${JSON.stringify(exception.reason)}`);
|
|
146
|
+
if (exception.spdx !== undefined) {
|
|
147
|
+
parts.push(`spdx: ${JSON.stringify(exception.spdx)}`);
|
|
148
|
+
}
|
|
149
|
+
return `{ ${parts.join(', ')} }`;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* GritQL `or` block that appends `$ins` (the insert placeholder) to the named
|
|
153
|
+
* array inside the matched `$scope`, without ever producing an array hole:
|
|
154
|
+
* - empty `key: []` → `key: [$ins]` (a list-append `+=` does not match an
|
|
155
|
+
* empty array, so the empty case is rewritten directly)
|
|
156
|
+
* - otherwise → list-append `+=` of `, $ins`; the leading comma is the
|
|
157
|
+
* element separator and `+=` places it correctly for single inline,
|
|
158
|
+
* single-with-trailing-comma and multi-element arrays alike
|
|
159
|
+
*/
|
|
160
|
+
const appendToArray = (key, ins) => `or {
|
|
161
|
+
$scope <: contains \`${key}: []\` => \`${key}: [${ins}]\`,
|
|
162
|
+
$scope <: contains \`${key}: [$items]\` where { $items += \`, ${ins}\` }
|
|
163
|
+
}`;
|
|
164
|
+
/**
|
|
165
|
+
* Insert `property` (TypeScript source like `dependencies: { ... }`) as the
|
|
166
|
+
* first property of the `license` object literal.
|
|
167
|
+
*
|
|
168
|
+
* Prepending is comma-safe for every shape — empty `{}`, single- or multi-line.
|
|
169
|
+
* `+=` appending is not: it omits the separator when the last property's value
|
|
170
|
+
* is an object/array literal (e.g. `source: { ... }`), corrupting the file. The
|
|
171
|
+
* property text is routed through a placeholder so its content never enters the
|
|
172
|
+
* GritQL pattern. Returns true if the file changed (a `license` object existed).
|
|
173
|
+
*/
|
|
174
|
+
const prependLicenseProperty = async (tree, property) => {
|
|
175
|
+
const { insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
176
|
+
// Non-empty license object: insert before the first existing property.
|
|
177
|
+
const intoNonEmpty = await insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`license: { $props }\` where { $props => \`${GRIT_INSERT_PLACEHOLDER}, $props\` }`, property);
|
|
178
|
+
if (intoNonEmpty)
|
|
179
|
+
return true;
|
|
180
|
+
// Empty license object: `{ $props }` doesn't match `{}`, so fill it directly.
|
|
181
|
+
return insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`license: {}\` => \`license: { ${GRIT_INSERT_PLACEHOLDER} }\``, property);
|
|
182
|
+
};
|
|
183
|
+
/**
|
|
184
|
+
* Whether `license.dependencies` (the dependency-check block) is configured.
|
|
185
|
+
* Scoped within `license` so a `dependencies`-shaped object elsewhere in the
|
|
186
|
+
* file isn't mistaken for it.
|
|
187
|
+
*/
|
|
188
|
+
const hasDependenciesBlock = async (tree) => {
|
|
189
|
+
if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
|
|
190
|
+
return false;
|
|
191
|
+
const { matchGritQL } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
192
|
+
return matchGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`license: { $l }` where { $l <: contains `dependencies: $_` }');
|
|
193
|
+
};
|
|
194
|
+
/**
|
|
195
|
+
* Workspace-root npm-ecosystem lockfiles. Each is added to the license-check
|
|
196
|
+
* cache inputs only when present, so the cache invalidates on dependency
|
|
197
|
+
* changes without listing lockfiles for package managers the workspace doesn't
|
|
198
|
+
* use.
|
|
199
|
+
*/
|
|
200
|
+
const NPM_LOCKFILES = [
|
|
201
|
+
'pnpm-lock.yaml',
|
|
202
|
+
'yarn.lock',
|
|
203
|
+
'package-lock.json',
|
|
204
|
+
'bun.lockb',
|
|
205
|
+
];
|
|
206
|
+
/**
|
|
207
|
+
* Recompute the `inputs` of the root `license-check` target from what's
|
|
208
|
+
* currently in the workspace: the present npm lockfiles, the config file, and
|
|
209
|
+
* a recursive uv.lock glob when the dependency check uses a Python collector.
|
|
210
|
+
*
|
|
211
|
+
* The uv lockfile is keyed off the collector (not file presence) because it is
|
|
212
|
+
* created by `uv` *after* the generator runs, and may live in a subdirectory of
|
|
213
|
+
* a uv workspace. Callers run this whenever they change the relevant state, so
|
|
214
|
+
* the inputs stay correct regardless of generator order. No-op if the
|
|
215
|
+
* license-check target doesn't exist yet.
|
|
216
|
+
*/
|
|
217
|
+
const updateLicenseCheckTargetInputs = async (tree) => {
|
|
218
|
+
const rootProjectJsonPath = 'project.json';
|
|
219
|
+
if (!tree.exists(rootProjectJsonPath))
|
|
220
|
+
return;
|
|
221
|
+
const rootProject = JSON.parse(tree.read(rootProjectJsonPath, 'utf-8'));
|
|
222
|
+
const target = rootProject.targets?.['license-check'];
|
|
223
|
+
if (!target)
|
|
224
|
+
return;
|
|
225
|
+
const inputs = NPM_LOCKFILES.filter((f) => tree.exists(f)).map((f) => `{workspaceRoot}/${f}`);
|
|
226
|
+
if (await hasPythonCollector(tree)) {
|
|
227
|
+
inputs.push('{workspaceRoot}/**/uv.lock');
|
|
228
|
+
}
|
|
229
|
+
inputs.push('{workspaceRoot}/aws-nx-plugin.config.mts');
|
|
230
|
+
target.inputs = inputs;
|
|
231
|
+
tree.write(rootProjectJsonPath, JSON.stringify(rootProject, null, 2));
|
|
232
|
+
};
|
|
233
|
+
exports.updateLicenseCheckTargetInputs = updateLicenseCheckTargetInputs;
|
|
234
|
+
/**
|
|
235
|
+
* Whether the dependency check config has a `pythonCollector` configured.
|
|
236
|
+
*/
|
|
237
|
+
const hasPythonCollector = async (tree) => {
|
|
238
|
+
if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
|
|
239
|
+
return false;
|
|
240
|
+
const { matchGritQL } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
241
|
+
return matchGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`pythonCollector`');
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* The name of the project that owns the root `license-check` target, or
|
|
245
|
+
* undefined if no project defines it.
|
|
246
|
+
*/
|
|
247
|
+
const findLicenseCheckProjectName = (tree) => {
|
|
248
|
+
const { getProjects } = require('@nx/devkit');
|
|
249
|
+
for (const [name, config] of getProjects(tree)) {
|
|
250
|
+
if (config.targets?.['license-check'])
|
|
251
|
+
return name;
|
|
252
|
+
}
|
|
253
|
+
return undefined;
|
|
254
|
+
};
|
|
255
|
+
/**
|
|
256
|
+
* Make a project's `lint` target depend on the root `license-check` target, so
|
|
257
|
+
* license checking runs as part of lint/build. No-op when the project has no
|
|
258
|
+
* `lint` target or there's no license-check target to depend on. Idempotent.
|
|
259
|
+
*
|
|
260
|
+
* Callers format afterwards (generators call `formatFilesInSubtree` at the end),
|
|
261
|
+
* so the rewritten project.json matches prettier.
|
|
262
|
+
*/
|
|
263
|
+
const addLicenseCheckToLintTarget = (tree, projectName) => {
|
|
264
|
+
const { readProjectConfiguration, updateProjectConfiguration, } = require('@nx/devkit');
|
|
265
|
+
const licenseCheckProject = findLicenseCheckProjectName(tree);
|
|
266
|
+
if (!licenseCheckProject)
|
|
267
|
+
return;
|
|
268
|
+
let project;
|
|
269
|
+
try {
|
|
270
|
+
project = readProjectConfiguration(tree, projectName);
|
|
271
|
+
}
|
|
272
|
+
catch {
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
// Only wire projects that actually lint, and never the license-check project
|
|
276
|
+
// itself (a target can't depend on its own project's target).
|
|
277
|
+
if (!project.targets?.lint || projectName === licenseCheckProject)
|
|
278
|
+
return;
|
|
279
|
+
(0, nx_1.addDependencyToTargetIfNotPresent)(project, 'lint', {
|
|
280
|
+
projects: [licenseCheckProject],
|
|
281
|
+
target: 'license-check',
|
|
282
|
+
});
|
|
283
|
+
updateProjectConfiguration(tree, projectName, project);
|
|
284
|
+
};
|
|
285
|
+
exports.addLicenseCheckToLintTarget = addLicenseCheckToLintTarget;
|
|
286
|
+
/**
|
|
287
|
+
* Wire every project's `lint` target to the root `license-check` target.
|
|
288
|
+
* Called by the license generator so existing projects pick up the dependency
|
|
289
|
+
* regardless of the order generators ran in.
|
|
290
|
+
*/
|
|
291
|
+
const addLicenseCheckToAllLintTargets = (tree) => {
|
|
292
|
+
const { getProjects } = require('@nx/devkit');
|
|
293
|
+
for (const [name] of getProjects(tree)) {
|
|
294
|
+
(0, exports.addLicenseCheckToLintTarget)(tree, name);
|
|
295
|
+
}
|
|
296
|
+
};
|
|
297
|
+
exports.addLicenseCheckToAllLintTargets = addLicenseCheckToAllLintTargets;
|
|
298
|
+
/**
|
|
299
|
+
* Ensure the `dependencies` block (dependency license checking) exists within
|
|
300
|
+
* the `license` config. If one already exists it is left untouched, so user
|
|
301
|
+
* customizations survive.
|
|
302
|
+
*/
|
|
303
|
+
const ensureDependencyCheckBlock = async (tree, options) => {
|
|
304
|
+
if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
|
|
305
|
+
return;
|
|
306
|
+
const { addDestructuredImport } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
307
|
+
if (await hasDependenciesBlock(tree)) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
const withPython = options?.includeCollectors === 'npm+python';
|
|
311
|
+
const collectors = withPython
|
|
312
|
+
? 'collectors: [npmCollector(), pythonCollector()]'
|
|
313
|
+
: 'collectors: [npmCollector()]';
|
|
314
|
+
const block = `dependencies: { allow: DEFAULT_LICENSE_ALLOWLIST, ${collectors}, exceptions: [] }`;
|
|
315
|
+
// Prepend the block as the first property of the license object. Prepending
|
|
316
|
+
// (rather than `+=` appending) is comma-safe for every shape: GritQL's `+=`
|
|
317
|
+
// omits the separator when the last existing property's value is an object
|
|
318
|
+
// literal (e.g. `source: { ... }`), which would corrupt the file.
|
|
319
|
+
const added = await prependLicenseProperty(tree, block);
|
|
320
|
+
// Only add the imports if the block was actually written (i.e. a license
|
|
321
|
+
// object literal existed to attach it to).
|
|
322
|
+
if (added) {
|
|
323
|
+
await addDestructuredImport(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, withPython
|
|
324
|
+
? ['DEFAULT_LICENSE_ALLOWLIST', 'npmCollector', 'pythonCollector']
|
|
325
|
+
: ['DEFAULT_LICENSE_ALLOWLIST', 'npmCollector'], LICENSE_SDK_MODULE);
|
|
326
|
+
await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
|
|
327
|
+
}
|
|
328
|
+
};
|
|
329
|
+
exports.ensureDependencyCheckBlock = ensureDependencyCheckBlock;
|
|
330
|
+
/**
|
|
331
|
+
* Ensure license exceptions are present in `license.dependencies.exceptions`.
|
|
332
|
+
* An exception whose package is already listed is skipped (so existing reasons
|
|
333
|
+
* are never overwritten). Other exceptions, collectors and the allowlist are
|
|
334
|
+
* left untouched.
|
|
335
|
+
*
|
|
336
|
+
* The `dependencies: { $scope }` scope keeps edits within the dependency-check
|
|
337
|
+
* block, so an `exceptions` array elsewhere in the file isn't matched.
|
|
338
|
+
*/
|
|
339
|
+
const ensureLicenseExceptions = async (tree, exceptions) => {
|
|
340
|
+
if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
|
|
341
|
+
return;
|
|
342
|
+
const { insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
343
|
+
if (!(await hasDependenciesBlock(tree))) {
|
|
344
|
+
return;
|
|
345
|
+
}
|
|
346
|
+
let modified = false;
|
|
347
|
+
for (const exception of exceptions) {
|
|
348
|
+
const pkg = JSON.stringify(exception.package);
|
|
349
|
+
const inserted = await insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`dependencies: { $scope }\` where {
|
|
350
|
+
$scope <: not contains \`package: ${pkg}\`,
|
|
351
|
+
${appendToArray('exceptions', GRIT_INSERT_PLACEHOLDER)}
|
|
352
|
+
}`, exceptionLiteral(exception));
|
|
353
|
+
modified ||= inserted;
|
|
354
|
+
}
|
|
355
|
+
if (modified) {
|
|
356
|
+
await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
|
|
357
|
+
}
|
|
358
|
+
};
|
|
359
|
+
exports.ensureLicenseExceptions = ensureLicenseExceptions;
|
|
360
|
+
/**
|
|
361
|
+
* Add `pythonCollector()` to `license.dependencies.collectors`, unless one is
|
|
362
|
+
* already configured.
|
|
363
|
+
*/
|
|
364
|
+
const ensurePythonLicenseCollector = async (tree) => {
|
|
365
|
+
if (!tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME))
|
|
366
|
+
return;
|
|
367
|
+
const { addDestructuredImport, insertViaGritQL, GRIT_INSERT_PLACEHOLDER } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
368
|
+
if (!(await hasDependenciesBlock(tree))) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
const added = await insertViaGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, `\`dependencies: { $scope }\` where {
|
|
372
|
+
$scope <: not contains \`pythonCollector\`,
|
|
373
|
+
${appendToArray('collectors', GRIT_INSERT_PLACEHOLDER)}
|
|
374
|
+
}`, 'pythonCollector()');
|
|
375
|
+
if (added) {
|
|
376
|
+
await addDestructuredImport(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, ['pythonCollector'], LICENSE_SDK_MODULE);
|
|
377
|
+
await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
|
|
378
|
+
// Now that a Python collector is configured, ensure uv.lock is a cache
|
|
379
|
+
// input. Runs here (not only in the license generator) so it's added
|
|
380
|
+
// whenever the collector is — e.g. when py#project runs after license.
|
|
381
|
+
await (0, exports.updateLicenseCheckTargetInputs)(tree);
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
exports.ensurePythonLicenseCollector = ensurePythonLicenseCollector;
|
|
385
|
+
/**
|
|
386
|
+
* Build the default `license.source` config for a given license
|
|
97
387
|
*/
|
|
98
388
|
const defaultLicenseConfig = (spdx, copyrightHolder) => {
|
|
99
389
|
switch (spdx) {
|
|
@@ -172,12 +462,30 @@ const defaultLicenseConfig = (spdx, copyrightHolder) => {
|
|
|
172
462
|
};
|
|
173
463
|
exports.defaultLicenseConfig = defaultLicenseConfig;
|
|
174
464
|
/**
|
|
175
|
-
* Write license
|
|
465
|
+
* Write the `license.source` config (headers + LICENSE files) to the aws nx
|
|
466
|
+
* plugin config.
|
|
467
|
+
*
|
|
468
|
+
* The `source` block is (re)written, but any existing `license.dependencies`
|
|
469
|
+
* block — a user-customized allowlist, collectors and exceptions — is
|
|
470
|
+
* preserved, so re-running the license generator (e.g. to change the copyright
|
|
471
|
+
* holder) never clobbers dependency-check customizations.
|
|
176
472
|
*/
|
|
177
|
-
const writeLicenseConfig = async (tree,
|
|
178
|
-
await (
|
|
179
|
-
|
|
180
|
-
|
|
473
|
+
const writeLicenseConfig = async (tree, source) => {
|
|
474
|
+
const { captureGritQL } = await Promise.resolve().then(() => __importStar(require('../utils/ast')));
|
|
475
|
+
// Capture the existing `dependencies: { ... }` block before overwriting the
|
|
476
|
+
// license value, so we can re-attach it afterwards. It's managed by the
|
|
477
|
+
// ensure* helpers, never written from here.
|
|
478
|
+
const preserved = tree.exists(utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME)
|
|
479
|
+
? await captureGritQL(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME, '`dependencies: $_`')
|
|
480
|
+
: undefined;
|
|
481
|
+
await (0, utils_1.updateAwsNxPluginConfig)(tree, { license: { source } });
|
|
482
|
+
// Re-attach the preserved block. The captured text may contain backticks,
|
|
483
|
+
// `${...}` or quotes — prependLicenseProperty routes it through a placeholder
|
|
484
|
+
// so it never enters the GritQL pattern.
|
|
485
|
+
if (preserved) {
|
|
486
|
+
await prependLicenseProperty(tree, preserved);
|
|
487
|
+
await (0, format_1.formatFilesInSubtree)(tree, utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME);
|
|
488
|
+
}
|
|
181
489
|
};
|
|
182
490
|
exports.writeLicenseConfig = writeLicenseConfig;
|
|
183
491
|
/**
|
|
@@ -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,"file":"config.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/license/config.ts"],"names":[],"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,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.formatReport = exports.runCheck = void 0;
|
|
8
|
+
const utils_1 = require("../../utils/config/utils");
|
|
9
|
+
const collector_1 = require("./collectors/collector");
|
|
10
|
+
const evaluator_1 = require("./evaluator");
|
|
11
|
+
const findException = (exceptions, name, version) => {
|
|
12
|
+
if (!exceptions)
|
|
13
|
+
return undefined;
|
|
14
|
+
return exceptions.find((e) => e && e.package === name && (!e.version || e.version === version));
|
|
15
|
+
};
|
|
16
|
+
const runCheck = async (options) => {
|
|
17
|
+
const { projectRoot, config } = options;
|
|
18
|
+
const collectors = options.collectors ?? collector_1.DEFAULT_COLLECTORS;
|
|
19
|
+
const evaluator = (0, evaluator_1.createEvaluator)({ allow: config.allow });
|
|
20
|
+
const allDeps = await Promise.all(collectors.map((c) => c.collect({ workspaceRoot: projectRoot })));
|
|
21
|
+
const dependencies = [];
|
|
22
|
+
for (const deps of allDeps) {
|
|
23
|
+
for (const dep of deps) {
|
|
24
|
+
const exception = findException(config.exceptions, dep.name, dep.version);
|
|
25
|
+
const license = exception?.spdx ?? dep.rawLicense;
|
|
26
|
+
const status = exception ? 'PRE_APPROVED' : evaluator.evaluate(license);
|
|
27
|
+
config.onDependency?.({ package: dep.name, spdx: license });
|
|
28
|
+
dependencies.push({
|
|
29
|
+
name: dep.name,
|
|
30
|
+
version: dep.version,
|
|
31
|
+
ecosystem: dep.ecosystem,
|
|
32
|
+
rawLicense: dep.rawLicense,
|
|
33
|
+
status,
|
|
34
|
+
exception,
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
const pass = !dependencies.some((d) => d.status === 'NOT_APPROVED' || d.status === 'UNKNOWN');
|
|
39
|
+
return { pass, dependencies };
|
|
40
|
+
};
|
|
41
|
+
exports.runCheck = runCheck;
|
|
42
|
+
const formatReport = (result, options) => {
|
|
43
|
+
const groups = new Map();
|
|
44
|
+
for (const dep of result.dependencies) {
|
|
45
|
+
if (dep.status === 'PRE_APPROVED')
|
|
46
|
+
continue;
|
|
47
|
+
const arr = groups.get(dep.status) ?? [];
|
|
48
|
+
arr.push(dep);
|
|
49
|
+
groups.set(dep.status, arr);
|
|
50
|
+
}
|
|
51
|
+
if (groups.size === 0) {
|
|
52
|
+
const total = result.dependencies.length;
|
|
53
|
+
return `License check passed (${total} dependencies inspected).`;
|
|
54
|
+
}
|
|
55
|
+
const failing = [
|
|
56
|
+
...(groups.get('NOT_APPROVED') ?? []),
|
|
57
|
+
...(groups.get('UNKNOWN') ?? []),
|
|
58
|
+
];
|
|
59
|
+
const lines = ['License check failed:', ''];
|
|
60
|
+
for (const status of ['NOT_APPROVED', 'UNKNOWN']) {
|
|
61
|
+
const deps = groups.get(status);
|
|
62
|
+
if (!deps || deps.length === 0)
|
|
63
|
+
continue;
|
|
64
|
+
lines.push(` ${status}:`);
|
|
65
|
+
for (const dep of deps) {
|
|
66
|
+
const license = dep.rawLicense || '(no license declared)';
|
|
67
|
+
lines.push(` - ${dep.name}@${dep.version} [${dep.ecosystem}] ${license}`);
|
|
68
|
+
}
|
|
69
|
+
lines.push('');
|
|
70
|
+
}
|
|
71
|
+
const collectors = options?.collectors ?? collector_1.DEFAULT_COLLECTORS;
|
|
72
|
+
const activeEcosystems = new Set(result.dependencies.map((d) => d.ecosystem));
|
|
73
|
+
const traceCommands = collectors.filter((c) => {
|
|
74
|
+
if (!c.traceCommand)
|
|
75
|
+
return false;
|
|
76
|
+
const eco = c.name === 'python' ? 'pypi' : c.name;
|
|
77
|
+
return activeEcosystems.has(eco);
|
|
78
|
+
});
|
|
79
|
+
if (traceCommands.length > 0) {
|
|
80
|
+
lines.push('To trace the dependency chain:');
|
|
81
|
+
for (const c of traceCommands) {
|
|
82
|
+
lines.push(` ${c.name}: ${c.traceCommand}`);
|
|
83
|
+
}
|
|
84
|
+
lines.push('');
|
|
85
|
+
}
|
|
86
|
+
lines.push(`To fix, add exceptions to license.dependencies.exceptions in ${utils_1.AWS_NX_PLUGIN_CONFIG_FILE_NAME}:`);
|
|
87
|
+
lines.push('');
|
|
88
|
+
lines.push(' exceptions: [');
|
|
89
|
+
for (const dep of failing) {
|
|
90
|
+
lines.push(` { package: '${dep.name}', reason: '<your reason>' },`);
|
|
91
|
+
}
|
|
92
|
+
lines.push(' ]');
|
|
93
|
+
lines.push('');
|
|
94
|
+
const uniqueLicenses = [
|
|
95
|
+
...new Set(failing
|
|
96
|
+
.filter((d) => d.rawLicense && d.status === 'NOT_APPROVED')
|
|
97
|
+
.map((d) => d.rawLicense)),
|
|
98
|
+
];
|
|
99
|
+
if (uniqueLicenses.length > 0) {
|
|
100
|
+
lines.push('Or add the license to license.dependencies.allow if it should be broadly permitted:');
|
|
101
|
+
lines.push('');
|
|
102
|
+
lines.push(' allow: [');
|
|
103
|
+
for (const lic of uniqueLicenses) {
|
|
104
|
+
lines.push(` { spdxId: '${lic}', fullName: '${lic}', aliases: [] },`);
|
|
105
|
+
}
|
|
106
|
+
lines.push(' ]');
|
|
107
|
+
}
|
|
108
|
+
return lines.join('\n');
|
|
109
|
+
};
|
|
110
|
+
exports.formatReport = formatReport;
|
|
111
|
+
//# sourceMappingURL=check.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"check.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/license/dependency-check/check.ts"],"names":[],"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[];
|