@aws/nx-plugin 0.26.0 → 0.28.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/package.json +1 -1
- package/src/api-connection/generator.js +0 -2
- package/src/api-connection/generator.js.map +1 -1
- package/src/api-connection/schema.d.ts +0 -1
- package/src/api-connection/schema.json +0 -7
- package/src/cloudscape-website/app/generator.js +1 -0
- package/src/cloudscape-website/app/generator.js.map +1 -1
- package/src/infra/app/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/infra/app/generator.js +1 -0
- package/src/infra/app/generator.js.map +1 -1
- package/src/py/fast-api/__snapshots__/generator.spec.ts.snap +31 -30
- package/src/py/fast-api/generator.js +3 -0
- package/src/py/fast-api/generator.js.map +1 -1
- package/src/py/fast-api/react/__snapshots__/generator.spec.ts.snap +68 -1
- package/src/py/fast-api/react/files/website/components/__apiNameClassName__Provider.tsx.template +27 -1
- package/src/py/fast-api/react/generator.js +7 -17
- package/src/py/fast-api/react/generator.js.map +1 -1
- package/src/py/fast-api/react/schema.d.ts +0 -1
- package/src/py/fast-api/react/schema.json +0 -7
- package/src/py/fast-api/schema.d.ts +1 -0
- package/src/py/fast-api/schema.json +9 -1
- package/src/py/project/generator.js +1 -0
- package/src/py/project/generator.js.map +1 -1
- package/src/py/project/schema.json +7 -2
- package/src/trpc/backend/__snapshots__/generator.spec.ts.snap +680 -84
- package/src/trpc/backend/files/backend/src/client/index.ts.template +22 -2
- package/src/trpc/backend/files/backend/src/middleware/index.ts.template +2 -3
- package/src/trpc/backend/files/backend/src/router.ts.template +2 -3
- package/src/trpc/backend/generator.js +21 -5
- package/src/trpc/backend/generator.js.map +1 -1
- package/src/trpc/backend/schema.d.ts +2 -1
- package/src/trpc/backend/schema.json +10 -2
- package/src/trpc/react/__snapshots__/generator.spec.ts.snap +186 -73
- package/src/trpc/react/files/src/components/__apiNameClassName__ClientProvider.tsx.template +54 -0
- package/src/trpc/react/files/src/hooks/use__apiNameClassName__.tsx.template +2 -2
- package/src/trpc/react/generator.js +13 -69
- package/src/trpc/react/generator.js.map +1 -1
- package/src/trpc/react/schema.d.ts +0 -1
- package/src/trpc/react/schema.json +0 -7
- package/src/ts/lib/__snapshots__/generator.spec.ts.snap +9 -0
- package/src/ts/lib/generator.js +1 -0
- package/src/ts/lib/generator.js.map +1 -1
- package/src/ts/lib/schema.json +7 -2
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +3 -0
- package/src/ts/mcp-server/generator.js +1 -0
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/ts/mcp-server/schema.json +5 -0
- package/src/utils/api-constructs/api-constructs.d.ts +1 -0
- package/src/utils/api-constructs/api-constructs.js.map +1 -1
- package/src/utils/api-constructs/files/app/apis/http/__apiNameKebabCase__.ts.template +53 -2
- package/src/utils/api-constructs/files/app/apis/rest/__apiNameKebabCase__.ts.template +57 -2
- package/src/utils/api-constructs/files/core/api/http/http-api.ts.template +1 -15
- package/src/utils/api-constructs/files/core/api/rest/rest-api.ts.template +0 -14
- package/src/utils/nx.d.ts +4 -0
- package/src/utils/nx.js +9 -1
- package/src/utils/nx.js.map +1 -1
- package/src/api-connection/README.md +0 -0
- package/src/cloudscape-website/app/README.md +0 -289
- package/src/cloudscape-website/cognito-auth/README.md +0 -193
- package/src/infra/app/README.md +0 -200
- package/src/license/README.md +0 -290
- package/src/trpc/backend/README.md +0 -571
- package/src/trpc/backend/files/backend/src/client/sigv4.ts.template +0 -9
- package/src/trpc/react/README.md +0 -330
- package/src/trpc/react/files/src/components/TrpcClients/TrpcApis.tsx.template +0 -1
- package/src/trpc/react/files/src/components/TrpcClients/TrpcClientProviders.tsx.template +0 -10
- package/src/trpc/react/files/src/components/TrpcClients/TrpcProvider.tsx.template +0 -55
- package/src/trpc/react/files/src/components/TrpcClients/index.tsx.template +0 -5
|
@@ -8,7 +8,6 @@ const tslib_1 = require("tslib");
|
|
|
8
8
|
* SPDX-License-Identifier: Apache-2.0
|
|
9
9
|
*/
|
|
10
10
|
const devkit_1 = require("@nx/devkit");
|
|
11
|
-
const typescript_1 = require("typescript");
|
|
12
11
|
const generator_1 = require("../../cloudscape-website/runtime-config/generator");
|
|
13
12
|
const npm_scope_1 = require("../../utils/npm-scope");
|
|
14
13
|
const versions_1 = require("../../utils/versions");
|
|
@@ -24,17 +23,20 @@ function reactGenerator(tree, options) {
|
|
|
24
23
|
const frontendProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.frontendProjectName);
|
|
25
24
|
const backendProjectConfig = (0, nx_1.readProjectConfigurationUnqualified)(tree, options.backendProjectName);
|
|
26
25
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
27
|
-
const
|
|
26
|
+
const metadata = backendProjectConfig.metadata;
|
|
27
|
+
const apiName = metadata.apiName;
|
|
28
|
+
const auth = (_a = metadata.auth) !== null && _a !== void 0 ? _a : 'IAM';
|
|
28
29
|
const apiNameClassName = (0, names_1.toClassName)(apiName);
|
|
29
30
|
const backendProjectAlias = (0, npm_scope_1.toScopeAlias)(backendProjectConfig.name);
|
|
30
|
-
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), frontendProjectConfig.root, Object.assign(Object.assign({ apiName, apiNameClassName: (0, names_1.toClassName)(apiName) }, options), {
|
|
31
|
+
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files'), frontendProjectConfig.root, Object.assign(Object.assign({ apiName, apiNameClassName: (0, names_1.toClassName)(apiName) }, options), { auth,
|
|
32
|
+
backendProjectAlias }), {
|
|
31
33
|
overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
|
|
32
34
|
});
|
|
33
35
|
// Generate the tanstack query provider if it does not exist already
|
|
34
36
|
if (!tree.exists((0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'components', 'QueryClientProvider.tsx'))) {
|
|
35
37
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../utils/files/website/components/tanstack-query'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'components'), {});
|
|
36
38
|
}
|
|
37
|
-
if (
|
|
39
|
+
if (auth === 'IAM') {
|
|
38
40
|
(0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, '../../utils/files/website/hooks/sigv4'), (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'hooks'), {});
|
|
39
41
|
}
|
|
40
42
|
yield (0, generator_1.runtimeConfigGenerator)(tree, {
|
|
@@ -43,82 +45,23 @@ function reactGenerator(tree, options) {
|
|
|
43
45
|
// update main.tsx
|
|
44
46
|
const mainTsxPath = (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'main.tsx');
|
|
45
47
|
(0, ast_1.addSingleImport)(tree, mainTsxPath, 'QueryClientProvider', './components/QueryClientProvider');
|
|
46
|
-
|
|
48
|
+
const clientProviderName = `${apiNameClassName}ClientProvider`;
|
|
49
|
+
(0, ast_1.addSingleImport)(tree, mainTsxPath, clientProviderName, `./components/${clientProviderName}`);
|
|
47
50
|
// Check if QueryClientProvider already exists
|
|
48
51
|
const hasQueryClientProvider = (0, ast_1.query)(tree, mainTsxPath, 'JsxOpeningElement[tagName.name="QueryClientProvider"]').length > 0;
|
|
49
52
|
if (!hasQueryClientProvider) {
|
|
50
53
|
(0, ast_1.replace)(tree, mainTsxPath, 'JsxSelfClosingElement[tagName.name="RouterProvider"]', (node) => (0, ast_1.createJsxElementFromIdentifier)('QueryClientProvider', [node]));
|
|
51
54
|
}
|
|
52
|
-
// Check if
|
|
53
|
-
const hasProvider = (0, ast_1.query)(tree, mainTsxPath,
|
|
55
|
+
// Check if client provider already exists
|
|
56
|
+
const hasProvider = (0, ast_1.query)(tree, mainTsxPath, `JsxOpeningElement[tagName.name="${clientProviderName}"]`).length > 0;
|
|
54
57
|
if (!hasProvider) {
|
|
55
|
-
(0, ast_1.replace)(tree, mainTsxPath, 'JsxSelfClosingElement[tagName.name="RouterProvider"]', (node) => (0, ast_1.createJsxElementFromIdentifier)(
|
|
56
|
-
}
|
|
57
|
-
// update TrpcApis.tsx
|
|
58
|
-
const trpcApisPath = (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'components/TrpcClients/TrpcApis.tsx');
|
|
59
|
-
// Add imports if they don't exist
|
|
60
|
-
(0, ast_1.addDestructuredImport)(tree, trpcApisPath, ['createTrpcClientProvider'], './TrpcProvider');
|
|
61
|
-
(0, ast_1.addDestructuredImport)(tree, trpcApisPath, [
|
|
62
|
-
`AppRouter as ${apiNameClassName}AppRouter`,
|
|
63
|
-
`Context as ${apiNameClassName}Context`,
|
|
64
|
-
], backendProjectAlias);
|
|
65
|
-
// Update the export object only if API doesn't exist
|
|
66
|
-
(0, ast_1.replace)(tree, trpcApisPath, 'ExportAssignment > ObjectLiteralExpression', (node) => {
|
|
67
|
-
const existingProperties = node.properties;
|
|
68
|
-
if (existingProperties.find((p) => { var _a; return ((_a = p.name) === null || _a === void 0 ? void 0 : _a.getText()) === apiNameClassName; })) {
|
|
69
|
-
return node;
|
|
70
|
-
}
|
|
71
|
-
const newProperty = typescript_1.factory.createPropertyAssignment(typescript_1.factory.createIdentifier(apiNameClassName), typescript_1.factory.createCallExpression(typescript_1.factory.createIdentifier('createTrpcClientProvider'), [
|
|
72
|
-
typescript_1.factory.createTypeReferenceNode(typescript_1.factory.createIdentifier(`${apiNameClassName}AppRouter`)),
|
|
73
|
-
typescript_1.factory.createTypeReferenceNode(typescript_1.factory.createIdentifier(`${apiNameClassName}Context`)),
|
|
74
|
-
], []));
|
|
75
|
-
return typescript_1.factory.createObjectLiteralExpression([...existingProperties, newProperty], true);
|
|
76
|
-
});
|
|
77
|
-
// update TrpcClientProviders.tsx
|
|
78
|
-
const trpcClientProvidersPath = (0, devkit_1.joinPathFragments)(frontendProjectConfig.sourceRoot, 'components/TrpcClients/TrpcClientProviders.tsx');
|
|
79
|
-
// Add imports
|
|
80
|
-
(0, ast_1.addDestructuredImport)(tree, trpcClientProvidersPath, ['useRuntimeConfig'], '../../hooks/useRuntimeConfig');
|
|
81
|
-
(0, ast_1.addSingleImport)(tree, trpcClientProvidersPath, 'TrpcApis', './TrpcApis');
|
|
82
|
-
// Check if useContext hook exists and add if it doesn't add it
|
|
83
|
-
const hasRuntimeConfig = (0, ast_1.query)(tree, trpcClientProvidersPath, 'VariableDeclaration[name.name="runtimeConfig"] CallExpression[expression.name="useRuntimeConfig"]').length > 0;
|
|
84
|
-
if (!hasRuntimeConfig) {
|
|
85
|
-
(0, ast_1.replace)(tree, trpcClientProvidersPath, 'ArrowFunction > Block', (node) => {
|
|
86
|
-
const existingStatements = [...node.statements];
|
|
87
|
-
const runtimeContextVar = typescript_1.factory.createVariableStatement(undefined, typescript_1.factory.createVariableDeclarationList([
|
|
88
|
-
typescript_1.factory.createVariableDeclaration('runtimeConfig', undefined, undefined, typescript_1.factory.createCallExpression(typescript_1.factory.createIdentifier('useRuntimeConfig'), undefined, [])),
|
|
89
|
-
], typescript_1.NodeFlags.Const));
|
|
90
|
-
// Insert the runtimeContext declaration before the return statement
|
|
91
|
-
existingStatements.splice(existingStatements.length - 1, 0, runtimeContextVar);
|
|
92
|
-
return typescript_1.factory.createBlock(existingStatements, true);
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
// Check if API provider already exists
|
|
96
|
-
const hasTrpcProvider = (0, ast_1.query)(tree, trpcClientProvidersPath, `JsxOpeningElement PropertyAccessExpression:has(Identifier[name="Provider"]) PropertyAccessExpression:has(Identifier[name="${apiNameClassName}"]) Identifier[name="TrpcApis"]`).length > 0;
|
|
97
|
-
if (!hasTrpcProvider) {
|
|
98
|
-
// Transform the return statement only if provider doesn't exist
|
|
99
|
-
(0, ast_1.replace)(tree, trpcClientProvidersPath, 'ReturnStatement', (node) => {
|
|
100
|
-
var _a;
|
|
101
|
-
const existingExpression = (0, typescript_1.isParenthesizedExpression)(node.expression)
|
|
102
|
-
? (_a = node.expression) === null || _a === void 0 ? void 0 : _a.expression
|
|
103
|
-
: node.expression;
|
|
104
|
-
return typescript_1.factory.createReturnStatement(typescript_1.factory.createJsxElement(typescript_1.factory.createJsxOpeningElement(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier('TrpcApis'), typescript_1.factory.createIdentifier(apiNameClassName)), typescript_1.factory.createIdentifier('Provider')), undefined, typescript_1.factory.createJsxAttributes([
|
|
105
|
-
typescript_1.factory.createJsxAttribute(typescript_1.factory.createIdentifier('apiUrl'), typescript_1.factory.createJsxExpression(undefined, typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier('runtimeConfig'), typescript_1.factory.createIdentifier('apis')), typescript_1.factory.createIdentifier(apiNameClassName)))),
|
|
106
|
-
])), [
|
|
107
|
-
(0, typescript_1.isJsxChild)(existingExpression) ||
|
|
108
|
-
(0, typescript_1.isJsxElement)(existingExpression) ||
|
|
109
|
-
(0, typescript_1.isJsxFragment)(existingExpression) ||
|
|
110
|
-
(0, typescript_1.isJsxSelfClosingElement)(existingExpression) ||
|
|
111
|
-
(0, typescript_1.isJsxExpression)(existingExpression)
|
|
112
|
-
? existingExpression
|
|
113
|
-
: typescript_1.factory.createJsxExpression(undefined, existingExpression),
|
|
114
|
-
], typescript_1.factory.createJsxClosingElement(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createPropertyAccessExpression(typescript_1.factory.createIdentifier('TrpcApis'), typescript_1.factory.createIdentifier(apiNameClassName)), typescript_1.factory.createIdentifier('Provider')))));
|
|
115
|
-
});
|
|
58
|
+
(0, ast_1.replace)(tree, mainTsxPath, 'JsxSelfClosingElement[tagName.name="RouterProvider"]', (node) => (0, ast_1.createJsxElementFromIdentifier)(clientProviderName, [node]));
|
|
116
59
|
}
|
|
117
60
|
(0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)([
|
|
118
61
|
'@trpc/client',
|
|
119
62
|
'@trpc/tanstack-react-query',
|
|
120
63
|
'@tanstack/react-query',
|
|
121
|
-
...(
|
|
64
|
+
...(auth === 'IAM'
|
|
122
65
|
? [
|
|
123
66
|
'oidc-client-ts',
|
|
124
67
|
'aws4fetch',
|
|
@@ -127,6 +70,7 @@ function reactGenerator(tree, options) {
|
|
|
127
70
|
'react-oidc-context',
|
|
128
71
|
]
|
|
129
72
|
: []),
|
|
73
|
+
...(auth === 'Cognito' ? ['react-oidc-context'] : []),
|
|
130
74
|
]), (0, versions_1.withVersions)(['@smithy/types']));
|
|
131
75
|
yield (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TRPC_REACT_GENERATOR_INFO]);
|
|
132
76
|
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/trpc/react/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,13 +19,6 @@
|
|
|
19
19
|
"description": "",
|
|
20
20
|
"x-prompt": "Package containing your Api Backend.",
|
|
21
21
|
"x-dropdown": "projects"
|
|
22
|
-
},
|
|
23
|
-
"auth": {
|
|
24
|
-
"type": "string",
|
|
25
|
-
"description": "",
|
|
26
|
-
"enum": ["IAM", "None"],
|
|
27
|
-
"x-prompt": "Select your API authentication strategy",
|
|
28
|
-
"default": "IAM"
|
|
29
22
|
}
|
|
30
23
|
},
|
|
31
24
|
"required": ["frontendProjectName", "backendProjectName"]
|
|
@@ -117,6 +117,9 @@ exports[`ts lib generator > should generate library with custom directory > cust
|
|
|
117
117
|
"reportsDirectory": "../../coverage/libs/test-lib"
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
|
+
},
|
|
121
|
+
"metadata": {
|
|
122
|
+
"generator": "ts#project"
|
|
120
123
|
}
|
|
121
124
|
}
|
|
122
125
|
"
|
|
@@ -199,6 +202,9 @@ exports[`ts lib generator > should generate library with default options > proje
|
|
|
199
202
|
"reportsDirectory": "../coverage/test-lib"
|
|
200
203
|
}
|
|
201
204
|
}
|
|
205
|
+
},
|
|
206
|
+
"metadata": {
|
|
207
|
+
"generator": "ts#project"
|
|
202
208
|
}
|
|
203
209
|
}
|
|
204
210
|
"
|
|
@@ -255,6 +261,9 @@ exports[`ts lib generator > should generate library with subdirectory > subdir-p
|
|
|
255
261
|
"reportsDirectory": "../../coverage/feature/test-lib"
|
|
256
262
|
}
|
|
257
263
|
}
|
|
264
|
+
},
|
|
265
|
+
"metadata": {
|
|
266
|
+
"generator": "ts#project"
|
|
258
267
|
}
|
|
259
268
|
}
|
|
260
269
|
"
|
package/src/ts/lib/generator.js
CHANGED
|
@@ -72,6 +72,7 @@ const tsProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
72
72
|
delete targets['lint'];
|
|
73
73
|
projectConfiguration.targets = (0, object_1.sortObjectKeys)(targets);
|
|
74
74
|
(0, devkit_1.updateProjectConfiguration)(tree, fullyQualifiedName, projectConfiguration);
|
|
75
|
+
(0, nx_1.addGeneratorMetadata)(tree, fullyQualifiedName, exports.TS_LIB_GENERATOR_INFO);
|
|
75
76
|
(0, devkit_1.updateJson)(tree, 'nx.json', (nxJson) => {
|
|
76
77
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
|
|
77
78
|
nxJson.namedInputs = Object.assign(Object.assign({}, nxJson.namedInputs), { default: [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAYoB;AAEpB,+BAA0C;AAC1C,qDAA0D;AAC1D,yDAAwD;AACxD,6CAAgD;AAChD,+BAAgC;AAChC,+CAA0D;AAC1D,+CAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/lib/generator.ts"],"names":[],"mappings":"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"}
|
package/src/ts/lib/schema.json
CHANGED
|
@@ -7,8 +7,13 @@
|
|
|
7
7
|
"properties": {
|
|
8
8
|
"name": {
|
|
9
9
|
"type": "string",
|
|
10
|
-
"description": "
|
|
11
|
-
"
|
|
10
|
+
"description": "TypeScript project name",
|
|
11
|
+
"$default": {
|
|
12
|
+
"$source": "argv",
|
|
13
|
+
"index": 0
|
|
14
|
+
},
|
|
15
|
+
"x-priority": "important",
|
|
16
|
+
"x-prompt": "What would you like to call your TypeScript project?"
|
|
12
17
|
},
|
|
13
18
|
"directory": {
|
|
14
19
|
"type": "string",
|
|
@@ -50,6 +50,7 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
50
50
|
},
|
|
51
51
|
// Ensure bundle runs as part of build
|
|
52
52
|
build: Object.assign(Object.assign({}, (_a = project === null || project === void 0 ? void 0 : project.targets) === null || _a === void 0 ? void 0 : _a.build), { dependsOn: [...((_d = (_c = (_b = project === null || project === void 0 ? void 0 : project.targets) === null || _b === void 0 ? void 0 : _b.build) === null || _c === void 0 ? void 0 : _c.dependsOn) !== null && _d !== void 0 ? _d : []), 'bundle'] }) }) }));
|
|
53
|
+
(0, nx_1.addGeneratorMetadata)(tree, fullyQualifiedName, exports.TS_MCP_SERVER_GENERATOR_INFO);
|
|
53
54
|
yield (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.TS_MCP_SERVER_GENERATOR_INFO]);
|
|
54
55
|
yield (0, format_1.formatFilesInSubtree)(tree);
|
|
55
56
|
return () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAUoB;AAEpB,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAUoB;AAEpB,uCAIwB;AACxB,iDAAsE;AACtE,+CAA0D;AAC1D,sEAAuE;AACvE,mDAAoD;AAEvC,QAAA,4BAA4B,GACvC,IAAA,qBAAgB,EAAC,UAAU,CAAC,CAAC;AAExB,MAAM,oBAAoB,GAAG,CAClC,IAAU,EACV,OAAmC,EACP,EAAE;;IAC9B,gCAAgC;IAChC,MAAM,IAAA,mBAAkB,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAExC,MAAM,EAAE,kBAAkB,EAAE,GAAG,IAAA,2BAAe,EAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,IAAA,iCAAwB,EAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAEnE,mBAAmB;IACnB,MAAM,IAAI,GAAG,IAAA,uBAAY,EAAC,CAAC,2BAA2B,EAAE,KAAK,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAG,IAAA,uBAAY,EAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;IACjD,IAAA,qCAA4B,EAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAElD,0BAA0B;IAC1B,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,CAAC,EACrC,OAAO,CAAC,IAAI,EACZ;QACE,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,GAAG,EAAE,OAAO,CAAC,IAAI;KAClB,EACD,EAAE,iBAAiB,EAAE,0BAAiB,CAAC,SAAS,EAAE,CACnD,CAAC;IAEF,oBAAoB;IACpB,IAAA,mCAA0B,EAAC,IAAI,EAAE,kBAAkB,kCAC9C,OAAO,KACV,OAAO,kCACF,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO;YACnB,sBAAsB;YACtB,MAAM,EAAE;gBACN,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,YAAY,IAAA,0BAAiB,EAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,uEAAuE,IAAA,0BAAiB,EAAC,MAAM,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,EAAE;qBACpM;iBACF;aACF;YACD,kDAAkD;YAClD,GAAG,EAAE;gBACH,QAAQ,EAAE,iBAAiB;gBAC3B,OAAO,EAAE;oBACP,QAAQ,EAAE;wBACR,uBAAuB,kBAAkB,yCAAyC,kBAAkB,SAAS;qBAC9G;iBACF;aACF;YACD,sCAAsC;YACtC,KAAK,kCACA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,KAAK,KAC1B,SAAS,EAAE,CAAC,GAAG,CAAC,MAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,0CAAE,KAAK,0CAAE,SAAS,mCAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,UAGxE,CAAC;IAEH,IAAA,yBAAoB,EAAC,IAAI,EAAE,kBAAkB,EAAE,oCAA4B,CAAC,CAAC;IAE7E,MAAM,IAAA,yCAA+B,EAAC,IAAI,EAAE,CAAC,oCAA4B,CAAC,CAAC,CAAC;IAE5E,MAAM,IAAA,6BAAoB,EAAC,IAAI,CAAC,CAAC;IACjC,OAAO,GAAG,EAAE;QACV,IAAA,4BAAmB,EAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC;AACJ,CAAC,CAAA,CAAC;AAlEW,QAAA,oBAAoB,wBAkE/B;AAEF,kBAAe,4BAAoB,CAAC"}
|
|
@@ -21,6 +21,7 @@ export interface AddApiGatewayConstructOptions {
|
|
|
21
21
|
apiNameKebabCase: string;
|
|
22
22
|
constructType: 'http' | 'rest';
|
|
23
23
|
backend: TrpcBackendOptions | FastApiBackendOptions;
|
|
24
|
+
auth: 'IAM' | 'Cognito' | 'None';
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Add an API CDK construct, and update the Runtime Config type to export its url
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-constructs.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/utils/api-constructs/api-constructs.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAKoB;AACpB,2CAKoB;AACpB,gFAIwC;AACxC,gCAA0E;
|
|
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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"}
|
|
@@ -8,9 +8,28 @@ import {
|
|
|
8
8
|
Tracing,
|
|
9
9
|
} from 'aws-cdk-lib/aws-lambda';
|
|
10
10
|
import { Duration } from 'aws-cdk-lib';
|
|
11
|
-
import {
|
|
12
|
-
|
|
11
|
+
import {
|
|
12
|
+
CorsHttpMethod,
|
|
13
|
+
<%_ if (auth === 'None') { _%>
|
|
14
|
+
HttpNoneAuthorizer,
|
|
15
|
+
<%_ } _%>
|
|
16
|
+
} from 'aws-cdk-lib/aws-apigatewayv2';
|
|
17
|
+
<%_ if (['IAM', 'Cognito'].includes(auth)) { _%>
|
|
18
|
+
import {
|
|
19
|
+
<%_ if (auth === 'IAM') { _%>
|
|
20
|
+
HttpIamAuthorizer,
|
|
21
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
22
|
+
HttpUserPoolAuthorizer,
|
|
23
|
+
<%_ } _%>
|
|
24
|
+
} from 'aws-cdk-lib/aws-apigatewayv2-authorizers';
|
|
25
|
+
<%_ } _%>
|
|
13
26
|
import { HttpLambdaIntegration } from 'aws-cdk-lib/aws-apigatewayv2-integrations';
|
|
27
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
28
|
+
import { IUserPool, IUserPoolClient } from 'aws-cdk-lib/aws-cognito';
|
|
29
|
+
<%_ } _%>
|
|
30
|
+
<%_ if (auth === 'IAM') { _%>
|
|
31
|
+
import { Grant, IGrantable } from 'aws-cdk-lib/aws-iam';
|
|
32
|
+
<%_ } _%>
|
|
14
33
|
import {
|
|
15
34
|
HttpApiIntegration,
|
|
16
35
|
IntegrationBuilder,
|
|
@@ -41,6 +60,15 @@ export interface <%= apiNameClassName %>Props<
|
|
|
41
60
|
* Map of operation names to their API Gateway integrations
|
|
42
61
|
*/
|
|
43
62
|
integrations: TIntegrations;
|
|
63
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
64
|
+
/**
|
|
65
|
+
* Identity details for Cognito Authentication
|
|
66
|
+
*/
|
|
67
|
+
identity: {
|
|
68
|
+
userPool: IUserPool;
|
|
69
|
+
userPoolClient: IUserPoolClient;
|
|
70
|
+
};
|
|
71
|
+
<%_ } _%>
|
|
44
72
|
}
|
|
45
73
|
|
|
46
74
|
/**
|
|
@@ -123,7 +151,15 @@ export class <%= apiNameClassName %><
|
|
|
123
151
|
'x-amz-security-token',
|
|
124
152
|
],
|
|
125
153
|
},
|
|
154
|
+
<%_ if (auth === 'IAM') { _%>
|
|
126
155
|
defaultAuthorizer: new HttpIamAuthorizer(),
|
|
156
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
157
|
+
defaultAuthorizer: new HttpUserPoolAuthorizer('<%= apiNameClassName %>Authorizer', props.identity.userPool, {
|
|
158
|
+
userPoolClients: [props.identity.userPoolClient]
|
|
159
|
+
}),
|
|
160
|
+
<%_ } else if (auth === 'None') { _%>
|
|
161
|
+
defaultAuthorizer: new HttpNoneAuthorizer(),
|
|
162
|
+
<%_ } _%>
|
|
127
163
|
<%_ if (backend.type === 'trpc') { _%>
|
|
128
164
|
operations: routerToOperations(appRouter),
|
|
129
165
|
<%_ } else if (backend.type === 'fastapi') { _%>
|
|
@@ -132,4 +168,19 @@ export class <%= apiNameClassName %><
|
|
|
132
168
|
...props,
|
|
133
169
|
});
|
|
134
170
|
}
|
|
171
|
+
<%_ if (auth === 'IAM') { _%>
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Grants IAM permissions to invoke any method on this API.
|
|
175
|
+
*
|
|
176
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
177
|
+
*/
|
|
178
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
179
|
+
Grant.addToPrincipal({
|
|
180
|
+
grantee,
|
|
181
|
+
actions: ['execute-api:Invoke'],
|
|
182
|
+
resourceArns: [this.api.arnForExecuteApi('*', '/*', '*')],
|
|
183
|
+
});
|
|
184
|
+
}
|
|
185
|
+
<%_ } _%>
|
|
135
186
|
}
|
|
@@ -11,15 +11,30 @@ import {
|
|
|
11
11
|
AuthorizationType,
|
|
12
12
|
Cors,
|
|
13
13
|
LambdaIntegration,
|
|
14
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
15
|
+
CognitoUserPoolsAuthorizer,
|
|
16
|
+
<%_ } _%>
|
|
14
17
|
} from 'aws-cdk-lib/aws-apigateway';
|
|
15
|
-
import {
|
|
18
|
+
import {
|
|
19
|
+
Duration,
|
|
20
|
+
<%_ if (auth === 'IAM') { _%>
|
|
21
|
+
Stack,
|
|
22
|
+
<%_ } _%>
|
|
23
|
+
} from 'aws-cdk-lib';
|
|
16
24
|
import {
|
|
17
25
|
PolicyDocument,
|
|
18
26
|
PolicyStatement,
|
|
19
27
|
Effect,
|
|
20
|
-
AccountPrincipal,
|
|
21
28
|
AnyPrincipal,
|
|
29
|
+
<%_ if (auth === 'IAM') { _%>
|
|
30
|
+
AccountPrincipal,
|
|
31
|
+
IGrantable,
|
|
32
|
+
Grant,
|
|
33
|
+
<%_ } _%>
|
|
22
34
|
} from 'aws-cdk-lib/aws-iam';
|
|
35
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
36
|
+
import { IUserPool } from 'aws-cdk-lib/aws-cognito';
|
|
37
|
+
<%_ } _%>
|
|
23
38
|
import {
|
|
24
39
|
IntegrationBuilder,
|
|
25
40
|
RestApiIntegration,
|
|
@@ -50,6 +65,12 @@ export interface <%= apiNameClassName %>Props<
|
|
|
50
65
|
* Map of operation names to their API Gateway integrations
|
|
51
66
|
*/
|
|
52
67
|
integrations: TIntegrations;
|
|
68
|
+
<%_ if (auth === 'Cognito') { _%>
|
|
69
|
+
/**
|
|
70
|
+
* User pool for Cognito authentication
|
|
71
|
+
*/
|
|
72
|
+
userPool: IUserPool;
|
|
73
|
+
<%_ } _%>
|
|
53
74
|
}
|
|
54
75
|
|
|
55
76
|
/**
|
|
@@ -119,7 +140,16 @@ export class <%= apiNameClassName %><
|
|
|
119
140
|
super(scope, id, {
|
|
120
141
|
apiName: '<%= apiNameClassName %>',
|
|
121
142
|
defaultMethodOptions: {
|
|
143
|
+
<%_ if (auth === 'IAM') { _%>
|
|
122
144
|
authorizationType: AuthorizationType.IAM,
|
|
145
|
+
<%_ } else if (auth === 'Cognito') { _%>
|
|
146
|
+
authorizationType: AuthorizationType.COGNITO,
|
|
147
|
+
authorizer: new CognitoUserPoolsAuthorizer(scope, '<%= apiNameClassName %>Authorizer', {
|
|
148
|
+
cognitoUserPools: [props.userPool],
|
|
149
|
+
}),
|
|
150
|
+
<%_ } else if (auth === 'None') { _%>
|
|
151
|
+
authorizationType: AuthorizationType.NONE,
|
|
152
|
+
<%_ } _%>
|
|
123
153
|
},
|
|
124
154
|
defaultCorsPreflightOptions: {
|
|
125
155
|
allowOrigins: Cors.ALL_ORIGINS,
|
|
@@ -127,6 +157,7 @@ export class <%= apiNameClassName %><
|
|
|
127
157
|
},
|
|
128
158
|
policy: new PolicyDocument({
|
|
129
159
|
statements: [
|
|
160
|
+
<%_ if (auth === 'IAM') { _%>
|
|
130
161
|
// Here we grant any AWS credentials from the account that the project is deployed in to call the api.
|
|
131
162
|
// Machine to machine fine-grained access can be defined here using more specific principals (eg roles or
|
|
132
163
|
// users) and resources (eg which api paths may be invoked by which principal) if required.
|
|
@@ -143,6 +174,15 @@ export class <%= apiNameClassName %><
|
|
|
143
174
|
actions: ['execute-api:Invoke'],
|
|
144
175
|
resources: ['execute-api:/*/OPTIONS/*'],
|
|
145
176
|
}),
|
|
177
|
+
<%_ } else { _%>
|
|
178
|
+
// Allow all callers to invoke the API in the resource policy<% if (auth === 'Cognito') { %>, since auth is handled by Cognito<% } %>
|
|
179
|
+
new PolicyStatement({
|
|
180
|
+
effect: Effect.ALLOW,
|
|
181
|
+
principals: [new AnyPrincipal()],
|
|
182
|
+
actions: ['execute-api:Invoke'],
|
|
183
|
+
resources: ['execute-api:/*'],
|
|
184
|
+
}),
|
|
185
|
+
<%_ } _%>
|
|
146
186
|
],
|
|
147
187
|
}),
|
|
148
188
|
<%_ if (backend.type === 'trpc') { _%>
|
|
@@ -153,4 +193,19 @@ export class <%= apiNameClassName %><
|
|
|
153
193
|
...props,
|
|
154
194
|
});
|
|
155
195
|
}
|
|
196
|
+
<%_ if (auth === 'IAM') { _%>
|
|
197
|
+
|
|
198
|
+
/**
|
|
199
|
+
* Grants IAM permissions to invoke any method on this API.
|
|
200
|
+
*
|
|
201
|
+
* @param grantee - The IAM principal to grant permissions to
|
|
202
|
+
*/
|
|
203
|
+
public grantInvokeAccess(grantee: IGrantable) {
|
|
204
|
+
Grant.addToPrincipal({
|
|
205
|
+
grantee,
|
|
206
|
+
actions: ['execute-api:Invoke'],
|
|
207
|
+
resourceArns: [this.api.arnForExecuteApi('*', '/*', '*')],
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
<%_ } _%>
|
|
156
211
|
}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { Construct } from 'constructs';
|
|
2
2
|
import { RuntimeConfig } from '../runtime-config.js';
|
|
3
|
-
import { Grant, IGrantable } from 'aws-cdk-lib/aws-iam';
|
|
4
3
|
import { HttpApiIntegration, OperationDetails } from './utils.js';
|
|
5
4
|
import { CfnOutput } from 'aws-cdk-lib';
|
|
6
5
|
import {
|
|
@@ -67,7 +66,7 @@ export class HttpApi<
|
|
|
67
66
|
super(scope, id);
|
|
68
67
|
this.integrations = integrations;
|
|
69
68
|
|
|
70
|
-
// Create the API Gateway REST API
|
|
69
|
+
// Create the API Gateway REST API
|
|
71
70
|
this.api = new _HttpApi(this, 'Api', {
|
|
72
71
|
...props,
|
|
73
72
|
});
|
|
@@ -96,17 +95,4 @@ export class HttpApi<
|
|
|
96
95
|
[apiName]: this.api.url!,
|
|
97
96
|
};
|
|
98
97
|
}
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Grants IAM permissions to invoke any method on this API.
|
|
102
|
-
*
|
|
103
|
-
* @param grantee - The IAM principal to grant permissions to
|
|
104
|
-
*/
|
|
105
|
-
public grantInvokeAccess(grantee: IGrantable) {
|
|
106
|
-
Grant.addToPrincipal({
|
|
107
|
-
grantee,
|
|
108
|
-
actions: ['execute-api:Invoke'],
|
|
109
|
-
resourceArns: [this.api.arnForExecuteApi('*', '/*', '*')],
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
98
|
}
|
|
@@ -5,7 +5,6 @@ import {
|
|
|
5
5
|
IResource,
|
|
6
6
|
} from 'aws-cdk-lib/aws-apigateway';
|
|
7
7
|
import { RuntimeConfig } from '../runtime-config.js';
|
|
8
|
-
import { Grant, IGrantable } from 'aws-cdk-lib/aws-iam';
|
|
9
8
|
import { OperationDetails, RestApiIntegration } from './utils.js';
|
|
10
9
|
|
|
11
10
|
/**
|
|
@@ -108,17 +107,4 @@ export class RestApi<
|
|
|
108
107
|
resource.getResource(nextPathPart) ?? resource.addResource(nextPathPart);
|
|
109
108
|
return this.getOrCreateResource(childResource, pathParts);
|
|
110
109
|
}
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* Grants IAM permissions to invoke any method on this API.
|
|
114
|
-
*
|
|
115
|
-
* @param grantee - The IAM principal to grant permissions to
|
|
116
|
-
*/
|
|
117
|
-
public grantInvokeAccess(grantee: IGrantable) {
|
|
118
|
-
Grant.addToPrincipal({
|
|
119
|
-
grantee,
|
|
120
|
-
actions: ['execute-api:Invoke'],
|
|
121
|
-
resourceArns: [this.api.arnForExecuteApi('*', '/*', '*')],
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
110
|
}
|
package/src/utils/nx.d.ts
CHANGED
|
@@ -26,3 +26,7 @@ export declare const getPackageVersion: () => string;
|
|
|
26
26
|
* Read a project configuration where the project name may not be fully qualified (ie may omit the scope prefix)
|
|
27
27
|
*/
|
|
28
28
|
export declare const readProjectConfigurationUnqualified: (tree: Tree, projectName: string) => import("@nx/devkit").ProjectConfiguration;
|
|
29
|
+
/**
|
|
30
|
+
* Add metadata about the generator to the project.json
|
|
31
|
+
*/
|
|
32
|
+
export declare const addGeneratorMetadata: (tree: Tree, projectName: string, info: NxGeneratorInfo) => void;
|
package/src/utils/nx.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.readProjectConfigurationUnqualified = exports.getPackageVersion = exports.getGeneratorInfo = exports.listGenerators = void 0;
|
|
3
|
+
exports.addGeneratorMetadata = exports.readProjectConfigurationUnqualified = exports.getPackageVersion = exports.getGeneratorInfo = exports.listGenerators = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
/**
|
|
6
6
|
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
@@ -59,4 +59,12 @@ const readProjectConfigurationUnqualified = (tree, projectName) => {
|
|
|
59
59
|
}
|
|
60
60
|
};
|
|
61
61
|
exports.readProjectConfigurationUnqualified = readProjectConfigurationUnqualified;
|
|
62
|
+
/**
|
|
63
|
+
* Add metadata about the generator to the project.json
|
|
64
|
+
*/
|
|
65
|
+
const addGeneratorMetadata = (tree, projectName, info) => {
|
|
66
|
+
const config = (0, exports.readProjectConfigurationUnqualified)(tree, projectName);
|
|
67
|
+
(0, devkit_1.updateProjectConfiguration)(tree, config.name, Object.assign(Object.assign({}, config), { metadata: Object.assign(Object.assign({}, config === null || config === void 0 ? void 0 : config.metadata), { generator: info.id }) }));
|
|
68
|
+
};
|
|
69
|
+
exports.addGeneratorMetadata = addGeneratorMetadata;
|
|
62
70
|
//# sourceMappingURL=nx.js.map
|
package/src/utils/nx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/nx.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"nx.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/nx.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|