@ddunigma/node 3.0.3 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/browser.js CHANGED
@@ -1,7 +1,2 @@
1
- import {pbkdf2,pbkdf2Sync,createHash,randomBytes,createCipheriv,createDecipheriv}from'crypto';import {deflateRaw,inflateRaw,brotliCompress,brotliDecompress,deflateRawSync,inflateRawSync,constants,brotliCompressSync,brotliDecompressSync}from'zlib';import {promisify}from'util';var Ne=Object.defineProperty;var Ke=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')});var O=(n,e)=>()=>(n&&(e=n(n=0)),e);var N=(n,e)=>{for(var t in e)Ne(n,t,{get:e[t],enumerable:true});};var xe={};N(xe,{NodeAdapter:()=>Q});function ke(n){return (n??"SHA-256").toLowerCase().replace("-","")}function ve(n){return n===void 0||!Number.isFinite(n)||n<=0?Ue:Math.max(Bt,Math.floor(n))}function Le(n){return n===void 0?Buffer.from(Dt,"utf-8"):typeof n=="string"?Buffer.from(n,"utf-8"):Buffer.from(n.buffer,n.byteOffset,n.byteLength)}var At,De,Ct,Pe,Et,Ue,Bt,Dt,Q,Te=O(()=>{At=promisify(deflateRaw),De=promisify(inflateRaw),Ct=promisify(brotliCompress),Pe=promisify(brotliDecompress),Et=promisify(pbkdf2),Ue=21e4,Bt=1e4,Dt="ddunigma:pbkdf2:v1";Q=class{supportsSyncCrypto=true;supportsSyncCompression=true;supportsBrotli=true;runtime="node";async deriveKey(e,t){if(t?.algorithm==="pbkdf2"){let r=await Et(e,Le(t.salt),ve(t.iterations),32,ke(t.hash));return new Uint8Array(r)}return this.deriveKeySync(e,t)}deriveKeySync(e,t){return t?.algorithm==="pbkdf2"?new Uint8Array(pbkdf2Sync(e,Le(t.salt),ve(t.iterations),32,ke(t.hash))):new Uint8Array(createHash("sha256").update(e).digest())}async encrypt(e,t){return this.encryptSync(e,t)}encryptSync(e,t){let r=randomBytes(12),o=createCipheriv("aes-256-gcm",t,r),s=Buffer.concat([o.update(e),o.final()]),i=o.getAuthTag(),a=new Uint8Array(28+s.length);return a.set(r,0),a.set(i,12),a.set(s,28),a}async decrypt(e,t){return this.decryptSync(e,t)}decryptSync(e,t){if(e.length<28)throw new Error("[Ddu64 decrypt] Invalid encrypted data: too short");let r=e.subarray(0,12),o=e.subarray(12,28),s=e.subarray(28),i=createDecipheriv("aes-256-gcm",t,r);i.setAuthTag(o);let a=Buffer.concat([i.update(s),i.final()]);return new Uint8Array(a)}randomBytes(e){return new Uint8Array(randomBytes(e))}async deflate(e,t){let r={};t!==void 0&&(r.level=t);let o=await At(Buffer.from(e),r);return new Uint8Array(o)}deflateSync(e,t){let r={};return t!==void 0&&(r.level=t),new Uint8Array(deflateRawSync(Buffer.from(e),r))}async inflate(e,t){if(t===void 0||t===Number.POSITIVE_INFINITY){let o=await De(Buffer.from(e));return new Uint8Array(o)}let r={maxOutputLength:t};try{let o=await De(Buffer.from(e),r);return new Uint8Array(o)}catch(o){let s=o,i=String(s?.message??"").toLowerCase();throw String(s?.code??"")==="ERR_BUFFER_TOO_LARGE"||i.includes("output length")||i.includes("buffer too large")?new Error(`[Ddu64 inflate] Decompressed data exceeds limit. Limit: ${t} bytes`,{cause:o}):o}}inflateSync(e,t){if(t===void 0||t===Number.POSITIVE_INFINITY)return new Uint8Array(inflateRawSync(Buffer.from(e)));try{return new Uint8Array(inflateRawSync(Buffer.from(e),{maxOutputLength:t}))}catch(r){let o=r,s=String(o?.message??"").toLowerCase();throw String(o?.code??"")==="ERR_BUFFER_TOO_LARGE"||s.includes("output length")||s.includes("buffer too large")?new Error(`[Ddu64 inflate] Decompressed data exceeds limit. Limit: ${t} bytes`,{cause:r}):r}}async brotliCompress(e,t){let r={};t!==void 0&&(r.params={[constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,t))});let o=await Ct(Buffer.from(e),r);return new Uint8Array(o)}brotliCompressSync(e,t){let r={};return t!==void 0&&(r.params={[constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,t))}),new Uint8Array(brotliCompressSync(Buffer.from(e),r))}async brotliDecompress(e,t){if(t===void 0||t===Number.POSITIVE_INFINITY){let r=await Pe(Buffer.from(e));return new Uint8Array(r)}try{let r=await Pe(Buffer.from(e),{maxOutputLength:t});return new Uint8Array(r)}catch(r){let o=r,s=String(o?.message??"").toLowerCase();throw String(o?.code??"")==="ERR_BUFFER_TOO_LARGE"||s.includes("output length")||s.includes("buffer too large")||s.includes("cannot create a buffer larger")?new Error(`[Ddu64 brotli] Decompressed data exceeds limit. Limit: ${t} bytes`,{cause:r}):r}}brotliDecompressSync(e,t){if(t===void 0||t===Number.POSITIVE_INFINITY)return new Uint8Array(brotliDecompressSync(Buffer.from(e)));try{return new Uint8Array(brotliDecompressSync(Buffer.from(e),{maxOutputLength:t}))}catch(r){let o=r,s=String(o?.message??"").toLowerCase();throw String(o?.code??"")==="ERR_BUFFER_TOO_LARGE"||s.includes("output length")||s.includes("buffer too large")||s.includes("cannot create a buffer larger")?new Error(`[Ddu64 brotli] Decompressed data exceeds limit. Limit: ${t} bytes`,{cause:r}):r}}};});var Re={};N(Re,{BrowserAdapter:()=>I});function Ut(n){return n===void 0||!Number.isFinite(n)||n<=0?21e4:Math.max(1e4,Math.floor(n))}function kt(n){return n===void 0?new TextEncoder().encode(Pt):typeof n=="string"?new TextEncoder().encode(n):n}var Pt,I,J=O(()=>{Pt="ddunigma:pbkdf2:v1";I=class{supportsSyncCrypto=false;supportsSyncCompression=false;supportsBrotli=false;runtime="browser";async deriveKey(e,t){let o=new TextEncoder().encode(e);if(t?.algorithm==="pbkdf2"){let i=await crypto.subtle.importKey("raw",o,"PBKDF2",false,["deriveBits"]),a=await crypto.subtle.deriveBits({name:"PBKDF2",salt:kt(t.salt),iterations:Ut(t.iterations),hash:t.hash??"SHA-256"},i,256);return new Uint8Array(a)}let s=await crypto.subtle.digest("SHA-256",o);return new Uint8Array(s)}async encrypt(e,t){let r=crypto.getRandomValues(new Uint8Array(12)),o=await crypto.subtle.importKey("raw",t,{name:"AES-GCM"},false,["encrypt"]),s=await crypto.subtle.encrypt({name:"AES-GCM",iv:r,tagLength:128},o,e),i=new Uint8Array(s),a=i.slice(0,i.length-16),c=i.slice(i.length-16),d=new Uint8Array(28+a.length);return d.set(r,0),d.set(c,12),d.set(a,28),d}async decrypt(e,t){if(e.length<28)throw new Error("[Ddu64 decrypt] Encrypted data is invalid. Payload must be at least 28 bytes (12 IV + 16 authTag + ciphertext).");let r=e.slice(0,12),o=e.slice(12,28),s=e.slice(28),i=new Uint8Array(s.length+16);i.set(s,0),i.set(o,s.length);let a=await crypto.subtle.importKey("raw",t,{name:"AES-GCM"},false,["decrypt"]);try{let c=await crypto.subtle.decrypt({name:"AES-GCM",iv:r,tagLength:128},a,i);return new Uint8Array(c)}catch{throw new Error("[Ddu64 decrypt] Decryption failed: data tampering or incorrect key.")}}randomBytes(e){return crypto.getRandomValues(new Uint8Array(e))}async deflate(e,t){if(typeof CompressionStream>"u")throw new Error("[Ddu64 compress] Deflate compression is unsupported in the current runtime. CompressionStream API is not available.");let r=this.getDeflateFormat(),o=new CompressionStream(r),s=o.writable.getWriter(),i=o.readable.getReader();s.write(e),s.close();let a=[],c=0;for(;;){let{done:h,value:f}=await i.read();if(h)break;a.push(f),c+=f.length;}let d=new Uint8Array(c),l=0;for(let h of a)d.set(h,l),l+=h.length;return d}async inflate(e,t){if(typeof DecompressionStream>"u")throw new Error("[Ddu64 decompress] Deflate decompression is unsupported in the current runtime. DecompressionStream API is not available.");let r=this.getDeflateFormat(),o=new DecompressionStream(r),s=o.writable.getWriter(),i=o.readable.getReader();s.write(e),s.close();let a=[],c=0;for(;;){let{done:h,value:f}=await i.read();if(h)break;if(c+=f.length,t!==void 0&&c>t)throw new Error(`[Ddu64 decompress] Decompressed size exceeds limit. Estimated ${c}+ bytes exceeds maximum of ${t} bytes.`);a.push(f);}let d=new Uint8Array(c),l=0;for(let h of a)d.set(h,l),l+=h.length;return d}getDeflateFormat(){return "deflate-raw"}};});var Ie={};N(Ie,{detectRuntime:()=>ee,getAdapter:()=>_e});function ee(){if(typeof globalThis.process<"u"&&globalThis.process?.versions?.node)return "node";if(globalThis.Deno?.version?.deno)return "deno";if(globalThis.Bun?.version)return "bun";if(typeof globalThis.crypto<"u"&&globalThis.crypto?.subtle)return "browser";throw new Error("[ddunigma] No suitable crypto provider found. Detected runtime lacks both Node.js crypto module and Web Crypto API (SubtleCrypto).")}async function _e(){switch(ee()){case "node":{let{NodeAdapter:e}=await Promise.resolve().then(()=>(Te(),xe));return new e}case "deno":case "bun":case "browser":case "edge":{let{BrowserAdapter:e}=await Promise.resolve().then(()=>(J(),Re));return new e}default:throw new Error("[ddunigma] No suitable crypto provider found. Detected runtime lacks both Node.js crypto module and Web Crypto API (SubtleCrypto).")}}var te=O(()=>{});function oe(n,e){let{bitLength:t,usePowerOfTwo:r,charsetSize:o}=e,s=n.length;if(s===0)return {indices:[],paddingBits:0};let i=s*8,a=Math.ceil(i/t),c=r?a:a*2,d=new Array(c),l=0,h=0,f=0;if(r){let m=(1<<t)-1;for(let g=0;g<s;g++)for(h=h<<8|n[g],f+=8;f>=t;)f-=t,d[l++]=h>>f&m,h&=(1<<f)-1;}else for(let m=0;m<s;m++)for(h=h<<8|n[m],f+=8;f>=t;){f-=t;let g=h>>f,p=g/o|0;d[l++]=p,d[l++]=g-p*o,h&=(1<<f)-1;}let u=0;if(f>0){u=t-f;let m=h<<u;if(r)d[l++]=m;else {let g=m/o|0;d[l++]=g,d[l++]=m-g*o;}}return d.length=l,{indices:d,paddingBits:u}}function se(n,e,t){let{bitLength:r,usePowerOfTwo:o,charsetSize:s}=t,i=n.length;if(i===0)return new Uint8Array(0);let a=o?1:2,c=Math.ceil(i/a),d=r<31?1<<r:Math.pow(2,r),l=Math.ceil((c*r-e)/8),h=new Uint8Array(l+1),f=0,u=0,m=0;if(o)for(let g=0;g<i;g+=a){let p=n[g];if(p<0||p>=s)throw new Error(`[BitPack decode] Invalid index ${p} at position ${g}`);for(u=u<<r|p,m+=r,g+a>=i&&e>0&&(u>>=e,m-=e);m>=8;)m-=8,h[f++]=u>>m&255,u&=(1<<m)-1;}else for(let g=0;g<i;g+=a){let p=n[g],y=n[g+1];if(p<0||p>=s)throw new Error(`[BitPack decode] Invalid index ${p} at position ${g}`);if(y===void 0||y<0||y>=s)throw new Error(`[BitPack decode] Invalid index ${y} at position ${g+1}`);let b=p*s+y;if(b>=d)throw new Error(`[BitPack decode] Value ${b} exceeds range at position ${g}`);for(u=u<<r|b,m+=r,g+a>=i&&e>0&&(u>>=e,m-=e);m>=8;)m-=8,h[f++]=u>>m&255,u&=(1<<m)-1;}return h.subarray(0,f)}function We(n,e){return n<=1?0:e?Math.floor(Math.log2(n)):Math.ceil(Math.log2(n))}function He(n){return n>0&&(n&n-1)===0}function ie(n){let e=He(n);return {bitLength:We(n,e),usePowerOfTwo:e,charsetSize:n}}var A="DDS1",B="ELYSIA",D="GRISEO";function K(n,e,t){let r=n.length,o=e.length,s={cleanedInput:n,paddingBits:0,isEncrypted:false,pipelineVersion:2};if(r<o)return s;let a=Math.max(0,t-1).toString().length;for(let c=Math.min(a,r);c>=1;c--){let d=r-c,l=true;for(let b=d;b<r;b++){let k=n.charCodeAt(b);if(k<48||k>57){l=false;break}}if(!l)continue;let h=n.substring(d),f=parseInt(h,10);if(Number.isNaN(f)||f<0||f>=t||h!==f.toString())continue;let u=d,m=false,g,p=2;u>=2&&n.substring(u-2,u)==="V3"&&(p=3,u-=2),u>=3&&n.substring(u-3,u)==="ENC"&&(m=true,u-=3),u>=B.length&&n.substring(u-B.length,u)===B?(g="deflate",u-=B.length):u>=D.length&&n.substring(u-D.length,u)===D&&(g="brotli",u-=D.length);let y=u-o;if(y>=0&&n.substring(y,u)===e)return {cleanedInput:n.substring(0,y),paddingBits:f,compressionAlgorithm:g,isEncrypted:m,pipelineVersion:p}}if(n.endsWith(e)){let c=0,d=r;for(;d>=o&&n.substring(d-o,d)===e;)c++,d-=o;if(c>0){let l=c*2;if(l<t)return {cleanedInput:n.substring(0,d),paddingBits:l,isEncrypted:false,pipelineVersion:2}}}return s}function W(n){let e=n.lastIndexOf("CHK");if(e===-1)return {data:n,checksum:null};let t=n.slice(e+3);return t.length!==8||!/^[0-9a-f]+$/i.test(t)?{data:n,checksum:null}:{data:n.slice(0,e),checksum:t.toLowerCase()}}function H(n){return n.length*2+A.length+2}function v(n,e){let t=e.compressionAlgorithm==="brotli"?"B":e.compressionAlgorithm==="deflate"?"D":"N",r=e.encrypted?"1":"0";return `${n}${A}${t}${r}${n}`}function ae(n,e){let t=H(e);if(n.length<t||!n.startsWith(e))return null;let r=e.length;if(n.slice(r,r+A.length)!==A)throw new Error("[wireFormat] Invalid stream header magic");let s=n[r+A.length],i=n[r+A.length+1];if(n.slice(t-e.length,t)!==e)throw new Error("[wireFormat] Invalid stream header terminator");let c=s==="B"?"brotli":s==="D"?"deflate":s==="N"?void 0:null;if(c===null)throw new Error("[wireFormat] Invalid stream header compression flag");if(i!=="0"&&i!=="1")throw new Error("[wireFormat] Invalid stream header encryption flag");return {compressionAlgorithm:c,encrypted:i==="1"}}function ce(n){let{paddingBits:e,compressionAlgorithm:t,isEncrypted:r,paddingChar:o,useRepeatPadding:s,pipelineVersion:i=2}=n;if(e===0&&!t&&!r&&i===2)return "";if(s&&!t&&!r&&i===2&&e>0&&e%2===0){let c=e>>1;return o.repeat(c)}return o+(t==="deflate"?B:t==="brotli"?D:"")+(r?"ENC":"")+(i===3?"V3":"")+e.toString()}var ze=(()=>{let n=new Uint32Array(256);for(let e=0;e<256;e++){let t=e;for(let r=0;r<8;r++)t=t>>>1^(t&1?3988292384:0);n[e]=t;}return n})();function P(n){let e=4294967295;for(let t=0;t<n.length;t++)e=e>>>8^ze[(e^n[t])&255];return ((e^4294967295)>>>0).toString(16).padStart(8,"0")}function de(n){return n.length===0?n:n.replaceAll("+","-").replaceAll("/","_").replaceAll("=",".")}function z(n){return n.length===0?n:n.replaceAll("-","+").replaceAll("_","/").replaceAll(".","=")}function le(n,e,t){if(e<=0||n.length<=e)return n;let r=Math.ceil(n.length/e),o=new Array(r*2-1),s=0;for(let i=0;i<n.length;i+=e)o[s++]=n.slice(i,i+e),i+e<n.length&&(o[s++]=t);return o.join("")}function F(n,e){if(n.length===0)return n;let t=n.replace(/[\r\n]/g,""),r=e&&e!==`
2
- `&&e!==`\r
3
- `&&e!=="\r"?e:"";return r.length>0&&t.includes(r)&&(t=t.replaceAll(r,"")),t}var Fe={"":0,\u3131:1,\u3132:2,\u3133:3,\u3134:4,\u3135:5,\u3136:6,\u3137:7,\u3139:8,\u313A:9,\u313B:10,\u313C:11,\u313D:12,\u313E:13,\u313F:14,\u3140:15,\u3141:16,\u3142:17,\u3144:18,\u3145:19,\u3146:20,\u3147:21,\u3148:22,\u314A:23,\u314B:24,\u314C:25,\u314D:26,\u314E:27};function $e(n,e){let t=n.charCodeAt(0);if(t<44032||t>55203)return n;let r=t-(t-44032)%28,o=Fe[e]??0;return String.fromCharCode(r+o)}function L(n,e){let t=new Array(n.length*e.length),r=0;for(let o of n)for(let s of e)t[r++]=$e(o,s);return t}function x(n,e){let r=n===void 0||!Number.isFinite(n)?6:Math.floor(n);return Math.min(e==="brotli"?11:9,Math.max(0,r))}var qe=new TextEncoder,Ye=new TextDecoder;function T(n){return qe.encode(n)}function $(n){return Ye.decode(n)}var q=(r=>(r.DDU="ddu",r.DDU_V1="ddu_v1",r.ONECHARSET="oneCharSet",r))(q||{}),Y={dduSetSymbol:"ddu",usePowerOfTwo:true,requiredLength:64,bitLength:6};var Ve={symbol:"ddu",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","\uB4C0","\uB31C","\uB3A8"],codaChar:["","\u3131","\u3132","\u3137","\u3148","\u3147","\u3145","\u3146"],maxRequiredLength:64,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true},je={symbol:"ddu_v1",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","!","?","."],maxRequiredLength:8,bitLength:3,paddingChar:"\uBB50",useRepeatPadding:true},Ge={symbol:"oneCharSet",charSet:["A","s","q","r","0","z","3","t","y","1","5","2","4","E","B","C","Q","F","R","T","U","W","V","X","Y","Z","b","a","c","d","D","G","L","H","I","-","J","K","M","O","N","f","e","h","g","P","i","S","k","l","m","u","j","v","n","o","p","9","w","6","7","8","x","_"],paddingChar:"=",maxRequiredLength:64,bitLength:6};function R(n){switch(n){case "ddu":return Ve;case "ddu_v1":return je;case "oneCharSet":return Ge;default:return}}var Ze=65536,Xe=["-","_","."];function ue(n,e,t,r){let o=(s,i,a,c,d)=>{if(Qe(a,t?.usePowerOfTwo)&&a>0){let f=Math.floor(Math.log2(a)),u=1<<f;return {charSet:s.length===u?s:s.slice(0,u),padding:i,requiredLength:u,bitLength:f,isPredefined:c,useRepeatPadding:d}}return {charSet:s.length===a?s:s.slice(0,a),padding:i,requiredLength:a,bitLength:a>0?Math.ceil(Math.log2(a)):0,isPredefined:c,useRepeatPadding:d}};try{let s=n??t?.dduChar,i=e??t?.paddingChar;if(s){if(!i)throw new Error("[Ddu64 Constructor] paddingChar is required when dduChar is provided.");let l=typeof s=="string"?[...s]:[...s],h=t?.codaChar,f=h?!0:t?.useRepeatPadding??!1;if(h&&h.length>0&&(l=L(l,h)),r&&new Set(l).size!==l.length){let g=l.filter((p,y)=>l.indexOf(p)!==y);throw new Error(`[Ddu64 Constructor] Character set contains duplicate characters: [${[...new Set(g)].join(", ")}]`)}let u=t?.requiredLength??l.length;if(l.length<u)throw new Error("[Ddu64 Constructor] Insufficient characters.");return o(l,i,u,!1,f)}let a=t?.dduSetSymbol??Y.dduSetSymbol??"ddu",c=Je(a),d=c.codaChar?L(c.charSet,c.codaChar):c.charSet;return o(d,c.paddingChar,c.maxRequiredLength,!0,c.useRepeatPadding)}catch(s){if(r)throw s;return V(t)}}function he(n,e,t){let r=[n,null];for(let s of r){let i=s?{...s}:V(t);try{let a=i.charSet,c=i.requiredLength,d=Array.from(new Set(a));if(d.length!==a.length){if(e){let f=a.filter((u,m)=>a.indexOf(u)!==m);throw new Error(`[Ddu64 normalizeCharSet] Character set contains duplicate characters: [${[...new Set(f)].join(", ")}]`)}a=d,i.isPredefined||(c=a.length);}if(a.length<c)throw new Error(`[Ddu64 normalizeCharSet] Insufficient characters. Required: ${c}, Has: ${a.length}`);if(c<2)throw new Error("[Ddu64 normalizeCharSet] At least 2 unique characters required.");if(a.length===0)throw new Error("[Ddu64 normalizeCharSet] Empty charset.");if(a.find(f=>f.length!==1)){if(e)throw new Error("[Ddu64 normalizeCharSet] Multi-character symbols are not supported.");continue}if(a.length>Ze){if(e)throw new Error("[Ddu64 normalizeCharSet] Charset size exceeds maximum supported size of 65536.");continue}if(i.padding.length!==1)throw new Error(`[Ddu64 normalizeCharSet] Padding length mismatch. Expected 1, got ${i.padding.length}`);if(a.includes(i.padding)){if(e)throw new Error(`[Ddu64 normalizeCharSet] Padding character "${i.padding}" conflicts with charset.`);a=a.filter(f=>f!==i.padding);}for(let f of a)if(f.includes(`
4
- `)||f.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");if(i.padding.includes(`
5
- `)||i.padding.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");return {charSet:a.length===c?a:a.slice(0,c),padding:i.padding,isPredefined:i.isPredefined}}catch(a){if(e)throw a}}let o=V(t);return {charSet:o.charSet.slice(0,o.requiredLength),padding:o.padding,isPredefined:true}}function fe(n,e,t){for(let r of Xe){for(let o of n)if(o.includes(r)){let s=`[Ddu64 Constructor] URL-Safe mode conflict: charset character "${o}" contains "${r}".`;if(t)throw new Error(s);return false}if(e.includes(r)){let o=`[Ddu64 Constructor] URL-Safe mode conflict: padding character "${e}" contains "${r}".`;if(t)throw new Error(o);return false}}return true}function me(n,e,t){if(t>256)return;let r=Math.min(n.length,t),o=n.slice(0,r),s=new Set;for(let a=0;a<o.length;a++)s.add(o[a]);s.add(e);for(let a=0;a<o.length;a++){let c=o[a];for(let h=0;h<o.length;h++){let f=c+o[h];if(s.has(f))throw new Error(`Combination conflict: "${c}" + "${o[h]}"`);s.add(f);}let d=c+e;if(s.has(d))throw new Error(`Combination conflict: "${c}" + padding`);s.add(d);let l=e+c;if(s.has(l))throw new Error(`Combination conflict: padding + "${c}"`);s.add(l);}let i=e+e;if(s.has(i))throw new Error("Combination conflict: double padding");s.add(i);}function Qe(n,e){return e!==void 0?e?n>0:false:n>0&&(n&n-1)===0}function Je(n){let e=R(n);if(!e)throw new Error(`CharSet with symbol ${n} not found`);return e}function V(n){let e=n?.dduSetSymbol??Y.dduSetSymbol??"oneCharSet",t=R(e)??R("oneCharSet");if(!t)throw new Error("Critical: No fallback CharSet available");return {charSet:t.codaChar?L(t.charSet,t.codaChar):t.charSet,padding:t.paddingChar,requiredLength:t.maxRequiredLength,bitLength:t.bitLength,isPredefined:true,useRepeatPadding:t.useRepeatPadding}}function et(){let n=1;return typeof globalThis.navigator<"u"&&globalThis.navigator.hardwareConcurrency?n=globalThis.navigator.hardwareConcurrency:typeof globalThis.process<"u"&&globalThis.process.versions?.node&&(typeof globalThis.process.availableParallelism=="function"?n=globalThis.process.availableParallelism():n=4),Math.max(1,Math.min(64,n-1))}function tt(){try{let{Worker:n}=Ke("worker_threads"),e=new URL("./nodeWorker.js",import.meta.url).pathname,t=new n(e);return {postMessage(r){t.postMessage(r);},async terminate(){await t.terminate();},onMessage(r){t.on("message",r);},onError(r){t.on("error",r);}}}catch{return null}}function rt(){try{if(typeof globalThis.Worker>"u")return null;let n=new URL("./webWorker.js",import.meta.url),e=new globalThis.Worker(n,{type:"module"});return {postMessage(t){e.postMessage(t);},async terminate(){e.terminate();},onMessage(t){e.addEventListener("message",r=>{t(r.data);});},onError(t){e.addEventListener("error",r=>{t(new Error(r.message||"Worker error"));});}}}catch{return null}}var G=class{poolSize;workers=[];pendingTasks=new Map;nextTaskId=0;roundRobinIndex=0;initialized=false;terminated=false;constructor(e){this.poolSize=e??et();}async encode(e,t){return await this.dispatch("encode",e,t)}async decode(e,t){return await this.dispatch("decode",e,t)}setPoolSize(e){if(!Number.isInteger(e))throw new Error(`[WorkerPool] Pool size must be an integer. Got: ${e}. Valid range: [1, 64]`);if(e<1||e>64)throw new Error(`[WorkerPool] Pool size must be between 1 and 64. Got: ${e}`);let t=this.poolSize;this.poolSize=e,this.initialized&&t!==e&&(this.terminateWorkers(),this.initialized=false);}async terminate(){this.terminated=true,await this.terminateWorkers();for(let[,e]of this.pendingTasks)e.reject(new Error("[WorkerPool] Pool terminated"));this.pendingTasks.clear();}async dispatch(e,t,r){if(this.terminated)throw new Error("[WorkerPool] Pool has been terminated");if(this.ensureInitialized(),this.workers.length===0)throw new Error("[WorkerPool] No workers available. Workers may not be supported in this runtime.");let o=this.nextTaskId++,s=this.roundRobinIndex%this.workers.length;this.roundRobinIndex=(this.roundRobinIndex+1)%this.workers.length;let i=this.workers[s];return new Promise((a,c)=>{this.pendingTasks.set(o,{resolve:a,reject:c});let d={id:o,type:e,data:t,config:r};i.postMessage(d);})}ensureInitialized(){if(this.initialized)return;let e=typeof globalThis.process<"u"&&!!globalThis.process.versions?.node;for(let t=0;t<this.poolSize;t++){let r=e?tt():rt();if(!r)break;r.onMessage(o=>{let s=this.pendingTasks.get(o.id);s&&(this.pendingTasks.delete(o.id),o.type==="error"?s.reject(new Error(o.error??"Worker error")):s.resolve(o.result));}),r.onError(o=>{console.error("[WorkerPool] Worker error:",o.message);}),this.workers.push(r);}this.initialized=true;}async terminateWorkers(){let e=this.workers.map(t=>t.terminate());await Promise.all(e),this.workers=[];}},j=null;function nt(){return j||(j=new G),j}function pe(n){nt().setPoolSize(n);}function ye(n){if(n.length===0)throw new Error("[Ddu64 obfuscation] Alphabet must not be empty.");if(n.length>11172)throw new Error(`[Ddu64 obfuscation] Alphabet size (${n.length}) exceeds available Hangul syllables (11172).`);let e=Math.floor(11172/n.length),t=new Map;for(let r=0;r<n.length;r++)t.set(n[r],r);return {alphabet:n,syllablesPerChar:e,charToIndex:t}}function ge(n,e,t){let r=44032+n*t.syllablesPerChar,o=e%t.syllablesPerChar;return r+o}function be(n,e){if(n<44032||n>55203)return -1;let t=n-44032,r=Math.floor(t/e.syllablesPerChar);return r>=e.alphabet.length?-1:r}var C=class{config;constructor(e){this.config=ye(e);}obfuscate(e){if(e.length===0)return "";let t=new Array(e.length);for(let r=0;r<e.length;r++){let o=e[r],s=this.config.charToIndex.get(o);if(s===void 0)throw new Error(`[Ddu64 obfuscation] Character "${o}" (U+${o.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase()}) not found in obfuscation alphabet.`);let i=ge(s,r,this.config);t[r]=String.fromCharCode(i);}return t.join("")}deobfuscate(e){if(e.length===0)return "";let t=new Array(e.length);for(let r=0;r<e.length;r++){let o=e.charCodeAt(r),s=be(o,this.config);if(s===-1)throw new Error(`[Ddu64 obfuscation] Invalid syllable at position ${r}: U+${o.toString(16).padStart(4,"0").toUpperCase()} is not in the mapped range.`);t[r]=this.config.alphabet[s];}return t.join("")}};function ot(n,e){let t=new Set(n);t.add(e);let r=[...t];return new C(r)}var E=null,Z=false,S=false,w=null,X=class{exports;_ready=true;constructor(e){this.exports=e;}get ready(){return this._ready}encode(e,t){let{exports:r}=this;if(e.length===0)return {indices:new Uint16Array(0),paddingBits:0};let o=r.alloc(e.length);new Uint8Array(r.memory.buffer).set(e,o);let i=1<<t,a=1;try{let c=r.encode(o,e.length,t,i,a),d=r.get_result_ptr(),l=new Uint16Array(r.memory.buffer,d,c),h=new Uint16Array(c);return h.set(l),{indices:h,paddingBits:r.get_padding_bits()}}finally{r.dealloc(o,e.length);}}decode(e,t,r){let{exports:o}=this;if(e.length===0)return new Uint8Array(0);let s=e.length*2,i=o.alloc(s);new Uint16Array(o.memory.buffer,i,e.length).set(e);let c=1<<t,d=1;try{let l=o.decode(i,e.length,t,c,d,r);if(l===4294967295)throw new Error("[WasmCodec decode] Invalid index in input");let h=o.get_result_ptr(),f=new Uint8Array(o.memory.buffer,h,l),u=new Uint8Array(l);return u.set(f),u}finally{o.dealloc(i,s);}}};async function st(){try{if(typeof globalThis.process<"u"&&globalThis.process.versions?.node){let{readFile:n}=await import('fs/promises'),{fileURLToPath:e}=await import('url'),{dirname:t,join:r}=await import('path'),o=t(e(import.meta.url)),s=r(o,"wasm","codec.wasm");try{let i=await n(s);return i.buffer.slice(i.byteOffset,i.byteOffset+i.byteLength)}catch{let i=r(o,"codec.wasm");try{let a=await n(i);return a.buffer.slice(a.byteOffset,a.byteOffset+a.byteLength)}catch{let a=r(o,"..","wasm","codec.wasm");try{let c=await n(a);return c.buffer.slice(c.byteOffset,c.byteOffset+c.byteLength)}catch{return null}}}}if(typeof fetch=="function"){let n=await fetch(new URL("./wasm/codec.wasm",import.meta.url));return n.ok?await n.arrayBuffer():null}return null}catch{return null}}async function it(n){try{if(n.byteLength<16)return null;let e=new Uint8Array(n,0,4);if(e[0]!==0||e[1]!==97||e[2]!==115||e[3]!==109)return null;let t;try{t=await WebAssembly.compile(n);}catch{return null}let o=(await WebAssembly.instantiate(t,{})).exports;return typeof o.alloc!="function"||typeof o.dealloc!="function"||typeof o.encode!="function"||typeof o.decode!="function"||typeof o.get_result_ptr!="function"||typeof o.get_result_len!="function"||typeof o.get_padding_bits!="function"||!o.memory?null:o}catch{return null}}async function we(){try{if(E)return !0;if(S)return !1;let n=await st();if(!n)return S=!0,!1;let e=await it(n);return e?(E=new X(e),!0):(S=!0,!1)}catch{return S=true,false}}function at(n,e){let t;return {promise:new Promise((s,i)=>{t=setTimeout(()=>i(new Error(e)),n);}),clear:()=>clearTimeout(t)}}async function ct(){if(E)return;if(w)return w;let n=at(1e4,"[Ddu64 wasm] WASM initialization timed out (10s)"),e=async()=>{try{if(!await we())throw new Error("[Ddu64 wasm] WASM initialization failed")}finally{n.clear();}};return w=Promise.race([e(),n.promise]).finally(()=>{w=null,Z=true;}),w}function dt(){if(E)return E;if(S)return null;if(!Z&&!w){Z=true;let n;w=new Promise(e=>{n=setTimeout(()=>{S=true,e();},5e3),we().then(t=>{t||(S=true);}).catch(()=>{S=true;}).finally(()=>{n!==void 0&&clearTimeout(n),e();});}).finally(()=>{w=null;});}return null}function _(){return E}function Se(n){if(!Number.isFinite(n))throw new Error(`[Ddu64 config] wasmThreshold must be a finite number, got ${n}`);return Math.max(1024,Math.min(1048576,Math.round(n)))}var Lt=8,xt=64*1024*1024,Tt=64*1024*1024,re="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Me="=",Rt=Object.fromEntries([...re].map((n,e)=>[n,e])),M=class{dduChar;paddingChar;bitLength;usePowerOfTwo;effectiveBitLength;dduBinaryLookup=new Map;isPredefinedCharSet;defaultCompress;defaultMaxDecodedBytes;defaultMaxDecompressedBytes;urlSafe;encryptionKey;keyDerivation;encryptionKeyHash;defaultChecksum;defaultChunkSize;defaultChunkSeparator;defaultCompressionLevel;defaultCompressionAlgorithm;useRepeatPadding;bitPackConfig;wasmThreshold;canUseNativeBase64;nativeDecodeMap;adapter;defaultObfuscate;_obfuscationLayer;constructor(e,t,r){e!=null&&typeof e=="object"&&!Array.isArray(e)&&(r=e,e=void 0,t=void 0);let o=r?.throwOnError??r?.useBuildErrorReturn??false;r?.adapter?this.adapter=r.adapter:this.adapter=void 0;let s=ue(e,t,r,o),i=he(s,o,r);this.dduChar=i.charSet,this.paddingChar=i.padding,this.isPredefinedCharSet=i.isPredefined,this.defaultCompress=r?.compress??false,this.defaultMaxDecodedBytes=this.normalizeLimit(r?.maxDecodedBytes,xt,o,"maxDecodedBytes"),this.defaultMaxDecompressedBytes=this.normalizeLimit(r?.maxDecompressedBytes,Tt,o,"maxDecompressedBytes");let a=this.dduChar.length;this.usePowerOfTwo=a>0&&(a&a-1)===0;let c=Math.ceil(Math.log2(a));this.bitLength=this.usePowerOfTwo?Math.floor(Math.log2(a)):c,this.effectiveBitLength=this.usePowerOfTwo?this.bitLength:c;for(let l=0;l<a;l++)this.dduBinaryLookup.set(this.dduChar[l],l);this.isPredefinedCharSet||me(this.dduChar,this.paddingChar,a);let d=r?.urlSafe??false;if(this.urlSafe=d?fe(this.dduChar,this.paddingChar,o):false,this.encryptionKey=r?.encryptionKey,this.keyDerivation=r?.keyDerivation,this.encryptionKey&&this.adapter?.deriveKeySync&&(this.encryptionKeyHash=this.adapter.deriveKeySync(this.encryptionKey,this.keyDerivation)),this.defaultChecksum=r?.checksum??false,this.defaultChunkSize=r?.chunkSize,this.defaultChunkSeparator=r?.chunkSeparator??`
6
- `,this.defaultCompressionAlgorithm=r?.compressionAlgorithm??"deflate",this.defaultCompressionLevel=x(r?.compressionLevel,this.defaultCompressionAlgorithm),this.useRepeatPadding=r?.useRepeatPadding??s.useRepeatPadding??false,this.defaultObfuscate=r?.obfuscate??false,this.defaultObfuscate&&!this.encryptionKey)throw new Error("[Ddu64 obfuscation] Obfuscation requires encryption to be enabled.");if(this.bitPackConfig=ie(a),this.wasmThreshold=Se(r?.wasmThreshold??4096),this.canUseNativeBase64=this.usePowerOfTwo&&this.dduChar.length===64,this.canUseNativeBase64){this.nativeDecodeMap=new Map;for(let l=0;l<re.length;l++){let h=this.dduChar[l];this.nativeDecodeMap.set(h,re[l]);}}}encode(e,t){return this.encodeInternal(e,t).encoded}decode(e,t){let r=this.decodeToUint8Array(e,t);return $(r)}decodeToUint8Array(e,t){let r=t?.checksum??this.defaultChecksum,o=t?.compress!==false,s=t?.encrypt!==false,i=e;this.reportProgress(t,{processedBytes:0,totalBytes:e.length,percent:0,stage:"start"});let a=t?.chunkSeparator??this.defaultChunkSeparator;i=F(i,a),this.urlSafe&&(i=z(i));let c=null;if(r){let y=W(i);c=y.checksum,i=y.data;}this.shouldObfuscate(t)&&(i=this.getObfuscationLayer().deobfuscate(i));let{cleanedInput:d,paddingBits:l,compressionAlgorithm:h,isEncrypted:f,pipelineVersion:u}=K(i,this.paddingChar,this.effectiveBitLength);if(f&&s&&!this.encryptionKey)throw new Error("[Ddu64 decode] Encrypted payload requires an encryptionKey");this.assertEncodedInputAligned(d);let m=this.normalizeLimit(t?.maxDecodedBytes,this.defaultMaxDecodedBytes,true,"maxDecodedBytes"),g=this.estimateDecodedBytes(d.length,l);if(g>m)throw new Error(`[Ddu64 decode] Decoded output exceeds limit. Estimated: ${g} bytes, Limit: ${m} bytes`);this.reportProgress(t,{processedBytes:d.length,totalBytes:e.length,percent:30,stage:"decode"});let p=this.decodeChars(d,l);if(u===3&&f&&this.encryptionKey&&s&&(this.reportProgress(t,{processedBytes:p.length,totalBytes:p.length,percent:55,stage:"decrypt"}),p=this.decryptSync(p)),h&&o&&(u===2||!f||s)){let y=this.normalizeLimit(t?.maxDecompressedBytes,this.defaultMaxDecompressedBytes,true,"maxDecompressedBytes");this.reportProgress(t,{processedBytes:p.length,totalBytes:p.length,percent:70,stage:"decompress"}),p=this.decompressSync(p,h,y);}if(c&&(u===2||!f||s)){this.reportProgress(t,{processedBytes:p.length,totalBytes:p.length,percent:85,stage:"checksum"});let y=P(p);if(y!==c)throw new Error(`[Ddu64 decode] Checksum mismatch. Expected: ${c}, Got: ${y}`)}return u===2&&f&&this.encryptionKey&&s&&(this.reportProgress(t,{processedBytes:p.length,totalBytes:p.length,percent:90,stage:"decrypt"}),p=this.decryptSync(p)),this.reportProgress(t,{processedBytes:p.length,totalBytes:p.length,percent:100,stage:"done"}),p}async encodeAsync(e,t){let r=await this.getAdapterAsync(),o=t?.compress??this.defaultCompress,s=t?.checksum??this.defaultChecksum,i=(t?.encrypt??true)&&!!this.encryptionKey,a=t?.chunkSize??this.defaultChunkSize,c=t?.chunkSeparator??this.defaultChunkSeparator,d=typeof e=="string"?T(e):e;this.reportProgress(t,{processedBytes:0,totalBytes:d.length,percent:0,stage:"start"});let l="";s&&(l=P(d));let h;if(o){let m=t?.compressionAlgorithm??this.defaultCompressionAlgorithm,g=x(t?.compressionLevel??this.defaultCompressionLevel,m);this.reportProgress(t,{processedBytes:d.length,totalBytes:d.length,percent:20,stage:"compress"});let p;if(m==="brotli"){if(!r.brotliCompress)throw new Error("[Ddu64 compress] Brotli compression is unavailable in the current runtime.");p=await r.brotliCompress(d,g);}else p=await r.deflate(d,g);p.length<d.length&&(d=p,h=m);}let f=false;if(i){let m=await this.getKeyHashAsync(r);this.reportProgress(t,{processedBytes:d.length,totalBytes:d.length,percent:45,stage:"encrypt"}),d=await r.encrypt(d,m),f=true;}this.reportProgress(t,{processedBytes:d.length,totalBytes:d.length,percent:70,stage:"encode"});let u=this.encodeBytes(d,h,f,t);return u=this.applyPostEncoding(u,t,l,s,a,c),this.reportProgress(t,{processedBytes:d.length,totalBytes:d.length,percent:100,stage:"done"}),u}async decodeAsync(e,t){let r=await this.decodeToUint8ArrayAsync(e,t);return $(r)}async decodeToUint8ArrayAsync(e,t){let r=await this.getAdapterAsync(),o=t?.checksum??this.defaultChecksum,s=t?.compress!==false,i=t?.encrypt!==false,a=e;this.reportProgress(t,{processedBytes:0,totalBytes:e.length,percent:0,stage:"start"});let c=t?.chunkSeparator??this.defaultChunkSeparator;a=F(a,c),this.urlSafe&&(a=z(a));let d=null;if(o){let b=W(a);d=b.checksum,a=b.data;}this.shouldObfuscate(t)&&(a=this.getObfuscationLayer().deobfuscate(a));let{cleanedInput:l,paddingBits:h,compressionAlgorithm:f,isEncrypted:u,pipelineVersion:m}=K(a,this.paddingChar,this.effectiveBitLength);if(u&&i&&!this.encryptionKey)throw new Error("[Ddu64 decode] Encrypted payload requires an encryptionKey");this.assertEncodedInputAligned(l);let g=this.normalizeLimit(t?.maxDecodedBytes,this.defaultMaxDecodedBytes,true,"maxDecodedBytes"),p=this.estimateDecodedBytes(l.length,h);if(p>g)throw new Error(`[Ddu64 decode] Decoded output exceeds limit. Estimated: ${p} bytes, Limit: ${g} bytes`);this.reportProgress(t,{processedBytes:l.length,totalBytes:e.length,percent:30,stage:"decode"});let y=this.decodeChars(l,h);if(m===3&&u&&this.encryptionKey&&i){let b=await this.getKeyHashAsync(r);this.reportProgress(t,{processedBytes:y.length,totalBytes:y.length,percent:55,stage:"decrypt"}),y=await r.decrypt(y,b);}if(f&&s&&(m===2||!u||i)){let b=this.normalizeLimit(t?.maxDecompressedBytes,this.defaultMaxDecompressedBytes,true,"maxDecompressedBytes");if(f==="brotli"){if(!r.brotliDecompress)throw new Error("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.");this.reportProgress(t,{processedBytes:y.length,totalBytes:y.length,percent:70,stage:"decompress"}),y=await r.brotliDecompress(y,b);}else this.reportProgress(t,{processedBytes:y.length,totalBytes:y.length,percent:70,stage:"decompress"}),y=await r.inflate(y,b);}if(d&&(m===2||!u||i)){this.reportProgress(t,{processedBytes:y.length,totalBytes:y.length,percent:85,stage:"checksum"});let b=P(y);if(b!==d)throw new Error(`[Ddu64 decode] Checksum mismatch. Expected: ${d}, Got: ${b}`)}if(m===2&&u&&this.encryptionKey&&i){let b=await this.getKeyHashAsync(r);this.reportProgress(t,{processedBytes:y.length,totalBytes:y.length,percent:90,stage:"decrypt"}),y=await r.decrypt(y,b);}return this.reportProgress(t,{processedBytes:y.length,totalBytes:y.length,percent:100,stage:"done"}),y}getCharSetInfo(){return {charSet:[...this.dduChar],paddingChar:this.paddingChar,bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,encoding:"utf-8",defaultCompress:this.defaultCompress,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,urlSafe:this.urlSafe,hasEncryptionKey:!!this.encryptionKey,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm}}getStats(e,t){let o=(typeof e=="string"?T(e):e).length,{encoded:s,compressedSize:i}=this.encodeInternal(e,t),a=s.length,c=o>0?a/o:0,l=(t?.compress??this.defaultCompress)&&i!==void 0&&o>0?i/o:void 0;return {originalSize:o,encodedSize:a,compressedSize:i,compressionRatio:l,expansionRatio:c,charsetSize:this.dduChar.length,bitLength:this.bitLength}}static setWorkerPoolSize(e){pe(e);}encodeInternal(e,t){let r=t?.compress??this.defaultCompress,o=t?.checksum??this.defaultChecksum,s=(t?.encrypt??true)&&!!this.encryptionKey,i=t?.chunkSize??this.defaultChunkSize,a=t?.chunkSeparator??this.defaultChunkSeparator,c=typeof e=="string"?T(e):e;this.reportProgress(t,{processedBytes:0,totalBytes:c.length,percent:0,stage:"start"});let d="";o&&(d=P(c));let l,h;if(r){let m=t?.compressionAlgorithm??this.defaultCompressionAlgorithm,g=x(t?.compressionLevel??this.defaultCompressionLevel,m);this.reportProgress(t,{processedBytes:c.length,totalBytes:c.length,percent:20,stage:"compress"});let p=this.compressSync(c,m,g);h=p.length,p.length<c.length&&(c=p,l=m);}let f=false;s&&(this.reportProgress(t,{processedBytes:c.length,totalBytes:c.length,percent:45,stage:"encrypt"}),c=this.encryptSync(c),f=true),this.reportProgress(t,{processedBytes:c.length,totalBytes:c.length,percent:70,stage:"encode"});let u=this.encodeBytes(c,l,f,t);return u=this.applyPostEncoding(u,t,d,o,i,a),this.reportProgress(t,{processedBytes:c.length,totalBytes:c.length,percent:100,stage:"done"}),{encoded:u,compressedSize:h}}applyPostEncoding(e,t,r,o,s,i){let a=e;return this.shouldObfuscate(t)&&(a=this.getObfuscationLayer().obfuscate(a)),o&&r&&(a=a+"CHK"+r),this.urlSafe&&(a=de(a)),s&&s>0&&(a=le(a,s,i)),a}encodeBytes(e,t,r,o){if(e.length===0)return "";let s=this.encodeBytesWithNativeBase64(e),i,a;if(s)i=s.indices,a=s.paddingBits;else {let l=this.shouldUseWasm(e.length)?_():null;if(l?.ready&&this.usePowerOfTwo){let h=l.encode(e,this.bitLength);i=h.indices,a=h.paddingBits;}else {let h=oe(e,this.bitPackConfig);i=h.indices,a=h.paddingBits;}}let c=new Array(i.length);for(let l=0;l<i.length;l++)c[l]=this.dduChar[i[l]];let d=o?.omitFooter?"":ce({paddingBits:a,compressionAlgorithm:t,isEncrypted:!!r,paddingChar:this.paddingChar,useRepeatPadding:this.useRepeatPadding&&!t&&!r,pipelineVersion:r?3:2});return c.join("")+d}decodeChars(e,t){let r=e.length;if(r===0)return new Uint8Array(0);let o=this.decodeCharsWithNativeBase64(e,t);if(o)return o;let s=r>=this.wasmThreshold||r>=4096?new Uint16Array(r):new Array(r);for(let a=0;a<r;a++){let c=e[a],d=this.dduBinaryLookup.get(c);if(d===void 0)throw new Error(`[Ddu64 decode] Invalid character "${c}" at ${a}`);s[a]=d;}let i=this.shouldUseWasm(r)?_():null;if(i?.ready&&this.usePowerOfTwo){let a=s instanceof Uint16Array?s:Uint16Array.from(s);return i.decode(a,this.bitLength,t)}return se(s,t,this.bitPackConfig)}encodeBytesWithNativeBase64(e){if(!this.canUseNativeBase64)return null;let t=this.bytesToBase64(e);if(t===null)return null;let r=0,o=t.length;for(;o>0&&t[o-1]===Me;)r++,o--;let s=o>=4096?new Uint16Array(o):new Array(o);for(let i=0;i<o;i++)s[i]=Rt[t[i]];return {indices:s,paddingBits:r===2?4:r===1?2:0}}decodeCharsWithNativeBase64(e,t){if(!this.canUseNativeBase64||!this.nativeDecodeMap)return null;let r=t===4?2:t===2?1:t===0?0:-1;if(r<0)return null;let o=new Array(e.length+r);for(let s=0;s<e.length;s++){let i=this.nativeDecodeMap.get(e[s]);if(i===void 0)return null;o[s]=i;}for(let s=0;s<r;s++)o[e.length+s]=Me;return this.base64ToBytes(o.join(""))}bytesToBase64(e){let t=e.toBase64;if(typeof t=="function")return t.call(e);let r=globalThis.Buffer;return r?.from?r.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):null}base64ToBytes(e){let t=Uint8Array;if(typeof t.fromBase64=="function")return t.fromBase64(e);let r=globalThis.Buffer;if(r?.from){let o=r.from(e,"base64");return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}return null}shouldUseWasm(e){return e>=this.wasmThreshold}reportProgress(e,t){e?.onProgress?.(t);}requireSyncAdapter(){if(!this.adapter)throw new Error("[Ddu64 adapter] No platform adapter available. Use encodeAsync()/decodeAsync() in browser environments, or provide an adapter via options.adapter.");return this.adapter}encryptSync(e){let t=this.requireSyncAdapter();if(!t.encryptSync)throw new Error("[Ddu64 encrypt] Sync encryption unavailable. Use encodeAsync() in browser environments.");if(!this.encryptionKeyHash){if(!t.deriveKeySync)throw new Error("[Ddu64 encrypt] Sync key derivation unavailable. Use encodeAsync() in browser environments.");this.encryptionKeyHash=t.deriveKeySync(this.encryptionKey,this.keyDerivation);}return t.encryptSync(e,this.encryptionKeyHash)}decryptSync(e){let t=this.requireSyncAdapter();if(!t.decryptSync)throw new Error("[Ddu64 decrypt] Sync decryption unavailable. Use decodeAsync() in browser environments.");if(!this.encryptionKeyHash){if(!t.deriveKeySync)throw new Error("[Ddu64 decrypt] Sync key derivation unavailable. Use decodeAsync() in browser environments.");this.encryptionKeyHash=t.deriveKeySync(this.encryptionKey,this.keyDerivation);}return t.decryptSync(e,this.encryptionKeyHash)}compressSync(e,t,r){let o=this.requireSyncAdapter();if(t==="brotli"){if(!o.brotliCompressSync)throw new Error("[Ddu64 compress] Brotli compression is unavailable in the current runtime.");return o.brotliCompressSync(e,r)}if(!o.deflateSync)throw new Error("[Ddu64 compress] Sync compression unavailable. Use encodeAsync() in browser environments.");return o.deflateSync(e,r)}decompressSync(e,t,r){let o=this.requireSyncAdapter();if(t==="brotli"){if(!o.brotliDecompressSync)throw new Error("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.");return o.brotliDecompressSync(e,r)}if(!o.inflateSync)throw new Error("[Ddu64 decompress] Sync decompression unavailable. Use decodeAsync() in browser environments.");return o.inflateSync(e,r)}async getAdapterAsync(){if(this.adapter)return this.adapter;let{getAdapter:e}=await Promise.resolve().then(()=>(te(),Ie));return this.adapter=await e(),this.adapter}async getKeyHashAsync(e){return this.encryptionKeyHash?this.encryptionKeyHash:(this.encryptionKeyHash=await e.deriveKey(this.encryptionKey,this.keyDerivation),this.encryptionKeyHash)}getObfuscationLayer(){if(!this._obfuscationLayer){let e=new Set(this.dduChar);e.add(this.paddingChar);let t="ELYSIAGRONCV01234567";for(let o of t)e.add(o);let r=[...e];this._obfuscationLayer=new C(r);}return this._obfuscationLayer}shouldObfuscate(e){let t=e?.obfuscate??this.defaultObfuscate;if(t&&!this.encryptionKey)throw new Error("[Ddu64 obfuscation] Obfuscation requires encryption to be enabled.");return t}normalizeLimit(e,t,r,o){if(e===void 0)return t;if(e===Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(!Number.isFinite(e)||e<=0){if(r)throw new Error(`[Ddu64 options] Invalid ${o}. Must be a positive finite number or Infinity.`);return t}return Math.floor(e)}estimateDecodedBytes(e,t){if(e===0)return 0;if(t<0||t>=this.effectiveBitLength)throw new Error(`[Ddu64 decode] Invalid padding bits: ${t}`);let r=this.usePowerOfTwo?1:2,s=Math.ceil(e/r)*this.effectiveBitLength-t;if(s<0)throw new Error("[Ddu64 decode] Invalid decoded bit length");return Math.ceil(s/Lt)}assertEncodedInputAligned(e){if(!this.usePowerOfTwo&&e.length%2!==0)throw new Error(`[Ddu64 decode] Invalid encoded length for variable charset. Expected multiple of 2, got ${e.length}`)}};var ne=class n{chars=[];constructor(){}static create(){return new n}static fromUnicodeRange(e,t){return new n().addUnicodeRange(e,t)}static fromString(e){return new n().addString(e)}static base64(){return new n().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")}static base32(){return new n().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567")}static uppercase(){return n.fromUnicodeRange(65,90)}static lowercase(){return n.fromUnicodeRange(97,122)}static digits(){return n.fromUnicodeRange(48,57)}static hangulJamo(){return new n().addUnicodeRange(4352,4370).addUnicodeRange(4449,4469).addUnicodeRange(4520,4546)}addUnicodeRange(e,t){for(let r=e;r<=t;r++)this.chars.push(String.fromCodePoint(r));return this}addString(e){return typeof e=="string"?this.chars.push(...e):this.chars.push(...e),this}add(...e){return this.chars.push(...e),this}excludeConfusing(){let e=new Set(["0","O","o","1","l","I","i","|","L"]);return this.chars=this.chars.filter(t=>!e.has(t)),this}exclude(...e){let t=new Set(e);return this.chars=this.chars.filter(r=>!t.has(r)),this}excludeUrlUnsafe(){let e=new Set(["+","/","=","?","&","#","%"," "]);return this.chars=this.chars.filter(t=>!e.has(t)),this}unique(){return this.chars=[...new Set(this.chars)],this}shuffle(e){let t=e!==void 0?this.seededRandom(e):Math.random;for(let r=this.chars.length-1;r>0;r--){let o=Math.floor(t()*(r+1));[this.chars[r],this.chars[o]]=[this.chars[o],this.chars[r]];}return this}seededRandom(e){let t=e|0||1;return ()=>(t^=t<<13,t^=t>>17,t^=t<<5,(t>>>0)/4294967296)}limit(e){return this.chars=this.chars.slice(0,e),this}limitToPowerOfTwo(){let e=this.chars.length;if(e===0)return this;let t=1<<Math.floor(Math.log2(e));return this.chars=this.chars.slice(0,t),this}sort(){return this.chars.sort(),this}reverse(){return this.chars.reverse(),this}get length(){return this.chars.length}buildString(){return this.chars.join("")}build(){return [...this.chars]}buildWithPadding(e){let t=[...this.chars],r=e;if(!r){let o=["=",".","_","-","~","!"];for(let s of o)if(!t.includes(s)){r=s;break}if(!r)throw new Error("Cannot find suitable padding character")}return {charset:t,padding:r}}};J();te();function _t(n,e){let t=n.getCharSetInfo(),r=e?.compress??t.defaultCompress,o=(e?.encrypt??true)&&t.hasEncryptionKey,s=r?e?.compressionAlgorithm??t.defaultCompressionAlgorithm:void 0,i=t.paddingChar,a=!r&&!o,c=false,d=[],l=0,h=null;return new TransformStream({async transform(f,u){if(a){if(!c){let b=v(i,{compressionAlgorithm:void 0,encrypted:false});u.enqueue(b),c=true;}let m;h&&h.length>0?(m=new Uint8Array(h.length+f.length),m.set(h,0),m.set(f,h.length)):m=f;let g=t.bitLength,p=Oe(g,8)/8,y=Math.floor(m.length/p)*p;if(y>0){let b=m.subarray(0,y),k=await n.encodeAsync(b,{compress:false,encrypt:false,checksum:false,chunkSize:void 0,chunkSeparator:void 0,omitFooter:true});u.enqueue(k);}y<m.length?h=m.slice(y):h=null;}else d.push(f),l+=f.length;},async flush(f){try{if(a){if(!c){let u=v(i,{compressionAlgorithm:void 0,encrypted:!1});f.enqueue(u);}if(h&&h.length>0){let u=await n.encodeAsync(h,{compress:!1,encrypt:!1,checksum:!1,chunkSize:void 0,chunkSeparator:void 0});f.enqueue(u);}h=null;}else {let u=v(i,{compressionAlgorithm:s,encrypted:o});if(f.enqueue(u),l>0){let m=new Uint8Array(l),g=0;for(let y of d)m.set(y,g),g+=y.length;let p=await n.encodeAsync(m,{...e,compress:r,encrypt:o,checksum:!1,chunkSize:void 0,chunkSeparator:void 0});f.enqueue(p);}d=[],l=0;}}catch(u){f.error(u instanceof Error?u:new Error(String(u)));}}})}function It(n,e){let t=n.getCharSetInfo(),r=t.paddingChar,o=H(r),s="",i=false,a=null,c=false;return new TransformStream({async transform(d,l){if(s+=d,!i&&s.length>=o){if(!s.startsWith(r)){l.error(new Error("[WebStreams decode] Invalid or missing stream header"));return}if(a=ae(s,r),a===null){l.error(new Error("[WebStreams decode] Invalid or missing stream header"));return}if(a.encrypted&&!t.hasEncryptionKey){l.error(new Error("[WebStreams decode] Encrypted stream requires an encryptionKey"));return}i=true,c=!a.compressionAlgorithm&&!a.encrypted,s=s.slice(o);}if(i&&c&&s.length>0){let h=t.bitLength,f=Oe(h,8)/h,u=Math.floor(s.length/f)*f;if(u>0){let m=s.slice(0,u);s=s.slice(u);try{let g=await n.decodeToUint8ArrayAsync(m,{compress:!1,encrypt:!1,checksum:!1,chunkSize:void 0,chunkSeparator:void 0});g.length>0&&l.enqueue(g);}catch{s=m+s;}}}},async flush(d){try{if(!i){if(s.length===0)return;d.error(new Error("[WebStreams decode] Incomplete stream header"));return}if(s.length===0)return;let l=a.compressionAlgorithm,h=a.encrypted,f=await n.decodeToUint8ArrayAsync(s,{...e,compress:!!l,compressionAlgorithm:l,encrypt:h,checksum:!1,chunkSize:void 0,chunkSeparator:void 0});f.length>0&&d.enqueue(f),s="";}catch(l){d.error(l instanceof Error?l:new Error(String(l)));}}})}function Oe(n,e){return n*e/Mt(n,e)}function Mt(n,e){for(;e!==0;){let t=e;e=n%e,n=t;}return n}export{I as BrowserAdapter,ne as CharsetBuilder,M as Ddu64,M as Ddu64Core,q as DduSetSymbol,C as HangulObfuscationLayer,ot as createObfuscationLayer,It as createReadableDecodeStream,_t as createReadableEncodeStream,ee as detectRuntime,_e as getAdapter,dt as getWasmCodec,_ as getWasmCodecSync,ct as preloadWasm};//# sourceMappingURL=browser.js.map
1
+ export{c as createReadableDecodeStream,b as createReadableEncodeStream,a as detectRuntime}from'./chunk-M7526IW7.js';import {B,x}from'./chunk-65RDFQV7.js';export{C as CharsetBuilder,s as Ddu64AdapterError,q as Ddu64CharsetError,p as Ddu64ChecksumError,l as Ddu64CompressionError,B as Ddu64Core,k as Ddu64DecodeError,m as Ddu64DecompressionError,o as Ddu64DecryptionError,j as Ddu64EncodeError,n as Ddu64EncryptionError,i as Ddu64Error,h as Ddu64ErrorCode,r as Ddu64LimitError,t as Ddu64ObfuscationError,u as Ddu64StreamError,a as DduSetSymbol,b as HangulObfuscationLayer,c as createObfuscationLayer,e as getWasmCodec,f as getWasmCodecSync,v as isDdu64Error,d as preloadWasm}from'./chunk-65RDFQV7.js';import {a}from'./chunk-P7WJ2LOQ.js';export{a as BrowserAdapter}from'./chunk-P7WJ2LOQ.js';import'./chunk-QR43FNIY.js';var e=class extends B{constructor(s,n,p){let o=x(s,n,p),u={...o.dduOptions,adapter:o.dduOptions?.adapter??new a};super(o.dduChar,o.paddingChar,u);}};async function z(){return new a}export{e as Ddu64,e as Ddu64Browser,z as getAdapter};//# sourceMappingURL=browser.js.map
7
2
  //# sourceMappingURL=browser.js.map
@@ -0,0 +1,2 @@
1
+ import {d,a,b}from'./chunk-QR43FNIY.js';import {pbkdf2,pbkdf2Sync,createHash,randomBytes,createCipheriv,createDecipheriv}from'crypto';import {deflateRaw,inflateRaw,brotliCompress,brotliDecompress,deflateRawSync,inflateRawSync,constants,brotliCompressSync,brotliDecompressSync}from'zlib';import {promisify}from'util';var N=promisify(deflateRaw),w=promisify(inflateRaw),v=promisify(brotliCompress),h=promisify(brotliDecompress),E=promisify(pbkdf2);function _(e){let n=e,r=String(n?.message??"").toLowerCase();return String(n?.code??"")==="ERR_BUFFER_TOO_LARGE"||r.includes("output length")||r.includes("buffer too large")||r.includes("cannot create a buffer larger")}function f(e,n,r){throw _(e)?new Error(`[Ddu64 ${r}] Decompressed data exceeds limit. Limit: ${n} bytes`,{cause:e}):e}function s(e){return Buffer.isBuffer(e)?e:e.buffer instanceof SharedArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength)}var g=class{supportsSyncCrypto=true;supportsSyncCompression=true;supportsBrotli=true;runtime="node";async deriveKey(n,r){if(r?.algorithm==="pbkdf2"){let t=await E(n,d(r.salt),a(r.iterations),32,b(r.hash));return new Uint8Array(t)}return this.deriveKeySync(n,r)}deriveKeySync(n,r){return r?.algorithm==="pbkdf2"?new Uint8Array(pbkdf2Sync(n,d(r.salt),a(r.iterations),32,b(r.hash))):new Uint8Array(createHash("sha256").update(n).digest())}async encrypt(n,r,t){return this.encryptSync(n,r,t)}encryptSync(n,r,t){let i=randomBytes(12),o=createCipheriv("aes-256-gcm",r,i);t&&t.length>0&&o.setAAD(s(t));let u=Buffer.concat([o.update(n),o.final()]),a=o.getAuthTag(),c=new Uint8Array(28+u.length);return c.set(i,0),c.set(a,12),c.set(u,28),c}async decrypt(n,r,t){return this.decryptSync(n,r,t)}decryptSync(n,r,t){if(n.length<28)throw new Error("[Ddu64 decrypt] Invalid encrypted data: too short");let i=n.subarray(0,12),o=n.subarray(12,28),u=n.subarray(28),a=createDecipheriv("aes-256-gcm",r,i);t&&t.length>0&&a.setAAD(s(t)),a.setAuthTag(o);let c=Buffer.concat([a.update(u),a.final()]);return new Uint8Array(c)}randomBytes(n){return new Uint8Array(randomBytes(n))}async deflate(n,r){let t={};r!==void 0&&(t.level=r);let i=await N(s(n),t);return new Uint8Array(i)}deflateSync(n,r){let t={};return r!==void 0&&(t.level=r),new Uint8Array(deflateRawSync(s(n),t))}async inflate(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY){let i=await w(s(n));return new Uint8Array(i)}let t={maxOutputLength:r};try{let i=await w(s(n),t);return new Uint8Array(i)}catch(i){f(i,r,"inflate");}}inflateSync(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY)return new Uint8Array(inflateRawSync(s(n)));try{return new Uint8Array(inflateRawSync(s(n),{maxOutputLength:r}))}catch(t){f(t,r,"inflate");}}async brotliCompress(n,r){let t={};r!==void 0&&(t.params={[constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))});let i=await v(s(n),t);return new Uint8Array(i)}brotliCompressSync(n,r){let t={};return r!==void 0&&(t.params={[constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))}),new Uint8Array(brotliCompressSync(s(n),t))}async brotliDecompress(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY){let t=await h(s(n));return new Uint8Array(t)}try{let t=await h(s(n),{maxOutputLength:r});return new Uint8Array(t)}catch(t){f(t,r,"brotli");}}brotliDecompressSync(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY)return new Uint8Array(brotliDecompressSync(s(n)));try{return new Uint8Array(brotliDecompressSync(s(n),{maxOutputLength:r}))}catch(t){f(t,r,"brotli");}}};export{g as a};//# sourceMappingURL=chunk-342X2QEY.js.map
2
+ //# sourceMappingURL=chunk-342X2QEY.js.map
@@ -0,0 +1,10 @@
1
+ var se=(n=>(n.DDU="ddu",n.DDU_V1="ddu_v1",n.ONECHARSET="oneCharSet",n))(se||{}),j={dduSetSymbol:"ddu",usePowerOfTwo:true,requiredLength:64};function ae(e){if(e.length===0)throw new Error("[Ddu64 obfuscation] Alphabet must not be empty.");if(e.length>11172)throw new Error(`[Ddu64 obfuscation] Alphabet size (${e.length}) exceeds available Hangul syllables (11172).`);let r=Math.floor(11172/e.length),t=new Map;for(let n=0;n<e.length;n++)t.set(e[n],n);return {alphabet:e,syllablesPerChar:r,charToIndex:t}}function de(e,r,t){let n=44032+e*t.syllablesPerChar,o=r%t.syllablesPerChar;return n+o}function ce(e,r){if(e<44032||e>55203)return -1;let t=e-44032,n=Math.floor(t/r.syllablesPerChar);return n>=r.alphabet.length?-1:n}var _=class{config;constructor(r){this.config=ae(r);}obfuscate(r){if(r.length===0)return "";let t=new Array(r.length);for(let n=0;n<r.length;n++){let o=r[n],s=this.config.charToIndex.get(o);if(s===void 0)throw new Error(`[Ddu64 obfuscation] Character "${o}" (U+${o.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase()}) not found in obfuscation alphabet.`);let i=de(s,n,this.config);t[n]=String.fromCharCode(i);}return t.join("")}deobfuscate(r){if(r.length===0)return "";let t=new Array(r.length);for(let n=0;n<r.length;n++){let o=r.charCodeAt(n),s=ce(o,this.config);if(s===-1)throw new Error(`[Ddu64 obfuscation] Invalid syllable at position ${n}: U+${o.toString(16).padStart(4,"0").toUpperCase()} is not in the mapped range.`);t[n]=this.config.alphabet[s];}return t.join("")}};function et(e,r){let t=new Set(e);t.add(r);let n=[...t];return new _(n)}var U=null,V=false,S=false,w=null,ue=Cr,X=class{exports;constructor(r){this.exports=r;}get ready(){return true}encode(r,t){let{exports:n}=this;if(r.length===0)return {indices:new Uint16Array(0),paddingBits:0};let o=n.alloc(r.length);new Uint8Array(n.memory.buffer).set(r,o);let i=1<<t,a=1;try{let d=n.encode(o,r.length,t,i,a),c=n.get_result_ptr(),u=new Uint16Array(n.memory.buffer,c,d),f=new Uint16Array(d);return f.set(u),{indices:f,paddingBits:n.get_padding_bits()}}finally{n.dealloc(o,r.length);}}decode(r,t,n){let{exports:o}=this;if(r.length===0)return new Uint8Array(0);let s=r.length*2,i=o.alloc(s);new Uint16Array(o.memory.buffer,i,r.length).set(r);let d=1<<t,c=1;try{let u=o.decode(i,r.length,t,d,c,n);if(u===4294967295)throw new Error("[WasmCodec decode] Invalid index in input");let f=o.get_result_ptr(),p=new Uint8Array(o.memory.buffer,f,u),l=new Uint8Array(u);return l.set(p),l}finally{o.dealloc(i,s);}}};async function Cr(){try{if(typeof fetch!="function")return null;let e=await fetch(new URL("./wasm/codec.wasm",import.meta.url));return e.ok?await e.arrayBuffer():null}catch{return null}}async function Ar(e){try{if(e.byteLength<16)return null;let r=new Uint8Array(e,0,4);if(r[0]!==0||r[1]!==97||r[2]!==115||r[3]!==109)return null;let t;try{t=await WebAssembly.compile(e);}catch{return null}let o=(await WebAssembly.instantiate(t,{})).exports;return typeof o.alloc!="function"||typeof o.dealloc!="function"||typeof o.encode!="function"||typeof o.decode!="function"||typeof o.get_result_ptr!="function"||typeof o.get_result_len!="function"||typeof o.get_padding_bits!="function"||!o.memory?null:o}catch{return null}}async function le(){try{if(U)return !0;if(S)return !1;let e=await ue();if(!e)return S=!0,!1;let r=await Ar(e);return r?(U=new X(r),!0):(S=!0,!1)}catch{return S=true,false}}function wr(e,r){let t;return {promise:new Promise((s,i)=>{t=setTimeout(()=>i(new Error(r)),e);}),clear:()=>clearTimeout(t)}}async function tt(){if(U)return;if(w)return w;let e=wr(1e4,"[Ddu64 wasm] WASM initialization timed out (10s)"),r=async()=>{try{if(!await le())throw new Error("[Ddu64 wasm] WASM initialization failed")}finally{e.clear();}};return w=Promise.race([r(),e.promise]).finally(()=>{w=null,V=true;}),w}function nt(){if(U)return U;if(S)return null;if(!V&&!w){V=true;let e;w=new Promise(r=>{e=setTimeout(()=>{S=true,r();},5e3),le().then(t=>{t||(S=true);}).catch(()=>{S=true;}).finally(()=>{e!==void 0&&clearTimeout(e),r();});}).finally(()=>{w=null;});}return null}function Z(){return U}function he(e){if(e===Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(!Number.isFinite(e))throw new Error(`[Ddu64 config] wasmThreshold must be a finite number or Infinity, got ${e}`);return Math.max(1024,Math.min(1048576,Math.round(e)))}function ot(e){ue=e,!U&&!w&&(V=false,S=false);}var Sr=(l=>(l.EncodeFailed="DDU64_ENCODE_FAILED",l.DecodeFailed="DDU64_DECODE_FAILED",l.CompressionFailed="DDU64_COMPRESSION_FAILED",l.DecompressionFailed="DDU64_DECOMPRESSION_FAILED",l.EncryptionFailed="DDU64_ENCRYPTION_FAILED",l.DecryptionFailed="DDU64_DECRYPTION_FAILED",l.ChecksumMismatch="DDU64_CHECKSUM_MISMATCH",l.InvalidCharset="DDU64_INVALID_CHARSET",l.InvalidInput="DDU64_INVALID_INPUT",l.LimitExceeded="DDU64_LIMIT_EXCEEDED",l.AdapterUnavailable="DDU64_ADAPTER_UNAVAILABLE",l.ObfuscationFailed="DDU64_OBFUSCATION_FAILED",l.StreamFailed="DDU64_STREAM_FAILED",l))(Sr||{}),g=class extends Error{code;operation;constructor(r,t){super(r,{cause:t.cause}),this.name=new.target.name,this.code=t.code,this.operation=t.operation;}},J=class extends g{constructor(r,t){super(r,{code:"DDU64_ENCODE_FAILED",operation:"encode",cause:t});}},Q=class extends g{constructor(r,t){super(r,{code:"DDU64_DECODE_FAILED",operation:"decode",cause:t});}},x=class extends g{constructor(r,t){super(r,{code:"DDU64_COMPRESSION_FAILED",operation:"compress",cause:t});}},L=class extends g{constructor(r,t){super(r,{code:"DDU64_DECOMPRESSION_FAILED",operation:"decompress",cause:t});}},P=class extends g{constructor(r,t){super(r,{code:"DDU64_ENCRYPTION_FAILED",operation:"encrypt",cause:t});}},D=class extends g{constructor(r,t){super(r,{code:"DDU64_DECRYPTION_FAILED",operation:"decrypt",cause:t});}},M=class extends g{constructor(r,t){super(r,{code:"DDU64_CHECKSUM_MISMATCH",operation:"checksum",cause:t});}},ee=class extends g{constructor(r,t){super(r,{code:"DDU64_INVALID_CHARSET",operation:"charset",cause:t});}},re=class extends g{constructor(r,t,n){super(r,{code:"DDU64_LIMIT_EXCEEDED",operation:t,cause:n});}},N=class extends g{constructor(r,t,n){super(r,{code:"DDU64_ADAPTER_UNAVAILABLE",operation:t,cause:n});}},I=class extends g{constructor(r,t){super(r,{code:"DDU64_OBFUSCATION_FAILED",operation:"obfuscation",cause:t});}},te=class extends g{constructor(r,t){super(r,{code:"DDU64_STREAM_FAILED",operation:"stream",cause:t});}};function Pr(e){return e instanceof g}function E(e){return e instanceof Error&&e.message?e.message:String(e)}function A(e,r){if(Pr(e))return e;let t=E(e),n=t.toLowerCase();if(n.startsWith("[ddu64")||n.startsWith("[bitpack")){if(n.includes("checksum"))return new M(t,e);if(n.includes("obfuscation"))return new I(t,e);if(n.includes("adapter")||n.includes("sync")||n.includes("provider"))return new N(t,r,e);if(n.includes("encryptionkey")||n.includes("encrypted payload requires"))return r==="encode"?new P(t,e):new D(t,e);if(n.includes("decrypt")||n.includes("decryption")||n.includes("incorrect key"))return new D(t,e);if(n.includes("encrypt"))return new P(t,e);if(n.includes("decompress")||n.includes("inflate"))return new L(t,e);if(n.includes("compress")||n.includes("brotli"))return new x(t,e);if(n.includes("limit")||n.includes("exceeds"))return new re(t,r,e);if(n.includes("charset")||n.includes("character")||n.includes("invalid"))return new ee(t,e)}return r==="stream"?new te(t,e):r==="encode"?new J(t,e):new Q(t,e)}function pe(e,r){let{bitLength:t,usePowerOfTwo:n,charsetSize:o}=r,s=e.length;if(s===0)return {indices:[],paddingBits:0};let i=s*8,a=Math.ceil(i/t),d=n?a:a*2,c=new Array(d),u=0,f=0,p=0;if(n){let h=(1<<t)-1;for(let m=0;m<s;m++)for(f=f<<8|e[m],p+=8;p>=t;)p-=t,c[u++]=f>>p&h,f&=(1<<p)-1;}else for(let h=0;h<s;h++)for(f=f<<8|e[h],p+=8;p>=t;){p-=t;let m=f>>p,y=m/o|0;c[u++]=y,c[u++]=m-y*o,f&=(1<<p)-1;}let l=0;if(p>0){l=t-p;let h=f<<l;if(n)c[u++]=h;else {let m=h/o|0;c[u++]=m,c[u++]=h-m*o;}}return c.length=u,{indices:c,paddingBits:l}}function fe(e,r,t){let{bitLength:n,usePowerOfTwo:o,charsetSize:s}=t,i=e.length;if(i===0)return new Uint8Array(0);let a=o?1:2,d=Math.ceil(i/a),c=n<31?1<<n:Math.pow(2,n),u=Math.ceil((d*n-r)/8),f=new Uint8Array(u+1),p=0,l=0,h=0;if(o)for(let m=0;m<i;m+=a){let y=e[m];if(y<0||y>=s)throw new Error(`[BitPack decode] Invalid index ${y} at position ${m}`);for(l=l<<n|y,h+=n,m+a>=i&&r>0&&(l>>=r,h-=r);h>=8;)h-=8,f[p++]=l>>h&255,l&=(1<<h)-1;}else for(let m=0;m<i;m+=a){let y=e[m],b=e[m+1];if(y<0||y>=s)throw new Error(`[BitPack decode] Invalid index ${y} at position ${m}`);if(b===void 0||b<0||b>=s)throw new Error(`[BitPack decode] Invalid index ${b} at position ${m+1}`);let C=y*s+b;if(C>=c)throw new Error(`[BitPack decode] Value ${C} exceeds range at position ${m}`);for(l=l<<n|C,h+=n,m+a>=i&&r>0&&(l>>=r,h-=r);h>=8;)h-=8,f[p++]=l>>h&255,l&=(1<<h)-1;}return f.subarray(0,p)}function me(e,r){return e<=1?0:r?Math.floor(Math.log2(e)):Math.ceil(Math.log2(e))}function ye(e){return e>0&&(e&e-1)===0}var Dr=(()=>{let e=new Uint32Array(256);for(let r=0;r<256;r++){let t=r;for(let n=0;n<8;n++)t=t>>>1^(t&1?3988292384:0);e[r]=t;}return e})();function K(e){let r=4294967295;for(let t=0;t<e.length;t++)r=r>>>8^Dr[(r^e[t])&255];return ((r^4294967295)>>>0).toString(16).padStart(8,"0")}function ge(e,r){let t=Math.max(e.length,r.length),n=e.length^r.length;for(let o=0;o<t;o++){let s=o<e.length?e.charCodeAt(o):0,i=o<r.length?r.charCodeAt(o):0;n|=s^i;}return n===0}var be=["-","_","."];function Ce(e){return e.length===0?e:e.replaceAll("+","-").replaceAll("/","_").replaceAll("=",".")}function Ae(e){return e.length===0?e:e.replaceAll("-","+").replaceAll("_","/").replaceAll(".","=")}function we(e,r,t){if(r<=0||e.length<=r)return e;let n=Math.ceil(e.length/r),o=new Array(n*2-1),s=0;for(let i=0;i<e.length;i+=r)o[s++]=e.slice(i,i+r),i+r<e.length&&(o[s++]=t);return o.join("")}function Se(e,r){if(e.length===0)return e;let t=r&&r!==`
2
+ `&&r!==`\r
3
+ `&&r!=="\r"?r:"",n=e.includes(`
4
+ `)||e.includes("\r"),o=t.length>0&&e.includes(t);if(!n&&!o)return e;let s=n?e.replace(/[\r\n]/g,""):e;return o&&(s=s.replaceAll(t,"")),s}var Er={"":0,\u3131:1,\u3132:2,\u3133:3,\u3134:4,\u3135:5,\u3136:6,\u3137:7,\u3139:8,\u313A:9,\u313B:10,\u313C:11,\u313D:12,\u313E:13,\u313F:14,\u3140:15,\u3141:16,\u3142:17,\u3144:18,\u3145:19,\u3146:20,\u3147:21,\u3148:22,\u314A:23,\u314B:24,\u314C:25,\u314D:26,\u314E:27};function Ur(e,r){let t=e.charCodeAt(0);if(t<44032||t>55203)return e;let n=t-(t-44032)%28,o=Er[r]??0;return String.fromCharCode(n+o)}function W(e,r){let t=new Array(e.length*r.length),n=0;for(let o of e)for(let s of r)t[n++]=Ur(o,s);return t}function H(e,r){let n=e===void 0||!Number.isFinite(e)?6:Math.floor(e);return Math.min(r==="brotli"?11:9,Math.max(0,n))}var xr=new TextEncoder,Lr=new TextDecoder;function z(e){return xr.encode(e)}function ne(e){return Lr.decode(e)}var kr={symbol:"ddu",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","\uB4C0","\uB31C","\uB3A8"],codaChar:["","\u3131","\u3132","\u3137","\u3148","\u3147","\u3145","\u3146"],maxRequiredLength:64,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true},Br={symbol:"ddu_v1",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","!","?","."],maxRequiredLength:8,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true,usePowerOfTwo:false,encodingProfile:{bitLength:6,usePowerOfTwo:false,bitsPerPadChar:2}},vr={symbol:"oneCharSet",charSet:["A","s","q","r","0","z","3","t","y","1","5","2","4","E","B","C","Q","F","R","T","U","W","V","X","Y","Z","b","a","c","d","D","G","L","H","I","-","J","K","M","O","N","f","e","h","g","P","i","S","k","l","m","u","j","v","n","o","p","9","w","6","7","8","x","_"],paddingChar:"=",maxRequiredLength:64,bitLength:6};function $(e){switch(e){case "ddu":return kr;case "ddu_v1":return Br;case "oneCharSet":return vr;default:return}}var Tr=65536;function Pe(e,r,t,n){let o=(s,i,a,d,c)=>{if(Ir(a,t?.usePowerOfTwo)&&a>0){let p=Math.floor(Math.log2(a)),l=1<<p;return {charSet:s.length===l?s:s.slice(0,l),padding:i,requiredLength:l,bitLength:p,isPredefined:d,useRepeatPadding:c}}return {charSet:s.length===a?s:s.slice(0,a),padding:i,requiredLength:a,bitLength:a>0?Math.ceil(Math.log2(a)):0,isPredefined:d,useRepeatPadding:c}};try{let s=e??t?.dduChar,i=r??t?.paddingChar;if(s){if(!i)throw new Error("[Ddu64 Constructor] paddingChar is required when dduChar is provided.");let p=typeof s=="string"?[...s]:[...s],l=t?.codaChar,h=l?!0:t?.useRepeatPadding??!1;if(l&&l.length>0&&(p=W(p,l)),n&&new Set(p).size!==p.length){let b=p.filter((C,O)=>p.indexOf(C)!==O);throw new Error(`[Ddu64 Constructor] Character set contains duplicate characters: [${[...new Set(b)].join(", ")}]`)}let m=t?.requiredLength??p.length;if(p.length<m)throw new Error("[Ddu64 Constructor] Insufficient characters.");return o(p,i,m,!1,h)}let a=t?.dduSetSymbol??j.dduSetSymbol??"ddu",d=Rr(a),c=d.codaChar?W(d.charSet,d.codaChar):d.charSet,u=o(c,d.paddingChar,d.maxRequiredLength,!0,d.useRepeatPadding),f=d.encodingProfile;return f?(u.encodingProfile=f,u.bitLength=f.bitLength,u.usePowerOfTwo=f.usePowerOfTwo,u.bitsPerPadChar=f.bitsPerPadChar):(u.bitsPerPadChar=d.bitsPerPadChar,u.usePowerOfTwo=d.usePowerOfTwo,d.usePowerOfTwo===!1&&(u.bitLength=d.bitLength)),u}catch(s){if(n)throw s;return oe(t)}}function De(e,r,t){let n=[e,null];for(let s of n){let i=s?{...s}:oe(t);try{let a=i.charSet,d=i.requiredLength,c=Array.from(new Set(a));if(c.length!==a.length){if(r){let p=a.filter((l,h)=>a.indexOf(l)!==h);throw new Error(`[Ddu64 normalizeCharSet] Character set contains duplicate characters: [${[...new Set(p)].join(", ")}]`)}a=c,i.isPredefined||(d=a.length);}if(a.length<d)throw new Error(`[Ddu64 normalizeCharSet] Insufficient characters. Required: ${d}, Has: ${a.length}`);if(d<2)throw new Error("[Ddu64 normalizeCharSet] At least 2 unique characters required.");if(a.length===0)throw new Error("[Ddu64 normalizeCharSet] Empty charset.");if(a.find(p=>p.length!==1)){if(r)throw new Error("[Ddu64 normalizeCharSet] Multi-character symbols are not supported.");continue}if(a.length>Tr){if(r)throw new Error("[Ddu64 normalizeCharSet] Charset size exceeds maximum supported size of 65536.");continue}if(i.padding.length!==1)throw new Error(`[Ddu64 normalizeCharSet] Padding length mismatch. Expected 1, got ${i.padding.length}`);if(a.includes(i.padding)){if(r)throw new Error(`[Ddu64 normalizeCharSet] Padding character "${i.padding}" conflicts with charset.`);a=a.filter(p=>p!==i.padding);}for(let p of a)if(p.includes(`
5
+ `)||p.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");if(i.padding.includes(`
6
+ `)||i.padding.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");return {charSet:a.length===d?a:a.slice(0,d),padding:i.padding,isPredefined:i.isPredefined}}catch(a){if(r)throw a}}let o=oe(t);return {charSet:o.charSet.slice(0,o.requiredLength),padding:o.padding,isPredefined:true}}function Ee(e,r,t){for(let n of be){for(let o of e)if(o.includes(n)){let s=`[Ddu64 Constructor] URL-Safe mode conflict: charset character "${o}" contains "${n}".`;if(t)throw new Error(s);return false}if(r.includes(n)){let o=`[Ddu64 Constructor] URL-Safe mode conflict: padding character "${r}" contains "${n}".`;if(t)throw new Error(o);return false}}return true}function Ue(e,r,t){if(t>256)return;let n=Math.min(e.length,t),o=e.slice(0,n),s=new Set;for(let a=0;a<o.length;a++)s.add(o[a]);s.add(r);for(let a=0;a<o.length;a++){let d=o[a];for(let f=0;f<o.length;f++){let p=d+o[f];if(s.has(p))throw new Error(`Combination conflict: "${d}" + "${o[f]}"`);s.add(p);}let c=d+r;if(s.has(c))throw new Error(`Combination conflict: "${d}" + padding`);s.add(c);let u=r+d;if(s.has(u))throw new Error(`Combination conflict: padding + "${d}"`);s.add(u);}let i=r+r;if(s.has(i))throw new Error("Combination conflict: double padding");s.add(i);}function Ir(e,r){return r!==void 0?r?e>0:false:e>0&&(e&e-1)===0}function Rr(e){let r=$(e);if(!r)throw new Error(`CharSet with symbol ${e} not found`);return r}function oe(e){let r=e?.dduSetSymbol??j.dduSetSymbol??"oneCharSet",t=$(r)??$("oneCharSet");if(!t)throw new Error("Critical: No fallback CharSet available");return {charSet:t.codaChar?W(t.charSet,t.codaChar):t.charSet,padding:t.paddingChar,requiredLength:t.maxRequiredLength,bitLength:t.encodingProfile?.bitLength??t.bitLength,isPredefined:true,useRepeatPadding:t.useRepeatPadding,bitsPerPadChar:t.encodingProfile?.bitsPerPadChar??t.bitsPerPadChar,usePowerOfTwo:t.encodingProfile?.usePowerOfTwo??t.usePowerOfTwo,encodingProfile:t.encodingProfile}}var Or="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function xe(e,r,t,n){return t&&n===6&&r==="="&&e.join("")===Or}function Le(e){let r=_r(e);if(r===null)return null;let t=0,n=r.length;for(;n>0&&r[n-1]==="=";)t++,n--;return {payload:r.slice(0,n),paddingBits:t===2?4:t===1?2:0}}function ke(e,r,t){let n=r===4?2:r===2?1:r===0?0:-1;if(n<0)return null;for(let o=0;o<e.length;o++)if(!t(e.charCodeAt(o)))return null;return Mr(e+"=".repeat(n))}function _r(e){let r=e.toBase64;if(typeof r=="function")return r.call(e);let t=globalThis.Buffer;return t?.from?t.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):null}function Mr(e){let r=Uint8Array;if(typeof r.fromBase64=="function")return r.fromBase64(e);let t=globalThis.Buffer;if(t?.from){let n=t.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}return null}function Y(e){if(!e)throw new Error("[Ddu64 adapter] No platform adapter available. Use encodeAsync()/decodeAsync() in browser environments, or provide an adapter via options.adapter.");return e}function Be(e,r,t){let n=Y(e.adapter);if(!n.encryptSync)throw new Error("[Ddu64 encrypt] Sync encryption unavailable. Use encodeAsync() in browser environments.");let o=Re(e,n,"encrypt");return n.encryptSync(r,o,t)}function ve(e,r,t){let n=Y(e.adapter);if(!n.decryptSync)throw new Error("[Ddu64 decrypt] Sync decryption unavailable. Use decodeAsync() in browser environments.");let o=Re(e,n,"decrypt");return n.decryptSync(r,o,t)}function Te(e,r,t,n){let o=Y(e);if(t==="brotli"){if(!o.brotliCompressSync)throw new Error("[Ddu64 compress] Brotli compression is unavailable in the current runtime.");return o.brotliCompressSync(r,n)}if(!o.deflateSync)throw new Error("[Ddu64 compress] Sync compression unavailable. Use encodeAsync() in browser environments.");return o.deflateSync(r,n)}function Ie(e,r,t,n){let o=Y(e);if(t==="brotli"){if(!o.brotliDecompressSync)throw new Error("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.");return o.brotliDecompressSync(r,n)}if(!o.inflateSync)throw new Error("[Ddu64 decompress] Sync decompression unavailable. Use decodeAsync() in browser environments.");return o.inflateSync(r,n)}function Re(e,r,t){if(e.encryptionKeyHash)return e.encryptionKeyHash;if(!r.deriveKeySync){let o=t==="encrypt"?"encodeAsync":"decodeAsync";throw new Error(`[Ddu64 ${t}] Sync key derivation unavailable. Use ${o}() in browser environments.`)}let n=r.deriveKeySync(e.encryptionKey,e.keyDerivation);return e.setEncryptionKeyHash(n),n}function k(e){let r=e.toLowerCase();return r.includes("adapter")||r.includes("sync")||r.includes("provider")}async function Oe(e,r,t){try{let n=G(e.adapter),o=await Ke(e,n);return await n.encrypt(r,o,t)}catch(n){throw q(n,"encode","encrypt")}}async function _e(e,r,t){try{let n=G(e.adapter),o=await Ke(e,n);return await n.decrypt(r,o,t)}catch(n){throw q(n,"decode","decrypt")}}async function Me(e,r,t,n){try{let o=G(e);if(t==="brotli"){if(!o.brotliCompress)throw new Error("[Ddu64 compress] Brotli compression is unavailable in the current runtime.");return await o.brotliCompress(r,n)}return await o.deflate(r,n)}catch(o){throw q(o,"encode","compress")}}async function Ne(e,r,t,n){try{let o=G(e);if(t==="brotli"){if(!o.brotliDecompress)throw new Error("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.");return await o.brotliDecompress(r,n)}return await o.inflate(r,n)}catch(o){throw q(o,"decode","decompress")}}function G(e){if(!e)throw new Error("[Ddu64 adapter] No platform adapter available. Use @ddunigma/node or @ddunigma/node/browser, or provide an adapter via options.adapter.");return e}async function Ke(e,r){if(e.encryptionKeyHash)return e.encryptionKeyHash;let t=await r.deriveKey(e.encryptionKey,e.keyDerivation);return e.setEncryptionKeyHash(t),t}function q(e,r,t){let n=E(e);if(k(n))return new N(n,r,e);switch(t){case "compress":return new x(n,e);case "decompress":return new L(n,e);case "encrypt":return new P(n,e);case "decrypt":return new D(n,e)}}function He(e,r,t){return e!=null&&typeof e=="object"&&!Array.isArray(e)?{dduChar:void 0,paddingChar:void 0,dduOptions:e}:{dduChar:e,paddingChar:r,dduOptions:t}}function ze(e){let r=new Int32Array(65536);r.fill(-1);let t=new Uint16Array(e.length);for(let n=0;n<e.length;n++){let o=e[n].charCodeAt(0);r[o]=n,t[n]=o;}return {charCodeLookup:r,charCodes:t}}function B(e,r,t,n){if(e===void 0)return r;if(e===Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(!Number.isFinite(e)||e<=0){if(t)throw new Error(`[Ddu64 options] Invalid ${n}. Must be a positive finite number or Infinity.`);return r}return Math.floor(e)}function Fe(e,r,t,n){if(e===0)return 0;if(r<0||r>=t)throw new Error(`[Ddu64 decode] Invalid padding bits: ${r}`);let i=Math.ceil(e/(n?1:2))*t-r;if(i<0)throw new Error("[Ddu64 decode] Invalid decoded bit length");return Math.ceil(i/8)}function Ve(e,r){if(!r&&e.length%2!==0)throw new Error(`[Ddu64 decode] Invalid encoded length for variable charset. Expected multiple of 2, got ${e.length}`)}function We(e,r,t,n){if(e.length===0)return;let o=n?1:2,i=e.length/o*t-r;if(i<0||i%8!==0)throw new Error(`[Ddu64 decode] Invalid encoded bit length. Expected a whole number of bytes, got ${i} bits.`)}function $e(e,r,t,n,o){if(r===0)return;if(e.length===0)throw new Error("[Ddu64 decode] Invalid padding bits without payload");let s=(1<<r)-1,i;if(t){let a=e[e.length-1],d=n[a.charCodeAt(0)];if(d<0)throw new Error(`[Ddu64 decode] Invalid character "${a}" at ${e.length-1}`);i=d;}else {let a=e[e.length-2],d=e[e.length-1],c=n[a.charCodeAt(0)],u=n[d.charCodeAt(0)];if(c<0||u<0)throw new Error("[Ddu64 decode] Invalid character in final encoded chunk");i=c*o+u;}if((i&s)!==0)throw new Error("[Ddu64 decode] Invalid non-zero padding bits in final symbol")}var R="DDS1",v="ELYSIA",T="GRISEO";var Nr=new TextEncoder;function Ye(e,r,t,n=2){let o=e.length,s=r.length,i={cleanedInput:e,paddingBits:0,isEncrypted:false,pipelineVersion:2};if(o<s)return i;let d=Math.max(0,t-1).toString().length;for(let c=Math.min(d,o);c>=1;c--){let u=o-c,f=true;for(let O=u;O<o;O++){let ie=e.charCodeAt(O);if(ie<48||ie>57){f=false;break}}if(!f)continue;let p=e.substring(u),l=parseInt(p,10);if(Number.isNaN(l)||l<0||l>=t||p!==l.toString())continue;let h=u,m=false,y,b=2;h>=2&&e.substring(h-2,h)==="V4"?(b=4,h-=2):h>=2&&e.substring(h-2,h)==="V3"&&(b=3,h-=2),h>=3&&e.substring(h-3,h)==="ENC"&&(m=true,h-=3),h>=v.length&&e.substring(h-v.length,h)===v?(y="deflate",h-=v.length):h>=T.length&&e.substring(h-T.length,h)===T&&(y="brotli",h-=T.length);let C=h-s;if(C>=0&&e.substring(C,h)===r)return {cleanedInput:e.substring(0,C),paddingBits:l,compressionAlgorithm:y,isEncrypted:m,pipelineVersion:b}}if(e.endsWith(r)){let c=0,u=o;for(;u>=s&&e.substring(u-s,u)===r;)c++,u-=s;if(c>0){let f=c*n;if(f<t)return {cleanedInput:e.substring(0,u),paddingBits:f,isEncrypted:false,pipelineVersion:2}}}return i}function Ge(e){let r=e.lastIndexOf("CHK");if(r===-1)return {data:e,checksum:null};let t=e.slice(r+3);return t.length!==8||!/^[0-9a-f]+$/i.test(t)?{data:e,checksum:null}:{data:e.slice(0,r),checksum:t.toLowerCase()}}function Kr(e){return e.length*2+R.length+2}function Pt(e,r){let t=r.compressionAlgorithm==="brotli"?"B":r.compressionAlgorithm==="deflate"?"D":"N",n=r.encrypted?"1":"0";return `${e}${R}${t}${n}${e}`}function Dt(e,r){let t=Kr(r);if(e.length<t||!e.startsWith(r))return null;let n=r.length;if(e.slice(n,n+R.length)!==R)throw new Error("[wireFormat] Invalid stream header magic");let s=e[n+R.length],i=e[n+R.length+1];if(e.slice(t-r.length,t)!==r)throw new Error("[wireFormat] Invalid stream header terminator");let d=s==="B"?"brotli":s==="D"?"deflate":s==="N"?void 0:null;if(d===null)throw new Error("[wireFormat] Invalid stream header compression flag");if(i!=="0"&&i!=="1")throw new Error("[wireFormat] Invalid stream header encryption flag");return {compressionAlgorithm:d,encrypted:i==="1"}}function qe(e){let{paddingBits:r,compressionAlgorithm:t,isEncrypted:n,paddingChar:o,useRepeatPadding:s,bitsPerPadChar:i=2,pipelineVersion:a=2}=e;if(!n&&a!==2)throw new Error("[wireFormat] Pipeline version markers require encryption");if(r===0&&!t&&!n&&a===2)return "";if(s&&!t&&!n&&a===2&&r>0&&r%i===0){let c=r/i;return o.repeat(c)}return o+(t==="deflate"?v:t==="brotli"?T:"")+(n?"ENC":"")+(a===4?"V4":a===3?"V3":"")+r.toString()}function F(e){return Nr.encode(`ddunigma:wire:v4;enc=1;compress=${e.compressionAlgorithm??"none"}`)}function je(e,r,t){let n=r?.checksum??t.defaultChecksum,o=r?.compress!==false,s=r?.encrypt!==false,i=e;t.reportDecodeStart(e.length);let a=r?.chunkSeparator??t.defaultChunkSeparator;i=Se(i,a),t.urlSafe&&(i=Ae(i));let d=null;if(n){let C=Ge(i);d=C.checksum,i=C.data;}t.shouldObfuscate(r)&&(i=t.deobfuscate(i));let{cleanedInput:c,paddingBits:u,compressionAlgorithm:f,isEncrypted:p,pipelineVersion:l}=Ye(i,t.paddingChar,t.bitLength,t.bitsPerPadChar);if(p&&s&&!t.encryptionKey)throw new Error("[Ddu64 decode] Encrypted payload requires an encryptionKey");let h=p&&l===4?F({compressionAlgorithm:f}):void 0;Ve(c,t.usePowerOfTwo),$e(c,u,t.usePowerOfTwo,t.dduCharCodeLookup,t.charSetSize),We(c,u,t.bitLength,t.usePowerOfTwo);let m=B(r?.maxDecodedBytes,t.defaultMaxDecodedBytes,true,"maxDecodedBytes"),y=Fe(c.length,u,t.bitLength,t.usePowerOfTwo);if(y>m)throw new Error(`[Ddu64 decode] Decoded output exceeds limit. Estimated: ${y} bytes, Limit: ${m} bytes`);return t.reportBitpackDecode(c.length,e.length),{decoded:t.decodeChars(c,u),extractedChecksum:d,compressionAlgorithm:f,isEncrypted:p,pipelineVersion:l,encryptionAAD:h,allowInternalDecompress:o,allowInternalDecrypt:s}}function Xe(e){return e.omitFooter?"":qe({paddingBits:e.paddingBits,compressionAlgorithm:e.compressionAlgorithm,isEncrypted:e.isEncrypted,paddingChar:e.paddingChar,useRepeatPadding:e.useRepeatPadding&&!e.compressionAlgorithm&&!e.isEncrypted,bitsPerPadChar:e.bitsPerPadChar,pipelineVersion:e.isEncrypted?e.pipelineVersion:2})}function Ze(e){let r=e.encoded;return e.shouldObfuscate(e.options)&&(r=e.getObfuscationLayer().obfuscate(r)),e.shouldChecksum&&e.checksum&&(r=r+"CHK"+e.checksum),e.urlSafe&&(r=Ce(r)),e.chunkSize&&e.chunkSize>0&&(e.assertSafeChunkSeparator(r,e.chunkSeparator),r=we(r,e.chunkSize,e.chunkSeparator)),r}function Je(e,r){let t=e.length;if(t<=8192){let i=new Uint16Array(t);for(let a=0;a<t;a++)i[a]=r[e[a]];return String.fromCharCode.apply(null,i)}let n=new Uint16Array(t);for(let i=0;i<t;i++)n[i]=r[e[i]];let o=new Array(Math.ceil(t/8192)),s=0;for(let i=0;i<t;i+=8192){let a=n.subarray(i,Math.min(i+8192,t));o[s++]=String.fromCharCode.apply(null,a);}return o.join("")}function Qe(e,r,t,n,o){if(e.length===0)return "";let s=o.canUseNativeBase64?Le(e):null,i,a;if(s)i=s.paddingBits,a=s.payload;else {let c=zr(e,o);i=c.paddingBits,a=Je(c.indices,o.dduCharCodes);}let d=Xe({paddingBits:i,compressionAlgorithm:r,isEncrypted:t,paddingChar:o.paddingChar,useRepeatPadding:o.useRepeatPadding,bitsPerPadChar:o.bitsPerPadChar,pipelineVersion:o.encryptedPipelineVersion,omitFooter:n?.omitFooter});return a+d}function er(e,r,t){let n=e.length;if(n===0)return new Uint8Array(0);let o=t.canUseNativeBase64?ke(e,r,d=>t.dduCharCodeLookup[d]>=0):null;if(o)return o;let i=n>=t.wasmThreshold?new Uint16Array(n):new Array(n);for(let d=0;d<n;d++){let c=t.dduCharCodeLookup[e.charCodeAt(d)];if(c<0)throw new Error(`[Ddu64 decode] Invalid character "${e[d]}" at ${d}`);i[d]=c;}let a=rr(n,t)?Z():null;if(a?.ready&&t.usePowerOfTwo){let d=i instanceof Uint16Array?i:Uint16Array.from(i);return a.decode(d,t.bitLength,r)}return fe(i,r,t.bitPackConfig)}function zr(e,r){let t=rr(e.length,r)?Z():null;return t?.ready&&r.usePowerOfTwo?t.encode(e,r.bitLength):pe(e,r.bitPackConfig)}function rr(e,r){return e>=r.wasmThreshold}function tr(e,r){let t=new Set(e);t.add(r);let n=v+T+"ENC"+"V3"+"V4";for(let o of n)t.add(o);for(let o of "0123456789")t.add(o);return [...t]}function nr(e,r,t){let n=e.decoded;return n=$r(e,t,n),n=Yr(e,r,t,n),dr(e,t,r,n),n=Gr(e,t,n),ur(t,n),n}async function or(e,r,t){let n=e.decoded;if(ir(e,t)&&(t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:55,stage:"decrypt"}),n=await t.decrypt(n,e.encryptionAAD)),ar(e)){let o=cr(r,t);t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:70,stage:"decompress"}),n=await t.decompress(n,e.compressionAlgorithm,o);}return dr(e,t,r,n),sr(e,t)&&(t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:90,stage:"decrypt"}),n=await t.decrypt(n,e.encryptionAAD)),ur(t,n),n}function $r(e,r,t){return ir(e,r)?(r.reportProgress({processedBytes:t.length,totalBytes:t.length,percent:55,stage:"decrypt"}),r.decrypt(t,e.encryptionAAD)):t}function Yr(e,r,t,n){if(!ar(e))return n;let o=cr(r,t);return t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:70,stage:"decompress"}),t.decompress(n,e.compressionAlgorithm,o)}function Gr(e,r,t){return sr(e,r)?(r.reportProgress({processedBytes:t.length,totalBytes:t.length,percent:90,stage:"decrypt"}),r.decrypt(t,e.encryptionAAD)):t}function ir(e,r){return (e.pipelineVersion===3||e.pipelineVersion===4)&&e.isEncrypted&&!!r.encryptionKey&&e.allowInternalDecrypt}function sr(e,r){return e.pipelineVersion===2&&e.isEncrypted&&!!r.encryptionKey&&e.allowInternalDecrypt}function ar(e){return !!e.compressionAlgorithm&&e.allowInternalDecompress&&(e.pipelineVersion===2||!e.isEncrypted||e.allowInternalDecrypt)}function dr(e,r,t,n){if(!e.extractedChecksum||!(e.pipelineVersion===2||!e.isEncrypted||e.allowInternalDecrypt))return;r.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:85,stage:"checksum"});let o=K(n);if(!ge(o,e.extractedChecksum))throw new M(`[Ddu64 decode] Checksum mismatch. Expected: ${e.extractedChecksum}, Got: ${o}`)}function cr(e,r){return B(e?.maxDecompressedBytes,r.defaultMaxDecompressedBytes,true,"maxDecompressedBytes")}function ur(e,r){e.reportProgress({processedBytes:r.length,totalBytes:r.length,percent:100,stage:"done"});}function lr(e,r,t){let n=pr(r,t),o=typeof e=="string"?z(e):e;fr(t,o.length);let s=n.shouldChecksum?K(o):"",i,a;if(n.shouldCompress){let c=r?.compressionAlgorithm??t.defaultCompressionAlgorithm,u=H(r?.compressionLevel??t.defaultCompressionLevel,c);mr(t,o.length);let f=t.compress(o,c,u);a=f.length,f.length<o.length&&(o=f,i=c);}let d=false;return n.shouldEncrypt&&(yr(t,o.length),o=t.encrypt(o,t.getEncryptionAAD(i)),d=true),{encoded:t.finalize(o,i,d,s,n.shouldChecksum,n.chunkSize,n.chunkSeparator),compressedSize:a}}async function hr(e,r,t){let n=pr(r,t),o=typeof e=="string"?z(e):e;fr(t,o.length);let s=n.shouldChecksum?K(o):"",i;if(n.shouldCompress){let d=r?.compressionAlgorithm??t.defaultCompressionAlgorithm,c=H(r?.compressionLevel??t.defaultCompressionLevel,d);mr(t,o.length);let u=await t.compress(o,d,c);u.length<o.length&&(o=u,i=d);}let a=false;return n.shouldEncrypt&&(yr(t,o.length),o=await t.encrypt(o,t.getEncryptionAAD(i)),a=true),t.finalize(o,i,a,s,n.shouldChecksum,n.chunkSize,n.chunkSeparator)}function pr(e,r){return {shouldCompress:e?.compress??r.defaultCompress,shouldChecksum:e?.checksum??r.defaultChecksum,shouldEncrypt:(e?.encrypt??true)&&r.hasEncryptionKey,chunkSize:e?.chunkSize??r.defaultChunkSize,chunkSeparator:e?.chunkSeparator??r.defaultChunkSeparator}}function fr(e,r){e.reportProgress({processedBytes:0,totalBytes:r,percent:0,stage:"start"});}function mr(e,r){e.reportProgress({processedBytes:r,totalBytes:r,percent:20,stage:"compress"});}function yr(e,r){e.reportProgress({processedBytes:r,totalBytes:r,percent:45,stage:"encrypt"});}var jr=64*1024*1024,Xr=64*1024*1024,gr=class{dduChar;dduCharCodes;paddingChar;bitLength;usePowerOfTwo;dduCharCodeLookup;isPredefinedCharSet;defaultCompress;defaultMaxDecodedBytes;defaultMaxDecompressedBytes;urlSafe;encryptionKey;keyDerivation;encryptionKeyHash;defaultChecksum;defaultChunkSize;defaultChunkSeparator;defaultCompressionLevel;defaultCompressionAlgorithm;useRepeatPadding;bitsPerPadChar;bitPackConfig;wasmThreshold;canUseNativeBase64;payloadCodecContext;adapter;defaultObfuscate;obfuscationLayer;constructor(r,t,n){let o=He(r,t,n);r=o.dduChar,t=o.paddingChar,n=o.dduOptions;let s=n?.throwOnError??false;n?.adapter?this.adapter=n.adapter:this.adapter=void 0;let i=Pe(r,t,n,s),a=De(i,s,n);this.dduChar=a.charSet,this.paddingChar=a.padding,this.isPredefinedCharSet=a.isPredefined,this.defaultCompress=n?.compress??false,this.defaultMaxDecodedBytes=B(n?.maxDecodedBytes,jr,s,"maxDecodedBytes"),this.defaultMaxDecompressedBytes=B(n?.maxDecompressedBytes,Xr,s,"maxDecompressedBytes");let d=this.dduChar.length,c=ye(d),u=n?.usePowerOfTwo,f=i.encodingProfile;this.usePowerOfTwo=f?.usePowerOfTwo??i.usePowerOfTwo??(u!==void 0?u&&c:c);let p=f?.bitLength??(i.isPredefined&&i.usePowerOfTwo!==void 0?i.bitLength:void 0);this.bitLength=p??me(d,this.usePowerOfTwo);let l=ze(this.dduChar);this.dduCharCodeLookup=l.charCodeLookup,this.dduCharCodes=l.charCodes,this.isPredefinedCharSet||Ue(this.dduChar,this.paddingChar,d);let h=n?.urlSafe??false;if(this.urlSafe=h?Ee(this.dduChar,this.paddingChar,s):false,this.encryptionKey=n?.encryptionKey,this.keyDerivation=n?.keyDerivation,this.encryptionKey&&this.adapter?.deriveKeySync&&(this.encryptionKeyHash=this.adapter.deriveKeySync(this.encryptionKey,this.keyDerivation)),this.defaultChecksum=n?.checksum??false,this.defaultChunkSize=n?.chunkSize,this.defaultChunkSeparator=n?.chunkSeparator??`
7
+ `,this.defaultCompressionAlgorithm=n?.compressionAlgorithm??"deflate",this.defaultCompressionLevel=H(n?.compressionLevel,this.defaultCompressionAlgorithm),this.useRepeatPadding=n?.useRepeatPadding??i.useRepeatPadding??false,this.bitsPerPadChar=f?.bitsPerPadChar??i.bitsPerPadChar??2,this.defaultObfuscate=n?.obfuscate??false,this.defaultObfuscate&&!this.encryptionKey)throw new I("[Ddu64 obfuscation] Obfuscation requires encryption to be enabled.");this.bitPackConfig={bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,charsetSize:d},this.wasmThreshold=he(n?.wasmThreshold??4096),this.canUseNativeBase64=xe(this.dduChar,this.paddingChar,this.usePowerOfTwo,this.bitLength),this.payloadCodecContext={bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,bitPackConfig:this.bitPackConfig,wasmThreshold:this.wasmThreshold,canUseNativeBase64:this.canUseNativeBase64,dduCharCodes:this.dduCharCodes,dduCharCodeLookup:this.dduCharCodeLookup,paddingChar:this.paddingChar,useRepeatPadding:this.useRepeatPadding,bitsPerPadChar:this.bitsPerPadChar,encryptedPipelineVersion:4};}encode(r,t){try{return this.encodeInternal(r,t).encoded}catch(n){throw A(n,"encode")}}decode(r,t){try{let n=this.decodeToUint8Array(r,t);return ne(n)}catch(n){throw A(n,"decode")}}decodeToUint8Array(r,t){try{return this.decodeToUint8ArrayInternal(r,t)}catch(n){throw A(n,"decode")}}decodeToUint8ArrayInternal(r,t){let n=this.decodePrelude(r,t);return nr(n,t,{encryptionKey:this.encryptionKey,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,reportProgress:o=>this.reportProgress(t,o),decrypt:(o,s)=>this.decryptSync(o,s),decompress:(o,s,i)=>this.decompressSync(o,s,i)})}async encodeAsync(r,t){try{return await this.encodeAsyncInternal(r,t)}catch(n){throw A(n,"encode")}}async encodeAsyncInternal(r,t){return hr(r,t,{defaultCompress:this.defaultCompress,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm,hasEncryptionKey:!!this.encryptionKey,reportProgress:n=>this.reportProgress(t,n),getEncryptionAAD:n=>F({compressionAlgorithm:n}),compress:(n,o,s)=>Me(this.adapter,n,o,s),encrypt:(n,o)=>Oe(this.getSyncGatewayContext(),n,o),finalize:(n,o,s,i,a,d,c)=>this.finalizeEncode(n,o,s,i,a,d,c,t)})}async decodeAsync(r,t){try{let n=await this.decodeToUint8ArrayAsync(r,t);return ne(n)}catch(n){throw A(n,"decode")}}async decodeToUint8ArrayAsync(r,t){try{return await this.decodeToUint8ArrayAsyncInternal(r,t)}catch(n){throw A(n,"decode")}}async decodeToUint8ArrayAsyncInternal(r,t){let n=this.decodePrelude(r,t);return or(n,t,{encryptionKey:this.encryptionKey,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,reportProgress:o=>this.reportProgress(t,o),decrypt:(o,s)=>_e(this.getSyncGatewayContext(),o,s),decompress:(o,s,i)=>Ne(this.adapter,o,s,i)})}getCharSetInfo(){return {charSet:[...this.dduChar],paddingChar:this.paddingChar,bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,encoding:"utf-8",defaultCompress:this.defaultCompress,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,urlSafe:this.urlSafe,hasEncryptionKey:!!this.encryptionKey,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm}}getStats(r,t){let o=(typeof r=="string"?z(r):r).length,{encoded:s,compressedSize:i}=this.encodeInternal(r,t),a=s.length,d=o>0?a/o:0,u=(t?.compress??this.defaultCompress)&&i!==void 0&&o>0?i/o:void 0;return {originalSize:o,encodedSize:a,compressedSize:i,compressionRatio:u,expansionRatio:d,charsetSize:this.dduChar.length,bitLength:this.bitLength}}encodeInternal(r,t){return lr(r,t,{defaultCompress:this.defaultCompress,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm,hasEncryptionKey:!!this.encryptionKey,reportProgress:n=>this.reportProgress(t,n),getEncryptionAAD:n=>F({compressionAlgorithm:n}),compress:(n,o,s)=>this.compressSync(n,o,s),encrypt:(n,o)=>this.encryptSync(n,o),finalize:(n,o,s,i,a,d,c)=>this.finalizeEncode(n,o,s,i,a,d,c,t)})}finalizeEncode(r,t,n,o,s,i,a,d){this.reportProgress(d,{processedBytes:r.length,totalBytes:r.length,percent:70,stage:"encode"});let c=Qe(r,t,n,d,this.getPayloadCodecContext());return c=this.applyPostEncoding(c,d,o,s,i,a),this.reportProgress(d,{processedBytes:r.length,totalBytes:r.length,percent:100,stage:"done"}),c}applyPostEncoding(r,t,n,o,s,i){return Ze({encoded:r,options:t,checksum:n,shouldChecksum:o,chunkSize:s,chunkSeparator:i,urlSafe:this.urlSafe,shouldObfuscate:a=>this.shouldObfuscate(a),getObfuscationLayer:()=>this.getObfuscationLayer(),assertSafeChunkSeparator:(a,d)=>this.assertSafeChunkSeparator(a,d)})}decodePrelude(r,t){return je(r,t,{defaultChecksum:this.defaultChecksum,defaultChunkSeparator:this.defaultChunkSeparator,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,urlSafe:this.urlSafe,paddingChar:this.paddingChar,bitLength:this.bitLength,bitsPerPadChar:this.bitsPerPadChar,usePowerOfTwo:this.usePowerOfTwo,dduCharCodeLookup:this.dduCharCodeLookup,charSetSize:this.dduChar.length,encryptionKey:this.encryptionKey,shouldObfuscate:n=>this.shouldObfuscate(n),deobfuscate:n=>this.getObfuscationLayer().deobfuscate(n),decodeChars:(n,o)=>er(n,o,this.getPayloadCodecContext()),reportDecodeStart:n=>{this.reportProgress(t,{processedBytes:0,totalBytes:n,percent:0,stage:"start"});},reportBitpackDecode:(n,o)=>{this.reportProgress(t,{processedBytes:n,totalBytes:o,percent:30,stage:"decode"});}})}getPayloadCodecContext(){return this.payloadCodecContext}reportProgress(r,t){r?.onProgress?.(t);}encryptSync(r,t){try{return Be(this.getSyncGatewayContext(),r,t)}catch(n){let o=E(n);throw k(o)?A(n,"encode"):new P(o,n)}}decryptSync(r,t){try{return ve(this.getSyncGatewayContext(),r,t)}catch(n){let o=E(n);throw k(o)?A(n,"decode"):new D(o,n)}}compressSync(r,t,n){try{return Te(this.adapter,r,t,n)}catch(o){let s=E(o);throw k(s)?A(o,"encode"):new x(s,o)}}decompressSync(r,t,n){try{return Ie(this.adapter,r,t,n)}catch(o){let s=E(o);throw k(s)?A(o,"decode"):new L(s,o)}}getSyncGatewayContext(){return {adapter:this.adapter,encryptionKey:this.encryptionKey,keyDerivation:this.keyDerivation,encryptionKeyHash:this.encryptionKeyHash,setEncryptionKeyHash:r=>{this.encryptionKeyHash=r;}}}getObfuscationLayer(){return this.obfuscationLayer||(this.obfuscationLayer=new _(tr(this.dduChar,this.paddingChar))),this.obfuscationLayer}shouldObfuscate(r){let t=r?.obfuscate??this.defaultObfuscate;if(t&&!this.encryptionKey)throw new I("[Ddu64 obfuscation] Obfuscation requires encryption to be enabled.");return t}assertSafeChunkSeparator(r,t){if(!(t.length===0||this.isLineBreakSeparator(t))&&r.includes(t))throw new Error(`[Ddu64 chunking] Unsafe chunkSeparator "${t}" appears in encoded output. Use a separator that cannot be produced by the charset, footer, checksum, or URL-safe output.`)}isLineBreakSeparator(r){return r===`
8
+ `||r===`\r
9
+ `||r==="\r"}};var br=class e{chars=[];constructor(){}static create(){return new e}static fromUnicodeRange(r,t){return new e().addUnicodeRange(r,t)}static fromString(r){return new e().addString(r)}static base64(){return new e().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")}static base32(){return new e().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567")}static uppercase(){return e.fromUnicodeRange(65,90)}static lowercase(){return e.fromUnicodeRange(97,122)}static digits(){return e.fromUnicodeRange(48,57)}static hangulJamo(){return new e().addUnicodeRange(4352,4370).addUnicodeRange(4449,4469).addUnicodeRange(4520,4546)}addUnicodeRange(r,t){for(let n=r;n<=t;n++)this.chars.push(String.fromCodePoint(n));return this}addString(r){return typeof r=="string"?this.chars.push(...r):this.chars.push(...r),this}add(...r){return this.chars.push(...r),this}excludeConfusing(){let r=new Set(["0","O","o","1","l","I","i","|","L"]);return this.chars=this.chars.filter(t=>!r.has(t)),this}exclude(...r){let t=new Set(r);return this.chars=this.chars.filter(n=>!t.has(n)),this}excludeUrlUnsafe(){let r=new Set(["+","/","=","?","&","#","%"," "]);return this.chars=this.chars.filter(t=>!r.has(t)),this}unique(){return this.chars=[...new Set(this.chars)],this}shuffle(r){let t=r!==void 0?this.seededRandom(r):Math.random;for(let n=this.chars.length-1;n>0;n--){let o=Math.floor(t()*(n+1));[this.chars[n],this.chars[o]]=[this.chars[o],this.chars[n]];}return this}seededRandom(r){let t=r|0||1;return ()=>(t^=t<<13,t^=t>>17,t^=t<<5,(t>>>0)/4294967296)}limit(r){return this.chars=this.chars.slice(0,r),this}limitToPowerOfTwo(){let r=this.chars.length;if(r===0)return this;let t=1<<Math.floor(Math.log2(r));return this.chars=this.chars.slice(0,t),this}sort(){return this.chars.sort(),this}reverse(){return this.chars.reverse(),this}get length(){return this.chars.length}buildString(){return this.chars.join("")}build(){return [...this.chars]}buildWithPadding(r){let t=[...this.chars],n=r;if(!n){let o=["=",".","_","-","~","!"];for(let s of o)if(!t.includes(s)){n=s;break}if(!n)throw new Error("Cannot find suitable padding character")}return {charset:t,padding:n}}};export{Dt as A,gr as B,br as C,se as a,_ as b,et as c,tt as d,nt as e,Z as f,ot as g,Sr as h,g as i,J as j,Q as k,x as l,L as m,P as n,D as o,M as p,ee as q,re as r,N as s,I as t,te as u,Pr as v,A as w,He as x,Kr as y,Pt as z};//# sourceMappingURL=chunk-65RDFQV7.js.map
10
+ //# sourceMappingURL=chunk-65RDFQV7.js.map
@@ -0,0 +1,10 @@
1
+ 'use strict';var _documentCurrentScript=typeof document!=='undefined'?document.currentScript:null;var se=(n=>(n.DDU="ddu",n.DDU_V1="ddu_v1",n.ONECHARSET="oneCharSet",n))(se||{}),j={dduSetSymbol:"ddu",usePowerOfTwo:true,requiredLength:64};function ae(e){if(e.length===0)throw new Error("[Ddu64 obfuscation] Alphabet must not be empty.");if(e.length>11172)throw new Error(`[Ddu64 obfuscation] Alphabet size (${e.length}) exceeds available Hangul syllables (11172).`);let r=Math.floor(11172/e.length),t=new Map;for(let n=0;n<e.length;n++)t.set(e[n],n);return {alphabet:e,syllablesPerChar:r,charToIndex:t}}function de(e,r,t){let n=44032+e*t.syllablesPerChar,o=r%t.syllablesPerChar;return n+o}function ce(e,r){if(e<44032||e>55203)return -1;let t=e-44032,n=Math.floor(t/r.syllablesPerChar);return n>=r.alphabet.length?-1:n}var _=class{config;constructor(r){this.config=ae(r);}obfuscate(r){if(r.length===0)return "";let t=new Array(r.length);for(let n=0;n<r.length;n++){let o=r[n],s=this.config.charToIndex.get(o);if(s===void 0)throw new Error(`[Ddu64 obfuscation] Character "${o}" (U+${o.charCodeAt(0).toString(16).padStart(4,"0").toUpperCase()}) not found in obfuscation alphabet.`);let i=de(s,n,this.config);t[n]=String.fromCharCode(i);}return t.join("")}deobfuscate(r){if(r.length===0)return "";let t=new Array(r.length);for(let n=0;n<r.length;n++){let o=r.charCodeAt(n),s=ce(o,this.config);if(s===-1)throw new Error(`[Ddu64 obfuscation] Invalid syllable at position ${n}: U+${o.toString(16).padStart(4,"0").toUpperCase()} is not in the mapped range.`);t[n]=this.config.alphabet[s];}return t.join("")}};function et(e,r){let t=new Set(e);t.add(r);let n=[...t];return new _(n)}var U=null,V=false,S=false,w=null,ue=Cr,X=class{exports;constructor(r){this.exports=r;}get ready(){return true}encode(r,t){let{exports:n}=this;if(r.length===0)return {indices:new Uint16Array(0),paddingBits:0};let o=n.alloc(r.length);new Uint8Array(n.memory.buffer).set(r,o);let i=1<<t,a=1;try{let d=n.encode(o,r.length,t,i,a),c=n.get_result_ptr(),u=new Uint16Array(n.memory.buffer,c,d),f=new Uint16Array(d);return f.set(u),{indices:f,paddingBits:n.get_padding_bits()}}finally{n.dealloc(o,r.length);}}decode(r,t,n){let{exports:o}=this;if(r.length===0)return new Uint8Array(0);let s=r.length*2,i=o.alloc(s);new Uint16Array(o.memory.buffer,i,r.length).set(r);let d=1<<t,c=1;try{let u=o.decode(i,r.length,t,d,c,n);if(u===4294967295)throw new Error("[WasmCodec decode] Invalid index in input");let f=o.get_result_ptr(),p=new Uint8Array(o.memory.buffer,f,u),l=new Uint8Array(u);return l.set(p),l}finally{o.dealloc(i,s);}}};async function Cr(){try{if(typeof fetch!="function")return null;let e=await fetch(new URL("./wasm/codec.wasm",(typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.tagName.toUpperCase() === 'SCRIPT' && _documentCurrentScript.src || new URL('chunk-FACJ5LAG.cjs', document.baseURI).href))));return e.ok?await e.arrayBuffer():null}catch{return null}}async function Ar(e){try{if(e.byteLength<16)return null;let r=new Uint8Array(e,0,4);if(r[0]!==0||r[1]!==97||r[2]!==115||r[3]!==109)return null;let t;try{t=await WebAssembly.compile(e);}catch{return null}let o=(await WebAssembly.instantiate(t,{})).exports;return typeof o.alloc!="function"||typeof o.dealloc!="function"||typeof o.encode!="function"||typeof o.decode!="function"||typeof o.get_result_ptr!="function"||typeof o.get_result_len!="function"||typeof o.get_padding_bits!="function"||!o.memory?null:o}catch{return null}}async function le(){try{if(U)return !0;if(S)return !1;let e=await ue();if(!e)return S=!0,!1;let r=await Ar(e);return r?(U=new X(r),!0):(S=!0,!1)}catch{return S=true,false}}function wr(e,r){let t;return {promise:new Promise((s,i)=>{t=setTimeout(()=>i(new Error(r)),e);}),clear:()=>clearTimeout(t)}}async function tt(){if(U)return;if(w)return w;let e=wr(1e4,"[Ddu64 wasm] WASM initialization timed out (10s)"),r=async()=>{try{if(!await le())throw new Error("[Ddu64 wasm] WASM initialization failed")}finally{e.clear();}};return w=Promise.race([r(),e.promise]).finally(()=>{w=null,V=true;}),w}function nt(){if(U)return U;if(S)return null;if(!V&&!w){V=true;let e;w=new Promise(r=>{e=setTimeout(()=>{S=true,r();},5e3),le().then(t=>{t||(S=true);}).catch(()=>{S=true;}).finally(()=>{e!==void 0&&clearTimeout(e),r();});}).finally(()=>{w=null;});}return null}function Z(){return U}function he(e){if(e===Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(!Number.isFinite(e))throw new Error(`[Ddu64 config] wasmThreshold must be a finite number or Infinity, got ${e}`);return Math.max(1024,Math.min(1048576,Math.round(e)))}function ot(e){ue=e,!U&&!w&&(V=false,S=false);}var Sr=(l=>(l.EncodeFailed="DDU64_ENCODE_FAILED",l.DecodeFailed="DDU64_DECODE_FAILED",l.CompressionFailed="DDU64_COMPRESSION_FAILED",l.DecompressionFailed="DDU64_DECOMPRESSION_FAILED",l.EncryptionFailed="DDU64_ENCRYPTION_FAILED",l.DecryptionFailed="DDU64_DECRYPTION_FAILED",l.ChecksumMismatch="DDU64_CHECKSUM_MISMATCH",l.InvalidCharset="DDU64_INVALID_CHARSET",l.InvalidInput="DDU64_INVALID_INPUT",l.LimitExceeded="DDU64_LIMIT_EXCEEDED",l.AdapterUnavailable="DDU64_ADAPTER_UNAVAILABLE",l.ObfuscationFailed="DDU64_OBFUSCATION_FAILED",l.StreamFailed="DDU64_STREAM_FAILED",l))(Sr||{}),g=class extends Error{code;operation;constructor(r,t){super(r,{cause:t.cause}),this.name=new.target.name,this.code=t.code,this.operation=t.operation;}},J=class extends g{constructor(r,t){super(r,{code:"DDU64_ENCODE_FAILED",operation:"encode",cause:t});}},Q=class extends g{constructor(r,t){super(r,{code:"DDU64_DECODE_FAILED",operation:"decode",cause:t});}},x=class extends g{constructor(r,t){super(r,{code:"DDU64_COMPRESSION_FAILED",operation:"compress",cause:t});}},L=class extends g{constructor(r,t){super(r,{code:"DDU64_DECOMPRESSION_FAILED",operation:"decompress",cause:t});}},P=class extends g{constructor(r,t){super(r,{code:"DDU64_ENCRYPTION_FAILED",operation:"encrypt",cause:t});}},D=class extends g{constructor(r,t){super(r,{code:"DDU64_DECRYPTION_FAILED",operation:"decrypt",cause:t});}},M=class extends g{constructor(r,t){super(r,{code:"DDU64_CHECKSUM_MISMATCH",operation:"checksum",cause:t});}},ee=class extends g{constructor(r,t){super(r,{code:"DDU64_INVALID_CHARSET",operation:"charset",cause:t});}},re=class extends g{constructor(r,t,n){super(r,{code:"DDU64_LIMIT_EXCEEDED",operation:t,cause:n});}},N=class extends g{constructor(r,t,n){super(r,{code:"DDU64_ADAPTER_UNAVAILABLE",operation:t,cause:n});}},I=class extends g{constructor(r,t){super(r,{code:"DDU64_OBFUSCATION_FAILED",operation:"obfuscation",cause:t});}},te=class extends g{constructor(r,t){super(r,{code:"DDU64_STREAM_FAILED",operation:"stream",cause:t});}};function Pr(e){return e instanceof g}function E(e){return e instanceof Error&&e.message?e.message:String(e)}function A(e,r){if(Pr(e))return e;let t=E(e),n=t.toLowerCase();if(n.startsWith("[ddu64")||n.startsWith("[bitpack")){if(n.includes("checksum"))return new M(t,e);if(n.includes("obfuscation"))return new I(t,e);if(n.includes("adapter")||n.includes("sync")||n.includes("provider"))return new N(t,r,e);if(n.includes("encryptionkey")||n.includes("encrypted payload requires"))return r==="encode"?new P(t,e):new D(t,e);if(n.includes("decrypt")||n.includes("decryption")||n.includes("incorrect key"))return new D(t,e);if(n.includes("encrypt"))return new P(t,e);if(n.includes("decompress")||n.includes("inflate"))return new L(t,e);if(n.includes("compress")||n.includes("brotli"))return new x(t,e);if(n.includes("limit")||n.includes("exceeds"))return new re(t,r,e);if(n.includes("charset")||n.includes("character")||n.includes("invalid"))return new ee(t,e)}return r==="stream"?new te(t,e):r==="encode"?new J(t,e):new Q(t,e)}function pe(e,r){let{bitLength:t,usePowerOfTwo:n,charsetSize:o}=r,s=e.length;if(s===0)return {indices:[],paddingBits:0};let i=s*8,a=Math.ceil(i/t),d=n?a:a*2,c=new Array(d),u=0,f=0,p=0;if(n){let h=(1<<t)-1;for(let m=0;m<s;m++)for(f=f<<8|e[m],p+=8;p>=t;)p-=t,c[u++]=f>>p&h,f&=(1<<p)-1;}else for(let h=0;h<s;h++)for(f=f<<8|e[h],p+=8;p>=t;){p-=t;let m=f>>p,y=m/o|0;c[u++]=y,c[u++]=m-y*o,f&=(1<<p)-1;}let l=0;if(p>0){l=t-p;let h=f<<l;if(n)c[u++]=h;else {let m=h/o|0;c[u++]=m,c[u++]=h-m*o;}}return c.length=u,{indices:c,paddingBits:l}}function fe(e,r,t){let{bitLength:n,usePowerOfTwo:o,charsetSize:s}=t,i=e.length;if(i===0)return new Uint8Array(0);let a=o?1:2,d=Math.ceil(i/a),c=n<31?1<<n:Math.pow(2,n),u=Math.ceil((d*n-r)/8),f=new Uint8Array(u+1),p=0,l=0,h=0;if(o)for(let m=0;m<i;m+=a){let y=e[m];if(y<0||y>=s)throw new Error(`[BitPack decode] Invalid index ${y} at position ${m}`);for(l=l<<n|y,h+=n,m+a>=i&&r>0&&(l>>=r,h-=r);h>=8;)h-=8,f[p++]=l>>h&255,l&=(1<<h)-1;}else for(let m=0;m<i;m+=a){let y=e[m],b=e[m+1];if(y<0||y>=s)throw new Error(`[BitPack decode] Invalid index ${y} at position ${m}`);if(b===void 0||b<0||b>=s)throw new Error(`[BitPack decode] Invalid index ${b} at position ${m+1}`);let C=y*s+b;if(C>=c)throw new Error(`[BitPack decode] Value ${C} exceeds range at position ${m}`);for(l=l<<n|C,h+=n,m+a>=i&&r>0&&(l>>=r,h-=r);h>=8;)h-=8,f[p++]=l>>h&255,l&=(1<<h)-1;}return f.subarray(0,p)}function me(e,r){return e<=1?0:r?Math.floor(Math.log2(e)):Math.ceil(Math.log2(e))}function ye(e){return e>0&&(e&e-1)===0}var Dr=(()=>{let e=new Uint32Array(256);for(let r=0;r<256;r++){let t=r;for(let n=0;n<8;n++)t=t>>>1^(t&1?3988292384:0);e[r]=t;}return e})();function K(e){let r=4294967295;for(let t=0;t<e.length;t++)r=r>>>8^Dr[(r^e[t])&255];return ((r^4294967295)>>>0).toString(16).padStart(8,"0")}function ge(e,r){let t=Math.max(e.length,r.length),n=e.length^r.length;for(let o=0;o<t;o++){let s=o<e.length?e.charCodeAt(o):0,i=o<r.length?r.charCodeAt(o):0;n|=s^i;}return n===0}var be=["-","_","."];function Ce(e){return e.length===0?e:e.replaceAll("+","-").replaceAll("/","_").replaceAll("=",".")}function Ae(e){return e.length===0?e:e.replaceAll("-","+").replaceAll("_","/").replaceAll(".","=")}function we(e,r,t){if(r<=0||e.length<=r)return e;let n=Math.ceil(e.length/r),o=new Array(n*2-1),s=0;for(let i=0;i<e.length;i+=r)o[s++]=e.slice(i,i+r),i+r<e.length&&(o[s++]=t);return o.join("")}function Se(e,r){if(e.length===0)return e;let t=r&&r!==`
2
+ `&&r!==`\r
3
+ `&&r!=="\r"?r:"",n=e.includes(`
4
+ `)||e.includes("\r"),o=t.length>0&&e.includes(t);if(!n&&!o)return e;let s=n?e.replace(/[\r\n]/g,""):e;return o&&(s=s.replaceAll(t,"")),s}var Er={"":0,\u3131:1,\u3132:2,\u3133:3,\u3134:4,\u3135:5,\u3136:6,\u3137:7,\u3139:8,\u313A:9,\u313B:10,\u313C:11,\u313D:12,\u313E:13,\u313F:14,\u3140:15,\u3141:16,\u3142:17,\u3144:18,\u3145:19,\u3146:20,\u3147:21,\u3148:22,\u314A:23,\u314B:24,\u314C:25,\u314D:26,\u314E:27};function Ur(e,r){let t=e.charCodeAt(0);if(t<44032||t>55203)return e;let n=t-(t-44032)%28,o=Er[r]??0;return String.fromCharCode(n+o)}function W(e,r){let t=new Array(e.length*r.length),n=0;for(let o of e)for(let s of r)t[n++]=Ur(o,s);return t}function H(e,r){let n=e===void 0||!Number.isFinite(e)?6:Math.floor(e);return Math.min(r==="brotli"?11:9,Math.max(0,n))}var xr=new TextEncoder,Lr=new TextDecoder;function z(e){return xr.encode(e)}function ne(e){return Lr.decode(e)}var kr={symbol:"ddu",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","\uB4C0","\uB31C","\uB3A8"],codaChar:["","\u3131","\u3132","\u3137","\u3148","\u3147","\u3145","\u3146"],maxRequiredLength:64,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true},Br={symbol:"ddu_v1",charSet:["\uB70C","\uB568","\uC774","\uC6B0","\uC57C","!","?","."],maxRequiredLength:8,bitLength:6,paddingChar:"\uBB50",useRepeatPadding:true,usePowerOfTwo:false,encodingProfile:{bitLength:6,usePowerOfTwo:false,bitsPerPadChar:2}},vr={symbol:"oneCharSet",charSet:["A","s","q","r","0","z","3","t","y","1","5","2","4","E","B","C","Q","F","R","T","U","W","V","X","Y","Z","b","a","c","d","D","G","L","H","I","-","J","K","M","O","N","f","e","h","g","P","i","S","k","l","m","u","j","v","n","o","p","9","w","6","7","8","x","_"],paddingChar:"=",maxRequiredLength:64,bitLength:6};function $(e){switch(e){case "ddu":return kr;case "ddu_v1":return Br;case "oneCharSet":return vr;default:return}}var Tr=65536;function Pe(e,r,t,n){let o=(s,i,a,d,c)=>{if(Ir(a,t?.usePowerOfTwo)&&a>0){let p=Math.floor(Math.log2(a)),l=1<<p;return {charSet:s.length===l?s:s.slice(0,l),padding:i,requiredLength:l,bitLength:p,isPredefined:d,useRepeatPadding:c}}return {charSet:s.length===a?s:s.slice(0,a),padding:i,requiredLength:a,bitLength:a>0?Math.ceil(Math.log2(a)):0,isPredefined:d,useRepeatPadding:c}};try{let s=e??t?.dduChar,i=r??t?.paddingChar;if(s){if(!i)throw new Error("[Ddu64 Constructor] paddingChar is required when dduChar is provided.");let p=typeof s=="string"?[...s]:[...s],l=t?.codaChar,h=l?!0:t?.useRepeatPadding??!1;if(l&&l.length>0&&(p=W(p,l)),n&&new Set(p).size!==p.length){let b=p.filter((C,O)=>p.indexOf(C)!==O);throw new Error(`[Ddu64 Constructor] Character set contains duplicate characters: [${[...new Set(b)].join(", ")}]`)}let m=t?.requiredLength??p.length;if(p.length<m)throw new Error("[Ddu64 Constructor] Insufficient characters.");return o(p,i,m,!1,h)}let a=t?.dduSetSymbol??j.dduSetSymbol??"ddu",d=Rr(a),c=d.codaChar?W(d.charSet,d.codaChar):d.charSet,u=o(c,d.paddingChar,d.maxRequiredLength,!0,d.useRepeatPadding),f=d.encodingProfile;return f?(u.encodingProfile=f,u.bitLength=f.bitLength,u.usePowerOfTwo=f.usePowerOfTwo,u.bitsPerPadChar=f.bitsPerPadChar):(u.bitsPerPadChar=d.bitsPerPadChar,u.usePowerOfTwo=d.usePowerOfTwo,d.usePowerOfTwo===!1&&(u.bitLength=d.bitLength)),u}catch(s){if(n)throw s;return oe(t)}}function De(e,r,t){let n=[e,null];for(let s of n){let i=s?{...s}:oe(t);try{let a=i.charSet,d=i.requiredLength,c=Array.from(new Set(a));if(c.length!==a.length){if(r){let p=a.filter((l,h)=>a.indexOf(l)!==h);throw new Error(`[Ddu64 normalizeCharSet] Character set contains duplicate characters: [${[...new Set(p)].join(", ")}]`)}a=c,i.isPredefined||(d=a.length);}if(a.length<d)throw new Error(`[Ddu64 normalizeCharSet] Insufficient characters. Required: ${d}, Has: ${a.length}`);if(d<2)throw new Error("[Ddu64 normalizeCharSet] At least 2 unique characters required.");if(a.length===0)throw new Error("[Ddu64 normalizeCharSet] Empty charset.");if(a.find(p=>p.length!==1)){if(r)throw new Error("[Ddu64 normalizeCharSet] Multi-character symbols are not supported.");continue}if(a.length>Tr){if(r)throw new Error("[Ddu64 normalizeCharSet] Charset size exceeds maximum supported size of 65536.");continue}if(i.padding.length!==1)throw new Error(`[Ddu64 normalizeCharSet] Padding length mismatch. Expected 1, got ${i.padding.length}`);if(a.includes(i.padding)){if(r)throw new Error(`[Ddu64 normalizeCharSet] Padding character "${i.padding}" conflicts with charset.`);a=a.filter(p=>p!==i.padding);}for(let p of a)if(p.includes(`
5
+ `)||p.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");if(i.padding.includes(`
6
+ `)||i.padding.includes("\r"))throw new Error("[Ddu64 normalizeCharSet] Newline and carriage return characters are reserved.");return {charSet:a.length===d?a:a.slice(0,d),padding:i.padding,isPredefined:i.isPredefined}}catch(a){if(r)throw a}}let o=oe(t);return {charSet:o.charSet.slice(0,o.requiredLength),padding:o.padding,isPredefined:true}}function Ee(e,r,t){for(let n of be){for(let o of e)if(o.includes(n)){let s=`[Ddu64 Constructor] URL-Safe mode conflict: charset character "${o}" contains "${n}".`;if(t)throw new Error(s);return false}if(r.includes(n)){let o=`[Ddu64 Constructor] URL-Safe mode conflict: padding character "${r}" contains "${n}".`;if(t)throw new Error(o);return false}}return true}function Ue(e,r,t){if(t>256)return;let n=Math.min(e.length,t),o=e.slice(0,n),s=new Set;for(let a=0;a<o.length;a++)s.add(o[a]);s.add(r);for(let a=0;a<o.length;a++){let d=o[a];for(let f=0;f<o.length;f++){let p=d+o[f];if(s.has(p))throw new Error(`Combination conflict: "${d}" + "${o[f]}"`);s.add(p);}let c=d+r;if(s.has(c))throw new Error(`Combination conflict: "${d}" + padding`);s.add(c);let u=r+d;if(s.has(u))throw new Error(`Combination conflict: padding + "${d}"`);s.add(u);}let i=r+r;if(s.has(i))throw new Error("Combination conflict: double padding");s.add(i);}function Ir(e,r){return r!==void 0?r?e>0:false:e>0&&(e&e-1)===0}function Rr(e){let r=$(e);if(!r)throw new Error(`CharSet with symbol ${e} not found`);return r}function oe(e){let r=e?.dduSetSymbol??j.dduSetSymbol??"oneCharSet",t=$(r)??$("oneCharSet");if(!t)throw new Error("Critical: No fallback CharSet available");return {charSet:t.codaChar?W(t.charSet,t.codaChar):t.charSet,padding:t.paddingChar,requiredLength:t.maxRequiredLength,bitLength:t.encodingProfile?.bitLength??t.bitLength,isPredefined:true,useRepeatPadding:t.useRepeatPadding,bitsPerPadChar:t.encodingProfile?.bitsPerPadChar??t.bitsPerPadChar,usePowerOfTwo:t.encodingProfile?.usePowerOfTwo??t.usePowerOfTwo,encodingProfile:t.encodingProfile}}var Or="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";function xe(e,r,t,n){return t&&n===6&&r==="="&&e.join("")===Or}function Le(e){let r=_r(e);if(r===null)return null;let t=0,n=r.length;for(;n>0&&r[n-1]==="=";)t++,n--;return {payload:r.slice(0,n),paddingBits:t===2?4:t===1?2:0}}function ke(e,r,t){let n=r===4?2:r===2?1:r===0?0:-1;if(n<0)return null;for(let o=0;o<e.length;o++)if(!t(e.charCodeAt(o)))return null;return Mr(e+"=".repeat(n))}function _r(e){let r=e.toBase64;if(typeof r=="function")return r.call(e);let t=globalThis.Buffer;return t?.from?t.from(e.buffer,e.byteOffset,e.byteLength).toString("base64"):null}function Mr(e){let r=Uint8Array;if(typeof r.fromBase64=="function")return r.fromBase64(e);let t=globalThis.Buffer;if(t?.from){let n=t.from(e,"base64");return new Uint8Array(n.buffer,n.byteOffset,n.byteLength)}return null}function Y(e){if(!e)throw new Error("[Ddu64 adapter] No platform adapter available. Use encodeAsync()/decodeAsync() in browser environments, or provide an adapter via options.adapter.");return e}function Be(e,r,t){let n=Y(e.adapter);if(!n.encryptSync)throw new Error("[Ddu64 encrypt] Sync encryption unavailable. Use encodeAsync() in browser environments.");let o=Re(e,n,"encrypt");return n.encryptSync(r,o,t)}function ve(e,r,t){let n=Y(e.adapter);if(!n.decryptSync)throw new Error("[Ddu64 decrypt] Sync decryption unavailable. Use decodeAsync() in browser environments.");let o=Re(e,n,"decrypt");return n.decryptSync(r,o,t)}function Te(e,r,t,n){let o=Y(e);if(t==="brotli"){if(!o.brotliCompressSync)throw new Error("[Ddu64 compress] Brotli compression is unavailable in the current runtime.");return o.brotliCompressSync(r,n)}if(!o.deflateSync)throw new Error("[Ddu64 compress] Sync compression unavailable. Use encodeAsync() in browser environments.");return o.deflateSync(r,n)}function Ie(e,r,t,n){let o=Y(e);if(t==="brotli"){if(!o.brotliDecompressSync)throw new Error("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.");return o.brotliDecompressSync(r,n)}if(!o.inflateSync)throw new Error("[Ddu64 decompress] Sync decompression unavailable. Use decodeAsync() in browser environments.");return o.inflateSync(r,n)}function Re(e,r,t){if(e.encryptionKeyHash)return e.encryptionKeyHash;if(!r.deriveKeySync){let o=t==="encrypt"?"encodeAsync":"decodeAsync";throw new Error(`[Ddu64 ${t}] Sync key derivation unavailable. Use ${o}() in browser environments.`)}let n=r.deriveKeySync(e.encryptionKey,e.keyDerivation);return e.setEncryptionKeyHash(n),n}function k(e){let r=e.toLowerCase();return r.includes("adapter")||r.includes("sync")||r.includes("provider")}async function Oe(e,r,t){try{let n=G(e.adapter),o=await Ke(e,n);return await n.encrypt(r,o,t)}catch(n){throw q(n,"encode","encrypt")}}async function _e(e,r,t){try{let n=G(e.adapter),o=await Ke(e,n);return await n.decrypt(r,o,t)}catch(n){throw q(n,"decode","decrypt")}}async function Me(e,r,t,n){try{let o=G(e);if(t==="brotli"){if(!o.brotliCompress)throw new Error("[Ddu64 compress] Brotli compression is unavailable in the current runtime.");return await o.brotliCompress(r,n)}return await o.deflate(r,n)}catch(o){throw q(o,"encode","compress")}}async function Ne(e,r,t,n){try{let o=G(e);if(t==="brotli"){if(!o.brotliDecompress)throw new Error("[Ddu64 decompress] Brotli decompression is unavailable in the current runtime.");return await o.brotliDecompress(r,n)}return await o.inflate(r,n)}catch(o){throw q(o,"decode","decompress")}}function G(e){if(!e)throw new Error("[Ddu64 adapter] No platform adapter available. Use @ddunigma/node or @ddunigma/node/browser, or provide an adapter via options.adapter.");return e}async function Ke(e,r){if(e.encryptionKeyHash)return e.encryptionKeyHash;let t=await r.deriveKey(e.encryptionKey,e.keyDerivation);return e.setEncryptionKeyHash(t),t}function q(e,r,t){let n=E(e);if(k(n))return new N(n,r,e);switch(t){case "compress":return new x(n,e);case "decompress":return new L(n,e);case "encrypt":return new P(n,e);case "decrypt":return new D(n,e)}}function He(e,r,t){return e!=null&&typeof e=="object"&&!Array.isArray(e)?{dduChar:void 0,paddingChar:void 0,dduOptions:e}:{dduChar:e,paddingChar:r,dduOptions:t}}function ze(e){let r=new Int32Array(65536);r.fill(-1);let t=new Uint16Array(e.length);for(let n=0;n<e.length;n++){let o=e[n].charCodeAt(0);r[o]=n,t[n]=o;}return {charCodeLookup:r,charCodes:t}}function B(e,r,t,n){if(e===void 0)return r;if(e===Number.POSITIVE_INFINITY)return Number.POSITIVE_INFINITY;if(!Number.isFinite(e)||e<=0){if(t)throw new Error(`[Ddu64 options] Invalid ${n}. Must be a positive finite number or Infinity.`);return r}return Math.floor(e)}function Fe(e,r,t,n){if(e===0)return 0;if(r<0||r>=t)throw new Error(`[Ddu64 decode] Invalid padding bits: ${r}`);let i=Math.ceil(e/(n?1:2))*t-r;if(i<0)throw new Error("[Ddu64 decode] Invalid decoded bit length");return Math.ceil(i/8)}function Ve(e,r){if(!r&&e.length%2!==0)throw new Error(`[Ddu64 decode] Invalid encoded length for variable charset. Expected multiple of 2, got ${e.length}`)}function We(e,r,t,n){if(e.length===0)return;let o=n?1:2,i=e.length/o*t-r;if(i<0||i%8!==0)throw new Error(`[Ddu64 decode] Invalid encoded bit length. Expected a whole number of bytes, got ${i} bits.`)}function $e(e,r,t,n,o){if(r===0)return;if(e.length===0)throw new Error("[Ddu64 decode] Invalid padding bits without payload");let s=(1<<r)-1,i;if(t){let a=e[e.length-1],d=n[a.charCodeAt(0)];if(d<0)throw new Error(`[Ddu64 decode] Invalid character "${a}" at ${e.length-1}`);i=d;}else {let a=e[e.length-2],d=e[e.length-1],c=n[a.charCodeAt(0)],u=n[d.charCodeAt(0)];if(c<0||u<0)throw new Error("[Ddu64 decode] Invalid character in final encoded chunk");i=c*o+u;}if((i&s)!==0)throw new Error("[Ddu64 decode] Invalid non-zero padding bits in final symbol")}var R="DDS1",v="ELYSIA",T="GRISEO";var Nr=new TextEncoder;function Ye(e,r,t,n=2){let o=e.length,s=r.length,i={cleanedInput:e,paddingBits:0,isEncrypted:false,pipelineVersion:2};if(o<s)return i;let d=Math.max(0,t-1).toString().length;for(let c=Math.min(d,o);c>=1;c--){let u=o-c,f=true;for(let O=u;O<o;O++){let ie=e.charCodeAt(O);if(ie<48||ie>57){f=false;break}}if(!f)continue;let p=e.substring(u),l=parseInt(p,10);if(Number.isNaN(l)||l<0||l>=t||p!==l.toString())continue;let h=u,m=false,y,b=2;h>=2&&e.substring(h-2,h)==="V4"?(b=4,h-=2):h>=2&&e.substring(h-2,h)==="V3"&&(b=3,h-=2),h>=3&&e.substring(h-3,h)==="ENC"&&(m=true,h-=3),h>=v.length&&e.substring(h-v.length,h)===v?(y="deflate",h-=v.length):h>=T.length&&e.substring(h-T.length,h)===T&&(y="brotli",h-=T.length);let C=h-s;if(C>=0&&e.substring(C,h)===r)return {cleanedInput:e.substring(0,C),paddingBits:l,compressionAlgorithm:y,isEncrypted:m,pipelineVersion:b}}if(e.endsWith(r)){let c=0,u=o;for(;u>=s&&e.substring(u-s,u)===r;)c++,u-=s;if(c>0){let f=c*n;if(f<t)return {cleanedInput:e.substring(0,u),paddingBits:f,isEncrypted:false,pipelineVersion:2}}}return i}function Ge(e){let r=e.lastIndexOf("CHK");if(r===-1)return {data:e,checksum:null};let t=e.slice(r+3);return t.length!==8||!/^[0-9a-f]+$/i.test(t)?{data:e,checksum:null}:{data:e.slice(0,r),checksum:t.toLowerCase()}}function Kr(e){return e.length*2+R.length+2}function Pt(e,r){let t=r.compressionAlgorithm==="brotli"?"B":r.compressionAlgorithm==="deflate"?"D":"N",n=r.encrypted?"1":"0";return `${e}${R}${t}${n}${e}`}function Dt(e,r){let t=Kr(r);if(e.length<t||!e.startsWith(r))return null;let n=r.length;if(e.slice(n,n+R.length)!==R)throw new Error("[wireFormat] Invalid stream header magic");let s=e[n+R.length],i=e[n+R.length+1];if(e.slice(t-r.length,t)!==r)throw new Error("[wireFormat] Invalid stream header terminator");let d=s==="B"?"brotli":s==="D"?"deflate":s==="N"?void 0:null;if(d===null)throw new Error("[wireFormat] Invalid stream header compression flag");if(i!=="0"&&i!=="1")throw new Error("[wireFormat] Invalid stream header encryption flag");return {compressionAlgorithm:d,encrypted:i==="1"}}function qe(e){let{paddingBits:r,compressionAlgorithm:t,isEncrypted:n,paddingChar:o,useRepeatPadding:s,bitsPerPadChar:i=2,pipelineVersion:a=2}=e;if(!n&&a!==2)throw new Error("[wireFormat] Pipeline version markers require encryption");if(r===0&&!t&&!n&&a===2)return "";if(s&&!t&&!n&&a===2&&r>0&&r%i===0){let c=r/i;return o.repeat(c)}return o+(t==="deflate"?v:t==="brotli"?T:"")+(n?"ENC":"")+(a===4?"V4":a===3?"V3":"")+r.toString()}function F(e){return Nr.encode(`ddunigma:wire:v4;enc=1;compress=${e.compressionAlgorithm??"none"}`)}function je(e,r,t){let n=r?.checksum??t.defaultChecksum,o=r?.compress!==false,s=r?.encrypt!==false,i=e;t.reportDecodeStart(e.length);let a=r?.chunkSeparator??t.defaultChunkSeparator;i=Se(i,a),t.urlSafe&&(i=Ae(i));let d=null;if(n){let C=Ge(i);d=C.checksum,i=C.data;}t.shouldObfuscate(r)&&(i=t.deobfuscate(i));let{cleanedInput:c,paddingBits:u,compressionAlgorithm:f,isEncrypted:p,pipelineVersion:l}=Ye(i,t.paddingChar,t.bitLength,t.bitsPerPadChar);if(p&&s&&!t.encryptionKey)throw new Error("[Ddu64 decode] Encrypted payload requires an encryptionKey");let h=p&&l===4?F({compressionAlgorithm:f}):void 0;Ve(c,t.usePowerOfTwo),$e(c,u,t.usePowerOfTwo,t.dduCharCodeLookup,t.charSetSize),We(c,u,t.bitLength,t.usePowerOfTwo);let m=B(r?.maxDecodedBytes,t.defaultMaxDecodedBytes,true,"maxDecodedBytes"),y=Fe(c.length,u,t.bitLength,t.usePowerOfTwo);if(y>m)throw new Error(`[Ddu64 decode] Decoded output exceeds limit. Estimated: ${y} bytes, Limit: ${m} bytes`);return t.reportBitpackDecode(c.length,e.length),{decoded:t.decodeChars(c,u),extractedChecksum:d,compressionAlgorithm:f,isEncrypted:p,pipelineVersion:l,encryptionAAD:h,allowInternalDecompress:o,allowInternalDecrypt:s}}function Xe(e){return e.omitFooter?"":qe({paddingBits:e.paddingBits,compressionAlgorithm:e.compressionAlgorithm,isEncrypted:e.isEncrypted,paddingChar:e.paddingChar,useRepeatPadding:e.useRepeatPadding&&!e.compressionAlgorithm&&!e.isEncrypted,bitsPerPadChar:e.bitsPerPadChar,pipelineVersion:e.isEncrypted?e.pipelineVersion:2})}function Ze(e){let r=e.encoded;return e.shouldObfuscate(e.options)&&(r=e.getObfuscationLayer().obfuscate(r)),e.shouldChecksum&&e.checksum&&(r=r+"CHK"+e.checksum),e.urlSafe&&(r=Ce(r)),e.chunkSize&&e.chunkSize>0&&(e.assertSafeChunkSeparator(r,e.chunkSeparator),r=we(r,e.chunkSize,e.chunkSeparator)),r}function Je(e,r){let t=e.length;if(t<=8192){let i=new Uint16Array(t);for(let a=0;a<t;a++)i[a]=r[e[a]];return String.fromCharCode.apply(null,i)}let n=new Uint16Array(t);for(let i=0;i<t;i++)n[i]=r[e[i]];let o=new Array(Math.ceil(t/8192)),s=0;for(let i=0;i<t;i+=8192){let a=n.subarray(i,Math.min(i+8192,t));o[s++]=String.fromCharCode.apply(null,a);}return o.join("")}function Qe(e,r,t,n,o){if(e.length===0)return "";let s=o.canUseNativeBase64?Le(e):null,i,a;if(s)i=s.paddingBits,a=s.payload;else {let c=zr(e,o);i=c.paddingBits,a=Je(c.indices,o.dduCharCodes);}let d=Xe({paddingBits:i,compressionAlgorithm:r,isEncrypted:t,paddingChar:o.paddingChar,useRepeatPadding:o.useRepeatPadding,bitsPerPadChar:o.bitsPerPadChar,pipelineVersion:o.encryptedPipelineVersion,omitFooter:n?.omitFooter});return a+d}function er(e,r,t){let n=e.length;if(n===0)return new Uint8Array(0);let o=t.canUseNativeBase64?ke(e,r,d=>t.dduCharCodeLookup[d]>=0):null;if(o)return o;let i=n>=t.wasmThreshold?new Uint16Array(n):new Array(n);for(let d=0;d<n;d++){let c=t.dduCharCodeLookup[e.charCodeAt(d)];if(c<0)throw new Error(`[Ddu64 decode] Invalid character "${e[d]}" at ${d}`);i[d]=c;}let a=rr(n,t)?Z():null;if(a?.ready&&t.usePowerOfTwo){let d=i instanceof Uint16Array?i:Uint16Array.from(i);return a.decode(d,t.bitLength,r)}return fe(i,r,t.bitPackConfig)}function zr(e,r){let t=rr(e.length,r)?Z():null;return t?.ready&&r.usePowerOfTwo?t.encode(e,r.bitLength):pe(e,r.bitPackConfig)}function rr(e,r){return e>=r.wasmThreshold}function tr(e,r){let t=new Set(e);t.add(r);let n=v+T+"ENC"+"V3"+"V4";for(let o of n)t.add(o);for(let o of "0123456789")t.add(o);return [...t]}function nr(e,r,t){let n=e.decoded;return n=$r(e,t,n),n=Yr(e,r,t,n),dr(e,t,r,n),n=Gr(e,t,n),ur(t,n),n}async function or(e,r,t){let n=e.decoded;if(ir(e,t)&&(t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:55,stage:"decrypt"}),n=await t.decrypt(n,e.encryptionAAD)),ar(e)){let o=cr(r,t);t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:70,stage:"decompress"}),n=await t.decompress(n,e.compressionAlgorithm,o);}return dr(e,t,r,n),sr(e,t)&&(t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:90,stage:"decrypt"}),n=await t.decrypt(n,e.encryptionAAD)),ur(t,n),n}function $r(e,r,t){return ir(e,r)?(r.reportProgress({processedBytes:t.length,totalBytes:t.length,percent:55,stage:"decrypt"}),r.decrypt(t,e.encryptionAAD)):t}function Yr(e,r,t,n){if(!ar(e))return n;let o=cr(r,t);return t.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:70,stage:"decompress"}),t.decompress(n,e.compressionAlgorithm,o)}function Gr(e,r,t){return sr(e,r)?(r.reportProgress({processedBytes:t.length,totalBytes:t.length,percent:90,stage:"decrypt"}),r.decrypt(t,e.encryptionAAD)):t}function ir(e,r){return (e.pipelineVersion===3||e.pipelineVersion===4)&&e.isEncrypted&&!!r.encryptionKey&&e.allowInternalDecrypt}function sr(e,r){return e.pipelineVersion===2&&e.isEncrypted&&!!r.encryptionKey&&e.allowInternalDecrypt}function ar(e){return !!e.compressionAlgorithm&&e.allowInternalDecompress&&(e.pipelineVersion===2||!e.isEncrypted||e.allowInternalDecrypt)}function dr(e,r,t,n){if(!e.extractedChecksum||!(e.pipelineVersion===2||!e.isEncrypted||e.allowInternalDecrypt))return;r.reportProgress({processedBytes:n.length,totalBytes:n.length,percent:85,stage:"checksum"});let o=K(n);if(!ge(o,e.extractedChecksum))throw new M(`[Ddu64 decode] Checksum mismatch. Expected: ${e.extractedChecksum}, Got: ${o}`)}function cr(e,r){return B(e?.maxDecompressedBytes,r.defaultMaxDecompressedBytes,true,"maxDecompressedBytes")}function ur(e,r){e.reportProgress({processedBytes:r.length,totalBytes:r.length,percent:100,stage:"done"});}function lr(e,r,t){let n=pr(r,t),o=typeof e=="string"?z(e):e;fr(t,o.length);let s=n.shouldChecksum?K(o):"",i,a;if(n.shouldCompress){let c=r?.compressionAlgorithm??t.defaultCompressionAlgorithm,u=H(r?.compressionLevel??t.defaultCompressionLevel,c);mr(t,o.length);let f=t.compress(o,c,u);a=f.length,f.length<o.length&&(o=f,i=c);}let d=false;return n.shouldEncrypt&&(yr(t,o.length),o=t.encrypt(o,t.getEncryptionAAD(i)),d=true),{encoded:t.finalize(o,i,d,s,n.shouldChecksum,n.chunkSize,n.chunkSeparator),compressedSize:a}}async function hr(e,r,t){let n=pr(r,t),o=typeof e=="string"?z(e):e;fr(t,o.length);let s=n.shouldChecksum?K(o):"",i;if(n.shouldCompress){let d=r?.compressionAlgorithm??t.defaultCompressionAlgorithm,c=H(r?.compressionLevel??t.defaultCompressionLevel,d);mr(t,o.length);let u=await t.compress(o,d,c);u.length<o.length&&(o=u,i=d);}let a=false;return n.shouldEncrypt&&(yr(t,o.length),o=await t.encrypt(o,t.getEncryptionAAD(i)),a=true),t.finalize(o,i,a,s,n.shouldChecksum,n.chunkSize,n.chunkSeparator)}function pr(e,r){return {shouldCompress:e?.compress??r.defaultCompress,shouldChecksum:e?.checksum??r.defaultChecksum,shouldEncrypt:(e?.encrypt??true)&&r.hasEncryptionKey,chunkSize:e?.chunkSize??r.defaultChunkSize,chunkSeparator:e?.chunkSeparator??r.defaultChunkSeparator}}function fr(e,r){e.reportProgress({processedBytes:0,totalBytes:r,percent:0,stage:"start"});}function mr(e,r){e.reportProgress({processedBytes:r,totalBytes:r,percent:20,stage:"compress"});}function yr(e,r){e.reportProgress({processedBytes:r,totalBytes:r,percent:45,stage:"encrypt"});}var jr=64*1024*1024,Xr=64*1024*1024,gr=class{dduChar;dduCharCodes;paddingChar;bitLength;usePowerOfTwo;dduCharCodeLookup;isPredefinedCharSet;defaultCompress;defaultMaxDecodedBytes;defaultMaxDecompressedBytes;urlSafe;encryptionKey;keyDerivation;encryptionKeyHash;defaultChecksum;defaultChunkSize;defaultChunkSeparator;defaultCompressionLevel;defaultCompressionAlgorithm;useRepeatPadding;bitsPerPadChar;bitPackConfig;wasmThreshold;canUseNativeBase64;payloadCodecContext;adapter;defaultObfuscate;obfuscationLayer;constructor(r,t,n){let o=He(r,t,n);r=o.dduChar,t=o.paddingChar,n=o.dduOptions;let s=n?.throwOnError??false;n?.adapter?this.adapter=n.adapter:this.adapter=void 0;let i=Pe(r,t,n,s),a=De(i,s,n);this.dduChar=a.charSet,this.paddingChar=a.padding,this.isPredefinedCharSet=a.isPredefined,this.defaultCompress=n?.compress??false,this.defaultMaxDecodedBytes=B(n?.maxDecodedBytes,jr,s,"maxDecodedBytes"),this.defaultMaxDecompressedBytes=B(n?.maxDecompressedBytes,Xr,s,"maxDecompressedBytes");let d=this.dduChar.length,c=ye(d),u=n?.usePowerOfTwo,f=i.encodingProfile;this.usePowerOfTwo=f?.usePowerOfTwo??i.usePowerOfTwo??(u!==void 0?u&&c:c);let p=f?.bitLength??(i.isPredefined&&i.usePowerOfTwo!==void 0?i.bitLength:void 0);this.bitLength=p??me(d,this.usePowerOfTwo);let l=ze(this.dduChar);this.dduCharCodeLookup=l.charCodeLookup,this.dduCharCodes=l.charCodes,this.isPredefinedCharSet||Ue(this.dduChar,this.paddingChar,d);let h=n?.urlSafe??false;if(this.urlSafe=h?Ee(this.dduChar,this.paddingChar,s):false,this.encryptionKey=n?.encryptionKey,this.keyDerivation=n?.keyDerivation,this.encryptionKey&&this.adapter?.deriveKeySync&&(this.encryptionKeyHash=this.adapter.deriveKeySync(this.encryptionKey,this.keyDerivation)),this.defaultChecksum=n?.checksum??false,this.defaultChunkSize=n?.chunkSize,this.defaultChunkSeparator=n?.chunkSeparator??`
7
+ `,this.defaultCompressionAlgorithm=n?.compressionAlgorithm??"deflate",this.defaultCompressionLevel=H(n?.compressionLevel,this.defaultCompressionAlgorithm),this.useRepeatPadding=n?.useRepeatPadding??i.useRepeatPadding??false,this.bitsPerPadChar=f?.bitsPerPadChar??i.bitsPerPadChar??2,this.defaultObfuscate=n?.obfuscate??false,this.defaultObfuscate&&!this.encryptionKey)throw new I("[Ddu64 obfuscation] Obfuscation requires encryption to be enabled.");this.bitPackConfig={bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,charsetSize:d},this.wasmThreshold=he(n?.wasmThreshold??4096),this.canUseNativeBase64=xe(this.dduChar,this.paddingChar,this.usePowerOfTwo,this.bitLength),this.payloadCodecContext={bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,bitPackConfig:this.bitPackConfig,wasmThreshold:this.wasmThreshold,canUseNativeBase64:this.canUseNativeBase64,dduCharCodes:this.dduCharCodes,dduCharCodeLookup:this.dduCharCodeLookup,paddingChar:this.paddingChar,useRepeatPadding:this.useRepeatPadding,bitsPerPadChar:this.bitsPerPadChar,encryptedPipelineVersion:4};}encode(r,t){try{return this.encodeInternal(r,t).encoded}catch(n){throw A(n,"encode")}}decode(r,t){try{let n=this.decodeToUint8Array(r,t);return ne(n)}catch(n){throw A(n,"decode")}}decodeToUint8Array(r,t){try{return this.decodeToUint8ArrayInternal(r,t)}catch(n){throw A(n,"decode")}}decodeToUint8ArrayInternal(r,t){let n=this.decodePrelude(r,t);return nr(n,t,{encryptionKey:this.encryptionKey,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,reportProgress:o=>this.reportProgress(t,o),decrypt:(o,s)=>this.decryptSync(o,s),decompress:(o,s,i)=>this.decompressSync(o,s,i)})}async encodeAsync(r,t){try{return await this.encodeAsyncInternal(r,t)}catch(n){throw A(n,"encode")}}async encodeAsyncInternal(r,t){return hr(r,t,{defaultCompress:this.defaultCompress,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm,hasEncryptionKey:!!this.encryptionKey,reportProgress:n=>this.reportProgress(t,n),getEncryptionAAD:n=>F({compressionAlgorithm:n}),compress:(n,o,s)=>Me(this.adapter,n,o,s),encrypt:(n,o)=>Oe(this.getSyncGatewayContext(),n,o),finalize:(n,o,s,i,a,d,c)=>this.finalizeEncode(n,o,s,i,a,d,c,t)})}async decodeAsync(r,t){try{let n=await this.decodeToUint8ArrayAsync(r,t);return ne(n)}catch(n){throw A(n,"decode")}}async decodeToUint8ArrayAsync(r,t){try{return await this.decodeToUint8ArrayAsyncInternal(r,t)}catch(n){throw A(n,"decode")}}async decodeToUint8ArrayAsyncInternal(r,t){let n=this.decodePrelude(r,t);return or(n,t,{encryptionKey:this.encryptionKey,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,reportProgress:o=>this.reportProgress(t,o),decrypt:(o,s)=>_e(this.getSyncGatewayContext(),o,s),decompress:(o,s,i)=>Ne(this.adapter,o,s,i)})}getCharSetInfo(){return {charSet:[...this.dduChar],paddingChar:this.paddingChar,bitLength:this.bitLength,usePowerOfTwo:this.usePowerOfTwo,encoding:"utf-8",defaultCompress:this.defaultCompress,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,defaultMaxDecompressedBytes:this.defaultMaxDecompressedBytes,urlSafe:this.urlSafe,hasEncryptionKey:!!this.encryptionKey,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm}}getStats(r,t){let o=(typeof r=="string"?z(r):r).length,{encoded:s,compressedSize:i}=this.encodeInternal(r,t),a=s.length,d=o>0?a/o:0,u=(t?.compress??this.defaultCompress)&&i!==void 0&&o>0?i/o:void 0;return {originalSize:o,encodedSize:a,compressedSize:i,compressionRatio:u,expansionRatio:d,charsetSize:this.dduChar.length,bitLength:this.bitLength}}encodeInternal(r,t){return lr(r,t,{defaultCompress:this.defaultCompress,defaultChecksum:this.defaultChecksum,defaultChunkSize:this.defaultChunkSize,defaultChunkSeparator:this.defaultChunkSeparator,defaultCompressionLevel:this.defaultCompressionLevel,defaultCompressionAlgorithm:this.defaultCompressionAlgorithm,hasEncryptionKey:!!this.encryptionKey,reportProgress:n=>this.reportProgress(t,n),getEncryptionAAD:n=>F({compressionAlgorithm:n}),compress:(n,o,s)=>this.compressSync(n,o,s),encrypt:(n,o)=>this.encryptSync(n,o),finalize:(n,o,s,i,a,d,c)=>this.finalizeEncode(n,o,s,i,a,d,c,t)})}finalizeEncode(r,t,n,o,s,i,a,d){this.reportProgress(d,{processedBytes:r.length,totalBytes:r.length,percent:70,stage:"encode"});let c=Qe(r,t,n,d,this.getPayloadCodecContext());return c=this.applyPostEncoding(c,d,o,s,i,a),this.reportProgress(d,{processedBytes:r.length,totalBytes:r.length,percent:100,stage:"done"}),c}applyPostEncoding(r,t,n,o,s,i){return Ze({encoded:r,options:t,checksum:n,shouldChecksum:o,chunkSize:s,chunkSeparator:i,urlSafe:this.urlSafe,shouldObfuscate:a=>this.shouldObfuscate(a),getObfuscationLayer:()=>this.getObfuscationLayer(),assertSafeChunkSeparator:(a,d)=>this.assertSafeChunkSeparator(a,d)})}decodePrelude(r,t){return je(r,t,{defaultChecksum:this.defaultChecksum,defaultChunkSeparator:this.defaultChunkSeparator,defaultMaxDecodedBytes:this.defaultMaxDecodedBytes,urlSafe:this.urlSafe,paddingChar:this.paddingChar,bitLength:this.bitLength,bitsPerPadChar:this.bitsPerPadChar,usePowerOfTwo:this.usePowerOfTwo,dduCharCodeLookup:this.dduCharCodeLookup,charSetSize:this.dduChar.length,encryptionKey:this.encryptionKey,shouldObfuscate:n=>this.shouldObfuscate(n),deobfuscate:n=>this.getObfuscationLayer().deobfuscate(n),decodeChars:(n,o)=>er(n,o,this.getPayloadCodecContext()),reportDecodeStart:n=>{this.reportProgress(t,{processedBytes:0,totalBytes:n,percent:0,stage:"start"});},reportBitpackDecode:(n,o)=>{this.reportProgress(t,{processedBytes:n,totalBytes:o,percent:30,stage:"decode"});}})}getPayloadCodecContext(){return this.payloadCodecContext}reportProgress(r,t){r?.onProgress?.(t);}encryptSync(r,t){try{return Be(this.getSyncGatewayContext(),r,t)}catch(n){let o=E(n);throw k(o)?A(n,"encode"):new P(o,n)}}decryptSync(r,t){try{return ve(this.getSyncGatewayContext(),r,t)}catch(n){let o=E(n);throw k(o)?A(n,"decode"):new D(o,n)}}compressSync(r,t,n){try{return Te(this.adapter,r,t,n)}catch(o){let s=E(o);throw k(s)?A(o,"encode"):new x(s,o)}}decompressSync(r,t,n){try{return Ie(this.adapter,r,t,n)}catch(o){let s=E(o);throw k(s)?A(o,"decode"):new L(s,o)}}getSyncGatewayContext(){return {adapter:this.adapter,encryptionKey:this.encryptionKey,keyDerivation:this.keyDerivation,encryptionKeyHash:this.encryptionKeyHash,setEncryptionKeyHash:r=>{this.encryptionKeyHash=r;}}}getObfuscationLayer(){return this.obfuscationLayer||(this.obfuscationLayer=new _(tr(this.dduChar,this.paddingChar))),this.obfuscationLayer}shouldObfuscate(r){let t=r?.obfuscate??this.defaultObfuscate;if(t&&!this.encryptionKey)throw new I("[Ddu64 obfuscation] Obfuscation requires encryption to be enabled.");return t}assertSafeChunkSeparator(r,t){if(!(t.length===0||this.isLineBreakSeparator(t))&&r.includes(t))throw new Error(`[Ddu64 chunking] Unsafe chunkSeparator "${t}" appears in encoded output. Use a separator that cannot be produced by the charset, footer, checksum, or URL-safe output.`)}isLineBreakSeparator(r){return r===`
8
+ `||r===`\r
9
+ `||r==="\r"}};var br=class e{chars=[];constructor(){}static create(){return new e}static fromUnicodeRange(r,t){return new e().addUnicodeRange(r,t)}static fromString(r){return new e().addString(r)}static base64(){return new e().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/")}static base32(){return new e().addString("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567")}static uppercase(){return e.fromUnicodeRange(65,90)}static lowercase(){return e.fromUnicodeRange(97,122)}static digits(){return e.fromUnicodeRange(48,57)}static hangulJamo(){return new e().addUnicodeRange(4352,4370).addUnicodeRange(4449,4469).addUnicodeRange(4520,4546)}addUnicodeRange(r,t){for(let n=r;n<=t;n++)this.chars.push(String.fromCodePoint(n));return this}addString(r){return typeof r=="string"?this.chars.push(...r):this.chars.push(...r),this}add(...r){return this.chars.push(...r),this}excludeConfusing(){let r=new Set(["0","O","o","1","l","I","i","|","L"]);return this.chars=this.chars.filter(t=>!r.has(t)),this}exclude(...r){let t=new Set(r);return this.chars=this.chars.filter(n=>!t.has(n)),this}excludeUrlUnsafe(){let r=new Set(["+","/","=","?","&","#","%"," "]);return this.chars=this.chars.filter(t=>!r.has(t)),this}unique(){return this.chars=[...new Set(this.chars)],this}shuffle(r){let t=r!==void 0?this.seededRandom(r):Math.random;for(let n=this.chars.length-1;n>0;n--){let o=Math.floor(t()*(n+1));[this.chars[n],this.chars[o]]=[this.chars[o],this.chars[n]];}return this}seededRandom(r){let t=r|0||1;return ()=>(t^=t<<13,t^=t>>17,t^=t<<5,(t>>>0)/4294967296)}limit(r){return this.chars=this.chars.slice(0,r),this}limitToPowerOfTwo(){let r=this.chars.length;if(r===0)return this;let t=1<<Math.floor(Math.log2(r));return this.chars=this.chars.slice(0,t),this}sort(){return this.chars.sort(),this}reverse(){return this.chars.reverse(),this}get length(){return this.chars.length}buildString(){return this.chars.join("")}build(){return [...this.chars]}buildWithPadding(r){let t=[...this.chars],n=r;if(!n){let o=["=",".","_","-","~","!"];for(let s of o)if(!t.includes(s)){n=s;break}if(!n)throw new Error("Cannot find suitable padding character")}return {charset:t,padding:n}}};exports.A=Dt;exports.B=gr;exports.C=br;exports.a=se;exports.b=_;exports.c=et;exports.d=tt;exports.e=nt;exports.f=Z;exports.g=ot;exports.h=Sr;exports.i=g;exports.j=J;exports.k=Q;exports.l=x;exports.m=L;exports.n=P;exports.o=D;exports.p=M;exports.q=ee;exports.r=re;exports.s=N;exports.t=I;exports.u=te;exports.v=Pr;exports.w=A;exports.x=He;exports.y=Kr;exports.z=Pt;//# sourceMappingURL=chunk-FACJ5LAG.cjs.map
10
+ //# sourceMappingURL=chunk-FACJ5LAG.cjs.map
@@ -0,0 +1,2 @@
1
+ import {z,w,y,A}from'./chunk-65RDFQV7.js';function R(){let e=globalThis;return e.Deno?.version?.deno?"deno":e.Bun?.version?"bun":e.process?.versions?.node?"node":typeof e.EdgeRuntime=="string"||typeof e.WebSocketPair<"u"&&e.crypto?.subtle?"edge":typeof e.crypto<"u"&&e.crypto?.subtle?"browser":"unknown"}function W(e,n){let r=e.getCharSetInfo(),d=n?.compress??r.defaultCompress,p=(n?.encrypt??true)&&r.hasEncryptionKey,y=n?.checksum??r.defaultChecksum,t=d?n?.compressionAlgorithm??r.defaultCompressionAlgorithm:void 0,m=r.paddingChar,f=D(r,{compressed:d,encrypted:p,checksum:y}),c=false,s=[],h=0,o=null;return new TransformStream({async transform(a,u){if(f){if(!c){let k=z(m,{compressionAlgorithm:void 0,encrypted:false});u.enqueue(k),c=true;}let i;o&&o.length>0?(i=new Uint8Array(o.length+a.length),i.set(o,0),i.set(a,o.length)):i=a;let g=r.bitLength,S=U(g,8)/8,l=Math.floor(i.length/S)*S;if(l>0){let k=i.subarray(0,l),E=await e.encodeAsync(k,{compress:false,encrypt:false,checksum:false,chunkSize:void 0,chunkSeparator:void 0,omitFooter:true});u.enqueue(E);}l<i.length?o=i.slice(l):o=null;}else s.push(a),h+=a.length;},async flush(a){try{if(f){if(!c){let u=z(m,{compressionAlgorithm:void 0,encrypted:!1});a.enqueue(u);}if(o&&o.length>0){let u=await e.encodeAsync(o,{compress:!1,encrypt:!1,checksum:!1,chunkSize:void 0,chunkSeparator:void 0});a.enqueue(u);}o=null;}else {let u=z(m,{compressionAlgorithm:t,encrypted:p});if(a.enqueue(u),h>0){let i=new Uint8Array(h),g=0;for(let l of s)i.set(l,g),g+=l.length;let S=await e.encodeAsync(i,{...n,compress:d,encrypt:p,checksum:y,chunkSize:void 0,chunkSeparator:void 0});a.enqueue(S);}s=[],h=0;}}catch(u){a.error(w(u,"stream"));}}})}function L(e,n){let r=e.getCharSetInfo(),d=r.paddingChar,p=y(d),y$1=n?.checksum??r.defaultChecksum,t="",m=false,f=null;return new TransformStream({async transform(c,s){if(t+=c,!m&&t.length>=p){if(!t.startsWith(d)){s.error(new Error("[WebStreams decode] Invalid or missing stream header"));return}if(f=A(t,d),f===null){s.error(new Error("[WebStreams decode] Invalid or missing stream header"));return}if(f.encrypted&&!r.hasEncryptionKey){s.error(new Error("[WebStreams decode] Encrypted stream requires an encryptionKey"));return}m=true,t=t.slice(p);}},async flush(c){try{if(!m){if(t.length===0)return;c.error(new Error("[WebStreams decode] Incomplete stream header"));return}if(t.length===0)return;let s=f.compressionAlgorithm,h=await e.decodeToUint8ArrayAsync(t,{...n,compress:n?.compress,compressionAlgorithm:s,encrypt:n?.encrypt,checksum:y$1,chunkSize:void 0,chunkSeparator:void 0});h.length>0&&c.enqueue(h),t="";}catch(s){c.error(w(s,"stream"));}}})}function D(e,n){return e.usePowerOfTwo&&!n.compressed&&!n.encrypted&&!n.checksum}function U(e,n){return e*n/I(e,n)}function I(e,n){for(;n!==0;){let r=n;n=e%n,e=r;}return e}export{R as a,W as b,L as c};//# sourceMappingURL=chunk-M7526IW7.js.map
2
+ //# sourceMappingURL=chunk-M7526IW7.js.map
@@ -0,0 +1,2 @@
1
+ 'use strict';var n="ddunigma:pbkdf2:v1";function r(e){return e===void 0||!Number.isFinite(e)||e<=0?21e4:Math.max(1e4,Math.floor(e))}function o(e){return (e??"SHA-256").toLowerCase().replace("-","")}function t(e){return e??"SHA-256"}function i(e){return e===void 0?new TextEncoder().encode(n):typeof e=="string"?new TextEncoder().encode(e):e}exports.a=r;exports.b=o;exports.c=t;exports.d=i;//# sourceMappingURL=chunk-NY4FGVF3.cjs.map
2
+ //# sourceMappingURL=chunk-NY4FGVF3.cjs.map
@@ -0,0 +1,2 @@
1
+ import {c,a,d}from'./chunk-QR43FNIY.js';var h=new Map;function m(t){if(t.buffer instanceof ArrayBuffer)return t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);let e=new Uint8Array(t.byteLength);return e.set(t),e.buffer}function A(t){let e=h.get(t);if(e!==void 0)return e;if(typeof CompressionStream>"u"||typeof DecompressionStream>"u")return false;try{return new CompressionStream(t),new DecompressionStream(t),h.set(t,!0),!0}catch{return false}}function l(t,e){if(!A(t)){let n=t==="brotli"?"Brotli":"Deflate raw";throw new Error(`[Ddu64 ${e}] ${n} ${e}ion is unsupported in the current runtime. CompressionStream/DecompressionStream does not support "${t}".`)}return t}var b=class{supportsSyncCrypto=false;supportsSyncCompression=false;runtime;constructor(e="browser"){this.runtime=e;}get supportsBrotli(){return A("brotli")}async deriveKey(e,n){let r=new TextEncoder().encode(e);if(n?.algorithm==="pbkdf2"){let a$1=await crypto.subtle.importKey("raw",r,"PBKDF2",false,["deriveBits"]),i=await crypto.subtle.deriveBits({name:"PBKDF2",salt:d(n.salt),iterations:a(n.iterations),hash:c(n.hash)},a$1,256);return new Uint8Array(i)}let c$1=await crypto.subtle.digest("SHA-256",r);return new Uint8Array(c$1)}async encrypt(e,n,s){let r=crypto.getRandomValues(new Uint8Array(12)),c=await crypto.subtle.importKey("raw",m(n),{name:"AES-GCM"},false,["encrypt"]),a={name:"AES-GCM",iv:r,tagLength:128};s&&s.length>0&&(a.additionalData=m(s));let i=await crypto.subtle.encrypt(a,c,m(e)),o=new Uint8Array(i),p=o.slice(0,o.length-16),u=o.slice(o.length-16),y=new Uint8Array(28+p.length);return y.set(r,0),y.set(u,12),y.set(p,28),y}async decrypt(e,n,s){if(e.length<28)throw new Error("[Ddu64 decrypt] Encrypted data is invalid. Payload must be at least 28 bytes (12 IV + 16 authTag + ciphertext).");let r=e.slice(0,12),c=e.slice(12,28),a=e.slice(28),i=new Uint8Array(a.length+16);i.set(a,0),i.set(c,a.length);let o=await crypto.subtle.importKey("raw",m(n),{name:"AES-GCM"},false,["decrypt"]);try{let p={name:"AES-GCM",iv:r,tagLength:128};s&&s.length>0&&(p.additionalData=m(s));let u=await crypto.subtle.decrypt(p,o,m(i));return new Uint8Array(u)}catch{throw new Error("[Ddu64 decrypt] Decryption failed: data tampering or incorrect key.")}}randomBytes(e){return crypto.getRandomValues(new Uint8Array(e))}async deflate(e,n){if(typeof CompressionStream>"u")throw new Error("[Ddu64 compress] Deflate compression is unsupported in the current runtime. CompressionStream API is not available.");let s=this.getDeflateFormat("compress"),r=new CompressionStream(s);return this.writeAndReadStream(r,e)}async inflate(e,n){if(typeof DecompressionStream>"u")throw new Error("[Ddu64 decompress] Deflate decompression is unsupported in the current runtime. DecompressionStream API is not available.");let s=this.getDeflateFormat("decompress"),r=new DecompressionStream(s);return this.writeAndReadStream(r,e,n)}async brotliCompress(e,n){let s=l("brotli","compress"),r=new CompressionStream(s);return this.writeAndReadStream(r,e)}async brotliDecompress(e,n){let s=l("brotli","decompress"),r=new DecompressionStream(s);return this.writeAndReadStream(r,e,n)}getDeflateFormat(e){return l("deflate-raw",e)}async writeAndReadStream(e,n,s){let r=e.writable.getWriter(),c=e.readable.getReader(),a=(async()=>{await r.write(new Uint8Array(m(n))),await r.close();})(),i=this.readAllChunks(c,s);try{let[o]=await Promise.all([i,a]);return o}catch(o){throw await c.cancel(o).catch(()=>{}),await r.abort(o).catch(()=>{}),o}}async readAllChunks(e,n){let s=[],r=0;for(;;){let{done:i,value:o}=await e.read();if(i)break;if(r+=o.length,n!==void 0&&r>n)throw new Error(`[Ddu64 decompress] Decompressed size exceeds limit. Estimated ${r}+ bytes exceeds maximum of ${n} bytes.`);s.push(o);}let c=new Uint8Array(r),a=0;for(let i of s)c.set(i,a),a+=i.length;return c}};export{b as a};//# sourceMappingURL=chunk-P7WJ2LOQ.js.map
2
+ //# sourceMappingURL=chunk-P7WJ2LOQ.js.map
@@ -0,0 +1,2 @@
1
+ var n="ddunigma:pbkdf2:v1";function r(e){return e===void 0||!Number.isFinite(e)||e<=0?21e4:Math.max(1e4,Math.floor(e))}function o(e){return (e??"SHA-256").toLowerCase().replace("-","")}function t(e){return e??"SHA-256"}function i(e){return e===void 0?new TextEncoder().encode(n):typeof e=="string"?new TextEncoder().encode(e):e}export{r as a,o as b,t as c,i as d};//# sourceMappingURL=chunk-QR43FNIY.js.map
2
+ //# sourceMappingURL=chunk-QR43FNIY.js.map
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkNY4FGVF3_cjs=require('./chunk-NY4FGVF3.cjs');var h=new Map;function m(t){if(t.buffer instanceof ArrayBuffer)return t.byteOffset===0&&t.byteLength===t.buffer.byteLength?t.buffer:t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength);let e=new Uint8Array(t.byteLength);return e.set(t),e.buffer}function A(t){let e=h.get(t);if(e!==void 0)return e;if(typeof CompressionStream>"u"||typeof DecompressionStream>"u")return false;try{return new CompressionStream(t),new DecompressionStream(t),h.set(t,!0),!0}catch{return false}}function l(t,e){if(!A(t)){let n=t==="brotli"?"Brotli":"Deflate raw";throw new Error(`[Ddu64 ${e}] ${n} ${e}ion is unsupported in the current runtime. CompressionStream/DecompressionStream does not support "${t}".`)}return t}var b=class{supportsSyncCrypto=false;supportsSyncCompression=false;runtime;constructor(e="browser"){this.runtime=e;}get supportsBrotli(){return A("brotli")}async deriveKey(e,n){let r=new TextEncoder().encode(e);if(n?.algorithm==="pbkdf2"){let a=await crypto.subtle.importKey("raw",r,"PBKDF2",false,["deriveBits"]),i=await crypto.subtle.deriveBits({name:"PBKDF2",salt:chunkNY4FGVF3_cjs.d(n.salt),iterations:chunkNY4FGVF3_cjs.a(n.iterations),hash:chunkNY4FGVF3_cjs.c(n.hash)},a,256);return new Uint8Array(i)}let c=await crypto.subtle.digest("SHA-256",r);return new Uint8Array(c)}async encrypt(e,n,s){let r=crypto.getRandomValues(new Uint8Array(12)),c=await crypto.subtle.importKey("raw",m(n),{name:"AES-GCM"},false,["encrypt"]),a={name:"AES-GCM",iv:r,tagLength:128};s&&s.length>0&&(a.additionalData=m(s));let i=await crypto.subtle.encrypt(a,c,m(e)),o=new Uint8Array(i),p=o.slice(0,o.length-16),u=o.slice(o.length-16),y=new Uint8Array(28+p.length);return y.set(r,0),y.set(u,12),y.set(p,28),y}async decrypt(e,n,s){if(e.length<28)throw new Error("[Ddu64 decrypt] Encrypted data is invalid. Payload must be at least 28 bytes (12 IV + 16 authTag + ciphertext).");let r=e.slice(0,12),c=e.slice(12,28),a=e.slice(28),i=new Uint8Array(a.length+16);i.set(a,0),i.set(c,a.length);let o=await crypto.subtle.importKey("raw",m(n),{name:"AES-GCM"},false,["decrypt"]);try{let p={name:"AES-GCM",iv:r,tagLength:128};s&&s.length>0&&(p.additionalData=m(s));let u=await crypto.subtle.decrypt(p,o,m(i));return new Uint8Array(u)}catch{throw new Error("[Ddu64 decrypt] Decryption failed: data tampering or incorrect key.")}}randomBytes(e){return crypto.getRandomValues(new Uint8Array(e))}async deflate(e,n){if(typeof CompressionStream>"u")throw new Error("[Ddu64 compress] Deflate compression is unsupported in the current runtime. CompressionStream API is not available.");let s=this.getDeflateFormat("compress"),r=new CompressionStream(s);return this.writeAndReadStream(r,e)}async inflate(e,n){if(typeof DecompressionStream>"u")throw new Error("[Ddu64 decompress] Deflate decompression is unsupported in the current runtime. DecompressionStream API is not available.");let s=this.getDeflateFormat("decompress"),r=new DecompressionStream(s);return this.writeAndReadStream(r,e,n)}async brotliCompress(e,n){let s=l("brotli","compress"),r=new CompressionStream(s);return this.writeAndReadStream(r,e)}async brotliDecompress(e,n){let s=l("brotli","decompress"),r=new DecompressionStream(s);return this.writeAndReadStream(r,e,n)}getDeflateFormat(e){return l("deflate-raw",e)}async writeAndReadStream(e,n,s){let r=e.writable.getWriter(),c=e.readable.getReader(),a=(async()=>{await r.write(new Uint8Array(m(n))),await r.close();})(),i=this.readAllChunks(c,s);try{let[o]=await Promise.all([i,a]);return o}catch(o){throw await c.cancel(o).catch(()=>{}),await r.abort(o).catch(()=>{}),o}}async readAllChunks(e,n){let s=[],r=0;for(;;){let{done:i,value:o}=await e.read();if(i)break;if(r+=o.length,n!==void 0&&r>n)throw new Error(`[Ddu64 decompress] Decompressed size exceeds limit. Estimated ${r}+ bytes exceeds maximum of ${n} bytes.`);s.push(o);}let c=new Uint8Array(r),a=0;for(let i of s)c.set(i,a),a+=i.length;return c}};exports.a=b;//# sourceMappingURL=chunk-RFBXQWSA.cjs.map
2
+ //# sourceMappingURL=chunk-RFBXQWSA.cjs.map
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkNY4FGVF3_cjs=require('./chunk-NY4FGVF3.cjs'),crypto=require('crypto'),zlib=require('zlib'),util=require('util');var N=util.promisify(zlib.deflateRaw),w=util.promisify(zlib.inflateRaw),v=util.promisify(zlib.brotliCompress),h=util.promisify(zlib.brotliDecompress),E=util.promisify(crypto.pbkdf2);function _(e){let n=e,r=String(n?.message??"").toLowerCase();return String(n?.code??"")==="ERR_BUFFER_TOO_LARGE"||r.includes("output length")||r.includes("buffer too large")||r.includes("cannot create a buffer larger")}function f(e,n,r){throw _(e)?new Error(`[Ddu64 ${r}] Decompressed data exceeds limit. Limit: ${n} bytes`,{cause:e}):e}function s(e){return Buffer.isBuffer(e)?e:e.buffer instanceof SharedArrayBuffer?Buffer.from(e):Buffer.from(e.buffer,e.byteOffset,e.byteLength)}var g=class{supportsSyncCrypto=true;supportsSyncCompression=true;supportsBrotli=true;runtime="node";async deriveKey(n,r){if(r?.algorithm==="pbkdf2"){let t=await E(n,chunkNY4FGVF3_cjs.d(r.salt),chunkNY4FGVF3_cjs.a(r.iterations),32,chunkNY4FGVF3_cjs.b(r.hash));return new Uint8Array(t)}return this.deriveKeySync(n,r)}deriveKeySync(n,r){return r?.algorithm==="pbkdf2"?new Uint8Array(crypto.pbkdf2Sync(n,chunkNY4FGVF3_cjs.d(r.salt),chunkNY4FGVF3_cjs.a(r.iterations),32,chunkNY4FGVF3_cjs.b(r.hash))):new Uint8Array(crypto.createHash("sha256").update(n).digest())}async encrypt(n,r,t){return this.encryptSync(n,r,t)}encryptSync(n,r,t){let i=crypto.randomBytes(12),o=crypto.createCipheriv("aes-256-gcm",r,i);t&&t.length>0&&o.setAAD(s(t));let u=Buffer.concat([o.update(n),o.final()]),a=o.getAuthTag(),c=new Uint8Array(28+u.length);return c.set(i,0),c.set(a,12),c.set(u,28),c}async decrypt(n,r,t){return this.decryptSync(n,r,t)}decryptSync(n,r,t){if(n.length<28)throw new Error("[Ddu64 decrypt] Invalid encrypted data: too short");let i=n.subarray(0,12),o=n.subarray(12,28),u=n.subarray(28),a=crypto.createDecipheriv("aes-256-gcm",r,i);t&&t.length>0&&a.setAAD(s(t)),a.setAuthTag(o);let c=Buffer.concat([a.update(u),a.final()]);return new Uint8Array(c)}randomBytes(n){return new Uint8Array(crypto.randomBytes(n))}async deflate(n,r){let t={};r!==void 0&&(t.level=r);let i=await N(s(n),t);return new Uint8Array(i)}deflateSync(n,r){let t={};return r!==void 0&&(t.level=r),new Uint8Array(zlib.deflateRawSync(s(n),t))}async inflate(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY){let i=await w(s(n));return new Uint8Array(i)}let t={maxOutputLength:r};try{let i=await w(s(n),t);return new Uint8Array(i)}catch(i){f(i,r,"inflate");}}inflateSync(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY)return new Uint8Array(zlib.inflateRawSync(s(n)));try{return new Uint8Array(zlib.inflateRawSync(s(n),{maxOutputLength:r}))}catch(t){f(t,r,"inflate");}}async brotliCompress(n,r){let t={};r!==void 0&&(t.params={[zlib.constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))});let i=await v(s(n),t);return new Uint8Array(i)}brotliCompressSync(n,r){let t={};return r!==void 0&&(t.params={[zlib.constants.BROTLI_PARAM_QUALITY]:Math.max(0,Math.min(11,r))}),new Uint8Array(zlib.brotliCompressSync(s(n),t))}async brotliDecompress(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY){let t=await h(s(n));return new Uint8Array(t)}try{let t=await h(s(n),{maxOutputLength:r});return new Uint8Array(t)}catch(t){f(t,r,"brotli");}}brotliDecompressSync(n,r){if(r===void 0||r===Number.POSITIVE_INFINITY)return new Uint8Array(zlib.brotliDecompressSync(s(n)));try{return new Uint8Array(zlib.brotliDecompressSync(s(n),{maxOutputLength:r}))}catch(t){f(t,r,"brotli");}}};exports.a=g;//# sourceMappingURL=chunk-RHVBUC4T.cjs.map
2
+ //# sourceMappingURL=chunk-RHVBUC4T.cjs.map
@@ -0,0 +1,2 @@
1
+ 'use strict';var chunkFACJ5LAG_cjs=require('./chunk-FACJ5LAG.cjs');function R(){let e=globalThis;return e.Deno?.version?.deno?"deno":e.Bun?.version?"bun":e.process?.versions?.node?"node":typeof e.EdgeRuntime=="string"||typeof e.WebSocketPair<"u"&&e.crypto?.subtle?"edge":typeof e.crypto<"u"&&e.crypto?.subtle?"browser":"unknown"}function W(e,n){let r=e.getCharSetInfo(),d=n?.compress??r.defaultCompress,p=(n?.encrypt??true)&&r.hasEncryptionKey,y=n?.checksum??r.defaultChecksum,t=d?n?.compressionAlgorithm??r.defaultCompressionAlgorithm:void 0,m=r.paddingChar,f=D(r,{compressed:d,encrypted:p,checksum:y}),c=false,s=[],h=0,o=null;return new TransformStream({async transform(a,u){if(f){if(!c){let k=chunkFACJ5LAG_cjs.z(m,{compressionAlgorithm:void 0,encrypted:false});u.enqueue(k),c=true;}let i;o&&o.length>0?(i=new Uint8Array(o.length+a.length),i.set(o,0),i.set(a,o.length)):i=a;let g=r.bitLength,S=U(g,8)/8,l=Math.floor(i.length/S)*S;if(l>0){let k=i.subarray(0,l),E=await e.encodeAsync(k,{compress:false,encrypt:false,checksum:false,chunkSize:void 0,chunkSeparator:void 0,omitFooter:true});u.enqueue(E);}l<i.length?o=i.slice(l):o=null;}else s.push(a),h+=a.length;},async flush(a){try{if(f){if(!c){let u=chunkFACJ5LAG_cjs.z(m,{compressionAlgorithm:void 0,encrypted:!1});a.enqueue(u);}if(o&&o.length>0){let u=await e.encodeAsync(o,{compress:!1,encrypt:!1,checksum:!1,chunkSize:void 0,chunkSeparator:void 0});a.enqueue(u);}o=null;}else {let u=chunkFACJ5LAG_cjs.z(m,{compressionAlgorithm:t,encrypted:p});if(a.enqueue(u),h>0){let i=new Uint8Array(h),g=0;for(let l of s)i.set(l,g),g+=l.length;let S=await e.encodeAsync(i,{...n,compress:d,encrypt:p,checksum:y,chunkSize:void 0,chunkSeparator:void 0});a.enqueue(S);}s=[],h=0;}}catch(u){a.error(chunkFACJ5LAG_cjs.w(u,"stream"));}}})}function L(e,n){let r=e.getCharSetInfo(),d=r.paddingChar,p=chunkFACJ5LAG_cjs.y(d),y=n?.checksum??r.defaultChecksum,t="",m=false,f=null;return new TransformStream({async transform(c,s){if(t+=c,!m&&t.length>=p){if(!t.startsWith(d)){s.error(new Error("[WebStreams decode] Invalid or missing stream header"));return}if(f=chunkFACJ5LAG_cjs.A(t,d),f===null){s.error(new Error("[WebStreams decode] Invalid or missing stream header"));return}if(f.encrypted&&!r.hasEncryptionKey){s.error(new Error("[WebStreams decode] Encrypted stream requires an encryptionKey"));return}m=true,t=t.slice(p);}},async flush(c){try{if(!m){if(t.length===0)return;c.error(new Error("[WebStreams decode] Incomplete stream header"));return}if(t.length===0)return;let s=f.compressionAlgorithm,h=await e.decodeToUint8ArrayAsync(t,{...n,compress:n?.compress,compressionAlgorithm:s,encrypt:n?.encrypt,checksum:y,chunkSize:void 0,chunkSeparator:void 0});h.length>0&&c.enqueue(h),t="";}catch(s){c.error(chunkFACJ5LAG_cjs.w(s,"stream"));}}})}function D(e,n){return e.usePowerOfTwo&&!n.compressed&&!n.encrypted&&!n.checksum}function U(e,n){return e*n/I(e,n)}function I(e,n){for(;n!==0;){let r=n;n=e%n,e=r;}return e}exports.a=R;exports.b=W;exports.c=L;//# sourceMappingURL=chunk-WS6GB27C.cjs.map
2
+ //# sourceMappingURL=chunk-WS6GB27C.cjs.map