@aws/nx-plugin 0.82.0 → 0.82.2

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.
Files changed (49) hide show
  1. package/package.json +1 -1
  2. package/src/connection/generator.d.ts +32 -2
  3. package/src/connection/generator.js +125 -16
  4. package/src/connection/generator.js.map +1 -1
  5. package/src/connection/schema.d.ts +2 -0
  6. package/src/connection/schema.json +8 -0
  7. package/src/infra/app/__snapshots__/generator.spec.ts.snap +4 -4
  8. package/src/mcp-server/generator-info.d.ts +5 -1
  9. package/src/mcp-server/generator-info.js +52 -8
  10. package/src/mcp-server/generator-info.js.map +1 -1
  11. package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +66 -38
  12. package/src/py/lambda-function/generator.js +2 -1
  13. package/src/py/lambda-function/generator.js.map +1 -1
  14. package/src/py/mcp-server/generator.js +2 -1
  15. package/src/py/mcp-server/generator.js.map +1 -1
  16. package/src/py/strands-agent/generator.js +2 -1
  17. package/src/py/strands-agent/generator.js.map +1 -1
  18. package/src/smithy/ts/api/__snapshots__/generator.spec.ts.snap +56 -42
  19. package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +158 -110
  20. package/src/ts/lambda-function/generator.js +1 -1
  21. package/src/ts/lambda-function/generator.js.map +1 -1
  22. package/src/ts/lib/vitest.js +2 -0
  23. package/src/ts/lib/vitest.js.map +1 -1
  24. package/src/ts/mcp-server/generator.js +1 -1
  25. package/src/ts/mcp-server/generator.js.map +1 -1
  26. package/src/ts/nx-generator/generator.js +1 -1
  27. package/src/ts/nx-generator/generator.js.map +1 -1
  28. package/src/ts/react-website/app/__snapshots__/generator.spec.ts.snap +6 -6
  29. package/src/ts/react-website/app/generator.js +5 -1
  30. package/src/ts/react-website/app/generator.js.map +1 -1
  31. package/src/ts/react-website/cognito-auth/generator.js +4 -2
  32. package/src/ts/react-website/cognito-auth/generator.js.map +1 -1
  33. package/src/ts/react-website/runtime-config/generator.js +4 -2
  34. package/src/ts/react-website/runtime-config/generator.js.map +1 -1
  35. package/src/ts/strands-agent/generator.js +1 -1
  36. package/src/ts/strands-agent/generator.js.map +1 -1
  37. package/src/utils/api-constructs/files/cdk/app/apis/http/__apiNameKebabCase__.ts.template +15 -17
  38. package/src/utils/api-constructs/files/cdk/app/apis/rest/__apiNameKebabCase__.ts.template +24 -21
  39. package/src/utils/api-constructs/files/cdk/core/api/rest/rest-api.ts.template +20 -2
  40. package/src/utils/api-constructs/files/cdk/core/api/utils/utils.ts.template +4 -1
  41. package/src/utils/nx.d.ts +10 -1
  42. package/src/utils/nx.js +3 -5
  43. package/src/utils/nx.js.map +1 -1
  44. package/src/utils/paths.d.ts +5 -1
  45. package/src/utils/paths.js +10 -1
  46. package/src/utils/paths.js.map +1 -1
  47. package/src/utils/versions.d.ts +4 -1
  48. package/src/utils/versions.js +3 -0
  49. package/src/utils/versions.js.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin",
3
- "version": "0.82.0",
3
+ "version": "0.82.2",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -2,17 +2,47 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- import { Tree } from '@nx/devkit';
5
+ import { ProjectConfiguration, Tree } from '@nx/devkit';
6
6
  import { ConnectionGeneratorSchema } from './schema';
7
+ import { ComponentMetadata } from '../utils/nx';
7
8
  /**
8
- * List of supported source and target project types for connections
9
+ * List of supported source and target project types for connections.
10
+ * These can be project-level types (determined by introspection) or
11
+ * component generator ids (from component metadata).
9
12
  */
10
13
  declare const SUPPORTED_PROJECT_TYPES: readonly ["ts#trpc-api", "py#fast-api", "react", "smithy"];
