@phila/cli 0.0.12 → 0.0.14

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 (114) hide show
  1. package/README.md +6 -6
  2. package/dist/commands/config.d.ts +2 -0
  3. package/dist/commands/config.d.ts.map +1 -1
  4. package/dist/commands/config.js.map +1 -1
  5. package/dist/commands/deploy.d.ts +8 -2
  6. package/dist/commands/deploy.d.ts.map +1 -1
  7. package/dist/commands/deploy.js +18 -7
  8. package/dist/commands/deploy.js.map +1 -1
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +30 -3
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/ship.js +2 -2
  13. package/dist/commands/ship.js.map +1 -1
  14. package/dist/commands/validate.d.ts.map +1 -1
  15. package/dist/commands/validate.js +17 -7
  16. package/dist/commands/validate.js.map +1 -1
  17. package/dist/templates/_shared/city.config.json.tmpl +1 -0
  18. package/dist/templates/_shared/dotnet-api/Api.csproj +1 -1
  19. package/dist/templates/_shared/dotnet-api/aws-lambda-tools-defaults.json +1 -1
  20. package/dist/templates/_shared/dotnet-api-postgres/Api.csproj +1 -1
  21. package/dist/templates/_shared/dotnet-api-postgres/aws-lambda-tools-defaults.json +1 -1
  22. package/dist/templates/_shared/webapp-cdk-package.json.tmpl +0 -3
  23. package/dist/templates/lambda-api-nodejs/README.md.tmpl +5 -5
  24. package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/index.ts +1 -1
  25. package/dist/templates/lambda-api-nodejs/apps/__lambdaName__/package.json +2 -2
  26. package/dist/templates/lambda-api-nodejs/cdk/app.ts.tmpl +3 -3
  27. package/dist/templates/lambda-api-nodejs/cdk/cdk.json +1 -1
  28. package/dist/templates/lambda-api-nodejs/cdk/package.json +0 -3
  29. package/dist/templates/lambda-api-nodejs/package.json.tmpl +3 -0
  30. package/dist/templates/lambda-dynamo-api/README.md.tmpl +5 -5
  31. package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/index.ts +1 -1
  32. package/dist/templates/lambda-dynamo-api/apps/__lambdaName__/package.json +2 -2
  33. package/dist/templates/lambda-dynamo-api/cdk/app.ts.tmpl +3 -3
  34. package/dist/templates/lambda-dynamo-api/cdk/cdk.json +3 -8
  35. package/dist/templates/lambda-dynamo-api/cdk/package.json +0 -3
  36. package/dist/templates/lambda-dynamo-api/package.json.tmpl +3 -0
  37. package/dist/templates/lambda-postgres-api/README.md.tmpl +7 -7
  38. package/dist/templates/lambda-postgres-api/apps/__lambdaName__/index.ts +1 -1
  39. package/dist/templates/lambda-postgres-api/apps/__lambdaName__/package.json +2 -2
  40. package/dist/templates/lambda-postgres-api/cdk/app.ts.tmpl +3 -3
  41. package/dist/templates/lambda-postgres-api/cdk/cdk.json +1 -1
  42. package/dist/templates/lambda-postgres-api/cdk/package.json +0 -3
  43. package/dist/templates/lambda-postgres-api/package.json.tmpl +3 -0
  44. package/dist/templates/static-site/README.md.tmpl +2 -2
  45. package/dist/templates/static-site/cdk/app.ts.tmpl +2 -2
  46. package/dist/templates/static-site/cdk/cdk.json +1 -1
  47. package/dist/templates/static-site/cdk/package.json +0 -3
  48. package/dist/templates/static-site/frontend/README.md +4 -4
  49. package/dist/templates/static-site/package.json.tmpl +4 -1
  50. package/dist/templates/webapp-ecs-dotnet/README.md.tmpl +4 -4
  51. package/dist/templates/webapp-ecs-dotnet/apps/api/Api.csproj +1 -1
  52. package/dist/templates/webapp-ecs-dotnet/cdk/app.ts.tmpl +3 -4
  53. package/dist/templates/webapp-ecs-dotnet/cdk/cdk.json +1 -1
  54. package/dist/templates/webapp-ecs-dotnet/package.json.tmpl +6 -3
  55. package/dist/templates/webapp-ecs-node/README.md.tmpl +7 -7
  56. package/dist/templates/webapp-ecs-node/apps/api/Dockerfile +5 -5
  57. package/dist/templates/webapp-ecs-node/cdk/app.ts.tmpl +3 -4
  58. package/dist/templates/webapp-ecs-node/cdk/cdk.json +1 -1
  59. package/dist/templates/webapp-ecs-node/package.json.tmpl +7 -4
  60. package/dist/templates/webapp-ecs-postgres-dotnet/README.md.tmpl +5 -5
  61. package/dist/templates/webapp-ecs-postgres-dotnet/apps/api/Api.csproj +1 -1
  62. package/dist/templates/webapp-ecs-postgres-dotnet/cdk/app.ts.tmpl +3 -4
  63. package/dist/templates/webapp-ecs-postgres-dotnet/cdk/cdk.json +1 -1
  64. package/dist/templates/webapp-ecs-postgres-dotnet/package.json.tmpl +6 -3
  65. package/dist/templates/webapp-ecs-postgres-node/README.md.tmpl +8 -8
  66. package/dist/templates/webapp-ecs-postgres-node/apps/api/Dockerfile +5 -5
  67. package/dist/templates/webapp-ecs-postgres-node/cdk/app.ts.tmpl +3 -4
  68. package/dist/templates/webapp-ecs-postgres-node/cdk/cdk.json +1 -1
  69. package/dist/templates/webapp-ecs-postgres-node/package.json.tmpl +7 -4
  70. package/dist/templates/webapp-lambda-dotnet/README.md.tmpl +4 -4
  71. package/dist/templates/webapp-lambda-dotnet/apps/api/Api.csproj +1 -1
  72. package/dist/templates/webapp-lambda-dotnet/apps/api/aws-lambda-tools-defaults.json +1 -1
  73. package/dist/templates/webapp-lambda-dotnet/cdk/app.ts.tmpl +4 -5
  74. package/dist/templates/webapp-lambda-dotnet/cdk/cdk.json +1 -1
  75. package/dist/templates/webapp-lambda-dotnet/package.json.tmpl +6 -3
  76. package/dist/templates/webapp-lambda-dynamo-dotnet/README.md.tmpl +4 -4
  77. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/Api.csproj +1 -1
  78. package/dist/templates/webapp-lambda-dynamo-dotnet/apps/api/aws-lambda-tools-defaults.json +1 -1
  79. package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/app.ts.tmpl +4 -5
  80. package/dist/templates/webapp-lambda-dynamo-dotnet/cdk/cdk.json +1 -1
  81. package/dist/templates/webapp-lambda-dynamo-dotnet/package.json.tmpl +6 -3
  82. package/dist/templates/webapp-lambda-dynamo-node/README.md.tmpl +6 -6
  83. package/dist/templates/webapp-lambda-dynamo-node/apps/api/index.ts +1 -1
  84. package/dist/templates/webapp-lambda-dynamo-node/cdk/app.ts.tmpl +4 -5
  85. package/dist/templates/webapp-lambda-dynamo-node/cdk/cdk.json +1 -1
  86. package/dist/templates/webapp-lambda-dynamo-node/package.json.tmpl +6 -3
  87. package/dist/templates/webapp-lambda-node/README.md.tmpl +5 -5
  88. package/dist/templates/webapp-lambda-node/apps/api/index.ts +1 -1
  89. package/dist/templates/webapp-lambda-node/cdk/app.ts.tmpl +4 -5
  90. package/dist/templates/webapp-lambda-node/cdk/cdk.json +1 -1
  91. package/dist/templates/webapp-lambda-node/package.json.tmpl +6 -3
  92. package/dist/templates/webapp-lambda-postgres-dotnet/README.md.tmpl +5 -5
  93. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/Api.csproj +1 -1
  94. package/dist/templates/webapp-lambda-postgres-dotnet/apps/api/aws-lambda-tools-defaults.json +1 -1
  95. package/dist/templates/webapp-lambda-postgres-dotnet/cdk/app.ts.tmpl +4 -5
  96. package/dist/templates/webapp-lambda-postgres-dotnet/cdk/cdk.json +1 -1
  97. package/dist/templates/webapp-lambda-postgres-dotnet/package.json.tmpl +6 -3
  98. package/dist/templates/webapp-lambda-postgres-node/README.md.tmpl +7 -7
  99. package/dist/templates/webapp-lambda-postgres-node/apps/api/index.ts +1 -1
  100. package/dist/templates/webapp-lambda-postgres-node/cdk/app.ts.tmpl +4 -5
  101. package/dist/templates/webapp-lambda-postgres-node/cdk/cdk.json +1 -1
  102. package/dist/templates/webapp-lambda-postgres-node/package.json.tmpl +6 -3
  103. package/dist/utils/install-env.d.ts +1 -1
  104. package/dist/utils/install-env.js +6 -6
  105. package/dist/utils/install-env.js.map +1 -1
  106. package/dist/utils/package-manager.d.ts +34 -2
  107. package/dist/utils/package-manager.d.ts.map +1 -1
  108. package/dist/utils/package-manager.js +102 -15
  109. package/dist/utils/package-manager.js.map +1 -1
  110. package/dist/utils/template.d.ts +7 -0
  111. package/dist/utils/template.d.ts.map +1 -1
  112. package/dist/utils/template.js +8 -1
  113. package/dist/utils/template.js.map +1 -1
  114. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  "compliance": {{complianceJson}},
