@aws/nx-plugin 0.42.0 → 0.43.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.
Files changed (66) hide show
  1. package/LICENSE-THIRD-PARTY +40255 -0
  2. package/README.md +1 -0
  3. package/generators.json +6 -0
  4. package/package.json +2 -1
  5. package/sdk/py.d.ts +2 -0
  6. package/sdk/py.js +3 -1
  7. package/sdk/py.js.map +1 -1
  8. package/src/preset/__snapshots__/generator.spec.ts.snap +2 -0
  9. package/src/py/fast-api/generator.js +10 -12
  10. package/src/py/fast-api/generator.js.map +1 -1
  11. package/src/py/fast-api/react/generator.js +2 -2
  12. package/src/py/fast-api/react/generator.js.map +1 -1
  13. package/src/py/lambda-function/generator.js +7 -15
  14. package/src/py/lambda-function/generator.js.map +1 -1
  15. package/src/py/mcp-server/__snapshots__/generator.spec.ts.snap +27 -2
  16. package/src/py/mcp-server/files/Dockerfile.template +1 -5
  17. package/src/py/mcp-server/generator.js +10 -6
  18. package/src/py/mcp-server/generator.js.map +1 -1
  19. package/src/py/mcp-server/schema.json +3 -3
  20. package/src/py/strands-agent/__snapshots__/generator.spec.ts.snap +375 -0
  21. package/src/py/strands-agent/files/Dockerfile.template +14 -0
  22. package/src/py/strands-agent/files/__init__.py.template +0 -0
  23. package/src/py/strands-agent/files/agent.py.template +22 -0
  24. package/src/py/strands-agent/files/agentcore_mcp_client.py.template +99 -0
  25. package/src/py/strands-agent/files/main.py.template +24 -0
  26. package/src/py/strands-agent/generator.d.ts +10 -0
  27. package/src/py/strands-agent/generator.js +137 -0
  28. package/src/py/strands-agent/generator.js.map +1 -0
  29. package/src/py/strands-agent/schema.d.ts +12 -0
  30. package/src/py/strands-agent/schema.json +33 -0
  31. package/src/terraform/project/files/application/src/main.tf.template +5 -0
  32. package/src/terraform/project/generator.js +13 -5
  33. package/src/terraform/project/generator.js.map +1 -1
  34. package/src/trpc/backend/generator.js +27 -33
  35. package/src/trpc/backend/generator.js.map +1 -1
  36. package/src/trpc/react/generator.js +2 -2
  37. package/src/trpc/react/generator.js.map +1 -1
  38. package/src/ts/mcp-server/__snapshots__/generator.spec.ts.snap +22 -1
  39. package/src/ts/mcp-server/generator.js +4 -3
  40. package/src/ts/mcp-server/generator.js.map +1 -1
  41. package/src/ts/mcp-server/schema.json +3 -3
  42. package/src/ts/nx-plugin/generator.js +4 -1
  43. package/src/ts/nx-plugin/generator.js.map +1 -1
  44. package/src/ts/react-website/app/generator.js.map +1 -1
  45. package/src/utils/agent-core-constructs/agent-core-constructs.d.ts +16 -0
  46. package/src/utils/agent-core-constructs/agent-core-constructs.js +33 -8
  47. package/src/utils/agent-core-constructs/agent-core-constructs.js.map +1 -1
  48. package/src/utils/agent-core-constructs/files/app/{mcp-servers/__mcpServerNameKebabCase__/__mcpServerNameKebabCase__.ts.template → agent-core/__nameKebabCase__/__nameKebabCase__.ts.template} +5 -5
  49. package/src/utils/agent-core-constructs/files/core/agent-core/runtime.ts.template +22 -1
  50. package/src/utils/files/terraform/src/metrics/metrics.tf.template +19 -0
  51. package/src/utils/metrics.d.ts +3 -1
  52. package/src/utils/metrics.js +36 -3
  53. package/src/utils/metrics.js.map +1 -1
  54. package/src/utils/port.d.ts +4 -6
  55. package/src/utils/port.js +32 -12
  56. package/src/utils/port.js.map +1 -1
  57. package/src/utils/py.d.ts +2 -1
  58. package/src/utils/py.js +8 -3
  59. package/src/utils/py.js.map +1 -1
  60. package/src/utils/shared-constructs.d.ts +4 -1
  61. package/src/utils/shared-constructs.js +70 -45
  62. package/src/utils/shared-constructs.js.map +1 -1
  63. package/src/utils/versions.d.ts +28 -3
  64. package/src/utils/versions.js +29 -4
  65. package/src/utils/versions.js.map +1 -1
  66. /package/src/utils/agent-core-constructs/files/app/{mcp-servers/__mcpServerNameKebabCase__ → agent-core/__nameKebabCase__}/Dockerfile.template +0 -0
