From ce885071ddc6757c110ab04936cd1dd6a3d5b40a Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Tue, 11 Nov 2025 15:01:03 +0100 Subject: [PATCH] Update sdk-internal to 374 (fix breaking changes) (#17325) * feat: update sdk-internal * fix: symbol.dispose breaking change * fix: TextEncoder/Decoder breaking change * fix: move polyfills to a global setup script * typo --- libs/common/src/platform/ipc/ipc-message.ts | 3 ++- .../services/sdk/default-sdk.service.spec.ts | 1 + libs/shared/jest.config.ts.js | 2 ++ libs/shared/polyfill-node-globals.ts | 11 +++++++++++ .../vault-export-core/jest.config.js | 1 + package-lock.json | 16 ++++++++-------- package.json | 4 ++-- 7 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 libs/shared/polyfill-node-globals.ts diff --git a/libs/common/src/platform/ipc/ipc-message.ts b/libs/common/src/platform/ipc/ipc-message.ts index abd352da1c0..c3ac6360597 100644 --- a/libs/common/src/platform/ipc/ipc-message.ts +++ b/libs/common/src/platform/ipc/ipc-message.ts @@ -5,7 +5,8 @@ export interface IpcMessage { message: SerializedOutgoingMessage; } -export interface SerializedOutgoingMessage extends Omit { +export interface SerializedOutgoingMessage + extends Omit { payload: number[]; } diff --git a/libs/common/src/platform/services/sdk/default-sdk.service.spec.ts b/libs/common/src/platform/services/sdk/default-sdk.service.spec.ts index c78e6370ffb..769e8521d88 100644 --- a/libs/common/src/platform/services/sdk/default-sdk.service.spec.ts +++ b/libs/common/src/platform/services/sdk/default-sdk.service.spec.ts @@ -249,6 +249,7 @@ function createMockClient(): MockProxy { state: jest.fn().mockReturnValue(mock()), load_flags: jest.fn().mockReturnValue(mock()), free: mock(), + [Symbol.dispose]: jest.fn(), }); return client; } diff --git a/libs/shared/jest.config.ts.js b/libs/shared/jest.config.ts.js index 04ab80859ba..b558a86611f 100644 --- a/libs/shared/jest.config.ts.js +++ b/libs/shared/jest.config.ts.js @@ -9,6 +9,8 @@ module.exports = { // Also anecdotally improves performance when run locally maxWorkers: 3, + setupFiles: ["/../../libs/shared/polyfill-node-globals.ts"], + transform: { "^.+\\.tsx?$": [ "ts-jest", diff --git a/libs/shared/polyfill-node-globals.ts b/libs/shared/polyfill-node-globals.ts new file mode 100644 index 00000000000..5f021875638 --- /dev/null +++ b/libs/shared/polyfill-node-globals.ts @@ -0,0 +1,11 @@ +import { TextEncoder, TextDecoder } from "util"; + +// SDK/WASM code relies on TextEncoder/TextDecoder being available globally +// We can't use `test.environment.ts` because that breaks other tests that rely on +// the default jest jsdom environment +if (!(globalThis as any).TextEncoder) { + (globalThis as any).TextEncoder = TextEncoder; +} +if (!(globalThis as any).TextDecoder) { + (globalThis as any).TextDecoder = TextDecoder as unknown as typeof globalThis.TextDecoder; +} diff --git a/libs/tools/export/vault-export/vault-export-core/jest.config.js b/libs/tools/export/vault-export/vault-export-core/jest.config.js index 68c286de3d3..61ffa2ccf52 100644 --- a/libs/tools/export/vault-export/vault-export-core/jest.config.js +++ b/libs/tools/export/vault-export/vault-export-core/jest.config.js @@ -7,6 +7,7 @@ module.exports = { testMatch: ["**/+(*.)+(spec).+(ts)"], preset: "ts-jest", testEnvironment: "jsdom", + setupFiles: ["/../../../../../libs/shared/polyfill-node-globals.ts"], moduleNameMapper: pathsToModuleNameMapper( { "@bitwarden/common/spec": ["libs/common/spec"], ...(compilerOptions?.paths ?? {}) }, { diff --git a/package-lock.json b/package-lock.json index 07e98938cd2..1fce6e458e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,8 +23,8 @@ "@angular/platform-browser": "19.2.14", "@angular/platform-browser-dynamic": "19.2.14", "@angular/router": "19.2.14", - "@bitwarden/commercial-sdk-internal": "0.2.0-main.369", - "@bitwarden/sdk-internal": "0.2.0-main.369", + "@bitwarden/commercial-sdk-internal": "0.2.0-main.374", + "@bitwarden/sdk-internal": "0.2.0-main.374", "@electron/fuses": "1.8.0", "@emotion/css": "11.13.5", "@koa/multer": "4.0.0", @@ -4607,9 +4607,9 @@ "link": true }, "node_modules/@bitwarden/commercial-sdk-internal": { - "version": "0.2.0-main.369", - "resolved": "https://registry.npmjs.org/@bitwarden/commercial-sdk-internal/-/commercial-sdk-internal-0.2.0-main.369.tgz", - "integrity": "sha512-O+EaPQJQah9j3yWzgw+dwFk5iOxPXdKf1FDeykbt+cxygSYbWTR60RXenG1LysknOdy8fiTfHEaPD+LP1LxrdA==", + "version": "0.2.0-main.374", + "resolved": "https://registry.npmjs.org/@bitwarden/commercial-sdk-internal/-/commercial-sdk-internal-0.2.0-main.374.tgz", + "integrity": "sha512-OYNjEv9Z9Y1vCDWtlp7m49+Fu0WxCyJt+DDupF8T73JqWIl2SdY3ugLtLnCUnqause5VY7OAfa4eOxwn2ONKZg==", "license": "BITWARDEN SOFTWARE DEVELOPMENT KIT LICENSE AGREEMENT", "dependencies": { "type-fest": "^4.41.0" @@ -4712,9 +4712,9 @@ "link": true }, "node_modules/@bitwarden/sdk-internal": { - "version": "0.2.0-main.369", - "resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.369.tgz", - "integrity": "sha512-gyp4Wd1YbkANA0/RNxHfVk+DuiJqxItzk/YUyQ2HsLeP07xOljftmA0XspLQz59ovs7e1jHMCpH1r/XcyKiQSw==", + "version": "0.2.0-main.374", + "resolved": "https://registry.npmjs.org/@bitwarden/sdk-internal/-/sdk-internal-0.2.0-main.374.tgz", + "integrity": "sha512-P9td//6M22Eg8YcVOVtcvkD9wfdbnwNe7lZ1HGn74o3CTgDtNq0mE5x00rDeNZq0ctBaUDaqw6XS0jC/tehcag==", "license": "GPL-3.0", "dependencies": { "type-fest": "^4.41.0" diff --git a/package.json b/package.json index 21eb2b0c06d..250e4e4f43c 100644 --- a/package.json +++ b/package.json @@ -160,8 +160,8 @@ "@angular/platform-browser": "19.2.14", "@angular/platform-browser-dynamic": "19.2.14", "@angular/router": "19.2.14", - "@bitwarden/sdk-internal": "0.2.0-main.369", - "@bitwarden/commercial-sdk-internal": "0.2.0-main.369", + "@bitwarden/sdk-internal": "0.2.0-main.374", + "@bitwarden/commercial-sdk-internal": "0.2.0-main.374", "@electron/fuses": "1.8.0", "@emotion/css": "11.13.5", "@koa/multer": "4.0.0",