skuba 8.2.1 → 9.0.0-main-20240924121500

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 (99) hide show
  1. package/config/eslint.js +1 -3
  2. package/lib/api/buildkite/annotate.d.ts +2 -0
  3. package/lib/api/buildkite/annotate.js +14 -1
  4. package/lib/api/buildkite/annotate.js.map +2 -2
  5. package/lib/api/github/issueComment.js.map +2 -2
  6. package/lib/cli/adapter/eslint.d.ts +1 -1
  7. package/lib/cli/adapter/eslint.js +34 -8
  8. package/lib/cli/adapter/eslint.js.map +2 -2
  9. package/lib/cli/build/index.js +1 -0
  10. package/lib/cli/build/index.js.map +1 -1
  11. package/lib/cli/configure/analyseDependencies.js +0 -2
  12. package/lib/cli/configure/analyseDependencies.js.map +2 -2
  13. package/lib/cli/configure/analysis/package.d.ts +1 -2
  14. package/lib/cli/configure/analysis/package.js +0 -27
  15. package/lib/cli/configure/analysis/package.js.map +2 -2
  16. package/lib/cli/configure/dependencies/skubaDeps.js +4 -3
  17. package/lib/cli/configure/dependencies/skubaDeps.js.map +2 -2
  18. package/lib/cli/configure/modules/eslint.js +4 -8
  19. package/lib/cli/configure/modules/eslint.js.map +2 -2
  20. package/lib/cli/configure/processing/configFile.js +1 -1
  21. package/lib/cli/configure/processing/configFile.js.map +2 -2
  22. package/lib/cli/format.d.ts +1 -1
  23. package/lib/cli/format.js +2 -2
  24. package/lib/cli/format.js.map +2 -2
  25. package/lib/cli/init/getConfig.js.map +1 -1
  26. package/lib/cli/init/index.js +1 -1
  27. package/lib/cli/init/index.js.map +1 -1
  28. package/lib/cli/init/types.js.map +2 -2
  29. package/lib/cli/lint/autofix.d.ts +1 -0
  30. package/lib/cli/lint/autofix.js +2 -2
  31. package/lib/cli/lint/autofix.js.map +2 -2
  32. package/lib/cli/lint/eslint.d.ts +1 -1
  33. package/lib/cli/lint/eslint.js +1 -1
  34. package/lib/cli/lint/eslint.js.map +2 -2
  35. package/lib/cli/lint/internalLints/patchRenovateConfig.js +0 -4
  36. package/lib/cli/lint/internalLints/patchRenovateConfig.js.map +2 -2
  37. package/lib/cli/lint/internalLints/refreshConfigFiles.js +0 -1
  38. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +2 -2
  39. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.d.ts +2 -0
  40. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js +90 -0
  41. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/collapseDuplicateMergeKeys.js.map +7 -0
  42. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.d.ts +2 -0
  43. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js +45 -0
  44. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/index.js.map +7 -0
  45. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.d.ts +2 -0
  46. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js +99 -0
  47. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/patchDockerCompose.js.map +7 -0
  48. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/upgradeESLint.d.ts +2 -0
  49. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/upgradeESLint.js +144 -0
  50. package/lib/cli/lint/internalLints/upgrade/patches/8.2.1/upgradeESLint.js.map +7 -0
  51. package/lib/cli/lint/types.d.ts +4 -0
  52. package/lib/cli/lint/types.js.map +1 -1
  53. package/lib/cli/node.d.ts +2 -1
  54. package/lib/cli/node.js +23 -18
  55. package/lib/cli/node.js.map +3 -3
  56. package/lib/cli/start.js +3 -3
  57. package/lib/cli/start.js.map +2 -2
  58. package/lib/eslint.d.js +2 -0
  59. package/lib/index.js.map +1 -1
  60. package/lib/skuba.js.map +1 -1
  61. package/lib/utils/copy.js +1 -1
  62. package/lib/utils/copy.js.map +2 -2
  63. package/lib/utils/template.d.ts +4 -4
  64. package/lib/wrapper/main.js.map +1 -1
  65. package/lib/wrapper/requestListener.js.map +2 -2
  66. package/package.json +18 -16
  67. package/template/base/_eslint.config.js +1 -0
  68. package/template/express-rest-api/.buildkite/pipeline.yml +1 -1
  69. package/template/express-rest-api/Dockerfile.dev-deps +1 -1
  70. package/template/express-rest-api/package.json +2 -2
  71. package/template/greeter/.buildkite/pipeline.yml +1 -1
  72. package/template/greeter/Dockerfile +1 -1
  73. package/template/greeter/package.json +2 -2
  74. package/template/koa-rest-api/.buildkite/pipeline.yml +1 -1
  75. package/template/koa-rest-api/Dockerfile.dev-deps +1 -1
  76. package/template/koa-rest-api/package.json +6 -6
  77. package/template/koa-rest-api/src/framework/server.test.ts +2 -1
  78. package/template/koa-rest-api/src/framework/server.ts +3 -5
  79. package/template/lambda-sqs-worker/.buildkite/pipeline.yml +3 -3
  80. package/template/lambda-sqs-worker/Dockerfile +1 -1
  81. package/template/lambda-sqs-worker/package.json +2 -2
  82. package/template/lambda-sqs-worker/src/types/jobScorer.ts +1 -1
  83. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +2 -2
  84. package/template/lambda-sqs-worker-cdk/Dockerfile +1 -1
  85. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +447 -891
  86. package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +4 -1
  87. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +5 -84
  88. package/template/lambda-sqs-worker-cdk/infra/config.ts +1 -1
  89. package/template/lambda-sqs-worker-cdk/infra/index.ts +20 -3
  90. package/template/lambda-sqs-worker-cdk/package.json +4 -3
  91. package/template/oss-npm-package/.github/workflows/release.yml +1 -1
  92. package/template/oss-npm-package/_package.json +1 -1
  93. package/template/private-npm-package/_package.json +1 -1
  94. package/lib/why-is-node-running.d.js +0 -2
  95. package/template/base/_.eslintignore +0 -15
  96. package/template/base/_.eslintrc.js +0 -3
  97. package/template/lambda-sqs-worker-cdk/src/postHook.ts +0 -154
  98. package/template/lambda-sqs-worker-cdk/src/preHook.ts +0 -95
  99. /package/lib/{why-is-node-running.d.js.map → eslint.d.js.map} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "8.2.1",
