skuba 9.2.0-old-lang-opts-20250115050141 → 10.0.0-main-20250312042528

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 (105) hide show
  1. package/lib/cli/configure/analyseDependencies.js +4 -1
  2. package/lib/cli/configure/analyseDependencies.js.map +2 -2
  3. package/lib/cli/init/index.js +2 -2
  4. package/lib/cli/init/index.js.map +2 -2
  5. package/lib/cli/init/prompts.d.ts +1 -1
  6. package/lib/cli/lint/internal.js +2 -1
  7. package/lib/cli/lint/internal.js.map +2 -2
  8. package/lib/cli/lint/internalLints/detectBadCodeowners.d.ts +4 -0
  9. package/lib/cli/lint/internalLints/detectBadCodeowners.js +72 -0
  10. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +7 -0
  11. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.d.ts +2 -0
  12. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js +35 -0
  13. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/index.js.map +7 -0
  14. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.d.ts +2 -0
  15. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js +59 -0
  16. package/lib/cli/lint/internalLints/upgrade/patches/9.1.0/upgradeNode.js.map +7 -0
  17. package/lib/cli/migrate/index.js +10 -1
  18. package/lib/cli/migrate/index.js.map +2 -2
  19. package/lib/cli/migrate/nodeVersion/checks.d.ts +14 -0
  20. package/lib/cli/migrate/nodeVersion/checks.js +165 -0
  21. package/lib/cli/migrate/nodeVersion/checks.js.map +7 -0
  22. package/lib/cli/migrate/nodeVersion/getNodeTypesVersion.d.ts +6 -0
  23. package/lib/cli/migrate/nodeVersion/getNodeTypesVersion.js +58 -0
  24. package/lib/cli/migrate/nodeVersion/getNodeTypesVersion.js.map +7 -0
  25. package/lib/cli/migrate/nodeVersion/index.d.ts +5 -1
  26. package/lib/cli/migrate/nodeVersion/index.js +119 -36
  27. package/lib/cli/migrate/nodeVersion/index.js.map +2 -2
  28. package/lib/index.js +3 -3
  29. package/lib/utils/copy.d.ts +1 -1
  30. package/lib/utils/copy.js +11 -3
  31. package/lib/utils/copy.js.map +2 -2
  32. package/lib/utils/template.d.ts +2 -2
  33. package/lib/utils/template.js +0 -5
  34. package/lib/utils/template.js.map +2 -2
  35. package/lib/utils/version.d.ts +17 -1
  36. package/lib/utils/version.js +48 -18
  37. package/lib/utils/version.js.map +3 -3
  38. package/package.json +17 -19
  39. package/template/base/tsconfig.json +2 -2
  40. package/template/express-rest-api/.buildkite/pipeline.yml +4 -4
  41. package/template/express-rest-api/.gantry/common.yml +1 -3
  42. package/template/express-rest-api/.nvmrc +1 -1
  43. package/template/express-rest-api/Dockerfile +1 -1
  44. package/template/express-rest-api/Dockerfile.dev-deps +2 -2
  45. package/template/express-rest-api/package.json +4 -4
  46. package/template/greeter/.buildkite/pipeline.yml +1 -1
  47. package/template/greeter/.nvmrc +1 -1
  48. package/template/greeter/Dockerfile +2 -2
  49. package/template/greeter/README.md +1 -1
  50. package/template/greeter/package.json +4 -4
  51. package/template/koa-rest-api/.buildkite/pipeline.yml +4 -4
  52. package/template/koa-rest-api/.gantry/common.yml +1 -3
  53. package/template/koa-rest-api/.nvmrc +1 -1
  54. package/template/koa-rest-api/Dockerfile +1 -1
  55. package/template/koa-rest-api/Dockerfile.dev-deps +2 -2
  56. package/template/koa-rest-api/package.json +3 -3
  57. package/template/koa-rest-api/tsconfig.json +2 -2
  58. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  59. package/template/lambda-sqs-worker-cdk/.nvmrc +1 -1
  60. package/template/lambda-sqs-worker-cdk/Dockerfile +3 -3
  61. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +2 -2
  62. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +4 -4
  63. package/template/lambda-sqs-worker-cdk/infra/config.ts +1 -1
  64. package/template/lambda-sqs-worker-cdk/infra/index.ts +3 -5
  65. package/template/lambda-sqs-worker-cdk/package.json +6 -6
  66. package/template/lambda-sqs-worker-cdk/tsconfig.json +2 -2
  67. package/template/oss-npm-package/.github/workflows/release.yml +1 -1
  68. package/template/oss-npm-package/.github/workflows/validate.yml +1 -1
  69. package/template/oss-npm-package/.nvmrc +1 -1
  70. package/template/oss-npm-package/_package.json +1 -1
  71. package/template/private-npm-package/.nvmrc +1 -1
  72. package/template/private-npm-package/_package.json +2 -2
  73. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +0 -108
  74. package/template/lambda-sqs-worker/.env +0 -1
  75. package/template/lambda-sqs-worker/.nvmrc +0 -1
  76. package/template/lambda-sqs-worker/Dockerfile +0 -17
  77. package/template/lambda-sqs-worker/README.md +0 -132
  78. package/template/lambda-sqs-worker/_.npmrc +0 -13
  79. package/template/lambda-sqs-worker/docker-compose.yml +0 -10
  80. package/template/lambda-sqs-worker/package.json +0 -45
  81. package/template/lambda-sqs-worker/serverless.yml +0 -213
  82. package/template/lambda-sqs-worker/skuba.template.js +0 -33
  83. package/template/lambda-sqs-worker/src/app.test.ts +0 -116
  84. package/template/lambda-sqs-worker/src/app.ts +0 -57
  85. package/template/lambda-sqs-worker/src/config.ts +0 -62
  86. package/template/lambda-sqs-worker/src/framework/handler.test.ts +0 -61
  87. package/template/lambda-sqs-worker/src/framework/handler.ts +0 -43
  88. package/template/lambda-sqs-worker/src/framework/logging.ts +0 -27
  89. package/template/lambda-sqs-worker/src/framework/metrics.ts +0 -14
  90. package/template/lambda-sqs-worker/src/framework/validation.test.ts +0 -84
  91. package/template/lambda-sqs-worker/src/framework/validation.ts +0 -10
  92. package/template/lambda-sqs-worker/src/hooks.ts +0 -95
  93. package/template/lambda-sqs-worker/src/mapping/jobScorer.ts +0 -22
  94. package/template/lambda-sqs-worker/src/services/aws.ts +0 -5
  95. package/template/lambda-sqs-worker/src/services/jobScorer.test.ts +0 -44
  96. package/template/lambda-sqs-worker/src/services/jobScorer.ts +0 -59
  97. package/template/lambda-sqs-worker/src/services/pipelineEventSender.test.ts +0 -40
  98. package/template/lambda-sqs-worker/src/services/pipelineEventSender.ts +0 -33
  99. package/template/lambda-sqs-worker/src/testing/handler.ts +0 -13
  100. package/template/lambda-sqs-worker/src/testing/logging.ts +0 -19
  101. package/template/lambda-sqs-worker/src/testing/services.ts +0 -28
  102. package/template/lambda-sqs-worker/src/testing/types.ts +0 -33
  103. package/template/lambda-sqs-worker/src/types/jobScorer.ts +0 -15
  104. package/template/lambda-sqs-worker/src/types/pipelineEvents.ts +0 -21
  105. package/template/lambda-sqs-worker/tsconfig.json +0 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "9.2.0-old-lang-opts-20250115050141",
