From 1c1fa91703137a17a15490ef2923ccde6e6ec162 Mon Sep 17 00:00:00 2001 From: akudev Date: Mon, 11 May 2026 16:02:59 +0200 Subject: [PATCH 1/3] chore(dts-generator)!: update TypeScript to 6.0.3 across repo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In general not affecting consumers, they can remain on TS 5.x. But: BREAKING CHANGE: The re-exported ModuleResolutionKind enum no longer includes the deprecated NodeJs value. Consumers using ModuleResolutionKind.NodeJs must switch to Node16. The runCheck CLI now uses Node16 module resolution instead of Node10, which enforces file extensions and respects package.json exports. Adapt all tsconfigs for TS6 changed defaults: - explicit types arrays (TS6 defaults to []) - explicit rootDir (TS6 requires it with outDir) - explicit strict: false where previously relying on default - moduleResolution: "node" → "bundler" in test-packages - dedicated tsconfig for API type-check test (TS6 errors on tsc + files + tsconfig) --- package.json | 2 +- packages/dts-generator/package.json | 4 ++-- .../src/checkCompile/check-compile.ts | 2 +- packages/dts-generator/src/runCheck.ts | 2 +- packages/dts-generator/tsconfig-test-apis.json | 14 ++++++++++++++ packages/dts-generator/tsconfig.json | 4 ++++ packages/ts-interface-generator/package.json | 2 +- .../src/test/testcases/testcaseRunner.test.ts | 1 + .../testcases/tsconfig-path-relative/tsconfig.json | 1 + .../tsconfig-testcontrol.json | 3 ++- .../tsconfig-testmanagedobject.json | 3 ++- .../tsconfig-testwebcomponent.json | 3 ++- test-packages/openui5-snapshot-test/package.json | 2 +- test-packages/openui5-snapshot-test/tsconfig.json | 1 + test-packages/typed-json-model/package.json | 2 +- test-packages/typed-json-model/tsconfig.json | 4 +--- yarn.lock | 7 ++++++- 17 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 packages/dts-generator/tsconfig-test-apis.json diff --git a/package.json b/package.json index 76d25e08..9a5911ca 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "npm-run-all": "4.1.5", "prettier": "3.8.3", "shx": "0.4.0", - "typescript": "5.9.3" + "typescript": "6.0.3" }, "lint-staged": { "*.{ts,js,json,md,yml}": [ diff --git a/packages/dts-generator/package.json b/packages/dts-generator/package.json index 4c5e2cfa..1c4fb868 100644 --- a/packages/dts-generator/package.json +++ b/packages/dts-generator/package.json @@ -36,7 +36,7 @@ "sanitize-html": "2.17.3", "semver": "^7.8.0", "strip-json-comments": "^5.0.3", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "devDependencies": { "@microsoft/api-extractor": "^7.58.7", @@ -57,7 +57,7 @@ "build-api-types": "api-extractor run --local --verbose", "clean-implementation-types": "del-cli -f \"dist/**/*.d.ts.map\" \"dist/**/*.d.ts\" \"!dist/**/index.d.ts\" \"!dist/**/core-preamble.d.ts\" \"!dist/**/typed-json-model.d.ts\"", "ci": "npm-run-all test:*", - "test:apis": "tsc ./src/types/api-json.d.ts ./src/types/ast.d.ts ./src/types/ui5-logger-types.d.ts", + "test:apis": "tsc -p tsconfig-test-apis.json", "prewatch": "npm-run-all clean copy-files", "watch": "tsc -w" }, diff --git a/packages/dts-generator/src/checkCompile/check-compile.ts b/packages/dts-generator/src/checkCompile/check-compile.ts index f4d38faf..383a62b8 100644 --- a/packages/dts-generator/src/checkCompile/check-compile.ts +++ b/packages/dts-generator/src/checkCompile/check-compile.ts @@ -45,7 +45,7 @@ export interface CheckCompileConfig { dependencyFiles: string[]; /** - * The options for the TypeScript compiler, a map with properties like "strict", "noEmit", "moduleResolution" etc. (note that enums are given like ts.ModuleResolutionKind.NodeJs) + * The options for the TypeScript compiler, a map with properties like "strict", "noEmit", "moduleResolution" etc. (note that enums are given like ts.ModuleResolutionKind.Node16) */ tsOptions: ts.BuildOptions; diff --git a/packages/dts-generator/src/runCheck.ts b/packages/dts-generator/src/runCheck.ts index 2216cee8..1ae2ed68 100644 --- a/packages/dts-generator/src/runCheck.ts +++ b/packages/dts-generator/src/runCheck.ts @@ -57,7 +57,7 @@ async function main() { strict: true, target: ScriptTarget.ES2015, module: ModuleKind.ES2015, - moduleResolution: ModuleResolutionKind.NodeJs, + moduleResolution: ModuleResolutionKind.Node16, }, }); diff --git a/packages/dts-generator/tsconfig-test-apis.json b/packages/dts-generator/tsconfig-test-apis.json new file mode 100644 index 00000000..a66a39d7 --- /dev/null +++ b/packages/dts-generator/tsconfig-test-apis.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "noEmit": true, + "skipLibCheck": true, + "module": "Node16", + "moduleResolution": "Node16", + "strict": false + }, + "include": [ + "./src/types/api-json.d.ts", + "./src/types/ast.d.ts", + "./src/types/ui5-logger-types.d.ts" + ] +} diff --git a/packages/dts-generator/tsconfig.json b/packages/dts-generator/tsconfig.json index 4a6d31ab..8b05552d 100644 --- a/packages/dts-generator/tsconfig.json +++ b/packages/dts-generator/tsconfig.json @@ -3,11 +3,15 @@ "module": "Node16", "moduleResolution": "Node16", "target": "es2022", + "types": ["node"], + "rootDir": "./src", "outDir": "./dist", "declaration": true, "declarationMap": true, "sourceMap": true, "noImplicitAny": false, + "strict": false, + "skipLibCheck": true, "resolveJsonModule": true, "allowJs": true }, diff --git a/packages/ts-interface-generator/package.json b/packages/ts-interface-generator/package.json index 3d5fa8a0..37d0fb28 100644 --- a/packages/ts-interface-generator/package.json +++ b/packages/ts-interface-generator/package.json @@ -46,7 +46,7 @@ "jest": "30.4.2", "npm-run-all": "4.1.5", "ts-jest": "29.4.9", - "typescript": "5.9.3" + "typescript": "6.0.3" }, "dependencies": { "hjson": "3.2.2", diff --git a/packages/ts-interface-generator/src/test/testcases/testcaseRunner.test.ts b/packages/ts-interface-generator/src/test/testcases/testcaseRunner.test.ts index 47a8a361..5d277dfa 100644 --- a/packages/ts-interface-generator/src/test/testcases/testcaseRunner.test.ts +++ b/packages/ts-interface-generator/src/test/testcases/testcaseRunner.test.ts @@ -16,6 +16,7 @@ const standardTsConfig: ts.CompilerOptions = { esModuleInterop: true, skipLibCheck: true, forceConsistentCasingInFileNames: true, + types: ["openui5"], }; describe("Single Testcases", () => { diff --git a/packages/ts-interface-generator/src/test/testcases/tsconfig-path-relative/tsconfig.json b/packages/ts-interface-generator/src/test/testcases/tsconfig-path-relative/tsconfig.json index 248012f5..a3565e05 100644 --- a/packages/ts-interface-generator/src/test/testcases/tsconfig-path-relative/tsconfig.json +++ b/packages/ts-interface-generator/src/test/testcases/tsconfig-path-relative/tsconfig.json @@ -7,6 +7,7 @@ "esModuleInterop": true, "skipLibCheck": true, "forceConsistentCasingInFileNames": true, + "types": ["openui5"], "noEmit": true, "paths": { "my/*": ["${configDir}/*"] diff --git a/packages/ts-interface-generator/tsconfig-testcontrol.json b/packages/ts-interface-generator/tsconfig-testcontrol.json index d445218d..cd2f3a2a 100644 --- a/packages/ts-interface-generator/tsconfig-testcontrol.json +++ b/packages/ts-interface-generator/tsconfig-testcontrol.json @@ -10,7 +10,8 @@ "moduleResolution": "node16", "esModuleInterop": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, + "types": ["openui5"] }, "include": ["./src/test/samples/sampleControl/**/*"] } diff --git a/packages/ts-interface-generator/tsconfig-testmanagedobject.json b/packages/ts-interface-generator/tsconfig-testmanagedobject.json index 5ba92d41..103d96bf 100644 --- a/packages/ts-interface-generator/tsconfig-testmanagedobject.json +++ b/packages/ts-interface-generator/tsconfig-testmanagedobject.json @@ -10,7 +10,8 @@ "moduleResolution": "node16", "esModuleInterop": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, + "types": ["openui5"] }, "include": ["./src/test/samples/sampleManagedObject/**/*"] } diff --git a/packages/ts-interface-generator/tsconfig-testwebcomponent.json b/packages/ts-interface-generator/tsconfig-testwebcomponent.json index 960d5ef6..fc3e682b 100644 --- a/packages/ts-interface-generator/tsconfig-testwebcomponent.json +++ b/packages/ts-interface-generator/tsconfig-testwebcomponent.json @@ -10,7 +10,8 @@ "moduleResolution": "node16", "esModuleInterop": true, "skipLibCheck": true, - "forceConsistentCasingInFileNames": true + "forceConsistentCasingInFileNames": true, + "types": ["openui5"] }, "include": ["./src/test/samples/sampleWebComponent/**/*"] } diff --git a/test-packages/openui5-snapshot-test/package.json b/test-packages/openui5-snapshot-test/package.json index 98d05089..46804c58 100644 --- a/test-packages/openui5-snapshot-test/package.json +++ b/test-packages/openui5-snapshot-test/package.json @@ -12,7 +12,7 @@ "@ui5/dts-generator": "link:../../packages/dts-generator", "fs-extra": "11.3.5", "lodash": "4.18.1", - "typescript": "5.9.3" + "typescript": "6.0.3" }, "devDependencies": { "@types/jquery": "3.5.32", diff --git a/test-packages/openui5-snapshot-test/tsconfig.json b/test-packages/openui5-snapshot-test/tsconfig.json index b69c7909..4f629ceb 100644 --- a/test-packages/openui5-snapshot-test/tsconfig.json +++ b/test-packages/openui5-snapshot-test/tsconfig.json @@ -2,6 +2,7 @@ "include": ["playground", "output-dts"], "compilerOptions": { "module": "ES2022", + "moduleResolution": "bundler", "target": "ES2022", "noEmit": true, "checkJs": true, diff --git a/test-packages/typed-json-model/package.json b/test-packages/typed-json-model/package.json index 97e2544a..95fce513 100644 --- a/test-packages/typed-json-model/package.json +++ b/test-packages/typed-json-model/package.json @@ -21,7 +21,7 @@ "@ui5/linter": "^1.21.0", "eslint": "^10.3.0", "globals": "^17.6.0", - "typescript": "^5.9.3", + "typescript": "^6.0.3", "typescript-eslint": "^8.59.2", "ui5-middleware-livereload": "^3", "ui5-middleware-simpleproxy": "^3", diff --git a/test-packages/typed-json-model/tsconfig.json b/test-packages/typed-json-model/tsconfig.json index 182cca5b..6babbfa6 100644 --- a/test-packages/typed-json-model/tsconfig.json +++ b/test-packages/typed-json-model/tsconfig.json @@ -2,14 +2,12 @@ "compilerOptions": { "target": "es2023", "module": "es2022", - "moduleResolution": "node", + "moduleResolution": "bundler", "skipLibCheck": true, "allowJs": true, "strict": true, "strictPropertyInitialization": false, "rootDir": "./webapp", - "baseUrl": "./", - "paths": {}, "composite": true, "outDir": "./dist", "types": ["@openui5/types"] diff --git a/yarn.lock b/yarn.lock index 413c6059..30b4af5b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3221,7 +3221,7 @@ sanitize-html "2.17.3" semver "^7.8.0" strip-json-comments "^5.0.3" - typescript "^5.9.3" + typescript "^6.0.3" "@ui5/fs@^4.0.5": version "4.0.5" @@ -11767,6 +11767,11 @@ typescript@5.9.3, "typescript@>=3 < 6", typescript@^5.9.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f" integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== +typescript@6.0.3, typescript@^6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.3.tgz#90251dc007916e972786cb94d74d15b185577d21" + integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== + uc.micro@^2.0.0, uc.micro@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-2.1.0.tgz#f8d3f7d0ec4c3dea35a7e3c8efa4cb8b45c9e7ee" From 0db5e18bbb8c8b0636fd43530946ae340ded66df Mon Sep 17 00:00:00 2001 From: akudev Date: Mon, 11 May 2026 17:08:14 +0200 Subject: [PATCH 2/3] fix(dts-generator): add explicit @types/node devDependency Ensures the build works outside hoisted monorepo setups now that tsconfig.json explicitly lists "types": ["node"]. --- packages/dts-generator/package.json | 1 + yarn.lock | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/packages/dts-generator/package.json b/packages/dts-generator/package.json index 1c4fb868..b0544b2e 100644 --- a/packages/dts-generator/package.json +++ b/packages/dts-generator/package.json @@ -42,6 +42,7 @@ "@microsoft/api-extractor": "^7.58.7", "@types/argparse": "^2.0.17", "@types/lodash": "4.17.24", + "@types/node": "^22.0.0", "@types/sanitize-html": "2.16.1", "@types/urijs": "1.19.26", "copyfiles": "^2.4.1", diff --git a/yarn.lock b/yarn.lock index 30b4af5b..9af5ec98 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2904,6 +2904,13 @@ dependencies: undici-types "~7.14.0" +"@types/node@^22.0.0": + version "22.19.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.18.tgz#fde5e5e082daa1e69535deb9e2bbfa928f61b5e3" + integrity sha512-9v00a+dn2yWVsYDEunWC4g/TcRKVq3r8N5FuZp7u0SGrPvdN9c2yXI9bBuf5Fl0hNCb+QTIePTn5pJs2pwBOQQ== + dependencies: + undici-types "~6.21.0" + "@types/normalize-package-data@^2.4.0", "@types/normalize-package-data@^2.4.3": version "2.4.4" resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" @@ -11839,6 +11846,11 @@ underscore@~1.13.2: resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.13.8.tgz#a93a21186c049dbf0e847496dba72b7bd8c1e92b" integrity sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== + undici-types@~7.14.0: version "7.14.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.14.0.tgz#4c037b32ca4d7d62fae042174604341588bc0840" From e43b07f39849fca364345d0b15792dab39b5ca77 Mon Sep 17 00:00:00 2001 From: akudev Date: Mon, 11 May 2026 17:35:03 +0200 Subject: [PATCH 3/3] fix(dts-generator): address review comment --- packages/dts-generator/tsconfig-test-apis.json | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/dts-generator/tsconfig-test-apis.json b/packages/dts-generator/tsconfig-test-apis.json index a66a39d7..67c0460a 100644 --- a/packages/dts-generator/tsconfig-test-apis.json +++ b/packages/dts-generator/tsconfig-test-apis.json @@ -1,7 +1,6 @@ { "compilerOptions": { "noEmit": true, - "skipLibCheck": true, "module": "Node16", "moduleResolution": "Node16", "strict": false