skuba 10.1.0 → 10.2.0-config-20250421023131

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 (58) hide show
  1. package/lib/cli/build/assets.js +13 -7
  2. package/lib/cli/build/assets.js.map +2 -2
  3. package/lib/cli/build/esbuild.js +1 -1
  4. package/lib/cli/build/esbuild.js.map +2 -2
  5. package/lib/cli/format.js +6 -2
  6. package/lib/cli/format.js.map +2 -2
  7. package/lib/cli/init/index.js +5 -1
  8. package/lib/cli/init/index.js.map +2 -2
  9. package/lib/cli/lint/autofix.js +1 -1
  10. package/lib/cli/lint/autofix.js.map +2 -2
  11. package/lib/cli/lint/eslint.js +9 -2
  12. package/lib/cli/lint/eslint.js.map +2 -2
  13. package/lib/cli/lint/internal.js +31 -13
  14. package/lib/cli/lint/internal.js.map +2 -2
  15. package/lib/cli/lint/internalLints/detectBadCodeowners.d.ts +1 -1
  16. package/lib/cli/lint/internalLints/detectBadCodeowners.js +5 -2
  17. package/lib/cli/lint/internalLints/detectBadCodeowners.js.map +2 -2
  18. package/lib/cli/lint/internalLints/refreshConfigFiles.js +1 -1
  19. package/lib/cli/lint/internalLints/refreshConfigFiles.js.map +2 -2
  20. package/lib/cli/lint/internalLints/upgrade/index.d.ts +1 -1
  21. package/lib/cli/lint/internalLints/upgrade/index.js +3 -3
  22. package/lib/cli/lint/internalLints/upgrade/index.js.map +2 -2
  23. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.d.ts +2 -0
  24. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js +35 -0
  25. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/index.js.map +7 -0
  26. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.d.ts +3 -0
  27. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js +96 -0
  28. package/lib/cli/lint/internalLints/upgrade/patches/10.1.0/stopBundlingInCDKTests.js.map +7 -0
  29. package/lib/cli/lint/prettier.js +5 -2
  30. package/lib/cli/lint/prettier.js.map +2 -2
  31. package/lib/cli/lint/types.d.ts +4 -0
  32. package/lib/cli/lint/types.js.map +1 -1
  33. package/lib/config/load.d.ts +2 -0
  34. package/lib/config/load.js +75 -0
  35. package/lib/config/load.js.map +7 -0
  36. package/lib/config/types.d.ts +51 -0
  37. package/lib/config/types.js +74 -0
  38. package/lib/config/types.js.map +7 -0
  39. package/lib/index.d.ts +1 -0
  40. package/lib/index.js +5 -2
  41. package/lib/index.js.map +2 -2
  42. package/lib/utils/logging.d.ts +33 -1
  43. package/lib/utils/logging.js +17 -4
  44. package/lib/utils/logging.js.map +2 -2
  45. package/lib/utils/worker.d.ts +5 -0
  46. package/package.json +14 -11
  47. package/template/base/_.gitignore +0 -1
  48. package/template/express-rest-api/.buildkite/pipeline.yml +2 -2
  49. package/template/express-rest-api/package.json +1 -1
  50. package/template/greeter/.buildkite/pipeline.yml +2 -2
  51. package/template/greeter/package.json +2 -2
  52. package/template/koa-rest-api/.buildkite/pipeline.yml +2 -2
  53. package/template/koa-rest-api/package.json +8 -8
  54. package/template/lambda-sqs-worker-cdk/.buildkite/pipeline.yml +3 -3
  55. package/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +4 -0
  56. package/template/lambda-sqs-worker-cdk/infra/appStack.test.ts +1 -1
  57. package/template/lambda-sqs-worker-cdk/infra/appStack.ts +2 -0
  58. package/template/lambda-sqs-worker-cdk/package.json +4 -4
@@ -28,15 +28,22 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
29
  var logging_exports = {};