3
+ "version": "9.0.0-main-20240924121500",
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",
@@ -51,20 +51,21 @@
51
51
  },
52
52
  "dependencies": {
53
53
  "@esbuild-plugins/tsconfig-paths": "^0.1.0",
54
+ "@eslint/migrate-config": "^1.2.0",
54
55
  "@jest/types": "^29.0.0",
55
56
  "@octokit/graphql": "^8.0.0",
56
57
  "@octokit/graphql-schema": "^15.3.0",
57
58
  "@octokit/rest": "^21.0.0",
58
59
  "@octokit/types": "^13.0.0",
59
60
  "@types/jest": "^29.0.0",
60
- "@types/node": ">=18.12",
61
+ "@types/node": "^20.16.5",
61
62
  "chalk": "^4.1.0",
62
- "concurrently": "^8.0.0",
63
+ "concurrently": "^9.0.0",
63
64
  "dotenv": "^16.0.0",
64
65
  "ejs": "^3.1.6",
65
66
  "enquirer": "^2.3.6",
66
- "esbuild": "~0.23.0",
67
- "eslint": "^8.56.0",
67
+ "esbuild": "~0.24.0",
68
+ "eslint": "^9.11.1",
68
69
  "execa": "^5.0.0",
69
70
  "fast-glob": "^3.3.2",
70
71
  "find-up": "^5.0.0",
@@ -94,16 +95,16 @@
94
95
  "ts-dedent": "^2.2.0",
95
96
  "ts-jest": "^29.1.0",
96
97
  "ts-node": "^10.9.2",
97
- "ts-node-dev": "^2.0.0",
98
98
  "tsconfig-paths": "^4.0.0",
99
99
  "tsconfig-seek": "2.0.0",
100
- "typescript": "~5.5.0",
100
+ "tsx": "^4.16.2",
101
+ "typescript": "~5.6.0",
101
102
  "validate-npm-package-name": "^5.0.0",
102
103
  "zod": "^3.22.4",
103
- "eslint-config-skuba": "4.1.0"
104
+ "eslint-config-skuba": "5.0.0-main-20240924121500"
104
105
  },