11
14
  type ProjectType = (typeof SUPPORTED_PROJECT_TYPES)[number];
15
+ export type Connection = {
16
+ source: string;
17
+ target: string;
18
+ };
19
+ /**
20
+ * Sentinel value for sourceComponent/targetComponent that means
21
+ * "use the project-level connection, not a component".
22
+ */
23
+ export declare const PROJECT_COMPONENT_SENTINEL = ".";
24
+ /**
25
+ * The result of resolving a connection, including the matched connection
26
+ * and any resolved source/target component metadata.
27
+ */
28
+ export interface ResolvedConnection {
29
+ readonly connection: Connection;
30
+ readonly sourceComponent?: ComponentMetadata;
31
+ readonly targetComponent?: ComponentMetadata;
32
+ }
12
33
  /**
13
34
  * Generator for a connection between two projects
14
35
  */
15
36
  export declare const connectionGenerator: (tree: Tree, options: ConnectionGeneratorSchema) => Promise<() => void>;
37
+ /**
38
+ * Find a component in project metadata matching the given reference.
39
+ * Checks by name first, then by path, then by generator.
40
+ */
41
+ export declare const findComponentInMetadata: (projectConfiguration: ProjectConfiguration, componentRef: string) => ComponentMetadata | undefined;
42
+ /**
43
+ * Resolve the connection to use, considering source/target projects and components.
44
+ */
45
+ export declare const resolveConnection: (tree: Tree, options: ConnectionGeneratorSchema, supportedConnections?: readonly Connection[]) => ResolvedConnection;
16
46
  /**
17
47
  * Determine whether the given project is of a known project type
18
48
  */
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.determineProjectType = exports.connectionGenerator = void 0;
3
+ exports.determineProjectType = exports.resolveConnection = exports.findComponentInMetadata = exports.connectionGenerator = exports.PROJECT_COMPONENT_SENTINEL = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  /**
6
6
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -16,7 +16,9 @@ const generator_3 = require("../smithy/project/generator");
16
16
  const generator_4 = require("../smithy/ts/api/generator");
17
17
  const generator_5 = tslib_1.__importDefault(require("../smithy/react-connection/generator"));
18
18
  /**
19
- * List of supported source and target project types for connections
19
+ * List of supported source and target project types for connections.
20
+ * These can be project-level types (determined by introspection) or
21
+ * component generator ids (from component metadata).
20
22
  */