3
+ "version": "10.0.0-main-20250312042528",
4
4
  "private": false,
5
5
  "description": "SEEK development toolkit for backend applications and packages",
6
6
  "homepage": "https://github.com/seek-oss/skuba#readme",
@@ -64,7 +64,7 @@
64
64
  "dotenv": "^16.0.0",
65
65
  "ejs": "^3.1.6",
66
66
  "enquirer": "^2.3.6",
67
- "esbuild": "~0.24.0",
67
+ "esbuild": "~0.25.0",
68
68
  "eslint": "^9.11.1",
69
69
  "execa": "^5.0.0",
70
70
  "fast-glob": "^3.3.2",
@@ -78,14 +78,14 @@
78
78
  "isomorphic-git": "^1.11.1",
79
79
  "jest": "^29.0.1",
80
80
  "jest-watch-typeahead": "^2.1.1",
81
- "libnpmsearch": "^8.0.0",
82
81
  "lodash.mergewith": "^4.6.2",
83
82
  "minimist": "^1.2.6",
84
83
  "normalize-package-data": "^7.0.0",
84
+ "npm-registry-fetch": "^18.0.2",
85
85
  "npm-run-path": "^4.0.1",
86
86
  "npm-which": "^3.0.1",
87
87
  "picomatch": "^4.0.0",
