UNPKG

@azure/cosmos

Version:
1 lines 3.56 kB
{"version":3,"file":"atob-browser.mjs","sourceRoot":"","sources":["../../../src/utils/atob-browser.mts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,IAAI,QAAkC,CAAC;AAEvC,mDAAmD;AACnD,MAAM,GAAG,GAAG,mEAAmE,CAAC;AAChF,2EAA2E;AAC3E,MAAM,KAAK,GAAG,sEAAsE,CAAC;AAErF,IAAI,UAAU,KAAK,OAAO,IAAI,EAAE,CAAC;IAC/B,uCAAuC;IACvC,QAAQ,GAAG,CAAC,GAAW,EAAU,EAAE;QACjC,6EAA6E;QAC7E,0DAA0D;QAC1D,IAAI,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACrB,MAAM,IAAI,SAAS,CACjB,0FAA0F,CAC3F,CAAC;QACJ,CAAC;QAED,gDAAgD;QAChD,QAAQ,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,MAAM,CAAC;QACX,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,OAAO,CAAC,GAAG,QAAQ,CAAC,MAAM,GAAI,CAAC;YAC7B,MAAM;gBACJ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzC,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBACzC,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAC/C,CAAC,EAAE,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAE3C,MAAM;gBACJ,EAAE,KAAK,EAAE;oBACP,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC;oBAC3C,CAAC,CAAC,EAAE,KAAK,EAAE;wBACT,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC;wBAChE,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;QACvF,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;AACJ,CAAC;KAAM,CAAC;IACN,QAAQ,GAAG,IAAI,CAAC;AAClB,CAAC;AAED,eAAe,QAAQ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT License.\n\nlet safeatob: (data: string) => string;\n\n// base64 character set, plus padding character (=)\nconst b64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n// Regular expression to check formal correctness of base64 encoded strings\nconst b64re = /^(?:[A-Za-z\\d+/]{4})*?(?:[A-Za-z\\d+/]{2}(?:==)?|[A-Za-z\\d+/]{3}=?)?$/;\n\nif (\"function\" !== typeof atob) {\n // atob implementation for React Native\n safeatob = (str: string): string => {\n // atob can work with strings with whitespaces, even inside the encoded part,\n // but only \\t, \\n, \\f, \\r and ' ', which can be stripped.\n let fixedStr = String(str).replace(/[\\t\\n\\f\\r ]+/g, \"\");\n if (!b64re.test(str)) {\n throw new TypeError(\n \"Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.\",\n );\n }\n\n // Adding the padding if missing, for simplicity\n fixedStr += \"==\".slice(2 - (fixedStr.length & 3));\n let bitmap;\n let result = \"\";\n let r1;\n let r2;\n let i = 0;\n for (; i < fixedStr.length; ) {\n bitmap =\n (b64.indexOf(fixedStr.charAt(i++)) << 18) |\n (b64.indexOf(fixedStr.charAt(i++)) << 12) |\n ((r1 = b64.indexOf(fixedStr.charAt(i++))) << 6) |\n (r2 = b64.indexOf(fixedStr.charAt(i++)));\n\n result +=\n r1 === 64\n ? String.fromCharCode((bitmap >> 16) & 255)\n : r2 === 64\n ? String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255)\n : String.fromCharCode((bitmap >> 16) & 255, (bitmap >> 8) & 255, bitmap & 255);\n }\n return result;\n };\n} else {\n safeatob = atob;\n}\n\nexport default safeatob;\n"]}