UNPKG

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.17 kB
import{a as f,b as h,c as b,d,e as l}from"./chunk-KSXH2JGP.js";import{a as y}from"./chunk-JF3YMNGM.js";var U=new TextEncoder,m=new TextDecoder,x=class extends TransformStream{constructor(u={}){let i=f[u.alphabet??"base64"],c=function(){return u.output==="bytes"?t=>t:t=>m.decode(t)}(),s=new Uint8Array(2),e=0;super({transform(t,a){let[r,n]=y(t,b(e+t.length));e&&(n-=e,r.set(s.subarray(0,e),n)),e=(r.length-n)%3,e&&s.set(r.subarray(-e));let p=d(r.subarray(0,-e||void 0),n,0,i,61);a.enqueue(c(r.subarray(0,p)))},flush(t){if(e){let[a,r]=y(s.subarray(0,e),b(e)),n=d(a,r,0,i,61);if(u.alphabet==="base64url"){let p=a.indexOf(61,n-2);p>0&&(n=p)}t.enqueue(c(a.subarray(0,n)))}}})}},A=class extends TransformStream{constructor(u={}){let i=h[u.alphabet??"base64"],c=function(){return u.input==="bytes"?t=>t:t=>U.encode(t)}(),s=new Uint8Array(3),e=0;super({transform(t,a){let r=c(t);e&&(r=y(r,e+r.length)[0],r.set(s.subarray(0,e))),e=r.length%4,e&&s.set(r.subarray(-e));let n=l(r.subarray(0,-e||void 0),0,0,i,61);a.enqueue(r.subarray(0,n))},flush(t){if(e){let a=l(s.subarray(0,e),0,0,i,61);t.enqueue(s.subarray(0,a))}}})}};export{A as Base64DecoderStream,x as Base64EncoderStream};