105
106
  "devDependencies": {
106
- "@changesets/cli": "2.27.6",
107
+ "@changesets/cli": "2.27.8",
107
108
  "@changesets/get-github-info": "0.6.0",
108
109
  "@jest/reporters": "29.7.0",
109
110
  "@jest/test-result": "29.7.0",
@@ -116,19 +117,19 @@
116
117
  "@types/minimist": "1.2.5",
117
118
  "@types/module-alias": "2.0.4",
118
119
  "@types/npm-which": "3.0.3",
119
- "@types/picomatch": "2.3.3",
120
+ "@types/picomatch": "3.0.1",
120
121
  "@types/supertest": "6.0.2",
121
122
  "@types/validate-npm-package-name": "4.0.2",
122
- "enhanced-resolve": "5.17.0",
123
- "express": "4.19.2",
124
- "fastify": "4.28.0",
123
+ "enhanced-resolve": "5.17.1",
124
+ "express": "4.21.0",
125
+ "fastify": "5.0.0",
125
126
  "jest-diff": "29.7.0",
126
127
  "jsonfile": "6.1.0",
127
128
  "koa": "2.15.3",
128
- "memfs": "4.9.3",
129
+ "memfs": "4.12.0",
129
130
  "remark-cli": "12.0.1",
130
131
  "remark-preset-lint-recommended": "7.0.0",
131
- "semver": "7.6.2",
132
+ "semver": "7.6.3",
132
133
  "supertest": "7.0.0",
133
134
  "type-fest": "2.19.0"
134
135
  },
@@ -151,7 +152,7 @@
151
152
  "entryPoint": "src/index.ts",
152
153
  "template": null,
153
154
  "type": "package",
154
- "version": "8.1.0"
155
+ "version": "8.2.1"
155
156
  },
156
157
  "scripts": {
157
158
  "build": "scripts/build.sh",
@@ -168,6 +169,7 @@
168
169
  "test:ci": "pnpm --silent skuba test --runInBand",
169
170
  "test:int": "pnpm --silent skuba test --selectProjects integration --runInBand",
170
171
  "test:template": "scripts/test-template.sh",
172
+ "test:template:updateSnapshot": "scripts/test-template.sh -u",
171
173
  "test:watch": "pnpm --silent skuba test --runInBand --watch"
172
174
  }
173
175
  }
@@ -0,0 +1 @@
1
+ module.exports = require('eslint-config-skuba');
@@ -57,7 +57,7 @@ steps:
57
57
  - *aws-sm
58
58
  - *private-npm
59
59
  - *docker-ecr-cache
60
- - docker-compose#v5.3.0:
60
+ - docker-compose#v5.4.0:
61
61
  run: app
62
62
  environment:
63
63
  - GITHUB_API_TOKEN
@@ -1,4 +1,4 @@
1
- # syntax=docker/dockerfile:1.8
1
+ # syntax=docker/dockerfile:1.10
2
2
 
3
3
  FROM --platform=<%- platformName %> node:20-alpine AS dev-deps
4
4
 
@@ -21,14 +21,14 @@
21
21
  },
22
22
  "devDependencies": {
23
23
  "@types/express": "^4.17.13",
24
- "@types/node": "^20.9.0",
24
+ "@types/node": "^20.16.5",
25
25
  "@types/supertest": "^6.0.0",
26
26
  "mime": "^4.0.1",
27
27
  "pino-pretty": "^11.0.0",
28
28
  "skuba": "*",
29
29
  "supertest": "^7.0.0"
30
30
  },
31
- "packageManager": "pnpm@9.4.0",
31
+ "packageManager": "pnpm@9.11.0",
32
32
  "engines": {
33
33
  "node": ">=20"
34
34
  }