88
- "prettier": "~3.4.0",
88
+ "prettier": "~3.5.0",
89
89
  "prettier-plugin-packagejson": "^2.4.10",
90
90
  "read-pkg-up": "^7.0.1",
91
91
  "semantic-release": "^22.0.12",
@@ -96,39 +96,37 @@
96
96
  "tsconfig-paths": "^4.0.0",
97
97
  "tsconfig-seek": "2.0.0",
98
98
  "tsx": "^4.16.2",
99
- "typescript": "~5.7.0",
100
- "validate-npm-package-name": "^6.0.0",
99
+ "typescript": "~5.8.0",
101
100
  "zod": "^3.22.4",
102
- "eslint-config-skuba": "5.1.0-old-lang-opts-20250115050141"
101
+ "eslint-config-skuba": "5.1.0-main-20250312042528"
103
102
  },
104
103
  "devDependencies": {
105
- "@changesets/cli": "2.27.11",
104
+ "@changesets/cli": "2.28.1",
106
105
  "@changesets/get-github-info": "0.6.0",
107
106
  "@jest/reporters": "29.7.0",
108
107
  "@jest/test-result": "29.7.0",
109
108
  "@types/ejs": "3.1.5",
110
- "@types/express": "4.17.21",
109
+ "@types/express": "5.0.0",
111
110
  "@types/fs-extra": "11.0.4",
112
111
  "@types/koa": "2.15.0",
113
- "@types/libnpmsearch": "2.0.7",
114
112
  "@types/lodash.mergewith": "4.6.9",
115
113
  "@types/minimist": "1.2.5",
116
114
  "@types/module-alias": "2.0.4",
115
+ "@types/npm-registry-fetch": "8.0.7",
117
116
  "@types/npm-which": "3.0.3",
118
- "@types/picomatch": "3.0.1",
117
+ "@types/picomatch": "3.0.2",
119
118
  "@types/semver": "7.5.8",
120
119
  "@types/supertest": "6.0.2",
121
- "@types/validate-npm-package-name": "4.0.2",
122
- "enhanced-resolve": "5.18.0",
123
- "express": "4.21.2",
124
- "fastify": "5.2.0",
120
+ "enhanced-resolve": "5.18.1",
121
+ "express": "5.0.1",
122
+ "fastify": "5.2.1",
125
123
  "jest-diff": "29.7.0",
126
124
  "jsonfile": "6.1.0",
127
- "koa": "2.15.3",
128
- "memfs": "4.15.1",
125
+ "koa": "2.16.0",
126
+ "memfs": "4.17.0",
129
127
  "remark-cli": "12.0.1",
130
- "remark-preset-lint-recommended": "7.0.0",
131
- "semver": "7.6.3",
128
+ "remark-preset-lint-recommended": "7.0.1",
129
+ "semver": "7.7.1",
132
130
  "supertest": "7.0.0",
133
131
  "type-fest": "2.19.0"
134
132
  },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "baseUrl": ".",
4
- "lib": ["ES2022"],
4
+ "lib": ["ES2024"],
5
5
  "outDir": "lib",
6
6
  "paths": {
7
7
  "src": ["src"]
8
8
  },
9
- "target": "ES2022"
9
+ "target": "ES2024"
10
10
  },
11
11
  "exclude": ["lib*/**/*"],
12
12
  "extends": "skuba/config/tsconfig.json"