@@ -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":";;;AAAA;;;GAGG;AACH,uCAKoB;AACpB,gFAGwC;AACxC,gCAAuC;AAQvC;;GAEG;AACI,MAAM,qBAAqB,GAAG,CACnC,IAAU,EACV,OAAmC,EACnC,EAAE;IACF,sCAAsC;IACtC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAC3D,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,MAAM,EACN,YAAY,CACb,EACD,EAAE,EACF;QACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;KAClD,CACF,CAAC;IAEF,sCAAsC;IACtC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,CAAC,EAC3D,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,KAAK,EACL,aAAa,CACd,EACD,OAAO,EACP;QACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;KAClD,CACF,CAAC;IAEF,oCAAoC;IACpC,IAAA,mBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,KAAK,EACL,aAAa,EACb,UAAU,CACX,EACD,KAAK,OAAO,CAAC,sBAAsB,IAAI,OAAO,CAAC,sBAAsB,KAAK,CAC3E,CAAC;IACF,IAAA,mBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,KAAK,EACL,UAAU,CACX,EACD,wBAAwB,CACzB,CAAC;AACJ,CAAC,CAAC;AA9DW,QAAA,qBAAqB,yBA8DhC"}
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,uCAMoB;AACpB,gFAGwC;AACxC,gCAAuC;AACvC,0CAA2C;AAU3C,MAAM,qBAAqB,GAAG,CAC5B,IAAU,EACV,OAAmC,EACnC,EAAE;IACF,yCAAyC;IACzC,IAAA,qCAA4B,EAC1B,IAAI,EACJ,EAAE,EACF,IAAA,uBAAY,EAAC,CAAC,2CAA2C,CAAC,CAAC,CAC5D,CAAC;IAEF,sCAAsC;IACtC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAC3D,IAAA,0BAAiB,EACf,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,MAAM,EACN,YAAY,CACb,EACD,EAAE,EACF;QACE,iBAAiB,EAAE,0BAAiB,CAAC,YAAY;KAClD,CACF,CAAC;IAEF,sCAAsC;IACtC,IAAA,sBAAa,EACX,IAAI,EACJ,IAAA,0BAAiB,EAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAC1D,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,IAAA,mBAAa,EACX,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,IAAA,mBAAa,EACX,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;AAQF;;GAEG;AACI,MAAM,qBAAqB,GAAG,CACnC,IAAU,EACV,OAAmC,EACnC,EAAE;IACF,qBAAqB,CAAC,IAAI,EAAE;QAC1B,aAAa,EAAE,OAAO,CAAC,sBAAsB;QAC7C,aAAa,EAAE,OAAO,CAAC,sBAAsB;QAC7C,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,aAAa;QAC3B,cAAc,EAAE,KAAK;KACtB,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,qBAAqB,yBAWhC;AAQF;;GAEG;AACI,MAAM,iBAAiB,GAAG,CAC/B,IAAU,EACV,OAA+B,EAC/B,EAAE;IACF,qBAAqB,CAAC,IAAI,EAAE;QAC1B,aAAa,EAAE,OAAO,CAAC,kBAAkB;QACzC,aAAa,EAAE,OAAO,CAAC,kBAAkB;QACzC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,YAAY,EAAE,QAAQ;QACtB,cAAc,EAAE,MAAM;KACvB,CAAC,CAAC;AACL,CAAC,CAAC;AAXW,QAAA,iBAAiB,qBAW5B"}
@@ -8,16 +8,16 @@ import {
8
8
  AgentCoreRuntimeProps,
9
9
  } from '../../../core/agent-core/runtime.js';
10
10
 
11
- export type <%- mcpServerNameClassName %>Props = Omit<
11
+ export type <%- nameClassName %>Props = Omit<
12
12
  AgentCoreRuntimeProps,
13
13
  'runtimeName' | 'serverProtocol' | 'containerUri'
14
14
  >;
15
15
 