8
8
  "confidentiality": "{{confidentiality}}",
9
9
  "cdkPath": "./cdk",
10
+ "packageManager": "{{packageManager}}",
10
11
  "environments": {
11
12
  "dev": {
12
13
  "profile": "{{devProfile}}",
@@ -2,7 +2,7 @@
2
2
  <!-- ABOUTME: Uses AOT-compatible serialization for Lambda runtime -->
3
3
  <Project Sdk="Microsoft.NET.Sdk.Web">
4
4
  <PropertyGroup>
5
- <TargetFramework>net8.0</TargetFramework>
5
+ <TargetFramework>net9.0</TargetFramework>
6
6
  <Nullable>enable</Nullable>
7
7
  <ImplicitUsings>enable</ImplicitUsings>
8
8
  <OutputType>Exe</OutputType>
@@ -3,7 +3,7 @@
3
3
  "profile": "",
4
4
  "region": "",
5
5
  "configuration": "Release",
6
- "function-runtime": "dotnet8",
6
+ "function-runtime": "dotnet9",
7
7
  "function-memory-size": 256,
8
8
  "function-timeout": 30,
9
9
  "function-handler": "Api"
@@ -2,7 +2,7 @@
2
2
  <!-- ABOUTME: Includes Npgsql and AWS SDK for database connectivity -->
3
3
  <Project Sdk="Microsoft.NET.Sdk.Web">
4
4
  <PropertyGroup>
5
- <TargetFramework>net8.0</TargetFramework>
5
+ <TargetFramework>net9.0</TargetFramework>
6
6
  <Nullable>enable</Nullable>
7
7
  <ImplicitUsings>enable</ImplicitUsings>
8
8
  <OutputType>Exe</OutputType>
@@ -3,7 +3,7 @@
3
3
  "profile": "",
4
4
  "region": "",
5
5
  "configuration": "Release",
6
- "function-runtime": "dotnet8",
6
+ "function-runtime": "dotnet9",
7
7
  "function-memory-size": 256,
8
8
  "function-timeout": 30,
9
9
  "function-handler": "Api"
@@ -19,8 +19,5 @@
19
19
  "aws-cdk": "^2.1103.0",
20
20
  "ts-node": "^10.9.0",
21
21
  "typescript": "^5.3.0"
22
- },
23
- "overrides": {
24
- "constructs": "^10.4.4"
25
22
  }
26
23
  }