@@ -57,7 +57,7 @@ steps:
57
57
  - *aws-sm
58
58
  - *private-npm
59
59
  - *docker-ecr-cache
60
- - docker-compose#v5.5.0:
60
+ - docker-compose#v5.6.0:
61
61
  run: app
62
62
  environment:
63
63
  - GITHUB_API_TOKEN
@@ -70,7 +70,7 @@ steps:
70
70
  - *aws-sm
71
71
  - *private-npm
72
72
  - *docker-ecr-cache
73
- - seek-jobs/gantry#v3.0.0:
73
+ - seek-jobs/gantry#v4.0.0:
74
74
  command: build
75
75
  file: gantry.build.yml
76
76
  region: <%- region %>
@@ -87,7 +87,7 @@ steps:
87
87
  concurrency_group: <%- teamName %>/deploy/gantry/<%- devGantryEnvironmentName %>
88
88
  key: deploy-dev
89
89
  plugins:
90
- - seek-jobs/gantry#v3.0.0:
90
+ - seek-jobs/gantry#v4.0.0:
91
91
  command: apply
92
92
  environment: <%- devGantryEnvironmentName %>
93
93
  file: gantry.apply.yml
@@ -102,7 +102,7 @@ steps:
102
102
  concurrency_group: <%- teamName %>/deploy/gantry/<%- prodGantryEnvironmentName %>
103
103
  depends_on: deploy-dev
104
104
  plugins:
105
- - seek-jobs/gantry#v3.0.0:
105
+ - seek-jobs/gantry#v4.0.0:
106
106
  command: apply
107
107
  environment: <%- prodGantryEnvironmentName %>
108
108
  file: gantry.apply.yml
@@ -9,6 +9,4 @@ image: '{{values "prodAccountId"}}.dkr.ecr.<%- region %>.amazonaws.com/{{values
9
9
  # datadogSecretId: arn:aws:secretsmanager:<%- region %>:<aws-account-id>:secret:<secret-name>
10
10
 
11
11
  tags:
12
- seek:source:sha: '{{.CommitSHA}}'
13
- seek:source:url: 'https://github.com/SEEK-Jobs/<%- repoName %>'
14
- # seek:system:name: 'TODO: https://rfc.skinfra.xyz/RFC019-AWS-Tagging-Standard.html#required-tags'
12
+ # seek:system:name: 'TODO: https://rfc.skinfra.xyz/RFC051-AWS-Tagging-Standard.html#tagging-schema'
@@ -1 +1 @@
1
- 20
1
+ 22
@@ -12,7 +12,7 @@ RUN pnpm install --offline --prod
12
12
 
13
13
  ###
14
14
 
15
- FROM gcr.io/distroless/nodejs20-debian12 AS runtime
15
+ FROM gcr.io/distroless/nodejs22-debian12 AS runtime
16
16
 
17
17
  WORKDIR /workdir
18
18
 
@@ -1,6 +1,6 @@
1
- # syntax=docker/dockerfile:1.12
1
+ # syntax=docker/dockerfile:1.14
2
2
 
3
- FROM public.ecr.aws/docker/library/node:20-alpine AS dev-deps
3
+ FROM public.ecr.aws/docker/library/node:22-alpine AS dev-deps
4
4
 
5
5
  RUN --mount=type=bind,source=package.json,target=package.json \
6
6
  corepack enable pnpm && corepack install
@@ -14,22 +14,22 @@
14
14
  },
15
15
  "dependencies": {
16
16
  "@seek/logger": "^9.0.0",
17
- "express": "^4.17.1",
17
+ "express": "^5.0.0",
18
18
  "hot-shots": "^10.0.0",
19
19
  "seek-datadog-custom-metrics": "^4.6.3",
20
20
  "skuba-dive": "^2.0.0"
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/express": "^5.0.0",
24
- "@types/node": "^20.16.5",
24
+ "@types/node": "^22.13.10",
25
25
  "@types/supertest": "^6.0.0",
26
26
  "mime": "^4.0.1",
27
27
  "pino-pretty": "^13.0.0",
28
28
  "skuba": "*",
29
29
  "supertest": "^7.0.0"
30
30
  },
