From 7aa5b94bae987d7da9a2edc2143a54ddc1cd7ccc Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 21 May 2026 16:38:34 +0000 Subject: [PATCH 1/4] Update dependency typescript to v6 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index b3d3ca6..3e9629f 100644 --- a/package.json +++ b/package.json @@ -65,6 +65,6 @@ "tsx": "^4.21.0", "type-fest": "^5.3.1", "typedoc": "^0.28.0", - "typescript": "^5.7.3" + "typescript": "^6.0.0" } } From 018e37a736b021c3509a88bc7bcab5d21769800c Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 21 May 2026 20:57:40 +0100 Subject: [PATCH 2/4] chore: resync lockfile and set explicit rootDir for typescript 6 Regenerates package-lock.json against typescript ^6.0.0 and pins rootDir in tsconfig.build.json. TS 6 requires rootDir to be explicit whenever the inferred common source root could lead to emit ambiguity (TS5011). The only peer warning is from typedoc 0.28.4, which is addressed in a follow-up commit. --- package-lock.json | 8 ++++---- tsconfig.build.json | 5 ++++- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index d035986..93ae71b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -44,7 +44,7 @@ "tsx": "^4.21.0", "type-fest": "^5.3.1", "typedoc": "^0.28.0", - "typescript": "^5.7.3" + "typescript": "^6.0.0" } }, "node_modules/@babel/code-frame": { @@ -3510,9 +3510,9 @@ } }, "node_modules/typescript": { - "version": "5.7.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-6.0.3.tgz", + "integrity": "sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/tsconfig.build.json b/tsconfig.build.json index 74cb3c9..a8e99b0 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -1,5 +1,8 @@ { "extends": "./tsconfig.json", "include": ["src"], - "exclude": ["src/**/*.spec.*"] + "exclude": ["src/**/*.spec.*"], + "compilerOptions": { + "rootDir": "src" + } } From 5ead465ea718d70c691e4d001c631008a3177135 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 21 May 2026 21:01:43 +0100 Subject: [PATCH 3/4] chore: adopt @tsconfig/recommended baseline and declare explicit types MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Bump typedoc to ^0.28.19 (first version whose peer range allows TypeScript 6). - Swap @tsconfig/node22 for @tsconfig/recommended and set lib/target to es2024. - Keep module/moduleResolution as NodeNext for the ESM package. - Add explicit @types/node devDep and a types[] array in tsconfig (node, mocha, chai); TS 6 no longer auto-loads @types/* via node_modules. @microsoft/api-extractor still prints a notice that its bundled compiler is older than TS 6, but functions correctly — left as-is. --- package-lock.json | 136 ++++++++++++++++++++++++++++++---------------- package.json | 6 +- tsconfig.json | 8 ++- 3 files changed, 98 insertions(+), 52 deletions(-) diff --git a/package-lock.json b/package-lock.json index 93ae71b..df03c62 100644 --- a/package-lock.json +++ b/package-lock.json @@ -30,12 +30,12 @@ "@cucumber/biome-config": "cucumber/biome-config#v0.1.0", "@cucumber/compatibility-kit": "^28.0.0", "@microsoft/api-extractor": "7.58.7", - "@tsconfig/node22": "^22.0.0", + "@tsconfig/recommended": "^1.0.13", "@types/babel__code-frame": "^7.0.6", "@types/babel__generator": "^7.27.0", "@types/chai": "^5.0.1", "@types/mocha": "^10.0.10", - "@types/node": "^22.13.14", + "@types/node": "^22.19.19", "@types/stack-utils": "^2.0.3", "c8": "^11.0.0", "chai": "^6.0.0", @@ -43,7 +43,7 @@ "mocha": "^11.0.1", "tsx": "^4.21.0", "type-fest": "^5.3.1", - "typedoc": "^0.28.0", + "typedoc": "^0.28.19", "typescript": "^6.0.0" } }, @@ -854,16 +854,16 @@ } }, "node_modules/@gerrit0/mini-shiki": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.4.0.tgz", - "integrity": "sha512-48lKoQegmfJ0iyR/jRz5OrYOSM3WewG9YWCPqUvYFEC54shQO8RsAaspaK/2PRHVVnjekRqfAFvq8pwCpIo5ig==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@gerrit0/mini-shiki/-/mini-shiki-3.23.0.tgz", + "integrity": "sha512-bEMORlG0cqdjVyCEuU0cDQbORWX+kYCeo0kV1lbxF5bt4r7SID2l9bqsxJEM0zndaxpOUT7riCyIVEuqq/Ynxg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/engine-oniguruma": "^3.4.0", - "@shikijs/langs": "^3.4.0", - "@shikijs/themes": "^3.4.0", - "@shikijs/types": "^3.4.0", + "@shikijs/engine-oniguruma": "^3.23.0", + "@shikijs/langs": "^3.23.0", + "@shikijs/themes": "^3.23.0", + "@shikijs/types": "^3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, @@ -1207,40 +1207,40 @@ } }, "node_modules/@shikijs/engine-oniguruma": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.4.0.tgz", - "integrity": "sha512-zwcWlZ4OQuJ/+1t32ClTtyTU1AiDkK1lhtviRWoq/hFqPjCNyLj22bIg9rB7BfoZKOEOfrsGz7No33BPCf+WlQ==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/engine-oniguruma/-/engine-oniguruma-3.23.0.tgz", + "integrity": "sha512-1nWINwKXxKKLqPibT5f4pAFLej9oZzQTsby8942OTlsJzOBZ0MWKiwzMsd+jhzu8YPCHAswGnnN1YtQfirL35g==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.0", + "@shikijs/types": "3.23.0", "@shikijs/vscode-textmate": "^10.0.2" } }, "node_modules/@shikijs/langs": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.4.0.tgz", - "integrity": "sha512-bQkR+8LllaM2duU9BBRQU0GqFTx7TuF5kKlw/7uiGKoK140n1xlLAwCgXwSxAjJ7Htk9tXTFwnnsJTCU5nDPXQ==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/langs/-/langs-3.23.0.tgz", + "integrity": "sha512-2Ep4W3Re5aB1/62RSYQInK9mM3HsLeB91cHqznAJMuylqjzNVAVCMnNWRHFtcNHXsoNRayP9z1qj4Sq3nMqYXg==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.0" + "@shikijs/types": "3.23.0" } }, "node_modules/@shikijs/themes": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.4.0.tgz", - "integrity": "sha512-YPP4PKNFcFGLxItpbU0ZW1Osyuk8AyZ24YEFaq04CFsuCbcqydMvMUTi40V2dkc0qs1U2uZFrnU6s5zI6IH+uA==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/themes/-/themes-3.23.0.tgz", + "integrity": "sha512-5qySYa1ZgAT18HR/ypENL9cUSGOeI2x+4IvYJu4JgVJdizn6kG4ia5Q1jDEOi7gTbN4RbuYtmHh0W3eccOrjMA==", "dev": true, "license": "MIT", "dependencies": { - "@shikijs/types": "3.4.0" + "@shikijs/types": "3.23.0" } }, "node_modules/@shikijs/types": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.4.0.tgz", - "integrity": "sha512-EUT/0lGiE//7j5N/yTMNMT3eCWNcHJLrRKxT0NDXWIfdfSmFJKfPX7nMmRBrQnWboAzIsUziCThrYMMhjbMS1A==", + "version": "3.23.0", + "resolved": "https://registry.npmjs.org/@shikijs/types/-/types-3.23.0.tgz", + "integrity": "sha512-3JZ5HXOZfYjsYSk0yPwBrkupyYSLpAE26Qc0HLghhZNGTZg/SKxXIIgoxOpmmeQP0RRSDJTk1/vPfw9tbw+jSQ==", "dev": true, "license": "MIT", "dependencies": { @@ -1276,10 +1276,10 @@ "node": ">=14" } }, - "node_modules/@tsconfig/node22": { - "version": "22.0.5", - "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.5.tgz", - "integrity": "sha512-hLf2ld+sYN/BtOJjHUWOk568dvjFQkHnLNa6zce25GIH+vxKfvTgm3qpaH6ToF5tu/NN0IH66s+Bb5wElHrLcw==", + "node_modules/@tsconfig/recommended": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/@tsconfig/recommended/-/recommended-1.0.13.tgz", + "integrity": "sha512-sySRuBfMKyKO/j2ZAhR8kSembhjuPEV4Ra3AHtmWLq51+iGaudr45crPSzNC5b7/Ctrh9dfUpBuTlYrH6rM58Q==", "dev": true, "license": "MIT" }, @@ -1349,9 +1349,9 @@ "license": "MIT" }, "node_modules/@types/node": { - "version": "22.19.1", - "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.1.tgz", - "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", + "version": "22.19.19", + "resolved": "https://registry.npmjs.org/@types/node/-/node-22.19.19.tgz", + "integrity": "sha512-dyh/xO2Fh5bYrfWaaqGrRQQGkNdmYw6AmaAUvYeUMNTWQtvb796ikLdmTchRmOlOiIJ1TDXfWgVx1QkUlQ6Hew==", "dev": true, "license": "MIT", "dependencies": { @@ -2626,9 +2626,9 @@ } }, "node_modules/markdown-it": { - "version": "14.1.0", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", - "integrity": "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg==", + "version": "14.1.1", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz", + "integrity": "sha512-BuU2qnTti9YKgK5N+IeMubp14ZUKUUw7yeJbkjtosvHiP0AZ5c8IAgEMk79D0eC8F23r4Ac/q8cAIFdm2FtyoA==", "dev": true, "license": "MIT", "dependencies": { @@ -3486,17 +3486,17 @@ } }, "node_modules/typedoc": { - "version": "0.28.4", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.4.tgz", - "integrity": "sha512-xKvKpIywE1rnqqLgjkoq0F3wOqYaKO9nV6YkkSat6IxOWacUCc/7Es0hR3OPmkIqkPoEn7U3x+sYdG72rstZQA==", + "version": "0.28.19", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.19.tgz", + "integrity": "sha512-wKh+lhdmMFivMlc6vRRcMGXeGEHGU2g8a2CkPTJjJlwRf1iXbimWIPcFolCqe4E0d/FRtGszpIrsp3WLpDB8Pw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@gerrit0/mini-shiki": "^3.2.2", + "@gerrit0/mini-shiki": "^3.23.0", "lunr": "^2.3.9", - "markdown-it": "^14.1.0", - "minimatch": "^9.0.5", - "yaml": "^2.7.1" + "markdown-it": "^14.1.1", + "minimatch": "^10.2.5", + "yaml": "^2.8.3" }, "bin": { "typedoc": "bin/typedoc" @@ -3506,7 +3506,46 @@ "pnpm": ">= 10" }, "peerDependencies": { - "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x" + "typescript": "5.0.x || 5.1.x || 5.2.x || 5.3.x || 5.4.x || 5.5.x || 5.6.x || 5.7.x || 5.8.x || 5.9.x || 6.0.x" + } + }, + "node_modules/typedoc/node_modules/balanced-match": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.4.tgz", + "integrity": "sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/typedoc/node_modules/brace-expansion": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.6.tgz", + "integrity": "sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^4.0.2" + }, + "engines": { + "node": "18 || 20 || >=22" + } + }, + "node_modules/typedoc/node_modules/minimatch": { + "version": "10.2.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.5.tgz", + "integrity": "sha512-MULkVLfKGYDFYejP07QOurDLLQpcjk7Fw+7jXS2R2czRQzR56yHRveU5NDJEOviH+hETZKSkIk5c+T23GjFUMg==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "brace-expansion": "^5.0.5" + }, + "engines": { + "node": "18 || 20 || >=22" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/typescript": { @@ -3712,16 +3751,19 @@ } }, "node_modules/yaml": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.7.1.tgz", - "integrity": "sha512-10ULxpnOCQXxJvBgxsn9ptjq6uviG/htZKk9veJGhlqn3w/DxQ631zFF+nlQXLwmImeS5amR2dl2U8sg6U9jsQ==", + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz", + "integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==", "dev": true, "license": "ISC", "bin": { "yaml": "bin.mjs" }, "engines": { - "node": ">= 14" + "node": ">= 14.6" + }, + "funding": { + "url": "https://github.com/sponsors/eemeli" } }, "node_modules/yargs": { diff --git a/package.json b/package.json index 3e9629f..a4cbcda 100644 --- a/package.json +++ b/package.json @@ -51,12 +51,12 @@ "@cucumber/biome-config": "cucumber/biome-config#v0.1.0", "@cucumber/compatibility-kit": "^28.0.0", "@microsoft/api-extractor": "7.58.7", - "@tsconfig/node22": "^22.0.0", + "@tsconfig/recommended": "^1.0.13", "@types/babel__code-frame": "^7.0.6", "@types/babel__generator": "^7.27.0", "@types/chai": "^5.0.1", "@types/mocha": "^10.0.10", - "@types/node": "^22.13.14", + "@types/node": "^22.19.19", "@types/stack-utils": "^2.0.3", "c8": "^11.0.0", "chai": "^6.0.0", @@ -64,7 +64,7 @@ "mocha": "^11.0.1", "tsx": "^4.21.0", "type-fest": "^5.3.1", - "typedoc": "^0.28.0", + "typedoc": "^0.28.19", "typescript": "^6.0.0" } } diff --git a/tsconfig.json b/tsconfig.json index c54e9a9..66a3e9c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,13 @@ { - "extends": "@tsconfig/node22/tsconfig.json", + "extends": "@tsconfig/recommended/tsconfig.json", "include": ["src", "test"], "compilerOptions": { - "declaration": true, + "lib": ["es2024"], + "target": "es2024", "module": "NodeNext", + "moduleResolution": "NodeNext", + "types": ["node", "mocha", "chai"], + "declaration": true, "outDir": "lib", "inlineSourceMap": true } From d188fb8a2035ee41beef9b7aa4c38969a1c8b516 Mon Sep 17 00:00:00 2001 From: David Goss Date: Thu, 21 May 2026 21:02:50 +0100 Subject: [PATCH 4/4] =?UTF-8?q?chore:=20split=20emit=20options=20into=20bu?= =?UTF-8?q?ild=20tsconfig=20and=20rename=20lib=20=E2=86=92=20dist?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Move outDir from tsconfig.json into tsconfig.build.json so ts-node, typedoc and lint (which don't emit) share a non-emit config. - Set outDir to dist/ (aligning with the cucumber/javascript-core baseline) and update package.json exports/files, api-extractor.json and .gitignore to match. --- .gitignore | 2 +- api-extractor.json | 2 +- package.json | 10 +++++----- tsconfig.build.json | 3 ++- tsconfig.json | 1 - 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 82adcb5..d343be5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,6 @@ _site coverage -lib +dist node_modules tmp tsdoc-metadata.json \ No newline at end of file diff --git a/api-extractor.json b/api-extractor.json index 5d1d6b1..1efce09 100644 --- a/api-extractor.json +++ b/api-extractor.json @@ -1,6 +1,6 @@ { "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", - "mainEntryPointFilePath": "/lib/index.d.ts", + "mainEntryPointFilePath": "/dist/index.d.ts", "compiler": {}, "apiReport": { "enabled": true, diff --git a/package.json b/package.json index a4cbcda..c6d656e 100644 --- a/package.json +++ b/package.json @@ -6,13 +6,13 @@ "type": "module", "repository": "github:cucumber/cucumber-node", "exports": { - ".": "./lib/index.js", - "./bootstrap": "./lib/bootstrap/index.js", - "./reporters/*": "./lib/reporters/builtin/*.js", - "./runner": "./lib/runner/index.js" + ".": "./dist/index.js", + "./bootstrap": "./dist/bootstrap/index.js", + "./reporters/*": "./dist/reporters/builtin/*.js", + "./runner": "./dist/runner/index.js" }, "files": [ - "lib/" + "dist/" ], "scripts": { "build": "tsc --project tsconfig.build.json", diff --git a/tsconfig.build.json b/tsconfig.build.json index a8e99b0..851de8a 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -3,6 +3,7 @@ "include": ["src"], "exclude": ["src/**/*.spec.*"], "compilerOptions": { - "rootDir": "src" + "rootDir": "src", + "outDir": "dist" } } diff --git a/tsconfig.json b/tsconfig.json index 66a3e9c..cf7b75b 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -8,7 +8,6 @@ "moduleResolution": "NodeNext", "types": ["node", "mocha", "chai"], "declaration": true, - "outDir": "lib", "inlineSourceMap": true } }