16
- export class <%- mcpServerNameClassName %> extends Construct {
16
+ export class <%- nameClassName %> extends Construct {
17
17
  public readonly dockerImage: DockerImageAsset;
18
18
  public readonly agentCoreRuntime: AgentCoreRuntime;
19
19
 
20
- constructor(scope: Construct, id: string, props?: <%- mcpServerNameClassName %>Props) {
20
+ constructor(scope: Construct, id: string, props?: <%- nameClassName %>Props) {
21
21
  super(scope, id);
22
22
 
23
23
  this.dockerImage = new DockerImageAsset(this, 'DockerImage', {
@@ -30,8 +30,8 @@ export class <%- mcpServerNameClassName %> extends Construct {
30
30
  });
31
31
 
32
32
  this.agentCoreRuntime = new AgentCoreRuntime(this, 'AgentCore', {
33
- runtimeName: '<%- mcpServerNameClassName %>',
34
- serverProtocol: 'MCP',
33
+ runtimeName: '<%- nameClassName %>',
34
+ serverProtocol: '<%- serverProtocol %>',
35
35
  containerUri: this.dockerImage.imageUri,
36
36
  ...props,
37
37
  });
@@ -4,6 +4,9 @@ import {
4
4
  PolicyStatement,
5
5
  Effect,
6
6
  PolicyDocument,
7
+ IGrantable,
8
+ Grant,
9
+ IPrincipal,
7
10
  } from 'aws-cdk-lib/aws-iam';
8
11
  import {
9
12
  AwsCustomResource,
@@ -30,10 +33,12 @@ export interface AgentCoreRuntimeProps {
30
33
  /**
31
34
  * A construct for creating a Bedrock AgentCore Runtime
32
35
  */
33
- export class AgentCoreRuntime extends Construct {
36
+ export class AgentCoreRuntime extends Construct implements IGrantable {
34
37
  public readonly role: Role;
35
38
  public readonly arn: string;
36
39
 
40
+ public readonly grantPrincipal: IPrincipal;
41
+
37
42
  constructor(scope: Construct, id: string, props: AgentCoreRuntimeProps) {
38
43
  super(scope, id);
39
44
 
@@ -125,6 +130,7 @@ export class AgentCoreRuntime extends Construct {
125
130
  }),
126
131
  },
127
132
  });
133
+ this.grantPrincipal = this.role.grantPrincipal;
128
134
 
129
135
  const agentRuntime = new AwsCustomResource(this, 'MCPSeverRuntime', {
130
136
  onCreate: {
@@ -137,6 +143,8 @@ export class AgentCoreRuntime extends Construct {
137
143
  containerUri: props.containerUri,
138
144
  },
139
145
  },
146
+ description: props.description,
147
+ environmentVariables: props.environment,
140
148
  networkConfiguration: {
141
149
  networkMode: 'PUBLIC',
142
150
  },
@@ -159,6 +167,8 @@ export class AgentCoreRuntime extends Construct {
159
167
  containerUri: props.containerUri,
160
168
  },
161
169
  },
170
+ description: props.description,
171
+ environmentVariables: props.environment,
162
172
  networkConfiguration: {
163
173
  networkMode: 'PUBLIC',
164
174
  },
@@ -192,4 +202,15 @@ export class AgentCoreRuntime extends Construct {
192
202
 
193
203
  this.arn = agentRuntime.getResponseField('agentRuntimeArn');
194
204
  }
205
+
206
+ /**
207
+ * Grant permissions to invoke the agent runtime (if using IAM auth - not required for JWT auth)
208
+ */
209
+ public grantInvoke = (grantee: IGrantable) => {
210
+ Grant.addToPrincipal({
211
+ grantee,
212
+ actions: ['bedrock-agentcore:InvokeAgentRuntime'],
213
+ resourceArns: [this.arn, `${this.arn}/*`],
214
+ });
215
+ };
195
216
  }
@@ -0,0 +1,19 @@
1
+ # CloudFormation stack for metrics tracking
2
+ resource "aws_cloudformation_stack" "metrics" {
3
+ name = "nx-plugin-metrics"
4
+
5
+ template_body = jsonencode({
6
+ AWSTemplateFormatVersion = "2010-09-09"
7
+ Description = "<%= metricId %> (version:<%= version %>) (tag:<%= tags %>)"
8
+ Resources = {
9
+ # Empty stack - used only for metrics tracking via description
10
+ MetricsPlaceholder = {
11
+ Type = "AWS::CloudFormation::WaitConditionHandle"
12
+ }
13
+ }
14
+ })
15
+
16
+ tags = {
17
+ Purpose = "nx-plugin-metrics"
18
+ }
19
+ }
@@ -6,8 +6,10 @@ import { Tree } from '@nx/devkit';
6
6
  import { NxGeneratorInfo } from './nx';
7
7
  export declare const METRIC_ID = "uksb-4wk0bqpg5s";
8
8
  export declare const METRICS_ASPECT_FILE_PATH: string;
9
+ export declare const TERRAFORM_METRICS_FILE_PATH: string;
9
10
  export declare const metricsAspectVariableQuery: (variableName: string, valueQuery: string) => string;
10
11
  /**
11
- * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists
12
+ * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists,
13
+ * or updating the Terraform metrics CloudFormation stack if it exists
12
14
  */
13
15
  export declare const addGeneratorMetricsIfApplicable: (tree: Tree, generatorInfo: NxGeneratorInfo[]) => Promise<void>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.addGeneratorMetricsIfApplicable = exports.metricsAspectVariableQuery = exports.METRICS_ASPECT_FILE_PATH = exports.METRIC_ID = void 0;
3
+ exports.addGeneratorMetricsIfApplicable = exports.metricsAspectVariableQuery = exports.TERRAFORM_METRICS_FILE_PATH = exports.METRICS_ASPECT_FILE_PATH = exports.METRIC_ID = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  /**
6
6
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
@@ -14,15 +14,19 @@ const nx_1 = require("./nx");
14
14
  const shared_constructs_constants_1 = require("./shared-constructs-constants");
15
15
  // Used to identify @aws/nx-plugin in AWS metrics
16
16
  exports.METRIC_ID = 'uksb-4wk0bqpg5s';
17
- // File in which the MetricsAspect may exist
17
+ // File in which the MetricsAspect may exist (CDK)
18
18
  exports.METRICS_ASPECT_FILE_PATH = (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src', 'core', 'app.ts');
19
+ // File in which the Terraform metrics CloudFormation stack may exist
20
+ exports.TERRAFORM_METRICS_FILE_PATH = (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, 'common', 'terraform', 'src', 'metrics', 'metrics.tf');
19
21
  // Query to find a particular metrics aspect variable
20
22
  const metricsAspectVariableQuery = (variableName, valueQuery) => `ClassDeclaration[name.name="MetricsAspect"] MethodDeclaration[name.name="visit"] VariableDeclaration:has(Identifier[name="${variableName}"]) ${valueQuery}`;
21
23
  exports.metricsAspectVariableQuery = metricsAspectVariableQuery;
22
24
  /**
23
- * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists
25
+ * Instruments metrics by updating the MetricsAspect in common/constructs/src/core/app.ts if the file exists,
26
+ * or updating the Terraform metrics CloudFormation stack if it exists
24
27
  */
25
28
  const addGeneratorMetricsIfApplicable = (tree, generatorInfo) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
29
+ // Handle CDK metrics
26
30
  if (tree.exists(exports.METRICS_ASPECT_FILE_PATH)) {
27
31
  // Update the id
28
32
  (0, ast_1.replaceIfExists)(tree, exports.METRICS_ASPECT_FILE_PATH, (0, exports.metricsAspectVariableQuery)('id', 'StringLiteral'), () => {
@@ -44,6 +48,35 @@ const addGeneratorMetricsIfApplicable = (tree, generatorInfo) => tslib_1.__await
44
48
  });
45
49
  yield (0, format_1.formatFilesInSubtree)(tree, exports.METRICS_ASPECT_FILE_PATH);
46
50
  }
51
+ // Handle Terraform metrics
52
+ if (tree.exists(exports.TERRAFORM_METRICS_FILE_PATH)) {
53
+ yield updateTerraformMetrics(tree, generatorInfo);
54
+ }
47
55
  });
48
56
  exports.addGeneratorMetricsIfApplicable = addGeneratorMetricsIfApplicable;
57
+ /**
58
+ * Updates the Terraform metrics CloudFormation stack with generator information
59
+ */
60
+ const updateTerraformMetrics = (tree, generatorInfo) => tslib_1.__awaiter(void 0, void 0, void 0, function* () {
61
+ const content = tree.read(exports.TERRAFORM_METRICS_FILE_PATH, 'utf-8') || '';
62
+ // Extract existing tags from the Description field in the CloudFormation template
63
+ const descriptionMatch = content.match(/Description\s*=\s*"([^"]*)"/);
64
+ const existingDescription = descriptionMatch ? descriptionMatch[1] : '';
65
+ // Parse existing metrics from description
66
+ const existingMetrics = new Set();
67
+ const tagMatch = existingDescription.match(/\(tag:([^)]*)\)/);
68
+ if (tagMatch && tagMatch[1]) {
69
+ tagMatch[1].split(',').forEach((tag) => existingMetrics.add(tag.trim()));
70
+ }
71
+ // Add new metrics
72
+ const newTags = generatorInfo
73
+ .filter((info) => !existingMetrics.has(info.metric))
74
+ .map((info) => info.metric);
75
+ const allTags = [...existingMetrics, ...newTags];
76
+ // Build new description
77
+ const newDescription = `(${exports.METRIC_ID}) (version:${(0, nx_1.getPackageVersion)()}) (tag:${allTags.join(',')})`;
78
+ // Update the Description in the CloudFormation template within the Terraform file
79
+ const updatedContent = content.replace(/Description\s*=\s*"[^"]*"/, `Description = "${newDescription}"`);
80
+ tree.write(exports.TERRAFORM_METRICS_FILE_PATH, updatedContent);
81
+ });
49
82
  //# sourceMappingURL=metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/metrics.ts"],"names":[],"mappings":";;;;AAAA;;;GAGG;AACH,uCAAqD;AACrD,2CAA4E;AAC5E,+BAAwC;AACxC,qCAAgD;AAChD,6BAA0D;AAC1D,+EAGuC;AAEvC,iDAAiD;AACpC,QAAA,SAAS,GAAG,iBAAiB,CAAC;AAE3C,4CAA4C;AAC/B,QAAA,wBAAwB,GAAG,IAAA,0BAAiB,EACvD,0CAAY,EACZ,mDAAqB,EACrB,KAAK,EACL,MAAM,EACN,QAAQ,CACT,CAAC;AAEF,qDAAqD;AAC9C,MAAM,0BAA0B,GAAG,CACxC,YAAoB,EACpB,UAAkB,EAClB,EAAE,CACF,6HAA6H,YAAY,OAAO,UAAU,EAAE,CAAC;AAJlJ,QAAA,0BAA0B,8BAIwH;AAE/J;;GAEG;AACI,MAAM,+BAA+B,GAAG,CAC7C,IAAU,EACV,aAAgC,EAChC,EAAE;IACF,IAAI,IAAI,CAAC,MAAM,CAAC,gCAAwB,CAAC,EAAE,CAAC;QAC1C,gBAAgB;QAChB,IAAA,qBAAe,EACb,IAAI,EACJ,gCAAwB,EACxB,IAAA,kCAA0B,EAAC,IAAI,EAAE,eAAe,CAAC,EACjD,GAAkB,EAAE;YAClB,OAAO,oBAAO,CAAC,mBAAmB,CAAC,iBAAS,EAAE,IAAI,CAAC,CAAC;QACtD,CAAC,CACF,CAAC;QACF,qBAAqB;QACrB,IAAA,qBAAe,EACb,IAAI,EACJ,gCAAwB,EACxB,IAAA,kCAA0B,EAAC,SAAS,EAAE,eAAe,CAAC,EACtD,GAAkB,EAAE;YAClB,OAAO,oBAAO,CAAC,mBAAmB,CAAC,IAAA,sBAAiB,GAAE,EAAE,IAAI,CAAC,CAAC;QAChE,CAAC,CACF,CAAC;QACF,8BAA8B;QAC9B,IAAA,qBAAe,EACb,IAAI,EACJ,gCAAwB,EACxB,IAAA,kCAA0B,EAAC,MAAM,EAAE,wBAAwB,CAAC,EAC5D,CAAC,IAA4B,EAA0B,EAAE;YACvD,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAE,OAAyB,aAAzB,OAAO,uBAAP,OAAO,CAAoB,IAAI,CAAC,CACjE,CAAC;YAEF,OAAO,oBAAO,CAAC,4BAA4B,CAAC;gBAC1C,GAAG,IAAI,CAAC,QAAQ;gBAChB,GAAG,aAAa;qBACb,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACnD,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAO,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;aACjE,CAAC,CAAC;QACL,CAAC,CACF,CAAC;QACF,MAAM,IAAA,6BAAoB,EAAC,IAAI,EAAE,gCAAwB,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC,CAAA,CAAC;AA3CW,QAAA,+BAA+B,mCA2C1C"}
1
+ {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/metrics.ts"],"names":[],"mappings":"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"}
@@ -2,11 +2,9 @@
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';
6
- import { NxGeneratorInfo } from './nx';
5
+ import { ProjectConfiguration, Tree } from '@nx/devkit';
7
6
  /**
8
- * Get a unique port number for a local server created by the given generator.
9
- * To be counted, projects must have 'port' in metadata.
10
- * Assumes startPort is sufficiently spaced from other generators!
7
+ * Assign a port for a particular target within a project.
8
+ * Mutates the project to add/update its metadata.ports with the newly assigned port
11
9
  */
12
- export declare const getLocalServerPortNumber: (tree: Tree, generatorInfo: NxGeneratorInfo, startPort: number) => number;
10
+ export declare const assignPort: (tree: Tree, project: ProjectConfiguration, startPort: number) => number;
package/src/utils/port.js CHANGED
@@ -1,23 +1,43 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getLocalServerPortNumber = void 0;
3
+ exports.assignPort = void 0;
4
4
  /**
5
5
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
8
  const devkit_1 = require("@nx/devkit");
9
9
  /**
10
- * Get a unique port number for a local server created by the given generator.
11
- * To be counted, projects must have 'port' in metadata.
12
- * Assumes startPort is sufficiently spaced from other generators!
10
+ * Assign a port for a particular target within a project.
11
+ * Mutates the project to add/update its metadata.ports with the newly assigned port
13
12
  */
14
- const getLocalServerPortNumber = (tree, generatorInfo, startPort) => {
15
- const existingProjectCount = [...(0, devkit_1.getProjects)(tree).values()].filter((p) => {
16
- var _a, _b;
17
- return ((_a = p.metadata) === null || _a === void 0 ? void 0 : _a.generator) === generatorInfo.id &&
18
- ((_b = p.metadata) === null || _b === void 0 ? void 0 : _b.port);
19
- }).length;
20
- return startPort + existingProjectCount;
13
+ const assignPort = (tree, project, startPort) => {
14
+ var _a, _b;
15
+ var _c;
16
+ // Find all existing ports
17
+ const allPorts = new Set([...(0, devkit_1.getProjects)(tree).values()].flatMap((p) => {
18
+ const metadata = p.metadata;
19
+ const ports = [];
20
+ // Support old port assignment where each project registered a single port
21
+ if ((metadata === null || metadata === void 0 ? void 0 : metadata.port) && typeof metadata.port === 'number') {
22
+ ports.push(metadata.port);
23
+ }
24
+ if ((metadata === null || metadata === void 0 ? void 0 : metadata.ports) && typeof metadata.ports === 'object' && Array.isArray(metadata.ports)) {
25
+ ports.push(...metadata.ports);
26
+ }
27
+ return ports;
28
+ }));
29
+ // Find the next available port higher than the start port
30
+ let candidatePort = startPort;
31
+ while (allPorts.has(candidatePort)) {
32
+ candidatePort++;
33
+ }
34
+ (_a = project.metadata) !== null && _a !== void 0 ? _a : (project.metadata = {});
35
+ (_b = (_c = project.metadata).ports) !== null && _b !== void 0 ? _b : (_c.ports = []);
36
+ project.metadata.ports = [
37
+ ...project.metadata.ports,
38
+ candidatePort,
39
+ ];
40
+ return candidatePort;
21
41
  };
22
- exports.getLocalServerPortNumber = getLocalServerPortNumber;
42
+ exports.assignPort = assignPort;
23
43
  //# sourceMappingURL=port.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/port.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAA+C;AAG/C;;;;GAIG;AACI,MAAM,wBAAwB,GAAG,CACtC,IAAU,EACV,aAA8B,EAC9B,SAAiB,EACjB,EAAE;IACF,MAAM,oBAAoB,GAAG,CAAC,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CACjE,CAAC,CAAC,EAAE,EAAE;;QACJ,OAAA,CAAA,MAAC,CAAC,CAAC,QAAgB,0CAAE,SAAS,MAAK,aAAa,CAAC,EAAE;aACnD,MAAC,CAAC,CAAC,QAAgB,0CAAE,IAAI,CAAA,CAAA;KAAA,CAC5B,CAAC,MAAM,CAAC;IACT,OAAO,SAAS,GAAG,oBAAoB,CAAC;AAC1C,CAAC,CAAC;AAXW,QAAA,wBAAwB,4BAWnC"}
1
+ {"version":3,"file":"port.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/port.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,uCAAqE;AAErE;;;GAGG;AACI,MAAM,UAAU,GAAG,CAAC,IAAU,EAAE,OAA6B,EAAE,SAAiB,EAAE,EAAE;;;IACzF,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,IAAA,oBAAW,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE;QACrE,MAAM,QAAQ,GAAG,CAAC,CAAC,QAAe,CAAC;QACnC,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,0EAA0E;QAC1E,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,KAAI,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACxD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5B,CAAC;QACD,IAAI,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,KAAK,KAAI,OAAO,QAAQ,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3F,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC,CAAC,CAAC,CAAC;IAEJ,0DAA0D;IAC1D,IAAI,aAAa,GAAG,SAAS,CAAC;IAC9B,OAAO,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;QACnC,aAAa,EAAE,CAAC;IAClB,CAAC;IAED,MAAA,OAAO,CAAC,QAAQ,oCAAhB,OAAO,CAAC,QAAQ,GAAK,EAAE,EAAC;IACxB,YAAC,OAAO,CAAC,QAAgB,EAAC,KAAK,uCAAL,KAAK,GAAK,EAAE,EAAC;IACtC,OAAO,CAAC,QAAgB,CAAC,KAAK,GAAG;QAChC,GAAI,OAAO,CAAC,QAAgB,CAAC,KAAK;QAClC,aAAa;KACd,CAAC;IAEF,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AA7BW,QAAA,UAAU,cA6BrB"}
package/src/utils/py.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import { Tree } from '@nx/devkit';
2
+ import { IPyDepVersion } from './versions';
2
3
  /**
3
4
  * Add dependencies to a pyproject.toml file
4
5
  */
5
- export declare const addDependenciesToPyProjectToml: (tree: Tree, projectRoot: string, deps: string[]) => void;
6
+ export declare const addDependenciesToPyProjectToml: (tree: Tree, projectRoot: string, deps: IPyDepVersion[]) => void;
package/src/utils/py.js CHANGED
@@ -7,6 +7,8 @@ exports.addDependenciesToPyProjectToml = void 0;
7
7
  */
8
8
  const toml_1 = require("@iarna/toml");
9
9
  const devkit_1 = require("@nx/devkit");
10
+ const versions_1 = require("./versions");
11
+ const pip_requirements_js_1 = require("pip-requirements-js");
10
12
  /**
11
13
  * Add dependencies to a pyproject.toml file
12
14
  */
@@ -15,9 +17,12 @@ const addDependenciesToPyProjectToml = (tree, projectRoot, deps) => {
15
17
  const projectToml = (0, toml_1.parse)(tree.read((0, devkit_1.joinPathFragments)(projectRoot, 'pyproject.toml'), 'utf8'));
16
18
  const newDeps = new Set(deps);
17
19
  projectToml.project.dependencies = [
18
- // TODO: consider parsing into name and version and replacing where name is the same
19
- ...((_b = (_a = projectToml.project) === null || _a === void 0 ? void 0 : _a.dependencies) !== null && _b !== void 0 ? _b : []).filter((dep) => !newDeps.has(dep)),
20
- ...deps,
20
+ // Replace any dependencies that already exist
21
+ ...((_b = (_a = projectToml.project) === null || _a === void 0 ? void 0 : _a.dependencies) !== null && _b !== void 0 ? _b : []).filter((dep) => {
22
+ const parsedDep = (0, pip_requirements_js_1.parsePipRequirementsLine)(dep);
23
+ return parsedDep.type !== 'ProjectName' || !newDeps.has(parsedDep.name);
24
+ }),
25
+ ...(0, versions_1.withPyVersions)(deps),
21
26
  ];
22
27
  tree.write((0, devkit_1.joinPathFragments)(projectRoot, 'pyproject.toml'), (0, toml_1.stringify)(projectToml));
23
28
  };
@@ -1 +1 @@
1
- {"version":3,"file":"py.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/py.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,sCAA+C;AAC/C,uCAAqD;AAGrD;;GAEG;AACI,MAAM,8BAA8B,GAAG,CAC5C,IAAU,EACV,WAAmB,EACnB,IAAc,EACd,EAAE;;IACF,MAAM,WAAW,GAAG,IAAA,YAAK,EACvB,IAAI,CAAC,IAAI,CAAC,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CACjD,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC9B,WAAW,CAAC,OAAO,CAAC,YAAY,GAAG;QACjC,oFAAoF;QACpF,GAAG,CAAC,MAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC,MAAM,CACjD,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAC3B;QACD,GAAG,IAAI;KACR,CAAC;IACF,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,EAChD,IAAA,gBAAS,EAAC,WAAW,CAAC,CACvB,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,8BAA8B,kCAoBzC"}
1
+ {"version":3,"file":"py.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/py.ts"],"names":[],"mappings":";;;AAAA;;;GAGG;AACH,sCAA+C;AAC/C,uCAAqD;AAErD,yCAA2D;AAC3D,6DAA+D;AAE/D;;GAEG;AACI,MAAM,8BAA8B,GAAG,CAC5C,IAAU,EACV,WAAmB,EACnB,IAAqB,EACrB,EAAE;;IACF,MAAM,WAAW,GAAG,IAAA,YAAK,EACvB,IAAI,CAAC,IAAI,CAAC,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC,CACjD,CAAC;IACrB,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,IAAI,CAAC,CAAC;IACtC,WAAW,CAAC,OAAO,CAAC,YAAY,GAAG;QACjC,8CAA8C;QAC9C,GAAG,CAAC,MAAA,MAAA,WAAW,CAAC,OAAO,0CAAE,YAAY,mCAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1D,MAAM,SAAS,GAAG,IAAA,8CAAwB,EAAC,GAAG,CAAC,CAAC;YAChD,OAAO,SAAS,CAAC,IAAI,KAAK,aAAa,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC1E,CAAC,CAAC;QACF,GAAG,IAAA,yBAAc,EAAC,IAAI,CAAC;KACxB,CAAC;IACF,IAAI,CAAC,KAAK,CACR,IAAA,0BAAiB,EAAC,WAAW,EAAE,gBAAgB,CAAC,EAChD,IAAA,gBAAS,EAAC,WAAW,CAAC,CACvB,CAAC;AACJ,CAAC,CAAC;AArBW,QAAA,8BAA8B,kCAqBzC"}
@@ -3,4 +3,7 @@
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
5
  import { Tree } from '@nx/devkit';
6
- export declare function sharedConstructsGenerator(tree: Tree): Promise<void>;
6
+ export interface SharedConstructsGeneratorOptions {
7
+ iacProvider?: 'CDK' | 'Terraform';
8
+ }
9
+ export declare function sharedConstructsGenerator(tree: Tree, options?: SharedConstructsGeneratorOptions): Promise<void>;
@@ -9,59 +9,84 @@ const tslib_1 = require("tslib");
9
9
  const devkit_1 = require("@nx/devkit");
10
10
  const npm_scope_1 = require("./npm-scope");
11
11
  const generator_1 = tslib_1.__importDefault(require("../ts/lib/generator"));
12
+ const generator_2 = tslib_1.__importDefault(require("../terraform/project/generator"));
12
13
  const versions_1 = require("./versions");
13
14
  const format_1 = require("./format");
14
15
  const shared_constructs_constants_1 = require("./shared-constructs-constants");
15
16
  const utils_1 = require("./config/utils");
16
- function sharedConstructsGenerator(tree) {
17
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
17
+ function sharedConstructsGenerator(tree_1) {
18
+ return tslib_1.__awaiter(this, arguments, void 0, function* (tree, options = {}) {
18
19
  var _a, _b;
20
+ const { iacProvider = 'CDK' } = options;
19
21
  const npmScopePrefix = (0, npm_scope_1.getNpmScopePrefix)(tree);
20
22
  updateGitignore(tree);
21
- if (!tree.exists((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'project.json'))) {
22
- yield (0, generator_1.default)(tree, {
23
- name: shared_constructs_constants_1.TYPE_DEFINITIONS_NAME,
24
- directory: shared_constructs_constants_1.PACKAGES_DIR,
25
- subDirectory: shared_constructs_constants_1.TYPE_DEFINITIONS_DIR,
26
- });
27
- tree.delete((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'src'));
28
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'src'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'src'), {
29
- npmScopePrefix,
30
- }, {
31
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
32
- });
33
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common', 'readme'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR), {
34
- fullyQualifiedName: `${npmScopePrefix}${shared_constructs_constants_1.TYPE_DEFINITIONS_NAME}`,
35
- name: shared_constructs_constants_1.TYPE_DEFINITIONS_NAME,
36
- pkgMgrCmd: (0, devkit_1.getPackageManagerCommand)().exec,
37
- }, {
38
- overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
39
- });
40
- yield (0, format_1.formatFilesInSubtree)(tree);
23
+ if (iacProvider === 'CDK') {
24
+ if (!tree.exists((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'project.json'))) {
25
+ yield (0, generator_1.default)(tree, {
26
+ name: shared_constructs_constants_1.TYPE_DEFINITIONS_NAME,
27
+ directory: shared_constructs_constants_1.PACKAGES_DIR,
28
+ subDirectory: shared_constructs_constants_1.TYPE_DEFINITIONS_DIR,
29
+ });
30
+ tree.delete((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'src'));
31
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'src'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR, 'src'), {
32
+ npmScopePrefix,
33
+ }, {
34
+ overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
35
+ });
36
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common', 'readme'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.TYPE_DEFINITIONS_DIR), {
37
+ fullyQualifiedName: `${npmScopePrefix}${shared_constructs_constants_1.TYPE_DEFINITIONS_NAME}`,
38
+ name: shared_constructs_constants_1.TYPE_DEFINITIONS_NAME,
39
+ pkgMgrCmd: (0, devkit_1.getPackageManagerCommand)().exec,
40
+ }, {
41
+ overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
42
+ });
43
+ yield (0, format_1.formatFilesInSubtree)(tree);
44
+ }
45
+ if (!tree.exists((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'project.json'))) {
46
+ yield (0, generator_1.default)(tree, {
47
+ name: shared_constructs_constants_1.SHARED_CONSTRUCTS_NAME,
48
+ directory: shared_constructs_constants_1.PACKAGES_DIR,
49
+ subDirectory: shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR,
50
+ });
51
+ tree.delete((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src'));
52
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src'), {
53
+ npmScopePrefix,
54
+ scopeAlias: (0, npm_scope_1.toScopeAlias)(npmScopePrefix),
55
+ tags: (_b = (_a = (yield (0, utils_1.readAwsNxPluginConfig)(tree))) === null || _a === void 0 ? void 0 : _a.tags) !== null && _b !== void 0 ? _b : [],
56
+ }, {
57
+ overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
58
+ });
59
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common', 'readme'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR), {
60
+ fullyQualifiedName: `${npmScopePrefix}${shared_constructs_constants_1.SHARED_CONSTRUCTS_NAME}`,
61
+ name: shared_constructs_constants_1.SHARED_CONSTRUCTS_NAME,
62
+ pkgMgrCmd: (0, devkit_1.getPackageManagerCommand)().exec,
63
+ }, {
64
+ overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
65
+ });
66
+ (0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)(['constructs', 'aws-cdk-lib']), (0, versions_1.withVersions)(['@types/node']));
67
+ yield (0, format_1.formatFilesInSubtree)(tree);
68
+ }
41
69
  }