@@ -38,7 +38,7 @@ steps:
38
38
  - *aws-sm
39
39
  - *private-npm
40
40
  - *docker-ecr-cache
41
- - docker-compose#v5.3.0:
41
+ - docker-compose#v5.4.0:
42
42
  run: app
43
43
  environment:
44
44
  - GITHUB_API_TOKEN
@@ -1,4 +1,4 @@
1
- # syntax=docker/dockerfile:1.8
1
+ # syntax=docker/dockerfile:1.10
2
2
 
3
3
  FROM --platform=<%- platformName %> node:20-alpine AS dev-deps
4
4
 
@@ -17,9 +17,9 @@
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "^20.9.0",
20
- "skuba": "*"
20
+ "skuba": "9.0.0-main-20240924121500"
21
21
  },
22
- "packageManager": "pnpm@9.4.0",
22
+ "packageManager": "pnpm@9.11.0",
23
23
  "engines": {
24
24
  "node": ">=20"
25
25
  }
@@ -57,7 +57,7 @@ steps:
57
57
  - *aws-sm
58
58
  - *private-npm
59
59
  - *docker-ecr-cache
60
- - docker-compose#v5.3.0:
60
+ - docker-compose#v5.4.0:
61
61
  run: app
62
62
  environment:
63
63
  - GITHUB_API_TOKEN
@@ -1,4 +1,4 @@
1
- # syntax=docker/dockerfile:1.8
1
+ # syntax=docker/dockerfile:1.10
2
2
 
3
3
  FROM --platform=<%- platformName %> node:20-alpine AS dev-deps
4
4
 
@@ -16,11 +16,11 @@
16
16
  "@koa/router": "^12.0.0",
17
17
  "@opentelemetry/api": "^1.9.0",
18
18
  "@opentelemetry/core": "^1.25.0",
19
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.52.0",
20
- "@opentelemetry/instrumentation-aws-sdk": "^0.42.0",
21
- "@opentelemetry/instrumentation-http": "^0.52.0",
19
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.53.0",
20
+ "@opentelemetry/instrumentation-aws-sdk": "^0.44.0",
21
+ "@opentelemetry/instrumentation-http": "^0.53.0",
22
22
  "@opentelemetry/propagator-b3": "^1.25.0",
23
- "@opentelemetry/sdk-node": "^0.52.0",
23
+ "@opentelemetry/sdk-node": "^0.53.0",
24
24
  "@seek/logger": "^6.0.0",
25
25
  "hot-shots": "^10.0.0",
26
26
  "koa": "^2.13.4",
@@ -36,7 +36,7 @@
36
36
  "@types/koa": "^2.13.4",
37
37
  "@types/koa-bodyparser": "^5.0.2",
38
38
  "@types/koa__router": "^12.0.0",
39
- "@types/node": "^20.9.0",
39
+ "@types/node": "^20.16.5",
40
40
  "@types/supertest": "^6.0.0",
41
41
  "chance": "^1.1.8",
42
42
  "mime": "^4.0.1",
@@ -44,7 +44,7 @@
44
44
  "skuba": "*",
45
45
  "supertest": "^7.0.0"
46
46
  },
47
- "packageManager": "pnpm@9.4.0",
47
+ "packageManager": "pnpm@9.11.0",
48
48
  "engines": {
49
49
  "node": ">=20"
50
50
  }
