Files
2026-01-23 01:33:35 +01:00

9 lines
22 KiB
JavaScript

"use strict";var pe=Object.defineProperty;var qe=Object.getOwnPropertyDescriptor;var ze=Object.getOwnPropertyNames;var $e=Object.prototype.hasOwnProperty;var Me=e=>{throw TypeError(e)};var je=(e,r)=>{for(var t in r)pe(e,t,{get:r[t],enumerable:!0})},He=(e,r,t,n)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of ze(r))!$e.call(e,i)&&i!==t&&pe(e,i,{get:()=>r[i],enumerable:!(n=qe(r,i))||n.enumerable});return e};var Ye=e=>He(pe({},"__esModule",{value:!0}),e);var de=(e,r,t)=>r.has(e)||Me("Cannot "+t);var a=(e,r,t)=>(de(e,r,"read from private field"),t?t.call(e):r.get(e)),p=(e,r,t)=>r.has(e)?Me("Cannot add the same private member more than once"):r instanceof WeakSet?r.add(e):r.set(e,t),d=(e,r,t,n)=>(de(e,r,"write to private field"),n?n.call(e,t):r.set(e,t),t),c=(e,r,t)=>(de(e,r,"access private method"),t);var ye=(e,r,t,n)=>({set _(i){d(e,r,i,t)},get _(){return a(e,r,n)}});var zt={};je(zt,{LeaderChangedError:()=>le,PGliteWorker:()=>Ee,worker:()=>Qt});module.exports=Ye(zt);var Ke=()=>typeof document>"u"?new URL(`file:${__filename}`).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href,x=Ke();var ke={part:"part",container:"container"};function te(e,r,...t){let n=e.length-1,i=t.length-1;if(i!==-1){if(i===0){e[n]=e[n]+t[0]+r;return}e[n]=e[n]+t[0],e.push(...t.slice(1,i)),e.push(t[i]+r)}}function Je(e,...r){let t=[e[0]];t.raw=[e.raw[0]];let n=[];for(let i=0;i<r.length;i++){let s=r[i],o=i+1;if(s?._templateType===ke.part){te(t,e[o],s.str),te(t.raw,e.raw[o],s.str);continue}if(s?._templateType===ke.container){te(t,e[o],...s.strings),te(t.raw,e.raw[o],...s.strings.raw),n.push(...s.values);continue}t.push(e[o]),t.raw.push(e.raw[o]),n.push(s)}return{_templateType:"container",strings:t,values:n}}function me(e,...r){let{strings:t,values:n}=Je(e,...r);return{query:[t[0],...n.flatMap((i,s)=>[`$${s+1}`,t[s+1]])].join(""),params:n}}var Xe=globalThis.JSON.parse,Ze=globalThis.JSON.stringify,Ie=16,Le=17;var Ce=20,et=21,tt=23;var he=25,rt=26;var ve=114;var nt=700,st=701;var at=1042,it=1043,ot=1082;var ct=1114,Oe=1184;var lt=3802;var ut={string:{to:he,from:[he,it,at],serialize:e=>{if(typeof e=="string")return e;if(typeof e=="number")return e.toString();throw new Error("Invalid input for string type")},parse:e=>e},number:{to:0,from:[et,tt,rt,nt,st],serialize:e=>e.toString(),parse:e=>+e},bigint:{to:Ce,from:[Ce],serialize:e=>e.toString(),parse:e=>{let r=BigInt(e);return r<Number.MIN_SAFE_INTEGER||r>Number.MAX_SAFE_INTEGER?r:Number(r)}},json:{to:ve,from:[ve,lt],serialize:e=>typeof e=="string"?e:Ze(e),parse:e=>Xe(e)},boolean:{to:Ie,from:[Ie],serialize:e=>{if(typeof e!="boolean")throw new Error("Invalid input for boolean type");return e?"t":"f"},parse:e=>e==="t"},date:{to:Oe,from:[ot,ct,Oe],serialize:e=>{if(typeof e=="string")return e;if(typeof e=="number")return new Date(e).toISOString();if(e instanceof Date)return e.toISOString();throw new Error("Invalid input for date type")},parse:e=>new Date(e)},bytea:{to:Le,from:[Le],serialize:e=>{if(!(e instanceof Uint8Array))throw new Error("Invalid input for bytea type");return"\\x"+Array.from(e).map(r=>r.toString(16).padStart(2,"0")).join("")},parse:e=>{let r=e.slice(2);return Uint8Array.from({length:r.length/2},(t,n)=>parseInt(r.substring(n*2,(n+1)*2),16))}}},ge=pt(ut),Ue=ge.parsers,Ne=ge.serializers;function be(e,r,t){if(e===null)return null;let n=t?.[r]??ge.parsers[r];return n?n(e,r):e}function pt(e){return Object.keys(e).reduce(({parsers:r,serializers:t},n)=>{let{to:i,from:s,serialize:o,parse:u}=e[n];return t[i]=o,t[n]=o,r[n]=u,Array.isArray(s)?s.forEach(l=>{r[l]=u,t[l]=o}):(r[s]=u,t[s]=o),{parsers:r,serializers:t}},{parsers:{},serializers:{}})}var dt=/\\/g,yt=/"/g;function mt(e){return e.replace(dt,"\\\\").replace(yt,'\\"')}function we(e,r,t){if(Array.isArray(e)===!1)return e;if(!e.length)return"{}";let n=e[0],i=t===1020?";":",";return Array.isArray(n)?`{${e.map(s=>we(s,r,t)).join(i)}}`:`{${e.map(s=>(s===void 0&&(s=null),s===null?"null":'"'+mt(r?r(s):s.toString())+'"')).join(i)}}`}var fe={i:0,char:null,str:"",quoted:!1,last:0,p:null};function _e(e,r,t){return fe.i=fe.last=0,We(fe,e,r,t)[0]}function We(e,r,t,n){let i=[],s=n===1020?";":",";for(;e.i<r.length;e.i++){if(e.char=r[e.i],e.quoted)e.char==="\\"?e.str+=r[++e.i]:e.char==='"'?(i.push(t?t(e.str):e.str),e.str="",e.quoted=r[e.i+1]==='"',e.last=e.i+2):e.str+=e.char;else if(e.char==='"')e.quoted=!0;else if(e.char==="{")e.last=++e.i,i.push(We(e,r,t,n));else if(e.char==="}"){e.quoted=!1,e.last<e.i&&i.push(t?t(r.slice(e.last,e.i)):r.slice(e.last,e.i)),e.last=e.i+1;break}else e.char===s&&e.p!=="}"&&e.p!=='"'&&(i.push(t?t(r.slice(e.last,e.i)):r.slice(e.last,e.i)),e.last=e.i+1);e.p=e.char}return e.last<e.i&&i.push(t?t(r.slice(e.last,e.i+1)):r.slice(e.last,e.i+1)),i}function xe(e,r,t,n){let i=[],s={rows:[],fields:[]},o=0,u={...r,...t?.parsers};return e.forEach(l=>{switch(l.name){case"rowDescription":{let m=l;s.fields=m.fields.map(y=>({name:y.name,dataTypeID:y.dataTypeID}));break}case"dataRow":{if(!s)break;let m=l;t?.rowMode==="array"?s.rows.push(m.fields.map((y,P)=>be(y,s.fields[P].dataTypeID,u))):s.rows.push(Object.fromEntries(m.fields.map((y,P)=>[s.fields[P].name,be(y,s.fields[P].dataTypeID,u)])));break}case"commandComplete":{o+=ft(l),i.push({...s,affectedRows:o,...n?{blob:n}:{}}),s={rows:[],fields:[]};break}}}),i.length===0&&i.push({affectedRows:0,rows:[],fields:[]}),i}function ft(e){let r=e.text.split(" ");switch(r[0]){case"INSERT":return parseInt(r[2],10);case"UPDATE":case"DELETE":case"COPY":case"MERGE":return parseInt(r[1],10);default:return 0}}function Pe(e){let r=e.find(t=>t.name==="parameterDescription");return r?r.dataTypeIDs:[]}function W(e){let r=e.length;for(let t=e.length-1;t>=0;t--){let n=e.charCodeAt(t);n>127&&n<=2047?r++:n>2047&&n<=65535&&(r+=2),n>=56320&&n<=57343&&t--}return r}var b,w,F,ne,Q,T,re,G,Ge,L=class{constructor(r=256){this.size=r;p(this,T);p(this,b);p(this,w,5);p(this,F,!1);p(this,ne,new TextEncoder);p(this,Q,0);d(this,b,c(this,T,re).call(this,r))}addInt32(r){return c(this,T,G).call(this,4),a(this,b).setInt32(a(this,w),r,a(this,F)),d(this,w,a(this,w)+4),this}addInt16(r){return c(this,T,G).call(this,2),a(this,b).setInt16(a(this,w),r,a(this,F)),d(this,w,a(this,w)+2),this}addCString(r){return r&&this.addString(r),c(this,T,G).call(this,1),a(this,b).setUint8(a(this,w),0),ye(this,w)._++,this}addString(r=""){let t=W(r);return c(this,T,G).call(this,t),a(this,ne).encodeInto(r,new Uint8Array(a(this,b).buffer,a(this,w))),d(this,w,a(this,w)+t),this}add(r){return c(this,T,G).call(this,r.byteLength),new Uint8Array(a(this,b).buffer).set(new Uint8Array(r),a(this,w)),d(this,w,a(this,w)+r.byteLength),this}flush(r){let t=c(this,T,Ge).call(this,r);return d(this,w,5),d(this,b,c(this,T,re).call(this,this.size)),new Uint8Array(t)}};b=new WeakMap,w=new WeakMap,F=new WeakMap,ne=new WeakMap,Q=new WeakMap,T=new WeakSet,re=function(r){return new DataView(new ArrayBuffer(r))},G=function(r){if(a(this,b).byteLength-a(this,w)<r){let n=a(this,b).buffer,i=n.byteLength+(n.byteLength>>1)+r;d(this,b,c(this,T,re).call(this,i)),new Uint8Array(a(this,b).buffer).set(new Uint8Array(n))}},Ge=function(r){if(r){a(this,b).setUint8(a(this,Q),r);let t=a(this,w)-(a(this,Q)+1);a(this,b).setInt32(a(this,Q)+1,t,a(this,F))}return a(this,b).buffer.slice(r?0:5,a(this,w))};var g=new L,ht=e=>{g.addInt16(3).addInt16(0);for(let n of Object.keys(e))g.addCString(n).addCString(e[n]);g.addCString("client_encoding").addCString("UTF8");let r=g.addCString("").flush(),t=r.byteLength+4;return new L().addInt32(t).add(r).flush()},gt=()=>{let e=new DataView(new ArrayBuffer(8));return e.setInt32(0,8,!1),e.setInt32(4,80877103,!1),new Uint8Array(e.buffer)},bt=e=>g.addCString(e).flush(112),wt=(e,r)=>(g.addCString(e).addInt32(W(r)).addString(r),g.flush(112)),xt=e=>g.addString(e).flush(112),Pt=e=>g.addCString(e).flush(81),Tt=[],At=e=>{let r=e.name??"";r.length>63&&(console.error("Warning! Postgres only supports 63 characters for query names."),console.error("You supplied %s (%s)",r,r.length),console.error("This can cause conflicts and silent errors executing queries"));let t=g.addCString(r).addCString(e.text).addInt16(e.types?.length??0);return e.types?.forEach(n=>t.addInt32(n)),g.flush(80)},V=new L;var Rt=(e,r)=>{for(let t=0;t<e.length;t++){let n=r?r(e[t],t):e[t];if(n===null)g.addInt16(0),V.addInt32(-1);else if(n instanceof ArrayBuffer||ArrayBuffer.isView(n)){let i=ArrayBuffer.isView(n)?n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength):n;g.addInt16(1),V.addInt32(i.byteLength),V.add(i)}else g.addInt16(0),V.addInt32(W(n)),V.addString(n)}},Et=(e={})=>{let r=e.portal??"",t=e.statement??"",n=e.binary??!1,i=e.values??Tt,s=i.length;return g.addCString(r).addCString(t),g.addInt16(s),Rt(i,e.valueMapper),g.addInt16(s),g.add(V.flush()),g.addInt16(n?1:0),g.flush(66)},Bt=new Uint8Array([69,0,0,0,9,0,0,0,0,0]),Dt=e=>{if(!e||!e.portal&&!e.rows)return Bt;let r=e.portal??"",t=e.rows??0,n=W(r),i=4+n+1+4,s=new DataView(new ArrayBuffer(1+i));return s.setUint8(0,69),s.setInt32(1,i,!1),new TextEncoder().encodeInto(r,new Uint8Array(s.buffer,5)),s.setUint8(n+5,0),s.setUint32(s.byteLength-4,t,!1),new Uint8Array(s.buffer)},St=(e,r)=>{let t=new DataView(new ArrayBuffer(16));return t.setInt32(0,16,!1),t.setInt16(4,1234,!1),t.setInt16(6,5678,!1),t.setInt32(8,e,!1),t.setInt32(12,r,!1),new Uint8Array(t.buffer)},Te=(e,r)=>{let t=new L;return t.addCString(r),t.flush(e)},Mt=g.addCString("P").flush(68),kt=g.addCString("S").flush(68),It=e=>e.name?Te(68,`${e.type}${e.name??""}`):e.type==="P"?Mt:kt,Lt=e=>{let r=`${e.type}${e.name??""}`;return Te(67,r)},Ct=e=>g.add(e).flush(100),vt=e=>Te(102,e),se=e=>new Uint8Array([e,0,0,0,4]),Ot=se(72),Ut=se(83),Nt=se(88),_t=se(99),A={startup:ht,password:bt,requestSsl:gt,sendSASLInitialResponseMessage:wt,sendSCRAMClientFinalMessage:xt,query:Pt,parse:At,bind:Et,execute:Dt,describe:It,close:Lt,flush:()=>Ot,sync:()=>Ut,end:()=>Nt,copyData:Ct,copyDone:()=>_t,copyFail:vt,cancel:St};var C=class extends Error{constructor(t,n,i){super(t);this.length=n;this.name=i}};var mr=new ArrayBuffer(0);var Gt=1,Ft=4,Zr=Gt+Ft,en=new ArrayBuffer(0);function ae(e){let r=e.e;return r.query=e.query,r.params=e.params,r.queryOptions=e.options,r}var $,I,f,B,ie,v,Ae,oe=class{constructor(){p(this,f);this.serializers={...Ne};this.parsers={...Ue};p(this,$,!1);p(this,I,!1)}async _initArrayTypes({force:r=!1}={}){if(a(this,$)&&!r)return;d(this,$,!0);let t=await this.query(`
SELECT b.oid, b.typarray
FROM pg_catalog.pg_type a
LEFT JOIN pg_catalog.pg_type b ON b.oid = a.typelem
WHERE a.typcategory = 'A'
GROUP BY b.oid, b.typarray
ORDER BY b.oid
`);for(let n of t.rows)this.serializers[n.typarray]=i=>we(i,this.serializers[n.oid],n.typarray),this.parsers[n.typarray]=i=>_e(i,this.parsers[n.oid],n.typarray)}async refreshArrayTypes(){await this._initArrayTypes({force:!0})}async query(r,t,n){return await this._checkReady(),await this._runExclusiveTransaction(async()=>await c(this,f,ie).call(this,r,t,n))}async sql(r,...t){let{query:n,params:i}=me(r,...t);return await this.query(n,i)}async exec(r,t){return await this._checkReady(),await this._runExclusiveTransaction(async()=>await c(this,f,v).call(this,r,t))}async describeQuery(r,t){let n=[];try{await c(this,f,B).call(this,A.parse({text:r,types:t?.paramTypes}),t),n=await c(this,f,B).call(this,A.describe({type:"S"}),t)}catch(l){throw l instanceof C?ae({e:l,options:t,params:void 0,query:r}):l}finally{n.push(...await c(this,f,B).call(this,A.sync(),t))}let i=n.find(l=>l.name==="parameterDescription"),s=n.find(l=>l.name==="rowDescription"),o=i?.dataTypeIDs.map(l=>({dataTypeID:l,serializer:this.serializers[l]}))??[],u=s?.fields.map(l=>({name:l.name,dataTypeID:l.dataTypeID,parser:this.parsers[l.dataTypeID]}))??[];return{queryParams:o,resultFields:u}}async transaction(r){return await this._checkReady(),await this._runExclusiveTransaction(async()=>{await c(this,f,v).call(this,"BEGIN"),d(this,I,!0);let t=!1,n=()=>{if(t)throw new Error("Transaction is closed")},i={query:async(s,o,u)=>(n(),await c(this,f,ie).call(this,s,o,u)),sql:async(s,...o)=>{let{query:u,params:l}=me(s,...o);return await c(this,f,ie).call(this,u,l)},exec:async(s,o)=>(n(),await c(this,f,v).call(this,s,o)),rollback:async()=>{n(),await c(this,f,v).call(this,"ROLLBACK"),t=!0},listen:async(s,o)=>(n(),await this.listen(s,o,i)),get closed(){return t}};try{let s=await r(i);return t||(t=!0,await c(this,f,v).call(this,"COMMIT")),d(this,I,!1),s}catch(s){throw t||await c(this,f,v).call(this,"ROLLBACK"),d(this,I,!1),s}})}async runExclusive(r){return await this._runExclusiveQuery(r)}};$=new WeakMap,I=new WeakMap,f=new WeakSet,B=async function(r,t={}){return await this.execProtocolStream(r,{...t,syncToFs:!1})},ie=async function(r,t=[],n){return await this._runExclusiveQuery(async()=>{c(this,f,Ae).call(this,"runQuery",r,t,n),await this._handleBlob(n?.blob);let i=[];try{let o=await c(this,f,B).call(this,A.parse({text:r,types:n?.paramTypes}),n),u=Pe(await c(this,f,B).call(this,A.describe({type:"S"}),n)),l=t.map((m,y)=>{let P=u[y];if(m==null)return null;let E=n?.serializers?.[P]??this.serializers[P];return E?E(m):m.toString()});i=[...o,...await c(this,f,B).call(this,A.bind({values:l}),n),...await c(this,f,B).call(this,A.describe({type:"P"}),n),...await c(this,f,B).call(this,A.execute({}),n)]}catch(o){throw o instanceof C?ae({e:o,options:n,params:t,query:r}):o}finally{i.push(...await c(this,f,B).call(this,A.sync(),n))}await this._cleanupBlob(),a(this,I)||await this.syncToFs();let s=await this._getWrittenBlob();return xe(i,this.parsers,n,s)[0]})},v=async function(r,t){return await this._runExclusiveQuery(async()=>{c(this,f,Ae).call(this,"runExec",r,t),await this._handleBlob(t?.blob);let n=[];try{n=await c(this,f,B).call(this,A.query(r),t)}catch(s){throw s instanceof C?ae({e:s,options:t,params:void 0,query:r}):s}finally{n.push(...await c(this,f,B).call(this,A.sync(),t))}this._cleanupBlob(),a(this,I)||await this.syncToFs();let i=await this._getWrittenBlob();return xe(n,this.parsers,t,i)})},Ae=function(...r){this.debug>0&&console.log(...r)};var Dn=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var Re=()=>{if(globalThis.crypto?.randomUUID)return globalThis.crypto.randomUUID();let e=new Uint8Array(16);if(globalThis.crypto?.getRandomValues)globalThis.crypto.getRandomValues(e);else for(let t=0;t<e.length;t++)e[t]=Math.floor(Math.random()*256);e[6]=e[6]&15|64,e[8]=e[8]&63|128;let r=[];return e.forEach(t=>{r.push(t.toString(16).padStart(2,"0"))}),r.slice(0,4).join("")+"-"+r.slice(4,6).join("")+"-"+r.slice(6,8).join("")+"-"+r.slice(8,10).join("")+"-"+r.slice(10).join("")};function Fe(e){let r;return e.startsWith('"')&&e.endsWith('"')?r=e.substring(1,e.length-1):r=e.toLowerCase(),r}var q,j,H,z,Y,D,O,U,S,K,J,X,N,k,Z,M,_,ee,ue,h,Qe,ce,R,Ve,De=class De extends oe{constructor(t,n){super();p(this,h);p(this,q);p(this,j,0);p(this,H,!1);p(this,z,!1);p(this,Y,!1);p(this,D,new EventTarget);p(this,O);p(this,U,!1);p(this,S);p(this,K);p(this,J);p(this,X);p(this,N);p(this,k);p(this,Z);p(this,M,new Map);p(this,_,new Set);p(this,ee);p(this,ue,[]);d(this,S,t),d(this,O,Re()),d(this,ee,n?.extensions??{}),d(this,J,new Promise(i=>{a(this,S).addEventListener("message",s=>{if(s.data.type==="here")i();else throw new Error("Invalid message")},{once:!0})})),d(this,X,new Promise(i=>{let s=o=>{o.data.type==="ready"&&(d(this,K,o.data.id),a(this,S).removeEventListener("message",s),i())};a(this,S).addEventListener("message",s)})),d(this,q,c(this,h,Qe).call(this,n))}static async create(t,n){let i=new De(t,n);return await a(i,q),i}get waitReady(){return new Promise(t=>{a(this,q).then(()=>{a(this,U)?t():t(new Promise(n=>{a(this,D).addEventListener("connected",()=>{n()})}))})})}get debug(){return a(this,j)}get ready(){return a(this,H)}get closed(){return a(this,z)}get isLeader(){return a(this,Y)}async close(){var t;a(this,z)||(d(this,z,!0),a(this,N)?.close(),a(this,k)?.close(),(t=a(this,Z))==null||t.call(this),a(this,S).terminate())}async[Symbol.asyncDispose](){await this.close()}async execProtocolRaw(t){return await c(this,h,R).call(this,"execProtocolRaw",t)}async execProtocol(t){return await c(this,h,R).call(this,"execProtocol",t)}async execProtocolStream(t){return await c(this,h,R).call(this,"execProtocolStream",t)}async syncToFs(){await c(this,h,R).call(this,"syncToFs")}async listen(t,n,i){let s=Fe(t),o=i??this;return a(this,M).has(s)||a(this,M).set(s,new Set),a(this,M).get(s).add(n),await o.exec(`LISTEN ${t}`),async u=>{await this.unlisten(s,n,u)}}async unlisten(t,n,i){await this.waitReady;let s=i??this;n?a(this,M).get(t)?.delete(n):a(this,M).delete(t),a(this,M).get(t)?.size===0&&await s.exec(`UNLISTEN ${t}`)}onNotification(t){return a(this,_).add(t),()=>{a(this,_).delete(t)}}offNotification(t){a(this,_).delete(t)}async dumpDataDir(t){return await c(this,h,R).call(this,"dumpDataDir",t)}onLeaderChange(t){return a(this,D).addEventListener("leader-change",t),()=>{a(this,D).removeEventListener("leader-change",t)}}offLeaderChange(t){a(this,D).removeEventListener("leader-change",t)}async _handleBlob(t){await c(this,h,R).call(this,"_handleBlob",t)}async _getWrittenBlob(){return await c(this,h,R).call(this,"_getWrittenBlob")}async _cleanupBlob(){await c(this,h,R).call(this,"_cleanupBlob")}async _checkReady(){await this.waitReady}async _runExclusiveQuery(t){await c(this,h,R).call(this,"_acquireQueryLock");try{return await t()}finally{await c(this,h,R).call(this,"_releaseQueryLock")}}async _runExclusiveTransaction(t){await c(this,h,R).call(this,"_acquireTransactionLock");try{return await t()}finally{await c(this,h,R).call(this,"_releaseTransactionLock")}}};q=new WeakMap,j=new WeakMap,H=new WeakMap,z=new WeakMap,Y=new WeakMap,D=new WeakMap,O=new WeakMap,U=new WeakMap,S=new WeakMap,K=new WeakMap,J=new WeakMap,X=new WeakMap,N=new WeakMap,k=new WeakMap,Z=new WeakMap,M=new WeakMap,_=new WeakMap,ee=new WeakMap,ue=new WeakMap,h=new WeakSet,Qe=async function(t={}){for(let[l,m]of Object.entries(a(this,ee))){if(m instanceof URL)throw new Error("URL extensions are not supported on the client side of a worker");{let y=await m.setup(this,{},!0);if(y.emscriptenOpts&&console.warn(`PGlite extension ${l} returned emscriptenOpts, these are not supported on the client side of a worker`),y.namespaceObj){let P=this;P[l]=y.namespaceObj}y.bundlePath&&console.warn(`PGlite extension ${l} returned bundlePath, this is not supported on the client side of a worker`),y.init&&await y.init(),y.close&&a(this,ue).push(y.close)}}await a(this,J);let{extensions:n,...i}=t;a(this,S).postMessage({type:"init",options:i}),await a(this,X);let s=`pglite-tab-close:${a(this,O)}`;d(this,Z,await Be(s));let o=`pglite-broadcast:${a(this,K)}`;d(this,N,new BroadcastChannel(o));let u=`pglite-tab:${a(this,O)}`;d(this,k,new BroadcastChannel(u)),a(this,N).addEventListener("message",async l=>{l.data.type==="leader-here"?(d(this,U,!1),a(this,D).dispatchEvent(new Event("leader-change")),c(this,h,ce).call(this)):l.data.type==="notify"&&c(this,h,Ve).call(this,l.data.channel,l.data.payload)}),a(this,k).addEventListener("message",async l=>{l.data.type==="connected"&&(d(this,U,!0),a(this,D).dispatchEvent(new Event("connected")),d(this,j,await c(this,h,R).call(this,"getDebugLevel")),d(this,H,!0))}),a(this,S).addEventListener("message",async l=>{l.data.type==="leader-now"&&(d(this,Y,!0),a(this,D).dispatchEvent(new Event("leader-change")))}),c(this,h,ce).call(this),this._initArrayTypes()},ce=async function(){a(this,U)||(a(this,N).postMessage({type:"tab-here",id:a(this,O)}),setTimeout(()=>c(this,h,ce).call(this),16))},R=async function(t,...n){let i=Re(),s={type:"rpc-call",callId:i,method:t,args:n};return a(this,k).postMessage(s),await new Promise((o,u)=>{let l=P=>{if(P.data.callId!==i)return;y();let E=P.data;if(E.type==="rpc-return")o(E.result);else if(E.type==="rpc-error"){let Se=new Error(E.error.message);Object.assign(Se,E.error),u(Se)}else u(new Error("Invalid message"))},m=()=>{y(),u(new le)},y=()=>{a(this,k).removeEventListener("message",l),a(this,D).removeEventListener("leader-change",m)};a(this,D).addEventListener("leader-change",m),a(this,k).addEventListener("message",l)})},Ve=function(t,n){let i=a(this,M).get(t);if(i)for(let s of i)queueMicrotask(()=>s(n));for(let s of a(this,_))queueMicrotask(()=>s(t,n))};var Ee=De;async function Qt({init:e}){postMessage({type:"here"});let r=await new Promise(m=>{addEventListener("message",y=>{y.data.type==="init"&&m(y.data.options)},{once:!0})}),t=r.id??`${x}:${r.dataDir??""}`;postMessage({type:"ready",id:t});let n=`pglite-election-lock:${t}`,i=`pglite-broadcast:${t}`,s=new BroadcastChannel(i),o=new Set;await Be(n);let u=e(r);s.onmessage=async m=>{let y=m.data;switch(y.type){case"tab-here":Vt(y.id,await u,o);break}},s.postMessage({type:"leader-here",id:t}),postMessage({type:"leader-now"}),(await u).onNotification((m,y)=>{s.postMessage({type:"notify",channel:m,payload:y})})}function Vt(e,r,t){if(t.has(e))return;t.add(e);let n=`pglite-tab:${e}`,i=`pglite-tab-close:${e}`,s=new BroadcastChannel(n);navigator.locks.request(i,()=>new Promise(u=>{s.close(),t.delete(e),u()}));let o=qt(e,r);s.addEventListener("message",async u=>{let l=u.data;switch(l.type){case"rpc-call":{await r.waitReady;let{callId:m,method:y,args:P}=l;try{let E=await o[y](...P);s.postMessage({type:"rpc-return",callId:m,result:E})}catch(E){console.error(E),s.postMessage({type:"rpc-error",callId:m,error:{message:E.message}})}break}}}),s.postMessage({type:"connected"})}function qt(e,r){let t=null,n=null,i=`pglite-tab-close:${e}`;return Be(i).then(()=>{n&&r.exec("ROLLBACK"),t?.(),n?.()}),{async getDebugLevel(){return r.debug},async close(){await r.close()},async execProtocol(s){let{messages:o,data:u}=await r.execProtocol(s);if(u.byteLength!==u.buffer.byteLength){let l=new ArrayBuffer(u.byteLength),m=new Uint8Array(l);return m.set(u),{messages:o,data:m}}else return{messages:o,data:u}},async execProtocolStream(s){return await r.execProtocolStream(s)},async execProtocolRaw(s){let o=await r.execProtocolRaw(s);if(o.byteLength!==o.buffer.byteLength){let u=new ArrayBuffer(o.byteLength),l=new Uint8Array(u);return l.set(o),l}else return o},async dumpDataDir(s){return await r.dumpDataDir(s)},async syncToFs(){return await r.syncToFs()},async _handleBlob(s){return await r._handleBlob(s)},async _getWrittenBlob(){return await r._getWrittenBlob()},async _cleanupBlob(){return await r._cleanupBlob()},async _checkReady(){return await r._checkReady()},async _acquireQueryLock(){return new Promise(s=>{r._runExclusiveQuery(()=>new Promise(o=>{t=o,s()}))})},async _releaseQueryLock(){t?.(),t=null},async _acquireTransactionLock(){return new Promise(s=>{r._runExclusiveTransaction(()=>new Promise(o=>{n=o,s()}))})},async _releaseTransactionLock(){n?.(),n=null}}}var le=class extends Error{constructor(){super("Leader changed, pending operation in indeterminate state")}};async function Be(e){let r;return await new Promise(t=>{navigator.locks.request(e,()=>new Promise(n=>{r=n,t()}))}),r}0&&(module.exports={LeaderChangedError,PGliteWorker,worker});
//# sourceMappingURL=index.cjs.map