@aws/nx-plugin 0.94.1 → 0.95.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws/nx-plugin",
3
- "version": "0.94.1",
3
+ "version": "0.95.0",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/awslabs/nx-plugin-for-aws.git",
@@ -19,8 +19,8 @@
19
19
  },
20
20
  "generators": "./generators.json",
21
21
  "peerDependencies": {
22
- "nx": "22.6.4",
23
- "prettier": "3.8.1"
22
+ "nx": "22.6.5",
23
+ "prettier": "3.8.2"
24
24
  },
25
25
  "dependencies": {
26
26
  "@apidevtools/swagger-parser": "12.1.0",
@@ -28,13 +28,13 @@
28
28
  "@hey-api/openapi-ts": "0.64.13",
29
29
  "@iarna/toml": "2.2.5",
30
30
  "@modelcontextprotocol/sdk": "1.29.0",
31
- "@nx/devkit": "22.6.4",
32
- "@nx/eslint": "22.6.4",
33
- "@nx/js": "22.6.4",
34
- "@nx/react": "22.6.4",
35
- "@nx/vite": "22.6.4",
31
+ "@nx/devkit": "22.6.5",
32
+ "@nx/eslint": "22.6.5",
33
+ "@nx/js": "22.6.5",
34
+ "@nx/react": "22.6.5",
35
+ "@nx/vite": "22.6.5",
36
36
  "@nxlv/python": "22.1.1",
37
- "@phenomnomnominal/tsquery": "6.1.4",
37
+ "@phenomnomnominal/tsquery": "6.2.0",
38
38
  "enquirer": "2.4.1",
39
39
  "fast-glob": "3.3.3",
40
40
  "lodash.camelcase": "4.3.0",
@@ -47,8 +47,8 @@
47
47
  "openapi-types": "12.1.3",
48
48
  "pip-requirements-js": "1.0.3",
49
49
  "typescript": "6.0.2",
50
- "vite": "8.0.3",
51
- "vitest": "4.1.2",
50
+ "vite": "8.0.8",
51
+ "vitest": "4.1.4",
52
52
  "zod": "4.3.6"
53
53
  },
54
54
  "types": "./src/index.d.ts"
@@ -2,10 +2,10 @@
2
2
 
3
3
  exports[`infra generator > should add required dependencies to package.json > dependencies 1`] = `
4
4
  {
5
- "aws-cdk": "2.1117.0",
5
+ "aws-cdk": "2.1118.0",
6
6
  "aws-cdk-lib": "2.248.0",
7
7
  "constructs": "10.6.0",
8
- "esbuild": "0.27.4",
8
+ "esbuild": "0.28.0",
9
9
  "source-map-support": "0.5.21",
10
10
  }
11
11
  `;