@@ -203,7 +203,7 @@ describe('createApp', () => {
203
203
 
204
204
  it('handles null error', async () => {
205
205
  middleware.mockImplementation(() => {
206
- /* eslint-disable-next-line no-throw-literal */
206
+ /* eslint-disable-next-line @typescript-eslint/only-throw-error */
207
207
  throw null;
208
208
  });
209
209
 
@@ -233,6 +233,7 @@ describe('createApp', () => {
233
233
  const err = chance.sentence();
234
234
 
235
235
  middleware.mockImplementation(() => {
236
+ // eslint-disable-next-line @typescript-eslint/only-throw-error
236
237
  throw err;
237
238
  });
238
239
 
@@ -4,7 +4,7 @@ import {
4
4
  ErrorMiddleware,
5
5
  MetricsMiddleware,
6
6
  RequestLogging,
7
- // SecureHeaders,
7
+ SecureHeaders,
8
8
  VersionMiddleware,
9
9
  } from 'seek-koala';
10
10
 
@@ -39,10 +39,8 @@ export const createApp = <State, Context>(
39
39
  ...middleware: Array<Koa.Middleware<State, Context>>
40
40
  ) =>
41
41
  new Koa()
42
- // TODO: consider using a middleware that adds secure HTTP headers.
43
- // https://github.com/seek-oss/koala/tree/master/src/secureHeaders
44
- // https://github.com/venables/koa-helmet
45
- // .use(SecureHeaders.middleware)
42
+ // Read: https://github.com/seek-oss/koala/tree/master/src/secureHeaders
43
+ .use(SecureHeaders.middleware)
46
44
  .use(contextMiddleware)
47
45
  .use(requestLogging)
48
46
  .use(metrics)
@@ -30,13 +30,13 @@ configs:
30
30
  - pnpm run deploy
31
31
  concurrency: 1
32
32
  plugins:
33
- - artifacts#v1.9.3:
33
+ - artifacts#v1.9.4:
34
34
  build: ${BUILDKITE_BUILD_ID}
35
35
  download: lib/*
36
36
  - *aws-sm
37
37
  - *private-npm
38
38
  - *docker-ecr-cache
39
- - docker-compose#v5.3.0:
39
+ - docker-compose#v5.4.0:
40
40
  dependencies: false
41
41
  run: app
42
42
  propagate-environment: true
@@ -67,7 +67,7 @@ steps:
67
67
  - *aws-sm
68
68
  - *private-npm
69
69
  - *docker-ecr-cache
70
- - docker-compose#v5.3.0:
70
+ - docker-compose#v5.4.0:
71
71
  run: app
72
72
  environment:
73
73
  - GITHUB_API_TOKEN
@@ -1,4 +1,4 @@
1
- # syntax=docker/dockerfile:1.8
1
+ # syntax=docker/dockerfile:1.10
2
2
 
3
3
  FROM --platform=<%- platformName %> node:20-alpine AS dev-deps
4
4
 
@@ -27,7 +27,7 @@
27
27
  "devDependencies": {
28
28
  "@types/aws-lambda": "^8.10.84",
29
29
  "@types/chance": "^1.1.3",
30
- "@types/node": "^20.9.0",
30
+ "@types/node": "^20.16.5",
31
31
  "aws-sdk-client-mock": "^4.0.0",
32
32
  "aws-sdk-client-mock-jest": "^4.0.0",
33
33
  "chance": "^1.1.8",
@@ -38,7 +38,7 @@
38
38
  "serverless-prune-plugin": "^2.0.0",
39
39
  "skuba": "*"
40
40
  },
41
- "packageManager": "pnpm@9.4.0",
41
+ "packageManager": "pnpm@9.11.0",
42
42
  "engines": {
43
43
  "node": ">=20"
44
44
  }
@@ -2,7 +2,7 @@ import { z } from 'zod';
2
2
 
3
3
  export type JobScorerInput = z.infer<typeof JobScorerInputSchema>;
4
4
 
5
- const JobScorerInputSchema = z.object({
5
+ export const JobScorerInputSchema = z.object({
6
6
  id: z.string(),
7
7
  details: z.string(),
8
8
  });
@@ -33,7 +33,7 @@ configs:
33
33
  - *aws-sm
34
34
  - *private-npm
35
35
  - *docker-ecr-cache
36
- - docker-compose#v5.3.0:
36
+ - docker-compose#v5.4.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.3.0:
66
+ - docker-compose#v5.4.0:
67
67
  run: app
68
68
  environment:
69
69
  - GITHUB_API_TOKEN
@@ -1,4 +1,4 @@
1
- # syntax=docker/dockerfile:1.8
1
+ # syntax=docker/dockerfile:1.10
2
2
 
3
3
  FROM --platform=<%- platformName %> node:20-alpine AS dev-deps
4
4