From cae03037be2fc835a2b238adb0375f5e8174f97b Mon Sep 17 00:00:00 2001 From: Agnes Garoux Date: Tue, 24 Feb 2026 14:51:40 +0000 Subject: [PATCH 1/5] dockerfile and tsconfig to 24 --- api/Dockerfile | 2 +- api/package.json | 9 ++++++++- package.json | 1 + yarn.lock | 36 ++++++++---------------------------- 4 files changed, 18 insertions(+), 30 deletions(-) diff --git a/api/Dockerfile b/api/Dockerfile index 4c3cf4c4..831a4818 100644 --- a/api/Dockerfile +++ b/api/Dockerfile @@ -1,5 +1,5 @@ # Build this with the repo root as the build context -FROM public.ecr.aws/docker/library/node:20 +FROM public.ecr.aws/docker/library/node:24 WORKDIR /app diff --git a/api/package.json b/api/package.json index b9316cb8..3a1f375d 100644 --- a/api/package.json +++ b/api/package.json @@ -20,7 +20,7 @@ "typescript": "^5.9.3" }, "devDependencies": { - "@tsconfig/node20": "20.1.8", + "@tsconfig/node24": "24.0.4", "@types/jest": "^30.0.0", "@types/luxon": "^3.7.1", "@types/morgan": "^1.9.3", @@ -34,3 +34,10 @@ "tsx": "^4.21.0" } } + +// docker build -f api/Dockerfile -t content-api . + +// docker run -p 3000:3000 \ +// -v ~/.aws:/root/.aws:ro \ +// -e AWS_PROFILE=catalogue-developer \ +// content-api \ No newline at end of file diff --git a/package.json b/package.json index be19a884..7527300e 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@babel/eslint-parser": "^7.28.6", "@eslint/js": "^9.39.2", "@tsconfig/node20": "20.1.8", + "@tsconfig/node24": "24.0.4", "@typescript-eslint/eslint-plugin": "^8.54.0", "@typescript-eslint/parser": "^8.54.0", "eslint": "^9.39.2", diff --git a/yarn.lock b/yarn.lock index a22de521..b01ddebd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1916,6 +1916,11 @@ resolved "https://registry.yarnpkg.com/@tsconfig/node20/-/node20-20.1.8.tgz#a11034b1f3362ffaeb7255f6c975040d8a395d70" integrity sha512-Em+IdPfByIzWRRpqWL4Z7ArLHZGxmc36BxE3jCz9nBFSm+5aLaPMZyjwu4yetvyKXeogWcxik4L1jB5JTWfw7A== +"@tsconfig/node24@24.0.4": + version "24.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node24/-/node24-24.0.4.tgz#ae50cc6b3288c1010454f0ec4659b47b520ca1b1" + integrity sha512-2A933l5P5oCbv6qSxHs7ckKwobs8BDAe9SJ/Xr2Hy+nDlwmLE1GhFh/g/vXGRZWgxBg9nX/5piDtHR9Dkw/XuA== + "@tybys/wasm-util@^0.10.0": version "0.10.1" resolved "https://registry.yarnpkg.com/@tybys/wasm-util/-/wasm-util-0.10.1.tgz#ecddd3205cf1e2d5274649ff0eedd2991ed7f414" @@ -6281,16 +6286,7 @@ string-length@^4.0.2: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0": - version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" - integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.1" - -string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -6347,14 +6343,7 @@ string_decoder@^1.1.1, string_decoder@^1.3.0: dependencies: safe-buffer "~5.2.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" - integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== - dependencies: - ansi-regex "^5.0.1" - -strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -6908,16 +6897,7 @@ wordwrapjs@^5.1.0: resolved "https://registry.yarnpkg.com/wordwrapjs/-/wordwrapjs-5.1.1.tgz#bfd1eb426f0f7eec73b7df32cf7df1f618bfb3a9" integrity sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrap-ansi@^7.0.0: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== From ce755dd00d674588d90434cf3db311490dc43772 Mon Sep 17 00:00:00 2001 From: Agnes Garoux Date: Tue, 24 Feb 2026 15:29:01 +0000 Subject: [PATCH 2/5] shock, horror, Unexpected non-whitespace character in my json --- api/package.json | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/api/package.json b/api/package.json index 3a1f375d..b4295667 100644 --- a/api/package.json +++ b/api/package.json @@ -33,11 +33,4 @@ "ts-jest": "^29.4.6", "tsx": "^4.21.0" } -} - -// docker build -f api/Dockerfile -t content-api . - -// docker run -p 3000:3000 \ -// -v ~/.aws:/root/.aws:ro \ -// -e AWS_PROFILE=catalogue-developer \ -// content-api \ No newline at end of file +} \ No newline at end of file From 91e592f92d9b47d0468715252c4e97412377955e Mon Sep 17 00:00:00 2001 From: Agnes Garoux Date: Tue, 24 Feb 2026 15:44:25 +0000 Subject: [PATCH 3/5] some types bump up too --- api/package.json | 6 +++--- yarn.lock | 11 +++++++++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/api/package.json b/api/package.json index b4295667..505bfd43 100644 --- a/api/package.json +++ b/api/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@elastic/elasticsearch": "^8.6.0", - "@types/express": "^5.0.5", + "@types/express": "^5.0.6", "@weco/content-common": "*", "express": "^5.2.0", "express-async-handler": "^1.2.0", @@ -23,8 +23,8 @@ "@tsconfig/node24": "24.0.4", "@types/jest": "^30.0.0", "@types/luxon": "^3.7.1", - "@types/morgan": "^1.9.3", - "@types/node": "^20.16.5", + "@types/morgan": "^1.9.10", + "@types/node": "^24.1.0", "@types/supertest": "^6.0.3", "jest": "^30.2.0", "jest-extended": "^7.0.0", diff --git a/yarn.lock b/yarn.lock index b01ddebd..f8531965 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2011,7 +2011,7 @@ "@types/range-parser" "*" "@types/send" "*" -"@types/express@^5.0.5": +"@types/express@^5.0.6": version "5.0.6" resolved "https://registry.yarnpkg.com/@types/express/-/express-5.0.6.tgz#2d724b2c990dcb8c8444063f3580a903f6d500cc" integrity sha512-sKYVuV7Sv9fbPIt/442koC7+IIwK5olP1KWeD88e/idgoJqDm3JV/YUiPwkoKK92ylff2MGxSz1CSjsXelx0YA== @@ -2072,7 +2072,7 @@ resolved "https://registry.yarnpkg.com/@types/methods/-/methods-1.1.4.tgz#d3b7ac30ac47c91054ea951ce9eed07b1051e547" integrity sha512-ymXWVrDiCxTBE3+RIrrP533E70eA+9qu7zdWoHuOmGujkYtzf4HQF96b8nwHLqhuf4ykX61IGRIB38CC6/sImQ== -"@types/morgan@^1.9.3": +"@types/morgan@^1.9.10": version "1.9.10" resolved "https://registry.yarnpkg.com/@types/morgan/-/morgan-1.9.10.tgz#725c15d95a5e6150237524cd713bc2d68f9edf1a" integrity sha512-sS4A1zheMvsADRVfT0lYbJ4S9lmsey8Zo2F7cnbYjWHP67Q0AwMYuuzLlkIM2N8gAbb9cubhIVFwcIN2XyYCkA== @@ -2100,6 +2100,13 @@ dependencies: undici-types "~7.16.0" +"@types/node@^24.1.0": + version "24.10.13" + resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.13.tgz#2fac25c0e30f3848e19912c3b8791a28370e9e07" + integrity sha512-oH72nZRfDv9lADUBSo104Aq7gPHpQZc4BTx38r9xf9pg5LfP6EzSyH2n7qFmmxRQXh7YlUXODcYsg6PuTDSxGg== + dependencies: + undici-types "~7.16.0" + "@types/qs@*": version "6.14.0" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.14.0.tgz#d8b60cecf62f2db0fb68e5e006077b9178b85de5" From aa25cad9745b23b4e1da16258b38330ac43084e2 Mon Sep 17 00:00:00 2001 From: Agnes Garoux Date: Tue, 24 Feb 2026 15:49:41 +0000 Subject: [PATCH 4/5] differenciate tsconfig based on node version --- api/tsconfig.json | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/api/tsconfig.json b/api/tsconfig.json index 4eb37fee..3d5cfac1 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -1,3 +1,12 @@ { - "extends": "../tsconfig.base.json" + "extends": "@tsconfig/node24/tsconfig.json", + "compilerOptions": { + "noEmit": true, + "moduleResolution": "node", + "module": "esnext", + "forceConsistentCasingInFileNames": true + }, + "exclude": ["node_modules"], + "include": ["**/*.ts"] } + From bb98ceadb6a6632aa08f375db358ad5aaaed112c Mon Sep 17 00:00:00 2001 From: Buildkite on behalf of Wellcome Collection Date: Thu, 26 Feb 2026 09:51:25 +0000 Subject: [PATCH 5/5] Apply auto-formatting rules --- api/package.json | 2 +- api/tsconfig.json | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/api/package.json b/api/package.json index 505bfd43..c74d5f0a 100644 --- a/api/package.json +++ b/api/package.json @@ -33,4 +33,4 @@ "ts-jest": "^29.4.6", "tsx": "^4.21.0" } -} \ No newline at end of file +} diff --git a/api/tsconfig.json b/api/tsconfig.json index 3d5cfac1..bded8f6a 100644 --- a/api/tsconfig.json +++ b/api/tsconfig.json @@ -9,4 +9,3 @@ "exclude": ["node_modules"], "include": ["**/*.ts"] } -