@aws/nx-plugin 0.88.1 → 0.90.0
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 +688 -54
- package/bin/aws-nx-mcp.js +3 -4
- package/bin/aws-nx-mcp.js.map +1 -1
- package/package.json +2 -2
- package/sdk/utils/ast.d.ts +2 -1
- package/sdk/utils/ast.js +4 -2
- package/sdk/utils/ast.js.map +1 -1
- package/src/connection/generator.js +20 -26
- package/src/connection/generator.js.map +1 -1
- package/src/connection/serve-local.js +7 -9
- package/src/connection/serve-local.js.map +1 -1
- package/src/infra/app/generator.js +152 -143
- package/src/infra/app/generator.js.map +1 -1
- package/src/license/config.js +90 -79
- package/src/license/config.js.map +1 -1
- package/src/license/generator.js +20 -15
- package/src/license/generator.js.map +1 -1
- package/src/license/sync/generator.js +71 -77
- package/src/license/sync/generator.js.map +1 -1
- package/src/license/sync/project-file-sync.js +13 -6
- package/src/license/sync/project-file-sync.js.map +1 -1
- package/src/mcp-server/generator-info.js +28 -34
- package/src/mcp-server/generator-info.js.map +1 -1
- package/src/mcp-server/index.js +3 -4
- package/src/mcp-server/index.js.map +1 -1
- package/src/mcp-server/tools/general-guidance.js +8 -11
- package/src/mcp-server/tools/general-guidance.js.map +1 -1
- package/src/mcp-server/tools/generator-guide.js +3 -4
- package/src/mcp-server/tools/generator-guide.js.map +1 -1
- package/src/open-api/ts-client/generator.js +8 -8
- package/src/open-api/ts-client/generator.js.map +1 -1
- package/src/open-api/ts-hooks/generator.js +4 -4
- package/src/open-api/ts-hooks/generator.js.map +1 -1
- package/src/open-api/ts-metadata/generator.js +4 -4
- package/src/open-api/ts-metadata/generator.js.map +1 -1
- package/src/open-api/utils/codegen-data/languages.js +1 -2
- package/src/open-api/utils/codegen-data/languages.js.map +1 -1
- package/src/open-api/utils/codegen-data.js +90 -92
- package/src/open-api/utils/codegen-data.js.map +1 -1
- package/src/open-api/utils/normalise.js +34 -34
- package/src/open-api/utils/normalise.js.map +1 -1
- package/src/open-api/utils/parse.js +3 -3
- package/src/open-api/utils/parse.js.map +1 -1
- package/src/open-api/utils/refs.js +1 -1
- package/src/open-api/utils/refs.js.map +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -1
- package/src/preset/generator.js +51 -24
- package/src/preset/generator.js.map +1 -1
- package/src/py/fast-api/generator.js +18 -13
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/generator.js +8 -10
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/open-api.js +15 -7
- package/src/py/fast-api/react/open-api.js.map +1 -1
- package/src/py/lambda-function/generator.js +18 -16
- package/src/py/lambda-function/generator.js.map +1 -1
- package/src/py/mcp-server/generator.js +36 -24
- package/src/py/mcp-server/generator.js.map +1 -1
- package/src/py/project/generator.js +36 -24
- package/src/py/project/generator.js.map +1 -1
- package/src/py/strands-agent/generator.js +21 -16
- package/src/py/strands-agent/generator.js.map +1 -1
- package/src/py/strands-agent/mcp-connection/generator.js +30 -32
- package/src/py/strands-agent/mcp-connection/generator.js.map +1 -1
- package/src/smithy/project/generator.js +6 -8
- package/src/smithy/project/generator.js.map +1 -1
- package/src/smithy/react-connection/generator.js +14 -17
- package/src/smithy/react-connection/generator.js.map +1 -1
- package/src/smithy/ts/api/generator.js +19 -13
- package/src/smithy/ts/api/generator.js.map +1 -1
- package/src/terraform/project/generator.js +191 -189
- package/src/terraform/project/generator.js.map +1 -1
- package/src/trpc/backend/generator.js +95 -83
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +12 -9
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +1 -1
- package/src/trpc/react/files/src/hooks/use__apiNameClassName__.tsx.template +3 -3
- package/src/trpc/react/generator.js +75 -76
- package/src/trpc/react/generator.js.map +1 -1
- package/src/ts/lambda-function/generator.js +16 -13
- package/src/ts/lambda-function/generator.js.map +1 -1
- package/src/ts/lib/eslint.d.ts +1 -1
- package/src/ts/lib/eslint.js +42 -44
- package/src/ts/lib/eslint.js.map +1 -1
- package/src/ts/lib/generator.js +48 -26
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/grit/eslint-dependency-checks-warn.grit +1 -0
- package/src/ts/lib/grit/vitest-pass-with-no-tests.grit +7 -0
- package/src/ts/lib/ts-project-utils.js +54 -31
- package/src/ts/lib/ts-project-utils.js.map +1 -1
- package/src/ts/lib/vitest.d.ts +1 -1
- package/src/ts/lib/vitest.js +17 -19
- package/src/ts/lib/vitest.js.map +1 -1
- package/src/ts/mcp-server/generator.js +23 -18
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/nx-generator/generator.js +40 -22
- package/src/ts/nx-generator/generator.js.map +1 -1
- package/src/ts/nx-plugin/generator.js +14 -11
- package/src/ts/nx-plugin/generator.js.map +1 -1
- package/src/ts/nx-plugin/utils.js +11 -10
- package/src/ts/nx-plugin/utils.js.map +1 -1
- package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +33 -23
- package/src/ts/react-website/app/generator.js +257 -255
- package/src/ts/react-website/app/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/__snapshots__/generator.ux-provider.spec.ts.snap +5 -7
- package/src/ts/react-website/cognito-auth/generator.js +68 -92
- package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
- package/src/ts/react-website/cognito-auth/grit/app-layout-use-auth.grit +10 -0
- package/src/ts/react-website/cognito-auth/grit/cognito-auth-wrapper.grit +3 -0
- package/src/ts/react-website/cognito-auth/utils.js +14 -21
- package/src/ts/react-website/cognito-auth/utils.js.map +1 -1
- package/src/ts/react-website/runtime-config/generator.js +35 -34
- package/src/ts/react-website/runtime-config/generator.js.map +1 -1
- package/src/ts/strands-agent/generator.js +19 -14
- package/src/ts/strands-agent/generator.js.map +1 -1
- package/src/ts/strands-agent/mcp-connection/generator.js +15 -17
- package/src/ts/strands-agent/mcp-connection/generator.js.map +1 -1
- package/src/ts/sync/generator.js +36 -14
- package/src/ts/sync/generator.js.map +1 -1
- package/src/utils/agent-connection/agent-connection.js +62 -68
- package/src/utils/agent-connection/agent-connection.js.map +1 -1
- package/src/utils/agent-core-constructs/agent-core-constructs.js +14 -16
- package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
- package/src/utils/api-constructs/api-constructs.js +8 -10
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/open-api-metadata.js +1 -2
- package/src/utils/api-constructs/open-api-metadata.js.map +1 -1
- package/src/utils/ast/website.js +66 -124
- package/src/utils/ast/website.js.map +1 -1
- package/src/utils/ast.d.ts +2 -2
- package/src/utils/ast.js +23 -26
- package/src/utils/ast.js.map +1 -1
- package/src/utils/bundle/bundle.d.ts +1 -1
- package/src/utils/bundle/bundle.js +37 -82
- package/src/utils/bundle/bundle.js.map +1 -1
- package/src/utils/config/utils.js +9 -9
- package/src/utils/config/utils.js.map +1 -1
- package/src/utils/connection/open-api/react.js +28 -23
- package/src/utils/connection/open-api/react.js.map +1 -1
- package/src/utils/format.js +50 -47
- package/src/utils/format.js.map +1 -1
- package/src/utils/fs.js +1 -0
- package/src/utils/fs.js.map +1 -1
- package/src/utils/function-constructs/function-constructs.js +16 -12
- package/src/utils/function-constructs/function-constructs.js.map +1 -1
- package/src/utils/git.js +2 -3
- package/src/utils/git.js.map +1 -1
- package/src/utils/iac.js +4 -6
- package/src/utils/iac.js.map +1 -1
- package/src/utils/identity-constructs/identity-constructs.js +6 -7
- package/src/utils/identity-constructs/identity-constructs.js.map +1 -1
- package/src/utils/js.js +7 -8
- package/src/utils/js.js.map +1 -1
- package/src/utils/metrics.js +12 -13
- package/src/utils/metrics.js.map +1 -1
- package/src/utils/mock-project-graph.js +3 -6
- package/src/utils/mock-project-graph.js.map +1 -1
- package/src/utils/names.js +8 -3
- package/src/utils/names.js.map +1 -1
- package/src/utils/npm-scope.js +1 -1
- package/src/utils/npm-scope.js.map +1 -1
- package/src/utils/nx.js +42 -19
- package/src/utils/nx.js.map +1 -1
- package/src/utils/nxlv-python.d.ts +124 -5
- package/src/utils/nxlv-python.js +5 -14
- package/src/utils/nxlv-python.js.map +1 -1
- package/src/utils/pkg-manager.js +1 -1
- package/src/utils/pkg-manager.js.map +1 -1
- package/src/utils/port.js +4 -6
- package/src/utils/port.js.map +1 -1
- package/src/utils/py.js +12 -12
- package/src/utils/py.js.map +1 -1
- package/src/utils/shared-constructs.js +67 -72
- package/src/utils/shared-constructs.js.map +1 -1
- package/src/utils/shared-infra-config.js +24 -26
- package/src/utils/shared-infra-config.js.map +1 -1
- package/src/utils/shared-scripts.js +24 -26
- package/src/utils/shared-scripts.js.map +1 -1
- package/src/utils/shared-shadcn.js +71 -67
- package/src/utils/shared-shadcn.js.map +1 -1
- package/src/utils/versions.d.ts +5 -1
- package/src/utils/versions.js +8 -4
- package/src/utils/versions.js.map +1 -1
- package/src/utils/website-constructs/website-constructs.js +9 -11
- package/src/utils/website-constructs/website-constructs.js.map +1 -1
- package/src/utils/bundle/__snapshots__/bundle.spec.ts.snap +0 -46
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.tsStrandsAgentMcpConnectionGenerator = exports.TS_STRANDS_AGENT_MCP_CONNECTION_GENERATOR_INFO = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -16,8 +15,7 @@ const npm_scope_1 = require("../../../utils/npm-scope");
|
|
|
16
15
|
const ast_1 = require("../../../utils/ast");
|
|
17
16
|
const agent_connection_1 = require("../../../utils/agent-connection/agent-connection");
|
|
18
17
|
exports.TS_STRANDS_AGENT_MCP_CONNECTION_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
19
|
-
const tsStrandsAgentMcpConnectionGenerator = (tree, options) =>
|
|
20
|
-
var _a, _b, _c, _d, _e, _f;
|
|
18
|
+
const tsStrandsAgentMcpConnectionGenerator = async (tree, options) => {
|
|
21
19
|
const sourceProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
|
|
22
20
|
const targetProject = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
|
|
23
21
|
const agentComponent = options.sourceComponent;
|
|
@@ -25,13 +23,13 @@ const tsStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
25
23
|
if (!agentComponent || !mcpComponent) {
|
|
26
24
|
throw new Error('Both sourceComponent and targetComponent must be provided for ts#strands-agent -> mcp connections');
|
|
27
25
|
}
|
|
28
|
-
const mcpComponentName =
|
|
26
|
+
const mcpComponentName = mcpComponent.name ?? 'mcp-server';
|
|
29
27
|
const mcpServerClassName = mcpComponent.rc;
|
|
30
28
|
const mcpServerKebabCase = (0, names_1.kebabCase)(mcpServerClassName);
|
|
31
|
-
const mcpServerPort =
|
|
29
|
+
const mcpServerPort = mcpComponent.port ?? 8000;
|
|
32
30
|
const npmScope = (0, npm_scope_1.getNpmScope)(tree);
|
|
33
31
|
// 1. Ensure the shared agent-connection project exists
|
|
34
|
-
|
|
32
|
+
await (0, agent_connection_1.ensureTypeScriptAgentConnectionProject)(tree);
|
|
35
33
|
// 2. Generate the per-connection <Name>Client into app/
|
|
36
34
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'agent-connection', 'app'), (0, devkit_1.joinPathFragments)(agent_connection_1.AGENT_CONNECTION_PROJECT_DIR, 'src', 'app'), {
|
|
37
35
|
mcpServerKebabCase,
|
|
@@ -39,20 +37,20 @@ const tsStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
39
37
|
mcpServerPort,
|
|
40
38
|
}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
41
39
|
// Add re-export to index.ts
|
|
42
|
-
|
|
40
|
+
await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(agent_connection_1.AGENT_CONNECTION_PROJECT_DIR, 'src', 'index.ts'), `./app/${mcpServerKebabCase}-client.js`);
|
|
43
41
|
// 3. AST transform agent.ts to add MCP tools
|
|
44
|
-
const agentSourceDir = (0, devkit_1.joinPathFragments)(sourceProject.root,
|
|
42
|
+
const agentSourceDir = (0, devkit_1.joinPathFragments)(sourceProject.root, agentComponent.path ?? 'src');
|
|
45
43
|
const agentFilePath = (0, devkit_1.joinPathFragments)(agentSourceDir, 'agent.ts');
|
|
46
44
|
if (tree.exists(agentFilePath)) {
|
|
47
45
|
const clientClassName = `${mcpServerClassName}Client`;
|
|
48
46
|
const clientVarName = mcpServerClassName.charAt(0).toLowerCase() + mcpServerClassName.slice(1);
|
|
49
47
|
// Add import for the client
|
|
50
|
-
|
|
48
|
+
await (0, ast_1.addDestructuredImport)(tree, agentFilePath, [clientClassName], `:${npmScope}/agent-connection`);
|
|
51
49
|
const clientCreationStmt = `const ${clientVarName} = await ${clientClassName}.create(sessionId);`;
|
|
52
50
|
// Transform the arrow function that contains `new Agent`:
|
|
53
51
|
// - Expression body: wrap in block with client creation and return
|
|
54
52
|
// - Block body: prepend client creation statement
|
|
55
|
-
|
|
53
|
+
await (0, ast_1.applyGritQL)(tree, agentFilePath, `or { \`async ($p) => new Agent($args)\` => raw\`async ($p) => {
|
|
56
54
|
${clientCreationStmt}
|
|
57
55
|
return new Agent($args);
|
|
58
56
|
}\` where { $program <: not contains \`${clientClassName}.create\` }, \`async ($p) => { $body }\` => raw\`async ($p) => {
|
|
@@ -60,16 +58,16 @@ const tsStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
60
58
|
$body
|
|
61
59
|
}\` where { $body <: contains \`new Agent($_)\`, $program <: not contains \`${clientClassName}.create\` } }`);
|
|
62
60
|
// Prepend client to the tools array
|
|
63
|
-
|
|
61
|
+
await (0, ast_1.applyGritQL)(tree, agentFilePath, `\`tools: [$items]\` => \`tools: [${clientVarName}, $items]\` where { $items <: within \`new Agent($_)\`, $items <: not contains \`${clientVarName}\` }`);
|
|
64
62
|
}
|
|
65
63
|
// 4. Set up serve-local target
|
|
66
|
-
const agentName =
|
|
64
|
+
const agentName = agentComponent.name ?? 'agent';
|
|
67
65
|
const serveLocalTargetName = `${agentName}-serve-local`;
|
|
68
66
|
const mcpServeLocalTargetName = `${mcpComponentName}-serve-local`;
|
|
69
|
-
if (
|
|
67
|
+
if (sourceProject.targets?.[serveLocalTargetName]) {
|
|
70
68
|
const target = sourceProject.targets[serveLocalTargetName];
|
|
71
69
|
target.dependsOn = [
|
|
72
|
-
...(
|
|
70
|
+
...(target.dependsOn ?? []),
|
|
73
71
|
{
|
|
74
72
|
projects: [targetProject.name],
|
|
75
73
|
target: mcpServeLocalTargetName,
|
|
@@ -85,14 +83,14 @@ const tsStrandsAgentMcpConnectionGenerator = (tree, options) => tslib_1.__awaite
|
|
|
85
83
|
'aws4fetch',
|
|
86
84
|
'@aws-sdk/credential-providers',
|
|
87
85
|
]), {});
|
|
88
|
-
|
|
86
|
+
await (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [
|
|
89
87
|
exports.TS_STRANDS_AGENT_MCP_CONNECTION_GENERATOR_INFO,
|
|
90
88
|
]);
|
|
91
|
-
|
|
89
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
92
90
|
return () => {
|
|
93
91
|
(0, devkit_1.installPackagesTask)(tree);
|
|
94
92
|
};
|
|
95
|
-
}
|
|
93
|
+
};
|
|
96
94
|
exports.tsStrandsAgentMcpConnectionGenerator = tsStrandsAgentMcpConnectionGenerator;
|
|
97
95
|
exports.default = exports.tsStrandsAgentMcpConnectionGenerator;
|
|
98
96
|
//# sourceMappingURL=generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../../packages/nx-plugin/src/ts/strands-agent/mcp-connection/generator.ts"],"names":[],"mappings":"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"}
|
package/src/ts/sync/generator.js
CHANGED
|
@@ -7,12 +7,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.tsSyncGeneratorGenerator = exports.SYNC_GENERATOR_NAME = exports.TS_SYNC_GENERATOR_INFO = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
9
|
const devkit_1 = require("@nx/devkit");
|
|
10
|
+
const path_1 = require("path");
|
|
10
11
|
const nx_1 = require("../../utils/nx");
|
|
11
12
|
const format_1 = require("../../utils/format");
|
|
12
13
|
const package_json_1 = tslib_1.__importDefault(require("../../../package.json"));
|
|
13
14
|
exports.TS_SYNC_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
14
15
|
exports.SYNC_GENERATOR_NAME = `${package_json_1.default.name}:${exports.TS_SYNC_GENERATOR_INFO.id}`;
|
|
15
|
-
const tsSyncGeneratorGenerator = (tree) =>
|
|
16
|
+
const tsSyncGeneratorGenerator = async (tree) => {
|
|
16
17
|
const basePaths = readBaseTsConfigPaths(tree);
|
|
17
18
|
if (!basePaths) {
|
|
18
19
|
return {};
|
|
@@ -28,7 +29,7 @@ const tsSyncGeneratorGenerator = (tree) => tslib_1.__awaiter(void 0, void 0, voi
|
|
|
28
29
|
if (!tree.exists(tsConfigPath)) {
|
|
29
30
|
continue;
|
|
30
31
|
}
|
|
31
|
-
const { changes, updated } = syncPathsWithBase(tree, tsConfigPath, basePaths);
|
|
32
|
+
const { changes, updated } = syncPathsWithBase(tree, tsConfigPath, basePaths, project.root);
|
|
32
33
|
if (updated) {
|
|
33
34
|
changesByConfigFile[tsConfigPath] = changes;
|
|
34
35
|
}
|
|
@@ -37,21 +38,20 @@ const tsSyncGeneratorGenerator = (tree) => tslib_1.__awaiter(void 0, void 0, voi
|
|
|
37
38
|
if (Object.keys(changesByConfigFile).length === 0) {
|
|
38
39
|
return {};
|
|
39
40
|
}
|
|
40
|
-
|
|
41
|
+
await (0, format_1.formatFilesInSubtree)(tree);
|
|
41
42
|
return {
|
|
42
43
|
outOfSyncMessage: buildOutOfSyncMessage(changesByConfigFile),
|
|
43
44
|
};
|
|
44
|
-
}
|
|
45
|
+
};
|
|
45
46
|
exports.tsSyncGeneratorGenerator = tsSyncGeneratorGenerator;
|
|
46
47
|
exports.default = exports.tsSyncGeneratorGenerator;
|
|
47
48
|
const readBaseTsConfigPaths = (tree) => {
|
|
48
|
-
var _a, _b;
|
|
49
49
|
const baseConfigPath = ['tsconfig.base.json', 'tsconfig.json'].find((path) => tree.exists(path));
|
|
50
50
|
if (!baseConfigPath) {
|
|
51
51
|
return undefined;
|
|
52
52
|
}
|
|
53
53
|
const baseConfigJson = (0, devkit_1.readJson)(tree, baseConfigPath);
|
|
54
|
-
return
|
|
54
|
+
return baseConfigJson?.compilerOptions?.paths ?? {};
|
|
55
55
|
};
|
|
56
56
|
const arePathArraysEqual = (first, second) => {
|
|
57
57
|
if (first.length !== second.length) {
|
|
@@ -59,31 +59,53 @@ const arePathArraysEqual = (first, second) => {
|
|
|
59
59
|
}
|
|
60
60
|
return first.every((value, index) => value === second[index]);
|
|
61
61
|
};
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
/**
|
|
63
|
+
* Rebase a path from the workspace root to a project root.
|
|
64
|
+
* e.g. "./packages/foo/src/index.ts" from project "packages/bar"
|
|
65
|
+
* becomes "../../packages/foo/src/index.ts"
|
|
66
|
+
*/
|
|
67
|
+
const rebasePath = (pathValue, projectRoot) => {
|
|
68
|
+
// Strip leading ./ if present
|
|
69
|
+
const normalized = pathValue.startsWith('./')
|
|
70
|
+
? pathValue.slice(2)
|
|
71
|
+
: pathValue;
|
|
72
|
+
const relPrefix = (0, path_1.relative)(projectRoot, '.') || '.';
|
|
73
|
+
return (0, devkit_1.joinPathFragments)(relPrefix, normalized);
|
|
74
|
+
};
|
|
75
|
+
const syncPathsWithBase = (tree, tsConfigPath, basePaths, projectRoot) => {
|
|
64
76
|
const changes = [];
|
|
65
77
|
const tsConfigJson = (0, devkit_1.readJson)(tree, tsConfigPath);
|
|
66
|
-
const paths =
|
|
78
|
+
const paths = tsConfigJson?.compilerOptions?.paths;
|
|
67
79
|
if (!paths) {
|
|
68
80
|
return { updated: false, changes };
|
|
69
81
|
}
|
|
70
|
-
const updatedAliases =
|
|
82
|
+
const updatedAliases = {
|
|
83
|
+
...(tsConfigJson.compilerOptions?.paths ?? {}),
|
|
84
|
+
};
|
|
71
85
|
let updated = false;
|
|
72
|
-
// Add or update aliases that exist in the base config
|
|
86
|
+
// Add or update aliases that exist in the base config, rebasing paths
|
|
87
|
+
// relative to the project root since baseUrl is no longer set
|
|
73
88
|
for (const [alias, baseValue] of Object.entries(basePaths)) {
|
|
89
|
+
const rebasedValue = baseValue.map((p) => rebasePath(p, projectRoot));
|
|
74
90
|
const existingValue = updatedAliases[alias];
|
|
75
91
|
if (!existingValue) {
|
|
76
92
|
changes.push({ alias, type: 'added' });
|
|
77
93
|
updated = true;
|
|
78
94
|
}
|
|
79
|
-
else if (!arePathArraysEqual(existingValue,
|
|
95
|
+
else if (!arePathArraysEqual(existingValue, rebasedValue)) {
|
|
80
96
|
changes.push({ alias, type: 'updated' });
|
|
81
97
|
updated = true;
|
|
82
98
|
}
|
|
83
|
-
updatedAliases[alias] =
|
|
99
|
+
updatedAliases[alias] = rebasedValue;
|
|
84
100
|
}
|
|
85
101
|
if (updated) {
|
|
86
|
-
(0, devkit_1.updateJson)(tree, tsConfigPath, (json) => (
|
|
102
|
+
(0, devkit_1.updateJson)(tree, tsConfigPath, (json) => ({
|
|
103
|
+
...json,
|
|
104
|
+
compilerOptions: {
|
|
105
|
+
...json.compilerOptions,
|
|
106
|
+
paths: updatedAliases,
|
|
107
|
+
},
|
|
108
|
+
}));
|
|
87
109
|
}
|
|
88
110
|
return { updated, changes };
|
|
89
111
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/sync/generator.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;AAEH,uCAMoB;AACpB,uCAAmE;AACnE,+CAA0D;AAE1D,iFAAgD;AAEnC,QAAA,sBAAsB,GACjC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAElB,QAAA,mBAAmB,GAAG,GAAG,sBAAW,CAAC,IAAI,IAAI,8BAAsB,CAAC,EAAE,EAAE,CAAC;AAE/E,MAAM,wBAAwB,GAAG,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/sync/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -58,59 +58,55 @@ function getPythonAgentConnectionPackageName(tree) {
|
|
|
58
58
|
* Ensure the shared TypeScript agent-connection project exists.
|
|
59
59
|
* Creates the project with the core AgentCoreMcpClient if it doesn't exist.
|
|
60
60
|
*/
|
|
61
|
-
function ensureTypeScriptAgentConnectionProject(tree) {
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
directory: (0, devkit_1.joinPathFragments)(PACKAGES_DIR, COMMON_DIR),
|
|
71
|
-
});
|
|
72
|
-
// Generate the core files (agentcore-mcp-client.ts)
|
|
73
|
-
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'core'), (0, devkit_1.joinPathFragments)(exports.AGENT_CONNECTION_PROJECT_DIR, 'src', 'core'), {}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
61
|
+
async function ensureTypeScriptAgentConnectionProject(tree) {
|
|
62
|
+
const projectJsonPath = (0, devkit_1.joinPathFragments)(exports.AGENT_CONNECTION_PROJECT_DIR, 'project.json');
|
|
63
|
+
if (tree.exists(projectJsonPath)) {
|
|
64
|
+
return; // Already exists
|
|
65
|
+
}
|
|
66
|
+
// Create the TS project
|
|
67
|
+
await (0, generator_1.default)(tree, {
|
|
68
|
+
name: AGENT_CONNECTION_DIR,
|
|
69
|
+
directory: (0, devkit_1.joinPathFragments)(PACKAGES_DIR, COMMON_DIR),
|
|
74
70
|
});
|
|
71
|
+
// Generate the core files (agentcore-mcp-client.ts)
|
|
72
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'core'), (0, devkit_1.joinPathFragments)(exports.AGENT_CONNECTION_PROJECT_DIR, 'src', 'core'), {}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
75
73
|
}
|
|
76
74
|
/**
|
|
77
75
|
* Ensure the shared Python agent-connection project exists.
|
|
78
76
|
* Creates the project with the core AgentCoreMCPClient if it doesn't exist.
|
|
79
77
|
*/
|
|
80
|
-
function ensurePythonAgentConnectionProject(tree) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
projectType: 'library',
|
|
93
|
-
});
|
|
94
|
-
// Add dependencies needed by the core agentcore_mcp_client
|
|
95
|
-
(0, py_1.addDependenciesToPyProjectToml)(tree, projectDir, [
|
|
96
|
-
'boto3',
|
|
97
|
-
'mcp',
|
|
98
|
-
'strands-agents',
|
|
99
|
-
]);
|
|
100
|
-
const moduleDir = (0, devkit_1.joinPathFragments)(projectDir, moduleName);
|
|
101
|
-
// Generate the core files (agentcore_mcp_client.py)
|
|
102
|
-
const coreDir = (0, devkit_1.joinPathFragments)(moduleDir, 'core');
|
|
103
|
-
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'py-core'), coreDir, {}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
104
|
-
// Ensure core/__init__.py exists
|
|
105
|
-
if (!tree.exists((0, devkit_1.joinPathFragments)(coreDir, '__init__.py'))) {
|
|
106
|
-
tree.write((0, devkit_1.joinPathFragments)(coreDir, '__init__.py'), '');
|
|
107
|
-
}
|
|
108
|
-
// Ensure app/__init__.py exists
|
|
109
|
-
const appInitPath = (0, devkit_1.joinPathFragments)(moduleDir, 'app', '__init__.py');
|
|
110
|
-
if (!tree.exists(appInitPath)) {
|
|
111
|
-
tree.write(appInitPath, '');
|
|
112
|
-
}
|
|
78
|
+
async function ensurePythonAgentConnectionProject(tree) {
|
|
79
|
+
const projectDir = getPythonAgentConnectionProjectDir(tree);
|
|
80
|
+
const moduleName = getPythonAgentConnectionModuleName(tree);
|
|
81
|
+
const projectJsonPath = (0, devkit_1.joinPathFragments)(projectDir, 'project.json');
|
|
82
|
+
if (tree.exists(projectJsonPath)) {
|
|
83
|
+
return; // Already exists
|
|
84
|
+
}
|
|
85
|
+
// Create the Python project using the standard py#project generator
|
|
86
|
+
await (0, generator_2.default)(tree, {
|
|
87
|
+
name: PY_AGENT_CONNECTION_NAME,
|
|
88
|
+
directory: (0, devkit_1.joinPathFragments)(PACKAGES_DIR, COMMON_DIR),
|
|
89
|
+
projectType: 'library',
|
|
113
90
|
});
|
|
91
|
+
// Add dependencies needed by the core agentcore_mcp_client
|
|
92
|
+
(0, py_1.addDependenciesToPyProjectToml)(tree, projectDir, [
|
|
93
|
+
'boto3',
|
|
94
|
+
'mcp',
|
|
95
|
+
'strands-agents',
|
|
96
|
+
]);
|
|
97
|
+
const moduleDir = (0, devkit_1.joinPathFragments)(projectDir, moduleName);
|
|
98
|
+
// Generate the core files (agentcore_mcp_client.py)
|
|
99
|
+
const coreDir = (0, devkit_1.joinPathFragments)(moduleDir, 'core');
|
|
100
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'py-core'), coreDir, {}, { overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting });
|
|
101
|
+
// Ensure core/__init__.py exists
|
|
102
|
+
if (!tree.exists((0, devkit_1.joinPathFragments)(coreDir, '__init__.py'))) {
|
|
103
|
+
tree.write((0, devkit_1.joinPathFragments)(coreDir, '__init__.py'), '');
|
|
104
|
+
}
|
|
105
|
+
// Ensure app/__init__.py exists
|
|
106
|
+
const appInitPath = (0, devkit_1.joinPathFragments)(moduleDir, 'app', '__init__.py');
|
|
107
|
+
if (!tree.exists(appInitPath)) {
|
|
108
|
+
tree.write(appInitPath, '');
|
|
109
|
+
}
|
|
114
110
|
}
|
|
115
111
|
/**
|
|
116
112
|
* Add a re-export to the Python agent-connection module's __init__.py.
|
|
@@ -118,30 +114,28 @@ function ensurePythonAgentConnectionProject(tree) {
|
|
|
118
114
|
* Uses `__all__` to mark re-exports as public (satisfies ruff F401).
|
|
119
115
|
* Uses GritQL for AST-aware transforms where possible.
|
|
120
116
|
*/
|
|
121
|
-
function addPythonReExport(tree, initFilePath, fromModule, importName) {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
const appendedImport = yield (0, ast_1.applyGritQLTransform)(tree, initFilePath, py(`\`from $mod import $name\` as $stmt where {
|
|
117
|
+
async function addPythonReExport(tree, initFilePath, fromModule, importName) {
|
|
118
|
+
// Check if already exported
|
|
119
|
+
if (await (0, ast_1.matchGritQL)(tree, initFilePath, `\`${importName}\``)) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const importLine = `from ${fromModule} import ${importName}`;
|
|
123
|
+
const allEntry = `"${importName}"`;
|
|
124
|
+
// Try to append import after existing import using +=
|
|
125
|
+
const appendedImport = await (0, ast_1.applyGritQL)(tree, initFilePath, py(`\`from $mod import $name\` as $stmt where {
|
|
131
126
|
$program <: not contains \`${importName}\`,
|
|
132
127
|
$stmt += \`\n${importLine}\`
|
|
133
128
|
}`));
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
});
|
|
129
|
+
if (appendedImport) {
|
|
130
|
+
// Also append to existing __all__
|
|
131
|
+
await (0, ast_1.applyGritQL)(tree, initFilePath, py(`\`__all__ = [$items]\` where { $items += \`, ${allEntry}\` }`));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
// No existing imports — first re-export. Try to anchor after docstring.
|
|
135
|
+
const anchoredImport = await (0, ast_1.applyGritQL)(tree, initFilePath, py(`\`"""Automatically generated by Nx."""\` as $doc => \`$doc\n${importLine}\n\n__all__ = [${allEntry}]\``));
|
|
136
|
+
if (!anchoredImport) {
|
|
137
|
+
// Completely empty file or no docstring — write directly
|
|
138
|
+
tree.write(initFilePath, `${importLine}\n\n__all__ = [${allEntry}]\n`);
|
|
139
|
+
}
|
|
146
140
|
}
|
|
147
141
|
//# sourceMappingURL=agent-connection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-connection/agent-connection.ts"],"names":[],"mappings":";;;AAmCA,gFAMC;AAKD,gFAMC;AAKD,kFAMC;AAMD,wFAyBC;AAMD,gFA+CC;AAQD,8CAiDC;;AA5MD;;;GAGG;AACH,uCAKoB;AACpB,+EAAwD;AACxD,gFAEoC;AACpC,8BAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"agent-connection.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-connection/agent-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addAgentInfra = exports.addMcpServerInfra = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -10,10 +9,10 @@ const devkit_1 = require("@nx/devkit");
|
|
|
10
9
|
const shared_constructs_constants_1 = require("../shared-constructs-constants");
|
|
11
10
|
const ast_1 = require("../ast");
|
|
12
11
|
const versions_1 = require("../versions");
|
|
13
|
-
const addAgentCoreInfra = (tree, options) =>
|
|
12
|
+
const addAgentCoreInfra = async (tree, options) => {
|
|
14
13
|
switch (options.iacProvider) {
|
|
15
14
|
case 'CDK':
|
|
16
|
-
|
|
15
|
+
await addAgentCoreCDKInfra(tree, options);
|
|
17
16
|
break;
|
|
18
17
|
case 'Terraform':
|
|
19
18
|
addAgentCoreTerraformInfra(tree, options);
|
|
@@ -23,7 +22,6 @@ const addAgentCoreInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
23
22
|
(0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, options.iacProvider === 'CDK'
|
|
24
23
|
? shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR
|
|
25
24
|
: shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'project.json'), (config) => {
|
|
26
|
-
var _a;
|
|
27
25
|
if (!config.targets) {
|
|
28
26
|
config.targets = {};
|
|
29
27
|
}
|
|
@@ -31,13 +29,13 @@ const addAgentCoreInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
31
29
|
config.targets.build = {};
|
|
32
30
|
}
|
|
33
31
|
config.targets.build.dependsOn = [
|
|
34
|
-
...(
|
|
32
|
+
...(config.targets.build.dependsOn ?? []).filter((t) => t !== `${options.projectName}:build`),
|
|
35
33
|
`${options.projectName}:build`,
|
|
36
34
|
];
|
|
37
35
|
return config;
|
|
38
36
|
});
|
|
39
|
-
}
|
|
40
|
-
const addAgentCoreCDKInfra = (tree, options) =>
|
|
37
|
+
};
|
|
38
|
+
const addAgentCoreCDKInfra = async (tree, options) => {
|
|
41
39
|
// Add dependency on bedrock agentcore alpha package
|
|
42
40
|
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, (0, versions_1.withVersions)(['@aws-cdk/aws-bedrock-agentcore-alpha']));
|
|
43
41
|
// Generate app specific CDK construct
|
|
@@ -45,9 +43,9 @@ const addAgentCoreCDKInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
45
43
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
46
44
|
});
|
|
47
45
|
// Export app specific CDK construct
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
46
|
+
await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', options.appDirectory, 'index.ts'), `./${options.nameKebabCase}/${options.nameKebabCase}.js`);
|
|
47
|
+
await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), `./${options.appDirectory}/index.js`);
|
|
48
|
+
};
|
|
51
49
|
const addAgentCoreTerraformInfra = (tree, options) => {
|
|
52
50
|
// Add the AgentCore shared module
|
|
53
51
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform', 'core', 'agent-core'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'src', 'core', 'agent-core'), {}, {
|
|
@@ -61,8 +59,8 @@ const addAgentCoreTerraformInfra = (tree, options) => {
|
|
|
61
59
|
/**
|
|
62
60
|
* Add an MCP server CDK construct
|
|
63
61
|
*/
|
|
64
|
-
const addMcpServerInfra = (tree, options) =>
|
|
65
|
-
|
|
62
|
+
const addMcpServerInfra = async (tree, options) => {
|
|
63
|
+
await addAgentCoreInfra(tree, {
|
|
66
64
|
nameClassName: options.mcpServerNameClassName,
|
|
67
65
|
nameKebabCase: options.mcpServerNameKebabCase,
|
|
68
66
|
dockerImageTag: options.dockerImageTag,
|
|
@@ -71,13 +69,13 @@ const addMcpServerInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
71
69
|
serverProtocol: 'MCP',
|
|
72
70
|
iacProvider: options.iacProvider,
|
|
73
71
|
});
|
|
74
|
-
}
|
|
72
|
+
};
|
|
75
73
|
exports.addMcpServerInfra = addMcpServerInfra;
|
|
76
74
|
/**
|
|
77
75
|
* Add an MCP server CDK construct
|
|
78
76
|
*/
|
|
79
|
-
const addAgentInfra = (tree, options) =>
|
|
80
|
-
|
|
77
|
+
const addAgentInfra = async (tree, options) => {
|
|
78
|
+
await addAgentCoreInfra(tree, {
|
|
81
79
|
nameClassName: options.agentNameClassName,
|
|
82
80
|
nameKebabCase: options.agentNameKebabCase,
|
|
83
81
|
projectName: options.projectName,
|
|
@@ -86,6 +84,6 @@ const addAgentInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0, void
|
|
|
86
84
|
serverProtocol: 'HTTP',
|
|
87
85
|
iacProvider: options.iacProvider,
|
|
88
86
|
});
|
|
89
|
-
}
|
|
87
|
+
};
|
|
90
88
|
exports.addAgentInfra = addAgentInfra;
|
|
91
89
|
//# sourceMappingURL=agent-core-constructs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-core-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/agent-core-constructs/agent-core-constructs.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAQoB;AACpB,gFAIwC;AACxC,gCAAuC;AAEvC,0CAA2C;AAa3C,MAAM,iBAAiB,GAAG,KAAK,EAC7B,IAAU,EACV,OAA8D,EAC9D,EAAE;IACF,QAAQ,OAAO,CAAC,WAAW,EAAE,CAAC;QAC5B,KAAK,KAAK;YACR,MAAM,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM;QACR,KAAK,WAAW;YACd,0BAA0B,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAC1C,MAAM;IACV,CAAC;IAED,qFAAqF;IACrF,IAAA,mBAAU,EACR,IAAI,EACJ,IAAA,0BAAiB,EACf,0CAAY,EACZ,OAAO,CAAC,WAAW,KAAK,KAAK;QAC3B,CAAC,CAAC,mDAAqB;QACvB,CAAC,CAAC,kDAAoB,EACxB,cAAc,CACf,EACD,CAAC,MAA4B,EAAE,EAAE;QAC/B,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC1B,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;QAC5B,CAAC;QACD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG;YAC/B,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,MAAM,CAC9C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,WAAW,QAAQ,CAC5C;YACD,GAAG,OAAO,CAAC,WAAW,QAAQ;SAC/B,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,KAAK,EAAE,IAAU,EAAE,OAA+B,EAAE,EAAE;IACjF,oDAAoD;IACpD,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,IAAA,uBAAY,EAAC,CAAC,sCAAsC,CAAC,CAAC,CACvD,CAAC;IAEF,sCAAsC;IACtC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,CAAC,EACjE,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,KAAK,EACL,OAAO,CAAC,YAAY,CACrB,EACD,OAAO,EACP;QACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;KAClD,CACF,CAAC;IAEF,oCAAoC;IACpC,MAAM,IAAA,mBAAa,EACjB,IAAI,EACJ,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,KAAK,EACL,OAAO,CAAC,YAAY,EACpB,UAAU,CACX,EACD,KAAK,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,KAAK,CACzD,CAAC;IACF,MAAM,IAAA,mBAAa,EACjB,IAAI,EACJ,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,KAAK,EACL,UAAU,CACX,EACD,KAAK,OAAO,CAAC,YAAY,WAAW,CACrC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,0BAA0B,GAAG,CACjC,IAAU,EACV,OAA+B,EAC/B,EAAE;IACF,kCAAkC;IAClC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,CAAC,EACxE,IAAA,0BAAiB,EACf,0CAAY,EACZ,kDAAoB,EACpB,KAAK,EACL,MAAM,EACN,YAAY,CACb,EACD,EAAE,EACF;QACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;KAClD,CACF,CAAC;IAEF,iDAAiD;IACjD,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,CAAC,EACvE,IAAA,0BAAiB,EACf,0CAAY,EACZ,kDAAoB,EACpB,KAAK,EACL,KAAK,EACL,OAAO,CAAC,YAAY,CACrB,EACD,OAAO,EACP;QACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;KAClD,CACF,CAAC;AACJ,CAAC,CAAC;AASF;;GAEG;AACI,MAAM,iBAAiB,GAAG,KAAK,EACpC,IAAU,EACV,OAA6C,EAC7C,EAAE;IACF,MAAM,iBAAiB,CAAC,IAAI,EAAE;QAC5B,aAAa,EAAE,OAAO,CAAC,sBAAsB;QAC7C,aAAa,EAAE,OAAO,CAAC,sBAAsB;QAC7C,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,KAAK;QACrB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AASF;;GAEG;AACI,MAAM,aAAa,GAAG,KAAK,EAChC,IAAU,EACV,OAAyC,EACzC,EAAE;IACF,MAAM,iBAAiB,CAAC,IAAI,EAAE;QAC5B,aAAa,EAAE,OAAO,CAAC,kBAAkB;QACzC,aAAa,EAAE,OAAO,CAAC,kBAAkB;QACzC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,MAAM;QACtB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;AACL,CAAC,CAAC;AAbW,QAAA,aAAa,iBAaxB"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.addApiGatewayInfra = void 0;
|
|
4
|
-
const tslib_1 = require("tslib");
|
|
5
4
|
/**
|
|
6
5
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
7
6
|
* SPDX-License-Identifier: Apache-2.0
|
|
@@ -9,9 +8,9 @@ const tslib_1 = require("tslib");
|
|
|
9
8
|
const devkit_1 = require("@nx/devkit");
|
|
10
9
|
const shared_constructs_constants_1 = require("../shared-constructs-constants");
|
|
11
10
|
const ast_1 = require("../ast");
|
|
12
|
-
const addApiGatewayInfra = (tree, options) =>
|
|
11
|
+
const addApiGatewayInfra = async (tree, options) => {
|
|
13
12
|
if (options.iacProvider === 'CDK') {
|
|
14
|
-
|
|
13
|
+
await addApiGatewayCdkConstructs(tree, options);
|
|
15
14
|
}
|
|
16
15
|
else if (options.iacProvider === 'Terraform') {
|
|
17
16
|
addApiGatewayTerraformModules(tree, options);
|
|
@@ -22,7 +21,6 @@ const addApiGatewayInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0,
|
|
|
22
21
|
(0, devkit_1.updateJson)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, options.iacProvider === 'CDK'
|
|
23
22
|
? shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR
|
|
24
23
|
: shared_constructs_constants_1.SHARED_TERRAFORM_DIR, 'project.json'), (config) => {
|
|
25
|
-
var _a;
|
|
26
24
|
if (!config.targets) {
|
|
27
25
|
config.targets = {};
|
|
28
26
|
}
|
|
@@ -30,17 +28,17 @@ const addApiGatewayInfra = (tree, options) => tslib_1.__awaiter(void 0, void 0,
|
|
|
30
28
|
config.targets.build = {};
|
|
31
29
|
}
|
|
32
30
|
config.targets.build.dependsOn = [
|
|
33
|
-
...(
|
|
31
|
+
...(config.targets.build.dependsOn ?? []),
|
|
34
32
|
`${options.apiProjectName}:build`,
|
|
35
33
|
];
|
|
36
34
|
return config;
|
|
37
35
|
});
|
|
38
|
-
}
|
|
36
|
+
};
|
|
39
37
|
exports.addApiGatewayInfra = addApiGatewayInfra;
|
|
40
38
|
/**
|
|
41
39
|
* Add an API CDK construct, and update the Runtime Config type to export its url
|
|
42
40
|
*/
|
|
43
|
-
const addApiGatewayCdkConstructs = (tree, options) =>
|
|
41
|
+
const addApiGatewayCdkConstructs = async (tree, options) => {
|
|
44
42
|
const generateCoreApiFile = (name) => {
|
|
45
43
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'cdk', 'core', 'api', name), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'core', 'api'), {}, {
|
|
46
44
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
@@ -57,9 +55,9 @@ const addApiGatewayCdkConstructs = (tree, options) => tslib_1.__awaiter(void 0,
|
|
|
57
55
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
58
56
|
});
|
|
59
57
|
// Export app specific CDK construct
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
58
|
+
await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'apis', 'index.ts'), `./${options.apiNameKebabCase}.js`);
|
|
59
|
+
await (0, ast_1.addStarExport)(tree, (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'app', 'index.ts'), './apis/index.js');
|
|
60
|
+
};
|
|
63
61
|
/**
|
|
64
62
|
* Add an API terraform module, and update the Runtime Config type to export its url
|
|
65
63
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/api-constructs/api-constructs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"api-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/api-constructs/api-constructs.ts"],"names":[],"mappings":"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"}
|