21
23
  const SUPPORTED_PROJECT_TYPES = [
22
24
  'ts#trpc-api',
@@ -25,7 +27,13 @@ const SUPPORTED_PROJECT_TYPES = [
25
27
  'smithy',
26
28
  ];
27
29
  /**
28
- * Enumerates the supported project connections
30
+ * Sentinel value for sourceComponent/targetComponent that means
31
+ * "use the project-level connection, not a component".
32
+ */
33
+ exports.PROJECT_COMPONENT_SENTINEL = '.';
34
+ /**
35
+ * Enumerates the supported project connections.
36
+ * Source and target can be project-level types or component generator ids.
29
37
  */
30
38
  const SUPPORTED_CONNECTIONS = [
31
39
  { source: 'react', target: 'ts#trpc-api' },
@@ -53,26 +61,128 @@ const CONNECTION_GENERATORS = {
53
61
  * Generator for a connection between two projects
54
62
  */
55
63
  const connectionGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
56
- const sourceType = (0, exports.determineProjectType)(tree, options.sourceProject);
57
- const targetType = (0, exports.determineProjectType)(tree, options.targetProject);
58
- if (!sourceType || !SUPPORTED_PROJECT_TYPES.includes(sourceType)) {
59
- throw new Error(`This generator does not support selected source project ${options.sourceProject}`);
64
+ const { connection } = (0, exports.resolveConnection)(tree, options);
65
+ const connectionKey = `${connection.source} -> ${connection.target}`;
66
+ return yield CONNECTION_GENERATORS[connectionKey](tree, options);
67
+ });
68
+ exports.connectionGenerator = connectionGenerator;
69
+ /**
70
+ * Find a component in project metadata matching the given reference.
71
+ * Checks by name first, then by path, then by generator.
72
+ */
73
+ const findComponentInMetadata = (projectConfiguration, componentRef) => {
74
+ var _a, _b, _c, _d;
75
+ const components = (_b = (_a = projectConfiguration.metadata) === null || _a === void 0 ? void 0 : _a.components) !== null && _b !== void 0 ? _b : [];
76
+ return ((_d = (_c = components.find((c) => c.name === componentRef)) !== null && _c !== void 0 ? _c : components.find((c) => c.path === componentRef)) !== null && _d !== void 0 ? _d : components.find((c) => c.generator === componentRef));
77
+ };
78
+ exports.findComponentInMetadata = findComponentInMetadata;
79
+ /**
80
+ * Gather all connection candidates for a project configuration. This includes:
81
+ * - The project-level type (if it's a supported type)
82
+ * - Each component's generator id as a candidate type
83
+ */
84
+ const gatherCandidates = (tree, projectConfig) => {
85
+ var _a, _b;
86
+ const projectType = determineProjectTypeFromConfig(tree, projectConfig);
87
+ const components = (_b = (_a = projectConfig.metadata) === null || _a === void 0 ? void 0 : _a.components) !== null && _b !== void 0 ? _b : [];
88
+ return [
89
+ ...(projectType ? [{ type: projectType }] : []),
90
+ ...components.map((component) => ({
91
+ type: component.generator,
92
+ component,
93
+ })),
94
+ ];
95
+ };
96
+ /**
97
+ * Validate that a specified component exists in the project metadata.
98
+ * Skips validation for undefined refs and the project sentinel '.'.
99
+ */
100
+ const validateComponent = (componentRef, projectConfig, side) => {
101
+ var _a, _b;
102
+ if (!componentRef || componentRef === exports.PROJECT_COMPONENT_SENTINEL)
103
+ return;
104
+ const found = (0, exports.findComponentInMetadata)(projectConfig, componentRef);
105
+ if (!found) {
106
+ const components = (_b = (_a = projectConfig.metadata) === null || _a === void 0 ? void 0 : _a.components) !== null && _b !== void 0 ? _b : [];
107
+ throw new Error(`Component '${componentRef}' not found in ${side} project ${projectConfig.name}. ` +
108
+ `Available components: ${components.length > 0 ? components.map((c) => { var _a; return (_a = c.name) !== null && _a !== void 0 ? _a : c.generator; }).join(', ') : 'none'}`);
109
+ }
110
+ };
111
+ /**
112
+ * Narrow candidates based on the user's specified component reference.
113
+ */
114
+ const filterConnectionCandidatesForComponentReference = (componentRef, projectConfig, candidates, supportedConnections, side) => {
115
+ if (!componentRef)
116
+ return candidates;
117
+ if (componentRef === exports.PROJECT_COMPONENT_SENTINEL) {
118
+ return candidates.filter((c) => !c.component);
60
119
  }
61
- if (!targetType || !SUPPORTED_PROJECT_TYPES.includes(targetType)) {
62
- throw new Error(`This generator does not support selected target project ${options.targetProject}`);
120
+ const component = (0, exports.findComponentInMetadata)(projectConfig, componentRef);
121
+ if (!component)
122
+ return candidates;
123
+ const isConnectionParticipant = supportedConnections.some((c) => c[side] === component.generator);
124
+ if (!isConnectionParticipant)
125
+ return candidates;
126
+ return candidates.filter((c) => { var _a; return ((_a = c.component) === null || _a === void 0 ? void 0 : _a.generator) === component.generator; });
127
+ };
128
+ /**
129
+ * Resolve the connection to use, considering source/target projects and components.
130
+ */
131
+ const resolveConnection = (tree, options, supportedConnections = SUPPORTED_CONNECTIONS) => {
132
+ const sourceConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.sourceProject);
133
+ const targetConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.targetProject);
134
+ // Validate explicitly specified components exist
135
+ validateComponent(options.sourceComponent, sourceConfig, 'source');
136
+ validateComponent(options.targetComponent, targetConfig, 'target');
137
+ // Gather and narrow candidates
138
+ const sourceCandidates = filterConnectionCandidatesForComponentReference(options.sourceComponent, sourceConfig, gatherCandidates(tree, sourceConfig), supportedConnections, 'source');
139
+ const targetCandidates = filterConnectionCandidatesForComponentReference(options.targetComponent, targetConfig, gatherCandidates(tree, targetConfig), supportedConnections, 'target');
140
+ // Cross-product candidates and find supported connections
141
+ const matches = [];
142
+ for (const source of sourceCandidates) {
143
+ for (const target of targetCandidates) {
144
+ const match = supportedConnections.find((c) => c.source === source.type && c.target === target.type);
145
+ if (match) {
146
+ matches.push({
147
+ connection: match,
148
+ sourceComponent: source.component,
149
+ targetComponent: target.component,
150
+ });
151
+ }
152
+ }
63
153
  }
64
- const connection = SUPPORTED_CONNECTIONS.find((c) => c.source === sourceType && c.target === targetType);
65
- if (!connection) {
66
- throw new Error(`This generator does not support a connection from ${options.sourceProject} (${sourceType}) to ${options.targetProject} (${targetType})`);
154
+ if (matches.length === 0) {
155
+ const sourceTypes = [...new Set(sourceCandidates.map((c) => c.type))];
156
+ const targetTypes = [...new Set(targetCandidates.map((c) => c.type))];
157
+ throw new Error(`This generator does not support a connection from ${options.sourceProject}${sourceTypes.length > 0 ? ` (${sourceTypes.join(', ')})` : ''} to ${options.targetProject}${targetTypes.length > 0 ? ` (${targetTypes.join(', ')})` : ''}`);
67
158
  }
68
- return yield CONNECTION_GENERATORS[`${connection.source} -> ${connection.target}`](tree, options);
69
- });
70
- exports.connectionGenerator = connectionGenerator;
159
+ if (matches.length > 1) {
160
+ const connectionDescriptions = matches
161
+ .map((m) => `${m.connection.source} -> ${m.connection.target}`)
162
+ .join(', ');
163
+ throw new Error(`Ambiguous connection from ${options.sourceProject} to ${options.targetProject}. ` +
164
+ `Multiple supported connections found: ${connectionDescriptions}. ` +
165
+ `Please specify sourceComponent and/or targetComponent to disambiguate.`);
166
+ }
167
+ return {
168
+ connection: matches[0].connection,
169
+ sourceComponent: matches[0].sourceComponent,
170
+ targetComponent: matches[0].targetComponent,
171
+ };
172
+ };
173
+ exports.resolveConnection = resolveConnection;
71
174
  /**
72
175
  * Determine whether the given project is of a known project type
73
176
  */