31
- "packageManager": "pnpm@9.15.3",
31
+ "packageManager": "pnpm@10.6.1",
32
32
  "engines": {
33
- "node": ">=20"
33
+ "node": ">=22"
34
34
  }
35
35
  }
@@ -38,7 +38,7 @@ steps:
38
38
  - *aws-sm
39
39
  - *private-npm
40
40
  - *docker-ecr-cache
41
- - docker-compose#v5.5.0:
41
+ - docker-compose#v5.6.0:
42
42
  run: app
43
43
  environment:
44
44
  - GITHUB_API_TOKEN
@@ -1 +1 @@
1
- 20
1
+ 22
@@ -1,6 +1,6 @@
1
- # syntax=docker/dockerfile:1.12
1
+ # syntax=docker/dockerfile:1.14
2
2
 
3
- FROM public.ecr.aws/docker/library/node:20-alpine AS dev-deps
3
+ FROM public.ecr.aws/docker/library/node:22-alpine AS dev-deps
4
4
 
5
5
  RUN --mount=type=bind,source=package.json,target=package.json \
6
6
  corepack enable pnpm && corepack install
@@ -69,7 +69,7 @@ It does not assume a deployment method or environment.
69
69
  For inspiration in this space, check out:
70
70
 
71
71
  - The `koa-rest-api` template for containerised deployments
72
- - The `lambda-sqs-worker` template for Lambda deployments
72
+ - The `lambda-sqs-worker-cdk` template for Lambda deployments
73
73
 
74
74
  ## Support
75
75
 
@@ -16,11 +16,11 @@
16
16
  "skuba-dive": "^2.0.0"
17
17
  },
18
18
  "devDependencies": {
19
- "@types/node": "^20.9.0",
20
- "skuba": "9.2.0-old-lang-opts-20250115050141"
19
+ "@types/node": "^22.13.10",
20
+ "skuba": "10.0.0-main-20250312042528"
21
21
  },
22
- "packageManager": "pnpm@9.15.3",
22
+ "packageManager": "pnpm@10.6.1",
23
23
  "engines": {
24
- "node": ">=20"
24
+ "node": ">=22"
25
25
  }
26
26
  }
@@ -57,7 +57,7 @@ steps:
57
57
  - *aws-sm
58
58
  - *private-npm
59
59
  - *docker-ecr-cache
60
- - docker-compose#v5.5.0:
60
+ - docker-compose#v5.6.0:
61
61
  run: app
62
62
  environment:
63
63
  - GITHUB_API_TOKEN
@@ -70,7 +70,7 @@ steps:
70
70
  - *aws-sm
71
71
  - *private-npm
72
72
  - *docker-ecr-cache
73
- - seek-jobs/gantry#v3.0.0:
73
+ - seek-jobs/gantry#v4.0.0:
74
74
  command: build
75
75
  file: gantry.build.yml
76
76
  region: <%- region %>
@@ -87,7 +87,7 @@ steps:
87
87
  concurrency_group: <%- teamName %>/deploy/gantry/<%- devGantryEnvironmentName %>
88
88
  key: deploy-dev
89
89
  plugins:
90
- - seek-jobs/gantry#v3.0.0:
90
+ - seek-jobs/gantry#v4.0.0:
91
91
  command: apply
92
92
  environment: <%- devGantryEnvironmentName %>
93
93
  file: gantry.apply.yml
@@ -102,7 +102,7 @@ steps:
102
102
  concurrency_group: <%- teamName %>/deploy/gantry/<%- prodGantryEnvironmentName %>
103
103
  depends_on: deploy-dev
104
104
  plugins:
105
- - seek-jobs/gantry#v3.0.0:
105
+ - seek-jobs/gantry#v4.0.0:
106
106
  command: apply
107
107
  environment: <%- prodGantryEnvironmentName %>
108
108
  file: gantry.apply.yml
