Socket
Socket
Sign inDemoInstall

@wasm-audio-decoders/flac

Package Overview
Dependencies
2
Maintainers
1
Versions
23
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.1.0 to 0.1.1

4

dist/flac-decoder.min.js
/* Copyright 2021-2022 Ethan Halsall. This file is part of wasm-audio-decoders. https://github.com/eshaz/wasm-audio-decoders */
var t,e;t=this,e=function(t,e){function s(t){const e=Uint8Array,i=Float32Array;s.t||Object.defineProperties(s,{t:{value:new WeakMap},o:{value(t,e){s.t.set(t,Promise.resolve(e))}},u:{value(t,e){let i=s.t.get(t);return i||(e?i=WebAssembly.compile(s.U(e)):(e=t.p,i=s.M(e).then((t=>WebAssembly.compile(t)))),s.t.set(t,i)),i}},A:{value(t,e){let s=new i(e),r=0,n=0;for(;r<t.length;)s.set(t[r],n),n+=t[r++].length;return s}},T:{value:(t,e,s,i,r)=>({S:t,channelData:e,samplesDecoded:s,sampleRate:i,bitDepth:r})},$:{value(t,e,i,r,n,h){let a,o,c=[];for(a=0;a<i;a++){const t=[];for(o=0;o<e.length;)t.push(e[o++][a]||[]);c.push(s.A(t,r))}return s.T(t,c,r,n,h)}},U:{value(t){const s=new e(t.length),i=parseInt(t.substring(11,13),16),r=256-i;let n,h=!1,a=0,o=13;for(;o<t.length;)n=t.charCodeAt(o++),61!==n||h?(h&&(h=!1,n-=64),s[a++]=n<i&&n>0?n+r:n-i):h=!0;return s.subarray(0,a)}},M:{value(t){return t=s.U(t),new Promise((i=>{const r=String.raw`dynEncode0014u‡*t“““t“““““t““““$#“U¤¤“U¤¤3yƒ†„‰zzss|yu„svu‡yÚ&ˆ“4<054<,5T44^T44<(6U~J(44< ~A544U~6J0444ˆ†545 444J0444‰J,4U“4ˆU“‡…Ò“7U45“4U4Z“4U4U^/6545T4T44BUˆ~64CU~O4U54U~5 U5T4B4Z!4U~5U5U5T4U~6U4ZTU5U5T44~4O4U2ZTU5T44Z!4B6T44Uˆ~64B6U~O44Uˆ~4O4U~54U~5 44~C4~54U~5 44~5454Uˆ4B6Ub!444~UO4U~5 “U5“4U4ZTUŠ#44U$4†64<4~B6^“4<444~Uˆ~B4U~54Uˆ544~544~Uˆ5 µ“Uä#UJUè#5TT4U0ZTTUX5U5T4T4Uà#~4OU4U $~Cˆ4~54U~5 T44$6U\!TTT4UaT4<6T4<64<Z!44~4N4<U~5 4U”Z!4U±_TUŠ#44U•Uˆ6UÔ~B$544$6U\!4Uˆ6U¤#~B44Uä#~B$~64<6_TU‰#444U”~B~6~54<Y!44<_!T4Y!4<64~444~AN44<U~6J4U5 44J4U”[!U#44UŠO4U~54U~5 U54 “7U6844J44J 4UJ4UJ04VK(44<J44<J$4U´~54U~5 4U¤~5!TTT4U$5"U“5TTTTTTT4U$"4VK,U54<(6U~64<$6_!4< 64~6A54A544U~6#J(U’54A4U‡[!44J(44#~A4Uˆ6U“‡UŠU…[!44†64~64_!4<64~54<6T4<4]TU5 T4Y!44~44~AN4U~54U~54U5 44J(44J UÄA!U5U”#UôJU"UÔJUœ#UÔ"JU˜#U´"JT4U´ZTU5T4UôZTU5T4UDZTU5T4U$[T44~UO4U~5 UÔUô4U~U´$.U5T4UP[T4U~4~UO4U~5 U˜#<Uœ#<4U~U2$.UÄUN 44 ~UO4U~5 44!~UO4U~5 4U~4~UO4U~5 44J44J(U5 44U¤~J@44Uä~J<44UD~J844U~J44U$54U$5U‘54U$54U1^4U1^†!4U•~54U~5U”54U~6U4U^/65T4T4U$54U~4BUˆ~4O4U54U~5 UU'464U'_/54UˆU”~5T4T4U~4BUˆ~UO4U54U~5 U54Uä~4U¤~4U~U'$!44~5U5T44\T44U<~$6U\!4U#aT4U~4Uˆ~4O4U~5 U5U5U5TTT4U$"4YTU5 4Uˆ4~C5U5 U5U5444$4~64~\TUŽ5 4U~4Uˆ~5T4Y!44O4U~54U~54U5 4CYTU‹5 4Uä~4U¤~4U~4$6TU54U\!44Bæ4Bä~[!4U~4UD~4U~4Uˆ~4$6TUŒ54U\!44B†4B„~[!44U<~4U4~$5 4U"U˜#$544"†Y!454U^!44<J44<(J454U~84­U”N!#%'+/37?GOWgw‡—·×÷Uä;U”9$%& !"#`;s.u(s,r).then((t=>WebAssembly.instantiate(t,{}))).then((({exports:s})=>{const r=new Map(Object.entries(s)),n=r.get("puff"),h=r.get("memory").buffer,a=new e(h),o=new DataView(h);let c=r.get("__heap_base");const l=t.length,d=c;c+=4,o.setInt32(d,l,!0);const u=c;c+=l,a.set(t,u);const U=c;c+=4,o.setInt32(U,a.byteLength-c,!0),n(c,U,u,d),i(a.slice(c,c+o.getInt32(U,!0)))}))}))}}}),Object.defineProperty(this,"p",{O:!0,get:()=>this.v}),this.B=(t,e,s)=>{let i=[],r=0;for(;r<e;)i.push(t.slice(r*s,r++*s+s));return i},this.F=(t,e,s=!0)=>{const i=this.v.C(e.BYTES_PER_ELEMENT*t);return s&&this.J.add(i),{_:i,D:t,L:new e(this.v.V,i,t)}},this.free=()=>{this.J.forEach((t=>{this.v.W(t)})),this.J.clear()},this.P=t=>{const e=[],s=new Uint8Array(this.v.V);for(let i=s[t];0!==i;i=s[++t])e.push(i);return String.fromCharCode.apply(null,e)},this.H=(e,s,i)=>{e.push({message:s,frameLength:i,frameNumber:t.q,inputBytes:t.I,outputSamples:t.Y})},this.instantiate=()=>{const r=t.K,n=t.Z,h=t.G,a=t.N,o=t.R;return r&&s.o(n,r),this.v=new n(s).instantiate(),this.J=new Set,this.v.ready.then((()=>(h&&(t.X=this.F(h,e)),o&&(t.tt=this.F(a*o,i)),t.I=0,t.Y=0,t.q=0,this)))}}class i extends e{constructor(t,e,i,r){s.t||new s;let n=s.t.get(i);if(!n){const t=`'use strict';(${""+((t,e,s)=>{let i,r,n=new Promise((t=>{r=t}));self.onmessage=({data:{id:h,command:a,data:o}})=>{let c,l=n,d={id:h};"init"===a?(Object.defineProperties(t,{et:{value:e},st:{value:s},it:{value:o.it},rt:{value:!0}}),i=new t(o.options),r()):"free"===a?i.free():"ready"===a?l=l.then((()=>i.ready)):"reset"===a?l=l.then((()=>i.reset())):(Object.assign(d,i[a](Array.isArray(o)?o.map((t=>new Uint8Array(t))):new Uint8Array(o))),c=d.channelData.map((t=>t.buffer))),l.then((()=>self.postMessage(d,c)))}})})(${i}, ${s}, ${r})`,e="text/javascript";try{n=URL.createObjectURL(new Blob([t],{type:e}))}catch{n=`data:${e};base64,${Buffer.from(t).toString("base64")}`}s.t.set(i,n)}super(n,{name:e}),this.nt=Number.MIN_SAFE_INTEGER,this.ht=new Map,this.onmessage=({data:t})=>{const{id:e,...s}=t;this.ht.get(e)(s),this.ht.delete(e)},new r(s).u().then((e=>{this.at("init",{it:e,options:t})}))}async at(t,e){return new Promise((s=>{this.postMessage({command:t,id:this.nt,data:e}),this.ht.set(this.nt++,s)}))}get ready(){return this.at("ready")}async free(){await this.at("free").finally((()=>{this.terminate()}))}async reset(){await this.at("reset")}}const r=(t,e,s)=>{for(let i=0;i<t.length;i++){let r=e(i);for(let t=8;t>0;t--)r=s(r);t[i]=r}return t},n=r(new Uint8Array(256),(t=>t),(t=>128&t?7^t<<1:t<<1)),h=[r(new Uint16Array(256),(t=>t<<8),(t=>t<<1^(32768&t?32773:0)))],a=[r(new Uint32Array(256),(t=>t),(t=>t>>>1^3988292384*(1&t)))];for(let ee=0;ee<15;ee++){h.push(new Uint16Array(256)),a.push(new Uint32Array(256));for(let t=0;t<=255;t++)h[ee+1][t]=h[0][h[ee][t]>>>8]^h[ee][t]<<8,a[ee+1][t]=a[ee][t]>>>8^a[0][255&a[ee][t]]}const o=t=>{const e=t.length,s=e-16;let i=0,r=0;for(;r<=s;)i=a[15][255&(t[r++]^i)]^a[14][255&(t[r++]^i>>>8)]^a[13][255&(t[r++]^i>>>16)]^a[12][t[r++]^i>>>24]^a[11][t[r++]]^a[10][t[r++]]^a[9][t[r++]]^a[8][t[r++]]^a[7][t[r++]]^a[6][t[r++]]^a[5][t[r++]]^a[4][t[r++]]^a[3][t[r++]]^a[2][t[r++]]^a[1][t[r++]]^a[0][t[r++]];for(;r!==e;)i=a[0][255&(i^t[r++])]^i>>>8;return-1^i},c=(...t)=>{const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));return t.reduce(((t,s)=>(e.set(s,t),t+s.length)),0),e},l=t=>String.fromCharCode(...t),d=[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],u=t=>d[15&t]<<4|d[t>>4];class U{constructor(t){this.ot=t,this.ct=8*t.length}set position(t){this.ct=t}get position(){return this.ct}read(t){const e=Math.floor(this.ct/8),s=this.ct%8;return this.ct-=t,(u(this.ot[e-1])<<8)+u(this.ot[e])>>7-s&255}}class f{constructor(t){this.lt=t,this.reset()}enable(){this.dt=!0}reset(){this.ut=new Map,this.Ut=new WeakMap,this.ft=!1,this.yt=null,this.dt=!1}wt(t,e){if(this.lt){this.yt!==t&&(this.yt=t,this.ft=!0);const s=this.Ut.get(this.ut.get(this.gt));this.ft&&s&&this.lt({bt:t,...s},e),this.ft=!1}}Mt(t){this.lt&&t!==this.gt&&(this.ft=!0,this.gt=t)}At(t){const e=this.ut.get(t);return e&&this.Mt(t),e}Tt(t,e,s){this.dt&&(this.Mt(t),this.ut.set(t,e),this.Ut.set(e,s))}}const m=new WeakMap,p=new WeakMap;class y{constructor(t,e){this.xt=t,this.ut=e}*St(){let t;for(;;){if(t=yield*this.Ot.$t(this.xt,this.ut,0),t)return t;this.xt.vt(1)}}*zt(t){let e=yield*this.St();const s=p.get(e).length;if(t||this.xt.Bt||(yield*this.Ft.At(this.xt,this.ut,s)))return this.ut.enable(),this.xt.vt(s),this.xt.Ct(e),e;this.xt.Jt(`Missing frame frame at ${s} bytes from current position.`,"Dropping current frame and trying again."),this.ut.reset(),this.xt.vt(1)}}class w{constructor(t,e){p.set(this,{_t:t}),this.data=e}}class g extends w{static*$t(t,e,s,i,r){const n=yield*t.At(s,i,r);if(n){const t=m.get(n).frameLength,i=m.get(n).Dt;return new e(n,(yield*s.Et(t,r)).subarray(0,t),i)}return null}constructor(t,e,s){super(t,e),this._t=t,this.Dt=s,this.duration=s/t.sampleRate*1e3,this.frameNumber=null,this.Lt=null,this.Vt=null,this.Wt=null,p.get(this).length=e.length}}const b="reserved",M="bad",A="free",T="none",x="16bit CRC",S="left",$="center",O="right",v=["","front ","side ","rear "].map((t=>[[S,O],[S,O,$],[S,$,O],[$,S,O],[$]].flatMap((e=>e.map((e=>t+e)).join(", "))))),z="LFE",B="monophonic (mono)",F="stereo",C="surround",J=[B,F,"linear "+C,"quadraphonic","5.0 "+C,"5.1 "+C,"6.1 "+C,"7.1 "+C],_=(t,...e)=>`${J[t-1]} (${e.join(", ")})`,D=[B,_(2,v[0][0]),_(3,v[0][2]),_(4,v[1][0],v[3][0]),_(5,v[1][2],v[3][0]),_(6,v[1][2],v[3][0],z),_(7,v[1][2],v[2][0],v[3][4],z),_(8,v[1][2],v[2][0],v[3][0],z)],E=48e3,L=44100,V=32e3,W=24e3,P=22050,H=16e3,k=8e3;class q{static*Pt(t,e,s){const i={Ht:10};let r=yield*t.Et(3,s);return 73!==r[0]||68!==r[1]||51!==r[2]?null:(r=yield*t.Et(i.Ht,s),i.version=`id3v2.${r[3]}.${r[4]}`,15&r[5]?null:(i.kt=!!(128&r[5]),i.qt=!!(64&r[5]),i.It=!!(32&r[5]),i.Yt=!!(16&r[5]),128&r[6]||128&r[7]||128&r[8]||128&r[9]?null:(i.Kt=r[6]<<21|r[7]<<14|r[8]<<7|r[9],i.length=i.Ht+i.Kt,new q(i))))}constructor(t){this.version=t.version,this.kt=t.kt,this.qt=t.qt,this.It=t.It,this.Yt=t.Yt,this.length=t.length}}class I{constructor(t){m.set(this,t),this.bitDepth=t.bitDepth,this.bt=null,this.Zt=t.Zt,this.Gt=t.Gt,this.sampleRate=t.sampleRate}}const Y={0:[A,A,A,A,A],16:[32,32,32,32,8],240:[M,M,M,M,M]},K=(t,e,s)=>8*((t+s)%e+e)*(1<<(t+s)/e)-8*e*(e/8|0);for(let ee=2;ee<15;ee++)Y[ee<<4]=[32*ee,K(ee,4,0),K(ee,4,-1),K(ee,8,4),K(ee,8,0)];const Z="bands ",G=" to 31",N={0:Z+4+G,16:Z+8+G,32:Z+12+G,48:Z+16+G},R="Intensity stereo ",j=", MS stereo ",Q="on",X="off",tt={0:{description:b},2:{description:"Layer III",Nt:1,Rt:{0:R+X+j+X,16:R+Q+j+X,32:R+X+j+Q,48:R+Q+j+Q},jt:{Qt:2,Dt:1152},Xt:{Qt:4,Dt:576}},4:{description:"Layer II",Nt:1,Rt:N,Dt:1152,jt:{Qt:1},Xt:{Qt:4}},6:{description:"Layer I",Nt:4,Rt:N,Dt:384,jt:{Qt:0},Xt:{Qt:3}}},et="MPEG Version ",st="ISO/IEC ",it={0:{description:et+"2.5 (later extension of MPEG 2)",te:"v2",ee:{0:11025,4:12e3,8:k,12:b}},8:{description:b},16:{description:`${et}2 (${st}13818-3)`,te:"v2",ee:{0:P,4:W,8:H,12:b}},24:{description:`${et}1 (${st}11172-3)`,te:"v1",ee:{0:L,4:E,8:V,12:b}}},rt={0:x,1:T},nt={0:T,1:"50/15 ms",2:b,3:"CCIT J.17"},ht={0:{Zt:2,description:F},64:{Zt:2,description:"joint "+F},128:{Zt:2,description:"dual channel"},192:{Zt:1,description:B}};class at extends I{static*At(t,e,s){const i={},r=yield*q.Pt(t,e,s);r&&(yield*t.Et(r.length,s),t.vt(r.length));const n=yield*t.Et(4,s),h=l(n.subarray(0,4)),a=e.At(h);if(a)return new at(a);if(255!==n[0]||n[1]<224)return null;const o=it[24&n[1]];if(o.description===b)return null;const c=6&n[1];if(tt[c].description===b)return null;const d={...tt[c],...tt[c][o.te]};if(i.se=o.description,i.ie=d.description,i.Dt=d.Dt,i.re=rt[1&n[1]],i.length=4,i.bt=Y[240&n[2]][d.Qt],i.bt===M)return null;if(i.sampleRate=o.ee[12&n[2]],i.sampleRate===b)return null;if(i.Nt=2&n[2]&&d.Nt,i.ne=!!(1&n[2]),i.frameLength=Math.floor(125*i.bt*i.Dt/i.sampleRate+i.Nt),!i.frameLength)return null;const u=192&n[3];if(i.Gt=ht[u].description,i.Zt=ht[u].Zt,i.he=d.Rt[48&n[3]],i.ae=!!(8&n[3]),i.oe=!!(4&n[3]),i.ce=nt[3&n[3]],i.ce===b)return null;i.bitDepth=16;const{length:U,frameLength:f,Dt:m,...p}=i;return e.Tt(h,i,p),new at(i)}constructor(t){super(t),this.bt=t.bt,this.ce=t.ce,this.Nt=t.Nt,this.ae=t.ae,this.oe=t.oe,this.ne=t.ne,this.ie=t.ie,this.he=t.he,this.se=t.se,this.re=t.re}}class ot extends g{static*$t(t,e,s){return yield*super.$t(at,ot,t,e,s)}constructor(t,e,s){super(t,e,s)}}class ct extends y{constructor(t,e,s){super(t,e),this.Ot=ot,this.Ft=at,s(this.le)}get le(){return"mpeg"}*de(){return yield*this.zt()}}const lt={0:"MPEG-4",8:"MPEG-2"},dt={0:"valid",2:M,4:M,6:M},ut={0:x,1:T},Ut={0:"AAC Main",64:"AAC LC (Low Complexity)",128:"AAC SSR (Scalable Sample Rate)",192:"AAC LTP (Long Term Prediction)"},ft={0:96e3,4:88200,8:64e3,12:E,16:L,20:V,24:W,28:P,32:H,36:12e3,40:11025,44:k,48:7350,52:b,56:b,60:"frequency is written explicitly"},mt={0:{Zt:0,description:"Defined in AOT Specific Config"},64:{Zt:1,description:B},128:{Zt:2,description:_(2,v[0][0])},192:{Zt:3,description:_(3,v[1][3])},256:{Zt:4,description:_(4,v[1][3],v[3][4])},320:{Zt:5,description:_(5,v[1][3],v[3][0])},384:{Zt:6,description:_(6,v[1][3],v[3][0],z)},448:{Zt:8,description:_(8,v[1][3],v[2][0],v[3][0],z)}};class pt extends I{static*At(t,e,s){const i={},r=yield*t.Et(7,s),n=l([r[0],r[1],r[2],252&r[3]|3&r[6]]),h=e.At(n);if(h)Object.assign(i,h);else{if(255!==r[0]||r[1]<240)return null;if(i.se=lt[8&r[1]],i.ie=dt[6&r[1]],i.ie===M)return null;const t=1&r[1];i.re=ut[t],i.length=t?7:9,i.ue=192&r[2],i.Ue=60&r[2];const s=2&r[2];if(i.profile=Ut[i.ue],i.sampleRate=ft[i.Ue],i.sampleRate===b)return null;i.ne=!!s,i.fe=448&(r[2]<<8|r[3]),i.Gt=mt[i.fe].description,i.Zt=mt[i.fe].Zt,i.oe=!!(32&r[3]),i.me=!!(8&r[3]),i.pe=!!(8&r[3]),i.ye=!!(4&r[3]),i.bitDepth=16,i.Dt=1024,i.we=3&r[6];const{length:h,fe:a,ue:o,Ue:c,frameLength:l,Dt:d,we:u,...U}=i;e.Tt(n,i,U)}if(i.frameLength=8191&(r[3]<<11|r[4]<<3|r[5]>>5),!i.frameLength)return null;const a=2047&(r[5]<<6|r[6]>>2);return i.ge=2047===a?"VBR":a,new pt(i)}constructor(t){super(t),this.pe=t.pe,this.ye=t.ye,this.ge=t.ge,this.me=t.me,this.oe=t.oe,this.ne=t.ne,this.ie=t.ie,this.length=t.length,this.se=t.se,this.we=t.we,this.profile=t.profile,this.re=t.re}get be(){const t=m.get(this),e=t.ue+64<<5|t.Ue<<5|t.fe>>3,s=new Uint8Array(2);return new DataView(s.buffer).setUint16(0,e,!1),s}}class yt extends g{static*$t(t,e,s){return yield*super.$t(pt,yt,t,e,s)}constructor(t,e,s){super(t,e,s)}}class wt extends y{constructor(t,e,s){super(t,e),this.Ot=yt,this.Ft=pt,s(this.le)}get le(){return"aac"}*de(){return yield*this.zt()}}class gt extends g{static Me(t){return(t[t.length-2]<<8)+t[t.length-1]}static Ae(t){return gt.Me(t)===(t=>{const e=t.length,s=e-16;let i=0,r=0;for(;r<=s;)i^=t[r++]<<8|t[r++],i=h[15][i>>8]^h[14][255&i]^h[13][t[r++]]^h[12][t[r++]]^h[11][t[r++]]^h[10][t[r++]]^h[9][t[r++]]^h[8][t[r++]]^h[7][t[r++]]^h[6][t[r++]]^h[5][t[r++]]^h[4][t[r++]]^h[3][t[r++]]^h[2][t[r++]]^h[1][t[r++]]^h[0][t[r++]];for(;r!==e;)i=(255&i)<<8^h[0][i>>8^t[r++]];return i})(t.subarray(0,-2))}constructor(t,e,s){e.Te=s,e.xe=gt.Me(t),super(e,t,m.get(e).Dt)}}const bt="get from STREAMINFO metadata block",Mt={0:"Fixed",1:"Variable"},At={0:b,16:192};for(let ee=2;ee<16;ee++)At[ee<<4]=ee<6?576*2**(ee-2):2**ee;const Tt={0:bt,1:88200,2:176400,3:192e3,4:k,5:H,6:P,7:W,8:V,9:L,10:E,11:96e3,15:M},xt={0:{Zt:1,description:B},16:{Zt:2,description:_(2,v[0][0])},32:{Zt:3,description:_(3,v[0][1])},48:{Zt:4,description:_(4,v[1][0],v[3][0])},64:{Zt:5,description:_(5,v[1][1],v[3][0])},80:{Zt:6,description:_(6,v[1][1],z,v[3][0])},96:{Zt:7,description:_(7,v[1][1],z,v[3][4],v[2][0])},112:{Zt:8,description:_(8,v[1][1],z,v[3][0],v[2][0])},128:{Zt:2,description:F+" (left, diff)"},144:{Zt:2,description:F+" (diff, right)"},160:{Zt:2,description:F+" (avg, diff)"},176:b,192:b,208:b,224:b,240:b},St={0:bt,2:8,4:12,6:b,8:16,10:20,12:24,14:b};class $t extends I{static Se(t){if(t[0]>254)return null;if(t[0]<128)return{value:t[0],length:1};let e=1;for(let n=64;n&t[0];n>>=1)e++;let s=e-1,i=0,r=0;for(;s>0;r+=6,s--){if(128!=(192&t[s]))return null;i|=(63&t[s])<<r}return i|=(t[s]&127>>e)<<r,{value:i,length:e}}static $e(t,e){const s={*Et(){return t}};return $t.At(s,e,0).next().value}static*At(t,e,s){let i=yield*t.Et(6,s);if(255!==i[0]||248!==i[1]&&249!==i[1])return null;const r={},h=l(i.subarray(0,4)),a=e.At(h);if(a)Object.assign(r,a);else{if(r.Oe=1&i[1],r.ve=Mt[r.Oe],r.ze=240&i[2],r.Ue=15&i[2],r.blockSize=At[r.ze],r.blockSize===b)return null;if(r.sampleRate=Tt[r.Ue],r.sampleRate===M)return null;if(1&i[3])return null;const t=xt[240&i[3]];if(t===b)return null;if(r.Zt=t.Zt,r.Gt=t.description,r.bitDepth=St[14&i[3]],r.bitDepth===b)return null}r.length=5,i=yield*t.Et(r.length+8,s);const o=$t.Se(i.subarray(4));if(!o)return null;if(r.Oe?r.Be=o.value:r.frameNumber=o.value,r.length+=o.length,96===r.ze?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.blockSize=i[r.length-1]+1,r.length+=1):112===r.ze&&(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.blockSize=(i[r.length-1]<<8)+i[r.length]+1,r.length+=2),r.Dt=r.blockSize,12===r.Ue?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=1e3*i[r.length-1],r.length+=1):13===r.Ue?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=(i[r.length-1]<<8)+i[r.length],r.length+=2):14===r.Ue&&(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=10*((i[r.length-1]<<8)+i[r.length]),r.length+=2),i.length<r.length&&(i=yield*t.Et(r.length,s)),r.Fe=i[r.length-1],r.Fe!==(t=>{let e=0;const s=t.length;for(let i=0;i!==s;i++)e=n[e^t[i]];return e})(i.subarray(0,r.length-1)))return null;if(!a){const{Oe:t,frameNumber:s,Be:i,Dt:n,Ue:a,ze:o,Fe:c,length:l,...d}=r;e.Tt(h,r,d)}return new $t(r)}constructor(t){super(t),this.xe=null,this.ve=t.ve,this.blockSize=t.blockSize,this.frameNumber=t.frameNumber,this.Be=t.Be,this.Te=null}}class Ot extends y{constructor(t,e){super(t,e),this.Ot=gt,this.Ft=$t}get le(){return"flac"}*Ce(t){const e=yield*this.xt.Et(2,0),s=e.length-2;for(;t<s;){if(255===e[t]){const s=e[t+1];if(248===s||249===s)break;255!==s&&t++}t++}return t}*de(){for(;;){const t=yield*$t.At(this.xt,this.ut,0);if(t){let e=m.get(t).length+2;for(;e<=524288;){if(this.xt.Bt||(yield*$t.At(this.xt,this.ut,e))){let s=yield*this.xt.Et(e);if(this.xt.Bt||(s=s.subarray(0,e)),gt.Ae(s)){const i=new gt(s,t);return this.ut.enable(),this.xt.vt(e),this.xt.Ct(i),i}}e=yield*this.Ce(e+1)}this.xt.Jt(`Unable to sync FLAC frame after searching ${e} bytes.`),this.xt.vt(e)}else this.xt.vt(yield*this.Ce(1))}}Je(t){return 0===t._e?(this.ut.enable(),this.De=t.data.subarray(13)):1===t._e||(t.Ee=p.get(t).Le.map((t=>{const e=$t.$e(t,this.ut);if(e)return new gt(t,e,this.De);this.xt.Jt("Failed to parse Ogg FLAC frame","Skipping invalid FLAC frame")})).filter((t=>!!t))),t}}class vt{static*At(t,e,s){const i={};let r=yield*t.Et(28,s);if(79!==r[0]||103!==r[1]||103!==r[2]||83!==r[3])return null;if(i.Ve=r[4],248&r[5])return null;i.We=!!(4&r[5]),i.Pe=!!(2&r[5]),i.He=!!(1&r[5]);const n=new DataView(Uint8Array.from(r.subarray(0,28)).buffer);try{i.ke=n.getBigInt64(6,!0)}catch{}i.qe=n.getInt32(14,!0),i._e=n.getInt32(18,!0),i.Ie=n.getInt32(22,!0);const h=r[26];i.length=h+27,r=yield*t.Et(i.length,s),i.frameLength=0,i.Ye=[],i.Ke=Uint8Array.from(r.subarray(27,i.length));for(let a=0,o=0;a<h;a++){const t=i.Ke[a];i.frameLength+=t,o+=t,255===t&&a!==h-1||(i.Ye.push(o),o=0)}return new vt(i)}constructor(t){m.set(this,t),this.ke=t.ke,this.He=t.He,this.Pe=t.Pe,this.We=t.We,this.Ye=t.Ye,this._e=t._e,this.Ie=t.Ie,this.qe=t.qe}}class zt extends w{static*$t(t,e,s){const i=yield*vt.At(t,e,s);if(i){const e=m.get(i).frameLength,s=m.get(i).length,r=s+e,n=(yield*t.Et(r,0)).subarray(0,r),h=n.subarray(s,r);return new zt(i,h,n)}return null}constructor(t,e,s){super(t,e),p.get(this).length=s.length,this.Ee=[],this.Ze=s,this.ke=t.ke,this.Ge=t.Ie,this.duration=0,this.He=t.He,this.Pe=t.Pe,this.We=t.We,this._e=t._e,this.Dt=0,this.qe=t.qe}}class Bt extends g{constructor(t,e){super(e,t,e.Ne*e.Re/1e3*e.sampleRate)}}const Ft={0:D.slice(0,2),1:D},Ct="SILK-only",Jt="CELT-only",_t="Hybrid",Dt="narrowband",Et="medium-band",Lt="wideband",Vt="super-wideband",Wt="fullband",Pt={0:{mode:Ct,je:Dt,Ne:10},8:{mode:Ct,je:Dt,Ne:20},16:{mode:Ct,je:Dt,Ne:40},24:{mode:Ct,je:Dt,Ne:60},32:{mode:Ct,je:Et,Ne:10},40:{mode:Ct,je:Et,Ne:20},48:{mode:Ct,je:Et,Ne:40},56:{mode:Ct,je:Et,Ne:60},64:{mode:Ct,je:Lt,Ne:10},72:{mode:Ct,je:Lt,Ne:20},80:{mode:Ct,je:Lt,Ne:40},88:{mode:Ct,je:Lt,Ne:60},96:{mode:_t,je:Vt,Ne:10},104:{mode:_t,je:Vt,Ne:20},112:{mode:_t,je:Wt,Ne:10},120:{mode:_t,je:Wt,Ne:20},128:{mode:Jt,je:Dt,Ne:2.5},136:{mode:Jt,je:Dt,Ne:5},144:{mode:Jt,je:Dt,Ne:10},152:{mode:Jt,je:Dt,Ne:20},160:{mode:Jt,je:Lt,Ne:2.5},168:{mode:Jt,je:Lt,Ne:5},176:{mode:Jt,je:Lt,Ne:10},184:{mode:Jt,je:Lt,Ne:20},192:{mode:Jt,je:Vt,Ne:2.5},200:{mode:Jt,je:Vt,Ne:5},208:{mode:Jt,je:Vt,Ne:10},216:{mode:Jt,je:Vt,Ne:20},224:{mode:Jt,je:Wt,Ne:2.5},232:{mode:Jt,je:Wt,Ne:5},240:{mode:Jt,je:Wt,Ne:10},248:{mode:Jt,je:Wt,Ne:20}};class Ht extends I{static $e(t,e,s){const i={};if(i.Zt=t[9],i.Qe=t[18],i.length=0!==i.Qe?21+i.Zt:19,t.length<i.length)throw Error("Out of data while inside an Ogg Page");const r=3&e[0],n=3===r?2:1,h=l(t.subarray(0,i.length))+l(e.subarray(0,n)),a=s.At(h);if(a)return new Ht(a);if("OpusHead"!==h.substr(0,8))return null;if(1!==t[8])return null;i.data=Uint8Array.from(t.subarray(0,i.length));const o=new DataView(i.data.buffer);if(i.bitDepth=16,i.Xe=o.getUint16(10,!0),i.ts=o.getUint32(12,!0),i.sampleRate=E,i.es=o.getInt16(16,!0),i.Qe in Ft&&(i.Gt=Ft[i.Qe][i.Zt-1],!i.Gt))return null;0!==i.Qe&&(i.ss=t[19],i.rs=t[20],i.ns=[...t.subarray(21,i.Zt+21)]);const c=Pt[248&e[0]];switch(i.mode=c.mode,i.je=c.je,i.Ne=c.Ne,r){case 0:i.Re=1;break;case 1:case 2:i.Re=2;break;case 3:i.hs=!!(128&e[1]),i.os=!!(64&e[1]),i.Re=63&e[1];break;default:return null}const{length:d,data:u,Qe:U,...f}=i;return s.Tt(h,i,f),new Ht(i)}constructor(t){super(t),this.data=t.data,this.je=t.je,this.Qe=t.Qe,this.ns=t.ns,this.rs=t.rs,this.Re=t.Re,this.Ne=t.Ne,this.os=t.os,this.ts=t.ts,this.hs=t.hs,this.mode=t.mode,this.es=t.es,this.Xe=t.Xe,this.ss=t.ss}}class kt extends y{constructor(t,e){super(t,e),this.Ot=Bt,this.Ft=Ht,this.cs=null}get le(){return"opus"}Je(t){return 0===t._e?(this.ut.enable(),this.cs=t.data):1===t._e||(t.Ee=p.get(t).Le.map((t=>{const e=Ht.$e(this.cs,t,this.ut);if(e)return new Bt(t,e);this.xt.ls("Failed to parse Ogg Opus Header","Not a valid Ogg Opus file")}))),t}}class qt extends g{constructor(t,e,s){super(e,t,s)}}const It={};for(let ee=0;ee<8;ee++)It[ee+6]=2**(6+ee);class Yt extends I{static $e(t,e){if(t.length<30)throw Error("Out of data while inside an Ogg Page");const s=l(t.subarray(0,30)),i=e.At(s);if(i)return new Yt(i);const r={length:30};if("vorbis"!==s.substr(0,7))return null;r.data=Uint8Array.from(t.subarray(0,30));const n=new DataView(r.data.buffer);if(r.version=n.getUint32(7,!0),0!==r.version)return null;if(r.Zt=t[11],r.Gt=D[r.Zt-1]||"application defined",r.sampleRate=n.getUint32(12,!0),r.ds=n.getInt32(16,!0),r.us=n.getInt32(20,!0),r.Us=n.getInt32(24,!0),r.fs=It[(240&t[28])>>4],r.ps=It[15&t[28]],r.ps>r.fs)return null;if(1!==t[29])return null;r.bitDepth=32;{const{length:t,data:i,version:n,...h}=r;e.Tt(s,r,h)}return new Yt(r)}constructor(t){super(t),this.ds=t.ds,this.Us=t.Us,this.us=t.us,this.ps=t.ps,this.fs=t.fs,this.data=t.data,this.ys=null,this.ws=null}}class Kt extends y{constructor(t,e){super(t,e),this.Ot=qt,this.cs=null,this.gs={count:0},this.bs=0,this.Ms=0}get le(){return"vorbis"}Je(t){const e=p.get(t).Le;return 0===t._e?(this.ut.enable(),this.cs=t.data):1===t._e?e[1]&&(this.As=e[0],this.Ts=e[1],this.gs=this.xs(e[1])):t.Ee=e.map((t=>{const e=Yt.$e(this.cs,this.ut);if(e)return e.ys=this.As,e.ws=this.Ts,new qt(t,e,this.Ss(t,e));this.xt.ls("Failed to parse Ogg Vorbis Header","Not a valid Ogg Vorbis file")})),t}Ss(t,e){const s=t[0]>>1,i=this.gs[s&this.gs.mask];i&&(this.bs=s&this.gs.$s?e.fs:e.ps),this.Ms=i?e.fs:e.ps;const r=this.bs+this.Ms>>2;return this.bs=this.Ms,r}xs(t){const e=new U(t),s="Failed to read Vorbis stream",i=", failed to parse vorbis modes";let r,n={count:0};for(;1!=(1&e.read(1)););for(;n.count<64&&e.position>0;){const t=u(e.read(8));if(t in n&&(1!==n.count||0!==t))throw this.xt.ls("received duplicate mode mapping"+i),Error(s);let h=0;for(;0===e.read(8)&&h++<3;);if(4!==h){if(1+((126&u(r))>>1)!==n.count)throw this.xt.ls("mode count did not match actual modes"+i),Error(s);break}r=e.read(7),n[t]=1&r,e.position+=6,n.count++}return n.mask=(1<<Math.log2(n.count))-1,n.$s=1+(1|n.mask),n}}class Zt extends y{constructor(t,e,s){super(t,e),this.Os=s,this.Ot=zt,this.Ft=vt,this.vs=null,this.zs=new Uint8Array,this.Bs=0}get le(){return this.vs||""}Fs(t,e){this.vs!==t&&(this.Cs=new e(this.xt,this.ut),this.vs=t,this.Os(t))}Js({data:t}){const e=l(t.subarray(0,8));switch(e){case"fishead\0":case"fisbone\0":case"index\0\0\0":return!1;case"OpusHead":return this.Fs("opus",kt),!0;case/^\x7fFLAC/.test(e)&&e:return this.Fs("flac",Ot),!0;case/^\x01vorbis/.test(e)&&e:return this.Fs("vorbis",Kt),!0}}_s(t){t._e!==this.Bs+1&&this.Bs>1&&t._e>1&&this.xt.Jt("Unexpected gap in Ogg Page Sequence Number.",`Expected: ${this.Bs+1}, Got: ${t._e}`),this.Bs=t._e}*de(){const t=yield*this.zt(!0);this._s(t);const e=p.get(t),{Ke:s,Ye:i}=m.get(e._t);let r=0;if(e.Le=i.map((e=>t.data.subarray(r,r+=e))),255===s[s.length-1]?this.zs=c(this.zs,e.Le.pop()):this.zs.length&&(e.Le[0]=c(this.zs,e.Le[0]),this.zs=new Uint8Array),this.vs||this.Js(t)){const e=this.Cs.Je(t);return this.xt.Ct(e),e}}}const Gt=()=>{};class Nt{constructor(t,{Ds:e,Es:s,Ls:i=!1,Vs:r=!0}={}){this.Ws=t,this.Os=s||Gt,this.lt=e,this.Ps=i,this.Hs=r?o:Gt,this.ks=this.qs(),this.ks.next()}get le(){return this.Cs.le}*flush(){this.Bt=!0;for(let t=this.ks.next();t.value;t=this.ks.next())yield t.value;this.Bt=!1,this.ks=this.qs(),this.ks.next()}*Is(t){for(let e=this.ks.next(t);e.value;e=this.ks.next())yield e.value}parseAll(t){return[...this.Is(t),...this.flush()]}*qs(){if(this.ut=new f(this.lt),this.Ws.match(/aac/))this.Cs=new wt(this,this.ut,this.Os);else if(this.Ws.match(/mpeg/))this.Cs=new ct(this,this.ut,this.Os);else if(this.Ws.match(/flac/))this.Cs=new Ot(this,this.ut,this.Os);else{if(!this.Ws.match(/ogg/))throw Error("Unsupported Codec "+mimeType);this.Cs=new Zt(this,this.ut,this.Os)}for(this.q=0,this.Ys=0,this.Ks=0,this.Zs=0,this.Gs=0,this.Ns=void 0,this.Rs=new Uint8Array(0);;){const t=yield*this.Cs.de();t&&(yield t)}}*Et(t=0,e=0){let s;for(;this.Rs.length<=t+e;){if(s=yield,this.Bt)return this.Rs.subarray(e);s&&(this.Ks+=s.length,this.Rs=c(this.Rs,s))}return this.Rs.subarray(e)}vt(t){this.Ys+=t,this.Rs=this.Rs.subarray(t)}js(t){this.Ns=t._t.sampleRate,t._t.bt=8*Math.round(t.data.length/t.duration),t.frameNumber=this.q++,t.Lt=this.Zs,t.Vt=this.Gs,t.Wt=this.Gs/this.Ns*1e3,t.Ge=this.Hs(t.data),this.ut.wt(t._t.bt,t.Wt),this.Zs+=t.data.length,this.Gs+=t.Dt}Ct(t){t.Ee?(t.Ee.forEach((e=>{t.duration+=e.duration,t.Dt+=e.Dt,this.js(e)})),t.Vt=this.Gs,t.Wt=this.Gs/this.Ns*1e3||0,t.Lt=this.Zs):this.js(t)}Qs(t,e){if(this.Ps){const s=["codec: "+this.le,"inputMimeType: "+this.Ws,"readPosition: "+this.Ys,"totalBytesIn: "+this.Ks,"totalBytesOut: "+this.Zs],i=Math.max(...s.map((t=>t.length)));e.push("--stats--"+"-".repeat(i-9),...s,"-".repeat(i)),t("codec-parser",e.reduce(((t,e)=>t+"\n "+e),""))}}Jt(...t){this.Qs(console.warn,t)}ls(...t){this.Qs(console.error,t)}}function Rt(t){function e(t){console.log(t)}function s(t){console.error(t)}function i(){}for(var r=new Uint8Array(123),n=25;n>=0;--n)r[48+n]=52+n,r[65+n]=n,r[97+n]=26+n;r[43]=62,r[47]=63,Rt.p||Object.defineProperty(Rt,"p",{get:()=>String.raw`dynEncode00d8„.=Mp¼žê†‚F¥@'{OËUÇð3R§d’ G÷ ¿>òqî‹…=M³‰Ë¬Ä•¤qq
var t,e;t=this,e=function(t,e){function s(t){const e=Uint8Array,i=Float32Array;s.t||Object.defineProperties(s,{t:{value:new WeakMap},o:{value(t,e){s.t.set(t,Promise.resolve(e))}},u:{value(t,e){let i=s.t.get(t);return i||(e?i=WebAssembly.compile(s.U(e)):(e=t.p,i=s.M(e).then((t=>WebAssembly.compile(t)))),s.t.set(t,i)),i}},T:{value(t,e){let s=new i(e),r=0,n=0;for(;r<t.length;)s.set(t[r],n),n+=t[r++].length;return s}},A:{value:(t,e,s,i,r)=>({S:t,channelData:e,samplesDecoded:s,sampleRate:i,bitDepth:r})},$:{value(t,e,i,r,n,h){let a,o,c=[];for(a=0;a<i;a++){const t=[];for(o=0;o<e.length;)t.push(e[o++][a]||[]);c.push(s.T(t,r))}return s.A(t,c,r,n,h)}},U:{value(t){const s=new e(t.length),i=parseInt(t.substring(11,13),16),r=256-i;let n,h=!1,a=0,o=13;for(;o<t.length;)n=t.charCodeAt(o++),61!==n||h?(h&&(h=!1,n-=64),s[a++]=n<i&&n>0?n+r:n-i):h=!0;return s.subarray(0,a)}},M:{value(t){return t=s.U(t),new Promise((i=>{const r=String.raw`dynEncode0014u‡*t“““t“““““t““““$#“U¤¤“U¤¤3yƒ†„‰zzss|yu„svu‡yÚ&ˆ“4<054<,5T44^T44<(6U~J(44< ~A544U~6J0444ˆ†545 444J0444‰J,4U“4ˆU“‡…Ò“7U45“4U4Z“4U4U^/6545T4T44BUˆ~64CU~O4U54U~5 U5T4B4Z!4U~5U5U5T4U~6U4ZTU5U5T44~4O4U2ZTU5T44Z!4B6T44Uˆ~64B6U~O44Uˆ~4O4U~54U~5 44~C4~54U~5 44~5454Uˆ4B6Ub!444~UO4U~5 “U5“4U4ZTUŠ#44U$4†64<4~B6^“4<444~Uˆ~B4U~54Uˆ544~544~Uˆ5 µ“Uä#UJUè#5TT4U0ZTTUX5U5T4T4Uà#~4OU4U $~Cˆ4~54U~5 T44$6U\!TTT4UaT4<6T4<64<Z!44~4N4<U~5 4U”Z!4U±_TUŠ#44U•Uˆ6UÔ~B$544$6U\!4Uˆ6U¤#~B44Uä#~B$~64<6_TU‰#444U”~B~6~54<Y!44<_!T4Y!4<64~444~AN44<U~6J4U5 44J4U”[!U#44UŠO4U~54U~5 U54 “7U6844J44J 4UJ4UJ04VK(44<J44<J$4U´~54U~5 4U¤~5!TTT4U$5"U“5TTTTTTT4U$"4VK,U54<(6U~64<$6_!4< 64~6A54A544U~6#J(U’54A4U‡[!44J(44#~A4Uˆ6U“‡UŠU…[!44†64~64_!4<64~54<6T4<4]TU5 T4Y!44~44~AN4U~54U~54U5 44J(44J UÄA!U5U”#UôJU"UÔJUœ#UÔ"JU˜#U´"JT4U´ZTU5T4UôZTU5T4UDZTU5T4U$[T44~UO4U~5 UÔUô4U~U´$.U5T4UP[T4U~4~UO4U~5 U˜#<Uœ#<4U~U2$.UÄUN 44 ~UO4U~5 44!~UO4U~5 4U~4~UO4U~5 44J44J(U5 44U¤~J@44Uä~J<44UD~J844U~J44U$54U$5U‘54U$54U1^4U1^†!4U•~54U~5U”54U~6U4U^/65T4T4U$54U~4BUˆ~4O4U54U~5 UU'464U'_/54UˆU”~5T4T4U~4BUˆ~UO4U54U~5 U54Uä~4U¤~4U~U'$!44~5U5T44\T44U<~$6U\!4U#aT4U~4Uˆ~4O4U~5 U5U5U5TTT4U$"4YTU5 4Uˆ4~C5U5 U5U5444$4~64~\TUŽ5 4U~4Uˆ~5T4Y!44O4U~54U~54U5 4CYTU‹5 4Uä~4U¤~4U~4$6TU54U\!44Bæ4Bä~[!4U~4UD~4U~4Uˆ~4$6TUŒ54U\!44B†4B„~[!44U<~4U4~$5 4U"U˜#$544"†Y!454U^!44<J44<(J454U~84­U”N!#%'+/37?GOWgw‡—·×÷Uä;U”9$%& !"#`;s.u(s,r).then((t=>WebAssembly.instantiate(t,{}))).then((({exports:s})=>{const r=new Map(Object.entries(s)),n=r.get("puff"),h=r.get("memory").buffer,a=new e(h),o=new DataView(h);let c=r.get("__heap_base");const l=t.length,d=c;c+=4,o.setInt32(d,l,!0);const u=c;c+=l,a.set(t,u);const U=c;c+=4,o.setInt32(U,a.byteLength-c,!0),n(c,U,u,d),i(a.slice(c,c+o.getInt32(U,!0)))}))}))}}}),Object.defineProperty(this,"p",{O:!0,get:()=>this.v}),this.B=(t,e,s)=>{let i=[],r=0;for(;r<e;)i.push(t.slice(r*s,r++*s+s));return i},this.F=(t,e,s=!0)=>{const i=this.v.C(e.BYTES_PER_ELEMENT*t);return s&&this.J.add(i),{_:i,D:t,L:new e(this.v.V,i,t)}},this.free=()=>{this.J.forEach((t=>{this.v.W(t)})),this.J.clear()},this.P=t=>{const e=[],s=new Uint8Array(this.v.V);for(let i=s[t];0!==i;i=s[++t])e.push(i);return String.fromCharCode.apply(null,e)},this.H=(e,s,i)=>{e.push({message:s,frameLength:i,frameNumber:t.q,inputBytes:t.I,outputSamples:t.Y})},this.instantiate=()=>{const r=t.K,n=t.Z,h=t.G,a=t.N,o=t.R;return r&&s.o(n,r),this.v=new n(s).instantiate(),this.J=new Set,this.v.ready.then((()=>(h&&(t.X=this.F(h,e)),o&&(t.tt=this.F(a*o,i)),t.I=0,t.Y=0,t.q=0,this)))}}class i extends((()=>globalThis.Worker||e)()){constructor(t,e,i,r){s.t||new s;let n=s.t.get(i);if(!n){const t=`'use strict';(${""+((t,e,s)=>{let i,r,n=new Promise((t=>{r=t}));self.onmessage=({data:{id:h,command:a,data:o}})=>{let c,l=n,d={id:h};"init"===a?(Object.defineProperties(t,{et:{value:e},st:{value:s},it:{value:o.it},rt:{value:!0}}),i=new t(o.options),r()):"free"===a?i.free():"ready"===a?l=l.then((()=>i.ready)):"reset"===a?l=l.then((()=>i.reset())):(Object.assign(d,i[a](Array.isArray(o)?o.map((t=>new Uint8Array(t))):new Uint8Array(o))),c=d.channelData.map((t=>t.buffer))),l.then((()=>self.postMessage(d,c)))}})})(${i}, ${s}, ${r})`,e="text/javascript";try{n=URL.createObjectURL(new Blob([t],{type:e}))}catch{n=`data:${e};base64,${Buffer.from(t).toString("base64")}`}s.t.set(i,n)}super(n,{name:e}),this.nt=Number.MIN_SAFE_INTEGER,this.ht=new Map,this.onmessage=({data:t})=>{const{id:e,...s}=t;this.ht.get(e)(s),this.ht.delete(e)},new r(s).u().then((e=>{this.at("init",{it:e,options:t})}))}async at(t,e){return new Promise((s=>{this.postMessage({command:t,id:this.nt,data:e}),this.ht.set(this.nt++,s)}))}get ready(){return this.at("ready")}async free(){await this.at("free").finally((()=>{this.terminate()}))}async reset(){await this.at("reset")}}const r=(t,e,s)=>{for(let i=0;i<t.length;i++){let r=e(i);for(let t=8;t>0;t--)r=s(r);t[i]=r}return t},n=r(new Uint8Array(256),(t=>t),(t=>128&t?7^t<<1:t<<1)),h=[r(new Uint16Array(256),(t=>t<<8),(t=>t<<1^(32768&t?32773:0)))],a=[r(new Uint32Array(256),(t=>t),(t=>t>>>1^3988292384*(1&t)))];for(let ee=0;ee<15;ee++){h.push(new Uint16Array(256)),a.push(new Uint32Array(256));for(let t=0;t<=255;t++)h[ee+1][t]=h[0][h[ee][t]>>>8]^h[ee][t]<<8,a[ee+1][t]=a[ee][t]>>>8^a[0][255&a[ee][t]]}const o=t=>{const e=t.length,s=e-16;let i=0,r=0;for(;r<=s;)i=a[15][255&(t[r++]^i)]^a[14][255&(t[r++]^i>>>8)]^a[13][255&(t[r++]^i>>>16)]^a[12][t[r++]^i>>>24]^a[11][t[r++]]^a[10][t[r++]]^a[9][t[r++]]^a[8][t[r++]]^a[7][t[r++]]^a[6][t[r++]]^a[5][t[r++]]^a[4][t[r++]]^a[3][t[r++]]^a[2][t[r++]]^a[1][t[r++]]^a[0][t[r++]];for(;r!==e;)i=a[0][255&(i^t[r++])]^i>>>8;return-1^i},c=(...t)=>{const e=new Uint8Array(t.reduce(((t,e)=>t+e.length),0));return t.reduce(((t,s)=>(e.set(s,t),t+s.length)),0),e},l=t=>String.fromCharCode(...t),d=[0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15],u=t=>d[15&t]<<4|d[t>>4];class U{constructor(t){this.ot=t,this.ct=8*t.length}set position(t){this.ct=t}get position(){return this.ct}read(t){const e=Math.floor(this.ct/8),s=this.ct%8;return this.ct-=t,(u(this.ot[e-1])<<8)+u(this.ot[e])>>7-s&255}}class f{constructor(t){this.lt=t,this.reset()}enable(){this.dt=!0}reset(){this.ut=new Map,this.Ut=new WeakMap,this.ft=!1,this.yt=null,this.dt=!1}wt(t,e){if(this.lt){this.yt!==t&&(this.yt=t,this.ft=!0);const s=this.Ut.get(this.ut.get(this.gt));this.ft&&s&&this.lt({bt:t,...s},e),this.ft=!1}}Mt(t){this.lt&&t!==this.gt&&(this.ft=!0,this.gt=t)}Tt(t){const e=this.ut.get(t);return e&&this.Mt(t),e}At(t,e,s){this.dt&&(this.Mt(t),this.ut.set(t,e),this.Ut.set(e,s))}}const m=new WeakMap,p=new WeakMap;class y{constructor(t,e){this.xt=t,this.ut=e}*St(){let t;for(;;){if(t=yield*this.Ot.$t(this.xt,this.ut,0),t)return t;this.xt.vt(1)}}*zt(t){let e=yield*this.St();const s=p.get(e).length;if(t||this.xt.Bt||(yield*this.Ft.Tt(this.xt,this.ut,s)))return this.ut.enable(),this.xt.vt(s),this.xt.Ct(e),e;this.xt.Jt(`Missing frame frame at ${s} bytes from current position.`,"Dropping current frame and trying again."),this.ut.reset(),this.xt.vt(1)}}class w{constructor(t,e){p.set(this,{_t:t}),this.data=e}}class g extends w{static*$t(t,e,s,i,r){const n=yield*t.Tt(s,i,r);if(n){const t=m.get(n).frameLength,i=m.get(n).Dt;return new e(n,(yield*s.Et(t,r)).subarray(0,t),i)}return null}constructor(t,e,s){super(t,e),this._t=t,this.Dt=s,this.duration=s/t.sampleRate*1e3,this.frameNumber=null,this.Lt=null,this.Vt=null,this.Wt=null,p.get(this).length=e.length}}const b="reserved",M="bad",T="free",A="none",x="16bit CRC",S="left",$="center",O="right",v=["","front ","side ","rear "].map((t=>[[S,O],[S,O,$],[S,$,O],[$,S,O],[$]].flatMap((e=>e.map((e=>t+e)).join(", "))))),z="LFE",B="monophonic (mono)",F="stereo",C="surround",J=[B,F,"linear "+C,"quadraphonic","5.0 "+C,"5.1 "+C,"6.1 "+C,"7.1 "+C],_=(t,...e)=>`${J[t-1]} (${e.join(", ")})`,D=[B,_(2,v[0][0]),_(3,v[0][2]),_(4,v[1][0],v[3][0]),_(5,v[1][2],v[3][0]),_(6,v[1][2],v[3][0],z),_(7,v[1][2],v[2][0],v[3][4],z),_(8,v[1][2],v[2][0],v[3][0],z)],E=48e3,L=44100,V=32e3,W=24e3,P=22050,H=16e3,k=8e3;class q{static*Pt(t,e,s){const i={Ht:10};let r=yield*t.Et(3,s);return 73!==r[0]||68!==r[1]||51!==r[2]?null:(r=yield*t.Et(i.Ht,s),i.version=`id3v2.${r[3]}.${r[4]}`,15&r[5]?null:(i.kt=!!(128&r[5]),i.qt=!!(64&r[5]),i.It=!!(32&r[5]),i.Yt=!!(16&r[5]),128&r[6]||128&r[7]||128&r[8]||128&r[9]?null:(i.Kt=r[6]<<21|r[7]<<14|r[8]<<7|r[9],i.length=i.Ht+i.Kt,new q(i))))}constructor(t){this.version=t.version,this.kt=t.kt,this.qt=t.qt,this.It=t.It,this.Yt=t.Yt,this.length=t.length}}class I{constructor(t){m.set(this,t),this.bitDepth=t.bitDepth,this.bt=null,this.Zt=t.Zt,this.Gt=t.Gt,this.sampleRate=t.sampleRate}}const Y={0:[T,T,T,T,T],16:[32,32,32,32,8],240:[M,M,M,M,M]},K=(t,e,s)=>8*((t+s)%e+e)*(1<<(t+s)/e)-8*e*(e/8|0);for(let ee=2;ee<15;ee++)Y[ee<<4]=[32*ee,K(ee,4,0),K(ee,4,-1),K(ee,8,4),K(ee,8,0)];const Z="bands ",G=" to 31",N={0:Z+4+G,16:Z+8+G,32:Z+12+G,48:Z+16+G},R="Intensity stereo ",j=", MS stereo ",Q="on",X="off",tt={0:{description:b},2:{description:"Layer III",Nt:1,Rt:{0:R+X+j+X,16:R+Q+j+X,32:R+X+j+Q,48:R+Q+j+Q},jt:{Qt:2,Dt:1152},Xt:{Qt:4,Dt:576}},4:{description:"Layer II",Nt:1,Rt:N,Dt:1152,jt:{Qt:1},Xt:{Qt:4}},6:{description:"Layer I",Nt:4,Rt:N,Dt:384,jt:{Qt:0},Xt:{Qt:3}}},et="MPEG Version ",st="ISO/IEC ",it={0:{description:et+"2.5 (later extension of MPEG 2)",te:"v2",ee:{0:11025,4:12e3,8:k,12:b}},8:{description:b},16:{description:`${et}2 (${st}13818-3)`,te:"v2",ee:{0:P,4:W,8:H,12:b}},24:{description:`${et}1 (${st}11172-3)`,te:"v1",ee:{0:L,4:E,8:V,12:b}}},rt={0:x,1:A},nt={0:A,1:"50/15 ms",2:b,3:"CCIT J.17"},ht={0:{Zt:2,description:F},64:{Zt:2,description:"joint "+F},128:{Zt:2,description:"dual channel"},192:{Zt:1,description:B}};class at extends I{static*Tt(t,e,s){const i={},r=yield*q.Pt(t,e,s);r&&(yield*t.Et(r.length,s),t.vt(r.length));const n=yield*t.Et(4,s),h=l(n.subarray(0,4)),a=e.Tt(h);if(a)return new at(a);if(255!==n[0]||n[1]<224)return null;const o=it[24&n[1]];if(o.description===b)return null;const c=6&n[1];if(tt[c].description===b)return null;const d={...tt[c],...tt[c][o.te]};if(i.se=o.description,i.ie=d.description,i.Dt=d.Dt,i.re=rt[1&n[1]],i.length=4,i.bt=Y[240&n[2]][d.Qt],i.bt===M)return null;if(i.sampleRate=o.ee[12&n[2]],i.sampleRate===b)return null;if(i.Nt=2&n[2]&&d.Nt,i.ne=!!(1&n[2]),i.frameLength=Math.floor(125*i.bt*i.Dt/i.sampleRate+i.Nt),!i.frameLength)return null;const u=192&n[3];if(i.Gt=ht[u].description,i.Zt=ht[u].Zt,i.he=d.Rt[48&n[3]],i.ae=!!(8&n[3]),i.oe=!!(4&n[3]),i.ce=nt[3&n[3]],i.ce===b)return null;i.bitDepth=16;const{length:U,frameLength:f,Dt:m,...p}=i;return e.At(h,i,p),new at(i)}constructor(t){super(t),this.bt=t.bt,this.ce=t.ce,this.Nt=t.Nt,this.ae=t.ae,this.oe=t.oe,this.ne=t.ne,this.ie=t.ie,this.he=t.he,this.se=t.se,this.re=t.re}}class ot extends g{static*$t(t,e,s){return yield*super.$t(at,ot,t,e,s)}constructor(t,e,s){super(t,e,s)}}class ct extends y{constructor(t,e,s){super(t,e),this.Ot=ot,this.Ft=at,s(this.le)}get le(){return"mpeg"}*de(){return yield*this.zt()}}const lt={0:"MPEG-4",8:"MPEG-2"},dt={0:"valid",2:M,4:M,6:M},ut={0:x,1:A},Ut={0:"AAC Main",64:"AAC LC (Low Complexity)",128:"AAC SSR (Scalable Sample Rate)",192:"AAC LTP (Long Term Prediction)"},ft={0:96e3,4:88200,8:64e3,12:E,16:L,20:V,24:W,28:P,32:H,36:12e3,40:11025,44:k,48:7350,52:b,56:b,60:"frequency is written explicitly"},mt={0:{Zt:0,description:"Defined in AOT Specific Config"},64:{Zt:1,description:B},128:{Zt:2,description:_(2,v[0][0])},192:{Zt:3,description:_(3,v[1][3])},256:{Zt:4,description:_(4,v[1][3],v[3][4])},320:{Zt:5,description:_(5,v[1][3],v[3][0])},384:{Zt:6,description:_(6,v[1][3],v[3][0],z)},448:{Zt:8,description:_(8,v[1][3],v[2][0],v[3][0],z)}};class pt extends I{static*Tt(t,e,s){const i={},r=yield*t.Et(7,s),n=l([r[0],r[1],r[2],252&r[3]|3&r[6]]),h=e.Tt(n);if(h)Object.assign(i,h);else{if(255!==r[0]||r[1]<240)return null;if(i.se=lt[8&r[1]],i.ie=dt[6&r[1]],i.ie===M)return null;const t=1&r[1];i.re=ut[t],i.length=t?7:9,i.ue=192&r[2],i.Ue=60&r[2];const s=2&r[2];if(i.profile=Ut[i.ue],i.sampleRate=ft[i.Ue],i.sampleRate===b)return null;i.ne=!!s,i.fe=448&(r[2]<<8|r[3]),i.Gt=mt[i.fe].description,i.Zt=mt[i.fe].Zt,i.oe=!!(32&r[3]),i.me=!!(8&r[3]),i.pe=!!(8&r[3]),i.ye=!!(4&r[3]),i.bitDepth=16,i.Dt=1024,i.we=3&r[6];const{length:h,fe:a,ue:o,Ue:c,frameLength:l,Dt:d,we:u,...U}=i;e.At(n,i,U)}if(i.frameLength=8191&(r[3]<<11|r[4]<<3|r[5]>>5),!i.frameLength)return null;const a=2047&(r[5]<<6|r[6]>>2);return i.ge=2047===a?"VBR":a,new pt(i)}constructor(t){super(t),this.pe=t.pe,this.ye=t.ye,this.ge=t.ge,this.me=t.me,this.oe=t.oe,this.ne=t.ne,this.ie=t.ie,this.length=t.length,this.se=t.se,this.we=t.we,this.profile=t.profile,this.re=t.re}get be(){const t=m.get(this),e=t.ue+64<<5|t.Ue<<5|t.fe>>3,s=new Uint8Array(2);return new DataView(s.buffer).setUint16(0,e,!1),s}}class yt extends g{static*$t(t,e,s){return yield*super.$t(pt,yt,t,e,s)}constructor(t,e,s){super(t,e,s)}}class wt extends y{constructor(t,e,s){super(t,e),this.Ot=yt,this.Ft=pt,s(this.le)}get le(){return"aac"}*de(){return yield*this.zt()}}class gt extends g{static Me(t){return(t[t.length-2]<<8)+t[t.length-1]}static Te(t){return gt.Me(t)===(t=>{const e=t.length,s=e-16;let i=0,r=0;for(;r<=s;)i^=t[r++]<<8|t[r++],i=h[15][i>>8]^h[14][255&i]^h[13][t[r++]]^h[12][t[r++]]^h[11][t[r++]]^h[10][t[r++]]^h[9][t[r++]]^h[8][t[r++]]^h[7][t[r++]]^h[6][t[r++]]^h[5][t[r++]]^h[4][t[r++]]^h[3][t[r++]]^h[2][t[r++]]^h[1][t[r++]]^h[0][t[r++]];for(;r!==e;)i=(255&i)<<8^h[0][i>>8^t[r++]];return i})(t.subarray(0,-2))}constructor(t,e,s){e.Ae=s,e.xe=gt.Me(t),super(e,t,m.get(e).Dt)}}const bt="get from STREAMINFO metadata block",Mt={0:"Fixed",1:"Variable"},Tt={0:b,16:192};for(let ee=2;ee<16;ee++)Tt[ee<<4]=ee<6?576*2**(ee-2):2**ee;const At={0:bt,1:88200,2:176400,3:192e3,4:k,5:H,6:P,7:W,8:V,9:L,10:E,11:96e3,15:M},xt={0:{Zt:1,description:B},16:{Zt:2,description:_(2,v[0][0])},32:{Zt:3,description:_(3,v[0][1])},48:{Zt:4,description:_(4,v[1][0],v[3][0])},64:{Zt:5,description:_(5,v[1][1],v[3][0])},80:{Zt:6,description:_(6,v[1][1],z,v[3][0])},96:{Zt:7,description:_(7,v[1][1],z,v[3][4],v[2][0])},112:{Zt:8,description:_(8,v[1][1],z,v[3][0],v[2][0])},128:{Zt:2,description:F+" (left, diff)"},144:{Zt:2,description:F+" (diff, right)"},160:{Zt:2,description:F+" (avg, diff)"},176:b,192:b,208:b,224:b,240:b},St={0:bt,2:8,4:12,6:b,8:16,10:20,12:24,14:b};class $t extends I{static Se(t){if(t[0]>254)return null;if(t[0]<128)return{value:t[0],length:1};let e=1;for(let n=64;n&t[0];n>>=1)e++;let s=e-1,i=0,r=0;for(;s>0;r+=6,s--){if(128!=(192&t[s]))return null;i|=(63&t[s])<<r}return i|=(t[s]&127>>e)<<r,{value:i,length:e}}static $e(t,e){const s={*Et(){return t}};return $t.Tt(s,e,0).next().value}static*Tt(t,e,s){let i=yield*t.Et(6,s);if(255!==i[0]||248!==i[1]&&249!==i[1])return null;const r={},h=l(i.subarray(0,4)),a=e.Tt(h);if(a)Object.assign(r,a);else{if(r.Oe=1&i[1],r.ve=Mt[r.Oe],r.ze=240&i[2],r.Ue=15&i[2],r.blockSize=Tt[r.ze],r.blockSize===b)return null;if(r.sampleRate=At[r.Ue],r.sampleRate===M)return null;if(1&i[3])return null;const t=xt[240&i[3]];if(t===b)return null;if(r.Zt=t.Zt,r.Gt=t.description,r.bitDepth=St[14&i[3]],r.bitDepth===b)return null}r.length=5,i=yield*t.Et(r.length+8,s);const o=$t.Se(i.subarray(4));if(!o)return null;if(r.Oe?r.Be=o.value:r.frameNumber=o.value,r.length+=o.length,96===r.ze?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.blockSize=i[r.length-1]+1,r.length+=1):112===r.ze&&(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.blockSize=(i[r.length-1]<<8)+i[r.length]+1,r.length+=2),r.Dt=r.blockSize,12===r.Ue?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=1e3*i[r.length-1],r.length+=1):13===r.Ue?(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=(i[r.length-1]<<8)+i[r.length],r.length+=2):14===r.Ue&&(i.length<r.length&&(i=yield*t.Et(r.length,s)),r.sampleRate=10*((i[r.length-1]<<8)+i[r.length]),r.length+=2),i.length<r.length&&(i=yield*t.Et(r.length,s)),r.Fe=i[r.length-1],r.Fe!==(t=>{let e=0;const s=t.length;for(let i=0;i!==s;i++)e=n[e^t[i]];return e})(i.subarray(0,r.length-1)))return null;if(!a){const{Oe:t,frameNumber:s,Be:i,Dt:n,Ue:a,ze:o,Fe:c,length:l,...d}=r;e.At(h,r,d)}return new $t(r)}constructor(t){super(t),this.xe=null,this.ve=t.ve,this.blockSize=t.blockSize,this.frameNumber=t.frameNumber,this.Be=t.Be,this.Ae=null}}class Ot extends y{constructor(t,e){super(t,e),this.Ot=gt,this.Ft=$t}get le(){return"flac"}*Ce(t){const e=yield*this.xt.Et(2,0),s=e.length-2;for(;t<s;){if(255===e[t]){const s=e[t+1];if(248===s||249===s)break;255!==s&&t++}t++}return t}*de(){for(;;){const t=yield*$t.Tt(this.xt,this.ut,0);if(t){let e=m.get(t).length+2;for(;e<=524288;){if(this.xt.Bt||(yield*$t.Tt(this.xt,this.ut,e))){let s=yield*this.xt.Et(e);if(this.xt.Bt||(s=s.subarray(0,e)),gt.Te(s)){const i=new gt(s,t);return this.ut.enable(),this.xt.vt(e),this.xt.Ct(i),i}}e=yield*this.Ce(e+1)}this.xt.Jt(`Unable to sync FLAC frame after searching ${e} bytes.`),this.xt.vt(e)}else this.xt.vt(yield*this.Ce(1))}}Je(t){return 0===t._e?(this.ut.enable(),this.De=t.data.subarray(13)):1===t._e||(t.Ee=p.get(t).Le.map((t=>{const e=$t.$e(t,this.ut);if(e)return new gt(t,e,this.De);this.xt.Jt("Failed to parse Ogg FLAC frame","Skipping invalid FLAC frame")})).filter((t=>!!t))),t}}class vt{static*Tt(t,e,s){const i={};let r=yield*t.Et(28,s);if(79!==r[0]||103!==r[1]||103!==r[2]||83!==r[3])return null;if(i.Ve=r[4],248&r[5])return null;i.We=!!(4&r[5]),i.Pe=!!(2&r[5]),i.He=!!(1&r[5]);const n=new DataView(Uint8Array.from(r.subarray(0,28)).buffer);try{i.ke=n.getBigInt64(6,!0)}catch{}i.qe=n.getInt32(14,!0),i._e=n.getInt32(18,!0),i.Ie=n.getInt32(22,!0);const h=r[26];i.length=h+27,r=yield*t.Et(i.length,s),i.frameLength=0,i.Ye=[],i.Ke=Uint8Array.from(r.subarray(27,i.length));for(let a=0,o=0;a<h;a++){const t=i.Ke[a];i.frameLength+=t,o+=t,255===t&&a!==h-1||(i.Ye.push(o),o=0)}return new vt(i)}constructor(t){m.set(this,t),this.ke=t.ke,this.He=t.He,this.Pe=t.Pe,this.We=t.We,this.Ye=t.Ye,this._e=t._e,this.Ie=t.Ie,this.qe=t.qe}}class zt extends w{static*$t(t,e,s){const i=yield*vt.Tt(t,e,s);if(i){const e=m.get(i).frameLength,s=m.get(i).length,r=s+e,n=(yield*t.Et(r,0)).subarray(0,r),h=n.subarray(s,r);return new zt(i,h,n)}return null}constructor(t,e,s){super(t,e),p.get(this).length=s.length,this.Ee=[],this.Ze=s,this.ke=t.ke,this.Ge=t.Ie,this.duration=0,this.He=t.He,this.Pe=t.Pe,this.We=t.We,this._e=t._e,this.Dt=0,this.qe=t.qe}}class Bt extends g{constructor(t,e){super(e,t,e.Ne*e.Re/1e3*e.sampleRate)}}const Ft={0:D.slice(0,2),1:D},Ct="SILK-only",Jt="CELT-only",_t="Hybrid",Dt="narrowband",Et="medium-band",Lt="wideband",Vt="super-wideband",Wt="fullband",Pt={0:{mode:Ct,je:Dt,Ne:10},8:{mode:Ct,je:Dt,Ne:20},16:{mode:Ct,je:Dt,Ne:40},24:{mode:Ct,je:Dt,Ne:60},32:{mode:Ct,je:Et,Ne:10},40:{mode:Ct,je:Et,Ne:20},48:{mode:Ct,je:Et,Ne:40},56:{mode:Ct,je:Et,Ne:60},64:{mode:Ct,je:Lt,Ne:10},72:{mode:Ct,je:Lt,Ne:20},80:{mode:Ct,je:Lt,Ne:40},88:{mode:Ct,je:Lt,Ne:60},96:{mode:_t,je:Vt,Ne:10},104:{mode:_t,je:Vt,Ne:20},112:{mode:_t,je:Wt,Ne:10},120:{mode:_t,je:Wt,Ne:20},128:{mode:Jt,je:Dt,Ne:2.5},136:{mode:Jt,je:Dt,Ne:5},144:{mode:Jt,je:Dt,Ne:10},152:{mode:Jt,je:Dt,Ne:20},160:{mode:Jt,je:Lt,Ne:2.5},168:{mode:Jt,je:Lt,Ne:5},176:{mode:Jt,je:Lt,Ne:10},184:{mode:Jt,je:Lt,Ne:20},192:{mode:Jt,je:Vt,Ne:2.5},200:{mode:Jt,je:Vt,Ne:5},208:{mode:Jt,je:Vt,Ne:10},216:{mode:Jt,je:Vt,Ne:20},224:{mode:Jt,je:Wt,Ne:2.5},232:{mode:Jt,je:Wt,Ne:5},240:{mode:Jt,je:Wt,Ne:10},248:{mode:Jt,je:Wt,Ne:20}};class Ht extends I{static $e(t,e,s){const i={};if(i.Zt=t[9],i.Qe=t[18],i.length=0!==i.Qe?21+i.Zt:19,t.length<i.length)throw Error("Out of data while inside an Ogg Page");const r=3&e[0],n=3===r?2:1,h=l(t.subarray(0,i.length))+l(e.subarray(0,n)),a=s.Tt(h);if(a)return new Ht(a);if("OpusHead"!==h.substr(0,8))return null;if(1!==t[8])return null;i.data=Uint8Array.from(t.subarray(0,i.length));const o=new DataView(i.data.buffer);if(i.bitDepth=16,i.Xe=o.getUint16(10,!0),i.ts=o.getUint32(12,!0),i.sampleRate=E,i.es=o.getInt16(16,!0),i.Qe in Ft&&(i.Gt=Ft[i.Qe][i.Zt-1],!i.Gt))return null;0!==i.Qe&&(i.ss=t[19],i.rs=t[20],i.ns=[...t.subarray(21,i.Zt+21)]);const c=Pt[248&e[0]];switch(i.mode=c.mode,i.je=c.je,i.Ne=c.Ne,r){case 0:i.Re=1;break;case 1:case 2:i.Re=2;break;case 3:i.hs=!!(128&e[1]),i.os=!!(64&e[1]),i.Re=63&e[1];break;default:return null}const{length:d,data:u,Qe:U,...f}=i;return s.At(h,i,f),new Ht(i)}constructor(t){super(t),this.data=t.data,this.je=t.je,this.Qe=t.Qe,this.ns=t.ns,this.rs=t.rs,this.Re=t.Re,this.Ne=t.Ne,this.os=t.os,this.ts=t.ts,this.hs=t.hs,this.mode=t.mode,this.es=t.es,this.Xe=t.Xe,this.ss=t.ss}}class kt extends y{constructor(t,e){super(t,e),this.Ot=Bt,this.Ft=Ht,this.cs=null}get le(){return"opus"}Je(t){return 0===t._e?(this.ut.enable(),this.cs=t.data):1===t._e||(t.Ee=p.get(t).Le.map((t=>{const e=Ht.$e(this.cs,t,this.ut);if(e)return new Bt(t,e);this.xt.ls("Failed to parse Ogg Opus Header","Not a valid Ogg Opus file")}))),t}}class qt extends g{constructor(t,e,s){super(e,t,s)}}const It={};for(let ee=0;ee<8;ee++)It[ee+6]=2**(6+ee);class Yt extends I{static $e(t,e){if(t.length<30)throw Error("Out of data while inside an Ogg Page");const s=l(t.subarray(0,30)),i=e.Tt(s);if(i)return new Yt(i);const r={length:30};if("vorbis"!==s.substr(0,7))return null;r.data=Uint8Array.from(t.subarray(0,30));const n=new DataView(r.data.buffer);if(r.version=n.getUint32(7,!0),0!==r.version)return null;if(r.Zt=t[11],r.Gt=D[r.Zt-1]||"application defined",r.sampleRate=n.getUint32(12,!0),r.ds=n.getInt32(16,!0),r.us=n.getInt32(20,!0),r.Us=n.getInt32(24,!0),r.fs=It[(240&t[28])>>4],r.ps=It[15&t[28]],r.ps>r.fs)return null;if(1!==t[29])return null;r.bitDepth=32;{const{length:t,data:i,version:n,...h}=r;e.At(s,r,h)}return new Yt(r)}constructor(t){super(t),this.ds=t.ds,this.Us=t.Us,this.us=t.us,this.ps=t.ps,this.fs=t.fs,this.data=t.data,this.ys=null,this.ws=null}}class Kt extends y{constructor(t,e){super(t,e),this.Ot=qt,this.cs=null,this.gs={count:0},this.bs=0,this.Ms=0}get le(){return"vorbis"}Je(t){const e=p.get(t).Le;return 0===t._e?(this.ut.enable(),this.cs=t.data):1===t._e?e[1]&&(this.Ts=e[0],this.As=e[1],this.gs=this.xs(e[1])):t.Ee=e.map((t=>{const e=Yt.$e(this.cs,this.ut);if(e)return e.ys=this.Ts,e.ws=this.As,new qt(t,e,this.Ss(t,e));this.xt.ls("Failed to parse Ogg Vorbis Header","Not a valid Ogg Vorbis file")})),t}Ss(t,e){const s=t[0]>>1,i=this.gs[s&this.gs.mask];i&&(this.bs=s&this.gs.$s?e.fs:e.ps),this.Ms=i?e.fs:e.ps;const r=this.bs+this.Ms>>2;return this.bs=this.Ms,r}xs(t){const e=new U(t),s="Failed to read Vorbis stream",i=", failed to parse vorbis modes";let r,n={count:0};for(;1!=(1&e.read(1)););for(;n.count<64&&e.position>0;){const t=u(e.read(8));if(t in n&&(1!==n.count||0!==t))throw this.xt.ls("received duplicate mode mapping"+i),Error(s);let h=0;for(;0===e.read(8)&&h++<3;);if(4!==h){if(1+((126&u(r))>>1)!==n.count)throw this.xt.ls("mode count did not match actual modes"+i),Error(s);break}r=e.read(7),n[t]=1&r,e.position+=6,n.count++}return n.mask=(1<<Math.log2(n.count))-1,n.$s=1+(1|n.mask),n}}class Zt extends y{constructor(t,e,s){super(t,e),this.Os=s,this.Ot=zt,this.Ft=vt,this.vs=null,this.zs=new Uint8Array,this.Bs=0}get le(){return this.vs||""}Fs(t,e){this.vs!==t&&(this.Cs=new e(this.xt,this.ut),this.vs=t,this.Os(t))}Js({data:t}){const e=l(t.subarray(0,8));switch(e){case"fishead\0":case"fisbone\0":case"index\0\0\0":return!1;case"OpusHead":return this.Fs("opus",kt),!0;case/^\x7fFLAC/.test(e)&&e:return this.Fs("flac",Ot),!0;case/^\x01vorbis/.test(e)&&e:return this.Fs("vorbis",Kt),!0}}_s(t){t._e!==this.Bs+1&&this.Bs>1&&t._e>1&&this.xt.Jt("Unexpected gap in Ogg Page Sequence Number.",`Expected: ${this.Bs+1}, Got: ${t._e}`),this.Bs=t._e}*de(){const t=yield*this.zt(!0);this._s(t);const e=p.get(t),{Ke:s,Ye:i}=m.get(e._t);let r=0;if(e.Le=i.map((e=>t.data.subarray(r,r+=e))),255===s[s.length-1]?this.zs=c(this.zs,e.Le.pop()):this.zs.length&&(e.Le[0]=c(this.zs,e.Le[0]),this.zs=new Uint8Array),this.vs||this.Js(t)){const e=this.Cs.Je(t);return this.xt.Ct(e),e}}}const Gt=()=>{};class Nt{constructor(t,{Ds:e,Es:s,Ls:i=!1,Vs:r=!0}={}){this.Ws=t,this.Os=s||Gt,this.lt=e,this.Ps=i,this.Hs=r?o:Gt,this.ks=this.qs(),this.ks.next()}get le(){return this.Cs.le}*flush(){this.Bt=!0;for(let t=this.ks.next();t.value;t=this.ks.next())yield t.value;this.Bt=!1,this.ks=this.qs(),this.ks.next()}*Is(t){for(let e=this.ks.next(t);e.value;e=this.ks.next())yield e.value}parseAll(t){return[...this.Is(t),...this.flush()]}*qs(){if(this.ut=new f(this.lt),this.Ws.match(/aac/))this.Cs=new wt(this,this.ut,this.Os);else if(this.Ws.match(/mpeg/))this.Cs=new ct(this,this.ut,this.Os);else if(this.Ws.match(/flac/))this.Cs=new Ot(this,this.ut,this.Os);else{if(!this.Ws.match(/ogg/))throw Error("Unsupported Codec "+mimeType);this.Cs=new Zt(this,this.ut,this.Os)}for(this.q=0,this.Ys=0,this.Ks=0,this.Zs=0,this.Gs=0,this.Ns=void 0,this.Rs=new Uint8Array(0);;){const t=yield*this.Cs.de();t&&(yield t)}}*Et(t=0,e=0){let s;for(;this.Rs.length<=t+e;){if(s=yield,this.Bt)return this.Rs.subarray(e);s&&(this.Ks+=s.length,this.Rs=c(this.Rs,s))}return this.Rs.subarray(e)}vt(t){this.Ys+=t,this.Rs=this.Rs.subarray(t)}js(t){this.Ns=t._t.sampleRate,t._t.bt=8*Math.round(t.data.length/t.duration),t.frameNumber=this.q++,t.Lt=this.Zs,t.Vt=this.Gs,t.Wt=this.Gs/this.Ns*1e3,t.Ge=this.Hs(t.data),this.ut.wt(t._t.bt,t.Wt),this.Zs+=t.data.length,this.Gs+=t.Dt}Ct(t){t.Ee?(t.Ee.forEach((e=>{t.duration+=e.duration,t.Dt+=e.Dt,this.js(e)})),t.Vt=this.Gs,t.Wt=this.Gs/this.Ns*1e3||0,t.Lt=this.Zs):this.js(t)}Qs(t,e){if(this.Ps){const s=["codec: "+this.le,"inputMimeType: "+this.Ws,"readPosition: "+this.Ys,"totalBytesIn: "+this.Ks,"totalBytesOut: "+this.Zs],i=Math.max(...s.map((t=>t.length)));e.push("--stats--"+"-".repeat(i-9),...s,"-".repeat(i)),t("codec-parser",e.reduce(((t,e)=>t+"\n "+e),""))}}Jt(...t){this.Qs(console.warn,t)}ls(...t){this.Qs(console.error,t)}}function Rt(t){function e(t){console.log(t)}function s(t){console.error(t)}function i(){}for(var r=new Uint8Array(123),n=25;n>=0;--n)r[48+n]=52+n,r[65+n]=n,r[97+n]=26+n;r[43]=62,r[47]=63,Rt.p||Object.defineProperty(Rt,"p",{get:()=>String.raw`dynEncode00d8„.=Mp¼žê†‚F¥@'{OËUÇð3R§d’ G÷ ¿>òqî‹…=M³‰Ë¬Ä•¤qq
KDԃSNF©Tx‚†ÐÇFeÀ¢‰sq= Ð¢×49r~yȼ¾â®_]†*zĶ·ÈÕ¬j Ûß蚂÷^,·üCë–j‡ü[¿-üP6õv¯è»Q}>«&œê³ùC]…= %¤Zd1\êî;€kè#á·žArŒpÿ<2Ø×W½\<Åú½Ã\ÐR]Gxî· fSŒvC²˜©‡k¿„•Ž4/ÔG«×ïÓ[DTœŠE<°¡æÄ°+ý¬¹äÞÒw„·ik¢×mžyc Ó¸–¼Wvî>ftI*;]èëZª

@@ -88,3 +88,3 @@ )©EÅkI-¶dÏ,1,r²¡ytõMï¾l]ä®ýSh«°9·K“Ç΄î3¦RñÇ„ëÇt#{لiûyT¡òžòÞÐfÿ•"îM$®Ïäv8cæ5§HÀ©dŠûïá ЍßJÿ»}a\P$wö'b;/¦