@@ -22,10 +22,10 @@ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/
22
22
 
23
23
  ```bash
24
24
  # Install dependencies
25
- npm install
25
+ {{installCommand}}
26
26
 
27
27
  # Build all packages
28
- npm run build
28
+ {{runScriptPrefix}} build
29
29
  ```
30
30
 
31
31
  ### Deployment
@@ -48,13 +48,13 @@ city deploy prod
48
48
 
49
49
  ```bash
50
50
  # Build TypeScript
51
- npm run build
51
+ {{runScriptPrefix}} build
52
52
 
53
53
  # View CDK diff before deploying
54
- npm run diff
54
+ {{runScriptPrefix}} diff
55
55
 
56
56
  # Synthesize CloudFormation template
57
- npm run synth
57
+ {{runScriptPrefix}} synth
58
58
  ```
59
59
 
60
60
  ## Project Structure
@@ -39,7 +39,7 @@
39
39
  * by the CDK construct when a database is attached to the stack.
40
40
  */
41
41
 
42
- import type { APIGWV1Payload } from '@phila/philaroute/dist/types';
42
+ import type { APIGWV1Payload } from '@phila/philaroute/dist/aws';
43
43
  import type { RestAccumulator } from '@phila/philaroute/dist/types';
44
44
  import { Router, http, validate } from '@phila/philaroute';
