From 619e41e3a2594f9d89bdaab72e74a1fa2ce94d5d Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Wed, 4 Dec 2024 11:46:48 +0000 Subject: [PATCH] Remove usages of Buffer Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .eslintrc.js | 7 +++++++ src/@types/png-chunks-extract.d.ts | 2 +- src/components/views/auth/LoginWithQR.tsx | 4 +--- src/stores/ThreepidInviteStore.ts | 2 +- src/utils/WidgetUtils.ts | 2 +- src/utils/exportUtils/HtmlExport.tsx | 2 +- 6 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index f168a87a066..2b0dd2c186b 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -42,6 +42,10 @@ module.exports = { name: "setImmediate", message: "Use setTimeout instead.", }, + { + name: "Buffer", + message: "Buffer is not available in the web.", + }, ], "import/no-duplicates": ["error"], @@ -255,6 +259,9 @@ module.exports = { additionalTestBlockFunctions: ["beforeAll", "beforeEach", "oldBackendOnly"], }, ], + + // These are fine in tests + "no-restricted-globals": "off", }, }, { diff --git a/src/@types/png-chunks-extract.d.ts b/src/@types/png-chunks-extract.d.ts index 38ea84c32af..c767b40655b 100644 --- a/src/@types/png-chunks-extract.d.ts +++ b/src/@types/png-chunks-extract.d.ts @@ -12,7 +12,7 @@ declare module "png-chunks-extract" { data: Uint8Array; } - function extractPngChunks(data: Uint8Array | Buffer): IChunk[]; + function extractPngChunks(data: Uint8Array): IChunk[]; export default extractPngChunks; } diff --git a/src/components/views/auth/LoginWithQR.tsx b/src/components/views/auth/LoginWithQR.tsx index e18b0e24abf..76475e1dd35 100644 --- a/src/components/views/auth/LoginWithQR.tsx +++ b/src/components/views/auth/LoginWithQR.tsx @@ -37,7 +37,6 @@ interface IState { userCode?: string; checkCode?: string; failureReason?: FailureReason; - lastScannedCode?: Buffer; } export enum LoginWithQRFailureReason { @@ -154,7 +153,7 @@ export default class LoginWithQR extends React.Component { throw new Error("Rendezvous not found"); } - if (!this.state.lastScannedCode && this.state.rendezvous?.checkCode !== checkCode) { + if (this.state.rendezvous?.checkCode !== checkCode) { this.setState({ failureReason: LoginWithQRFailureReason.CheckCodeMismatch }); return; } @@ -201,7 +200,6 @@ export default class LoginWithQR extends React.Component { failureReason: undefined, userCode: undefined, checkCode: undefined, - lastScannedCode: undefined, mediaPermissionError: false, }); } diff --git a/src/stores/ThreepidInviteStore.ts b/src/stores/ThreepidInviteStore.ts index 23c6d450d60..bdb1c8faa26 100644 --- a/src/stores/ThreepidInviteStore.ts +++ b/src/stores/ThreepidInviteStore.ts @@ -99,7 +99,7 @@ export default class ThreepidInviteStore extends EventEmitter { private generateIdOf(persisted: IPersistedThreepidInvite): string { // Use a consistent "hash" to form an ID. - return base32.stringify(Buffer.from(JSON.stringify(persisted))); + return base32.stringify(new TextEncoder().encode(JSON.stringify(persisted))); } private translateInvite(persisted: IPersistedThreepidInvite): IThreepidInvite { diff --git a/src/utils/WidgetUtils.ts b/src/utils/WidgetUtils.ts index de158efceff..ad2ed63ba16 100644 --- a/src/utils/WidgetUtils.ts +++ b/src/utils/WidgetUtils.ts @@ -445,7 +445,7 @@ export default class WidgetUtils { // For compatibility with Jitsi, use base32 without padding. // More details here: // https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification - confId = base32.stringify(Buffer.from(roomId), { pad: false }); + confId = base32.stringify(new TextEncoder().encode(roomId), { pad: false }); } else { // Create a random conference ID confId = `Jitsi${randomUppercaseString(1)}${randomLowercaseString(23)}`; diff --git a/src/utils/exportUtils/HtmlExport.tsx b/src/utils/exportUtils/HtmlExport.tsx index 9a6bb93bba8..e5b4667fc22 100644 --- a/src/utils/exportUtils/HtmlExport.tsx +++ b/src/utils/exportUtils/HtmlExport.tsx @@ -431,7 +431,7 @@ export default class HTMLExporter extends Exporter { !this.needsDateSeparator(event, prevEvent) && shouldFormContinuation(prevEvent, event, this.room.client, false); const body = await this.createMessageBody(event, shouldBeJoined); - this.totalSize += Buffer.byteLength(body); + this.totalSize += new TextEncoder().encode(body).byteLength; content += body; prevEvent = event; }