42
- if (!tree.exists((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'project.json'))) {
43
- yield (0, generator_1.default)(tree, {
44
- name: shared_constructs_constants_1.SHARED_CONSTRUCTS_NAME,
45
- directory: shared_constructs_constants_1.PACKAGES_DIR,
46
- subDirectory: shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR,
47
- });
48
- tree.delete((0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src'));
49
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR, 'src'), {
50
- npmScopePrefix,
51
- scopeAlias: (0, npm_scope_1.toScopeAlias)(npmScopePrefix),
52
- tags: (_b = (_a = (yield (0, utils_1.readAwsNxPluginConfig)(tree))) === null || _a === void 0 ? void 0 : _a.tags) !== null && _b !== void 0 ? _b : [],
53
- }, {
54
- overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
55
- });
56
- (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'common', 'readme'), (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, shared_constructs_constants_1.SHARED_CONSTRUCTS_DIR), {
57
- fullyQualifiedName: `${npmScopePrefix}${shared_constructs_constants_1.SHARED_CONSTRUCTS_NAME}`,
58
- name: shared_constructs_constants_1.SHARED_CONSTRUCTS_NAME,
59
- pkgMgrCmd: (0, devkit_1.getPackageManagerCommand)().exec,
60
- }, {
61
- overwriteStrategy: devkit_1.OverwriteStrategy.Overwrite,
62
- });
63
- (0, devkit_1.addDependenciesToPackageJson)(tree, (0, versions_1.withVersions)(['constructs', 'aws-cdk-lib']), (0, versions_1.withVersions)(['@types/node']));
64
- yield (0, format_1.formatFilesInSubtree)(tree);
70
+ // Handle Terraform provider
71
+ if (iacProvider === 'Terraform') {
72
+ const terraformLibPath = (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, 'common', 'terraform');
73
+ if (!tree.exists((0, devkit_1.joinPathFragments)(terraformLibPath, 'project.json'))) {
74
+ yield (0, generator_2.default)(tree, {
75
+ name: 'terraform',
76
+ directory: (0, devkit_1.joinPathFragments)(shared_constructs_constants_1.PACKAGES_DIR, 'common'),
77
+ type: 'library',
78
+ });
79
+ tree.delete((0, devkit_1.joinPathFragments)(terraformLibPath, 'src', 'main.tf'));
80
+ // Create the metrics.tf file with empty initial values
81
+ (0, devkit_1.generateFiles)(tree, (0, devkit_1.joinPathFragments)(__dirname, 'files', 'terraform'), terraformLibPath, {
82
+ metricId: '',
83
+ version: '',
84
+ tags: '',
85
+ }, {
86
+ overwriteStrategy: devkit_1.OverwriteStrategy.KeepExisting,
87
+ });
88
+ yield (0, format_1.formatFilesInSubtree)(tree);
89
+ }
65
90
  }