@@ -9,6 +9,4 @@ image: '{{values "prodAccountId"}}.dkr.ecr.<%- region %>.amazonaws.com/{{values
9
9
  # datadogSecretId: arn:aws:secretsmanager:<%- region %>:<aws-account-id>:secret:<secret-name>
10
10
 
11
11
  tags:
12
- seek:source:sha: '{{.CommitSHA}}'
13
- seek:source:url: 'https://github.com/SEEK-Jobs/<%- repoName %>'
14
- # seek:system:name: 'TODO: https://rfc.skinfra.xyz/RFC019-AWS-Tagging-Standard.html#required-tags'
12
+ # seek:system:name: 'TODO: https://rfc.skinfra.xyz/RFC051-AWS-Tagging-Standard.html#tagging-schema'
@@ -1 +1 @@
1
- 20
1
+ 22
@@ -12,7 +12,7 @@ RUN pnpm install --offline --prod
12
12
 
13
13
  ###
14
14
 
15
- FROM gcr.io/distroless/nodejs20-debian12 AS runtime
15
+ FROM gcr.io/distroless/nodejs22-debian12 AS runtime
16
16
 
17
17
  WORKDIR /workdir
18
18
 
@@ -1,6 +1,6 @@
1
- # syntax=docker/dockerfile:1.12
1
+ # syntax=docker/dockerfile:1.14
2
2
 
3
- FROM public.ecr.aws/docker/library/node:20-alpine AS dev-deps
3
+ FROM public.ecr.aws/docker/library/node:22-alpine AS dev-deps
4
4
 
5
5
  RUN --mount=type=bind,source=package.json,target=package.json \
6
6
  corepack enable pnpm && corepack install
@@ -36,7 +36,7 @@
36
36
  "@types/co-body": "^6.1.3",
37
37
  "@types/koa": "^2.13.4",
38
38
  "@types/koa__router": "^12.0.0",
39
- "@types/node": "^20.16.5",
39
+ "@types/node": "^22.13.10",
40
40
  "@types/supertest": "^6.0.0",
41
41
  "chance": "^1.1.8",
42
42
  "mime": "^4.0.1",
@@ -44,8 +44,8 @@
44
44
  "skuba": "*",
45
45
  "supertest": "^7.0.0"
46
46
  },
47
- "packageManager": "pnpm@9.15.3",
47
+ "packageManager": "pnpm@10.6.1",
48
48
  "engines": {
49
- "node": ">=20"
49
+ "node": ">=22"
50
50
  }
51
51
  }
@@ -5,13 +5,13 @@
5
5
  // open-telemetry/opentelemetry-js#3580
6
6
  "DOM",
7
7
 
8
- "ES2022"
8
+ "ES2024"
9
9
  ],
10
10
  "outDir": "lib",
11
11
  "paths": {
12
12
  "src": ["src"]
13
13
  },
14
- "target": "ES2022"
14
+ "target": "ES2024"
15
15
  },
16
16
  "exclude": ["lib*/**/*"],
17
17
  "extends": "skuba/config/tsconfig.json"
@@ -33,7 +33,7 @@ configs:
33
33
  - *aws-sm
34
34
  - *private-npm
35
35
  - *docker-ecr-cache
36
- - docker-compose#v5.5.0:
36
+ - docker-compose#v5.6.0:
37
37
  dependencies: false
38
38
  run: app
39
39
  environment:
@@ -63,7 +63,7 @@ steps:
63
63
  - *aws-sm
64
64
  - *private-npm
65
65
  - *docker-ecr-cache
66
- - docker-compose#v5.5.0:
66
+ - docker-compose#v5.6.0:
67
67
  run: app
68
68
  environment:
69
69
  - GITHUB_API_TOKEN
@@ -1 +1 @@
1
- 20
1
+ 22
@@ -1,9 +1,9 @@
1
- # syntax=docker/dockerfile:1.12
1
+ # syntax=docker/dockerfile:1.14
2
2
 
3
- FROM public.ecr.aws/docker/library/node:20-alpine AS dev-deps
3
+ FROM public.ecr.aws/docker/library/node:22-alpine AS dev-deps
4
4
 
5
5
  # Needed for cdk