74
177
  const determineProjectType = (tree, projectName) => {
75
178
  const projectConfiguration = (0, nx_1.readProjectConfigurationUnqualified)(tree, projectName);
179
+ return determineProjectTypeFromConfig(tree, projectConfiguration);
180
+ };
181
+ exports.determineProjectType = determineProjectType;
182
+ /**
183
+ * Determine whether the given project configuration is of a known project type
184
+ */
185
+ const determineProjectTypeFromConfig = (tree, projectConfiguration) => {
76
186
  // NB: if adding new checks, ensure these go from most to least specific
77
187
  // eg. react website is more specific than typescript project
78
188
  if (isTrpcApi(tree, projectConfiguration)) {
@@ -89,7 +199,6 @@ const determineProjectType = (tree, projectName) => {
89
199
  }
90
200
  return undefined;
91
201
  };
92
- exports.determineProjectType = determineProjectType;
93
202
  const sourceRoot = (projectConfiguration) => {
94
203
  var _a;
95
204
  return (_a = projectConfiguration.sourceRoot) !== null && _a !== void 0 ? _a : (0, devkit_1.joinPathFragments)(projectConfiguration.root, 'src');
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/connection/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/connection/generator.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,6 @@
6
6
  export interface ConnectionGeneratorSchema {
7
7
  sourceProject: string;
8
8
  targetProject: string;
9
+ sourceComponent?: string;
10
+ targetComponent?: string;
9
11
  }
@@ -19,6 +19,14 @@
19
19
  "description": "The target project to connect to",
20
20
  "x-prompt": "Select the target project to connect to",
21
21
  "x-dropdown": "projects"
22
+ },
23
+ "sourceComponent": {
24
+ "type": "string",
25
+ "description": "The source component to connect from (component name, path relative to source project root, or generator id). Use '.' to explicitly select the project as the source."
26
+ },
27
+ "targetComponent": {
28
+ "type": "string",
29
+ "description": "The target component to connect to (component name, path relative to target project root, or generator id). Use '.' to explicitly select the project as the target."
22
30
  }
23
31
  },