©o°ãk±ŠeT&KE=}–d§Û °çÂã£hiÀøî_aÁ¼DBî…8þ‹{‘ÜVõ9ø(3ÀÅ$þs¦E»oÚHŒò6= |yBDÙV_!R€ÃÌ~qE½Æ˘ãÜ[÷ùE@ßÎðÝ¢™:= ZƒhBŒöK»ÿ= k¼)b|‹quĦ¢¿?u¢.h3AA°­T€EG?1œÑpKÉÝ!͝¯®4&WõéfÁbWrÌ_r3Ô¯r—«W Ê¾îT3Ñ+Û³Ô#³‡uÇa©ŸWl̆Òu rª¦2sCЄÊÃ^‡rɎkŠ>¼¦ ô·}Q$s” úzO$×P!jÈ»µ[¯ «mnAŽQfq†§üy9Éùi€oLx”g
& ¬è;2þ}¼ƒlc 25‚9–A•Ý‹ELDNÅÈp]ç=MÌ"Ì*¢£w÷B²M›ë«E£󻐹’ÃAéÚÒøL´JžNœ9K=}QÎà½\"íªú‘1©­ñB%¦ ã‰?ëâkÁ¬##††•j9§uO‡b@´µŠ—U7¯Ï±%Qå]·-Õ°ÀCёՏ†×ú“;ëÖ%Ö=Mˆ¼§×<Tj•þG+¹-· V±:BהÃ[ ‰ë$VÍÅýrG>æ èÿç#õ–< 2ûSB¶´-­\ža;³y†+•Ø˜êÝØ:™UZû©Xrvú)íÂé©ØH+ÈZ@¹µŸZ¾ãú\R€¸÷âæ؇+Y¯Gá/â•ûìÇÙ¸ì!÷Õ,ˆ6X²â#:{Y×w¶ZÔ{\ìx†^ý)šÙ¬90úºŸy×Û`});var h,a,o,c,l,d,u,U,f=new TextDecoder("utf8"),m={Xs:{},ti:[null,[],[]],ei(t,i){var r=m.ti[t];0===i||10===i?((1===t?e:s)(((t,e,s)=>{for(var i=0;t[i]&&!(i>=NaN);)++i;return f.decode(t.subarray?t.subarray(0,i):new Uint8Array(t.slice(0,i)))})(r)),r.length=0):r.push(i)},si:void 0,get:()=>(m.si+=4,h[m.si-4>>2]),ii(t){var e=((t,e)=>{if(!t)return"";for(var s=t+void 0,i=t;!(i>=s)&&a[i];)++i;return f.decode(a.subarray(t,i))})(t);return e},ri:(t,e)=>t},p={a:{d(t,e,s){a.copyWithin(t,e,e+s)},c(t){a.length,(t=>{throw"OOM"})()},b:t=>0,a(t,e,s,i){var r=m.ni(t),n=m.hi(r,e,s);return h[i>>2]=n,0},e(t,e,s,i,r){}}};this.o=e=>{t.o(Rt,e)},this.u=()=>t.u(Rt),this.instantiate=()=>(this.u().then((t=>WebAssembly.instantiate(t,p))).then((t=>{var e,s=t.exports;c=s.h,l=s.i,d=s.j,u=s.k,U=s.l,s.m,e=s.f.buffer,o=e,h=new Int32Array(e),a=new Uint8Array(e),(t=>{t.g()})(s),i()})),this.ready=new Promise((t=>{i=t})).then((()=>{this.V=o,this.C=l,this.W=c,this.ai=d,this.oi=u,this.ci=U})),this)}function jt(){return this.li=()=>new this.di(this).instantiate().then((t=>{this.ui=t,this.Ui=this.ui.F(1,Uint32Array),this.Ns=this.ui.F(1,Uint32Array),this.fi=this.ui.F(1,Uint32Array),this.mi=this.ui.F(1,Uint32Array),this.pi=this.ui.F(1,Uint32Array),this.yi=this.ui.F(1,Uint32Array),this.wi=this.ui.F(1,Uint32Array),this.gi=this.ui.F(1,Uint32Array),this.bi=this.ui.p.ai(this.Ui._,this.Ns._,this.fi._,this.mi._,this.pi._,this.yi._,this.wi._,this.gi._)})),Object.defineProperty(this,"ready",{O:!0,get:()=>this.Mi}),this.reset=()=>(this.free(),this.li()),this.free=()=>{this.ui.p.oi(this.bi),this.ui.free()},this.Ai=t=>{if(!(t instanceof Uint8Array))throw Error("Data to decode must be Uint8Array. Instead got "+typeof t);const e=this.ui.F(t.length,Uint8Array,!1);e.L.set(t),this.ui.p.ci(this.bi,e._,e.D);let s,i=[];this.wi.L[0]&&i.push("Error: "+this.ui.P(this.wi.L[0])),this.gi.L[0]&&i.push("State: "+this.ui.P(this.gi.L[0])),i.length&&(s=i.join("; "),console.error("@wasm-audio-decoders/flac: \n\t"+i.join("\n\t")));const r=new Float32Array(this.ui.p.V,this.pi.L[0],this.yi.L[0]),n={error:s,outputBuffer:this.ui.B(r,this.Ui.L[0],this.mi.L[0]),samplesDecoded:this.mi.L[0]};return this.ui.p.W(this.pi.L[0]),this.yi.L[0]=0,this.mi.L[0]=0,n},this.decodeFrames=t=>{let e=[],s=[],i=0;for(let r=0;r<t.length;r++){let n=0;const h=t[r];for(;n<h.length;){const t=h.subarray(n,n+this.Ti);n+=t.length;const r=this.Ai(t);e.push(r.outputBuffer),i+=r.samplesDecoded,r.error&&this.ui.H(s,r.error,h.length),this.I+=h.length,this.Y+=r.samplesDecoded}this.q++}return this.di.$(s,e,this.Ui.L[0],i,this.Ns.L[0],this.fi.L[0])},this.xi=jt.rt,this.di=jt.et||s,this.Z=jt.st||Rt,this.K=jt.it,this.Ti=524280,this.Mi=this.li(),this}const Qt=Symbol();class Xt{constructor(){this.Os=t=>{if("flac"!==t)throw Error("@wasm-audio-decoders/flac does not support this codec "+t)},new s,this.li(),this[Qt](jt)}li(){this.xt=new Nt("audio/flac",{Es:this.Os,Vs:!1})}[Qt](t){if(this.bi){const t=this.bi;t.ready.then((()=>t.free()))}this.bi=new t,this.Mi=this.bi.ready}get ready(){return this.Mi}async reset(){this.li(),this.bi.reset()}free(){this.bi.free()}async decode(t){return this.bi.decodeFrames([...this.xt.Is(t)].map((t=>t.data)))}async flush(){const t=this.bi.decodeFrames([...this.xt.flush()].map((t=>t.data)));return this.reset(),t}async decodeFile(t){const e=this.bi.decodeFrames([...this.xt.parseAll(t)].map((t=>t.data)));return this.reset(),e}async decodeFrames(t){return this.bi.decodeFrames(t)}}class te extends i{constructor(t){super(t,"flac-decoder",jt,Rt)}async decodeFrames(t){return this.at("decodeFrames",t)}}t.FLACDecoder=Xt,t.FLACDecoderWebWorker=class extends Xt{constructor(){super(),super[Qt](te)}async free(){super.free()}}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@eshaz/web-worker")):"function"==typeof define&&define.amd?define(["exports","@eshaz/web-worker"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["flac-decoder"]={},t.Worker);
& ¬è;2þ}¼ƒlc 25‚9–A•Ý‹ELDNÅÈp]ç=MÌ"Ì*¢£w÷B²M›ë«E£󻐹’ÃAéÚÒøL´JžNœ9K=}QÎà½\"íªú‘1©­ñB%¦ ã‰?ëâkÁ¬##††•j9§uO‡b@´µŠ—U7¯Ï±%Qå]·-Õ°ÀCёՏ†×ú“;ëÖ%Ö=Mˆ¼§×<Tj•þG+¹-· V±:BהÃ[ ‰ë$VÍÅýrG>æ èÿç#õ–< 2ûSB¶´-­\ža;³y†+•Ø˜êÝØ:™UZû©Xrvú)íÂé©ØH+ÈZ@¹µŸZ¾ãú\R€¸÷âæ؇+Y¯Gá/â•ûìÇÙ¸ì!÷Õ,ˆ6X²â#:{Y×w¶ZÔ{\ìx†^ý)šÙ¬90úºŸy×Û`});var h,a,o,c,l,d,u,U,f=new TextDecoder("utf8"),m={Xs:{},ti:[null,[],[]],ei(t,i){var r=m.ti[t];0===i||10===i?((1===t?e:s)(((t,e,s)=>{for(var i=0;t[i]&&!(i>=NaN);)++i;return f.decode(t.subarray?t.subarray(0,i):new Uint8Array(t.slice(0,i)))})(r)),r.length=0):r.push(i)},si:void 0,get:()=>(m.si+=4,h[m.si-4>>2]),ii(t){var e=((t,e)=>{if(!t)return"";for(var s=t+void 0,i=t;!(i>=s)&&a[i];)++i;return f.decode(a.subarray(t,i))})(t);return e},ri:(t,e)=>t},p={a:{d(t,e,s){a.copyWithin(t,e,e+s)},c(t){a.length,(t=>{throw"OOM"})()},b:t=>0,a(t,e,s,i){var r=m.ni(t),n=m.hi(r,e,s);return h[i>>2]=n,0},e(t,e,s,i,r){}}};this.o=e=>{t.o(Rt,e)},this.u=()=>t.u(Rt),this.instantiate=()=>(this.u().then((t=>WebAssembly.instantiate(t,p))).then((t=>{var e,s=t.exports;c=s.h,l=s.i,d=s.j,u=s.k,U=s.l,s.m,e=s.f.buffer,o=e,h=new Int32Array(e),a=new Uint8Array(e),(t=>{t.g()})(s),i()})),this.ready=new Promise((t=>{i=t})).then((()=>{this.V=o,this.C=l,this.W=c,this.ai=d,this.oi=u,this.ci=U})),this)}function jt(){return this.li=()=>new this.di(this).instantiate().then((t=>{this.ui=t,this.Ui=this.ui.F(1,Uint32Array),this.Ns=this.ui.F(1,Uint32Array),this.fi=this.ui.F(1,Uint32Array),this.mi=this.ui.F(1,Uint32Array),this.pi=this.ui.F(1,Uint32Array),this.yi=this.ui.F(1,Uint32Array),this.wi=this.ui.F(1,Uint32Array),this.gi=this.ui.F(1,Uint32Array),this.bi=this.ui.p.ai(this.Ui._,this.Ns._,this.fi._,this.mi._,this.pi._,this.yi._,this.wi._,this.gi._)})),Object.defineProperty(this,"ready",{O:!0,get:()=>this.Mi}),this.reset=()=>(this.free(),this.li()),this.free=()=>{this.ui.p.oi(this.bi),this.ui.free()},this.Ti=t=>{if(!(t instanceof Uint8Array))throw Error("Data to decode must be Uint8Array. Instead got "+typeof t);const e=this.ui.F(t.length,Uint8Array,!1);e.L.set(t),this.ui.p.ci(this.bi,e._,e.D);let s,i=[];this.wi.L[0]&&i.push("Error: "+this.ui.P(this.wi.L[0])),this.gi.L[0]&&i.push("State: "+this.ui.P(this.gi.L[0])),i.length&&(s=i.join("; "),console.error("@wasm-audio-decoders/flac: \n\t"+i.join("\n\t")));const r=new Float32Array(this.ui.p.V,this.pi.L[0],this.yi.L[0]),n={error:s,outputBuffer:this.ui.B(r,this.Ui.L[0],this.mi.L[0]),samplesDecoded:this.mi.L[0]};return this.ui.p.W(this.pi.L[0]),this.yi.L[0]=0,this.mi.L[0]=0,n},this.decodeFrames=t=>{let e=[],s=[],i=0;for(let r=0;r<t.length;r++){let n=0;const h=t[r];for(;n<h.length;){const t=h.subarray(n,n+this.Ai);n+=t.length;const r=this.Ti(t);e.push(r.outputBuffer),i+=r.samplesDecoded,r.error&&this.ui.H(s,r.error,h.length),this.I+=h.length,this.Y+=r.samplesDecoded}this.q++}return this.di.$(s,e,this.Ui.L[0],i,this.Ns.L[0],this.fi.L[0])},this.xi=jt.rt,this.di=jt.et||s,this.Z=jt.st||Rt,this.K=jt.it,this.Ai=524280,this.Mi=this.li(),this}const Qt=Symbol();class Xt{constructor(){this.Os=t=>{if("flac"!==t)throw Error("@wasm-audio-decoders/flac does not support this codec "+t)},new s,this.li(),this[Qt](jt)}li(){this.xt=new Nt("audio/flac",{Es:this.Os,Vs:!1})}[Qt](t){if(this.bi){const t=this.bi;t.ready.then((()=>t.free()))}this.bi=new t,this.Mi=this.bi.ready}get ready(){return this.Mi}async reset(){this.li(),this.bi.reset()}free(){this.bi.free()}async decode(t){return this.bi.decodeFrames([...this.xt.Is(t)].map((t=>t.data)))}async flush(){const t=this.bi.decodeFrames([...this.xt.flush()].map((t=>t.data)));return this.reset(),t}async decodeFile(t){const e=this.bi.decodeFrames([...this.xt.parseAll(t)].map((t=>t.data)));return this.reset(),e}async decodeFrames(t){return this.bi.decodeFrames(t)}}class te extends i{constructor(t){super(t,"flac-decoder",jt,Rt)}async decodeFrames(t){return this.at("decodeFrames",t)}}t.FLACDecoder=Xt,t.FLACDecoderWebWorker=class extends Xt{constructor(){super(),super[Qt](te)}async free(){super.free()}}},"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@eshaz/web-worker")):"function"==typeof define&&define.amd?define(["exports","@eshaz/web-worker"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["flac-decoder"]={},t.Worker);
//# sourceMappingURL=flac-decoder.min.js.map
{
"name": "@wasm-audio-decoders/flac",
"version": "0.1.0",
"version": "0.1.1",
"description": "Web Assembly streaming FLAC decoder",

@@ -50,5 +50,5 @@ "type": "module",

"dependencies": {
"@wasm-audio-decoders/common": "6.0.0",
"@wasm-audio-decoders/common": "6.0.1",
"codec-parser": "2.2.0"
}
}

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc