From f0729b7432d02997ec9dda7443211f8379d538bc Mon Sep 17 00:00:00 2001 From: Nicolas Ayral Seydoux Date: Mon, 10 Aug 2026 13:39:02 +0200 Subject: [PATCH 1/4] Bump TS to v6 --- .../solid-client-authn-browser/test-app/next-env.d.ts | 1 + package-lock.json | 6 ++++-- package.json | 2 +- packages/browser/src/ClientAuthentication.ts | 2 +- .../browser/src/login/oidc/IssuerConfigFetcher.spec.ts | 9 ++++++++- .../incomingRedirectHandler/AuthCodeRedirectHandler.ts | 2 +- .../oidc/incomingRedirectHandler/ErrorOidcHandler.ts | 2 +- .../browser/src/login/oidc/refresh/TokenRefresher.ts | 2 +- packages/browser/tsconfig.json | 7 ++++++- packages/core/src/SessionEventListener.ts | 2 +- packages/core/src/authenticatedFetch/fetchFactory.ts | 2 +- packages/core/src/login/ILoginOptions.ts | 2 +- packages/core/src/login/oidc/IIncomingRedirectHandler.ts | 2 +- packages/core/src/login/oidc/IOidcOptions.ts | 2 +- .../src/login/oidc/__mocks__/IncomingRedirectHandler.ts | 2 +- packages/core/src/login/oidc/refresh/ITokenRefresher.ts | 2 +- packages/core/tsconfig.json | 7 ++++++- packages/node/src/ClientAuthentication.ts | 2 +- packages/node/src/Session.spec.ts | 2 +- packages/node/src/Session.ts | 2 +- .../src/login/oidc/AggregateIncomingRedirectHandler.ts | 2 +- .../incomingRedirectHandler/AuthCodeRedirectHandler.ts | 2 +- .../login/oidc/oidcHandlers/RefreshTokenOidcHandler.ts | 2 +- packages/node/src/login/oidc/refresh/TokenRefresher.ts | 2 +- packages/node/tsconfig.json | 7 ++++++- packages/oidc-browser/tsconfig.json | 9 +++++++-- tsconfig.build.json | 6 ++++++ 27 files changed, 63 insertions(+), 27 deletions(-) diff --git a/e2e/browser/solid-client-authn-browser/test-app/next-env.d.ts b/e2e/browser/solid-client-authn-browser/test-app/next-env.d.ts index 9edff1c7ca..ce4e94a6b1 100644 --- a/e2e/browser/solid-client-authn-browser/test-app/next-env.d.ts +++ b/e2e/browser/solid-client-authn-browser/test-app/next-env.d.ts @@ -1,6 +1,7 @@ /// /// import "./.next/types/routes.d.ts"; +import "./.next/types/root-params.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/package-lock.json b/package-lock.json index a267e6e1cd..a4a3b169c6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -51,7 +51,7 @@ "ts-node": "^10.9.2", "typedoc": "^0.28.20", "typedoc-plugin-markdown": "^3.17.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "engines": { "node": "^22.0.0 || ^24.0.0" @@ -21058,7 +21058,9 @@ } }, "node_modules/typescript": { - "version": "5.9.3", + "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/package.json b/package.json index d300aca2d3..ca6358f102 100644 --- a/package.json +++ b/package.json @@ -78,7 +78,7 @@ "ts-node": "^10.9.2", "typedoc": "^0.28.20", "typedoc-plugin-markdown": "^3.17.1", - "typescript": "^5.9.3" + "typescript": "^6.0.3" }, "optionalDependencies": { "@nx/nx-win32-x64-msvc": "^23.1.0", diff --git a/packages/browser/src/ClientAuthentication.ts b/packages/browser/src/ClientAuthentication.ts index e05cb61c5d..19190bd932 100644 --- a/packages/browser/src/ClientAuthentication.ts +++ b/packages/browser/src/ClientAuthentication.ts @@ -35,7 +35,7 @@ import { removeOpenIdParams, } from "@inrupt/solid-client-authn-core"; import { normalizeCallbackUrl } from "@inrupt/oidc-client-ext"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; /** * Checks if a client's registration has expired. diff --git a/packages/browser/src/login/oidc/IssuerConfigFetcher.spec.ts b/packages/browser/src/login/oidc/IssuerConfigFetcher.spec.ts index c022594fb2..c1a2e1d899 100644 --- a/packages/browser/src/login/oidc/IssuerConfigFetcher.spec.ts +++ b/packages/browser/src/login/oidc/IssuerConfigFetcher.spec.ts @@ -18,7 +18,14 @@ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -import { jest, it, describe, expect } from "@jest/globals"; +import { + jest, + it, + describe, + expect, + beforeEach, + afterEach, +} from "@jest/globals"; import { mockStorageUtility } from "@inrupt/solid-client-authn-core"; import IssuerConfigFetcher from "./IssuerConfigFetcher"; diff --git a/packages/browser/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts b/packages/browser/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts index dfb01d14d3..73e6cc804f 100644 --- a/packages/browser/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts +++ b/packages/browser/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts @@ -40,7 +40,7 @@ import { saveSessionInfoToStorage, } from "@inrupt/solid-client-authn-core"; import { getTokens } from "@inrupt/oidc-client-ext"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; /** * @hidden diff --git a/packages/browser/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts b/packages/browser/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts index 9681cd6f94..9d446b6f1f 100644 --- a/packages/browser/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts +++ b/packages/browser/src/login/oidc/incomingRedirectHandler/ErrorOidcHandler.ts @@ -28,7 +28,7 @@ import type { ISessionInfo, } from "@inrupt/solid-client-authn-core"; import { EVENTS } from "@inrupt/solid-client-authn-core"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import { getUnauthenticatedSession } from "../../../sessionInfo/SessionInfoManager"; diff --git a/packages/browser/src/login/oidc/refresh/TokenRefresher.ts b/packages/browser/src/login/oidc/refresh/TokenRefresher.ts index e3ac585f5f..be42efed37 100644 --- a/packages/browser/src/login/oidc/refresh/TokenRefresher.ts +++ b/packages/browser/src/login/oidc/refresh/TokenRefresher.ts @@ -37,7 +37,7 @@ import { EVENTS, } from "@inrupt/solid-client-authn-core"; import { refresh } from "@inrupt/oidc-client-ext"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; // Some identifiers are not in camelcase on purpose, as they are named using the // official names from the OIDC/OAuth2 specifications. diff --git a/packages/browser/tsconfig.json b/packages/browser/tsconfig.json index 45ef66d0ef..d712809b82 100644 --- a/packages/browser/tsconfig.json +++ b/packages/browser/tsconfig.json @@ -3,7 +3,12 @@ "compilerOptions": { "lib": ["es2022", "dom"], - "outDir": "./dist" + "rootDir": "./src", + "outDir": "./dist", + // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, + // so @types/node must be listed explicitly for the build to resolve Node + // built-ins (e.g. "node:events", the NodeJS namespace). + "types": ["node"] }, "include": ["src/**/*"], diff --git a/packages/core/src/SessionEventListener.ts b/packages/core/src/SessionEventListener.ts index ba78da5ba4..64f2c6d971 100644 --- a/packages/core/src/SessionEventListener.ts +++ b/packages/core/src/SessionEventListener.ts @@ -18,7 +18,7 @@ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import type { EVENTS } from "./constant"; import type { KeyPair } from "./authenticatedFetch/dpopUtils"; diff --git a/packages/core/src/authenticatedFetch/fetchFactory.ts b/packages/core/src/authenticatedFetch/fetchFactory.ts index 5bb4ea3b59..c18e82966f 100644 --- a/packages/core/src/authenticatedFetch/fetchFactory.ts +++ b/packages/core/src/authenticatedFetch/fetchFactory.ts @@ -18,7 +18,7 @@ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import { REFRESH_BEFORE_EXPIRATION_SECONDS, EVENTS } from "../constant"; import type { ITokenRefresher } from "../login/oidc/refresh/ITokenRefresher"; import type { KeyPair } from "./dpopUtils"; diff --git a/packages/core/src/login/ILoginOptions.ts b/packages/core/src/login/ILoginOptions.ts index 8be9360706..eb69523f02 100644 --- a/packages/core/src/login/ILoginOptions.ts +++ b/packages/core/src/login/ILoginOptions.ts @@ -23,7 +23,7 @@ * @packageDocumentation */ -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import type ILoginInputOptions from "../ILoginInputOptions"; /** diff --git a/packages/core/src/login/oidc/IIncomingRedirectHandler.ts b/packages/core/src/login/oidc/IIncomingRedirectHandler.ts index d773ad05b4..d352c16077 100644 --- a/packages/core/src/login/oidc/IIncomingRedirectHandler.ts +++ b/packages/core/src/login/oidc/IIncomingRedirectHandler.ts @@ -23,7 +23,7 @@ * @packageDocumentation */ -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import type IHandleable from "../../util/handlerPattern/IHandleable"; import type { ISessionInfo } from "../../sessionInfo/ISessionInfo"; import type { IRpLogoutOptions } from "../../logout/ILogoutHandler"; diff --git a/packages/core/src/login/oidc/IOidcOptions.ts b/packages/core/src/login/oidc/IOidcOptions.ts index 8dade63854..f44afa836e 100644 --- a/packages/core/src/login/oidc/IOidcOptions.ts +++ b/packages/core/src/login/oidc/IOidcOptions.ts @@ -26,7 +26,7 @@ /** * Defines how OIDC login should proceed */ -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import type { IIssuerConfig } from "./IIssuerConfig"; import type { IClient } from "./IClient"; import { DEFAULT_SCOPES } from "../../constant"; diff --git a/packages/core/src/login/oidc/__mocks__/IncomingRedirectHandler.ts b/packages/core/src/login/oidc/__mocks__/IncomingRedirectHandler.ts index 099973170b..55e25ba0d1 100644 --- a/packages/core/src/login/oidc/__mocks__/IncomingRedirectHandler.ts +++ b/packages/core/src/login/oidc/__mocks__/IncomingRedirectHandler.ts @@ -18,7 +18,7 @@ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import { jest } from "@jest/globals"; import type IIncomingRedirectHandler from "../IIncomingRedirectHandler"; diff --git a/packages/core/src/login/oidc/refresh/ITokenRefresher.ts b/packages/core/src/login/oidc/refresh/ITokenRefresher.ts index f92a13ade0..874d71a3bd 100644 --- a/packages/core/src/login/oidc/refresh/ITokenRefresher.ts +++ b/packages/core/src/login/oidc/refresh/ITokenRefresher.ts @@ -18,7 +18,7 @@ // SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. // -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import type { KeyPair } from "../../../authenticatedFetch/dpopUtils"; /** diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index 45ef66d0ef..d712809b82 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -3,7 +3,12 @@ "compilerOptions": { "lib": ["es2022", "dom"], - "outDir": "./dist" + "rootDir": "./src", + "outDir": "./dist", + // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, + // so @types/node must be listed explicitly for the build to resolve Node + // built-ins (e.g. "node:events", the NodeJS namespace). + "types": ["node"] }, "include": ["src/**/*"], diff --git a/packages/node/src/ClientAuthentication.ts b/packages/node/src/ClientAuthentication.ts index 790f59b211..05b0088aa7 100644 --- a/packages/node/src/ClientAuthentication.ts +++ b/packages/node/src/ClientAuthentication.ts @@ -34,7 +34,7 @@ import type { ISessionInternalInfo, AuthorizationRequestState, } from "@inrupt/solid-client-authn-core"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; /** * @hidden diff --git a/packages/node/src/Session.spec.ts b/packages/node/src/Session.spec.ts index 441a9e40b8..2106e3ba5b 100644 --- a/packages/node/src/Session.spec.ts +++ b/packages/node/src/Session.spec.ts @@ -23,7 +23,7 @@ import type { ISessionInfo } from "@inrupt/solid-client-authn-core"; import { EVENTS } from "@inrupt/solid-client-authn-core"; // eslint-disable-next-line import/no-unresolved import { mockStorage } from "@inrupt/solid-client-authn-core/mocks"; -import type EventEmitter from "events"; +import type EventEmitter from "node:events"; import type { SessionTokenSet } from "core"; import { mockClientAuthentication } from "./__mocks__/ClientAuthentication"; import type ClientAuthentication from "./ClientAuthentication"; diff --git a/packages/node/src/Session.ts b/packages/node/src/Session.ts index 9049d9ffd0..aead9631c0 100644 --- a/packages/node/src/Session.ts +++ b/packages/node/src/Session.ts @@ -39,7 +39,7 @@ import { getWebidFromTokenPayload, } from "@inrupt/solid-client-authn-core"; import { v4 } from "uuid"; -import EventEmitter from "events"; +import EventEmitter from "node:events"; import { exportJWK } from "jose"; import type ClientAuthentication from "./ClientAuthentication"; import { getClientAuthenticationWithDependencies } from "./dependencies"; diff --git a/packages/node/src/login/oidc/AggregateIncomingRedirectHandler.ts b/packages/node/src/login/oidc/AggregateIncomingRedirectHandler.ts index 9e3932c3cf..6743a83af1 100644 --- a/packages/node/src/login/oidc/AggregateIncomingRedirectHandler.ts +++ b/packages/node/src/login/oidc/AggregateIncomingRedirectHandler.ts @@ -32,7 +32,7 @@ import type { SessionConfig, } from "@inrupt/solid-client-authn-core"; import { AggregateHandler } from "@inrupt/solid-client-authn-core"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; /** * @hidden diff --git a/packages/node/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts b/packages/node/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts index 7d271c8518..862cf2fc5a 100644 --- a/packages/node/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts +++ b/packages/node/src/login/oidc/incomingRedirectHandler/AuthCodeRedirectHandler.ts @@ -49,7 +49,7 @@ import { import { URL } from "url"; import { Issuer } from "openid-client"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import { configToIssuerMetadata } from "../IssuerConfigFetcher"; import { asDPoPInput } from "../../../util/dpopInput"; diff --git a/packages/node/src/login/oidc/oidcHandlers/RefreshTokenOidcHandler.ts b/packages/node/src/login/oidc/oidcHandlers/RefreshTokenOidcHandler.ts index c63d5d55c3..f2b36f23dc 100644 --- a/packages/node/src/login/oidc/oidcHandlers/RefreshTokenOidcHandler.ts +++ b/packages/node/src/login/oidc/oidcHandlers/RefreshTokenOidcHandler.ts @@ -47,7 +47,7 @@ import { } from "@inrupt/solid-client-authn-core"; import type { JWK, CryptoKey as JoseCryptoKey } from "jose"; import { importJWK } from "jose"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; function validateOptions( oidcLoginOptions: IOidcOptions, diff --git a/packages/node/src/login/oidc/refresh/TokenRefresher.ts b/packages/node/src/login/oidc/refresh/TokenRefresher.ts index 7dc7482694..435d688d40 100644 --- a/packages/node/src/login/oidc/refresh/TokenRefresher.ts +++ b/packages/node/src/login/oidc/refresh/TokenRefresher.ts @@ -40,7 +40,7 @@ import { } from "@inrupt/solid-client-authn-core"; import type { IssuerMetadata, TokenSet } from "openid-client"; import { Issuer } from "openid-client"; -import type { EventEmitter } from "events"; +import type { EventEmitter } from "node:events"; import { configToIssuerMetadata } from "../IssuerConfigFetcher"; import { negotiateClientSigningAlg } from "../ClientRegistrar"; import { asDPoPInput } from "../../../util/dpopInput"; diff --git a/packages/node/tsconfig.json b/packages/node/tsconfig.json index 34fbe2bf18..c4168f2b51 100644 --- a/packages/node/tsconfig.json +++ b/packages/node/tsconfig.json @@ -3,7 +3,12 @@ "compilerOptions": { "lib": ["es2022"], - "outDir": "./dist" + "rootDir": "./src", + "outDir": "./dist", + // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, + // so @types/node must be listed explicitly for the build to resolve Node + // built-ins (e.g. "node:events", the NodeJS namespace). + "types": ["node"] }, "include": ["src/**/*"], diff --git a/packages/oidc-browser/tsconfig.json b/packages/oidc-browser/tsconfig.json index 70425f82df..4628eb4911 100644 --- a/packages/oidc-browser/tsconfig.json +++ b/packages/oidc-browser/tsconfig.json @@ -3,7 +3,12 @@ "compilerOptions": { "lib": ["es2022", "dom"], - "outDir": "./dist" + "rootDir": "./src", + "outDir": "./dist", + // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, + // so @types/node must be listed explicitly for the build to resolve Node + // built-ins (e.g. "node:events", the NodeJS namespace). + "types": ["node"] }, "typedocOptions": { @@ -13,5 +18,5 @@ }, "include": ["src/**/*"], - "exclude": ["*.spec.ts"] + "exclude": ["src/**/*.spec.ts", "**/__mocks__/*"] } diff --git a/tsconfig.build.json b/tsconfig.build.json index ef5ddd53fb..1f26c65842 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -16,6 +16,12 @@ "sourceMap": true, "lib": ["es2022", "dom"], "moduleResolution": "node", + // TypeScript 6 deprecates the "node" (node10) module resolution and errors + // unless it is explicitly acknowledged. Switching to "bundler"/"node16" + // resolution changes how the internal @inrupt/solid-client-authn-* packages + // resolve their type-only exports and breaks the build/tests, so that is + // deferred to the TypeScript 7 migration. See https://aka.ms/ts6. + "ignoreDeprecations": "6.0", "resolveJsonModule": true, "outDir": "./dist", // This is required to transform native ESM from our dependencies using ts-jest. From be80bb2c02bb55d87491ad0dff64a523219c98ba Mon Sep 17 00:00:00 2001 From: Nicolas Ayral Seydoux Date: Mon, 10 Aug 2026 14:03:49 +0200 Subject: [PATCH 2/4] fixup! Bump TS to v6 --- jest.config.ts | 1 - packages/browser/package.json | 4 ++-- packages/core/package.json | 8 ++++---- packages/node/package.json | 4 ++-- tsconfig.build.json | 14 ++++++-------- tsconfig.json | 5 +++-- 6 files changed, 17 insertions(+), 19 deletions(-) diff --git a/jest.config.ts b/jest.config.ts index 8c0b173de6..8c1cf9205b 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -29,7 +29,6 @@ import { join } from "node:path"; // Jest 30 loads .ts config files as ESM via Node's native TypeScript support, // so `require` is not available. Use createRequire for require.resolve calls. -// @ts-expect-error: import.meta.url is valid at runtime (ESM), but tsconfig targets CJS. const esmRequire = createRequire(import.meta.url); type ArrayElement = MyArray extends Array ? T : never; diff --git a/packages/browser/package.json b/packages/browser/package.json index 192d7e627c..103f6a6ce0 100644 --- a/packages/browser/package.json +++ b/packages/browser/package.json @@ -13,9 +13,9 @@ }, "exports": { ".": { + "types": "./dist/index.d.ts", "require": "./dist/index.js", - "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + "import": "./dist/index.mjs" } }, "scripts": { diff --git a/packages/core/package.json b/packages/core/package.json index 18d81e4e54..5d06d40638 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -7,14 +7,14 @@ "types": "dist/index.d.ts", "exports": { ".": { + "types": "./dist/index.d.ts", "require": "./dist/index.js", - "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + "import": "./dist/index.mjs" }, "./mocks": { + "types": "./dist/mocks.d.ts", "require": "./dist/mocks.js", - "import": "./dist/mocks.mjs", - "types": "./dist/mocks.d.ts" + "import": "./dist/mocks.mjs" } }, "typesVersions": { diff --git a/packages/node/package.json b/packages/node/package.json index 7acc44e84e..974ca3dd03 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -11,9 +11,9 @@ }, "exports": { ".": { + "types": "./dist/index.d.ts", "require": "./dist/index.js", - "import": "./dist/index.mjs", - "types": "./dist/index.d.ts" + "import": "./dist/index.mjs" } }, "scripts": { diff --git a/tsconfig.build.json b/tsconfig.build.json index 1f26c65842..3540b7f136 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -7,7 +7,7 @@ "./jest.config.ts" ], "compilerOptions": { - "module": "commonjs", + "module": "preserve", "strict": true, "declaration": true, "noImplicitAny": true, @@ -15,13 +15,11 @@ "target": "es2022", "sourceMap": true, "lib": ["es2022", "dom"], - "moduleResolution": "node", - // TypeScript 6 deprecates the "node" (node10) module resolution and errors - // unless it is explicitly acknowledged. Switching to "bundler"/"node16" - // resolution changes how the internal @inrupt/solid-client-authn-* packages - // resolve their type-only exports and breaks the build/tests, so that is - // deferred to the TypeScript 7 migration. See https://aka.ms/ts6. - "ignoreDeprecations": "6.0", + // "bundler" resolution replaces the node10 resolution deprecated in + // TypeScript 6. It matches how our Rollup build resolves modules and lets + // "module": "preserve" leave module syntax untouched for the bundler to + // handle. See https://aka.ms/ts6. + "moduleResolution": "bundler", "resolveJsonModule": true, "outDir": "./dist", // This is required to transform native ESM from our dependencies using ts-jest. diff --git a/tsconfig.json b/tsconfig.json index 5299601143..b3b03a174a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,9 +2,10 @@ "extends": "./tsconfig.build.json", "compilerOptions": { - "baseUrl": "./packages", + // "baseUrl" was deprecated in TypeScript 6; "paths" values are now resolved + // relative to this config file's directory instead. "paths": { - "*": ["*/src"] + "*": ["./packages/*/src"] } } } From 6a5727436e45debf9a637cef03d7886d5193b9bb Mon Sep 17 00:00:00 2001 From: Nicolas Ayral Seydoux Date: Mon, 10 Aug 2026 14:11:24 +0200 Subject: [PATCH 3/4] fixup! fixup! Bump TS to v6 --- packages/browser/tsconfig.json | 3 --- packages/core/tsconfig.json | 3 --- packages/node/tsconfig.json | 3 --- packages/oidc-browser/tsconfig.json | 3 --- tsconfig.build.json | 3 +-- tsconfig.json | 2 -- 6 files changed, 1 insertion(+), 16 deletions(-) diff --git a/packages/browser/tsconfig.json b/packages/browser/tsconfig.json index d712809b82..cbb34b0022 100644 --- a/packages/browser/tsconfig.json +++ b/packages/browser/tsconfig.json @@ -5,9 +5,6 @@ "lib": ["es2022", "dom"], "rootDir": "./src", "outDir": "./dist", - // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, - // so @types/node must be listed explicitly for the build to resolve Node - // built-ins (e.g. "node:events", the NodeJS namespace). "types": ["node"] }, diff --git a/packages/core/tsconfig.json b/packages/core/tsconfig.json index d712809b82..cbb34b0022 100644 --- a/packages/core/tsconfig.json +++ b/packages/core/tsconfig.json @@ -5,9 +5,6 @@ "lib": ["es2022", "dom"], "rootDir": "./src", "outDir": "./dist", - // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, - // so @types/node must be listed explicitly for the build to resolve Node - // built-ins (e.g. "node:events", the NodeJS namespace). "types": ["node"] }, diff --git a/packages/node/tsconfig.json b/packages/node/tsconfig.json index c4168f2b51..ed95b3ee5f 100644 --- a/packages/node/tsconfig.json +++ b/packages/node/tsconfig.json @@ -5,9 +5,6 @@ "lib": ["es2022"], "rootDir": "./src", "outDir": "./dist", - // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, - // so @types/node must be listed explicitly for the build to resolve Node - // built-ins (e.g. "node:events", the NodeJS namespace). "types": ["node"] }, diff --git a/packages/oidc-browser/tsconfig.json b/packages/oidc-browser/tsconfig.json index 4628eb4911..1d1ac61595 100644 --- a/packages/oidc-browser/tsconfig.json +++ b/packages/oidc-browser/tsconfig.json @@ -5,9 +5,6 @@ "lib": ["es2022", "dom"], "rootDir": "./src", "outDir": "./dist", - // TypeScript 6 no longer walks up to the monorepo-root node_modules/@types, - // so @types/node must be listed explicitly for the build to resolve Node - // built-ins (e.g. "node:events", the NodeJS namespace). "types": ["node"] }, diff --git a/tsconfig.build.json b/tsconfig.build.json index 3540b7f136..3135e0482c 100644 --- a/tsconfig.build.json +++ b/tsconfig.build.json @@ -15,8 +15,7 @@ "target": "es2022", "sourceMap": true, "lib": ["es2022", "dom"], - // "bundler" resolution replaces the node10 resolution deprecated in - // TypeScript 6. It matches how our Rollup build resolves modules and lets + // "bundler" resolution matches how the Rollup build resolves modules, and // "module": "preserve" leave module syntax untouched for the bundler to // handle. See https://aka.ms/ts6. "moduleResolution": "bundler", diff --git a/tsconfig.json b/tsconfig.json index b3b03a174a..b2499d5eff 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,8 +2,6 @@ "extends": "./tsconfig.build.json", "compilerOptions": { - // "baseUrl" was deprecated in TypeScript 6; "paths" values are now resolved - // relative to this config file's directory instead. "paths": { "*": ["./packages/*/src"] } From 237cafbf3b9e6c291bde9224d5fbb197a74537c1 Mon Sep 17 00:00:00 2001 From: Nicolas Ayral Seydoux Date: Mon, 10 Aug 2026 15:57:21 +0200 Subject: [PATCH 4/4] Remove macOS from CI matrix The build process exceeds the macOS memory --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9193bdface..d89aa6926f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,7 @@ jobs: strategy: matrix: # We test against different OSes, because the build toolchain has OS-specific dependencies. - os: ["ubuntu-latest", "windows-latest", "macos-latest"] + os: ["ubuntu-latest", "windows-latest"] node-version: ["22.x", "24.x"] steps: - uses: actions/checkout@v7