45
45
 
@@ -4,8 +4,8 @@
4
4
  "description": "Lambda function handler",
5
5
  "private": true,
6
6
  "scripts": {
7
- "build": "npx tsc",
8
- "watch": "npx tsc -w"
7
+ "build": "{{execCommand}} tsc",
8
+ "watch": "{{execCommand}} tsc -w"
9
9
  },
10
10
  "dependencies": {
11
11
  "@phila/philaroute": "^1.0.12",
@@ -37,11 +37,11 @@ const stack = new Stack(app, '{{appName}}-' + environment, {
37
37
  stackName: '{{appName}}-' + environment,
38
38
  });
39
39
 
40
- // Create the LambdaApi construct
41
- new LambdaApi(stack, '{{appName}}Api', {
40
+ // Scope as any so linked @phila/constructs resolves to a single Construct type at runtime.
41
+ new LambdaApi(stack as any, '{{appName}}Api', {
42
42
  ...context,
43
43
  apiId: 'main',
44
- runtime: 'nodejs20',
44
+ runtime: 'nodejs22',
45
45
  handler: 'index.handler',
46
46
  codeDir: '../apps/{{lambdaName}}',
47
47
  });
@@ -1,5 +1,5 @@
1
1
  {
2
- "app": "npx ts-node --prefer-ts-exts app.ts",
2
+ "app": "{{execCommand}} ts-node --prefer-ts-exts app.ts",
3
3
  "watch": {
4
4
  "include": ["**"],
5
5
  "exclude": [
@@ -19,8 +19,5 @@
19
19
  "aws-cdk": "^2.1103.0",
20
20
  "ts-node": "^10.9.0",
21
21
  "typescript": "^5.3.0"
22
- },
23
- "overrides": {
24
- "constructs": "^10.4.4"
25
22
  }
26
23
  }
@@ -17,5 +17,8 @@
17
17
  "devDependencies": {
18
18
  "@types/node": "^20.10.0",
19
19
  "typescript": "^5.3.0"
20
+ },
21
+ "overrides": {
22
+ "constructs": "10.4.4"
20
23
  }
21
24
  }
@@ -22,10 +22,10 @@ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/
22
22
 
23
23
  ```bash
24
24
  # Install dependencies
25
- npm install
25
+ {{installCommand}}
26
26
 
27
27
  # Build all packages
28
- npm run build
28
+ {{runScriptPrefix}} build
29
29
  ```
30
30
 
31
31
  ### Deployment
@@ -48,13 +48,13 @@ city deploy prod
48
48
 
49
49
  ```bash
50
50
  # Build TypeScript
51
- npm run build
51
+ {{runScriptPrefix}} build
52
52
 
53
53
  # View CDK diff before deploying
54
- npm run diff
54
+ {{runScriptPrefix}} diff
55
55
 
56
56
  # Synthesize CloudFormation template
57
- npm run synth
57
+ {{runScriptPrefix}} synth
58
58
  ```
59
59
 
60
60
  ## Project Structure
@@ -8,7 +8,7 @@
8
8
  * DynamoDB integration using AWS SDK v3 DocumentClient
9
9
  */
10
10
 
11
- import type { APIGWV1Payload } from '@phila/philaroute/dist/types';
11
+ import type { APIGWV1Payload } from '@phila/philaroute/dist/aws';
12
12
  import type { RestAccumulator } from '@phila/philaroute/dist/types';
13
13
  import { Router, http, validate } from '@phila/philaroute';
14
14
  import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
@@ -4,8 +4,8 @@
4
4
  "description": "Lambda function handler with DynamoDB",
5
5
  "private": true,
6
6
  "scripts": {
7
- "build": "npx tsc",
8
- "watch": "npx tsc -w"
7
+ "build": "{{execCommand}} tsc",
8
+ "watch": "{{execCommand}} tsc -w"
9
9
  },
10
10
  "dependencies": {
11
11
  "@phila/philaroute": "^1.0.12",
@@ -37,11 +37,11 @@ const stack = new Stack(app, '{{appName}}-' + environment, {
37
37
  stackName: '{{appName}}-' + environment,
38
38
  });
39
39
 
40
- // Create the LambdaDynamoApi construct
41
- new LambdaDynamoApi(stack, '{{appName}}Api', {
40
+ // Scope as any so linked @phila/constructs resolves to a single Construct type at runtime.
41
+ new LambdaDynamoApi(stack as any, '{{appName}}Api', {
42
42
  ...context,
43
43
  apiId: 'main',
44
- runtime: 'nodejs20',
44
+ runtime: 'nodejs22',
45
45
  handler: 'index.handler',
46
46
  codeDir: '../apps/{{lambdaName}}',
47
47
  // DynamoDB table configuration
@@ -1,9 +1,7 @@
1
1
  {
2
- "app": "npx ts-node --prefer-ts-exts app.ts",
2
+ "app": "{{execCommand}} ts-node --prefer-ts-exts app.ts",
3
3
  "watch": {
4
- "include": [
5
- "**"
6
- ],
4
+ "include": ["**"],
7
5
  "exclude": [
8
6
  "README.md",
9
7
  "cdk*.json",
@@ -19,10 +17,7 @@
19
17
  "context": {
20
18
  "@aws-cdk/aws-lambda:recognizeLayerVersion": true,
21
19
  "@aws-cdk/core:checkSecretUsage": true,
22
- "@aws-cdk/core:target-partitions": [
23
- "aws",
24
- "aws-cn"
25
- ],
20
+ "@aws-cdk/core:target-partitions": ["aws", "aws-cn"],
26
21
  "@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true,
27
22
  "@aws-cdk/aws-ec2:uniqueImdsv2TemplateName": true,
28
23
  "@aws-cdk/aws-ecs:arnFormatIncludesClusterName": true,
@@ -19,8 +19,5 @@
19
19
  "aws-cdk": "^2.1103.0",
20
20
  "ts-node": "^10.9.0",
21
21
  "typescript": "^5.3.0"
22
- },
23
- "overrides": {
24
- "constructs": "^10.4.4"
25
22
  }
26
23
  }
@@ -17,5 +17,8 @@
17
17
  "devDependencies": {
18
18
  "@types/node": "^20.10.0",
19
19
  "typescript": "^5.3.0"
20
+ },
21
+ "overrides": {
22
+ "constructs": "10.4.4"
20
23
  }
21
24
  }
@@ -22,10 +22,10 @@ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/
22
22
 
23
23
  ```bash
24
24
  # Install dependencies
25
- npm install
25
+ {{installCommand}}
26
26
 
27
27
  # Build all packages
28
- npm run build
28
+ {{runScriptPrefix}} build
29
29
  ```
30
30
 
31
31
  ### Deployment
@@ -48,13 +48,13 @@ city deploy prod
48
48
 
49
49
  ```bash
50
50
  # Build TypeScript
51
- npm run build
51
+ {{runScriptPrefix}} build
52
52
 
53
53
  # View CDK diff before deploying
54
- npm run diff
54
+ {{runScriptPrefix}} diff
55
55
 
56
56
  # Synthesize CloudFormation template
57
- npm run synth
57
+ {{runScriptPrefix}} synth
58
58
  ```
59
59
 
60
60
  ## Project Structure
@@ -205,10 +205,10 @@ This application creates:
205
205
  To use Aurora Serverless v2 instead of provisioned RDS, edit `cdk/app.ts`:
206
206
 
207
207
  ```typescript
208
- new LambdaPostgresApi(stack, '{{appName}}Api', {
208
+ new LambdaPostgresApi(stack as any, '{{appName}}Api', {
209
209
  ...context,
210
210
  apiId: 'main',
211
- runtime: 'nodejs20',
211
+ runtime: 'nodejs22',
212
212
  handler: 'index.handler',
213
213
  codeDir: '../apps/{{lambdaName}}',
214
214
  serverless: true, // Use Aurora Serverless v2
@@ -12,7 +12,7 @@
12
12
  * by the CDK construct.
13
13
  */
14
14
 
15
- import type { APIGWV1Payload } from '@phila/philaroute/dist/types';
15
+ import type { APIGWV1Payload } from '@phila/philaroute/dist/aws';
16
16
  import type { RestAccumulator } from '@phila/philaroute/dist/types';
17
17
  import { Router, http, validate } from '@phila/philaroute';
18
18
  import { getPool } from '@phila/db-postgres';
@@ -4,8 +4,8 @@
4
4
  "description": "Lambda function handler with PostgreSQL database access",
5
5
  "private": true,
6
6
  "scripts": {
7
- "build": "npx tsc",
8
- "watch": "npx tsc -w"
7
+ "build": "{{execCommand}} tsc",
8
+ "watch": "{{execCommand}} tsc -w"
9
9
  },
10
10
  "dependencies": {
11
11
  "@phila/philaroute": "^1.0.12",
@@ -37,11 +37,11 @@ const stack = new Stack(app, '{{appName}}-' + environment, {
37
37
  stackName: '{{appName}}-' + environment,
38
38
  });
39
39
 
40
- // Create the LambdaPostgresApi construct
41
- new LambdaPostgresApi(stack, '{{appName}}Api', {
40
+ // Scope as any so linked @phila/constructs resolves to a single Construct type at runtime.
41
+ new LambdaPostgresApi(stack as any, '{{appName}}Api', {
42
42
  ...context,
43
43
  apiId: 'main',
44
- runtime: 'nodejs20',
44
+ runtime: 'nodejs22',
45
45
  handler: 'index.handler',
46
46
  codeDir: '../apps/{{lambdaName}}',
47
47
  // Uncomment for serverless Aurora instead of provisioned RDS:
@@ -1,4 +1,4 @@
1
1
  {
2
- "app": "npx ts-node app.ts",
2
+ "app": "{{execCommand}} ts-node app.ts",
3
3
  "requireApproval": "broadening"
4
4
  }
@@ -19,8 +19,5 @@
19
19
  "aws-cdk": "^2.1103.0",
20
20
  "ts-node": "^10.9.0",
21
21
  "typescript": "^5.3.0"
22
- },
23
- "overrides": {
24
- "constructs": "^10.4.4"
25
22
  }
26
23
  }
@@ -17,5 +17,8 @@
17
17
  "devDependencies": {
18
18
  "@types/node": "^20.10.0",
19
19
  "typescript": "^5.3.0"
20
+ },
21
+ "overrides": {
22
+ "constructs": "10.4.4"
20
23
  }
21
24
  }
@@ -20,11 +20,11 @@ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/
20
20
 
21
21
  ```bash
22
22
  # Install dependencies
23
- npm install
23
+ {{installCommand}}
24
24
 
25
25
  # Set up frontend (replace placeholder with Nuxt)
26
26
  cd frontend
27
- npx nuxi@latest init .
27
+ {{execCommand}} nuxi@latest init .
28
28
  # Configure nuxt.config.ts for SSG
29
29
  ```
30
30
 
@@ -37,8 +37,8 @@ const stack = new Stack(app, '{{appName}}-' + environment, {
37
37
  stackName: '{{appName}}-' + environment,
38
38
  });
39
39
 
40
- // Create the StaticSite construct
41
- new StaticSite(stack, '{{appName}}Site', {
40
+ // Scope as any so linked @phila/constructs resolves to a single Construct type at runtime.
41
+ new StaticSite(stack as any, '{{appName}}Site', {
42
42
  ...context,
43
43
  assetDir: '../frontend/dist',
44
44
  });
@@ -1,5 +1,5 @@
1
1
  {
2
- "app": "npx ts-node --prefer-ts-exts app.ts",
2
+ "app": "{{execCommand}} ts-node --prefer-ts-exts app.ts",
3
3
  "watch": {
4
4
  "include": ["**"],
5
5
  "exclude": [
@@ -19,8 +19,5 @@
19
19
  "aws-cdk": "^2.1103.0",
20
20
  "ts-node": "^10.9.0",
21
21
  "typescript": "^5.3.0"
22
- },
23
- "overrides": {
24
- "constructs": "^10.4.4"
25
22
  }
26
23
  }
@@ -11,7 +11,7 @@ Replace this placeholder with a Nuxt project:
11
11
  rm -rf frontend/*
12
12
 
13
13
  # Create Nuxt project
14
- npx nuxi@latest init frontend
14
+ {{execCommand}} nuxi@latest init frontend
15
15
 
16
16
  # Configure for SSG in nuxt.config.ts:
17
17
  # export default defineNuxtConfig({
@@ -26,14 +26,14 @@ npx nuxi@latest init frontend
26
26
 
27
27
  ```bash
28
28
  cd frontend
29
- npm install
30
- npm run generate # Outputs to .output/public/
29
+ {{installCommand}}
30
+ {{runScriptPrefix}} generate # Outputs to .output/public/
31
31
  ```
32
32
 
33
33
  ## Deploy
34
34
 
35
35
  The `city ship --web` command will:
36
- 1. Run `pnpm build` in this directory
36
+ 1. Run `{{runScriptPrefix}} build` in this directory
37
37
  2. Sync `dist/` to the S3 bucket
38
38
  3. Invalidate the CloudFront cache
39
39
 
@@ -12,5 +12,8 @@
12
12
  "workspaces": [
13
13
  "cdk",
14
14
  "frontend"
15
- ]
15
+ ],
16
+ "overrides": {
17
+ "constructs": "10.4.4"
18
+ }
16
19
  }
@@ -24,7 +24,7 @@ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/
24
24
 
25
25
  ```bash
26
26
  # Install frontend and CDK dependencies
27
- npm install
27
+ {{installCommand}}
28
28
 
29
29
  # Restore .NET dependencies
30
30
  cd apps/api && dotnet restore && cd ../..
@@ -34,16 +34,16 @@ cd apps/api && dotnet restore && cd ../..
34
34
 
35
35
  ```bash
36
36
  # Run frontend dev server
37
- npm run dev
37
+ {{runScriptPrefix}} dev
38
38
 
39
39
  # Run API locally
40
40
  cd apps/api && dotnet run
41
41
 
42
42
  # Build frontend for production
43
- npm run build:frontend
43
+ {{runScriptPrefix}} build:frontend
44
44
 
45
45
  # Build API Docker image
46
- npm run build:api
46
+ {{runScriptPrefix}} build:api
47
47
  ```
48
48
 
49
49
  ### Deployment
@@ -2,7 +2,7 @@
2
2
  <!-- ABOUTME: Standard web application hosted on Kestrel server -->
3
3
  <Project Sdk="Microsoft.NET.Sdk.Web">
4
4
  <PropertyGroup>
5
- <TargetFramework>net8.0</TargetFramework>
5
+ <TargetFramework>net9.0</TargetFramework>
6
6
  <Nullable>enable</Nullable>
7
7
  <ImplicitUsings>enable</ImplicitUsings>
8
8
  <OutputType>Exe</OutputType>
@@ -39,14 +39,13 @@ const stack = new Stack(app, '{{appName}}-' + environment, {
39
39
  stackName: '{{appName}}-' + environment,
40
40
  });
41
41
 
42
- // Create the StaticSite construct for the Nuxt frontend
43
- new StaticSite(stack, '{{appName}}Site', {
42
+ // Scope as any so linked @phila/constructs resolves to a single Construct type at runtime.
43
+ new StaticSite(stack as any, '{{appName}}Site', {
44
44
  ...context,
45
45
  assetDir: '../frontend/dist',
46
46
  });
47
47
 
48
- // Create the EcsApi construct for the containerized .NET API backend
49
- new EcsApi(stack, '{{appName}}Api', {
48
+ new EcsApi(stack as any, '{{appName}}Api', {
50
49
  ...context,
51
50
  apiId: 'api',
52
51
  image: ecs.ContainerImage.fromAsset(path.join(__dirname, '../apps/api')),
@@ -1,5 +1,5 @@
1
1
  {
2
- "app": "npx ts-node --prefer-ts-exts app.ts",
2
+ "app": "{{execCommand}} ts-node --prefer-ts-exts app.ts",
3
3
  "watch": {
4
4
  "include": ["**"],
5
5
  "exclude": [
@@ -4,10 +4,10 @@
4
4
  "description": "Web application with Nuxt frontend and .NET ECS containerized API backend",
5
5
  "private": true,
6
6
  "scripts": {
7
- "build": "npm run build:frontend && npm run build:api",
8
- "build:frontend": "cd frontend && npm run build",
7
+ "build": "{{runScriptPrefix}} build:frontend && {{runScriptPrefix}} build:api",
8
+ "build:frontend": "cd frontend && {{runScriptPrefix}} build",
9
9
  "build:api": "cd apps/api && docker build -t {{appName}}-api .",
10
- "dev": "cd frontend && npm run dev",
10
+ "dev": "cd frontend && {{runScriptPrefix}} dev",
11
11
  "test": "{{testCommand}}",
12
12
  "synth": "cd cdk && cdk synth",
13
13
  "deploy": "cd cdk && cdk deploy",
@@ -20,5 +20,8 @@
20
20
  "devDependencies": {
21
21
  "@types/node": "^20.10.0",
22
22
  "typescript": "^5.3.0"
23
+ },
24
+ "overrides": {
25
+ "constructs": "10.4.4"
23
26
  }
24
27
  }
@@ -23,26 +23,26 @@ View the [architecture diagram](https://github.com/CityOfPhiladelphia/phila-ctl/
23
23
 
24
24
  ```bash
25
25
  # Install dependencies
26
- npm install
26
+ {{installCommand}}
27
27
 
28
28
  # Build all packages
29
- npm run build
29
+ {{runScriptPrefix}} build
30
30
  ```
31
31
 
32
32
  ### Development
33
33
 
34
34
  ```bash
35
35
  # Run frontend dev server
36
- npm run dev
36
+ {{runScriptPrefix}} dev
37
37
 
38
38
  # Run API locally (requires Docker)
39
- cd apps/api && npm run dev
39
+ cd apps/api && {{runScriptPrefix}} dev
40
40
 
41
41
  # Build frontend for production
42
- npm run build:frontend
42
+ {{runScriptPrefix}} build:frontend
43
43
 
44
44
  # Build API Docker image
45
- npm run build:api
45
+ {{runScriptPrefix}} build:api
46
46
  ```
47
47
 
48
48
  ### Deployment
@@ -137,7 +137,7 @@ Run the API locally:
137
137
 
138
138
  ```bash
139
139
  cd apps/api
140
- npm run dev
140
+ {{runScriptPrefix}} dev
141
141
  ```
142
142
 
143
143
  Or build and run the Docker container:
@@ -6,12 +6,12 @@ FROM node:20-alpine AS builder
6
6
 
7
7
  WORKDIR /app
8
8
 
9
- COPY package*.json ./
10
- RUN npm ci
9
+ COPY package.json {{lockfileName}} ./
10
+ RUN {{ciCommand}}
11
11
 
12
12
  COPY tsconfig.json ./
13
13
  COPY *.ts ./
14
- RUN npm run build
14
+ RUN {{runScriptPrefix}} build
15
15
 
16
16
  # Production stage
17
17
  FROM node:20-alpine
@@ -19,8 +19,8 @@ FROM node:20-alpine
19
19
  WORKDIR /app
20
20
 
21
21
  # Copy package files and install production dependencies only
22
- COPY package*.json ./
23
- RUN npm ci --omit=dev
22
+ COPY package.json {{lockfileName}} ./
23
+ RUN {{ciProdCommand}}
24
24
 
25
25
  # Copy compiled JavaScript from builder
26
26
  COPY --from=builder /app/dist ./dist