@@ -13,60 +13,60 @@ exports[`infra generator > should add required dependencies to package.json > de
13
13
  exports[`infra generator > should add required dependencies to package.json > dev-dependencies 1`] = `
14
14
  {
15
15
  "@eslint/js": "^9.8.0",
16
- "@nx/eslint": "22.6.4",
17
- "@nx/eslint-plugin": "22.6.4",
18
- "@nx/js": "22.6.4",
19
- "@nx/vitest": "22.6.4",
16
+ "@nx/eslint": "22.6.5",
17
+ "@nx/eslint-plugin": "22.6.5",
18
+ "@nx/js": "22.6.5",
19
+ "@nx/vitest": "22.6.5",
20
20
  "@swc-node/register": "~1.11.1",
21
21
  "@swc/core": "~1.15.5",
22
22
  "@swc/helpers": "~0.5.18",
23
- "@types/node": "25.5.2",
24
- "@vitest/coverage-v8": "4.1.2",
23
+ "@types/node": "25.6.0",
24
+ "@vitest/coverage-v8": "4.1.4",
25
25
  "eslint": "^9.8.0",
26
26
  "eslint-config-prettier": "^10.0.0",
27
27
  "eslint-plugin-prettier": "5.5.5",
28
28
  "jsdom": "^27.1.0",
29
29
  "jsonc-eslint-parser": "3.1.0",
30
- "prettier": "3.8.1",
30
+ "prettier": "3.8.2",
31
31
  "tsx": "4.21.0",
32
32
  "typescript": "~5.9.2",
33
33
  "typescript-eslint": "^8.40.0",
34
- "vite": "8.0.3",
35
- "vitest": "4.1.2",
34
+ "vite": "8.0.8",
35
+ "vitest": "4.1.4",
36
36
  }
37
37
  `;
38
38
 
39
39
  exports[`infra generator > should add required dependencies to package.json > package-json 1`] = `
40
40
  {
41
41
  "dependencies": {
42
- "aws-cdk": "2.1117.0",
42
+ "aws-cdk": "2.1118.0",
43
43
  "aws-cdk-lib": "2.248.0",
44
44
  "constructs": "10.6.0",
45
- "esbuild": "0.27.4",
45
+ "esbuild": "0.28.0",
46
46
  "source-map-support": "0.5.21",
47
47
  },
48
48
  "devDependencies": {
49
49
  "@eslint/js": "^9.8.0",
50
- "@nx/eslint": "22.6.4",
51
- "@nx/eslint-plugin": "22.6.4",
52
- "@nx/js": "22.6.4",
53
- "@nx/vitest": "22.6.4",
50
+ "@nx/eslint": "22.6.5",
51
+ "@nx/eslint-plugin": "22.6.5",
52
+ "@nx/js": "22.6.5",
53
+ "@nx/vitest": "22.6.5",
54
54
  "@swc-node/register": "~1.11.1",
55
55
  "@swc/core": "~1.15.5",
56
56
  "@swc/helpers": "~0.5.18",
57
- "@types/node": "25.5.2",
58
- "@vitest/coverage-v8": "4.1.2",
57
+ "@types/node": "25.6.0",
58
+ "@vitest/coverage-v8": "4.1.4",
59
59
  "eslint": "^9.8.0",
60
60
  "eslint-config-prettier": "^10.0.0",
61
61
  "eslint-plugin-prettier": "5.5.5",
62
62
  "jsdom": "^27.1.0",
63
63
  "jsonc-eslint-parser": "3.1.0",
64
- "prettier": "3.8.1",
64
+ "prettier": "3.8.2",
65
65
  "tsx": "4.21.0",
66
66
  "typescript": "~5.9.2",
67
67
  "typescript-eslint": "^8.40.0",
68
- "vite": "8.0.3",
69
- "vitest": "4.1.2",
68
+ "vite": "8.0.8",
69
+ "vitest": "4.1.4",
70
70
  },
71
71
  "name": "@proj/source",
72
72
  "type": "module",
@@ -84,7 +84,7 @@ exports[`infra generator > should configure Checkov target correctly > checkov-t
84
84
  "{workspaceRoot}/dist/{projectRoot}/cdk.out",
85
85
  ],
86
86
  "options": {
87
- "command": "uvx --from checkov==3.2.513 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
87
+ "command": "uvx --from checkov==3.2.519 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
88
88
  },
89
89
  "outputs": [
90
90
  "{workspaceRoot}/dist/{projectRoot}/checkov",
@@ -177,7 +177,7 @@ exports[`infra generator > should configure project.json with correct targets >
177
177
  "{workspaceRoot}/dist/{projectRoot}/cdk.out",
178
178
  ],
179
179
  "options": {
180
- "command": "uvx --from checkov==3.2.513 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
180
+ "command": "uvx --from checkov==3.2.519 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
181
181
  },
182
182
  "outputs": [
183
183
  "{workspaceRoot}/dist/{projectRoot}/checkov",
@@ -739,7 +739,7 @@ exports[`infra generator > should handle custom project names correctly > custom
739
739
  "{workspaceRoot}/dist/{projectRoot}/cdk.out",
740
740
  ],
741
741
  "options": {
742
- "command": "uvx --from checkov==3.2.513 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
742
+ "command": "uvx --from checkov==3.2.519 checkov --config-file {projectRoot}/checkov.yml --directory dist/{projectRoot}/cdk.out --framework cloudformation",
743
743
  },
744
744
  "outputs": [
745
745
  "{workspaceRoot}/dist/{projectRoot}/checkov",
@@ -192,14 +192,14 @@ exports[`preset generator > should run successfully > package.json 1`] = `
192
192
  "name": "@proj/source",
193
193
  "dependencies": {},
194
194
  "devDependencies": {
195
- "@nx/js": "22.6.4",
196
- "@nx/workspace": "22.6.4",
195
+ "@nx/js": "22.6.5",
196
+ "@nx/workspace": "22.6.5",
197
197
  "@swc-node/register": "~1.11.1",
198
198
  "@swc/core": "~1.15.5",
199
199
  "@swc/helpers": "~0.5.18",
200
200
  "prettier": "~3.6.2",
201
201
  "typescript": "6.0.2",
202
- "typescript-eslint": "8.58.0"
202
+ "typescript-eslint": "8.58.1"
203
203
  },
204
204
  "type": "module",
205
205
  "scripts": {
@@ -656,20 +656,6 @@ export interface HttpApiIntegration {
656
656
  options?: Omit<AddRoutesOptions, 'path' | 'methods' | 'integration'>;
657
657
  }
658
658
 
659
- /**
660
- * Common options shared by all IntegrationBuilder configurations
661
- */
662
- interface IntegrationBuilderPropsBase<
663
- TOperation extends string,
664
- TDefaultIntegrationProps extends object,
665
- > {
666
- /** Map of operation names to their API path and HTTP method details */
667
- operations: Record<TOperation, OperationDetails>;
668
-
669
- /** Default configuration options for integrations */
670
- defaultIntegrationOptions: TDefaultIntegrationProps;
671
- }
672
-
673
659
  /**
674
660
  * Options for constructing an IntegrationBuilder with a shared integration pattern.
675
661
  * A single default integration is built once (for '$router') and reused for all operations.
@@ -678,8 +664,12 @@ interface SharedIntegrationBuilderProps<
678
664
  TOperation extends string,
679
665
  TDefaultIntegrationProps extends object,
680
666
  TDefaultIntegration,
681
- > extends IntegrationBuilderPropsBase<TOperation, TDefaultIntegrationProps> {
667
+ > {
682
668
  pattern: 'shared';
669
+ /** Map of operation names to their API path and HTTP method details */
670
+ operations: Record<TOperation, OperationDetails>;
671
+ /** Default configuration options for integrations */
672
+ defaultIntegrationOptions: TDefaultIntegrationProps;
683
673
  /** Function to create a default integration for the shared router */
684
674
  buildDefaultIntegration: (
685
675
  op: '$router',
@@ -695,8 +685,12 @@ interface IsolatedIntegrationBuilderProps<
695
685
  TOperation extends string,
696
686
  TDefaultIntegrationProps extends object,
697
687
  TDefaultIntegration,
698
- > extends IntegrationBuilderPropsBase<TOperation, TDefaultIntegrationProps> {
688
+ > {
699
689
  pattern: 'isolated';
690
+ /** Map of operation names to their API path and HTTP method details */
691
+ operations: Record<TOperation, OperationDetails>;
692
+ /** Default configuration options for integrations */
693
+ defaultIntegrationOptions: TDefaultIntegrationProps;
700
694
  /** Function to create a default integration for an operation */
701
695
  buildDefaultIntegration: (
702
696
  op: TOperation,
@@ -724,25 +718,6 @@ export type IntegrationBuilderProps<
724
718
  TDefaultIntegration
725
719
  >;
726
720
 
727
- /**
728
- * Extracts the IntegrationBuilderProps variant matching the given pattern.
729
- */
730
- type IntegrationBuilderPropsForPattern<
731
- TOperation extends string,
732
- TBaseIntegration,
733
- TDefaultIntegrationProps extends object,
734
- TDefaultIntegration extends TBaseIntegration,
735
- TPattern extends 'shared' | 'isolated',
736
- > = Extract<
737
- IntegrationBuilderProps<
738
- TOperation,
739
- TBaseIntegration,
740
- TDefaultIntegrationProps,
741
- TDefaultIntegration
742
- >,
743
- { pattern: TPattern }
744
- >;
745
-
746
721
  /**
747
722
  * Resolves the default integration keys based on the pattern.
748
723
  * - 'shared': only '$router' is a default key
@@ -802,22 +777,65 @@ export class IntegrationBuilder<
802
777
  private integrations: Partial<TIntegrations> = {};
803
778
 
804
779
  /**
805
- * Create an Integration Builder for an HTTP API
780
+ * Create an Integration Builder for an HTTP API with a shared pattern
806
781
  */
807
- public static http = <
782
+ public static http<
808
783
  TOperation extends string,
809
784
  TDefaultIntegrationProps extends object,
810
785
  TDefaultIntegration extends HttpApiIntegration,
811
- TPattern extends 'shared' | 'isolated',
812
786
  >(
813
- options: IntegrationBuilderPropsForPattern<
787
+ options: SharedIntegrationBuilderProps<
814
788
  TOperation,
815
- HttpApiIntegration,
816
789
  TDefaultIntegrationProps,
817
- TDefaultIntegration,
818
- TPattern
790
+ TDefaultIntegration
791
+ >,
792
+ ): IntegrationBuilder<
793
+ TOperation,
794
+ HttpApiIntegration,
795
+ Record<'$router', TDefaultIntegration>,
796
+ TDefaultIntegrationProps,
797
+ TDefaultIntegration,
798
+ 'shared'
799
+ >;
800
+ /**
801
+ * Create an Integration Builder for an HTTP API with an isolated pattern
802
+ */
803
+ public static http<
804
+ TOperation extends string,
805
+ TDefaultIntegrationProps extends object,
806
+ TDefaultIntegration extends HttpApiIntegration,
807
+ >(
808
+ options: IsolatedIntegrationBuilderProps<
809
+ TOperation,
810
+ TDefaultIntegrationProps,
811
+ TDefaultIntegration
819
812
  >,
820
- ) => {
813
+ ): IntegrationBuilder<
814
+ TOperation,
815
+ HttpApiIntegration,
816
+ Record<TOperation, TDefaultIntegration>,
817
+ TDefaultIntegrationProps,
818
+ TDefaultIntegration,
819
+ 'isolated'
820
+ >;
821
+ public static http<
822
+ TOperation extends string,
823
+ TDefaultIntegrationProps extends object,
824
+ TDefaultIntegration extends HttpApiIntegration,
825
+ TPattern extends 'shared' | 'isolated',
826
+ >(
827
+ options:
828
+ | SharedIntegrationBuilderProps<
829
+ TOperation,
830
+ TDefaultIntegrationProps,
831
+ TDefaultIntegration
832
+ >
833
+ | IsolatedIntegrationBuilderProps<
834
+ TOperation,
835
+ TDefaultIntegrationProps,
836
+ TDefaultIntegration
837
+ >,
838
+ ) {
821
839
  return new IntegrationBuilder<
822
840
  TOperation,
823
841
  HttpApiIntegration,
@@ -826,25 +844,68 @@ export class IntegrationBuilder<
826
844
  TDefaultIntegration,
827
845
  TPattern
828
846
  >(options);
829
- };
847
+ }
830
848
 
831
849
  /**
832
- * Create an Integration Builder for a REST API
850
+ * Create an Integration Builder for a REST API with a shared pattern
833
851
  */
834
- public static rest = <
852
+ public static rest<
835
853
  TOperation extends string,
836
854
  TDefaultIntegrationProps extends object,
837
855
  TDefaultIntegration extends RestApiIntegration,
838
- TPattern extends 'shared' | 'isolated',
839
856
  >(
840
- options: IntegrationBuilderPropsForPattern<
857
+ options: SharedIntegrationBuilderProps<
841
858
  TOperation,
842
- RestApiIntegration,
843
859
  TDefaultIntegrationProps,
844
- TDefaultIntegration,
845
- TPattern
860
+ TDefaultIntegration
861
+ >,
862
+ ): IntegrationBuilder<
863
+ TOperation,
864
+ RestApiIntegration,
865
+ Record<'$router', TDefaultIntegration>,
866
+ TDefaultIntegrationProps,
867
+ TDefaultIntegration,
868
+ 'shared'
869
+ >;
870
+ /**
871
+ * Create an Integration Builder for a REST API with an isolated pattern
872
+ */
873
+ public static rest<
874
+ TOperation extends string,
875
+ TDefaultIntegrationProps extends object,
876
+ TDefaultIntegration extends RestApiIntegration,
877
+ >(
878
+ options: IsolatedIntegrationBuilderProps<
879
+ TOperation,
880
+ TDefaultIntegrationProps,
881
+ TDefaultIntegration
846
882
  >,
847
- ) => {
883
+ ): IntegrationBuilder<
884
+ TOperation,
885
+ RestApiIntegration,
886
+ Record<TOperation, TDefaultIntegration>,
887
+ TDefaultIntegrationProps,
888
+ TDefaultIntegration,
889
+ 'isolated'
890
+ >;
891
+ public static rest<
892
+ TOperation extends string,
893
+ TDefaultIntegrationProps extends object,
894
+ TDefaultIntegration extends RestApiIntegration,
895
+ TPattern extends 'shared' | 'isolated',
896
+ >(
897
+ options:
898
+ | SharedIntegrationBuilderProps<
899
+ TOperation,
900
+ TDefaultIntegrationProps,
901
+ TDefaultIntegration
902
+ >
903
+ | IsolatedIntegrationBuilderProps<
904
+ TOperation,
905
+ TDefaultIntegrationProps,
906
+ TDefaultIntegration
907
+ >,
908
+ ) {
848
909
  return new IntegrationBuilder<
849
910
  TOperation,
850
911
  RestApiIntegration,
@@ -853,7 +914,7 @@ export class IntegrationBuilder<
853
914
  TDefaultIntegration,
854
915
  TPattern
855
916
  >(options);
856
- };
917
+ }
857
918
 
858
919
  private constructor(
859
920
  options: IntegrationBuilderProps<
@@ -1389,20 +1450,6 @@ export interface HttpApiIntegration {
1389
1450
  options?: Omit<AddRoutesOptions, 'path' | 'methods' | 'integration'>;
1390
1451
  }
1391
1452
 
1392
- /**
1393
- * Common options shared by all IntegrationBuilder configurations
1394
- */
1395
- interface IntegrationBuilderPropsBase<
1396
- TOperation extends string,
1397
- TDefaultIntegrationProps extends object,
1398
- > {
1399
- /** Map of operation names to their API path and HTTP method details */
1400
- operations: Record<TOperation, OperationDetails>;
1401
-
1402
- /** Default configuration options for integrations */
1403
- defaultIntegrationOptions: TDefaultIntegrationProps;
1404
- }
1405
-
1406
1453
  /**
1407
1454
  * Options for constructing an IntegrationBuilder with a shared integration pattern.
1408
1455
  * A single default integration is built once (for '$router') and reused for all operations.
@@ -1411,8 +1458,12 @@ interface SharedIntegrationBuilderProps<
1411
1458
  TOperation extends string,
1412
1459
  TDefaultIntegrationProps extends object,
1413
1460
  TDefaultIntegration,
1414
- > extends IntegrationBuilderPropsBase<TOperation, TDefaultIntegrationProps> {
1461
+ > {
1415
1462
  pattern: 'shared';
1463
+ /** Map of operation names to their API path and HTTP method details */
1464
+ operations: Record<TOperation, OperationDetails>;
1465
+ /** Default configuration options for integrations */
1466
+ defaultIntegrationOptions: TDefaultIntegrationProps;
1416
1467
  /** Function to create a default integration for the shared router */
1417
1468
  buildDefaultIntegration: (
1418
1469
  op: '$router',
@@ -1428,8 +1479,12 @@ interface IsolatedIntegrationBuilderProps<
1428
1479
  TOperation extends string,
1429
1480
  TDefaultIntegrationProps extends object,
1430
1481
  TDefaultIntegration,
1431
- > extends IntegrationBuilderPropsBase<TOperation, TDefaultIntegrationProps> {
1482
+ > {
1432
1483
  pattern: 'isolated';
1484
+ /** Map of operation names to their API path and HTTP method details */
1485
+ operations: Record<TOperation, OperationDetails>;
1486
+ /** Default configuration options for integrations */
1487
+ defaultIntegrationOptions: TDefaultIntegrationProps;
1433
1488
  /** Function to create a default integration for an operation */
1434
1489
  buildDefaultIntegration: (
1435
1490
  op: TOperation,
@@ -1457,25 +1512,6 @@ export type IntegrationBuilderProps<
1457
1512
  TDefaultIntegration
1458
1513
  >;
1459
1514
 
1460
- /**
1461
- * Extracts the IntegrationBuilderProps variant matching the given pattern.
1462
- */
1463
- type IntegrationBuilderPropsForPattern<
1464
- TOperation extends string,
1465
- TBaseIntegration,
1466
- TDefaultIntegrationProps extends object,
1467
- TDefaultIntegration extends TBaseIntegration,
1468
- TPattern extends 'shared' | 'isolated',
1469
- > = Extract<
1470
- IntegrationBuilderProps<
1471
- TOperation,
1472
- TBaseIntegration,
1473
- TDefaultIntegrationProps,
1474
- TDefaultIntegration
1475
- >,
1476
- { pattern: TPattern }
1477
- >;
1478
-
1479
1515
  /**
1480
1516
  * Resolves the default integration keys based on the pattern.
1481
1517
  * - 'shared': only '$router' is a default key
@@ -1535,22 +1571,65 @@ export class IntegrationBuilder<
1535
1571
  private integrations: Partial<TIntegrations> = {};
1536
1572
 
1537
1573
  /**
1538
- * Create an Integration Builder for an HTTP API
1574
+ * Create an Integration Builder for an HTTP API with a shared pattern
1539
1575
  */
1540
- public static http = <
1576
+ public static http<
1541
1577
  TOperation extends string,
1542
1578
  TDefaultIntegrationProps extends object,
1543
1579
  TDefaultIntegration extends HttpApiIntegration,
1544
- TPattern extends 'shared' | 'isolated',
1545
1580
  >(
1546
- options: IntegrationBuilderPropsForPattern<
1581
+ options: SharedIntegrationBuilderProps<
1547
1582
  TOperation,
1548
- HttpApiIntegration,
1549
1583
  TDefaultIntegrationProps,
1550
- TDefaultIntegration,
1551
- TPattern
1584
+ TDefaultIntegration
1585
+ >,
1586
+ ): IntegrationBuilder<
1587
+ TOperation,
1588
+ HttpApiIntegration,
1589
+ Record<'$router', TDefaultIntegration>,
1590
+ TDefaultIntegrationProps,
1591
+ TDefaultIntegration,
1592
+ 'shared'
1593
+ >;
1594
+ /**
1595
+ * Create an Integration Builder for an HTTP API with an isolated pattern
1596
+ */
1597
+ public static http<
1598
+ TOperation extends string,
1599
+ TDefaultIntegrationProps extends object,
1600
+ TDefaultIntegration extends HttpApiIntegration,
1601
+ >(
1602
+ options: IsolatedIntegrationBuilderProps<
1603
+ TOperation,
1604
+ TDefaultIntegrationProps,
1605
+ TDefaultIntegration
1552
1606
  >,
1553
- ) => {
1607
+ ): IntegrationBuilder<
1608
+ TOperation,
1609
+ HttpApiIntegration,
1610
+ Record<TOperation, TDefaultIntegration>,
1611
+ TDefaultIntegrationProps,
1612
+ TDefaultIntegration,
1613
+ 'isolated'
1614
+ >;
1615
+ public static http<
1616
+ TOperation extends string,
1617
+ TDefaultIntegrationProps extends object,
1618
+ TDefaultIntegration extends HttpApiIntegration,
1619
+ TPattern extends 'shared' | 'isolated',
1620
+ >(
1621
+ options:
1622
+ | SharedIntegrationBuilderProps<
1623
+ TOperation,
1624
+ TDefaultIntegrationProps,
1625
+ TDefaultIntegration
1626
+ >
1627
+ | IsolatedIntegrationBuilderProps<
1628
+ TOperation,
1629
+ TDefaultIntegrationProps,
1630
+ TDefaultIntegration
1631
+ >,
1632
+ ) {
1554
1633
  return new IntegrationBuilder<
1555
1634
  TOperation,
1556
1635
  HttpApiIntegration,
@@ -1559,25 +1638,68 @@ export class IntegrationBuilder<
1559
1638
  TDefaultIntegration,
1560
1639
  TPattern
1561
1640
  >(options);
1562
- };
1641
+ }
1563
1642
 
1564
1643
  /**
1565
- * Create an Integration Builder for a REST API
1644
+ * Create an Integration Builder for a REST API with a shared pattern
1566
1645
  */
1567
- public static rest = <
1646
+ public static rest<
1568
1647
  TOperation extends string,
1569
1648
  TDefaultIntegrationProps extends object,
1570
1649
  TDefaultIntegration extends RestApiIntegration,
1571
- TPattern extends 'shared' | 'isolated',
1572
1650
  >(
1573
- options: IntegrationBuilderPropsForPattern<
1651
+ options: SharedIntegrationBuilderProps<
1574
1652
  TOperation,
1575
- RestApiIntegration,
1576
1653
  TDefaultIntegrationProps,
1577
- TDefaultIntegration,
1578
- TPattern
1654
+ TDefaultIntegration
1655
+ >,
1656
+ ): IntegrationBuilder<
1657
+ TOperation,
1658
+ RestApiIntegration,
1659
+ Record<'$router', TDefaultIntegration>,
1660
+ TDefaultIntegrationProps,
1661
+ TDefaultIntegration,
1662
+ 'shared'
1663
+ >;
1664
+ /**
1665
+ * Create an Integration Builder for a REST API with an isolated pattern
1666
+ */
1667
+ public static rest<
1668
+ TOperation extends string,
1669
+ TDefaultIntegrationProps extends object,
1670
+ TDefaultIntegration extends RestApiIntegration,
1671
+ >(
1672
+ options: IsolatedIntegrationBuilderProps<
1673
+ TOperation,
1674
+ TDefaultIntegrationProps,
1675
+ TDefaultIntegration
1579
1676
  >,
1580
- ) => {
1677
+ ): IntegrationBuilder<
1678
+ TOperation,
1679
+ RestApiIntegration,
1680
+ Record<TOperation, TDefaultIntegration>,
1681
+ TDefaultIntegrationProps,
1682
+ TDefaultIntegration,
1683
+ 'isolated'
1684
+ >;
1685
+ public static rest<
1686
+ TOperation extends string,
1687
+ TDefaultIntegrationProps extends object,
1688
+ TDefaultIntegration extends RestApiIntegration,
1689
+ TPattern extends 'shared' | 'isolated',
1690
+ >(
1691
+ options:
1692
+ | SharedIntegrationBuilderProps<
1693
+ TOperation,
1694
+ TDefaultIntegrationProps,
1695
+ TDefaultIntegration
1696
+ >
1697
+ | IsolatedIntegrationBuilderProps<
1698
+ TOperation,
1699
+ TDefaultIntegrationProps,
1700
+ TDefaultIntegration
1701
+ >,
1702
+ ) {
1581
1703
  return new IntegrationBuilder<
1582
1704
  TOperation,
1583
1705
  RestApiIntegration,
@@ -1586,7 +1708,7 @@ export class IntegrationBuilder<
1586
1708
  TDefaultIntegration,
1587
1709
  TPattern
1588
1710
  >(options);
1589
- };
1711
+ }
1590
1712
 
1591
1713
  private constructor(
1592
1714
  options: IntegrationBuilderProps<
@@ -633,11 +633,11 @@ exports[`py#mcp-server generator > should match snapshot for generated files > u
633
633
  name = "proj.test_project"
634
634
  version = "0.1.0"
635
635
  dependencies = [
636
- "aws-lambda-powertools==3.26.0",
636
+ "aws-lambda-powertools==3.27.0",
637
637
  "mcp==1.27.0",
638
- "uvicorn==0.43.0",
639
- "boto3==1.42.83",
640
- "aws-opentelemetry-distro==0.16.0"
638
+ "uvicorn==0.44.0",
639
+ "boto3==1.42.88",
640
+ "aws-opentelemetry-distro==0.17.0"
641
641
  ]
642
642
 
643
643
  [dependency-groups]