Buckets:
ktongue/docker_container / .cache /opencode /node_modules /jose /dist /browser /runtime /base64url.js
| import { encoder, decoder } from '../lib/buffer_utils.js'; | |
| export const encodeBase64 = (input) => { | |
| let unencoded = input; | |
| if (typeof unencoded === 'string') { | |
| unencoded = encoder.encode(unencoded); | |
| } | |
| const CHUNK_SIZE = 0x8000; | |
| const arr = []; | |
| for (let i = 0; i < unencoded.length; i += CHUNK_SIZE) { | |
| arr.push(String.fromCharCode.apply(null, unencoded.subarray(i, i + CHUNK_SIZE))); | |
| } | |
| return btoa(arr.join('')); | |
| }; | |
| export const encode = (input) => { | |
| return encodeBase64(input).replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_'); | |
| }; | |
| export const decodeBase64 = (encoded) => { | |
| const binary = atob(encoded); | |
| const bytes = new Uint8Array(binary.length); | |
| for (let i = 0; i < binary.length; i++) { | |
| bytes[i] = binary.charCodeAt(i); | |
| } | |
| return bytes; | |
| }; | |
| export const decode = (input) => { | |
| let encoded = input; | |
| if (encoded instanceof Uint8Array) { | |
| encoded = decoder.decode(encoded); | |
| } | |
| encoded = encoded.replace(/-/g, '+').replace(/_/g, '/').replace(/\s/g, ''); | |
| try { | |
| return decodeBase64(encoded); | |
| } | |
| catch { | |
| throw new TypeError('The input to be decoded is not correctly encoded.'); | |
| } | |
| }; | |
Xet Storage Details
- Size:
- 1.22 kB
- Xet hash:
- d04ee8d87ff2aebdf6f2f6d0b1881db1a71f2979a780d961122a1fc414bbf941
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.