byte-encodings
Version:
Utilities for encoding and decoding common formats like hex, base64, and varint. Ported from Deno's @std/encoding.
2 lines (1 loc) • 1.82 kB
JavaScript
var a=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var m=Object.prototype.hasOwnProperty;var l=(e,n)=>{for(var t in n)a(e,t,{get:n[t],enumerable:!0})},h=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of u(n))!m.call(e,o)&&o!==t&&a(e,o,{get:()=>n[o],enumerable:!(r=x(n,o))||r.enumerable});return e};var _=e=>h(a({},"__esModule",{value:!0}),e);var b={};l(b,{decodeHex:()=>E,encodeHex:()=>g});module.exports=_(b);var w=new TextEncoder().encode("0123456789abcdef"),y=new Uint8Array(128).fill(16);w.forEach((e,n)=>y[e]=n);new TextEncoder().encode("ABCDEF").forEach((e,n)=>y[e]=n+10);function d(e){return e*2}function p(e,n,t,r){for(;n<e.length;++n){let o=e[n];e[t++]=r[o>>4],e[t++]=r[o&15]}return t}function s(e,n,t,r){if((e.length-t)%2===1)throw new RangeError(`Cannot decode input as hex: Length (${e.length-t}) must be divisible by 2`);for(n+=1;n<e.length;n+=2)e[t++]=c(e[n-1],r)<<4|c(e[n],r);return t}function c(e,n){let t=n[e]??16;if(t===16)throw new TypeError(`Cannot decode input as hex: Invalid character (${String.fromCharCode(e)})`);return t}function A(e,n){let t=e.length;if(e.byteOffset){let r=new Uint8Array(e.buffer);r.set(e),e=r.subarray(0,t)}return e=new Uint8Array(e.buffer.transfer(n)),e.set(e.subarray(0,t),n-t),[e,n-t]}var U=new TextEncoder().encode("0123456789abcdef"),i=new Uint8Array(128).fill(16);U.forEach((e,n)=>i[e]=n);new TextEncoder().encode("ABCDEF").forEach((e,n)=>i[e]=n+10);function g(e){typeof e=="string"?e=new TextEncoder().encode(e):e instanceof ArrayBuffer?e=new Uint8Array(e).slice():e=e.slice();let[n,t]=A(e,d(e.length));return p(n,t,0,U),new TextDecoder().decode(n)}function E(e){let n=new TextEncoder().encode(e);return new Uint8Array(n.buffer.transfer(s(n,0,0,i)))}0&&(module.exports={decodeHex,encodeHex});