24
32
  "required": ["sourceProject", "targetProject"]
@@ -21,7 +21,7 @@ exports[`infra generator > should add required dependencies to package.json > de
21
21
  "@swc/core": "~1.15.5",
22
22
  "@swc/helpers": "~0.5.18",
23
23
  "@types/node": "22.19.13",
24
- "@vitest/coverage-v8": "^4.0.0",
24
+ "@vitest/coverage-v8": "4.0.18",
25
25
  "eslint": "^9.8.0",
26
26
  "eslint-config-prettier": "^10.0.0",
27
27
  "eslint-plugin-prettier": "5.5.5",
@@ -32,7 +32,7 @@ exports[`infra generator > should add required dependencies to package.json > de
32
32
  "typescript": "~5.9.2",
33
33
  "typescript-eslint": "^8.40.0",
34
34
  "vite": "^7.0.0",
35
- "vitest": "^4.0.8",
35
+ "vitest": "4.0.18",
36
36
  }
37
37
  `;
38
38
 
@@ -55,7 +55,7 @@ exports[`infra generator > should add required dependencies to package.json > pa
55
55
  "@swc/core": "~1.15.5",
56
56
  "@swc/helpers": "~0.5.18",
57
57
  "@types/node": "22.19.13",
58
- "@vitest/coverage-v8": "^4.0.0",
58
+ "@vitest/coverage-v8": "4.0.18",
59
59
  "eslint": "^9.8.0",
60
60
  "eslint-config-prettier": "^10.0.0",
61
61
  "eslint-plugin-prettier": "5.5.5",
@@ -66,7 +66,7 @@ exports[`infra generator > should add required dependencies to package.json > pa
66
66
  "typescript": "~5.9.2",
67
67
  "typescript-eslint": "^8.40.0",
68
68
  "vite": "^7.0.0",
69
- "vitest": "^4.0.8",
69
+ "vitest": "4.0.18",
70
70
  },
71
71
  "name": "@proj/source",
72
72
  "type": "module",
@@ -17,7 +17,11 @@ export declare const fetchGuidePagesForGenerator: (info: NxGeneratorInfo, genera
17
17
  * Fetch markdown guide pages from github
18
18
  */
19
19
  export declare const fetchGuidePages: (guidePages: string[], generators: NxGeneratorInfo[], packageManager?: string) => Promise<string>;
20
+ /**
21
+ * Fetch a snippet's content from github
22
+ */
23
+ export declare const fetchSnippet: (snippetName: string) => Promise<string>;
20
24
  /**
21
25
  * Post-process a guide page to "inline" relevant components
22
26
  */
23
- export declare const postProcessGuide: (guide: string, generators: NxGeneratorInfo[], packageManager?: string) => string;
27
+ export declare const postProcessGuide: (guide: string, generators: NxGeneratorInfo[], packageManager?: string) => Promise<string>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postProcessGuide = exports.fetchGuidePages = exports.fetchGuidePagesForGenerator = exports.renderGeneratorInfo = exports.buildNxCommand = void 0;
3
+ exports.postProcessGuide = exports.fetchSnippet = exports.fetchGuidePages = exports.fetchGuidePagesForGenerator = exports.renderGeneratorInfo = exports.buildNxCommand = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  /**
6
6
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -64,12 +64,28 @@ const fetchGuidePages = (guidePages, generators, packageManager) => tslib_1.__aw
64
64
  const guides = yield Promise.allSettled(guidePages.map((guide) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
65
65
  return yield (yield fetch(`https://raw.githubusercontent.com/awslabs/nx-plugin-for-aws/refs/heads/main/docs/src/content/docs/en/guides/${guide}.mdx`)).text();
66
66
  })));