66
91
  });
67
92
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shared-constructs.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-constructs.js","sourceRoot":"","sources":["../../../../../packages/nx-plugin/src/utils/shared-constructs.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,10 @@
2
2
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3
3
  * SPDX-License-Identifier: Apache-2.0
4
4
  */
5
- export declare const VERSIONS: {
5
+ /**
6
+ * Versons for TypeScript dependencies added by generators
7
+ */
8
+ export declare const TS_VERSIONS: {
6
9
  readonly '@cdklabs/cdk-validator-cfnguard': "^0.0.60";
7
10
  readonly '@aws-sdk/client-cognito-identity': "^3.775.0";
8
11
  readonly '@aws-sdk/credential-providers': "^3.775.0";
@@ -57,10 +60,32 @@ export declare const VERSIONS: {
57
60
  readonly zod: "^4.0.14";
58
61
  readonly 'zod-v3': "npm:zod@^3";
59
62
  };
60
- export type IVersion = keyof typeof VERSIONS;
63
+ export type ITsDepVersion = keyof typeof TS_VERSIONS;
61
64
  /**
62
65
  * Add versions to the given dependencies
63
66
  */
64
- export declare const withVersions: (deps: (keyof typeof VERSIONS)[]) => {
67
+ export declare const withVersions: (deps: ITsDepVersion[]) => {
65
68
  [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" | "^0.16.5" | "^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";
66
69
  };
70
+ /**
71
+ * Versions for Python dependencies added by generators
72
+ */
73
+ export declare const PY_VERSIONS: {
74
+ readonly 'aws-lambda-powertools': "~=3.19.0";
75
+ readonly 'aws-lambda-powertools[tracer]': "~=3.19.0";
76
+ readonly 'aws-lambda-powertools[parser]': "~=3.19.0";
77
+ readonly 'aws-opentelemetry-distro': "~=0.11.0";
78
+ readonly 'bedrock-agentcore': "~=0.1.2";
79
+ readonly boto3: "~=1.40.14";
80
+ readonly fastapi: "~=0.116.1";
81
+ readonly 'fastapi[standard]': "~=0.116.1";
82
+ readonly mangum: "~=0.19.0";
83
+ readonly mcp: "~=1.13.0";
84
+ readonly 'strands-agents': "~=1.5.0";
85
+ readonly 'strands-agents-tools': "~=0.2.4";
86
+ };
87
+ export type IPyDepVersion = keyof typeof PY_VERSIONS;
88
+ /**
89
+ * Add versions to the given dependencies
90
+ */
91
+ export declare const withPyVersions: (deps: IPyDepVersion[]) => string[];
@@ -1,11 +1,14 @@
1
1
  "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.withVersions = exports.VERSIONS = void 0;
4
2
  /**
5
3
  * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
6
4
  * SPDX-License-Identifier: Apache-2.0
7
5
  */
8
- exports.VERSIONS = {
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.withPyVersions = exports.PY_VERSIONS = exports.withVersions = exports.TS_VERSIONS = void 0;
8
+ /**
9
+ * Versons for TypeScript dependencies added by generators
10
+ */
11
+ exports.TS_VERSIONS = {
9
12
  '@cdklabs/cdk-validator-cfnguard': '^0.0.60',
10
13
  '@aws-sdk/client-cognito-identity': '^3.775.0',
11
14
  '@aws-sdk/credential-providers': '^3.775.0',
@@ -65,6 +68,28 @@ exports.VERSIONS = {
65
68
  /**
66
69
  * Add versions to the given dependencies
67
70
  */
68
- const withVersions = (deps) => Object.fromEntries(deps.map((dep) => [dep, exports.VERSIONS[dep]]));
71
+ const withVersions = (deps) => Object.fromEntries(deps.map((dep) => [dep, exports.TS_VERSIONS[dep]]));
69
72
  exports.withVersions = withVersions;
73
+ /**
74
+ * Versions for Python dependencies added by generators
75
+ */
76
+ exports.PY_VERSIONS = {
77
+ 'aws-lambda-powertools': '~=3.19.0',
78
+ 'aws-lambda-powertools[tracer]': '~=3.19.0',
79
+ 'aws-lambda-powertools[parser]': '~=3.19.0',
80
+ 'aws-opentelemetry-distro': '~=0.11.0',
81
+ 'bedrock-agentcore': '~=0.1.2',
82
+ boto3: '~=1.40.14',
83
+ fastapi: '~=0.116.1',
84
+ 'fastapi[standard]': '~=0.116.1',
85
+ mangum: '~=0.19.0',
86
+ mcp: '~=1.13.0',
87
+ 'strands-agents': '~=1.5.0',
88
+ 'strands-agents-tools': '~=0.2.4',
89
+ };
90
+ /**
91
+ * Add versions to the given dependencies
92
+ */
93
+ const withPyVersions = (deps) => deps.map((dep) => `${dep}${exports.PY_VERSIONS[dep]}`);
94
+ exports.withPyVersions = withPyVersions;
70
95
  //# sourceMappingURL=versions.js.map
@@ -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,sBAAsB,EAAE,QAAQ;IAChC,2BAA2B,EAAE,SAAS;IACtC,iCAAiC,EAAE,SAAS;IAC5C,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;;;AAEH;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,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,iCAAiC,EAAE,SAAS;IAC5C,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;AAGX;;GAEG;AACI,MAAM,YAAY,GAAG,CAAC,IAAqB,EAAE,EAAE,CACpD,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,mBAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AADpD,QAAA,YAAY,gBACwC;AAEjE;;GAEG;AACU,QAAA,WAAW,GAAG;IACzB,uBAAuB,EAAE,UAAU;IACnC,+BAA+B,EAAE,UAAU;IAC3C,+BAA+B,EAAE,UAAU;IAC3C,0BAA0B,EAAE,UAAU;IACtC,mBAAmB,EAAE,SAAS;IAC9B,KAAK,EAAE,WAAW;IAClB,OAAO,EAAE,WAAW;IACpB,mBAAmB,EAAE,WAAW;IAChC,MAAM,EAAE,UAAU;IAClB,GAAG,EAAE,UAAU;IACf,gBAAgB,EAAE,SAAS;IAC3B,sBAAsB,EAAE,SAAS;CACzB,CAAC;AAGX;;GAEG;AACI,MAAM,cAAc,GAAG,CAAC,IAAqB,EAAE,EAAE,CACtD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,mBAAW,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AADpC,QAAA,cAAc,kBACsB"}