@aws/nx-plugin 0.40.0 → 0.41.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/README.md +1 -0
- package/generators.json +7 -0
- package/package.json +1 -1
- package/src/preset/__snapshots__/generator.spec.ts.snap +2 -0
- package/src/py/project/generator.js +1 -0
- package/src/py/project/generator.js.map +1 -1
- package/src/terraform/project/files/application/src/env/dev.tfvars.template +3 -0
- package/src/terraform/project/files/application/src/main.tf.template +14 -0
- package/src/terraform/project/files/application/src/outputs.tf.template +9 -0
- package/src/terraform/project/files/application/src/providers.tf.template +20 -0
- package/src/terraform/project/files/application/src/variables.tf.template +10 -0
- package/src/terraform/project/files/library/src/main.tf.template +5 -0
- package/src/terraform/project/generator.d.ts +10 -0
- package/src/terraform/project/generator.js +195 -0
- package/src/terraform/project/generator.js.map +1 -0
- package/src/terraform/project/schema.d.ts +15 -0
- package/src/terraform/project/schema.json +35 -0
- package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +2 -1
- package/src/ts/mcp-server/generator.js +1 -1
- package/src/ts/mcp-server/generator.js.map +1 -1
- package/src/utils/agent-core-constructs/files/app/mcp-servers/__mcpServerNameKebabCase__/__mcpServerNameKebabCase__.ts.template +2 -1
- package/src/utils/bundle.js +1 -1
- package/src/utils/bundle.js.map +1 -1
- package/src/utils/versions.d.ts +2 -1
- package/src/utils/versions.js +1 -0
- package/src/utils/versions.js.map +1 -1
package/README.md
CHANGED
|
@@ -59,6 +59,7 @@
|
|
|
59
59
|
- `ts#nx-generator` - Add an [Nx Generator](https://nx.dev/features/generate-code) to a TypeScript project.
|
|
60
60
|
- `ts#mcp-server` - Add a [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) server to a TypeScript project.
|
|
61
61
|
- `ts#lambda-function` - Generate a TypeScript lambda function with optional type-safe event sources.
|
|
62
|
+
- `terraform#project` - Generate a new Terraform project.
|
|
62
63
|
- `py#project` - Generate a uv based Python project.
|
|
63
64
|
- `py#fast-api` - Generate a FastAPI backend service with [AWS Powertools](https://github.com/aws-powertools/powertools-lambda-python) pre-configured.
|
|
64
65
|
- `py#lambda-function` - Add a lambda function to an existing python project with optional type-safe event sources.
|
package/generators.json
CHANGED
|
@@ -156,6 +156,13 @@
|
|
|
156
156
|
"schema": "./src/ts/nx-plugin/schema.json",
|
|
157
157
|
"description": "Generate an Nx Plugin of your own! Build custom generators automatically made available for AI vibe-coding via MCP",
|
|
158
158
|
"metric": "g22"
|
|
159
|
+
},
|
|
160
|
+
"terraform#project": {
|
|
161
|
+
"factory": "./src/terraform/project/generator",
|
|
162
|
+
"schema": "./src/terraform/project/schema.json",
|
|
163
|
+
"description": "Generates a Terraform project",
|
|
164
|
+
"metric": "g23",
|
|
165
|
+
"guidePages": ["terraform-project"]
|
|
159
166
|
}
|
|
160
167
|
}
|
|
161
168
|
}
|
package/package.json
CHANGED
|
@@ -58,6 +58,8 @@ The following list of generators are what is currently available in the \`@aws/n
|
|
|
58
58
|
|
|
59
59
|
- **ts#nx-plugin**: Generate an Nx Plugin of your own! Build custom generators automatically made available for AI vibe-coding via MCP
|
|
60
60
|
|
|
61
|
+
- **terraform#project**: Generates a Terraform project
|
|
62
|
+
|
|
61
63
|
You also have the option of using additional [commmunity plugins](https://nx.dev/plugin-registry) as needed.
|
|
62
64
|
|
|
63
65
|
## Invoking a generator
|
|
@@ -112,6 +112,7 @@ const pyProjectGenerator = (tree, schema) => tslib_1.__awaiter(void 0, void 0, v
|
|
|
112
112
|
]);
|
|
113
113
|
yield (0, metrics_1.addGeneratorMetricsIfApplicable)(tree, [exports.PY_PROJECT_GENERATOR_INFO]);
|
|
114
114
|
return () => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
|
|
115
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
115
116
|
yield new provider_1.UVProvider(tree.root, new logger_1.Logger(), tree).install();
|
|
116
117
|
});
|
|
117
118
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/py/project/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
locals {
|
|
2
|
+
account_id = data.aws_caller_identity.current.account_id
|
|
3
|
+
aws_region = data.aws_region.current.id
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
resource "null_resource" "print_info" {
|
|
7
|
+
# triggers = {
|
|
8
|
+
# always_run = timestamp()
|
|
9
|
+
# }
|
|
10
|
+
|
|
11
|
+
provisioner "local-exec" {
|
|
12
|
+
command = "echo 'AWS Region: ${local.aws_region}, AWS Account: ${local.account_id}, Environment: ${var.environment}'"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
terraform {
|
|
2
|
+
required_providers {
|
|
3
|
+
aws = {
|
|
4
|
+
source = "hashicorp/aws"
|
|
5
|
+
version = "~> 6.0"
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
backend "s3" {
|
|
10
|
+
encrypt = true
|
|
11
|
+
use_lockfile = true
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
provider "aws" {
|
|
16
|
+
region = var.aws_region
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
data "aws_caller_identity" "current" {}
|
|
20
|
+
data "aws_region" "current" {}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { Tree, GeneratorCallback } from '@nx/devkit';
|
|
6
|
+
import { TerraformProjectGeneratorSchema } from './schema';
|
|
7
|
+
import { NxGeneratorInfo } from '../../utils/nx';
|
|
8
|
+
export declare const TERRAFORM_PROJECT_GENERATOR_INFO: NxGeneratorInfo;
|
|
9
|
+
export declare function terraformProjectGenerator(tree: Tree, schema: TerraformProjectGeneratorSchema): Promise<GeneratorCallback>;
|
|
10
|
+
export default terraformProjectGenerator;
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TERRAFORM_PROJECT_GENERATOR_INFO = void 0;
|
|
4
|
+
exports.terraformProjectGenerator = terraformProjectGenerator;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
/**
|
|
7
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
8
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
9
|
+
*/
|
|
10
|
+
const devkit_1 = require("@nx/devkit");
|
|
11
|
+
const generator_1 = require("../../ts/lib/generator");
|
|
12
|
+
const path_1 = require("path");
|
|
13
|
+
const object_1 = require("../../utils/object");
|
|
14
|
+
const nx_1 = require("../../utils/nx");
|
|
15
|
+
const git_1 = require("../../utils/git");
|
|
16
|
+
const versions_1 = require("../../utils/versions");
|
|
17
|
+
const NX_EXTEND_PLUGIN = '@nx-extend/terraform';
|
|
18
|
+
exports.TERRAFORM_PROJECT_GENERATOR_INFO = (0, nx_1.getGeneratorInfo)(__filename);
|
|
19
|
+
function terraformProjectGenerator(tree, schema) {
|
|
20
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
21
|
+
var _a, _b;
|
|
22
|
+
// Just use getTsLibDetails as it isn't specific to TS
|
|
23
|
+
const lib = (0, generator_1.getTsLibDetails)(tree, schema);
|
|
24
|
+
const outDirToRootRelativePath = (0, path_1.relative)((0, path_1.join)(tree.root, lib.dir, 'src'), tree.root);
|
|
25
|
+
const distDir = (0, path_1.join)(outDirToRootRelativePath, 'dist', lib.dir);
|
|
26
|
+
const tfDistDir = (0, path_1.join)(distDir, 'terraform');
|
|
27
|
+
const checkovDistDir = (0, path_1.join)(distDir, 'checkov');
|
|
28
|
+
(0, git_1.updateGitIgnore)(tree, '.', (patterns) => [...patterns, '.terraform']);
|
|
29
|
+
const applicationTargets = {
|
|
30
|
+
apply: {
|
|
31
|
+
executor: 'nx:run-commands',
|
|
32
|
+
defaultConfiguration: 'dev',
|
|
33
|
+
configurations: {
|
|
34
|
+
dev: {
|
|
35
|
+
command: `terraform apply ${tfDistDir}/dev.tfplan`,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
options: {
|
|
39
|
+
forwardAllArgs: true,
|
|
40
|
+
cwd: '{projectRoot}/src',
|
|
41
|
+
},
|
|
42
|
+
dependsOn: ['plan'],
|
|
43
|
+
},
|
|
44
|
+
bootstrap: {
|
|
45
|
+
executor: 'nx:run-commands',
|
|
46
|
+
options: {
|
|
47
|
+
forwardAllArgs: true,
|
|
48
|
+
commands: [
|
|
49
|
+
`aws s3 cp s3://$(aws sts get-caller-identity --query Account --output text)-tf-state-$(aws configure get region)/bootstrap.tfstate ${tfDistDir}/bootstrap.tfstate || true`,
|
|
50
|
+
'terraform init',
|
|
51
|
+
`terraform apply -auto-approve -state=${tfDistDir}/bootstrap.tfstate -var="aws_region=$(aws configure get region)"`,
|
|
52
|
+
`aws s3 cp ${tfDistDir}/bootstrap.tfstate s3://$(aws sts get-caller-identity --query Account --output text)-tf-state-$(aws configure get region)/bootstrap.tfstate`,
|
|
53
|
+
],
|
|
54
|
+
parallel: false,
|
|
55
|
+
cwd: '{projectRoot}/.bootstrap',
|
|
56
|
+
},
|
|
57
|
+
},
|
|
58
|
+
'bootstrap-destroy': {
|
|
59
|
+
executor: 'nx:run-commands',
|
|
60
|
+
options: {
|
|
61
|
+
forwardAllArgs: true,
|
|
62
|
+
command: `terraform destroy -state=${tfDistDir}/bootstrap.tfstate`,
|
|
63
|
+
cwd: '{projectRoot}/.bootstrap',
|
|
64
|
+
},
|
|
65
|
+
},
|
|
66
|
+
destroy: {
|
|
67
|
+
executor: 'nx:run-commands',
|
|
68
|
+
defaultConfiguration: 'dev',
|
|
69
|
+
configurations: {
|
|
70
|
+
dev: {
|
|
71
|
+
command: 'terraform destroy -var-file=env/dev.tfvars',
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
options: {
|
|
75
|
+
forwardAllArgs: true,
|
|
76
|
+
cwd: '{projectRoot}/src',
|
|
77
|
+
},
|
|
78
|
+
dependsOn: ['init'],
|
|
79
|
+
},
|
|
80
|
+
init: {
|
|
81
|
+
executor: 'nx:run-commands',
|
|
82
|
+
defaultConfiguration: 'dev',
|
|
83
|
+
configurations: {
|
|
84
|
+
dev: {
|
|
85
|
+
command: 'terraform init -reconfigure -backend-config="region=$(aws configure get region)" -backend-config="bucket=$(aws sts get-caller-identity --query Account --output text)-tf-state-$(aws configure get region)" -backend-config="key=dev/terraform.tfstate"',
|
|
86
|
+
},
|
|
87
|
+
},
|
|
88
|
+
options: {
|
|
89
|
+
forwardAllArgs: true,
|
|
90
|
+
cwd: '{projectRoot}/src',
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
output: {
|
|
94
|
+
executor: 'nx:run-commands',
|
|
95
|
+
cache: true,
|
|
96
|
+
inputs: ['default'],
|
|
97
|
+
options: {
|
|
98
|
+
command: 'terraform output -json',
|
|
99
|
+
forwardAllArgs: true,
|
|
100
|
+
cwd: '{projectRoot}/src',
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
plan: {
|
|
104
|
+
executor: 'nx:run-commands',
|
|
105
|
+
defaultConfiguration: 'dev',
|
|
106
|
+
configurations: {
|
|
107
|
+
dev: {
|
|
108
|
+
command: `terraform plan -var-file=env/dev.tfvars -out=${tfDistDir}/dev.tfplan`,
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
options: {
|
|
112
|
+
forwardAllArgs: true,
|
|
113
|
+
cwd: '{projectRoot}/src',
|
|
114
|
+
},
|
|
115
|
+
dependsOn: ['init'],
|
|
116
|
+
},
|
|
117
|
+
};
|
|
118
|
+
const libTargets = {
|
|
119
|
+
fmt: {
|
|
120
|
+
executor: 'nx:run-commands',
|
|
121
|
+
cache: true,
|
|
122
|
+
inputs: ['default'],
|
|
123
|
+
options: {
|
|
124
|
+
command: 'terraform fmt',
|
|
125
|
+
forwardAllArgs: true,
|
|
126
|
+
cwd: '{projectRoot}/src',
|
|
127
|
+
},
|
|
128
|
+
},
|
|
129
|
+
init: {
|
|
130
|
+
executor: 'nx:run-commands',
|
|
131
|
+
defaultConfiguration: 'dev',
|
|
132
|
+
configurations: {
|
|
133
|
+
dev: {
|
|
134
|
+
command: 'terraform init',
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
options: {
|
|
138
|
+
forwardAllArgs: true,
|
|
139
|
+
cwd: '{projectRoot}/src',
|
|
140
|
+
},
|
|
141
|
+
},
|
|
142
|
+
test: {
|
|
143
|
+
executor: 'nx:run-commands',
|
|
144
|
+
cache: true,
|
|
145
|
+
outputs: [`{workspaceRoot}/dist/${lib.dir}/checkov`],
|
|
146
|
+
options: {
|
|
147
|
+
command: `uvx checkov --directory . -o json --output-file-path ${checkovDistDir}`,
|
|
148
|
+
forwardAllArgs: true,
|
|
149
|
+
cwd: '{projectRoot}/src',
|
|
150
|
+
},
|
|
151
|
+
dependsOn: ['validate'],
|
|
152
|
+
},
|
|
153
|
+
validate: {
|
|
154
|
+
executor: 'nx:run-commands',
|
|
155
|
+
cache: true,
|
|
156
|
+
inputs: ['default'],
|
|
157
|
+
options: {
|
|
158
|
+
command: 'terraform validate',
|
|
159
|
+
forwardAllArgs: true,
|
|
160
|
+
cwd: '{projectRoot}/src',
|
|
161
|
+
},
|
|
162
|
+
},
|
|
163
|
+
};
|
|
164
|
+
(0, devkit_1.addProjectConfiguration)(tree, lib.fullyQualifiedName, {
|
|
165
|
+
root: lib.dir,
|
|
166
|
+
projectType: schema.type,
|
|
167
|
+
sourceRoot: (0, devkit_1.joinPathFragments)(lib.dir, 'src'),
|
|
168
|
+
targets: (0, object_1.sortObjectKeys)(Object.assign(Object.assign({}, libTargets), (schema.type === 'application' ? applicationTargets : {}))),
|
|
169
|
+
});
|
|
170
|
+
(0, nx_1.addGeneratorMetadata)(tree, lib.fullyQualifiedName, exports.TERRAFORM_PROJECT_GENERATOR_INFO);
|
|
171
|
+
(0, devkit_1.generateFiles)(tree, // the virtual file system
|
|
172
|
+
(0, devkit_1.joinPathFragments)(__dirname, `./files/${schema.type}`), // path to the file templates
|
|
173
|
+
lib.dir, // destination path of the files
|
|
174
|
+
{}, {
|
|
175
|
+
overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
|
|
176
|
+
});
|
|
177
|
+
const nxJson = (0, devkit_1.readNxJson)(tree);
|
|
178
|
+
if (!((_a = nxJson.plugins) === null || _a === void 0 ? void 0 : _a.find((p) => typeof p === 'string'
|
|
179
|
+
? p === NX_EXTEND_PLUGIN
|
|
180
|
+
: p.plugin === NX_EXTEND_PLUGIN))) {
|
|
181
|
+
nxJson.plugins = [...((_b = nxJson.plugins) !== null && _b !== void 0 ? _b : []), NX_EXTEND_PLUGIN];
|
|
182
|
+
(0, devkit_1.updateNxJson)(tree, nxJson);
|
|
183
|
+
}
|
|
184
|
+
// TODO: TF Metrics
|
|
185
|
+
// await addGeneratorMetricsIfApplicable(tree, [
|
|
186
|
+
// TERRAFORM_PROJECT_GENERATOR_INFO,
|
|
187
|
+
// ]);
|
|
188
|
+
(0, devkit_1.addDependenciesToPackageJson)(tree, {}, (0, versions_1.withVersions)(['@nx-extend/terraform']));
|
|
189
|
+
return () => {
|
|
190
|
+
(0, devkit_1.installPackagesTask)(tree);
|
|
191
|
+
};
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
exports.default = terraformProjectGenerator;
|
|
195
|
+
//# sourceMappingURL=generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/terraform/project/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
3
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
4
|
+
*/
|
|
5
|
+
import { ProjectType } from '@nx/devkit';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
9
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
10
|
+
*/
|
|
11
|
+
export interface TerraformProjectGeneratorSchema {
|
|
12
|
+
name: string;
|
|
13
|
+
type: ProjectType;
|
|
14
|
+
directory?: string;
|
|
15
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/schema",
|
|
3
|
+
"$id": "Terraform",
|
|
4
|
+
"title": "",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"properties": {
|
|
7
|
+
"name": {
|
|
8
|
+
"description": "The name of the project.",
|
|
9
|
+
"type": "string",
|
|
10
|
+
"$default": {
|
|
11
|
+
"$source": "argv",
|
|
12
|
+
"index": 0
|
|
13
|
+
},
|
|
14
|
+
"x-prompt": "What name would you like to use for the project?",
|
|
15
|
+
"pattern": "^[a-zA-Z][^:]*$"
|
|
16
|
+
},
|
|
17
|
+
"type": {
|
|
18
|
+
"type": "string",
|
|
19
|
+
"enum": ["application", "library"],
|
|
20
|
+
"x-priority": "important",
|
|
21
|
+
"x-prompt": "What type of Terraform project is this?",
|
|
22
|
+
"description": "Whether this is a terraform lib (re-usable modules) or app (deployable).",
|
|
23
|
+
"default": "application"
|
|
24
|
+
},
|
|
25
|
+
"directory": {
|
|
26
|
+
"description": "The directory of the new project.",
|
|
27
|
+
"type": "string",
|
|
28
|
+
"alias": "dir",
|
|
29
|
+
"x-priority": "important",
|
|
30
|
+
"default": "packages",
|
|
31
|
+
"x-prompt": "What directory would you like to store your project in?"
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
"required": ["name"]
|
|
35
|
+
}
|
|
@@ -211,7 +211,7 @@ export * from './runtime-config.js';
|
|
|
211
211
|
`;
|
|
212
212
|
|
|
213
213
|
exports[`ts#mcp-server generator > should match snapshot for BedrockAgentCoreRuntime generated constructs files > mcp-server-construct.ts 1`] = `
|
|
214
|
-
"import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';
|
|
214
|
+
"import { DockerImageAsset, Platform } from 'aws-cdk-lib/aws-ecr-assets';
|
|
215
215
|
import { Construct } from 'constructs';
|
|
216
216
|
import { execSync } from 'child_process';
|
|
217
217
|
import * as path from 'path';
|
|
@@ -238,6 +238,7 @@ export class SnapshotBedrockServer extends Construct {
|
|
|
238
238
|
super(scope, id);
|
|
239
239
|
|
|
240
240
|
this.dockerImage = new DockerImageAsset(this, 'DockerImage', {
|
|
241
|
+
platform: Platform.LINUX_ARM64,
|
|
241
242
|
directory: path.dirname(url.fileURLToPath(new URL(import.meta.url))),
|
|
242
243
|
extraHash: execSync(
|
|
243
244
|
\`docker inspect proj-snapshot-bedrock-server:latest --format '{{.Descriptor.digest}}'\`,
|
|
@@ -72,7 +72,7 @@ const tsMcpServerGenerator = (tree, options) => tslib_1.__awaiter(void 0, void 0
|
|
|
72
72
|
bundleTargetName: `${name}-bundle`,
|
|
73
73
|
targetFilePath: `${targetSourceDir}/http.ts`,
|
|
74
74
|
postBundleCommands: [
|
|
75
|
-
`docker build -t ${dockerImageTag} ${targetSourceDir} --build-context workspace=.`,
|
|
75
|
+
`docker build --platform linux/arm64 -t ${dockerImageTag} ${targetSourceDir} --build-context workspace=.`,
|
|
76
76
|
],
|
|
77
77
|
});
|
|
78
78
|
// Add shared constructs
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../../../../../../packages/nx-plugin/src/ts/mcp-server/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DockerImageAsset } from 'aws-cdk-lib/aws-ecr-assets';
|
|
1
|
+
import { DockerImageAsset, Platform } from 'aws-cdk-lib/aws-ecr-assets';
|
|
2
2
|
import { Construct } from 'constructs';
|
|
3
3
|
import { execSync } from 'child_process';
|
|
4
4
|
import * as path from 'path';
|
|
@@ -21,6 +21,7 @@ export class <%- mcpServerNameClassName %> extends Construct {
|
|
|
21
21
|
super(scope, id);
|
|
22
22
|
|
|
23
23
|
this.dockerImage = new DockerImageAsset(this, 'DockerImage', {
|
|
24
|
+
platform: Platform.LINUX_ARM64,
|
|
24
25
|
directory: path.dirname(url.fileURLToPath(new URL(import.meta.url))),
|
|
25
26
|
extraHash: execSync(
|
|
26
27
|
`docker inspect <%- dockerImageTag %> --format '{{.Descriptor.digest}}'`,
|
package/src/utils/bundle.js
CHANGED
|
@@ -16,7 +16,7 @@ const createPythonBundleTarget = ({ projectDir, packageName, }) => {
|
|
|
16
16
|
options: {
|
|
17
17
|
commands: [
|
|
18
18
|
`uv export --frozen --no-dev --no-editable --project ${projectDir} --package ${packageName} -o dist/${projectDir}/bundle/requirements.txt`,
|
|
19
|
-
`uv pip install -n --no-installer-metadata --no-compile-bytecode --python-platform x86_64-manylinux2014 --target dist/${projectDir}/bundle -r dist/${projectDir}/bundle/requirements.txt`,
|
|
19
|
+
`uv pip install -n --no-deps --no-installer-metadata --no-compile-bytecode --python-platform x86_64-manylinux2014 --target dist/${projectDir}/bundle -r dist/${projectDir}/bundle/requirements.txt`,
|
|
20
20
|
],
|
|
21
21
|
parallel: false,
|
|
22
22
|
},
|
package/src/utils/bundle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/bundle.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgBH;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,WAAW,GACqB,EAAuB,EAAE;IACzD,OAAO;QACL,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,wBAAwB,UAAU,SAAS,CAAC;QACtD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,uDAAuD,UAAU,cAAc,WAAW,YAAY,UAAU,0BAA0B;gBAC1I,
|
|
1
|
+
{"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/bundle.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAgBH;;GAEG;AACI,MAAM,wBAAwB,GAAG,CAAC,EACvC,UAAU,EACV,WAAW,GACqB,EAAuB,EAAE;IACzD,OAAO;QACL,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,iBAAiB;QAC3B,OAAO,EAAE,CAAC,wBAAwB,UAAU,SAAS,CAAC;QACtD,OAAO,EAAE;YACP,QAAQ,EAAE;gBACR,uDAAuD,UAAU,cAAc,WAAW,YAAY,UAAU,0BAA0B;gBAC1I,kIAAkI,UAAU,mBAAmB,UAAU,0BAA0B;aACpM;YACD,QAAQ,EAAE,KAAK;SAChB;KACF,CAAC;AACJ,CAAC,CAAC;AAhBW,QAAA,wBAAwB,4BAgBnC"}
|
package/src/utils/versions.d.ts
CHANGED
|
@@ -15,6 +15,7 @@ export declare const VERSIONS: {
|
|
|
15
15
|
readonly '@middy/core': "^6.0.0";
|
|
16
16
|
readonly '@nxlv/python': "~21.2.0";
|
|
17
17
|
readonly '@nx/devkit': "~21.0.3";
|
|
18
|
+
readonly '@nx-extend/terraform': "^9.0.0";
|
|
18
19
|
readonly '@modelcontextprotocol/sdk': "^1.11.3";
|
|
19
20
|
readonly '@tanstack/react-router': "^1.121.16";
|
|
20
21
|
readonly '@tanstack/router-plugin': "^1.121.16";
|
|
@@ -60,5 +61,5 @@ export type IVersion = keyof typeof VERSIONS;
|
|
|
60
61
|
* Add versions to the given dependencies
|
|
61
62
|
*/
|
|
62
63
|
export declare const withVersions: (deps: (keyof typeof VERSIONS)[]) => {
|
|
63
|
-
[k: string]: "^0.0.60" | "^3.775.0" | "^3.848.0" | "^2.24.1" | "^6.0.0" | "~21.2.0" | "~21.0.3" | "^1.11.3" | "^1.121.16" | "^1.120.17" | "^1.121.0" | "^3.0.94" | "^3.0.928" | "^1.0.38" | "^5.74.3" | "^5.84.2" | "11.0.0" | "^22.13.13" | "^8.10.148" | "^2.8.18" | "^5.0.3" | "^4.2.0" | "^1.0.20" | "^2.1006.0" | "^2.207.0" | "^3.10.3" | "^10.4.2" | "^2.8.5" | "^0.25.1" | "^5.2.5" | "^5.1.0" | "^2.4.0" | "^3.2.0" | "^3.5.3" | "^0.5.21" | "^4.1.11" | "4.20.1" | "^5.1.4" | "^4.0.14" | "npm:zod@^3";
|
|
64
|
+
[k: string]: "^0.0.60" | "^3.775.0" | "^3.848.0" | "^2.24.1" | "^6.0.0" | "~21.2.0" | "~21.0.3" | "^9.0.0" | "^1.11.3" | "^1.121.16" | "^1.120.17" | "^1.121.0" | "^3.0.94" | "^3.0.928" | "^1.0.38" | "^5.74.3" | "^5.84.2" | "11.0.0" | "^22.13.13" | "^8.10.148" | "^2.8.18" | "^5.0.3" | "^4.2.0" | "^1.0.20" | "^2.1006.0" | "^2.207.0" | "^3.10.3" | "^10.4.2" | "^2.8.5" | "^0.25.1" | "^5.2.5" | "^5.1.0" | "^2.4.0" | "^3.2.0" | "^3.5.3" | "^0.5.21" | "^4.1.11" | "4.20.1" | "^5.1.4" | "^4.0.14" | "npm:zod@^3";
|
|
64
65
|
};
|
package/src/utils/versions.js
CHANGED
|
@@ -18,6 +18,7 @@ exports.VERSIONS = {
|
|
|
18
18
|
'@middy/core': '^6.0.0',
|
|
19
19
|
'@nxlv/python': '~21.2.0',
|
|
20
20
|
'@nx/devkit': '~21.0.3',
|
|
21
|
+
'@nx-extend/terraform': '^9.0.0',
|
|
21
22
|
'@modelcontextprotocol/sdk': '^1.11.3',
|
|
22
23
|
'@tanstack/react-router': '^1.121.16',
|
|
23
24
|
'@tanstack/router-plugin': '^1.121.16',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,iCAAiC,EAAE,SAAS;IAC5C,kCAAkC,EAAE,UAAU;IAC9C,+BAA+B,EAAE,UAAU;IAC3C,+CAA+C,EAAE,UAAU;IAC3D,2CAA2C,EAAE,UAAU;IACvD,+BAA+B,EAAE,SAAS;IAC1C,gCAAgC,EAAE,SAAS;IAC3C,+BAA+B,EAAE,SAAS;IAC1C,+BAA+B,EAAE,SAAS;IAC1C,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS;IACzB,YAAY,EAAE,SAAS;IACvB,2BAA2B,EAAE,SAAS;IACtC,wBAAwB,EAAE,WAAW;IACrC,yBAAyB,EAAE,WAAW;IACtC,4BAA4B,EAAE,WAAW;IACzC,+BAA+B,EAAE,WAAW;IAC5C,wBAAwB,EAAE,UAAU;IACpC,qCAAqC,EAAE,SAAS;IAChD,+BAA+B,EAAE,UAAU;IAC3C,kCAAkC,EAAE,SAAS;IAC7C,uBAAuB,EAAE,SAAS;IAClC,gCAAgC,EAAE,SAAS;IAC3C,4BAA4B,EAAE,QAAQ;IACtC,cAAc,EAAE,QAAQ;IACxB,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,WAAW;IAC1B,mBAAmB,EAAE,WAAW;IAChC,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,eAAe,EAAE,QAAQ;IACzB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,UAAU;IACzB,mBAAmB,EAAE,SAAS;IAC9B,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,SAAS;IAClB,wBAAwB,EAAE,QAAQ;IAClC,OAAO,EAAE,QAAQ;IACjB,qBAAqB,EAAE,QAAQ;IAC/B,gBAAgB,EAAE,QAAQ;IAC1B,QAAQ,EAAE,QAAQ;IAClB,oBAAoB,EAAE,QAAQ;IAC9B,oBAAoB,EAAE,SAAS;IAC/B,WAAW,EAAE,SAAS;IACtB,mBAAmB,EAAE,SAAS;IAC9B,GAAG,EAAE,QAAQ,EAAE,kDAAkD;IACjE,qBAAqB,EAAE,QAAQ;IAC/B,GAAG,EAAE,SAAS;IACd,2FAA2F;IAC3F,oEAAoE;IACpE,QAAQ,EAAE,YAAY;CACd,CAAC;AAEX;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAA+B,EAAE,EAAE,CAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AADjD,QAAA,YAAY,gBACqC"}
|
|
1
|
+
{"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/versions.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACU,QAAA,QAAQ,GAAG;IACtB,iCAAiC,EAAE,SAAS;IAC5C,kCAAkC,EAAE,UAAU;IAC9C,+BAA+B,EAAE,UAAU;IAC3C,+CAA+C,EAAE,UAAU;IAC3D,2CAA2C,EAAE,UAAU;IACvD,+BAA+B,EAAE,SAAS;IAC1C,gCAAgC,EAAE,SAAS;IAC3C,+BAA+B,EAAE,SAAS;IAC1C,+BAA+B,EAAE,SAAS;IAC1C,aAAa,EAAE,QAAQ;IACvB,cAAc,EAAE,SAAS;IACzB,YAAY,EAAE,SAAS;IACvB,sBAAsB,EAAE,QAAQ;IAChC,2BAA2B,EAAE,SAAS;IACtC,wBAAwB,EAAE,WAAW;IACrC,yBAAyB,EAAE,WAAW;IACtC,4BAA4B,EAAE,WAAW;IACzC,+BAA+B,EAAE,WAAW;IAC5C,wBAAwB,EAAE,UAAU;IACpC,qCAAqC,EAAE,SAAS;IAChD,+BAA+B,EAAE,UAAU;IAC3C,kCAAkC,EAAE,SAAS;IAC7C,uBAAuB,EAAE,SAAS;IAClC,gCAAgC,EAAE,SAAS;IAC3C,4BAA4B,EAAE,QAAQ;IACtC,cAAc,EAAE,QAAQ;IACxB,cAAc,EAAE,QAAQ;IACxB,aAAa,EAAE,WAAW;IAC1B,mBAAmB,EAAE,WAAW;IAChC,aAAa,EAAE,SAAS;IACxB,gBAAgB,EAAE,QAAQ;IAC1B,eAAe,EAAE,QAAQ;IACzB,SAAS,EAAE,SAAS;IACpB,SAAS,EAAE,WAAW;IACtB,aAAa,EAAE,UAAU;IACzB,mBAAmB,EAAE,SAAS;IAC9B,UAAU,EAAE,SAAS;IACrB,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,SAAS;IAClB,wBAAwB,EAAE,QAAQ;IAClC,OAAO,EAAE,QAAQ;IACjB,qBAAqB,EAAE,QAAQ;IAC/B,gBAAgB,EAAE,QAAQ;IAC1B,QAAQ,EAAE,QAAQ;IAClB,oBAAoB,EAAE,QAAQ;IAC9B,oBAAoB,EAAE,SAAS;IAC/B,WAAW,EAAE,SAAS;IACtB,mBAAmB,EAAE,SAAS;IAC9B,GAAG,EAAE,QAAQ,EAAE,kDAAkD;IACjE,qBAAqB,EAAE,QAAQ;IAC/B,GAAG,EAAE,SAAS;IACd,2FAA2F;IAC3F,oEAAoE;IACpE,QAAQ,EAAE,YAAY;CACd,CAAC;AAEX;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAA+B,EAAE,EAAE,CAC9D,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,gBAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AADjD,QAAA,YAAY,gBACqC"}
|