67
- return guides
68
- .filter((result) => result.status === 'fulfilled')
69
- .map((result) => (0, exports.postProcessGuide)(result.value, generators, packageManager))
70
- .join('\n\n');
67
+ const fulfilled = guides.filter((result) => result.status === 'fulfilled');
68
+ const processed = yield Promise.all(fulfilled.map((result) => (0, exports.postProcessGuide)(result.value, generators, packageManager)));
69
+ return processed.join('\n\n');
71
70
  });
72
71
  exports.fetchGuidePages = fetchGuidePages;
72
+ const SNIPPET_BASE_URL = 'https://raw.githubusercontent.com/awslabs/nx-plugin-for-aws/refs/heads/main/docs/src/content/docs/en/snippets';
73
+ /**
74
+ * Fetch a snippet's content from github
75
+ */
76
+ const fetchSnippet = (snippetName) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
77
+ try {
78
+ const response = yield fetch(`${SNIPPET_BASE_URL}/${snippetName}.mdx`);
79
+ if (!response.ok) {
80
+ return '';
81
+ }
82
+ return yield response.text();
83
+ }
84
+ catch (_a) {
85
+ return '';
86
+ }
87
+ });
88
+ exports.fetchSnippet = fetchSnippet;
73
89
  const findGeneratorAndSchema = (generators, generatorId) => {
74
90
  const generator = generators.find((info) => info.id === generatorId);
75
91
  if (!generator) {
@@ -86,9 +102,37 @@ const findGeneratorAndSchema = (generators, generatorId) => {
86
102
  /**
87
103
  * Post-process a guide page to "inline" relevant components
88
104
  */
89
- const postProcessGuide = (guide, generators, packageManager) => {
105
+ const postProcessGuide = (guide, generators, packageManager) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
106
+ // Replace <Snippet /> with fetched snippet content
107
+ // Use a regex that matches the full self-closing tag, allowing / in attribute values
108
+ const snippetRegex = /<Snippet\s+((?:[^/]|\/(?!>))+)\s*\/>/g;
109
+ const snippetMatches = [...guide.matchAll(snippetRegex)];
110
+ let processedGuide = guide;
111
+ if (snippetMatches.length > 0) {
112
+ // Fetch all snippets in parallel
113
+ const snippetResults = yield Promise.all(snippetMatches.map((match) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
114
+ const nameMatch = match[1].match(/name=["']([^"']+)["']/);
115
+ if (!nameMatch) {
116
+ return { original: match[0], replacement: match[0] };
117
+ }
118
+ const snippetName = nameMatch[1];
119
+ const snippetContent = yield (0, exports.fetchSnippet)(snippetName);
120
+ if (!snippetContent) {
121
+ return { original: match[0], replacement: match[0] };
122
+ }
123
+ // Recursively post-process the snippet content
124
+ const processedContent = yield (0, exports.postProcessGuide)(snippetContent.trim(), generators, packageManager);
125
+ return {
126
+ original: match[0],
127
+ replacement: `<Snippet name="${snippetName}">\n${processedContent}\n</Snippet>`,
128
+ };
129
+ })));
130
+ for (const { original, replacement } of snippetResults) {
131
+ processedGuide = processedGuide.replace(original, replacement);
132
+ }
133
+ }
90
134
  // Replace <NxCommands /> with markdown code blocks
91
- let processedGuide = guide.replace(/<NxCommands\s+commands={([^}]+)}\s*\/>/g, (match, commandsMatch) => {
135
+ processedGuide = processedGuide.replace(/<NxCommands\s+commands={([^}]+)}\s*\/>/g, (match, commandsMatch) => {
92
136
  try {
93
137
  const commands = JSON.parse(commandsMatch
94
138
  .replaceAll("\\'", '__ESCAPED_SINGLE_QUOTE__')
@@ -129,6 +173,6 @@ const postProcessGuide = (guide, generators, packageManager) => {
129
173
  return renderSchema(info.schema);
130
174
  });
131
175
  return processedGuide;
132
- };
176
+ });
133
177
  exports.postProcessGuide = postProcessGuide;
134
178
  //# sourceMappingURL=generator-info.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generator-info.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/generator-info.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator-info.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/mcp-server/generator-info.ts"],"names":[],"mappings":"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"}