6
- RUN apk add --no-cache bash
6
+ RUN apk add --no-cache bash git
7
7
 
8
8
  RUN --mount=type=bind,source=package.json,target=package.json \
9
9
  corepack enable pnpm && corepack install
@@ -227,7 +227,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
227
227
  "Arn",
228
228
  ],
229
229
  },
230
- "Runtime": "nodejs20.x",
230
+ "Runtime": "nodejs22.x",
231
231
  "Tags": [
232
232
  {
233
233
  "Key": "aws-codedeploy-hooks",
@@ -953,7 +953,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
953
953
  "Arn",
954
954
  ],
955
955
  },
956
- "Runtime": "nodejs20.x",
956
+ "Runtime": "nodejs22.x",
957
957
  "Tags": [
958
958
  {
959
959
  "Key": "aws-codedeploy-hooks",
@@ -13,7 +13,7 @@ import {
13
13
  aws_sqs,
14
14
  } from 'aws-cdk-lib';
15
15
  import type { Construct } from 'constructs';
16
- import { Datadog } from 'datadog-cdk-constructs-v2';
16
+ import { DatadogLambda } from 'datadog-cdk-constructs-v2';
17
17
 
18
18
  import { config } from './config';
19
19
 
@@ -80,7 +80,7 @@ export class AppStack extends Stack {
80
80
 
81
81
  const worker = new aws_lambda_nodejs.NodejsFunction(this, 'worker', {
82
82
  architecture: aws_lambda.Architecture[architecture],
83
- runtime: aws_lambda.Runtime.NODEJS_20_X,
83
+ runtime: aws_lambda.Runtime.NODEJS_22_X,
84
84
  environmentEncryption: kmsKey,
85
85
  // aws-sdk-v3 sets this to true by default, so it is not necessary to set the environment variable
86
86
  // https://docs.aws.amazon.com/sdk-for-javascript/v3/developer-guide/node-reusing-connections.html
@@ -89,7 +89,7 @@ export class AppStack extends Stack {
89
89
  timeout: Duration.seconds(30),
90
90
  bundling: {
91
91
  sourceMap: true,
92
- target: 'node20',
92
+ target: 'node22',
93
93
  // aws-sdk-v3 is set as an external module by default, but we want it to be bundled with the function
94
94
  externalModules: [],
95
95
  nodeModules: ['datadog-lambda-js', 'dd-trace'],
@@ -117,7 +117,7 @@ export class AppStack extends Stack {
117
117
  config.datadogApiKeySecretArn,
118
118
  );
119
119
 
120
- const datadog = new Datadog(this, 'datadog', {
120
+ const datadog = new DatadogLambda(this, 'datadog', {
121
121
  apiKeySecret: datadogSecret,
122
122
  addLayers: false,
123
123
  enableDatadogLogs: false,
@@ -4,7 +4,7 @@ const ENVIRONMENTS = ['dev', 'prod'] as const;
4
4
 
5
5
  type Environment = (typeof ENVIRONMENTS)[number];
6
6
 
7
- export const environment = Env.oneOf(ENVIRONMENTS)('ENVIRONMENT');
7
+ const environment = Env.oneOf(ENVIRONMENTS)('ENVIRONMENT');
8
8
 
9
9
  interface Config {
10
10
  appName: string;
@@ -2,17 +2,15 @@ import { HookStack } from '@seek/aws-codedeploy-infra';
2
2
  import { App } from 'aws-cdk-lib';
3
3
 
4
4
  import { AppStack } from './appStack';
5
- import { config, environment } from './config';
5
+ import { config } from './config';
6
6
 
7
7
  const app = new App();
8
8
 
9
9
  const appStack = new AppStack(app, 'appStack', {
10
10
  stackName: config.appName,
11
11
  tags: {
12
- 'seek:env:label': environment,
13
- 'seek:source:sha': process.env.BUILDKITE_COMMIT ?? 'na',
14
- // 'seek:source:url': 'TODO: add source URL',
15
- // 'seek:system:name': 'TODO: add system name',
12
+ 'seek:source:url': 'https://github.com/SEEK-Jobs/<%- repoName %>',
13
+ // 'seek:system:name': 'TODO: https://rfc.skinfra.xyz/RFC051-AWS-Tagging-Standard.html#tagging-schema',
16
14
  },
17
15
  });
18
16
 
@@ -18,7 +18,7 @@
18
18
  "@aws-sdk/client-lambda": "^3.363.0",
19
19
  "@aws-sdk/client-sns": "^3.363.0",
20
20
  "@seek/logger": "^9.0.0",
21
- "datadog-lambda-js": "^9.0.0",
21
+ "datadog-lambda-js": "^10.0.0",
22
22
  "dd-trace": "^5.0.0",
23
23
  "skuba-dive": "^2.0.0",
24
24
  "zod": "^3.19.1"
@@ -27,19 +27,19 @@
27
27
  "@seek/aws-codedeploy-infra": "^2.1.0",
28
28
  "@types/aws-lambda": "^8.10.82",
29
29
  "@types/chance": "^1.1.3",
30
- "@types/node": "^20.16.5",
30
+ "@types/node": "^22.13.10",
31
31
  "aws-cdk": "^2.167.1",
32
32
  "aws-cdk-lib": "^2.167.1",
33
33
  "aws-sdk-client-mock": "^4.0.0",
34
34
  "aws-sdk-client-mock-jest": "^4.0.0",
35
35
  "chance": "^1.1.8",
36
36
  "constructs": "^10.0.17",
37
- "datadog-cdk-constructs-v2": "^1.18.0",
37
+ "datadog-cdk-constructs-v2": "^2.0.0",
38
38
  "pino-pretty": "^13.0.0",
39
- "skuba": "9.2.0-old-lang-opts-20250115050141"
39
+ "skuba": "10.0.0-main-20250312042528"
40
40
  },
41
- "packageManager": "pnpm@9.15.3",
41
+ "packageManager": "pnpm@10.6.1",
42
42
  "engines": {
43
- "node": ">=20"
43
+ "node": ">=22"
44
44
  }
45
45
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "compilerOptions": {
3
3
  "baseUrl": ".",
4
- "lib": ["ES2022"],
4
+ "lib": ["ES2024"],
5
5
  "outDir": "lib",
6
6
  "paths": {
7
7
  "src": ["src"]
8
8
  },
9
- "target": "ES2022"
9
+ "target": "ES2024"
10
10
  },
11
11
  "exclude": ["lib*/**/*"],
12
12
  "extends": "skuba/config/tsconfig.json"
@@ -25,7 +25,7 @@ jobs:
25
25
  - name: Set up Node.js
26
26
  uses: actions/setup-node@v4
27
27
  with:
28
- node-version: 20.x
28
+ node-version: ^22.14
29
29
 
30
30
  - name: Set up pnpm
31
31
  run: corepack enable pnpm && corepack install
@@ -21,7 +21,7 @@ jobs:
21
21
  - name: Set up Node.js
22
22
  uses: actions/setup-node@v4
23
23
  with:
24
- node-version: 20.x
24
+ node-version: ^22.14
25
25
 
26
26
  - name: Set up pnpm
27
27
  run: corepack enable pnpm && corepack install
@@ -1 +1 @@
1
- 20
1
+ 22
@@ -34,7 +34,7 @@
34
34
  },
35
35
  "dependencies": {},
36
36
  "devDependencies": {
37
- "@types/node": "^20.16.5",
37
+ "@types/node": "^22.13.10",
38
38
  "commitizen": "^4.2.4",
39
39
  "skuba": "*"
40
40
  },
@@ -1 +1 @@
1
- 20
1
+ 22
@@ -34,12 +34,12 @@
34
34
  },
35
35
  "dependencies": {},
36
36
  "devDependencies": {
37
- "@types/node": "^20.16.5",
37
+ "@types/node": "^22.13.10",
38
38
  "commitizen": "^4.2.4",
39
39
  "skuba": "*"
40
40
  },
41
41
  "packageManager": "pnpm@8.15.1",
42
42
  "engines": {
43
- "node": ">=18.12"
43
+ "node": ">=22"
44
44
  }
45
45
  }