@friggframework/devtools 2.0.0--canary.490.e6d93e8.0 → 2.0.0--canary.490.6e556a4.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.
@@ -1348,18 +1348,19 @@ describe('VpcBuilder', () => {
1348
1348
  });
1349
1349
  });
1350
1350
 
1351
- describe('Full Frontify deployment pattern integration test', () => {
1352
- it('should correctly handle Frontify production scenario: external VPC + stack routing', async () => {
1353
- // This test replicates the EXACT Frontify production deployment scenario
1351
+ describe('External VPC with stack-managed routing infrastructure pattern', () => {
1352
+ it('should correctly handle external VPC with stack-managed routing infrastructure', async () => {
1353
+ // This pattern occurs when VPC/subnets/NAT are external but routing (route tables,
1354
+ // VPC endpoints, security groups) are managed by CloudFormation stack
1354
1355
  const appDefinition = {
1355
1356
  vpc: { enable: true },
1356
1357
  encryption: { fieldLevelEncryptionMethod: 'kms' },
1357
1358
  };
1358
1359
 
1359
- // Actual Frontify discovery results (from production logs)
1360
+ // Discovery results from real-world production scenario
1360
1361
  const discoveredResources = {
1361
1362
  fromCloudFormationStack: true,
1362
- stackName: 'create-frigg-app-production',
1363
+ stackName: 'test-production-stack',
1363
1364
  existingLogicalIds: [
1364
1365
  'FriggLambdaSecurityGroup',
1365
1366
  'FriggLambdaRouteTable',
@@ -1655,10 +1656,10 @@ describe('VpcBuilder', () => {
1655
1656
  expect(result.external.some(r => r.physicalId === 'subnet-in-stack')).toBe(false);
1656
1657
  });
1657
1658
 
1658
- it('should handle Frontify pattern: stack resources + queried external references', () => {
1659
+ it('should handle external VPC pattern: stack resources + queried external references', () => {
1659
1660
  const flatDiscovery = {
1660
1661
  fromCloudFormationStack: true,
1661
- stackName: 'create-frigg-app-production',
1662
+ stackName: 'test-production-stack',
1662
1663
  existingLogicalIds: [
1663
1664
  'FriggLambdaSecurityGroup',
1664
1665
  'FriggLambdaRouteTable',
@@ -1670,14 +1671,14 @@ describe('VpcBuilder', () => {
1670
1671
  'FriggKMSVPCEndpoint'
1671
1672
  ],
1672
1673
  // Stack resources
1673
- lambdaSecurityGroupId: 'sg-01002240c6a446202',
1674
- routeTableId: 'rtb-08af43bbf0775602d',
1675
- s3VpcEndpointId: 'vpce-s3',
1674
+ lambdaSecurityGroupId: 'sg-stack-123',
1675
+ routeTableId: 'rtb-stack-456',
1676
+ s3VpcEndpointId: 'vpce-s3-stack',
1676
1677
  // External resources (discovered via queries)
1677
- defaultVpcId: 'vpc-0cd17c0e06cb28b28',
1678
- privateSubnetId1: 'subnet-034f6562dbbc16348',
1679
- privateSubnetId2: 'subnet-0b8be2b82aeb5cdec',
1680
- existingNatGatewayId: 'nat-022660c36a47e2d79'
1678
+ defaultVpcId: 'vpc-external-123',
1679
+ privateSubnetId1: 'subnet-external-1',
1680
+ privateSubnetId2: 'subnet-external-2',
1681
+ existingNatGatewayId: 'nat-external-789'
1681
1682
  };
1682
1683
 
1683
1684
  const result = vpcBuilder.convertFlatDiscoveryToStructured(flatDiscovery);
@@ -1685,19 +1686,19 @@ describe('VpcBuilder', () => {
1685
1686
  // Stack resources should be in stackManaged
1686
1687
  expect(result.stackManaged).toEqual(
1687
1688
  expect.arrayContaining([
1688
- expect.objectContaining({ logicalId: 'FriggLambdaSecurityGroup', physicalId: 'sg-01002240c6a446202' }),
1689
- expect.objectContaining({ logicalId: 'FriggLambdaRouteTable', physicalId: 'rtb-08af43bbf0775602d' }),
1690
- expect.objectContaining({ logicalId: 'FriggS3VPCEndpoint' })
1689
+ expect.objectContaining({ logicalId: 'FriggLambdaSecurityGroup', physicalId: 'sg-stack-123' }),
1690
+ expect.objectContaining({ logicalId: 'FriggLambdaRouteTable', physicalId: 'rtb-stack-456' }),
1691
+ expect.objectContaining({ logicalId: 'FriggS3VPCEndpoint', physicalId: 'vpce-s3-stack' })
1691
1692
  ])
1692
1693
  );
1693
1694
 
1694
1695
  // External resources should be in external array
1695
1696
  expect(result.external).toEqual(
1696
1697
  expect.arrayContaining([
1697
- expect.objectContaining({ physicalId: 'vpc-0cd17c0e06cb28b28', resourceType: 'AWS::EC2::VPC', source: 'cloudformation-query' }),
1698
- expect.objectContaining({ physicalId: 'subnet-034f6562dbbc16348', resourceType: 'AWS::EC2::Subnet', source: 'cloudformation-query' }),
1699
- expect.objectContaining({ physicalId: 'subnet-0b8be2b82aeb5cdec', resourceType: 'AWS::EC2::Subnet', source: 'cloudformation-query' }),
1700
- expect.objectContaining({ physicalId: 'nat-022660c36a47e2d79', resourceType: 'AWS::EC2::NatGateway', source: 'cloudformation-query' })
1698
+ expect.objectContaining({ physicalId: 'vpc-external-123', resourceType: 'AWS::EC2::VPC', source: 'cloudformation-query' }),
1699
+ expect.objectContaining({ physicalId: 'subnet-external-1', resourceType: 'AWS::EC2::Subnet', source: 'cloudformation-query' }),
1700
+ expect.objectContaining({ physicalId: 'subnet-external-2', resourceType: 'AWS::EC2::Subnet', source: 'cloudformation-query' }),
1701
+ expect.objectContaining({ physicalId: 'nat-external-789', resourceType: 'AWS::EC2::NatGateway', source: 'cloudformation-query' })
1701
1702
  ])
1702
1703
  );
1703
1704
  });
@@ -589,7 +589,7 @@ describe('CloudFormationDiscovery', () => {
589
589
 
590
590
  describe('External VPC with routing infrastructure pattern', () => {
591
591
  it('should discover routing resources when VPC is external', async () => {
592
- // This tests the Frontify pattern: external VPC/subnets/KMS,
592
+ // This tests the external VPC pattern: external VPC/subnets/KMS,
593
593
  // but stack creates routing infrastructure (route table, NAT route, VPC endpoints)
594
594
  const mockStack = {
595
595
  StackName: 'create-frigg-app-production',
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.490.e6d93e8.0",
4
+ "version": "2.0.0--canary.490.6e556a4.0",
5
5
  "bin": {
6
6
  "frigg": "./frigg-cli/index.js"
7
7
  },
@@ -16,9 +16,9 @@
16
16
  "@babel/eslint-parser": "^7.18.9",
17
17
  "@babel/parser": "^7.25.3",
18
18
  "@babel/traverse": "^7.25.3",
19
- "@friggframework/core": "2.0.0--canary.490.e6d93e8.0",
20
- "@friggframework/schemas": "2.0.0--canary.490.e6d93e8.0",
21
- "@friggframework/test": "2.0.0--canary.490.e6d93e8.0",
19
+ "@friggframework/core": "2.0.0--canary.490.6e556a4.0",
20
+ "@friggframework/schemas": "2.0.0--canary.490.6e556a4.0",
21
+ "@friggframework/test": "2.0.0--canary.490.6e556a4.0",
22
22
  "@hapi/boom": "^10.0.1",
23
23
  "@inquirer/prompts": "^5.3.8",
24
24
  "axios": "^1.7.2",
@@ -46,8 +46,8 @@
46
46
  "validate-npm-package-name": "^5.0.0"
47
47
  },
48
48
  "devDependencies": {
49
- "@friggframework/eslint-config": "2.0.0--canary.490.e6d93e8.0",
50
- "@friggframework/prettier-config": "2.0.0--canary.490.e6d93e8.0",
49
+ "@friggframework/eslint-config": "2.0.0--canary.490.6e556a4.0",
50
+ "@friggframework/prettier-config": "2.0.0--canary.490.6e556a4.0",
51
51
  "aws-sdk-client-mock": "^4.1.0",
52
52
  "aws-sdk-client-mock-jest": "^4.1.0",
53
53
  "jest": "^30.1.3",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "e6d93e89ac26842505162381f435720d7923baf4"
82
+ "gitHead": "6e556a4ddd243fe9163916341b1d70c31dd86ca0"
83
83
  }