@aws/nx-plugin 1.0.0-rc.23 → 1.0.0-rc.25
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 +3643 -1208
- package/package.json +30 -15
- package/src/agentcore-gateway/attach-upstream.d.ts +7 -7
- package/src/agentcore-gateway/attach-upstream.js +19 -22
- package/src/agentcore-gateway/attach-upstream.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +4 -4
- package/src/agentcore-gateway/gateway-connection/generator.js +45 -46
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.d.ts +1 -0
- package/src/agentcore-gateway/gateway-connection/schema.json +5 -0
- package/src/agentcore-gateway/generator.js +93 -73
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +3 -3
- package/src/agentcore-gateway/mcp-connection/generator.js +27 -31
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/schema.d.js +6 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.d.ts +1 -0
- package/src/agentcore-gateway/mcp-connection/schema.json +5 -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 +1 -0
- package/src/agentcore-gateway/schema.json +5 -0
- package/src/bin/aws-nx-mcp.js +14 -0
- package/src/bin/aws-nx-mcp.js.map +1 -0
- package/src/connection/{agent-serve-local.d.ts → agent-local-dev.d.ts} +5 -5
- package/src/connection/agent-local-dev.js +42 -0
- package/src/connection/agent-local-dev.js.map +1 -0
- package/src/connection/agent-runtime-config.js +9 -14
- package/src/connection/agent-runtime-config.js.map +1 -1
- package/src/connection/generator.d.ts +1 -0
- package/src/connection/generator.js +265 -206
- package/src/connection/generator.js.map +1 -1
- package/src/connection/{serve-local.d.ts → local-dev.d.ts} +3 -3
- package/src/connection/local-dev.js +37 -0
- package/src/connection/local-dev.js.map +1 -0
- package/src/connection/schema.d.js +6 -0
- package/src/connection/schema.d.js.map +1 -0
- package/src/connection/schema.d.ts +1 -0
- package/src/connection/schema.json +5 -0
- package/src/index.js +2 -5
- package/src/index.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +33 -47
- package/src/infra/app/generator.js +140 -124
- 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/config-types.js +5 -3
- package/src/license/config-types.js.map +1 -1
- package/src/license/config.d.ts +1 -1
- package/src/license/config.js +267 -242
- package/src/license/config.js.map +1 -1
- package/src/license/dependency-check/check.js +51 -46
- package/src/license/dependency-check/check.js.map +1 -1
- package/src/license/dependency-check/collectors/collector.js +41 -71
- package/src/license/dependency-check/collectors/collector.js.map +1 -1
- package/src/license/dependency-check/collectors/npm-collector.js +34 -41
- package/src/license/dependency-check/collectors/npm-collector.js.map +1 -1
- package/src/license/dependency-check/collectors/python-collector.js +55 -62
- package/src/license/dependency-check/collectors/python-collector.js.map +1 -1
- package/src/license/dependency-check/evaluator.js +40 -68
- package/src/license/dependency-check/evaluator.js.map +1 -1
- package/src/license/dependency-check/executor.js +30 -22
- package/src/license/dependency-check/executor.js.map +1 -1
- package/src/license/dependency-check/pre-approved.js +949 -336
- package/src/license/dependency-check/pre-approved.js.map +1 -1
- package/src/license/dependency-check/types.js +2 -3
- package/src/license/dependency-check/types.js.map +1 -1
- package/src/license/generator.js +55 -60
- package/src/license/generator.js.map +1 -1
- package/src/license/index.js +3 -9
- package/src/license/index.js.map +1 -1
- package/src/license/known-exceptions.js +14 -13
- package/src/license/known-exceptions.js.map +1 -1
- package/src/license/schema.d.js +6 -0
- package/src/license/schema.d.js.map +1 -0
- package/src/license/schema.d.ts +2 -0
- package/src/license/schema.json +5 -0
- package/src/license/sync/generator.js +94 -119
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.js +28 -35
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.js +130 -160
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/guide-pipeline.js +184 -206
- package/src/mcp-server/guide-pipeline.js.map +1 -1
- package/src/mcp-server/guide-render.js +10 -25
- package/src/mcp-server/guide-render.js.map +1 -1
- package/src/mcp-server/index.js +6 -10
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/mdx-ast.js +39 -57
- package/src/mcp-server/mdx-ast.js.map +1 -1
- package/src/mcp-server/option-filter.js +33 -47
- package/src/mcp-server/option-filter.js.map +1 -1
- package/src/mcp-server/schema-registry.js +27 -40
- package/src/mcp-server/schema-registry.js.map +1 -1
- package/src/mcp-server/schema.js +9 -7
- package/src/mcp-server/schema.js.map +1 -1
- package/src/mcp-server/server.js +20 -24
- package/src/mcp-server/server.js.map +1 -1
- package/src/mcp-server/tools/create-workspace-command.js +23 -24
- package/src/mcp-server/tools/create-workspace-command.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.js +45 -25
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +29 -37
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/mcp-server/tools/list-generators.js +19 -25
- package/src/mcp-server/tools/list-generators.js.map +1 -1
- package/src/open-api/ts-client/generator.js +16 -26
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-client/schema.d.js +6 -0
- package/src/open-api/ts-client/schema.d.js.map +1 -0
- package/src/open-api/ts-hooks/generator.js +13 -21
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-hooks/schema.d.js +6 -0
- package/src/open-api/ts-hooks/schema.d.js.map +1 -0
- package/src/open-api/ts-metadata/generator.js +12 -20
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/ts-metadata/schema.d.js +6 -0
- package/src/open-api/ts-metadata/schema.d.js.map +1 -0
- package/src/open-api/utils/codegen-data/languages.js +42 -60
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data/types.js +31 -30
- package/src/open-api/utils/codegen-data/types.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +253 -269
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.js +242 -241
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.js +8 -14
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.js +12 -22
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/open-api/utils/types.js +5 -2
- package/src/open-api/utils/types.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +32 -7
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +134 -113
- 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 +1 -1
- package/src/preset/schema.json +5 -5
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +304 -0
- package/src/py/agent/__snapshots__/{generator.spec.ts.snap → generator.frameworks.spec.ts.snap} +16 -853
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +535 -0
- package/src/py/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -2
- package/src/py/agent/a2a-connection/files/agent-connection/app/__targetAgentSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/a2a-connection/files/langchain/agent-connection/app/__targetAgentSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/a2a-connection/generator.js +74 -75
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/schema.d.js +8 -0
- package/src/py/agent/a2a-connection/schema.d.js.map +1 -0
- package/src/py/agent/a2a-connection/schema.d.ts +1 -0
- package/src/py/agent/a2a-connection/schema.json +5 -0
- package/src/py/agent/gateway-connection/__snapshots__/generator.spec.ts.snap +6 -8
- package/src/py/agent/gateway-connection/files/agent-connection/app/__gatewaySnakeCase___client_strands.py.template +3 -3
- package/src/py/agent/gateway-connection/files/langchain/agent-connection/app/__gatewaySnakeCase___client_langchain.py.template +3 -3
- package/src/py/agent/gateway-connection/generator.js +65 -58
- package/src/py/agent/gateway-connection/generator.js.map +1 -1
- package/src/py/agent/gateway-connection/schema.d.js +6 -0
- package/src/py/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/py/agent/gateway-connection/schema.d.ts +1 -0
- package/src/py/agent/gateway-connection/schema.json +5 -0
- package/src/py/agent/generator.js +230 -194
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +5 -12
- package/src/py/agent/mcp-connection/files/agent-connection/app/__mcpServerSnakeCase___client_strands.py.template +1 -1
- package/src/py/agent/mcp-connection/files/langchain/agent-connection/app/__mcpServerSnakeCase___client_langchain.py.template +1 -1
- package/src/py/agent/mcp-connection/generator.js +57 -52
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/schema.d.js +8 -0
- package/src/py/agent/mcp-connection/schema.d.js.map +1 -0
- package/src/py/agent/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 +3 -2
- package/src/py/agent/react-connection/generator.d.ts +1 -1
- 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} +4 -4
- package/src/py/agent/react-connection/local-dev.js +36 -0
- package/src/py/agent/react-connection/local-dev.js.map +1 -0
- package/src/py/agent/react-connection/schema.d.js +8 -0
- package/src/py/agent/react-connection/schema.d.js.map +1 -0
- package/src/py/agent/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 +1 -0
- package/src/py/agent/schema.json +5 -0
- 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 +68 -28
- package/src/py/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/agent-connection/generator.js +30 -30
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/py/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/agent-connection/schema.d.ts +1 -0
- package/src/py/dynamodb/agent-connection/schema.json +5 -0
- package/src/py/dynamodb/fast-api-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/py/dynamodb/fast-api-connection/generator.js +29 -29
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
- package/src/py/dynamodb/fast-api-connection/schema.d.js +8 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.d.ts +1 -0
- package/src/py/dynamodb/fast-api-connection/schema.json +5 -0
- package/src/py/dynamodb/files/__name__/client.py.template +5 -5
- package/src/py/dynamodb/files/__name__/entities/base.py.template +2 -2
- package/src/py/dynamodb/files/config.json.template +1 -1
- package/src/py/dynamodb/generator.js +66 -62
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/py/dynamodb/mcp-server-connection/generator.js +30 -30
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.d.ts +1 -0
- package/src/py/dynamodb/mcp-server-connection/schema.json +5 -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 +1 -0
- package/src/py/dynamodb/schema.json +5 -0
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +45 -4632
- package/src/py/fast-api/__snapshots__/generator.terraform.spec.ts.snap +4833 -0
- package/src/py/fast-api/generator.js +82 -85
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +3 -2
- package/src/py/fast-api/react/generator.d.ts +2 -2
- 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.js +28 -29
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/fast-api/react/schema.d.js +6 -0
- package/src/py/fast-api/react/schema.d.js.map +1 -0
- package/src/py/fast-api/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.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 +8 -8
- package/src/py/mcp-server/generator.js +152 -132
- 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.js +132 -90
- 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/{sdk → src/sdk}/license.d.ts +4 -4
- package/src/sdk/license.js +7 -0
- package/src/sdk/license.js.map +1 -0
- package/src/sdk/open-api.d.ts +10 -0
- package/src/sdk/open-api.js +8 -0
- package/src/sdk/open-api.js.map +1 -0
- package/src/sdk/py.d.ts +14 -0
- package/src/sdk/py.js +10 -0
- package/src/sdk/py.js.map +1 -0
- package/src/sdk/terraform.d.ts +6 -0
- package/src/sdk/terraform.js +7 -0
- package/src/sdk/terraform.js.map +1 -0
- package/src/sdk/ts.d.ts +33 -0
- package/src/sdk/ts.js +35 -0
- package/src/sdk/ts.js.map +1 -0
- package/{sdk → src/sdk}/utils/ast.d.ts +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 +2 -8
- package/src/smithy/project/files/build.Dockerfile.template +1 -4
- package/src/smithy/project/generator.js +48 -43
- 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/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 +395 -72
- package/src/smithy/ts/api/generator.js +125 -110
- 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/providers.tf.template +1 -1
- package/src/terraform/project/generator.js +151 -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 +336 -92
- package/src/trpc/backend/generator.d.ts +1 -1
- package/src/trpc/backend/generator.js +97 -86
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.js +6 -0
- package/src/trpc/backend/schema.d.js.map +1 -0
- package/src/trpc/backend/schema.d.ts +1 -0
- package/src/trpc/backend/schema.json +5 -0
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/trpc/react/generator.d.ts +1 -1
- 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 +11 -11
- package/src/ts/agent/a2a-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/a2a-connection/files/agent-connection/app/__targetAgentKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/a2a-connection/generator.js +62 -55
- 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/gateway-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/agent/gateway-connection/files/agent-connection/app/__gatewayKebabCase__-client-strands.ts.template +3 -3
- package/src/ts/agent/gateway-connection/generator.js +61 -53
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/gateway-connection/schema.d.js +6 -0
- package/src/ts/agent/gateway-connection/schema.d.js.map +1 -0
- package/src/ts/agent/gateway-connection/schema.d.ts +1 -0
- package/src/ts/agent/gateway-connection/schema.json +5 -0
- package/src/ts/agent/generator.js +169 -137
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/ts/agent/mcp-connection/files/agent-connection/app/__mcpServerKebabCase__-client-strands.ts.template +1 -1
- package/src/ts/agent/mcp-connection/generator.js +52 -47
- 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 +1 -1
- 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/{serve-local.d.ts → local-dev.d.ts} +2 -2
- package/src/ts/agent/react-connection/local-dev.js +17 -0
- package/src/ts/agent/react-connection/local-dev.js.map +1 -0
- package/src/ts/agent/react-connection/schema.d.js +8 -0
- package/src/ts/agent/react-connection/schema.d.js.map +1 -0
- package/src/ts/agent/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.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 +1 -0
- package/src/ts/api/schema.json +5 -0
- package/src/ts/astro-docs/__snapshots__/generator.spec.ts.snap +8 -8
- package/src/ts/astro-docs/generator.js +63 -51
- 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.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 +68 -30
- package/src/ts/dynamodb/agent-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/agent-connection/generator.js +21 -23
- package/src/ts/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/agent-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/agent-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/agent-connection/schema.json +5 -0
- package/src/ts/dynamodb/files/config.json.template +1 -1
- package/src/ts/dynamodb/files/src/client.ts.template +7 -7
- package/src/ts/dynamodb/generator.js +68 -63
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/dynamodb/mcp-server-connection/generator.js +21 -23
- package/src/ts/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/mcp-server-connection/schema.json +5 -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 +1 -0
- package/src/ts/dynamodb/schema.json +5 -0
- package/src/ts/dynamodb/smithy-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/smithy-connection/generator.js +20 -22
- package/src/ts/dynamodb/smithy-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/smithy-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/smithy-connection/schema.json +5 -0
- package/src/ts/dynamodb/trpc-connection/__snapshots__/generator.spec.ts.snap +3 -3
- package/src/ts/dynamodb/trpc-connection/generator.js +20 -22
- package/src/ts/dynamodb/trpc-connection/generator.js.map +1 -1
- package/src/ts/dynamodb/trpc-connection/schema.d.js +8 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.js.map +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/dynamodb/trpc-connection/schema.json +5 -0
- package/src/ts/lambda-function/__snapshots__/generator.spec.ts.snap +4 -4
- 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 +23 -36
- package/src/ts/lib/biome.js +37 -37
- package/src/ts/lib/biome.js.map +1 -1
- package/src/ts/lib/generator.js +82 -80
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.d.js +6 -0
- package/src/ts/lib/schema.d.js.map +1 -0
- package/src/ts/lib/schema.d.ts +1 -1
- package/src/ts/lib/schema.json +5 -0
- package/src/ts/lib/ts-project-utils.js +65 -70
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/types.js +5 -2
- package/src/ts/lib/types.js.map +1 -1
- package/src/ts/lib/vitest.js +29 -26
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +5 -5
- package/src/ts/mcp-server/generator.js +161 -139
- 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 +27 -12
- 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.js +88 -84
- 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.js +57 -49
- 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.js +32 -44
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/rdb/__snapshots__/generator.spec.ts.snap +30 -30
- package/src/ts/rdb/agent-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/agent-connection/generator.js +38 -39
- package/src/ts/rdb/agent-connection/generator.js.map +1 -1
- package/src/ts/rdb/agent-connection/schema.d.js +8 -0
- package/src/ts/rdb/agent-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/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 +1 -1
- package/src/ts/rdb/files/prisma.config.ts.template +2 -2
- package/src/ts/rdb/files/src/prisma.ts.template +7 -7
- package/src/ts/rdb/files/src/utils.ts.template +1 -0
- package/src/ts/rdb/generator.js +134 -117
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/__snapshots__/generator.spec.ts.snap +6 -6
- package/src/ts/rdb/mcp-server-connection/generator.js +36 -37
- package/src/ts/rdb/mcp-server-connection/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/schema.d.js +8 -0
- package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -0
- package/src/ts/rdb/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.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.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.js +9 -11
- package/src/ts/rdb/utils.js.map +1 -1
- package/src/ts/react-website/agui/generator.js +69 -61
- package/src/ts/react-website/agui/generator.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +178 -284
- package/src/ts/react-website/app/generator.d.ts +1 -1
- package/src/ts/react-website/app/generator.js +212 -191
- 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 +118 -4
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +10 -3
- 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 +1 -1
- package/src/ts/react-website/cognito-auth/generator.js +64 -60
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.js +6 -0
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -0
- package/src/ts/react-website/cognito-auth/schema.d.ts +1 -0
- package/src/ts/react-website/cognito-auth/schema.json +5 -0
- package/src/ts/react-website/cognito-auth/utils.js +34 -32
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/react-website/runtime-config/files/app/components/RuntimeConfig/index.tsx.template +2 -2
- package/src/ts/react-website/runtime-config/generator.js +29 -31
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/react-website/runtime-config/schema.d.js +6 -0
- package/src/ts/react-website/runtime-config/schema.d.js.map +1 -0
- package/src/ts/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.js +60 -59
- package/src/ts/sync/generator.js.map +1 -1
- package/src/ts/website/app/generator.js +10 -10
- package/src/ts/website/app/generator.js.map +1 -1
- package/src/ts/website/app/schema.d.js +6 -0
- package/src/ts/website/app/schema.d.js.map +1 -0
- package/src/ts/website/app/schema.d.ts +1 -1
- package/src/ts/website/app/schema.json +11 -6
- package/src/ts/website/auth/generator.d.ts +1 -1
- 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 +1 -1
- package/src/utils/agent-chat/agent-chat.js +11 -12
- package/src/utils/agent-chat/agent-chat.js.map +1 -1
- package/src/utils/agent-chat/files/a2a/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/ag-ui/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-py/chat.ts.template +1 -1
- package/src/utils/agent-chat/files/http-ts/chat.ts.template +1 -1
- package/src/utils/agent-connection/agent-connection.js +129 -146
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-connection/files/core-gateway/agentcore-gateway-mcp-transport.ts.template +1 -1
- package/src/utils/agent-connection/files/core-strands/gateway/agentcore-gateway-mcp-client-strands.ts.template +1 -1
- package/src/utils/agent-connection/files/py-core-gateway/agentcore_gateway_mcp_transport.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-langchain/gateway/agentcore_gateway_mcp_client_langchain.py.template +1 -1
- package/src/utils/agent-connection/files/py-core-strands/gateway/agentcore_gateway_mcp_client_strands.py.template +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +53 -50
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/agent-core-constructs/files/terraform/app/agentcore-gateway/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agent-core/runtime.tf.template +4 -4
- package/src/utils/agent-core-constructs/files/terraform/core/agentcore-gateway/gateway.tf.template +2 -2
- package/src/utils/api-constructs/api-constructs.js +30 -31
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/cdk/core/api/http/http-api.ts.template +14 -6
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account/index.js.template +58 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/api-gateway-account.ts.template +82 -0
- package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +28 -14
- package/src/utils/api-constructs/files/terraform/app/apis/http/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +1 -8
- package/src/utils/api-constructs/files/terraform/app/apis/rest/__apiNameKebabCase__/__apiNameKebabCase__.tf.template +91 -4
- package/src/utils/api-constructs/files/terraform/core/api/http/http-api/http-api.tf.template +1 -1
- package/src/utils/api-constructs/files/terraform/core/api/rest/api-gateway-account/api-gateway-account.tf.template +83 -0
- package/src/utils/api-constructs/files/terraform/core/api/rest/rest-api/rest-api.tf.template +5 -11
- package/src/utils/api-constructs/open-api-metadata.js +22 -22
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.js +17 -19
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.js +72 -97
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.js +50 -47
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/commands.js +47 -26
- package/src/utils/commands.js.map +1 -1
- package/src/utils/config/index.d.ts +2 -2
- package/src/utils/config/index.js +5 -4
- package/src/utils/config/index.js.map +1 -1
- package/src/utils/config/utils.js +48 -58
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.d.ts +5 -5
- package/src/utils/connection/open-api/react.js +81 -77
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/containers.js +22 -23
- package/src/utils/containers.js.map +1 -1
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js +32 -33
- package/src/utils/dynamodb-constructs/dynamodb-constructs.js.map +1 -1
- package/src/utils/dynamodb-constructs/files/terraform/app/dynamodb/__nameKebabCase__/__nameKebabCase__.tf.template +12 -2
- package/src/utils/dynamodb-constructs/files/terraform/core/dynamodb/dynamodb.tf.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/create-local-table.ts.template +2 -2
- package/src/utils/files/common/scripts/src/dynamodb/pull-image.ts.template +1 -1
- package/src/utils/files/common/scripts/src/dynamodb/start-container.ts.template +17 -2
- package/src/utils/files/common/scripts/src/infra/stage-credentials/cdk-command.ts.template +11 -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/{pull-image.ts.template → shared/pull-image.ts.template} +1 -1
- package/src/utils/files/common/scripts/src/rdb/{start-container.ts.template → shared/start-container.ts.template} +16 -1
- package/src/utils/files/terraform/src/core/asset-bucket/asset-bucket.tf.template +2 -2
- package/src/utils/files/terraform/src/core/runtime-config/appconfig/appconfig.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/appconfig-deployment/appconfig-deployment.tf.template +3 -3
- package/src/utils/files/terraform/src/core/runtime-config/entry/entry.tf.template +1 -1
- package/src/utils/files/terraform/src/core/runtime-config/read/read.tf.template +2 -2
- package/src/utils/files/website/hooks/sigv4/useSigV4.tsx.template +1 -1
- package/src/utils/format.js +153 -99
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.js +14 -13
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/files/terraform/app/lambda-functions/__nameKebabCase__/__nameKebabCase__.tf.template +2 -2
- package/src/utils/function-constructs/function-constructs.js +21 -26
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/generators.js +18 -20
- package/src/utils/generators.js.map +1 -1
- package/src/utils/git.js +19 -34
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac-providers.js +5 -5
- package/src/utils/iac-providers.js.map +1 -1
- package/src/utils/iac.js +12 -14
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +112 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/add-callback-url/add-callback-url.tf.template +2 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/identity/identity.tf.template +104 -2
- package/src/utils/identity-constructs/files/terraform/core/user-identity/main.tf.template +7 -0
- package/src/utils/identity-constructs/identity-constructs.js +24 -28
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/install.d.ts +32 -0
- package/src/utils/install.js +56 -0
- package/src/utils/install.js.map +1 -0
- package/src/utils/js.js +27 -20
- package/src/utils/js.js.map +1 -1
- package/src/utils/mcp.js +34 -41
- package/src/utils/mcp.js.map +1 -1
- package/src/utils/metrics.js +30 -45
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +8 -12
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.js +25 -51
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.js +9 -17
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.d.ts +18 -2
- package/src/utils/nx.js +111 -74
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.js +27 -15
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/object.js +5 -11
- package/src/utils/object.js.map +1 -1
- package/src/utils/paths.js +11 -15
- package/src/utils/paths.js.map +1 -1
- package/src/utils/pkg-manager.js +4 -9
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/pnpm-workspace.js +22 -22
- package/src/utils/pnpm-workspace.js.map +1 -1
- package/src/utils/port.js +26 -36
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.js +43 -52
- package/src/utils/py.js.map +1 -1
- package/src/utils/rdb-constructs/files/terraform/app/dbs/__nameKebabCase__/__nameKebabCase__.tf.template +4 -4
- package/src/utils/rdb-constructs/files/terraform/core/rdb/aurora/aurora.tf.template +3 -3
- package/src/utils/rdb-constructs/rdb-constructs.js +31 -33
- package/src/utils/rdb-constructs/rdb-constructs.js.map +1 -1
- package/src/utils/shared-constructs-constants.js +16 -16
- package/src/utils/shared-constructs-constants.js.map +1 -1
- package/src/utils/shared-constructs.js +57 -54
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-dynamodb-scripts.js +16 -14
- package/src/utils/shared-dynamodb-scripts.js.map +1 -1
- package/src/utils/shared-infra-config.js +30 -31
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-infra-scripts.js +30 -25
- package/src/utils/shared-infra-scripts.js.map +1 -1
- package/src/utils/shared-rdb-scripts.d.ts +8 -3
- package/src/utils/shared-rdb-scripts.js +21 -13
- package/src/utils/shared-rdb-scripts.js.map +1 -1
- package/src/utils/shared-scripts.js +12 -17
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +64 -60
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/test.d.ts +8 -0
- package/src/utils/test.js +33 -25
- package/src/utils/test.js.map +1 -1
- package/src/utils/toml.js +7 -15
- package/src/utils/toml.js.map +1 -1
- package/src/utils/versions.d.ts +93 -66
- package/src/utils/versions.js +102 -85
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/files/terraform/app/static-websites/__websiteNameKebabCase__/__websiteNameKebabCase__.tf.template +1 -1
- package/src/utils/website-constructs/files/terraform/core/static-website/static-website.tf.template +4 -4
- package/src/utils/website-constructs/website-constructs.js +31 -30
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/bin/aws-nx-mcp.js +0 -17
- package/bin/aws-nx-mcp.js.map +0 -1
- package/sdk/agentcore-gateway.d.ts +0 -6
- package/sdk/agentcore-gateway.js +0 -11
- package/sdk/agentcore-gateway.js.map +0 -1
- package/sdk/connection.d.ts +0 -6
- package/sdk/connection.js +0 -10
- package/sdk/connection.js.map +0 -1
- package/sdk/license.js +0 -14
- package/sdk/license.js.map +0 -1
- package/sdk/open-api.d.ts +0 -10
- package/sdk/open-api.js +0 -15
- package/sdk/open-api.js.map +0 -1
- package/sdk/py.d.ts +0 -14
- package/sdk/py.js +0 -18
- package/sdk/py.js.map +0 -1
- package/sdk/terraform.d.ts +0 -6
- package/sdk/terraform.js +0 -11
- package/sdk/terraform.js.map +0 -1
- package/sdk/ts.d.ts +0 -33
- package/sdk/ts.js +0 -53
- package/sdk/ts.js.map +0 -1
- package/sdk/utils/ast.js +0 -12
- package/sdk/utils/ast.js.map +0 -1
- package/sdk/utils/format.js +0 -10
- package/sdk/utils/format.js.map +0 -1
- package/sdk/utils/test.js +0 -10
- package/sdk/utils/test.js.map +0 -1
- package/src/connection/agent-serve-local.js +0 -48
- package/src/connection/agent-serve-local.js.map +0 -1
- package/src/connection/serve-local.js +0 -41
- package/src/connection/serve-local.js.map +0 -1
- package/src/py/agent/react-connection/serve-local.js +0 -38
- package/src/py/agent/react-connection/serve-local.js.map +0 -1
- package/src/ts/agent/react-connection/serve-local.js +0 -19
- package/src/ts/agent/react-connection/serve-local.js.map +0 -1
- package/src/utils/files/common/scripts/src/rdb/wait-for-db.ts.template +0 -59
- /package/src/agentcore-gateway/files/project/{serve-local.ts.template → local-dev.ts.template} +0 -0
- /package/{bin → src/bin}/aws-nx-mcp.d.ts +0 -0
|
@@ -2,7 +2,14 @@ import {
|
|
|
2
2
|
IdentityPool,
|
|
3
3
|
UserPoolAuthenticationProvider,
|
|
4
4
|
} from 'aws-cdk-lib/aws-cognito-identitypool';
|
|
5
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
CfnOutput,
|
|
7
|
+
CfnResource,
|
|
8
|
+
Duration,
|
|
9
|
+
Lazy,
|
|
10
|
+
RemovalPolicy,
|
|
11
|
+
Stack,
|
|
12
|
+
} from 'aws-cdk-lib';
|
|
6
13
|
import {
|
|
7
14
|
AccountRecovery,
|
|
8
15
|
CfnManagedLoginBranding,
|
|
@@ -10,15 +17,34 @@ import {
|
|
|
10
17
|
FeaturePlan,
|
|
11
18
|
Mfa,
|
|
12
19
|
OAuthScope,
|
|
20
|
+
StandardThreatProtectionMode,
|
|
13
21
|
UserPool,
|
|
14
22
|
UserPoolClient,
|
|
15
23
|
} from 'aws-cdk-lib/aws-cognito';
|
|
24
|
+
import {
|
|
25
|
+
CfnLoggingConfiguration,
|
|
26
|
+
CfnWebACL,
|
|
27
|
+
CfnWebACLAssociation,
|
|
28
|
+
} from 'aws-cdk-lib/aws-wafv2';
|
|
29
|
+
import { LogGroup, RetentionDays } from 'aws-cdk-lib/aws-logs';
|
|
16
30
|
import { Construct } from 'constructs';
|
|
17
31
|
import { RuntimeConfig } from './runtime-config.js';
|
|
18
32
|
import { Distribution } from 'aws-cdk-lib/aws-cloudfront';
|
|
19
33
|
import { suppressRules } from './checkov.js';
|
|
20
34
|
|
|
21
35
|
const WEB_CLIENT_ID = 'WebClient';
|
|
36
|
+
|
|
37
|
+
export interface UserIdentityProps {
|
|
38
|
+
/**
|
|
39
|
+
* Whether to enable AWS WAFv2 with the default managed ruleset
|
|
40
|
+
* (AWSManagedRulesCommonRuleSet and AWSManagedRulesKnownBadInputsRuleSet)
|
|
41
|
+
* and associate it with the user pool.
|
|
42
|
+
*
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
readonly enableWaf?: boolean;
|
|
46
|
+
}
|
|
47
|
+
|
|
22
48
|
/**
|
|
23
49
|
* Creates a UserPool and Identity Pool with sane defaults configured intended for usage from a web client.
|
|
24
50
|
*/
|
|
@@ -29,11 +55,18 @@ export class UserIdentity extends Construct {
|
|
|
29
55
|
public readonly userPoolClient: UserPoolClient;
|
|
30
56
|
public readonly userPoolDomain: CfnUserPoolDomain;
|
|
31
57
|
|
|
32
|
-
|
|
58
|
+
/** The WAFv2 Web ACL associated with the user pool, if WAF is enabled */
|
|
59
|
+
public readonly webAcl?: CfnWebACL;
|
|
60
|
+
|
|
61
|
+
constructor(scope: Construct, id: string, { enableWaf = true }: UserIdentityProps = {}) {
|
|
33
62
|
super(scope, id);
|
|
34
63
|
|
|
35
64
|
this.region = Stack.of(this).region;
|
|
36
65
|
this.userPool = this.createUserPool();
|
|
66
|
+
|
|
67
|
+
if (enableWaf) {
|
|
68
|
+
this.webAcl = this.createWebAcl(id, this.userPool);
|
|
69
|
+
}
|
|
37
70
|
this.userPoolDomain = this.createUserPoolDomain(this.userPool);
|
|
38
71
|
this.userPoolClient = this.createUserPoolClient(this.userPool);
|
|
39
72
|
this.identityPool = this.createIdentityPool(
|
|
@@ -86,6 +119,8 @@ export class UserIdentity extends Construct {
|
|
|
86
119
|
},
|
|
87
120
|
mfa: Mfa.REQUIRED,
|
|
88
121
|
featurePlan: FeaturePlan.PLUS,
|
|
122
|
+
// Audit-only logs threat assessments without blocking sign-in. Switch to FULL_FUNCTION to enforce automatic responses.
|
|
123
|
+
standardThreatProtectionMode: StandardThreatProtectionMode.AUDIT_ONLY,
|
|
89
124
|
mfaSecondFactor: { sms: true, otp: true },
|
|
90
125
|
signInCaseSensitive: false,
|
|
91
126
|
signInAliases: { username: true, email: true },
|
|
@@ -118,6 +153,81 @@ export class UserIdentity extends Construct {
|
|
|
118
153
|
return userPool;
|
|
119
154
|
};
|
|
120
155
|
|
|
156
|
+
private createWebAcl = (id: string, userPool: UserPool) => {
|
|
157
|
+
const webAcl = new CfnWebACL(this, 'WebAcl', {
|
|
158
|
+
defaultAction: { allow: {} },
|
|
159
|
+
scope: 'REGIONAL',
|
|
160
|
+
visibilityConfig: {
|
|
161
|
+
cloudWatchMetricsEnabled: true,
|
|
162
|
+
metricName: `${id}WebAcl`,
|
|
163
|
+
sampledRequestsEnabled: true,
|
|
164
|
+
},
|
|
165
|
+
rules: [
|
|
166
|
+
{
|
|
167
|
+
name: 'CRSRule',
|
|
168
|
+
priority: 0,
|
|
169
|
+
statement: {
|
|
170
|
+
managedRuleGroupStatement: {
|
|
171
|
+
name: 'AWSManagedRulesCommonRuleSet',
|
|
172
|
+
vendorName: 'AWS',
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
visibilityConfig: {
|
|
176
|
+
cloudWatchMetricsEnabled: true,
|
|
177
|
+
metricName: `${id}WebAcl-CRS`,
|
|
178
|
+
sampledRequestsEnabled: true,
|
|
179
|
+
},
|
|
180
|
+
overrideAction: {
|
|
181
|
+
none: {},
|
|
182
|
+
},
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
name: 'KnownBadInputsRule',
|
|
186
|
+
priority: 1,
|
|
187
|
+
statement: {
|
|
188
|
+
managedRuleGroupStatement: {
|
|
189
|
+
name: 'AWSManagedRulesKnownBadInputsRuleSet',
|
|
190
|
+
vendorName: 'AWS',
|
|
191
|
+
},
|
|
192
|
+
},
|
|
193
|
+
visibilityConfig: {
|
|
194
|
+
cloudWatchMetricsEnabled: true,
|
|
195
|
+
metricName: `${id}WebAcl-KnownBadInputs`,
|
|
196
|
+
sampledRequestsEnabled: true,
|
|
197
|
+
},
|
|
198
|
+
overrideAction: {
|
|
199
|
+
none: {},
|
|
200
|
+
},
|
|
201
|
+
},
|
|
202
|
+
],
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
new CfnWebACLAssociation(this, 'WebAclAssociation', {
|
|
206
|
+
resourceArn: userPool.userPoolArn,
|
|
207
|
+
webAclArn: webAcl.attrArn,
|
|
208
|
+
});
|
|
209
|
+
|
|
210
|
+
// Send WAF request logs to CloudWatch. The log group name must start with
|
|
211
|
+
// `aws-waf-logs-` to satisfy the WAFv2 logging destination requirement.
|
|
212
|
+
const wafLogGroup = new LogGroup(this, 'WebAclLogs', {
|
|
213
|
+
logGroupName: `aws-waf-logs-${id}-${this.node.addr.slice(-8)}`,
|
|
214
|
+
retention: RetentionDays.ONE_MONTH,
|
|
215
|
+
removalPolicy: RemovalPolicy.DESTROY,
|
|
216
|
+
});
|
|
217
|
+
suppressRules(
|
|
218
|
+
wafLogGroup,
|
|
219
|
+
['CKV_AWS_158'],
|
|
220
|
+
'Using default CloudWatch log encryption for WAF logs',
|
|
221
|
+
);
|
|
222
|
+
|
|
223
|
+
new CfnLoggingConfiguration(this, 'WebAclLoggingConfig', {
|
|
224
|
+
resourceArn: webAcl.attrArn,
|
|
225
|
+
logDestinationConfigs: [wafLogGroup.logGroupArn],
|
|
226
|
+
});
|
|
227
|
+
|
|
228
|
+
return webAcl;
|
|
229
|
+
};
|
|
230
|
+
|
|
121
231
|
private createUserPoolDomain = (userPool: UserPool) =>
|
|
122
232
|
new CfnUserPoolDomain(this, 'UserPoolDomain', {
|
|
123
233
|
domain: `<%= cognitoDomain %>-${Stack.of(this).account}`,
|
|
@@ -2,7 +2,7 @@ terraform {
|
|
|
2
2
|
required_providers {
|
|
3
3
|
aws = {
|
|
4
4
|
source = "hashicorp/aws"
|
|
5
|
-
version = "
|
|
5
|
+
version = "<%- awsProviderVersion %>"
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
8
|
}
|
|
@@ -59,7 +59,7 @@ resource "null_resource" "add_callback_url" {
|
|
|
59
59
|
|
|
60
60
|
provisioner "local-exec" {
|
|
61
61
|
command = <<-EOT
|
|
62
|
-
uv run --with boto3 python -c "
|
|
62
|
+
uv run --with boto3<%= boto3Version %> python -c "
|
|
63
63
|
import boto3
|
|
64
64
|
import os
|
|
65
65
|
import sys
|
|
@@ -2,11 +2,11 @@ terraform {
|
|
|
2
2
|
required_providers {
|
|
3
3
|
aws = {
|
|
4
4
|
source = "hashicorp/aws"
|
|
5
|
-
version = "
|
|
5
|
+
version = "<%- awsProviderVersion %>"
|
|
6
6
|
}
|
|
7
7
|
random = {
|
|
8
8
|
source = "hashicorp/random"
|
|
9
|
-
version = "
|
|
9
|
+
version = "<%- randomProviderVersion %>"
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -22,6 +22,12 @@ variable "allow_signup" {
|
|
|
22
22
|
type = bool
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
variable "enable_waf" {
|
|
26
|
+
description = "Whether to enable AWS WAFv2 with the default managed ruleset (AWSManagedRulesCommonRuleSet and AWSManagedRulesKnownBadInputsRuleSet) and associate it with the user pool"
|
|
27
|
+
type = bool
|
|
28
|
+
default = true
|
|
29
|
+
}
|
|
30
|
+
|
|
25
31
|
variable "callback_urls" {
|
|
26
32
|
description = "Additional callback URLs for the user pool client"
|
|
27
33
|
type = list(string)
|
|
@@ -150,6 +156,11 @@ resource "aws_cognito_user_pool" "user_pool" {
|
|
|
150
156
|
# User pool tier (equivalent to FeaturePlan.PLUS)
|
|
151
157
|
user_pool_tier = "PLUS"
|
|
152
158
|
|
|
159
|
+
# Threat protection. AUDIT logs threat assessments without blocking sign-in; switch to ENFORCED to apply automatic responses.
|
|
160
|
+
user_pool_add_ons {
|
|
161
|
+
advanced_security_mode = "AUDIT"
|
|
162
|
+
}
|
|
163
|
+
|
|
153
164
|
# Schema attributes
|
|
154
165
|
schema {
|
|
155
166
|
attribute_data_type = "String"
|
|
@@ -225,6 +236,97 @@ resource "aws_cognito_user_pool_domain" "user_pool_domain" {
|
|
|
225
236
|
managed_login_version = 2
|
|
226
237
|
}
|
|
227
238
|
|
|
239
|
+
# WAFv2 Web ACL for the user pool
|
|
240
|
+
resource "aws_wafv2_web_acl" "user_pool_waf" {
|
|
241
|
+
#checkov:skip=CKV2_AWS_31:Logging configuration is defined below in aws_wafv2_web_acl_logging_configuration.user_pool_waf_logging; Checkov does not resolve the separate resource
|
|
242
|
+
count = var.enable_waf ? 1 : 0
|
|
243
|
+
|
|
244
|
+
name = "UserPool-${random_id.unique_suffix.hex}-waf"
|
|
245
|
+
scope = "REGIONAL"
|
|
246
|
+
|
|
247
|
+
default_action {
|
|
248
|
+
allow {}
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
rule {
|
|
252
|
+
name = "CRSRule"
|
|
253
|
+
priority = 0
|
|
254
|
+
|
|
255
|
+
override_action {
|
|
256
|
+
none {}
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
statement {
|
|
260
|
+
managed_rule_group_statement {
|
|
261
|
+
name = "AWSManagedRulesCommonRuleSet"
|
|
262
|
+
vendor_name = "AWS"
|
|
263
|
+
}
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
visibility_config {
|
|
267
|
+
cloudwatch_metrics_enabled = true
|
|
268
|
+
metric_name = "UserPoolWebAcl-CRS"
|
|
269
|
+
sampled_requests_enabled = true
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
rule {
|
|
274
|
+
name = "KnownBadInputsRule"
|
|
275
|
+
priority = 1
|
|
276
|
+
|
|
277
|
+
override_action {
|
|
278
|
+
none {}
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
statement {
|
|
282
|
+
managed_rule_group_statement {
|
|
283
|
+
name = "AWSManagedRulesKnownBadInputsRuleSet"
|
|
284
|
+
vendor_name = "AWS"
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
visibility_config {
|
|
289
|
+
cloudwatch_metrics_enabled = true
|
|
290
|
+
metric_name = "UserPoolWebAcl-KnownBadInputs"
|
|
291
|
+
sampled_requests_enabled = true
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
visibility_config {
|
|
296
|
+
cloudwatch_metrics_enabled = true
|
|
297
|
+
metric_name = "UserPoolWebAcl"
|
|
298
|
+
sampled_requests_enabled = true
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
lifecycle {
|
|
302
|
+
create_before_destroy = true
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
resource "aws_wafv2_web_acl_association" "user_pool_waf_association" {
|
|
307
|
+
count = var.enable_waf ? 1 : 0
|
|
308
|
+
|
|
309
|
+
resource_arn = aws_cognito_user_pool.user_pool.arn
|
|
310
|
+
web_acl_arn = aws_wafv2_web_acl.user_pool_waf[0].arn
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
# CloudWatch Log Group for WAF request logs. Name must start with `aws-waf-logs-`.
|
|
314
|
+
resource "aws_cloudwatch_log_group" "user_pool_waf_logs" {
|
|
315
|
+
#checkov:skip=CKV_AWS_158:Using default CloudWatch log encryption
|
|
316
|
+
#checkov:skip=CKV_AWS_338:Log retention set to one month which is sufficient for WAF logs
|
|
317
|
+
count = var.enable_waf ? 1 : 0
|
|
318
|
+
|
|
319
|
+
name = "aws-waf-logs-UserPool-${random_id.unique_suffix.hex}"
|
|
320
|
+
retention_in_days = 30
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
resource "aws_wafv2_web_acl_logging_configuration" "user_pool_waf_logging" {
|
|
324
|
+
count = var.enable_waf ? 1 : 0
|
|
325
|
+
|
|
326
|
+
log_destination_configs = [aws_cloudwatch_log_group.user_pool_waf_logs[0].arn]
|
|
327
|
+
resource_arn = aws_wafv2_web_acl.user_pool_waf[0].arn
|
|
328
|
+
}
|
|
329
|
+
|
|
228
330
|
# User Pool Client
|
|
229
331
|
resource "aws_cognito_user_pool_client" "web_client" {
|
|
230
332
|
name = "WebClient-${random_id.unique_suffix.hex}"
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
variable "enable_waf" {
|
|
2
|
+
description = "Whether to enable AWS WAFv2 with the default managed ruleset and associate it with the user pool"
|
|
3
|
+
type = bool
|
|
4
|
+
default = true
|
|
5
|
+
}
|
|
6
|
+
|
|
1
7
|
module "identity" {
|
|
2
8
|
source = "./identity"
|
|
3
9
|
|
|
4
10
|
user_pool_domain_prefix = "<%= cognitoDomain %>"
|
|
5
11
|
allow_signup = <%= allowSignup %>
|
|
12
|
+
enable_waf = var.enable_waf
|
|
6
13
|
}
|
|
7
14
|
|
|
8
15
|
# Outputs
|
|
@@ -1,42 +1,38 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.addIdentityInfra = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
6
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
*/ import { generateFiles, joinPathFragments, OverwriteStrategy } from "@nx/devkit";
|
|
5
|
+
import { addStarExport } from "../ast.js";
|
|
6
|
+
import { PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, SHARED_TERRAFORM_DIR } from "../shared-constructs-constants.js";
|
|
7
|
+
import { PY_VERSIONS, terraformProviderVersions } from "../versions.js";
|
|
11
8
|
/**
|
|
12
9
|
* Add infrastructure for a static website
|
|
13
|
-
*/
|
|
14
|
-
const addIdentityInfra = async (tree, options) => {
|
|
10
|
+
*/ export const addIdentityInfra = async (tree, options)=>{
|
|
15
11
|
if (options.iac === 'cdk') {
|
|
16
12
|
await addIdentityCdkConstructs(tree, options);
|
|
17
|
-
}
|
|
18
|
-
else if (options.iac === 'terraform') {
|
|
13
|
+
} else if (options.iac === 'terraform') {
|
|
19
14
|
addIdentityTerraformModules(tree, options);
|
|
20
|
-
}
|
|
21
|
-
else {
|
|
15
|
+
} else {
|
|
22
16
|
throw new Error(`Unsupported iac ${options.iac}`);
|
|
23
17
|
}
|
|
24
18
|
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
19
|
+
const addIdentityCdkConstructs = async (tree, options)=>{
|
|
20
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core'), joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core'), options, {
|
|
21
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
29
22
|
});
|
|
30
|
-
await
|
|
23
|
+
await addStarExport(tree, joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core', 'index.ts'), './user-identity.js');
|
|
31
24
|
};
|
|
32
|
-
const addIdentityTerraformModules = (tree, options)
|
|
33
|
-
|
|
34
|
-
|
|
25
|
+
const addIdentityTerraformModules = (tree, options)=>{
|
|
26
|
+
generateFiles(tree, joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core'), joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core'), {
|
|
27
|
+
...options,
|
|
28
|
+
boto3Version: PY_VERSIONS.boto3,
|
|
29
|
+
...terraformProviderVersions()
|
|
30
|
+
}, {
|
|
31
|
+
overwriteStrategy: OverwriteStrategy.KeepExisting
|
|
35
32
|
});
|
|
36
33
|
// Update the static website module to add the callback url
|
|
37
|
-
const staticWebsiteModule = tree.read(
|
|
38
|
-
if (staticWebsiteModule &&
|
|
39
|
-
!staticWebsiteModule.includes('source = "../user-identity/add-callback-url"')) {
|
|
34
|
+
const staticWebsiteModule = tree.read(joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'static-website', 'static-website.tf'), 'utf-8');
|
|
35
|
+
if (staticWebsiteModule && !staticWebsiteModule.includes('source = "../user-identity/add-callback-url"')) {
|
|
40
36
|
// Find the aws_cloudfront_distribution.website resource and add the callback URL module after it
|
|
41
37
|
const callbackUrlModule = `
|
|
42
38
|
|
|
@@ -57,12 +53,11 @@ module "add_callback_url" {
|
|
|
57
53
|
let braceCount = 0;
|
|
58
54
|
let insertionPoint = -1;
|
|
59
55
|
// Count braces to find the end of the resource block
|
|
60
|
-
for
|
|
56
|
+
for(let i = startIndex; i < staticWebsiteModule.length; i++){
|
|
61
57
|
const char = staticWebsiteModule[i];
|
|
62
58
|
if (char === '{') {
|
|
63
59
|
braceCount++;
|
|
64
|
-
}
|
|
65
|
-
else if (char === '}') {
|
|
60
|
+
} else if (char === '}') {
|
|
66
61
|
braceCount--;
|
|
67
62
|
if (braceCount === 0) {
|
|
68
63
|
// Found the closing brace of the CloudFront resource
|
|
@@ -76,9 +71,10 @@ module "add_callback_url" {
|
|
|
76
71
|
const beforeInsertion = staticWebsiteModule.substring(0, insertionPoint);
|
|
77
72
|
const afterInsertion = staticWebsiteModule.substring(insertionPoint);
|
|
78
73
|
const updatedContent = beforeInsertion + callbackUrlModule + afterInsertion;
|
|
79
|
-
tree.write(
|
|
74
|
+
tree.write(joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core', 'static-website', 'static-website.tf'), updatedContent);
|
|
80
75
|
}
|
|
81
76
|
}
|
|
82
77
|
}
|
|
83
78
|
};
|
|
79
|
+
|
|
84
80
|
//# sourceMappingURL=identity-constructs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../../packages/nx-plugin/src/utils/identity-constructs/identity-constructs.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { addStarExport } from '../ast';\nimport type { Iac } from '../iac';\nimport {\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n SHARED_TERRAFORM_DIR,\n} from '../shared-constructs-constants';\nimport { PY_VERSIONS, terraformProviderVersions } from '../versions';\n\nexport interface AddIdentityInfraOptions {\n cognitoDomain: string;\n allowSignup: boolean;\n}\n\n/**\n * Add infrastructure for a static website\n */\nexport const addIdentityInfra = async (\n tree: Tree,\n options: AddIdentityInfraOptions & { iac: Iac },\n) => {\n if (options.iac === 'cdk') {\n await addIdentityCdkConstructs(tree, options);\n } else if (options.iac === 'terraform') {\n addIdentityTerraformModules(tree, options);\n } else {\n throw new Error(`Unsupported iac ${options.iac}`);\n }\n};\n\nconst addIdentityCdkConstructs = async (\n tree: Tree,\n options: AddIdentityInfraOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'cdk', 'core'),\n joinPathFragments(PACKAGES_DIR, SHARED_CONSTRUCTS_DIR, 'src', 'core'),\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n await addStarExport(\n tree,\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_CONSTRUCTS_DIR,\n 'src',\n 'core',\n 'index.ts',\n ),\n './user-identity.js',\n );\n};\n\nconst addIdentityTerraformModules = (\n tree: Tree,\n options: AddIdentityInfraOptions,\n) => {\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'terraform', 'core'),\n joinPathFragments(PACKAGES_DIR, SHARED_TERRAFORM_DIR, 'src', 'core'),\n {\n ...options,\n boto3Version: PY_VERSIONS.boto3,\n ...terraformProviderVersions(),\n },\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n // Update the static website module to add the callback url\n const staticWebsiteModule = tree.read(\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'core',\n 'static-website',\n 'static-website.tf',\n ),\n 'utf-8',\n );\n if (\n staticWebsiteModule &&\n !staticWebsiteModule.includes(\n 'source = \"../user-identity/add-callback-url\"',\n )\n ) {\n // Find the aws_cloudfront_distribution.website resource and add the callback URL module after it\n const callbackUrlModule = `\n\n# Add CloudFront domain to user pool client callback URLs\nmodule \"add_callback_url\" {\n source = \"../user-identity/add-callback-url\"\n\n callback_url = \"https://\\${aws_cloudfront_distribution.website.domain_name}\"\n\n depends_on = [aws_cloudfront_distribution.website]\n}`;\n\n // Find the CloudFront distribution resource using proper brace counting\n // This handles deeply nested structures correctly\n const resourceStartPattern =\n /resource\\s+\"aws_cloudfront_distribution\"\\s+\"website\"\\s*\\{/;\n const resourceStartMatch = staticWebsiteModule.match(resourceStartPattern);\n\n if (resourceStartMatch) {\n const startIndex =\n resourceStartMatch.index! + resourceStartMatch[0].length - 1; // Position at opening brace\n let braceCount = 0;\n let insertionPoint = -1;\n\n // Count braces to find the end of the resource block\n for (let i = startIndex; i < staticWebsiteModule.length; i++) {\n const char = staticWebsiteModule[i];\n if (char === '{') {\n braceCount++;\n } else if (char === '}') {\n braceCount--;\n if (braceCount === 0) {\n // Found the closing brace of the CloudFront resource\n insertionPoint = i + 1;\n break;\n }\n }\n }\n\n if (insertionPoint !== -1) {\n // Insert the callback URL module right after the CloudFront distribution\n const beforeInsertion = staticWebsiteModule.substring(\n 0,\n insertionPoint,\n );\n const afterInsertion = staticWebsiteModule.substring(insertionPoint);\n const updatedContent =\n beforeInsertion + callbackUrlModule + afterInsertion;\n\n tree.write(\n joinPathFragments(\n PACKAGES_DIR,\n SHARED_TERRAFORM_DIR,\n 'src',\n 'core',\n 'static-website',\n 'static-website.tf',\n ),\n updatedContent,\n );\n }\n }\n }\n};\n"],"names":["generateFiles","joinPathFragments","OverwriteStrategy","addStarExport","PACKAGES_DIR","SHARED_CONSTRUCTS_DIR","SHARED_TERRAFORM_DIR","PY_VERSIONS","terraformProviderVersions","addIdentityInfra","tree","options","iac","addIdentityCdkConstructs","addIdentityTerraformModules","Error","dirname","overwriteStrategy","KeepExisting","boto3Version","boto3","staticWebsiteModule","read","includes","callbackUrlModule","resourceStartPattern","resourceStartMatch","match","startIndex","index","length","braceCount","insertionPoint","i","char","beforeInsertion","substring","afterInsertion","updatedContent","write"],"mappings":"AAAA;;;CAGC,GACD,SACEA,aAAa,EACbC,iBAAiB,EACjBC,iBAAiB,QAEZ,aAAa;AACpB,SAASC,aAAa,QAAQ,YAAS;AAEvC,SACEC,YAAY,EACZC,qBAAqB,EACrBC,oBAAoB,QACf,oCAAiC;AACxC,SAASC,WAAW,EAAEC,yBAAyB,QAAQ,iBAAc;AAOrE;;CAEC,GACD,OAAO,MAAMC,mBAAmB,OAC9BC,MACAC;IAEA,IAAIA,QAAQC,GAAG,KAAK,OAAO;QACzB,MAAMC,yBAAyBH,MAAMC;IACvC,OAAO,IAAIA,QAAQC,GAAG,KAAK,aAAa;QACtCE,4BAA4BJ,MAAMC;IACpC,OAAO;QACL,MAAM,IAAII,MAAM,CAAC,gBAAgB,EAAEJ,QAAQC,GAAG,EAAE;IAClD;AACF,EAAE;AAEF,MAAMC,2BAA2B,OAC/BH,MACAC;IAEAX,cACEU,MACAT,kBAAkB,YAAYe,OAAO,EAAE,SAAS,OAAO,SACvDf,kBAAkBG,cAAcC,uBAAuB,OAAO,SAC9DM,SACA;QACEM,mBAAmBf,kBAAkBgB,YAAY;IACnD;IAGF,MAAMf,cACJO,MACAT,kBACEG,cACAC,uBACA,OACA,QACA,aAEF;AAEJ;AAEA,MAAMS,8BAA8B,CAClCJ,MACAC;IAEAX,cACEU,MACAT,kBAAkB,YAAYe,OAAO,EAAE,SAAS,aAAa,SAC7Df,kBAAkBG,cAAcE,sBAAsB,OAAO,SAC7D;QACE,GAAGK,OAAO;QACVQ,cAAcZ,YAAYa,KAAK;QAC/B,GAAGZ,2BAA2B;IAChC,GACA;QACES,mBAAmBf,kBAAkBgB,YAAY;IACnD;IAGF,2DAA2D;IAC3D,MAAMG,sBAAsBX,KAAKY,IAAI,CACnCrB,kBACEG,cACAE,sBACA,OACA,QACA,kBACA,sBAEF;IAEF,IACEe,uBACA,CAACA,oBAAoBE,QAAQ,CAC3B,iDAEF;QACA,iGAAiG;QACjG,MAAMC,oBAAoB,CAAC;;;;;;;;;CAS9B,CAAC;QAEE,wEAAwE;QACxE,kDAAkD;QAClD,MAAMC,uBACJ;QACF,MAAMC,qBAAqBL,oBAAoBM,KAAK,CAACF;QAErD,IAAIC,oBAAoB;YACtB,MAAME,aACJF,mBAAmBG,KAAK,GAAIH,kBAAkB,CAAC,EAAE,CAACI,MAAM,GAAG,GAAG,4BAA4B;YAC5F,IAAIC,aAAa;YACjB,IAAIC,iBAAiB,CAAC;YAEtB,qDAAqD;YACrD,IAAK,IAAIC,IAAIL,YAAYK,IAAIZ,oBAAoBS,MAAM,EAAEG,IAAK;gBAC5D,MAAMC,OAAOb,mBAAmB,CAACY,EAAE;gBACnC,IAAIC,SAAS,KAAK;oBAChBH;gBACF,OAAO,IAAIG,SAAS,KAAK;oBACvBH;oBACA,IAAIA,eAAe,GAAG;wBACpB,qDAAqD;wBACrDC,iBAAiBC,IAAI;wBACrB;oBACF;gBACF;YACF;YAEA,IAAID,mBAAmB,CAAC,GAAG;gBACzB,yEAAyE;gBACzE,MAAMG,kBAAkBd,oBAAoBe,SAAS,CACnD,GACAJ;gBAEF,MAAMK,iBAAiBhB,oBAAoBe,SAAS,CAACJ;gBACrD,MAAMM,iBACJH,kBAAkBX,oBAAoBa;gBAExC3B,KAAK6B,KAAK,CACRtC,kBACEG,cACAE,sBACA,OACA,QACA,kBACA,sBAEFgC;YAEJ;QACF;IACF;AACF"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type Tree } from '@nx/devkit';
|
|
2
|
+
import type { ITsDepVersion } from './versions';
|
|
3
|
+
/**
|
|
4
|
+
* Languages whose dependencies a generator may install.
|
|
5
|
+
*/
|
|
6
|
+
export type InstallLanguage = 'typescript' | 'python';
|
|
7
|
+
export interface InstallDependenciesOptions {
|
|
8
|
+
/** Languages to install dependencies for. */
|
|
9
|
+
languages: InstallLanguage[];
|
|
10
|
+
/**
|
|
11
|
+
* Packages that must resolve from the workspace after this generator, because
|
|
12
|
+
* a config file it writes (e.g. `vite.config.mts`) imports them and Nx loads
|
|
13
|
+
* that config when computing the project graph. When the caller prefers to
|
|
14
|
+
* defer installing, we honour that only if these already resolve.
|
|
15
|
+
*
|
|
16
|
+
* The per-language graph deps in `LANGUAGE_GRAPH_DEPS` are always included, so
|
|
17
|
+
* callers only list packages beyond those.
|
|
18
|
+
*/
|
|
19
|
+
ensureResolvable?: ITsDepVersion[];
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Installs dependencies for the given languages.
|
|
23
|
+
*
|
|
24
|
+
* Call from a generator's returned callback:
|
|
25
|
+
* `return () => installDependencies(tree, options.preferInstallDependencies, { ... })`.
|
|
26
|
+
*
|
|
27
|
+
* `preferInstallDependencies` is a preference: when `false` the install is
|
|
28
|
+
* deferred so a batch installs once at the end — unless an `ensureResolvable`
|
|
29
|
+
* package is missing, in which case it runs anyway so the next `nx` command can
|
|
30
|
+
* still compute the project graph.
|
|
31
|
+
*/
|
|
32
|
+
export declare const installDependencies: (tree: Tree, preferInstallDependencies: boolean | undefined, options: InstallDependenciesOptions) => Promise<void>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/ import { existsSync } from "node:fs";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { installPackagesTask } from "@nx/devkit";
|
|
7
|
+
import { Logger, UVProvider } from "./nxlv-python.js";
|
|
8
|
+
/**
|
|
9
|
+
* Packages each language always needs resolvable for Nx to compute the project
|
|
10
|
+
* graph, so a deferred install still runs whenever it would otherwise break.
|
|
11
|
+
*/ const LANGUAGE_GRAPH_DEPS = {
|
|
12
|
+
typescript: [
|
|
13
|
+
'vitest'
|
|
14
|
+
],
|
|
15
|
+
python: [
|
|
16
|
+
'@nxlv/python'
|
|
17
|
+
]
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Returns true if every package is linked at `<root>/node_modules/<pkg>`.
|
|
21
|
+
*
|
|
22
|
+
* This is the condition Nx's inferred plugins need when they load a generated
|
|
23
|
+
* config (e.g. `vite.config.mts`) during graph computation: the config's
|
|
24
|
+
* imports resolve from inside the workspace's own `node_modules`. We avoid
|
|
25
|
+
* `require.resolve`, which can succeed via an ancestor `node_modules` even when
|
|
26
|
+
* the package isn't linked here. `existsSync` follows symlinks, so pnpm's store
|
|
27
|
+
* links resolve, and Nx always uses a `node_modules` linker (never PnP).
|
|
28
|
+
*/ const allResolvable = (root, packages)=>packages.every((pkg)=>existsSync(join(root, 'node_modules', pkg)));
|
|
29
|
+
/**
|
|
30
|
+
* Installs dependencies for the given languages.
|
|
31
|
+
*
|
|
32
|
+
* Call from a generator's returned callback:
|
|
33
|
+
* `return () => installDependencies(tree, options.preferInstallDependencies, { ... })`.
|
|
34
|
+
*
|
|
35
|
+
* `preferInstallDependencies` is a preference: when `false` the install is
|
|
36
|
+
* deferred so a batch installs once at the end — unless an `ensureResolvable`
|
|
37
|
+
* package is missing, in which case it runs anyway so the next `nx` command can
|
|
38
|
+
* still compute the project graph.
|
|
39
|
+
*/ export const installDependencies = async (tree, preferInstallDependencies, options)=>{
|
|
40
|
+
const { languages, ensureResolvable = [] } = options;
|
|
41
|
+
const mustResolve = [
|
|
42
|
+
...ensureResolvable,
|
|
43
|
+
...languages.flatMap((language)=>LANGUAGE_GRAPH_DEPS[language])
|
|
44
|
+
];
|
|
45
|
+
if (preferInstallDependencies === false && allResolvable(tree.root, mustResolve)) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
if (languages.includes('typescript')) {
|
|
49
|
+
installPackagesTask(tree);
|
|
50
|
+
}
|
|
51
|
+
if (languages.includes('python')) {
|
|
52
|
+
await new UVProvider(tree.root, new Logger(), tree).install();
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/install.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { installPackagesTask, type Tree } from '@nx/devkit';\nimport { Logger, UVProvider } from './nxlv-python';\nimport type { ITsDepVersion } from './versions';\n\n/**\n * Languages whose dependencies a generator may install.\n */\nexport type InstallLanguage = 'typescript' | 'python';\n\nexport interface InstallDependenciesOptions {\n /** Languages to install dependencies for. */\n languages: InstallLanguage[];\n /**\n * Packages that must resolve from the workspace after this generator, because\n * a config file it writes (e.g. `vite.config.mts`) imports them and Nx loads\n * that config when computing the project graph. When the caller prefers to\n * defer installing, we honour that only if these already resolve.\n *\n * The per-language graph deps in `LANGUAGE_GRAPH_DEPS` are always included, so\n * callers only list packages beyond those.\n */\n ensureResolvable?: ITsDepVersion[];\n}\n\n/**\n * Packages each language always needs resolvable for Nx to compute the project\n * graph, so a deferred install still runs whenever it would otherwise break.\n */\nconst LANGUAGE_GRAPH_DEPS: Record<InstallLanguage, string[]> = {\n typescript: ['vitest'], // every TypeScript project has a `vitest.config.mts`\n python: ['@nxlv/python'], // every Python project registers this inference plugin\n};\n\n/**\n * Returns true if every package is linked at `<root>/node_modules/<pkg>`.\n *\n * This is the condition Nx's inferred plugins need when they load a generated\n * config (e.g. `vite.config.mts`) during graph computation: the config's\n * imports resolve from inside the workspace's own `node_modules`. We avoid\n * `require.resolve`, which can succeed via an ancestor `node_modules` even when\n * the package isn't linked here. `existsSync` follows symlinks, so pnpm's store\n * links resolve, and Nx always uses a `node_modules` linker (never PnP).\n */\nconst allResolvable = (root: string, packages: string[]): boolean =>\n packages.every((pkg) => existsSync(join(root, 'node_modules', pkg)));\n\n/**\n * Installs dependencies for the given languages.\n *\n * Call from a generator's returned callback:\n * `return () => installDependencies(tree, options.preferInstallDependencies, { ... })`.\n *\n * `preferInstallDependencies` is a preference: when `false` the install is\n * deferred so a batch installs once at the end — unless an `ensureResolvable`\n * package is missing, in which case it runs anyway so the next `nx` command can\n * still compute the project graph.\n */\nexport const installDependencies = async (\n tree: Tree,\n preferInstallDependencies: boolean | undefined,\n options: InstallDependenciesOptions,\n): Promise<void> => {\n const { languages, ensureResolvable = [] } = options;\n const mustResolve = [\n ...ensureResolvable,\n ...languages.flatMap((language) => LANGUAGE_GRAPH_DEPS[language]),\n ];\n if (\n preferInstallDependencies === false &&\n allResolvable(tree.root, mustResolve)\n ) {\n return;\n }\n if (languages.includes('typescript')) {\n installPackagesTask(tree);\n }\n if (languages.includes('python')) {\n await new UVProvider(tree.root, new Logger(), tree).install();\n }\n};\n"],"names":["existsSync","join","installPackagesTask","Logger","UVProvider","LANGUAGE_GRAPH_DEPS","typescript","python","allResolvable","root","packages","every","pkg","installDependencies","tree","preferInstallDependencies","options","languages","ensureResolvable","mustResolve","flatMap","language","includes","install"],"mappings":"AAAA;;;CAGC,GACD,SAASA,UAAU,QAAQ,UAAU;AACrC,SAASC,IAAI,QAAQ,YAAY;AACjC,SAASC,mBAAmB,QAAmB,aAAa;AAC5D,SAASC,MAAM,EAAEC,UAAU,QAAQ,mBAAgB;AAuBnD;;;CAGC,GACD,MAAMC,sBAAyD;IAC7DC,YAAY;QAAC;KAAS;IACtBC,QAAQ;QAAC;KAAe;AAC1B;AAEA;;;;;;;;;CASC,GACD,MAAMC,gBAAgB,CAACC,MAAcC,WACnCA,SAASC,KAAK,CAAC,CAACC,MAAQZ,WAAWC,KAAKQ,MAAM,gBAAgBG;AAEhE;;;;;;;;;;CAUC,GACD,OAAO,MAAMC,sBAAsB,OACjCC,MACAC,2BACAC;IAEA,MAAM,EAAEC,SAAS,EAAEC,mBAAmB,EAAE,EAAE,GAAGF;IAC7C,MAAMG,cAAc;WACfD;WACAD,UAAUG,OAAO,CAAC,CAACC,WAAahB,mBAAmB,CAACgB,SAAS;KACjE;IACD,IACEN,8BAA8B,SAC9BP,cAAcM,KAAKL,IAAI,EAAEU,cACzB;QACA;IACF;IACA,IAAIF,UAAUK,QAAQ,CAAC,eAAe;QACpCpB,oBAAoBY;IACtB;IACA,IAAIG,UAAUK,QAAQ,CAAC,WAAW;QAChC,MAAM,IAAIlB,WAAWU,KAAKL,IAAI,EAAE,IAAIN,UAAUW,MAAMS,OAAO;IAC7D;AACF,EAAE"}
|
package/src/utils/js.js
CHANGED
|
@@ -1,33 +1,40 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
4
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
*/ import ts from "typescript";
|
|
5
|
+
// A real runtime `import()`, wrapped in `new Function` so transpilers (tsc's
|
|
6
|
+
// CommonJS output, @swc-node/register) cannot rewrite it to `require()` —
|
|
7
|
+
// `require()` cannot load the `data:` urls we import below. Under a test VM
|
|
8
|
+
// (vitest) this `new Function` import has no dynamic-import callback, so we
|
|
9
|
+
// fall back to a literal `import()` which the test runner wires up correctly.
|
|
10
|
+
const nodeImport = new Function('modulePath', 'return import(modulePath);');
|
|
11
|
+
const dynamicImport = async (modulePath)=>{
|
|
12
|
+
try {
|
|
13
|
+
return await nodeImport(modulePath);
|
|
14
|
+
} catch (e) {
|
|
15
|
+
if (e instanceof TypeError && e.message.includes('dynamic import callback')) {
|
|
16
|
+
return import(/* @vite-ignore */ modulePath);
|
|
17
|
+
}
|
|
18
|
+
throw e;
|
|
19
|
+
}
|
|
20
|
+
};
|
|
11
21
|
/**
|
|
12
22
|
* Imports a javascript module from a string of js code
|
|
13
|
-
*/
|
|
14
|
-
const
|
|
15
|
-
// Use nx's dynamic import to ensure that transpilers (namely @swc-node/register) don't process the import and it's
|
|
16
|
-
// instead processed by node at runtime, which allows for data urls
|
|
17
|
-
const module = await (0, config_utils_1.dynamicImport)(`data:text/javascript,${encodeURIComponent(jsCode)}`);
|
|
23
|
+
*/ export const importJavaScriptModule = async (jsCode)=>{
|
|
24
|
+
const module = await dynamicImport(`data:text/javascript,${encodeURIComponent(jsCode)}`);
|
|
18
25
|
// Return the default export if available, otherwise the full module
|
|
19
|
-
return
|
|
26
|
+
return module.default ?? module;
|
|
20
27
|
};
|
|
21
|
-
exports.importJavaScriptModule = importJavaScriptModule;
|
|
22
28
|
/**
|
|
23
29
|
* Imports a typescript module from a string of typescript code
|
|
24
|
-
*/
|
|
25
|
-
const importTypeScriptModule = async (tsCode) => {
|
|
30
|
+
*/ export const importTypeScriptModule = async (tsCode)=>{
|
|
26
31
|
// Transpile to js and then import as a js module
|
|
27
|
-
const jsCode =
|
|
28
|
-
compilerOptions: {
|
|
32
|
+
const jsCode = ts.transpileModule(tsCode, {
|
|
33
|
+
compilerOptions: {
|
|
34
|
+
module: ts.ModuleKind.ESNext
|
|
35
|
+
}
|
|
29
36
|
}).outputText;
|
|
30
|
-
return await
|
|
37
|
+
return await importJavaScriptModule(jsCode);
|
|
31
38
|
};
|
|
32
|
-
|
|
39
|
+
|
|
33
40
|
//# sourceMappingURL=js.js.map
|
package/src/utils/js.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../../../../../packages/nx-plugin/src/utils/js.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport ts from 'typescript';\n\n// A real runtime `import()`, wrapped in `new Function` so transpilers (tsc's\n// CommonJS output, @swc-node/register) cannot rewrite it to `require()` —\n// `require()` cannot load the `data:` urls we import below. Under a test VM\n// (vitest) this `new Function` import has no dynamic-import callback, so we\n// fall back to a literal `import()` which the test runner wires up correctly.\nconst nodeImport = new Function('modulePath', 'return import(modulePath);') as (\n modulePath: string,\n) => Promise<Record<string, unknown>>;\n\nconst dynamicImport = async (\n modulePath: string,\n): Promise<Record<string, unknown>> => {\n try {\n return await nodeImport(modulePath);\n } catch (e) {\n if (\n e instanceof TypeError &&\n e.message.includes('dynamic import callback')\n ) {\n return import(/* @vite-ignore */ modulePath);\n }\n throw e;\n }\n};\n\n/**\n * Imports a javascript module from a string of js code\n */\nexport const importJavaScriptModule = async <T>(jsCode: string): Promise<T> => {\n const module = await dynamicImport(\n `data:text/javascript,${encodeURIComponent(jsCode)}`,\n );\n\n // Return the default export if available, otherwise the full module\n return (module.default ?? module) as T;\n};\n\n/**\n * Imports a typescript module from a string of typescript code\n */\nexport const importTypeScriptModule = async <T>(tsCode: string): Promise<T> => {\n // Transpile to js and then import as a js module\n const jsCode = ts.transpileModule(tsCode, {\n compilerOptions: { module: ts.ModuleKind.ESNext },\n }).outputText;\n return await importJavaScriptModule<T>(jsCode);\n};\n"],"names":["ts","nodeImport","Function","dynamicImport","modulePath","e","TypeError","message","includes","importJavaScriptModule","jsCode","module","encodeURIComponent","default","importTypeScriptModule","tsCode","transpileModule","compilerOptions","ModuleKind","ESNext","outputText"],"mappings":"AAAA;;;CAGC,GAED,OAAOA,QAAQ,aAAa;AAE5B,6EAA6E;AAC7E,0EAA0E;AAC1E,4EAA4E;AAC5E,4EAA4E;AAC5E,8EAA8E;AAC9E,MAAMC,aAAa,IAAIC,SAAS,cAAc;AAI9C,MAAMC,gBAAgB,OACpBC;IAEA,IAAI;QACF,OAAO,MAAMH,WAAWG;IAC1B,EAAE,OAAOC,GAAG;QACV,IACEA,aAAaC,aACbD,EAAEE,OAAO,CAACC,QAAQ,CAAC,4BACnB;YACA,OAAO,MAAM,CAAC,gBAAgB,GAAGJ;QACnC;QACA,MAAMC;IACR;AACF;AAEA;;CAEC,GACD,OAAO,MAAMI,yBAAyB,OAAUC;IAC9C,MAAMC,SAAS,MAAMR,cACnB,CAAC,qBAAqB,EAAES,mBAAmBF,SAAS;IAGtD,oEAAoE;IACpE,OAAQC,OAAOE,OAAO,IAAIF;AAC5B,EAAE;AAEF;;CAEC,GACD,OAAO,MAAMG,yBAAyB,OAAUC;IAC9C,iDAAiD;IACjD,MAAML,SAASV,GAAGgB,eAAe,CAACD,QAAQ;QACxCE,iBAAiB;YAAEN,QAAQX,GAAGkB,UAAU,CAACC,MAAM;QAAC;IAClD,GAAGC,UAAU;IACb,OAAO,MAAMX,uBAA0BC;AACzC,EAAE"}
|