30
30
  __export(logging_exports, {
31
+ childLogger: () => childLogger,
31
32
  createLogger: () => createLogger,
32
33
  log: () => log,
33
34
  pluralise: () => pluralise
34
35
  });
35
36
  module.exports = __toCommonJS(logging_exports);
36
37
  var import_chalk = __toESM(require("chalk"));
37
- const createLogger = (debug, ...prefixes) => {
38
- const log2 = (...message) => console.log(...prefixes, ...message);
38
+ const createLogger = ({
39
+ debug,
40
+ prefixes = [],
41
+ suffixes = []
42
+ }) => {
43
+ const logWithoutSuffixes = (...message) => console.log(...prefixes, ...message);
44
+ const log2 = (...message) => logWithoutSuffixes(...message, ...suffixes);
39
45
  return {
46
+ settings: { debug, prefixes, suffixes },
40
47
  bold: import_chalk.default.bold,
41
48
  dim: import_chalk.default.dim,
42
49
  formatSubtle: import_chalk.default.grey,
@@ -44,16 +51,22 @@ const createLogger = (debug, ...prefixes) => {
44
51
  debug: (...message) => debug ? log2(import_chalk.default.grey(...message)) : void 0,
45
52
  subtle: (...message) => log2(import_chalk.default.grey(...message)),
46
53
  err: (...message) => log2(import_chalk.default.red(...message)),
47
- newline: () => log2(),
54
+ newline: () => logWithoutSuffixes(),
48
55
  ok: (...message) => log2(import_chalk.default.green(...message)),
49
56
  plain: (...message) => log2(...message),
50
57
  warn: (...message) => log2(import_chalk.default.yellow(...message))
51
58
  };
52
59
  };
53
- const log = createLogger(false);
60
+ const log = createLogger({ debug: false });
61
+ const childLogger = (logger, settings) => createLogger({
62
+ debug: settings.debug ?? logger.settings.debug,
63
+ prefixes: [...settings.prefixes ?? [], ...logger.settings.prefixes],
64
+ suffixes: [...logger.settings.suffixes, ...settings.suffixes ?? []]
65
+ });
54
66
  const pluralise = (count, subject) => `${count} ${subject}${count === 1 ? "" : "s"}`;
55
67
  // Annotate the CommonJS export names for ESM import in node:
56
68
  0 && (module.exports = {
69
+ childLogger,
57
70
  createLogger,
58
71
  log,
59
72
  pluralise
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/utils/logging.ts"],
4
- "sourcesContent": ["/* eslint-disable no-console */\n\nimport chalk from 'chalk';\n\nexport type Logger = typeof log;\n\nexport const createLogger = (debug: boolean, ...prefixes: unknown[]) => {\n const log = (...message: unknown[]) => console.log(...prefixes, ...message);\n\n return {\n bold: chalk.bold,\n dim: chalk.dim,\n formatSubtle: chalk.grey,\n\n timing: (start: bigint, end: bigint) =>\n `${Number((end - start) / BigInt(10_000_000)) / 100}s`,\n\n debug: (...message: unknown[]) =>\n debug ? log(chalk.grey(...message)) : undefined,\n subtle: (...message: unknown[]) => log(chalk.grey(...message)),\n err: (...message: unknown[]) => log(chalk.red(...message)),\n newline: () => log(),\n ok: (...message: unknown[]) => log(chalk.green(...message)),\n plain: (...message: unknown[]) => log(...message),\n warn: (...message: unknown[]) => log(chalk.yellow(...message)),\n };\n};\n\nexport const log = createLogger(false);\n\nexport const pluralise = (count: number, subject: string) =>\n `${count} ${subject}${count === 1 ? '' : 's'}`;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkB;AAIX,MAAM,eAAe,CAAC,UAAmB,aAAwB;AACtE,QAAMA,OAAM,IAAI,YAAuB,QAAQ,IAAI,GAAG,UAAU,GAAG,OAAO;AAE1E,SAAO;AAAA,IACL,MAAM,aAAAC,QAAM;AAAA,IACZ,KAAK,aAAAA,QAAM;AAAA,IACX,cAAc,aAAAA,QAAM;AAAA,IAEpB,QAAQ,CAAC,OAAe,QACtB,GAAG,QAAQ,MAAM,SAAS,OAAO,GAAU,CAAC,IAAI,GAAG;AAAA,IAErD,OAAO,IAAI,YACT,QAAQD,KAAI,aAAAC,QAAM,KAAK,GAAG,OAAO,CAAC,IAAI;AAAA,IACxC,QAAQ,IAAI,YAAuBD,KAAI,aAAAC,QAAM,KAAK,GAAG,OAAO,CAAC;AAAA,IAC7D,KAAK,IAAI,YAAuBD,KAAI,aAAAC,QAAM,IAAI,GAAG,OAAO,CAAC;AAAA,IACzD,SAAS,MAAMD,KAAI;AAAA,IACnB,IAAI,IAAI,YAAuBA,KAAI,aAAAC,QAAM,MAAM,GAAG,OAAO,CAAC;AAAA,IAC1D,OAAO,IAAI,YAAuBD,KAAI,GAAG,OAAO;AAAA,IAChD,MAAM,IAAI,YAAuBA,KAAI,aAAAC,QAAM,OAAO,GAAG,OAAO,CAAC;AAAA,EAC/D;AACF;AAEO,MAAM,MAAM,aAAa,KAAK;AAE9B,MAAM,YAAY,CAAC,OAAe,YACvC,GAAG,KAAK,IAAI,OAAO,GAAG,UAAU,IAAI,KAAK,GAAG;",
4
+ "sourcesContent": ["/* eslint-disable no-console */\n\nimport chalk from 'chalk';\n\nexport type Logger = typeof log;\n\nexport const createLogger = ({\n debug,\n prefixes = [],\n suffixes = [],\n}: {\n debug: boolean;\n prefixes?: unknown[];\n suffixes?: unknown[];\n}) => {\n const logWithoutSuffixes = (...message: unknown[]) =>\n console.log(...prefixes, ...message);\n\n const log = (...message: unknown[]) =>\n logWithoutSuffixes(...message, ...suffixes);\n\n return {\n settings: { debug, prefixes, suffixes },\n\n bold: chalk.bold,\n dim: chalk.dim,\n formatSubtle: chalk.grey,\n\n timing: (start: bigint, end: bigint) =>\n `${Number((end - start) / BigInt(10_000_000)) / 100}s`,\n\n debug: (...message: unknown[]) =>\n debug ? log(chalk.grey(...message)) : undefined,\n subtle: (...message: unknown[]) => log(chalk.grey(...message)),\n err: (...message: unknown[]) => log(chalk.red(...message)),\n newline: () => logWithoutSuffixes(),\n ok: (...message: unknown[]) => log(chalk.green(...message)),\n plain: (...message: unknown[]) => log(...message),\n warn: (...message: unknown[]) => log(chalk.yellow(...message)),\n };\n};\n\nexport const log = createLogger({ debug: false });\n\nexport const childLogger = (\n logger: Logger,\n settings: Partial<Logger['settings']>,\n) =>\n createLogger({\n debug: settings.debug ?? logger.settings.debug,\n prefixes: [...(settings.prefixes ?? []), ...logger.settings.prefixes],\n suffixes: [...logger.settings.suffixes, ...(settings.suffixes ?? [])],\n });\n\nexport const pluralise = (count: number, subject: string) =>\n `${count} ${subject}${count === 1 ? '' : 's'}`;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,mBAAkB;AAIX,MAAM,eAAe,CAAC;AAAA,EAC3B;AAAA,EACA,WAAW,CAAC;AAAA,EACZ,WAAW,CAAC;AACd,MAIM;AACJ,QAAM,qBAAqB,IAAI,YAC7B,QAAQ,IAAI,GAAG,UAAU,GAAG,OAAO;AAErC,QAAMA,OAAM,IAAI,YACd,mBAAmB,GAAG,SAAS,GAAG,QAAQ;AAE5C,SAAO;AAAA,IACL,UAAU,EAAE,OAAO,UAAU,SAAS;AAAA,IAEtC,MAAM,aAAAC,QAAM;AAAA,IACZ,KAAK,aAAAA,QAAM;AAAA,IACX,cAAc,aAAAA,QAAM;AAAA,IAEpB,QAAQ,CAAC,OAAe,QACtB,GAAG,QAAQ,MAAM,SAAS,OAAO,GAAU,CAAC,IAAI,GAAG;AAAA,IAErD,OAAO,IAAI,YACT,QAAQD,KAAI,aAAAC,QAAM,KAAK,GAAG,OAAO,CAAC,IAAI;AAAA,IACxC,QAAQ,IAAI,YAAuBD,KAAI,aAAAC,QAAM,KAAK,GAAG,OAAO,CAAC;AAAA,IAC7D,KAAK,IAAI,YAAuBD,KAAI,aAAAC,QAAM,IAAI,GAAG,OAAO,CAAC;AAAA,IACzD,SAAS,MAAM,mBAAmB;AAAA,IAClC,IAAI,IAAI,YAAuBD,KAAI,aAAAC,QAAM,MAAM,GAAG,OAAO,CAAC;AAAA,IAC1D,OAAO,IAAI,YAAuBD,KAAI,GAAG,OAAO;AAAA,IAChD,MAAM,IAAI,YAAuBA,KAAI,aAAAC,QAAM,OAAO,GAAG,OAAO,CAAC;AAAA,EAC/D;AACF;AAEO,MAAM,MAAM,aAAa,EAAE,OAAO,MAAM,CAAC;AAEzC,MAAM,cAAc,CACzB,QACA,aAEA,aAAa;AAAA,EACX,OAAO,SAAS,SAAS,OAAO,SAAS;AAAA,EACzC,UAAU,CAAC,GAAI,SAAS,YAAY,CAAC,GAAI,GAAG,OAAO,SAAS,QAAQ;AAAA,EACpE,UAAU,CAAC,GAAG,OAAO,SAAS,UAAU,GAAI,SAAS,YAAY,CAAC,CAAE;AACtE,CAAC;AAEI,MAAM,YAAY,CAAC,OAAe,YACvC,GAAG,KAAK,IAAI,OAAO,GAAG,UAAU,IAAI,KAAK,GAAG;",
6
6
  "names": ["log", "chalk"]
7
7
  }
@@ -7,6 +7,11 @@ export declare const execWorkerThread: <Input, Output>(filepath: string, input:
7
7
  * to the parent thread.
8
8
  */
9
9
  export declare const postWorkerOutput: <Input, Output>(fn: (input: Input) => Promise<Output>, logger?: {
10
+ settings: {
11
+ debug: boolean;
12
+ prefixes: unknown[];
13
+ suffixes: unknown[];
14
+ };
10
15
  bold: import("chalk").Chalk;
11
16
  dim: import("chalk").Chalk;
12
17
  formatSubtle: import("chalk").Chalk;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skuba",
3
- "version": "10.1.0",
3
+ "version": "10.2.0-config-20250421023131",
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",
@@ -78,6 +78,7 @@
78
78
  "isomorphic-git": "^1.11.1",
79
79
  "jest": "^29.0.1",
80
80
  "jest-watch-typeahead": "^2.1.1",
81
+ "jiti": "^2.4.2",
81
82
  "lodash.mergewith": "^4.6.2",
82
83
  "minimist": "^1.2.6",
83
84
  "normalize-package-data": "^7.0.0",
@@ -98,7 +99,7 @@
98
99
  "tsx": "^4.16.2",
99
100
  "typescript": "~5.8.0",
100
101
  "zod": "^3.22.4",
101
- "eslint-config-skuba": "5.1.3"
102
+ "eslint-config-skuba": "5.1.4-config-20250421023131"
102
103
  },
103
104
  "devDependencies": {
104
105
  "@changesets/cli": "2.28.1",
@@ -106,7 +107,7 @@
106
107
  "@jest/reporters": "29.7.0",
107
108
  "@jest/test-result": "29.7.0",
108
109
  "@types/ejs": "3.1.5",
109
- "@types/express": "5.0.0",
110
+ "@types/express": "5.0.1",
110
111
  "@types/fs-extra": "11.0.4",
111
112
  "@types/koa": "2.15.0",
112
113
  "@types/lodash.mergewith": "4.6.9",
@@ -115,19 +116,19 @@
115
116
  "@types/npm-registry-fetch": "8.0.7",
116
117
  "@types/npm-which": "3.0.3",
117
118
  "@types/picomatch": "3.0.2",
118
- "@types/semver": "7.5.8",
119
- "@types/supertest": "6.0.2",
119
+ "@types/semver": "7.7.0",
120
+ "@types/supertest": "6.0.3",
120
121
  "enhanced-resolve": "5.18.1",
121
- "express": "5.0.1",
122
- "fastify": "5.2.1",
122
+ "express": "5.1.0",
123
+ "fastify": "5.3.2",
123
124
  "jest-diff": "29.7.0",
124
125
  "jsonfile": "6.1.0",
125
- "koa": "2.16.0",
126
+ "koa": "2.16.1",
126
127
  "memfs": "4.17.0",
127
128
  "remark-cli": "12.0.1",
128
129
  "remark-preset-lint-recommended": "7.0.1",
129
130
  "semver": "7.7.1",
130
- "supertest": "7.0.0",
131
+ "supertest": "7.1.0",
131
132
  "type-fest": "2.19.0"
132
133
  },
133
134
  "peerDependencies": {
@@ -155,9 +156,11 @@
155
156
  "build": "scripts/build.sh",
156
157
  "changeset": "changeset",
157
158
  "deploy": "scripts/deploy.sh",
158
- "format": "pnpm --silent skuba format",
159
- "lint": "pnpm --silent skuba lint && pnpm --silent lint:md",
159
+ "format": "pnpm --silent skuba format && pnpm format:packages",
160
+ "format:packages": "pnpm --filter '!./template/**' format",
161
+ "lint": "pnpm --silent skuba lint && pnpm lint:packages && pnpm --silent lint:md",
160
162
  "lint:md": "remark --frail --quiet .",
163
+ "lint:packages": "pnpm --filter '!./template/**' lint",
161
164
  "release": "pnpm --silent build && changeset publish",
162
165
  "skuba": "pnpm --silent build && pnpm --silent skuba:exec",
163
166
  "skuba:exec": "node --experimental-vm-modules lib/skuba",
@@ -6,7 +6,6 @@
6
6
  .cdk.staging/
7
7
  .serverless/
8
8
  cdk.out/
9
- cdk.context.json
10
9
  node_modules*/
11
10
 
12
11
  /coverage*/
@@ -4,7 +4,7 @@ agents:
4
4
  configs:
5
5
  plugins:
6
6
  - &aws-sm
7
- seek-oss/aws-sm#v2.3.2:
7
+ seek-oss/aws-sm#v2.3.3:
8
8
  env:
9
9
  NPM_READ_TOKEN: arn:aws:secretsmanager:ap-southeast-2:987872074697:secret:npm/npm-read-token
10
10
 
@@ -57,7 +57,7 @@ steps:
57
57
  - *aws-sm
58
58
  - *private-npm
59
59
  - *docker-ecr-cache
60
- - docker-compose#v5.6.0:
60
+ - docker-compose#v5.7.0:
61
61
  run: app
62
62
  environment:
63
63
  - GITHUB_API_TOKEN
@@ -28,7 +28,7 @@
28
28
  "skuba": "*",
29
29
  "supertest": "^7.0.0"
30
30
  },
31
- "packageManager": "pnpm@10.6.4",
31
+ "packageManager": "pnpm@10.7.1",
32
32
  "engines": {
33
33
  "node": ">=22"
34
34
  }
@@ -6,7 +6,7 @@ agents:
6
6
  configs:
7
7
  plugins:
8
8
  - &aws-sm
9
- seek-oss/aws-sm#v2.3.2:
9
+ seek-oss/aws-sm#v2.3.3:
10
10
  env:
11
11
  NPM_READ_TOKEN: arn:aws:secretsmanager:ap-southeast-2:987872074697:secret:npm/npm-read-token
12
12
 
@@ -38,7 +38,7 @@ steps:
38
38
  - *aws-sm
39
39
  - *private-npm
40
40
  - *docker-ecr-cache
41
- - docker-compose#v5.6.0:
41
+ - docker-compose#v5.7.0:
42
42
  run: app
43
43
  environment:
44
44
  - GITHUB_API_TOKEN
@@ -17,9 +17,9 @@
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "^22.13.10",
20
- "skuba": "*"
20
+ "skuba": "10.2.0-config-20250421023131"
21
21
  },
22
- "packageManager": "pnpm@10.6.4",
22
+ "packageManager": "pnpm@10.7.1",
23
23
  "engines": {
24
24
  "node": ">=22"
25
25
  }
@@ -4,7 +4,7 @@ agents:
4
4
  configs:
5
5
  plugins:
6
6
  - &aws-sm
7
- seek-oss/aws-sm#v2.3.2:
7
+ seek-oss/aws-sm#v2.3.3:
8
8
  env:
9
9
  NPM_READ_TOKEN: arn:aws:secretsmanager:ap-southeast-2:987872074697:secret:npm/npm-read-token
10
10
 
@@ -57,7 +57,7 @@ steps:
57
57
  - *aws-sm
58
58
  - *private-npm
59
59
  - *docker-ecr-cache
60
- - docker-compose#v5.6.0:
60
+ - docker-compose#v5.7.0:
61
61
  run: app
62
62
  environment:
63
63
  - GITHUB_API_TOKEN
@@ -16,15 +16,15 @@
16
16
  "@koa/bodyparser": "^5.1.1",
17
17
  "@koa/router": "^13.0.0",
18
18
  "@opentelemetry/api": "^1.9.0",
19
- "@opentelemetry/core": "^1.25.0",
20
- "@opentelemetry/exporter-trace-otlp-grpc": "^0.57.0",
21
- "@opentelemetry/instrumentation-aws-sdk": "^0.49.0",
22
- "@opentelemetry/instrumentation-http": "^0.57.0",
23
- "@opentelemetry/propagator-b3": "^1.25.0",
24
- "@opentelemetry/sdk-node": "^0.57.0",
19
+ "@opentelemetry/core": "^2.0.0",
20
+ "@opentelemetry/exporter-trace-otlp-grpc": "^0.200.0",
21
+ "@opentelemetry/instrumentation-aws-sdk": "^0.51.0",
22
+ "@opentelemetry/instrumentation-http": "^0.200.0",
23
+ "@opentelemetry/propagator-b3": "^2.0.0",
24
+ "@opentelemetry/sdk-node": "^0.200.0",
25
25
  "@seek/logger": "^9.0.0",
26
26
  "hot-shots": "^10.0.0",
27
- "koa": "^2.13.4",
27
+ "koa": "^2.16.1",
28
28
  "koa-compose": "^4.1.0",
29
29
  "seek-datadog-custom-metrics": "^4.6.3",
30
30
  "seek-koala": "^7.0.0",
@@ -44,7 +44,7 @@
44
44
  "skuba": "*",
45
45
  "supertest": "^7.0.0"
46
46
  },
47
- "packageManager": "pnpm@10.6.4",
47
+ "packageManager": "pnpm@10.7.1",
48
48
  "engines": {
49
49
  "node": ">=22"
50
50
  }
@@ -4,7 +4,7 @@ agents:
4
4
  configs:
5
5
  plugins:
6
6
  - &aws-sm
7
- seek-oss/aws-sm#v2.3.2:
7
+ seek-oss/aws-sm#v2.3.3:
8
8
  env:
9
9
  NPM_READ_TOKEN: arn:aws:secretsmanager:ap-southeast-2:987872074697:secret:npm/npm-read-token
10
10
 
@@ -33,7 +33,7 @@ configs:
33
33
  - *aws-sm
34
34
  - *private-npm
35
35
  - *docker-ecr-cache
36
- - docker-compose#v5.6.0:
36
+ - docker-compose#v5.7.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.6.0:
66
+ - docker-compose#v5.7.0:
67
67
  run: app
68
68
  environment:
69
69
  - GITHUB_API_TOKEN
@@ -667,6 +667,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
667
667
  "Arn",
668
668
  ],
669
669
  },
670
+ "MessageRetentionPeriod": 1209600,
670
671
  "QueueName": "serviceName",
671
672
  "RedrivePolicy": {
672
673
  "deadLetterTargetArn": {
@@ -690,6 +691,7 @@ exports[`returns expected CloudFormation stack for dev 1`] = `
690
691
  "Arn",
691
692
  ],
692
693
  },
694
+ "MessageRetentionPeriod": 1209600,
693
695
  "QueueName": "serviceName-dead-letters",
694
696
  },
695
697
  "Type": "AWS::SQS::Queue",
@@ -1393,6 +1395,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
1393
1395
  "Arn",
1394
1396
  ],
1395
1397
  },
1398
+ "MessageRetentionPeriod": 1209600,
1396
1399
  "QueueName": "serviceName",
1397
1400
  "RedrivePolicy": {
1398
1401
  "deadLetterTargetArn": {
@@ -1416,6 +1419,7 @@ exports[`returns expected CloudFormation stack for prod 1`] = `
1416
1419
  "Arn",
1417
1420
  ],
1418
1421
  },
1422
+ "MessageRetentionPeriod": 1209600,
1419
1423
  "QueueName": "serviceName-dead-letters",
1420
1424
  },
1421
1425
  "Type": "AWS::SQS::Queue",
@@ -45,7 +45,7 @@ it.each(['dev', 'prod'])(
45
45
  (scope, id) => new aws_secretsmanager.Secret(scope, id),
46
46
  );
47
47
 
48
- const app = new App();
48
+ const app = new App({ context: { 'aws:cdk:bundling-stacks': [] } });
49
49
 
50
50
  const stack = new AppStack(app, 'appStack');
51
51
 
@@ -41,6 +41,7 @@ export class AppStack extends Stack {
41
41
  {
42
42
  queueName: '<%- serviceName %>-dead-letters',
43
43
  encryptionMasterKey: kmsKey,
44
+ retentionPeriod: Duration.days(14),
44
45
  },
45
46
  );
46
47
 
@@ -51,6 +52,7 @@ export class AppStack extends Stack {
51
52
  queue: deadLetterQueue,
52
53
  },
53
54
  encryptionMasterKey: kmsKey,
55
+ retentionPeriod: Duration.days(14),
54
56
  });
55
57
 
56
58
  // const topic = aws_sns.Topic.fromTopicArn(
@@ -28,17 +28,17 @@
28
28
  "@types/aws-lambda": "^8.10.82",
29
29
  "@types/chance": "^1.1.3",
30
30
  "@types/node": "^22.13.10",
31
- "aws-cdk": "^2.167.1",
32
- "aws-cdk-lib": "^2.167.1",
31
+ "aws-cdk": "^2.1010.0",
32
+ "aws-cdk-lib": "^2.190.0",
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
37
  "datadog-cdk-constructs-v2": "^2.0.0",
38
38
  "pino-pretty": "^13.0.0",
39
- "skuba": "*"
39
+ "skuba": "10.2.0-config-20250421023131"
40
40
  },
41
- "packageManager": "pnpm@10.6.4",
41
+ "packageManager": "pnpm@10.7.1",
42
42
  "engines": {
43
43
  "node": ">=22"
44
44
  }