@aws/nx-plugin 1.0.0-rc.24 → 1.0.0-rc.26
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 +2020 -702
- package/package.json +6 -6
- package/src/agentcore-gateway/gateway-connection/generator.d.ts +1 -1
- package/src/agentcore-gateway/gateway-connection/generator.js +7 -5
- package/src/agentcore-gateway/gateway-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/gateway-connection/schema.d.js.map +1 -1
- 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 +7 -4
- package/src/agentcore-gateway/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.d.ts +1 -1
- package/src/agentcore-gateway/mcp-connection/generator.js +7 -5
- package/src/agentcore-gateway/mcp-connection/generator.js.map +1 -1
- package/src/agentcore-gateway/mcp-connection/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/agentcore-gateway/schema.d.ts +1 -0
- package/src/agentcore-gateway/schema.json +5 -0
- package/src/connection/generator.d.ts +3 -10
- package/src/connection/generator.js +18 -148
- package/src/connection/generator.js.map +1 -1
- package/src/connection/schema.d.js.map +1 -1
- package/src/connection/schema.d.ts +1 -0
- package/src/connection/schema.json +5 -0
- package/src/connection/supported-connections.d.ts +98 -0
- package/src/connection/supported-connections.js +138 -0
- package/src/connection/supported-connections.js.map +1 -0
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +29 -21
- package/src/infra/app/generator.js +12 -6
- package/src/infra/app/generator.js.map +1 -1
- package/src/infra/app/schema.d.js.map +1 -1
- package/src/infra/app/schema.d.ts +1 -1
- package/src/infra/app/schema.json +5 -0
- package/src/license/schema.d.js.map +1 -1
- package/src/license/schema.d.ts +2 -0
- package/src/license/schema.json +5 -0
- package/src/mcp-server/tools/general-guidance.js +17 -0
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +1 -1
- package/src/preset/generator.d.ts +1 -1
- package/src/preset/generator.js +8 -5
- package/src/preset/generator.js.map +1 -1
- package/src/preset/schema.d.js.map +1 -1
- package/src/preset/schema.d.ts +1 -0
- package/src/preset/schema.json +5 -0
- package/src/py/agent/__snapshots__/generator.constructs.spec.ts.snap +9 -9
- package/src/py/agent/__snapshots__/generator.frameworks.spec.ts.snap +10 -10
- package/src/py/agent/__snapshots__/generator.protocols.spec.ts.snap +1 -1
- package/src/py/agent/a2a-connection/generator.js +7 -4
- package/src/py/agent/a2a-connection/generator.js.map +1 -1
- package/src/py/agent/a2a-connection/schema.d.js.map +1 -1
- 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/generator.js +7 -4
- package/src/py/agent/gateway-connection/generator.js.map +1 -1
- package/src/py/agent/gateway-connection/schema.d.js.map +1 -1
- 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 +8 -6
- package/src/py/agent/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/generator.js +7 -4
- package/src/py/agent/mcp-connection/generator.js.map +1 -1
- package/src/py/agent/mcp-connection/schema.d.js.map +1 -1
- 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/generator.d.ts +1 -1
- package/src/py/agent/react-connection/generator.js +7 -4
- package/src/py/agent/react-connection/generator.js.map +1 -1
- package/src/py/agent/react-connection/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/py/agent/schema.d.ts +1 -0
- package/src/py/agent/schema.json +5 -0
- package/src/py/api/generator.js +2 -1
- package/src/py/api/generator.js.map +1 -1
- package/src/py/api/schema.d.js.map +1 -1
- package/src/py/api/schema.d.ts +1 -0
- package/src/py/api/schema.json +5 -0
- package/src/py/dynamodb/agent-connection/generator.js +8 -6
- package/src/py/dynamodb/agent-connection/generator.js.map +1 -1
- package/src/py/dynamodb/agent-connection/schema.d.js.map +1 -1
- 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/generator.js +8 -6
- package/src/py/dynamodb/fast-api-connection/generator.js.map +1 -1
- package/src/py/dynamodb/fast-api-connection/schema.d.js.map +1 -1
- 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/generator.js +10 -7
- package/src/py/dynamodb/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/generator.js +8 -6
- package/src/py/dynamodb/mcp-server-connection/generator.js.map +1 -1
- package/src/py/dynamodb/mcp-server-connection/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/py/dynamodb/schema.d.ts +1 -0
- package/src/py/dynamodb/schema.json +5 -0
- package/src/py/fast-api/generator.js +10 -7
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.d.ts +2 -2
- package/src/py/fast-api/react/generator.js +7 -5
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/py/fast-api/schema.d.ts +1 -0
- package/src/py/fast-api/schema.json +5 -0
- package/src/py/lambda-function/generator.js +8 -6
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/lambda-function/schema.d.js.map +1 -1
- 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 +5 -5
- package/src/py/mcp-server/generator.js +8 -6
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/mcp-server/schema.d.js.map +1 -1
- 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 +9 -6
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.d.js.map +1 -1
- package/src/py/project/schema.d.ts +1 -0
- package/src/py/project/schema.json +5 -0
- package/src/sdk/open-api.d.ts +1 -1
- package/src/sdk/open-api.js +1 -1
- package/src/sdk/open-api.js.map +1 -1
- package/src/sdk/utils/ast.d.ts +1 -2
- package/src/sdk/utils/ast.js +1 -2
- package/src/sdk/utils/ast.js.map +1 -1
- package/src/smithy/project/generator.js +7 -4
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/project/schema.d.js.map +1 -1
- package/src/smithy/project/schema.d.ts +1 -0
- package/src/smithy/project/schema.json +5 -0
- package/src/smithy/react-connection/generator.js +7 -4
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/react-connection/schema.d.js.map +1 -1
- package/src/smithy/react-connection/schema.d.ts +1 -0
- package/src/smithy/react-connection/schema.json +5 -0
- package/src/smithy/ts/api/generator.js +11 -6
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/smithy/ts/api/schema.d.js.map +1 -1
- package/src/smithy/ts/api/schema.d.ts +1 -0
- package/src/smithy/ts/api/schema.json +5 -0
- package/src/terraform/project/generator.js +13 -4
- package/src/terraform/project/generator.js.map +1 -1
- package/src/terraform/project/schema.d.js.map +1 -1
- package/src/terraform/project/schema.d.ts +1 -0
- package/src/terraform/project/schema.json +5 -0
- package/src/trpc/backend/generator.d.ts +1 -1
- package/src/trpc/backend/generator.js +9 -5
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +1 -0
- package/src/trpc/backend/schema.json +5 -0
- package/src/trpc/react/generator.d.ts +1 -1
- package/src/trpc/react/generator.js +9 -5
- package/src/trpc/react/generator.js.map +1 -1
- package/src/trpc/react/schema.d.js.map +1 -1
- 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 +2 -2
- package/src/ts/agent/a2a-connection/generator.js +7 -4
- package/src/ts/agent/a2a-connection/generator.js.map +1 -1
- package/src/ts/agent/a2a-connection/schema.d.js.map +1 -1
- 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/generator.js +7 -4
- package/src/ts/agent/gateway-connection/generator.js.map +1 -1
- package/src/ts/agent/gateway-connection/schema.d.js.map +1 -1
- 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 +7 -4
- package/src/ts/agent/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/generator.js +7 -4
- package/src/ts/agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/agent/mcp-connection/schema.d.js.map +1 -1
- 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 +14 -8
- package/src/ts/agent/react-connection/generator.js.map +1 -1
- package/src/ts/agent/react-connection/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/ts/agent/schema.d.ts +1 -0
- package/src/ts/agent/schema.json +5 -0
- package/src/ts/api/generator.js +4 -2
- package/src/ts/api/generator.js.map +1 -1
- package/src/ts/api/schema.d.js.map +1 -1
- package/src/ts/api/schema.d.ts +1 -0
- package/src/ts/api/schema.json +5 -0
- package/src/ts/astro-docs/generator.js +7 -6
- package/src/ts/astro-docs/generator.js.map +1 -1
- package/src/ts/astro-docs/schema.d.js.map +1 -1
- package/src/ts/astro-docs/schema.d.ts +2 -2
- package/src/ts/astro-docs/schema.json +3 -3
- package/src/ts/docs/schema.d.js.map +1 -1
- package/src/ts/docs/schema.d.ts +1 -4
- package/src/ts/docs/schema.json +3 -3
- package/src/ts/dynamodb/agent-connection/schema.d.js.map +1 -1
- 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/generator.js +9 -5
- package/src/ts/dynamodb/generator.js.map +1 -1
- package/src/ts/dynamodb/mcp-server-connection/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/ts/dynamodb/schema.d.ts +1 -0
- package/src/ts/dynamodb/schema.json +5 -0
- package/src/ts/dynamodb/smithy-connection/schema.d.js.map +1 -1
- 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/schema.d.js.map +1 -1
- 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/generator.js +7 -4
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lambda-function/schema.d.js.map +1 -1
- package/src/ts/lambda-function/schema.d.ts +1 -0
- package/src/ts/lambda-function/schema.json +5 -0
- package/src/ts/lib/generator.js +10 -6
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.d.js.map +1 -1
- package/src/ts/lib/schema.d.ts +1 -1
- package/src/ts/lib/schema.json +5 -0
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -2
- package/src/ts/mcp-server/generator.js +7 -4
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.d.js.map +1 -1
- 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 +18 -8
- 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/nx-plugin-for-aws/generator/generator.ts.template +3 -4
- package/src/ts/nx-generator/generator.js +7 -4
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-generator/schema.d.js.map +1 -1
- package/src/ts/nx-generator/schema.d.ts +1 -0
- package/src/ts/nx-generator/schema.json +5 -0
- package/src/ts/nx-plugin/generator.js +13 -6
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/schema.json +5 -0
- package/src/ts/rdb/agent-connection/schema.d.js.map +1 -1
- 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/generator.js +9 -5
- package/src/ts/rdb/generator.js.map +1 -1
- package/src/ts/rdb/mcp-server-connection/schema.d.js.map +1 -1
- 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.map +1 -1
- package/src/ts/rdb/schema.d.ts +1 -0
- package/src/ts/rdb/schema.json +5 -0
- package/src/ts/rdb/smithy-connection/schema.d.js.map +1 -1
- 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/schema.d.js.map +1 -1
- package/src/ts/rdb/trpc-connection/schema.d.ts +1 -0
- package/src/ts/rdb/trpc-connection/schema.json +5 -0
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +26 -26
- package/src/ts/react-website/app/generator.d.ts +1 -1
- package/src/ts/react-website/app/generator.js +18 -6
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/app/schema.d.js.map +1 -1
- package/src/ts/react-website/app/schema.d.ts +1 -1
- package/src/ts/react-website/app/schema.json +5 -0
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.spec.ts.snap +10 -7
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.terraform.spec.ts.snap +1 -1
- package/src/ts/react-website/cognito-auth/generator.d.ts +1 -1
- package/src/ts/react-website/cognito-auth/generator.js +9 -5
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/schema.d.js.map +1 -1
- 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/runtime-config/schema.d.js.map +1 -1
- 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/website/app/schema.d.js.map +1 -1
- package/src/ts/website/app/schema.d.ts +1 -1
- package/src/ts/website/app/schema.json +5 -0
- package/src/ts/website/auth/generator.d.ts +1 -1
- package/src/ts/website/auth/generator.js +2 -1
- package/src/ts/website/auth/generator.js.map +1 -1
- package/src/ts/website/auth/schema.d.js.map +1 -1
- package/src/ts/website/auth/schema.d.ts +1 -0
- package/src/ts/website/auth/schema.json +5 -0
- package/src/utils/files/common/scripts/src/infra/stage-credentials/cdk-command.ts.template +11 -3
- package/src/utils/identity-constructs/files/cdk/core/user-identity.ts.template +10 -7
- 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/versions.d.ts +64 -64
- package/src/utils/versions.js +63 -63
- package/src/utils/versions.js.map +1 -1
|
@@ -6,5 +6,5 @@ import { type Tree } from '@nx/devkit';
|
|
|
6
6
|
import { type NxGeneratorInfo } from '../../../utils/nx';
|
|
7
7
|
import type { TsReactWebsiteAuthGeneratorSchema } from './schema';
|
|
8
8
|
export declare const COGNITO_AUTH_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
-
export declare function tsReactWebsiteAuthGenerator(tree: Tree, options: TsReactWebsiteAuthGeneratorSchema): Promise<() => void
|
|
9
|
+
export declare function tsReactWebsiteAuthGenerator(tree: Tree, options: TsReactWebsiteAuthGeneratorSchema): Promise<() => Promise<void>>;
|
|
10
10
|
export default tsReactWebsiteAuthGenerator;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
3
|
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
-
*/ import { addDependenciesToPackageJson, generateFiles,
|
|
4
|
+
*/ import { addDependenciesToPackageJson, generateFiles, joinPathFragments, OverwriteStrategy } from "@nx/devkit";
|
|
5
5
|
import { readFileSync } from "fs";
|
|
6
6
|
import { join } from "path";
|
|
7
7
|
import { addDestructuredImport, addSingleImport, applyGritQL } from "../../../utils/ast.js";
|
|
@@ -9,6 +9,7 @@ import { addHookResultToRouterProviderContext } from "../../../utils/ast/website
|
|
|
9
9
|
import { formatFilesInSubtree } from "../../../utils/format.js";
|
|
10
10
|
import { resolveIac } from "../../../utils/iac.js";
|
|
11
11
|
import { addIdentityInfra } from "../../../utils/identity-constructs/identity-constructs.js";
|
|
12
|
+
import { installDependencies } from "../../../utils/install.js";
|
|
12
13
|
import { addGeneratorMetricsIfApplicable } from "../../../utils/metrics.js";
|
|
13
14
|
import { getNpmScope } from "../../../utils/npm-scope.js";
|
|
14
15
|
import { addComponentGeneratorMetadata, getGeneratorInfo, readProjectConfigurationUnqualified } from "../../../utils/nx.js";
|
|
@@ -24,7 +25,8 @@ export async function tsReactWebsiteAuthGenerator(tree, options) {
|
|
|
24
25
|
const srcRoot = projectConfig.sourceRoot;
|
|
25
26
|
const cognitoDomain = options.cognitoDomain && options.cognitoDomain.length > 0 ? options.cognitoDomain : deriveCognitoDomainPrefix(getNpmScope(tree), projectConfig.name);
|
|
26
27
|
await runtimeConfigGenerator(tree, {
|
|
27
|
-
project: options.project
|
|
28
|
+
project: options.project,
|
|
29
|
+
preferInstallDependencies: false
|
|
28
30
|
});
|
|
29
31
|
const iac = await resolveIac(tree, options.iac);
|
|
30
32
|
await sharedConstructsGenerator(tree, {
|
|
@@ -83,9 +85,11 @@ export async function tsReactWebsiteAuthGenerator(tree, options) {
|
|
|
83
85
|
COGNITO_AUTH_GENERATOR_INFO
|
|
84
86
|
]);
|
|
85
87
|
await formatFilesInSubtree(tree);
|
|
86
|
-
return ()=>{
|
|
87
|
-
|
|
88
|
-
|
|
88
|
+
return ()=>installDependencies(tree, options.preferInstallDependencies, {
|
|
89
|
+
languages: [
|
|
90
|
+
'typescript'
|
|
91
|
+
]
|
|
92
|
+
});
|
|
89
93
|
}
|
|
90
94
|
export default tsReactWebsiteAuthGenerator;
|
|
91
95
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/cognito-auth/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/cognito-auth/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport {\n addDependenciesToPackageJson,\n generateFiles,\n joinPathFragments,\n OverwriteStrategy,\n type Tree,\n} from '@nx/devkit';\nimport { readFileSync } from 'fs';\nimport { join } from 'path';\nimport {\n addDestructuredImport,\n addSingleImport,\n applyGritQL,\n} from '../../../utils/ast';\nimport { addHookResultToRouterProviderContext } from '../../../utils/ast/website';\nimport { formatFilesInSubtree } from '../../../utils/format';\nimport { resolveIac } from '../../../utils/iac';\nimport { addIdentityInfra } from '../../../utils/identity-constructs/identity-constructs';\nimport { installDependencies } from '../../../utils/install';\nimport { addGeneratorMetricsIfApplicable } from '../../../utils/metrics';\nimport { getNpmScope } from '../../../utils/npm-scope';\nimport {\n addComponentGeneratorMetadata,\n getGeneratorInfo,\n type NxGeneratorInfo,\n readProjectConfigurationUnqualified,\n} from '../../../utils/nx';\nimport { toProjectRelativePath } from '../../../utils/paths';\nimport { sharedConstructsGenerator } from '../../../utils/shared-constructs';\nimport { withVersions } from '../../../utils/versions';\nimport { runtimeConfigGenerator } from '../runtime-config/generator';\nimport type { TsReactWebsiteAuthGeneratorSchema } from './schema';\nimport {\n addCloudscapeAuthMenu,\n addNoneAuthMenu,\n addShadcnAuthMenu,\n deriveCognitoDomainPrefix,\n} from './utils';\n\nconst readGritPattern = (name: string): string =>\n readFileSync(\n join(import.meta.dirname, 'grit', `${name}.grit`),\n 'utf-8',\n ).trim();\n\nexport const COGNITO_AUTH_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport async function tsReactWebsiteAuthGenerator(\n tree: Tree,\n options: TsReactWebsiteAuthGeneratorSchema,\n) {\n const projectConfig = readProjectConfigurationUnqualified(\n tree,\n options.project,\n );\n const srcRoot = projectConfig.sourceRoot;\n\n const cognitoDomain =\n options.cognitoDomain && options.cognitoDomain.length > 0\n ? options.cognitoDomain\n : deriveCognitoDomainPrefix(getNpmScope(tree), projectConfig.name!);\n\n await runtimeConfigGenerator(tree, {\n project: options.project,\n preferInstallDependencies: false,\n });\n\n const iac = await resolveIac(tree, options.iac);\n\n await sharedConstructsGenerator(tree, {\n iac,\n });\n\n await addIdentityInfra(tree, {\n iac,\n allowSignup: options.allowSignup,\n cognitoDomain,\n });\n\n generateFiles(\n tree,\n joinPathFragments(import.meta.dirname, 'files', 'app'),\n srcRoot,\n options,\n {\n overwriteStrategy: OverwriteStrategy.KeepExisting,\n },\n );\n\n addDependenciesToPackageJson(\n tree,\n withVersions(['oidc-client-ts', 'react-oidc-context']),\n {},\n );\n\n const mainTsxPath = joinPathFragments(srcRoot, 'main.tsx');\n\n await addSingleImport(\n tree,\n mainTsxPath,\n 'CognitoAuth',\n './components/CognitoAuth',\n );\n\n await addHookResultToRouterProviderContext(tree, mainTsxPath, {\n hook: 'useAuth',\n module: 'react-oidc-context',\n contextProp: 'auth',\n });\n\n const projectConfiguration = readProjectConfigurationUnqualified(\n tree,\n options.project,\n );\n\n const ux = (\n (projectConfiguration.metadata as any)?.ux ?? 'shadcn'\n ).toLowerCase();\n\n await applyGritQL(tree, mainTsxPath, readGritPattern('cognito-auth-wrapper'));\n // Update App Layout\n const appLayoutTsxPath = joinPathFragments(\n srcRoot,\n 'components',\n 'AppLayout',\n 'index.tsx',\n );\n if (tree.exists(appLayoutTsxPath)) {\n await addDestructuredImport(\n tree,\n appLayoutTsxPath,\n ['useAuth'],\n 'react-oidc-context',\n );\n await applyGritQL(\n tree,\n appLayoutTsxPath,\n readGritPattern('app-layout-use-auth'),\n );\n // TODO: update utils if they exist by appending to the array\n // Add a top-level navigation menu that shows the signed-in user's profile and actions\n switch (ux) {\n case 'cloudscape':\n await addCloudscapeAuthMenu(tree, appLayoutTsxPath);\n break;\n case 'shadcn':\n await addShadcnAuthMenu(tree, appLayoutTsxPath);\n break;\n case 'none':\n await addNoneAuthMenu(tree, appLayoutTsxPath);\n break;\n default:\n throw new Error(\n `Top-level navigation menu to show the signed-in user for ux \"${ux}\" is not implemented.`,\n );\n }\n } else {\n console.info(\n `Skipping update to ${appLayoutTsxPath} as it does not exist.`,\n );\n }\n // End update App Layout\n\n addComponentGeneratorMetadata(\n tree,\n options.project,\n COGNITO_AUTH_GENERATOR_INFO,\n toProjectRelativePath(\n projectConfig,\n joinPathFragments(srcRoot, 'components', 'CognitoAuth'),\n ),\n );\n\n await addGeneratorMetricsIfApplicable(tree, [COGNITO_AUTH_GENERATOR_INFO]);\n\n await formatFilesInSubtree(tree);\n return () =>\n installDependencies(tree, options.preferInstallDependencies, {\n languages: ['typescript'],\n });\n}\nexport default tsReactWebsiteAuthGenerator;\n"],"names":["addDependenciesToPackageJson","generateFiles","joinPathFragments","OverwriteStrategy","readFileSync","join","addDestructuredImport","addSingleImport","applyGritQL","addHookResultToRouterProviderContext","formatFilesInSubtree","resolveIac","addIdentityInfra","installDependencies","addGeneratorMetricsIfApplicable","getNpmScope","addComponentGeneratorMetadata","getGeneratorInfo","readProjectConfigurationUnqualified","toProjectRelativePath","sharedConstructsGenerator","withVersions","runtimeConfigGenerator","addCloudscapeAuthMenu","addNoneAuthMenu","addShadcnAuthMenu","deriveCognitoDomainPrefix","readGritPattern","name","dirname","trim","COGNITO_AUTH_GENERATOR_INFO","filename","tsReactWebsiteAuthGenerator","tree","options","projectConfig","project","srcRoot","sourceRoot","cognitoDomain","length","preferInstallDependencies","iac","allowSignup","overwriteStrategy","KeepExisting","mainTsxPath","hook","module","contextProp","projectConfiguration","ux","metadata","toLowerCase","appLayoutTsxPath","exists","Error","console","info","languages"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/cognito-auth/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IacOption } from '../../../utils/iac';\n\nexport interface TsReactWebsiteAuthGeneratorSchema {\n project: string;\n allowSignup: boolean;\n cognitoDomain?: string;\n iac: IacOption;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAID,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/cognito-auth/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { IacOption } from '../../../utils/iac';\n\nexport interface TsReactWebsiteAuthGeneratorSchema {\n project: string;\n allowSignup: boolean;\n cognitoDomain?: string;\n iac: IacOption;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAID,WAMC"}
|
|
@@ -44,6 +44,11 @@
|
|
|
44
44
|
"x-priority": "important",
|
|
45
45
|
"default": "inherit",
|
|
46
46
|
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
47
|
+
},
|
|
48
|
+
"preferInstallDependencies": {
|
|
49
|
+
"type": "boolean",
|
|
50
|
+
"description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
|
|
51
|
+
"default": true
|
|
47
52
|
}
|
|
48
53
|
},
|
|
49
54
|
"required": ["project"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/runtime-config/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nexport interface RuntimeConfigGeneratorSchema {\n project: string;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GACD,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/react-website/runtime-config/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nexport interface RuntimeConfigGeneratorSchema {\n project: string;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GACD,WAGC"}
|
|
@@ -13,6 +13,11 @@
|
|
|
13
13
|
"x-priority": "important",
|
|
14
14
|
"x-prompt": "the project to target",
|
|
15
15
|
"x-dropdown": "projects"
|
|
16
|
+
},
|
|
17
|
+
"preferInstallDependencies": {
|
|
18
|
+
"type": "boolean",
|
|
19
|
+
"description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
|
|
20
|
+
"default": true
|
|
16
21
|
}
|
|
17
22
|
},
|
|
18
23
|
"required": ["project"]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/website/app/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../../utils/iac';\nimport { UxOption } from '../../react-website/app/generator';\n\nexport type WebsiteFramework = 'react';\nexport type WebsiteInfraOption = 'cloudfront-s3' | 'none';\n\nexport interface TsWebsiteGeneratorSchema {\n name: string;\n framework?: WebsiteFramework;\n directory?: string;\n subDirectory?: string;\n
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/website/app/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../../utils/iac';\nimport { UxOption } from '../../react-website/app/generator';\n\nexport type WebsiteFramework = 'react';\nexport type WebsiteInfraOption = 'cloudfront-s3' | 'none';\n\nexport interface TsWebsiteGeneratorSchema {\n name: string;\n framework?: WebsiteFramework;\n directory?: string;\n subDirectory?: string;\n tanstackRouter?: boolean;\n tailwind?: boolean;\n ux?: UxOption;\n infra?: WebsiteInfraOption;\n iac: IacOption;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAOD,WAWC"}
|
|
@@ -13,10 +13,10 @@ export interface TsWebsiteGeneratorSchema {
|
|
|
13
13
|
framework?: WebsiteFramework;
|
|
14
14
|
directory?: string;
|
|
15
15
|
subDirectory?: string;
|
|
16
|
-
skipInstall?: boolean;
|
|
17
16
|
tanstackRouter?: boolean;
|
|
18
17
|
tailwind?: boolean;
|
|
19
18
|
ux?: UxOption;
|
|
20
19
|
infra?: WebsiteInfraOption;
|
|
21
20
|
iac: IacOption;
|
|
21
|
+
preferInstallDependencies?: boolean;
|
|
22
22
|
}
|
|
@@ -98,6 +98,11 @@
|
|
|
98
98
|
"x-priority": "important",
|
|
99
99
|
"default": "inherit",
|
|
100
100
|
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
101
|
+
},
|
|
102
|
+
"preferInstallDependencies": {
|
|
103
|
+
"type": "boolean",
|
|
104
|
+
"description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
|
|
105
|
+
"default": true
|
|
101
106
|
}
|
|
102
107
|
},
|
|
103
108
|
"required": ["name"],
|
|
@@ -6,5 +6,5 @@ import type { Tree } from '@nx/devkit';
|
|
|
6
6
|
import { type NxGeneratorInfo } from '../../../utils/nx';
|
|
7
7
|
import type { TsWebsiteAuthGeneratorSchema } from './schema';
|
|
8
8
|
export declare const TS_WEBSITE_AUTH_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
-
export declare function tsWebsiteAuthGenerator(tree: Tree, schema: TsWebsiteAuthGeneratorSchema): Promise<() => void
|
|
9
|
+
export declare function tsWebsiteAuthGenerator(tree: Tree, schema: TsWebsiteAuthGeneratorSchema): Promise<() => Promise<void>>;
|
|
10
10
|
export default tsWebsiteAuthGenerator;
|
|
@@ -9,7 +9,8 @@ export async function tsWebsiteAuthGenerator(tree, schema) {
|
|
|
9
9
|
project: schema.project,
|
|
10
10
|
allowSignup: schema.allowSignup,
|
|
11
11
|
cognitoDomain: schema.cognitoDomain,
|
|
12
|
-
iac: schema.iac
|
|
12
|
+
iac: schema.iac,
|
|
13
|
+
preferInstallDependencies: schema.preferInstallDependencies
|
|
13
14
|
});
|
|
14
15
|
}
|
|
15
16
|
export default tsWebsiteAuthGenerator;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/website/auth/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Tree } from '@nx/devkit';\nimport { getGeneratorInfo, type NxGeneratorInfo } from '../../../utils/nx';\nimport { tsReactWebsiteAuthGenerator } from '../../react-website/cognito-auth/generator';\nimport type { TsWebsiteAuthGeneratorSchema } from './schema';\n\nexport const TS_WEBSITE_AUTH_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport async function tsWebsiteAuthGenerator(\n tree: Tree,\n schema: TsWebsiteAuthGeneratorSchema,\n) {\n return tsReactWebsiteAuthGenerator(tree, {\n project: schema.project,\n allowSignup: schema.allowSignup,\n cognitoDomain: schema.cognitoDomain,\n iac: schema.iac,\n });\n}\n\nexport default tsWebsiteAuthGenerator;\n"],"names":["getGeneratorInfo","tsReactWebsiteAuthGenerator","TS_WEBSITE_AUTH_GENERATOR_INFO","filename","tsWebsiteAuthGenerator","tree","schema","project","allowSignup","cognitoDomain","iac"],"mappings":"AAAA;;;CAGC,GAED,SAASA,gBAAgB,QAA8B,uBAAoB;AAC3E,SAASC,2BAA2B,QAAQ,gDAA6C;AAGzF,OAAO,MAAMC,iCAAkDF,iBAC7D,YAAYG,QAAQ,EACpB;AAEF,OAAO,eAAeC,uBACpBC,IAAU,EACVC,MAAoC;IAEpC,OAAOL,4BAA4BI,MAAM;QACvCE,SAASD,OAAOC,OAAO;QACvBC,aAAaF,OAAOE,WAAW;QAC/BC,eAAeH,OAAOG,aAAa;QACnCC,KAAKJ,OAAOI,GAAG;
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/website/auth/generator.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport type { Tree } from '@nx/devkit';\nimport { getGeneratorInfo, type NxGeneratorInfo } from '../../../utils/nx';\nimport { tsReactWebsiteAuthGenerator } from '../../react-website/cognito-auth/generator';\nimport type { TsWebsiteAuthGeneratorSchema } from './schema';\n\nexport const TS_WEBSITE_AUTH_GENERATOR_INFO: NxGeneratorInfo = getGeneratorInfo(\n import.meta.filename,\n);\n\nexport async function tsWebsiteAuthGenerator(\n tree: Tree,\n schema: TsWebsiteAuthGeneratorSchema,\n) {\n return tsReactWebsiteAuthGenerator(tree, {\n project: schema.project,\n allowSignup: schema.allowSignup,\n cognitoDomain: schema.cognitoDomain,\n iac: schema.iac,\n preferInstallDependencies: schema.preferInstallDependencies,\n });\n}\n\nexport default tsWebsiteAuthGenerator;\n"],"names":["getGeneratorInfo","tsReactWebsiteAuthGenerator","TS_WEBSITE_AUTH_GENERATOR_INFO","filename","tsWebsiteAuthGenerator","tree","schema","project","allowSignup","cognitoDomain","iac","preferInstallDependencies"],"mappings":"AAAA;;;CAGC,GAED,SAASA,gBAAgB,QAA8B,uBAAoB;AAC3E,SAASC,2BAA2B,QAAQ,gDAA6C;AAGzF,OAAO,MAAMC,iCAAkDF,iBAC7D,YAAYG,QAAQ,EACpB;AAEF,OAAO,eAAeC,uBACpBC,IAAU,EACVC,MAAoC;IAEpC,OAAOL,4BAA4BI,MAAM;QACvCE,SAASD,OAAOC,OAAO;QACvBC,aAAaF,OAAOE,WAAW;QAC/BC,eAAeH,OAAOG,aAAa;QACnCC,KAAKJ,OAAOI,GAAG;QACfC,2BAA2BL,OAAOK,yBAAyB;IAC7D;AACF;AAEA,eAAeP,uBAAuB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/website/auth/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../../utils/iac';\n\nexport interface TsWebsiteAuthGeneratorSchema {\n project: string;\n allowSignup: boolean;\n cognitoDomain?: string;\n iac: IacOption;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD,
|
|
1
|
+
{"version":3,"sources":["../../../../../../../packages/nx-plugin/src/ts/website/auth/schema.d.ts"],"sourcesContent":["/**\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nimport { IacOption } from '../../../utils/iac';\n\nexport interface TsWebsiteAuthGeneratorSchema {\n project: string;\n allowSignup: boolean;\n cognitoDomain?: string;\n iac: IacOption;\n preferInstallDependencies?: boolean;\n}\n"],"names":[],"mappings":"AAAA;;;CAGC,GAGD,WAMC"}
|
|
@@ -40,6 +40,11 @@
|
|
|
40
40
|
"x-priority": "important",
|
|
41
41
|
"default": "inherit",
|
|
42
42
|
"x-prompt": "Which provider would you like to manage your infrastructure? (default: inherit)"
|
|
43
|
+
},
|
|
44
|
+
"preferInstallDependencies": {
|
|
45
|
+
"type": "boolean",
|
|
46
|
+
"description": "Whether to prefer installing dependencies after the generator runs. Set to false to defer installing when batching multiple generators (an install still runs if needed so subsequent generators can compute the Nx project graph); install once at the end.",
|
|
47
|
+
"default": true
|
|
43
48
|
}
|
|
44
49
|
},
|
|
45
50
|
"required": ["project"]
|
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
* Defaults to --require-approval=never (standard for local dev deploys).
|
|
5
5
|
* If the user explicitly passes --require-approval with any value, we
|
|
6
6
|
* respect their choice and don't add the default.
|
|
7
|
+
*
|
|
8
|
+
* Deploys default to --express (CloudFormation express mode) for faster
|
|
9
|
+
* local iteration. Pass --no-express to opt out.
|
|
7
10
|
*/
|
|
8
11
|
export function buildCdkCommand(
|
|
9
12
|
action: string,
|
|
@@ -12,7 +15,12 @@ export function buildCdkCommand(
|
|
|
12
15
|
const hasRequireApproval = remainingArgs.some(
|
|
13
16
|
(a) => a === '--require-approval' || a.startsWith('--require-approval='),
|
|
14
17
|
);
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
+
const hasExpressFlag = remainingArgs.some(
|
|
19
|
+
(a) => a === '--express' || a === '--no-express',
|
|
20
|
+
);
|
|
21
|
+
const defaults = [
|
|
22
|
+
...(hasRequireApproval ? [] : ['--require-approval=never']),
|
|
23
|
+
...(action === 'deploy' && !hasExpressFlag ? ['--express'] : []),
|
|
24
|
+
];
|
|
25
|
+
return ['cdk', action, ...defaults, ...remainingArgs];
|
|
18
26
|
}
|
|
@@ -13,13 +13,14 @@ import {
|
|
|
13
13
|
import {
|
|
14
14
|
AccountRecovery,
|
|
15
15
|
CfnManagedLoginBranding,
|
|
16
|
-
CfnUserPoolDomain,
|
|
17
16
|
FeaturePlan,
|
|
17
|
+
ManagedLoginVersion,
|
|
18
18
|
Mfa,
|
|
19
19
|
OAuthScope,
|
|
20
20
|
StandardThreatProtectionMode,
|
|
21
21
|
UserPool,
|
|
22
22
|
UserPoolClient,
|
|
23
|
+
UserPoolDomain,
|
|
23
24
|
} from 'aws-cdk-lib/aws-cognito';
|
|
24
25
|
import {
|
|
25
26
|
CfnLoggingConfiguration,
|
|
@@ -53,7 +54,7 @@ export class UserIdentity extends Construct {
|
|
|
53
54
|
public readonly identityPool: IdentityPool;
|
|
54
55
|
public readonly userPool: UserPool;
|
|
55
56
|
public readonly userPoolClient: UserPoolClient;
|
|
56
|
-
public readonly userPoolDomain:
|
|
57
|
+
public readonly userPoolDomain: UserPoolDomain;
|
|
57
58
|
|
|
58
59
|
/** The WAFv2 Web ACL associated with the user pool, if WAF is enabled */
|
|
59
60
|
public readonly webAcl?: CfnWebACL;
|
|
@@ -229,10 +230,12 @@ export class UserIdentity extends Construct {
|
|
|
229
230
|
};
|
|
230
231
|
|
|
231
232
|
private createUserPoolDomain = (userPool: UserPool) =>
|
|
232
|
-
new
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
233
|
+
new UserPoolDomain(this, 'UserPoolDomain', {
|
|
234
|
+
userPool,
|
|
235
|
+
cognitoDomain: {
|
|
236
|
+
domainPrefix: `<%= cognitoDomain %>-${Stack.of(this).account}`,
|
|
237
|
+
},
|
|
238
|
+
managedLoginVersion: ManagedLoginVersion.NEWER_MANAGED_LOGIN,
|
|
236
239
|
});
|
|
237
240
|
|
|
238
241
|
private createUserPoolClient = (userPool: UserPool) => {
|
|
@@ -282,7 +285,7 @@ export class UserIdentity extends Construct {
|
|
|
282
285
|
private createManagedLoginBranding = (
|
|
283
286
|
userPool: UserPool,
|
|
284
287
|
userPoolClient: UserPoolClient,
|
|
285
|
-
userPoolDomain:
|
|
288
|
+
userPoolDomain: UserPoolDomain
|
|
286
289
|
) => {
|
|
287
290
|
new CfnManagedLoginBranding(this, 'ManagedLoginBranding', {
|
|
288
291
|
userPoolId: userPool.userPoolId,
|
|
@@ -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"}
|