@ddunigma/node
Version:
1 lines • 3.13 kB
JavaScript
import {h,c,e,d,f}from'./chunk-TCRCZHZC.js';import {r,l}from'./chunk-IZK7KCU7.js';import {a}from'./chunk-EI7MMDWY.js';var I=64*1024*1024,O=64*1024*1024;function _(r$1,e$1){h(e$1,"stream");let n=r$1.getCharSetInfo(),u=e$1?.compress??n.defaultCompress,l$1=n.hasEncryptionKey,S=e$1?.checksum??n.defaultChecksum,A=u?e$1?.compressionAlgorithm??n.defaultCompressionAlgorithm:void 0,t=n.paddingChar,p=c(e$1?.maxBufferedBytes,I,true,"maxBufferedBytes"),f=T(n,{compressed:u,encrypted:l$1,checksum:S}),m=false,d=[],i=0,a=null;return new TransformStream({async transform(s,o){if(f){if(!m){let k=e(t,{compressionAlgorithm:void 0,encrypted:false});o.enqueue(k),m=true;}let c;a&&a.length>0?(c=new Uint8Array(a.length+s.length),c.set(a,0),c.set(s,a.length)):c=s;let C=n.bitLength,g=q(C,8)/8,h=Math.floor(c.length/g)*g;if(h>0){let k=c.subarray(0,h),x=await r$1.encodeAsync(k,{compress:false,encrypt:false,checksum:false,chunkSize:0,chunkSeparator:void 0,omitFooter:true});o.enqueue(x);}h<c.length?a=c.slice(h):a=null;}else {if(i+s.length>p){o.error(new l(`[WebStreams encode] Buffered input exceeds limit. Limit: ${p} bytes`,"stream"));return}d.push(s),i+=s.length;}},async flush(s){try{if(f){if(!m){let o=e(t,{compressionAlgorithm:void 0,encrypted:!1});s.enqueue(o);}if(a&&a.length>0){let o=await r$1.encodeAsync(a,{compress:!1,encrypt:!1,checksum:!1,chunkSize:0,chunkSeparator:void 0});s.enqueue(o);}a=null;}else {let o=e(t,{compressionAlgorithm:A,encrypted:l$1});s.enqueue(o);let c=new Uint8Array(i),C=0;for(let h of d)c.set(h,C),C+=h.length;let g=await r$1.encodeAsync(c,{...e$1,compress:u,encrypt:l$1,checksum:S,chunkSize:0,chunkSeparator:void 0});g.length>0&&s.enqueue(g),d=[],i=0;}}catch(o){s.error(r(o,"stream"));}}})}a(_,"createReadableEncodeStream");function z(r$1,e){h(e,"stream");let n=r$1.getCharSetInfo(),u=n.paddingChar,l$1=d(u),S=e?.checksum??n.defaultChecksum,A=c(e?.maxBufferedChars,O,true,"maxBufferedChars"),t="",p=false,f$1=null;return new TransformStream({async transform(m,d){try{if(t+=m,t.length>A)throw new l(`[WebStreams decode] Buffered encoded input exceeds limit. Limit: ${A} characters`,"stream");if(!p&&t.length>=l$1){if(!t.startsWith(u))throw new Error("[WebStreams decode] Invalid or missing stream header");if(f$1=f(t,u),f$1===null)throw new Error("[WebStreams decode] Invalid or missing stream header");if(f$1.encrypted&&!n.hasEncryptionKey)throw new Error("[WebStreams decode] Encrypted stream requires an encryptionKey");p=!0,t=t.slice(l$1);}}catch(i){d.error(r(i,"stream"));}},async flush(m){try{if(!p){if(t.length===0)return;throw new Error("[WebStreams decode] Incomplete stream header")}let d=f$1.compressionAlgorithm,i=await r$1.decodeToUint8ArrayAsync(t,{...e,compress:e?.compress,compressionAlgorithm:d,checksum:S,chunkSize:void 0,chunkSeparator:void 0});i.length>0&&m.enqueue(i),t="";}catch(d){m.error(r(d,"stream"));}}})}a(z,"createReadableDecodeStream");function T(r,e){return r.usePowerOfTwo&&!e.compressed&&!e.encrypted&&!e.checksum}a(T,"canUseChunkStreaming");function q(r,e){return r*e/F(r,e)}a(q,"lcm");function F(r,e){for(;e!==0;){let n=e;e=r%e,r=n;}return r}a(F,"gcd");export{_ as a,z as b};