From bb30b592d787870adc4b4d3e5029d8dc3125f7e7 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Tue, 9 Sep 2025 18:33:41 +0300 Subject: Remove `atob` polyfill (#9000) * remove atob polyfill * remove base64-js as a dependency --- package.json | 1 - src/platform/polyfills.ts | 49 ----------------------------------------------- 2 files changed, 50 deletions(-) diff --git a/package.json b/package.json index aa613216d..9dac7f2d6 100644 --- a/package.json +++ b/package.json @@ -123,7 +123,6 @@ "array.prototype.findlast": "^1.2.3", "await-lock": "^2.2.2", "babel-plugin-transform-remove-console": "^6.9.4", - "base64-js": "^1.5.1", "bcp-47": "^2.1.0", "bcp-47-match": "^2.0.3", "date-fns": "^2.30.0", diff --git a/src/platform/polyfills.ts b/src/platform/polyfills.ts index bb1763006..aba06c59f 100644 --- a/src/platform/polyfills.ts +++ b/src/platform/polyfills.ts @@ -1,52 +1,3 @@ import 'react-native-url-polyfill/auto' import 'fast-text-encoding' export {} - -/** -https://github.com/MaxArt2501/base64-js -The MIT License (MIT) -Copyright (c) 2014 MaxArt2501 - */ - -const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' -// Regular expression to check formal correctness of base64 encoded strings -const b64re = - /^(?:[A-Za-z\d+\/]{4})*?(?:[A-Za-z\d+\/]{2}(?:==)?|[A-Za-z\d+\/]{3}=?)?$/ - -globalThis.atob = (str: string): string => { - // atob can work with strings with whitespaces, even inside the encoded part, - // but only \t, \n, \f, \r and ' ', which can be stripped. - str = String(str).replace(/[\t\n\f\r ]+/g, '') - if (!b64re.test(str)) { - throw new TypeError( - "Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.", - ) - } - - // Adding the padding if missing, for simplicity - str += '=='.slice(2 - (str.length & 3)) - var bitmap, - result = '', - r1, - r2, - i = 0 - for (; i < str.length; ) { - bitmap = - (b64.indexOf(str.charAt(i++)) << 18) | - (b64.indexOf(str.charAt(i++)) << 12) | - ((r1 = b64.indexOf(str.charAt(i++))) << 6) | - (r2 = b64.indexOf(str.charAt(i++))) - - result += - r1 === 64 - ? String.fromCharCode((bitmap >> 16) & 255) - : r2 === 64 - ? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255) - : String.fromCharCode( - (bitmap >> 16) & 255, - (bitmap >> 8) & 255, - bitmap & 255, - ) - } - return result -} -- cgit 1.4.1