@friggframework/devtools 2.0.0--canary.461.27d4ea2.0 → 2.0.0--canary.461.55dbac3.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.
@@ -732,7 +732,7 @@ class VpcBuilder extends InfrastructureBuilder {
732
732
  };
733
733
 
734
734
  // Create public routing (public subnets → Internet Gateway)
735
- this.createPublicRouting(appDefinition, result);
735
+ this.createPublicRouting(appDefinition, discoveredResources, result);
736
736
 
737
737
  // Create routing for the new NAT Gateway (private subnets → NAT → IGW)
738
738
  this.createNatGatewayRouting(appDefinition, discoveredResources, result, { Ref: 'FriggNATGateway' });
@@ -744,7 +744,7 @@ class VpcBuilder extends InfrastructureBuilder {
744
744
  * Create public route table with Internet Gateway route
745
745
  * Required for NAT Gateway to have internet access
746
746
  */
747
- createPublicRouting(appDefinition, result) {
747
+ createPublicRouting(appDefinition, discoveredResources, result) {
748
748
  // Public route table with Internet Gateway route
749
749
  result.resources.FriggPublicRouteTable = {
750
750
  Type: 'AWS::EC2::RouteTable',
@@ -768,11 +768,15 @@ class VpcBuilder extends InfrastructureBuilder {
768
768
  },
769
769
  };
770
770
 
771
+ // Use discovered public subnets or created ones
772
+ const publicSubnet1 = discoveredResources.publicSubnetId1 || { Ref: 'FriggPublicSubnet' };
773
+ const publicSubnet2 = discoveredResources.publicSubnetId2 || { Ref: 'FriggPublicSubnet2' };
774
+
771
775
  // Associate public subnets with public route table
772
776
  result.resources.FriggPublicSubnet1RouteTableAssociation = {
773
777
  Type: 'AWS::EC2::SubnetRouteTableAssociation',
774
778
  Properties: {
775
- SubnetId: { Ref: 'FriggPublicSubnet' },
779
+ SubnetId: publicSubnet1,
776
780
  RouteTableId: { Ref: 'FriggPublicRouteTable' },
777
781
  },
778
782
  };
@@ -780,7 +784,7 @@ class VpcBuilder extends InfrastructureBuilder {
780
784
  result.resources.FriggPublicSubnet2RouteTableAssociation = {
781
785
  Type: 'AWS::EC2::SubnetRouteTableAssociation',
782
786
  Properties: {
783
- SubnetId: { Ref: 'FriggPublicSubnet2' },
787
+ SubnetId: publicSubnet2,
784
788
  RouteTableId: { Ref: 'FriggPublicRouteTable' },
785
789
  },
786
790
  };
@@ -62,8 +62,8 @@ function getGeneratedClientPackages(databaseConfig = {}) {
62
62
  const packages = [];
63
63
 
64
64
  // Check if MongoDB is enabled (via mongoDB or documentDB config)
65
- const mongoEnabled = databaseConfig?.mongoDB?.enable === true ||
66
- databaseConfig?.documentDB?.enable === true;
65
+ const mongoEnabled = databaseConfig?.mongoDB?.enable === true ||
66
+ databaseConfig?.documentDB?.enable === true;
67
67
  if (mongoEnabled) {
68
68
  packages.push('generated/prisma-mongodb');
69
69
  log('Including MongoDB client (based on AppDefinition)', 'blue');
@@ -411,16 +411,21 @@ async function verifyRhelBinaries(expectedClients) {
411
411
  /**
412
412
  * Verify required files exist
413
413
  * Runtime layer should NOT have CLI files
414
+ * @param {Array} clientPackages - Generated client packages that were included
414
415
  */
415
- async function verifyLayerStructure() {
416
+ async function verifyLayerStructure(clientPackages) {
416
417
  logStep(8, 'Verifying layer structure (runtime only)');
417
418
 
418
419
  const requiredPaths = [
419
420
  '@prisma/client/runtime',
420
421
  '@prisma/client/index.d.ts',
421
- 'generated/prisma-postgresql/schema.prisma', // PostgreSQL (default)
422
422
  ];
423
423
 
424
+ // Add schema.prisma for each included client
425
+ for (const pkg of clientPackages) {
426
+ requiredPaths.push(`${pkg}/schema.prisma`);
427
+ }
428
+
424
429
  // Verify CLI is NOT present (keeps layer small)
425
430
  const forbiddenPaths = [
426
431
  'prisma/build',
@@ -512,7 +517,7 @@ async function buildPrismaLayer(databaseConfig = {}) {
512
517
  await removeUnnecessaryFiles(); // Remove source maps, docs, tests (37MB+)
513
518
  await removeNonRhelBinaries(); // Remove non-Linux binaries
514
519
  await verifyRhelBinaries(clientPackages); // Verify query engines present
515
- await verifyLayerStructure(); // Verify minimal runtime structure
520
+ await verifyLayerStructure(clientPackages); // Verify minimal runtime structure
516
521
  await displayLayerSummary();
517
522
 
518
523
  const duration = ((Date.now() - startTime) / 1000).toFixed(2);
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@friggframework/devtools",
3
3
  "prettier": "@friggframework/prettier-config",
4
- "version": "2.0.0--canary.461.27d4ea2.0",
4
+ "version": "2.0.0--canary.461.55dbac3.0",
5
5
  "dependencies": {
6
6
  "@aws-sdk/client-ec2": "^3.835.0",
7
7
  "@aws-sdk/client-kms": "^3.835.0",
@@ -11,8 +11,8 @@
11
11
  "@babel/eslint-parser": "^7.18.9",
12
12
  "@babel/parser": "^7.25.3",
13
13
  "@babel/traverse": "^7.25.3",
14
- "@friggframework/schemas": "2.0.0--canary.461.27d4ea2.0",
15
- "@friggframework/test": "2.0.0--canary.461.27d4ea2.0",
14
+ "@friggframework/schemas": "2.0.0--canary.461.55dbac3.0",
15
+ "@friggframework/test": "2.0.0--canary.461.55dbac3.0",
16
16
  "@hapi/boom": "^10.0.1",
17
17
  "@inquirer/prompts": "^5.3.8",
18
18
  "axios": "^1.7.2",
@@ -34,8 +34,8 @@
34
34
  "serverless-http": "^2.7.0"
35
35
  },
36
36
  "devDependencies": {
37
- "@friggframework/eslint-config": "2.0.0--canary.461.27d4ea2.0",
38
- "@friggframework/prettier-config": "2.0.0--canary.461.27d4ea2.0",
37
+ "@friggframework/eslint-config": "2.0.0--canary.461.55dbac3.0",
38
+ "@friggframework/prettier-config": "2.0.0--canary.461.55dbac3.0",
39
39
  "aws-sdk-client-mock": "^4.1.0",
40
40
  "aws-sdk-client-mock-jest": "^4.1.0",
41
41
  "jest": "^30.1.3",
@@ -70,5 +70,5 @@
70
70
  "publishConfig": {
71
71
  "access": "public"
72
72
  },
73
- "gitHead": "27d4ea22c26e1cc261affa921951355fc4109f46"
73
+ "gitHead": "55dbac3a1560176988b66b6244f14f0d1d2007c6"
74
74
  }