spacetimedb 2.0.1 â 2.0.3
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/LICENSE.txt +2 -2
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.mjs.map +1 -1
- package/dist/browser/angular/index.mjs.map +1 -1
- package/dist/browser/react/index.mjs +3 -0
- package/dist/browser/react/index.mjs.map +1 -1
- package/dist/browser/svelte/index.mjs.map +1 -1
- package/dist/browser/vue/index.mjs.map +1 -1
- package/dist/index.browser.mjs +11 -9
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +11 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +11 -9
- package/dist/index.mjs.map +1 -1
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/util.d.ts +11 -11
- package/dist/lib/util.d.ts.map +1 -1
- package/dist/min/index.browser.mjs +1 -1
- package/dist/min/index.browser.mjs.map +1 -1
- package/dist/min/react/index.mjs +1 -1
- package/dist/min/react/index.mjs.map +1 -1
- package/dist/min/sdk/index.browser.mjs +1 -1
- package/dist/min/sdk/index.browser.mjs.map +1 -1
- package/dist/react/index.cjs +3 -0
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.mjs +3 -0
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/useTable.d.ts.map +1 -1
- package/dist/sdk/index.browser.mjs +11 -9
- package/dist/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/index.cjs +11 -9
- package/dist/sdk/index.cjs.map +1 -1
- package/dist/sdk/index.mjs +11 -9
- package/dist/sdk/index.mjs.map +1 -1
- package/dist/sdk/procedures.d.ts +1 -1
- package/dist/sdk/procedures.d.ts.map +1 -1
- package/dist/sdk/reducers.d.ts +2 -3
- package/dist/sdk/reducers.d.ts.map +1 -1
- package/dist/server/index.mjs +11 -9
- package/dist/server/index.mjs.map +1 -1
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.mjs.map +1 -1
- package/dist/tanstack/SpacetimeDBQueryClient.d.ts +2 -3
- package/dist/tanstack/SpacetimeDBQueryClient.d.ts.map +1 -1
- package/dist/tanstack/hooks.d.ts +3 -6
- package/dist/tanstack/hooks.d.ts.map +1 -1
- package/dist/tanstack/index.cjs +4 -1
- package/dist/tanstack/index.cjs.map +1 -1
- package/dist/tanstack/index.mjs +4 -1
- package/dist/tanstack/index.mjs.map +1 -1
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/schema.ts +4 -1
- package/src/lib/util.ts +18 -21
- package/src/react/useTable.ts +7 -0
- package/src/sdk/procedures.ts +1 -3
- package/src/sdk/reducers.ts +5 -7
- package/src/tanstack/SpacetimeDBQueryClient.ts +4 -2
- package/src/tanstack/hooks.ts +3 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
import{fromByteArray as e}from"base64-js";import{stringify as t}from"safe-stable-stringify";var r=class e{__time_duration_micros__;static MICROS_PER_MILLIS=1000n;static getAlgebraicType(){return x.Product({elements:[{name:"__time_duration_micros__",algebraicType:x.I64}]})}static isTimeDuration(e){if("Product"!==e.tag)return!1;const t=e.value.elements;if(1!==t.length)return!1;const r=t[0];return"__time_duration_micros__"===r.name&&"I64"===r.algebraicType.tag}get micros(){return this.__time_duration_micros__}get millis(){return Number(this.micros/e.MICROS_PER_MILLIS)}constructor(e){this.__time_duration_micros__=e}static fromMillis(t){return new e(BigInt(t)*e.MICROS_PER_MILLIS)}toString(){const e=this.micros,t=e<0?-e:e;return`${e<0?"-":"+"}${t/1000000n}.${String(t%1000000n).padStart(6,"0")}`}},n=class e{__timestamp_micros_since_unix_epoch__;static MICROS_PER_MILLIS=1000n;get microsSinceUnixEpoch(){return this.__timestamp_micros_since_unix_epoch__}constructor(e){this.__timestamp_micros_since_unix_epoch__=e}static getAlgebraicType(){return x.Product({elements:[{name:"__timestamp_micros_since_unix_epoch__",algebraicType:x.I64}]})}static isTimestamp(e){if("Product"!==e.tag)return!1;const t=e.value.elements;if(1!==t.length)return!1;const r=t[0];return"__timestamp_micros_since_unix_epoch__"===r.name&&"I64"===r.algebraicType.tag}static UNIX_EPOCH=new e(0n);static now(){return e.fromDate(new Date)}toMillis(){return this.microsSinceUnixEpoch/1000n}static fromDate(t){const r=t.getTime(),n=BigInt(r)*e.MICROS_PER_MILLIS;return new e(n)}toDate(){const t=this.__timestamp_micros_since_unix_epoch__/e.MICROS_PER_MILLIS;if(t>BigInt(Number.MAX_SAFE_INTEGER)||t<BigInt(Number.MIN_SAFE_INTEGER))throw new RangeError("Timestamp is outside of the representable range of JS's Date");return new Date(Number(t))}toISOString(){const t=this.__timestamp_micros_since_unix_epoch__,r=t/e.MICROS_PER_MILLIS;if(r>BigInt(Number.MAX_SAFE_INTEGER)||r<BigInt(Number.MIN_SAFE_INTEGER))throw new RangeError("Timestamp is outside of the representable range for ISO string formatting");const n=new Date(Number(r)).toISOString(),i=Math.abs(Number(t%1000000n)),s=String(i).padStart(6,"0");return n.replace(/\.\d{3}Z$/,`.${s}Z`)}since(e){return new r(this.__timestamp_micros_since_unix_epoch__-e.__timestamp_micros_since_unix_epoch__)}},i=class e{__uuid__;static NIL=new e(0n);static MAX_UUID_BIGINT=0xffffffffffffffffffffffffffffffffn;static MAX=new e(e.MAX_UUID_BIGINT);constructor(t){if(t<0n||t>e.MAX_UUID_BIGINT)throw new Error("Invalid UUID: must be between 0 and `MAX_UUID_BIGINT`");this.__uuid__=t}static fromRandomBytesV4(t){if(16!==t.length)throw new Error("UUID v4 requires 16 bytes");const r=new Uint8Array(t);return r[6]=15&r[6]|64,r[8]=63&r[8]|128,new e(e.bytesToBigInt(r))}static fromCounterV7(t,r,n){if(4!==n.length)throw new Error("`fromCounterV7` requires `randomBytes.length == 4`");if(t.value<0)throw new Error("`fromCounterV7` uuid `counter` must be non-negative");if(r.__timestamp_micros_since_unix_epoch__<0)throw new Error("`fromCounterV7` `timestamp` before unix epoch");const i=t.value;t.value=i+1&2147483647;const s=0xffffffffffffn&r.toMillis(),a=new Uint8Array(16);return a[0]=Number(s>>40n&0xffn),a[1]=Number(s>>32n&0xffn),a[2]=Number(s>>24n&0xffn),a[3]=Number(s>>16n&0xffn),a[4]=Number(s>>8n&0xffn),a[5]=Number(0xffn&s),a[7]=i>>>23&255,a[9]=i>>>15&255,a[10]=i>>>7&255,a[11]=(127&i)<<1&255,a[12]|=127&n[0],a[13]=n[1],a[14]=n[2],a[15]=n[3],a[6]=15&a[6]|112,a[8]=63&a[8]|128,new e(e.bytesToBigInt(a))}static parse(t){const r=t.replace(/-/g,"");if(32!==r.length)throw new Error("Invalid hex UUID");let n=0n;for(let e=0;e<32;e+=2)n=n<<8n|BigInt(parseInt(r.slice(e,e+2),16));return new e(n)}toString(){const t=[...e.bigIntToBytes(this.__uuid__)].map(e=>e.toString(16).padStart(2,"0")).join("");return t.slice(0,8)+"-"+t.slice(8,12)+"-"+t.slice(12,16)+"-"+t.slice(16,20)+"-"+t.slice(20)}asBigInt(){return this.__uuid__}toBytes(){return e.bigIntToBytes(this.__uuid__)}static bytesToBigInt(e){let t=0n;for(const r of e)t=t<<8n|BigInt(r);return t}static bigIntToBytes(e){const t=new Uint8Array(16);for(let r=15;r>=0;r--)t[r]=Number(0xffn&e),e>>=8n;return t}getVersion(){const t=this.toBytes()[6]>>4&15;switch(t){case 4:return"V4";case 7:return"V7";default:if(this==e.NIL)return"Nil";if(this==e.MAX)return"Max";throw new Error(`Unsupported UUID version: ${t}`)}}getCounter(){const e=this.toBytes();return e[7]<<23|e[9]<<15|e[10]<<7|e[11]>>>1}compareTo(e){return this.__uuid__<e.__uuid__?-1:this.__uuid__>e.__uuid__?1:0}static getAlgebraicType(){return x.Product({elements:[{name:"__uuid__",algebraicType:x.U128}]})}},s=class{view;offset=0;constructor(e){this.view=e instanceof DataView?e:new DataView(e.buffer,e.byteOffset,e.byteLength),this.offset=0}reset(e){this.view=e,this.offset=0}get remaining(){return this.view.byteLength-this.offset}#e(e){if(this.offset+e>this.view.byteLength)throw new RangeError(`Tried to read ${e} byte(s) at relative offset ${this.offset}, but only ${this.remaining} byte(s) remain`)}readUInt8Array(){const e=this.readU32();return this.#e(e),this.readBytes(e)}readBool(){const e=this.view.getUint8(this.offset);return this.offset+=1,0!==e}readByte(){const e=this.view.getUint8(this.offset);return this.offset+=1,e}readBytes(e){const t=new Uint8Array(this.view.buffer,this.view.byteOffset+this.offset,e);return this.offset+=e,t}readI8(){const e=this.view.getInt8(this.offset);return this.offset+=1,e}readU8(){return this.readByte()}readI16(){const e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}readU16(){const e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}readI32(){const e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}readU32(){const e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readI64(){const e=this.view.getBigInt64(this.offset,!0);return this.offset+=8,e}readU64(){const e=this.view.getBigUint64(this.offset,!0);return this.offset+=8,e}readU128(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigUint64(this.offset+8,!0);return this.offset+=16,(t<<BigInt(64))+e}readI128(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigInt64(this.offset+8,!0);return this.offset+=16,(t<<BigInt(64))+e}readU256(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigUint64(this.offset+8,!0),r=this.view.getBigUint64(this.offset+16,!0),n=this.view.getBigUint64(this.offset+24,!0);return this.offset+=32,(n<<BigInt(192))+(r<<BigInt(128))+(t<<BigInt(64))+e}readI256(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigUint64(this.offset+8,!0),r=this.view.getBigUint64(this.offset+16,!0),n=this.view.getBigInt64(this.offset+24,!0);return this.offset+=32,(n<<BigInt(192))+(r<<BigInt(128))+(t<<BigInt(64))+e}readF32(){const e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}readF64(){const e=this.view.getFloat64(this.offset,!0);return this.offset+=8,e}readString(){const e=this.readUInt8Array();return new TextDecoder("utf-8").decode(e)}},a=ArrayBuffer.prototype.transfer??function(e){if(void 0===e)return this.slice();if(e<=this.byteLength)return this.slice(0,e);{const t=new Uint8Array(e);return t.set(new Uint8Array(this)),t.buffer}},u=class{buffer;view;constructor(e){this.buffer="number"==typeof e?new ArrayBuffer(e):e,this.view=new DataView(this.buffer)}get capacity(){return this.buffer.byteLength}grow(e){e<=this.buffer.byteLength||(this.buffer=a.call(this.buffer,e),this.view=new DataView(this.buffer))}},o=class{buffer;offset=0;constructor(e){this.buffer="number"==typeof e?new u(e):e}reset(e){this.buffer=e,this.offset=0}expandBuffer(e){const t=this.offset+e+1;if(t<=this.buffer.capacity)return;let r=2*this.buffer.capacity;r<t&&(r=t),this.buffer.grow(r)}toBase64(){return e(this.getBuffer())}getBuffer(){return new Uint8Array(this.buffer.buffer,0,this.offset)}get view(){return this.buffer.view}writeUInt8Array(e){const t=e.length;this.expandBuffer(4+t),this.writeU32(t),new Uint8Array(this.buffer.buffer,this.offset).set(e),this.offset+=t}writeBool(e){this.expandBuffer(1),this.view.setUint8(this.offset,e?1:0),this.offset+=1}writeByte(e){this.expandBuffer(1),this.view.setUint8(this.offset,e),this.offset+=1}writeI8(e){this.expandBuffer(1),this.view.setInt8(this.offset,e),this.offset+=1}writeU8(e){this.expandBuffer(1),this.view.setUint8(this.offset,e),this.offset+=1}writeI16(e){this.expandBuffer(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeU16(e){this.expandBuffer(2),this.view.setUint16(this.offset,e,!0),this.offset+=2}writeI32(e){this.expandBuffer(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeU32(e){this.expandBuffer(4),this.view.setUint32(this.offset,e,!0),this.offset+=4}writeI64(e){this.expandBuffer(8),this.view.setBigInt64(this.offset,e,!0),this.offset+=8}writeU64(e){this.expandBuffer(8),this.view.setBigUint64(this.offset,e,!0),this.offset+=8}writeU128(e){this.expandBuffer(16);const t=e&BigInt("0xFFFFFFFFFFFFFFFF"),r=e>>BigInt(64);this.view.setBigUint64(this.offset,t,!0),this.view.setBigUint64(this.offset+8,r,!0),this.offset+=16}writeI128(e){this.expandBuffer(16);const t=e&BigInt("0xFFFFFFFFFFFFFFFF"),r=e>>BigInt(64);this.view.setBigInt64(this.offset,t,!0),this.view.setBigInt64(this.offset+8,r,!0),this.offset+=16}writeU256(e){this.expandBuffer(32);const t=BigInt("0xFFFFFFFFFFFFFFFF"),r=e&t,n=e>>BigInt(64)&t,i=e>>BigInt(128)&t,s=e>>BigInt(192);this.view.setBigUint64(this.offset+0,r,!0),this.view.setBigUint64(this.offset+8,n,!0),this.view.setBigUint64(this.offset+16,i,!0),this.view.setBigUint64(this.offset+24,s,!0),this.offset+=32}writeI256(e){this.expandBuffer(32);const t=BigInt("0xFFFFFFFFFFFFFFFF"),r=e&t,n=e>>BigInt(64)&t,i=e>>BigInt(128)&t,s=e>>BigInt(192);this.view.setBigUint64(this.offset+0,r,!0),this.view.setBigUint64(this.offset+8,n,!0),this.view.setBigUint64(this.offset+16,i,!0),this.view.setBigInt64(this.offset+24,s,!0),this.offset+=32}writeF32(e){this.expandBuffer(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeF64(e){this.expandBuffer(8),this.view.setFloat64(this.offset,e,!0),this.offset+=8}writeString(e){const t=(new TextEncoder).encode(e);this.writeUInt8Array(t)}};function c(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(const i of r)if(!n.includes(i)||!c(e[i],t[i]))return!1;return!0}function l(e){return Array.prototype.map.call(e.reverse(),e=>("00"+e.toString(16)).slice(-2)).join("")}function d(e){e.startsWith("0x")&&(e=e.slice(2));const t=e.match(/.{1,2}/g)||[];return Uint8Array.from(t.map(e=>parseInt(e,16))).reverse()}function h(e){return function(e){if(16!=e.length)throw new Error(`Uint8Array is not 16 bytes long: ${e}`);return new s(e).readU128()}(d(e))}function m(e){return function(e){if(32!=e.length)throw new Error(`Uint8Array is not 32 bytes long: [${e}]`);return new s(e).readU256()}(d(e))}function p(e){const t=new o(16);return t.writeU128(e),t.getBuffer()}function f(e){return l(p(e))}function y(e){const t=new o(32);return t.writeU256(e),t.getBuffer()}function g(e){return l(y(e))}function w(e){return e.replace(/[-_]+/g,"_").replace(/_([a-zA-Z0-9])/g,(e,t)=>t.toUpperCase())}function b(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,"typeBuilder"in t?t.typeBuilder:t]))}var v=Object.hasOwn,I=class e{__identity__;constructor(e){this.__identity__="string"==typeof e?m(e):e}static getAlgebraicType(){return x.Product({elements:[{name:"__identity__",algebraicType:x.U256}]})}isEqual(e){return this.toHexString()===e.toHexString()}equals(e){return this.isEqual(e)}toHexString(){return g(this.__identity__)}toUint8Array(){return y(this.__identity__)}static fromString(t){return new e(t)}static zero(){return new e(0n)}toString(){return this.toHexString()}},T=new Map,_=new Map,x={Ref:e=>({tag:"Ref",value:e}),Sum:e=>({tag:"Sum",value:e}),Product:e=>({tag:"Product",value:e}),Array:e=>({tag:"Array",value:e}),String:{tag:"String"},Bool:{tag:"Bool"},I8:{tag:"I8"},U8:{tag:"U8"},I16:{tag:"I16"},U16:{tag:"U16"},I32:{tag:"I32"},U32:{tag:"U32"},I64:{tag:"I64"},U64:{tag:"U64"},I128:{tag:"I128"},U128:{tag:"U128"},I256:{tag:"I256"},U256:{tag:"U256"},F32:{tag:"F32"},F64:{tag:"F64"},makeSerializer(e,t){if("Ref"===e.tag){if(!t)throw new Error("cannot serialize refs without a typespace");for(;"Ref"===e.tag;)e=t.types[e.value]}switch(e.tag){case"Product":return E.makeSerializer(e.value,t);case"Sum":return C.makeSerializer(e.value,t);case"Array":if("U8"===e.value.tag)return S;{const r=x.makeSerializer(e.value,t);return(e,t)=>{e.writeU32(t.length);for(const n of t)r(e,n)}}default:return U[e.tag]}},serializeValue(e,t,r,n){x.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){if("Ref"===e.tag){if(!t)throw new Error("cannot deserialize refs without a typespace");for(;"Ref"===e.tag;)e=t.types[e.value]}switch(e.tag){case"Product":return E.makeDeserializer(e.value,t);case"Sum":return C.makeDeserializer(e.value,t);case"Array":if("U8"===e.value.tag)return R;{const r=x.makeDeserializer(e.value,t);return e=>{const t=e.readU32(),n=Array(t);for(let i=0;i<t;i++)n[i]=r(e);return n}}default:return M[e.tag]}},deserializeValue:(e,t,r)=>x.makeDeserializer(t,r)(e),intoMapKey:function(e,t){switch(e.tag){case"U8":case"U16":case"U32":case"U64":case"U128":case"U256":case"I8":case"I16":case"I32":case"I64":case"I128":case"I256":case"F32":case"F64":case"String":case"Bool":return t;case"Product":return E.intoMapKey(e.value,t);default:{const r=new o(10);return x.serializeValue(r,e,t),r.toBase64()}}}};function B(e){return Function.prototype.call.bind(e)}var U={Bool:B(o.prototype.writeBool),I8:B(o.prototype.writeI8),U8:B(o.prototype.writeU8),I16:B(o.prototype.writeI16),U16:B(o.prototype.writeU16),I32:B(o.prototype.writeI32),U32:B(o.prototype.writeU32),I64:B(o.prototype.writeI64),U64:B(o.prototype.writeU64),I128:B(o.prototype.writeI128),U128:B(o.prototype.writeU128),I256:B(o.prototype.writeI256),U256:B(o.prototype.writeU256),F32:B(o.prototype.writeF32),F64:B(o.prototype.writeF64),String:B(o.prototype.writeString)};Object.freeze(U);var S=B(o.prototype.writeUInt8Array),M={Bool:B(s.prototype.readBool),I8:B(s.prototype.readI8),U8:B(s.prototype.readU8),I16:B(s.prototype.readI16),U16:B(s.prototype.readU16),I32:B(s.prototype.readI32),U32:B(s.prototype.readU32),I64:B(s.prototype.readI64),U64:B(s.prototype.readU64),I128:B(s.prototype.readI128),U128:B(s.prototype.readU128),I256:B(s.prototype.readI256),U256:B(s.prototype.readU256),F32:B(s.prototype.readF32),F64:B(s.prototype.readF64),String:B(s.prototype.readString)};Object.freeze(M);var R=B(s.prototype.readUInt8Array),A={Bool:1,I8:1,U8:1,I16:2,U16:2,I32:4,U32:4,I64:8,U64:8,I128:16,U128:16,I256:32,U256:32,F32:4,F64:8},q=new Set(Object.keys(A)),N=e=>e.elements.every(({algebraicType:e})=>q.has(e.tag)),D={Bool:"Uint8",I8:"Int8",U8:"Uint8",I16:"Int16",U16:"Uint16",I32:"Int32",U32:"Uint32",I64:"BigInt64",U64:"BigUint64",F32:"Float32",F64:"Float64"},j={__time_duration_micros__:e=>new r(e.readI64()),__timestamp_micros_since_unix_epoch__:e=>new n(e.readI64()),__identity__:e=>new I(e.readU256()),__connection_id__:e=>new V(e.readU128()),__uuid__:e=>new i(e.readU128())};Object.freeze(j);var O=()=>({}),k=e=>{let t;switch(e.algebraicType.tag){case"String":t="''";break;case"Bool":t="false";break;case"I8":case"U8":case"I16":case"U16":case"I32":case"U32":t="0";break;case"I64":case"U64":case"I128":case"U128":case"I256":case"U256":t="0n";break;case"F32":case"F64":t="0.0";break;default:t="undefined"}return`${e.name}: ${t}`},E={makeSerializer(e,t){let r=T.get(e);if(null!=r)return r;if(N(e)){const t=(e=>e.elements.reduce((e,{algebraicType:t})=>e+A[t.tag],0))(e),n=`"use strict";\nwriter.expandBuffer(${t});\nconst view = writer.view;\n${e.elements.map(({name:e,algebraicType:{tag:t}})=>t in D?`view.set${D[t]}(writer.offset, value.${e}, ${A[t]>1?"true":""});\nwriter.offset += ${A[t]};`:`writer.write${t}(value.${e});`).join("\n")}`;return r=Function("writer","value",n),T.set(e,r),r}const n={},i='"use strict";\n'+e.elements.map(e=>`this.${e.name}(writer, value.${e.name});`).join("\n");r=Function("writer","value",i).bind(n),T.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=x.makeSerializer(i,t);return Object.freeze(n),r},serializeValue(e,t,r,n){E.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){switch(e.elements.length){case 0:return O;case 1:{const t=e.elements[0].name;if(v(j,t))return j[t]}}let r=_.get(e);if(null!=r)return r;if(N(e)){const t=`"use strict";\nconst result = { ${e.elements.map(k).join(", ")} };\nconst view = reader.view;\n${e.elements.map(({name:e,algebraicType:{tag:t}})=>t in D?`result.${e} = view.get${D[t]}(reader.offset, ${A[t]>1?"true":""});\nreader.offset += ${A[t]};`:`result.${e} = reader.read${t}();`).join("\n")}\nreturn result;`;return r=Function("reader",t),_.set(e,r),r}const n={};r=Function("reader",`"use strict";\nconst result = { ${e.elements.map(k).join(", ")} };\n${e.elements.map(({name:e})=>`result.${e} = this.${e}(reader);`).join("\n")}\nreturn result;`).bind(n),_.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=x.makeDeserializer(i,t);return Object.freeze(n),r},deserializeValue:(e,t,r)=>E.makeDeserializer(t,r)(e),intoMapKey(e,t){if(1===e.elements.length){const r=e.elements[0].name;if(v(j,r))return t[r]}const r=new o(10);return x.serializeValue(r,x.Product(e),t),r.toBase64()}},C={makeSerializer(e,t){if(2==e.variants.length&&"some"===e.variants[0].name&&"none"===e.variants[1].name){const r=x.makeSerializer(e.variants[0].algebraicType,t);return(e,t)=>{null!=t?(e.writeByte(0),r(e,t)):e.writeByte(1)}}if(2==e.variants.length&&"ok"===e.variants[0].name&&"err"===e.variants[1].name){const r=x.makeSerializer(e.variants[0].algebraicType,t),n=x.makeSerializer(e.variants[0].algebraicType,t);return(e,t)=>{if("ok"in t)e.writeU8(0),r(e,t.ok);else{if(!("err"in t))throw new TypeError("could not serialize result: object had neither a `ok` nor an `err` field");e.writeU8(1),n(e,t.err)}}}{let r=T.get(e);if(null!=r)return r;const n={},i=`switch (value.tag) {\n${e.variants.map(({name:e},t)=>` case ${JSON.stringify(e)}:\n writer.writeByte(${t});\n return this.${e}(writer, value.value);`).join("\n")}\n default:\n throw new TypeError(\n \`Could not serialize sum type; unknown tag \${value.tag}\`\n )\n}\n`;r=Function("writer","value",i).bind(n),T.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=x.makeSerializer(i,t);return Object.freeze(n),r}},serializeValue(e,t,r,n){C.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){if(2==e.variants.length&&"some"===e.variants[0].name&&"none"===e.variants[1].name){const r=x.makeDeserializer(e.variants[0].algebraicType,t);return e=>{const t=e.readU8();if(0===t)return r(e);if(1!==t)throw`Can't deserialize an option type, couldn't find ${t} tag`}}if(2==e.variants.length&&"ok"===e.variants[0].name&&"err"===e.variants[1].name){const r=x.makeDeserializer(e.variants[0].algebraicType,t),n=x.makeDeserializer(e.variants[1].algebraicType,t);return e=>{const t=e.readByte();if(0===t)return{ok:r(e)};if(1===t)return{err:n(e)};throw`Can't deserialize a result type, couldn't find ${t} tag`}}{let r=_.get(e);if(null!=r)return r;const n={};r=Function("reader",`switch (reader.readU8()) {\n${e.variants.map(({name:e},t)=>`case ${t}: return { tag: ${JSON.stringify(e)}, value: this.${e}(reader) };`).join("\n")} }`).bind(n),_.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=x.makeDeserializer(i,t);return Object.freeze(n),r}},deserializeValue:(e,t,r)=>C.makeDeserializer(t,r)(e)},V=class e{__connection_id__;constructor(e){this.__connection_id__=e}static getAlgebraicType(){return x.Product({elements:[{name:"__connection_id__",algebraicType:x.U128}]})}isZero(){return this.__connection_id__===BigInt(0)}static nullIfZero(e){return e.isZero()?null:e}static random(){function t(){return Math.floor(255*Math.random())}let r=BigInt(0);for(let e=0;e<16;e++)r=r<<BigInt(8)|BigInt(t());return new e(r)}isEqual(e){return this.__connection_id__==e.__connection_id__}equals(e){return this.isEqual(e)}toHexString(){return f(this.__connection_id__)}toUint8Array(){return p(this.__connection_id__)}static fromString(t){return new e(h(t))}static fromStringOrNull(t){const r=e.fromString(t);return r.isZero()?null:r}},P=class extends Error{constructor(e){super(e)}get name(){return"SenderError"}},F=class extends Error{constructor(e){super(e)}get name(){return"InternalError"}},$={interval:e=>z(e),time:e=>K(e),getAlgebraicType:()=>x.Sum({variants:[{name:"Interval",algebraicType:r.getAlgebraicType()},{name:"Time",algebraicType:n.getAlgebraicType()}]}),isScheduleAt(e){if("Sum"!==e.tag)return!1;const t=e.value.variants;if(2!==t.length)return!1;const i=t.find(e=>"Interval"===e.name),s=t.find(e=>"Time"===e.name);return!(!i||!s)&&(r.isTimeDuration(i.algebraicType)&&n.isTimestamp(s.algebraicType))}},z=e=>({tag:"Interval",value:new r(e)}),K=e=>({tag:"Time",value:new n(e)}),L=$,H={getAlgebraicType:e=>x.Sum({variants:[{name:"some",algebraicType:e},{name:"none",algebraicType:x.Product({elements:[]})}]})},Q={getAlgebraicType:(e,t)=>x.Sum({variants:[{name:"ok",algebraicType:e},{name:"err",algebraicType:t}]})},W=Symbol("QueryBrand");var Z=class e{constructor(e,t,r){if(this.sourceQuery=e,this.filterQuery=t,this.joinCondition=r,e.table.sourceName===t.table.sourceName)throw new Error("Cannot semijoin a table to itself")}[W]=!0;type="semijoin";build(){return this}where(t){const r=this.sourceQuery.where(t);return new e(r,this.filterQuery,this.joinCondition)}toSql(){const e=this.filterQuery,t=this.sourceQuery,r=se(e.table.sourceName),n=se(t.table.sourceName);let i=`SELECT ${n}.* FROM ${r} JOIN ${n} ON ${re(this.joinCondition)}`;const s=[];if(e.whereClause&&s.push(re(e.whereClause)),t.whereClause&&s.push(re(t.whereClause)),s.length>0){i+=` WHERE ${1===s.length?s[0]:s.map(ne).join(" AND ")}`}return i}},G=class e{constructor(e,t){this.table=e,this.whereClause=t}[W]=!0;where(t){const r=t(this.table.cols),n=this.whereClause?this.whereClause.and(r):r;return new e(this.table,n)}rightSemijoin(t,r){const n=new e(t),i=r(this.table.indexedCols,t.indexedCols);return new Z(n,this,i)}leftSemijoin(t,r){const n=new e(t),i=r(this.table.indexedCols,t.indexedCols);return new Z(this,n,i)}toSql(){return function(e,t,r=[]){const n=`SELECT * FROM ${se(e.sourceName)}`,i=[];t&&i.push(re(t));if(i.push(...r),0===i.length)return n;const s=1===i.length?i[0]:i.map(ne).join(" AND ");return`${n} WHERE ${s}`}(this.table,this.whereClause)}build(){return this}},X=class{[W]=!0;type="table";sourceName;accessorName;cols;indexedCols;tableDef;get columns(){return this.tableDef.columns}get indexes(){return this.tableDef.indexes}get rowType(){return this.tableDef.rowType}get constraints(){return this.tableDef.constraints}constructor(e){this.sourceName=e.sourceName,this.accessorName=e.accessorName,this.cols=function(e){const t={};for(const r of Object.keys(e.columns)){const n=e.columns[r],i=new Y(e.sourceName,r,n.typeBuilder.algebraicType);t[r]=Object.freeze(i)}return Object.freeze(t)}(e),this.indexedCols=this.cols,this.tableDef=e,Object.freeze(this)}asFrom(){return new G(this)}rightSemijoin(e,t){return this.asFrom().rightSemijoin(e,t)}leftSemijoin(e,t){return this.asFrom().leftSemijoin(e,t)}build(){return this.asFrom().build()}toSql(){return this.asFrom().toSql()}where(e){return this.asFrom().where(e)}};function J(e){return new X(e)}var Y=class{type="column";column;table;tsValueType;spacetimeType;constructor(e,t,r){this.table=e,this.column=t,this.spacetimeType=r}eq(e){return new te({type:"eq",left:this,right:ee(e)})}ne(e){return new te({type:"ne",left:this,right:ee(e)})}lt(e){return new te({type:"lt",left:this,right:ee(e)})}lte(e){return new te({type:"lte",left:this,right:ee(e)})}gt(e){return new te({type:"gt",left:this,right:ee(e)})}gte(e){return new te({type:"gte",left:this,right:ee(e)})}};function ee(e){return"literal"===e.type||"object"==typeof e&&null!=e&&"type"in e&&"column"===e.type?e:{type:"literal",value:e}}var te=class e{constructor(e){this.data=e}and(t){return new e({type:"and",clauses:[this.data,t.data]})}or(t){return new e({type:"or",clauses:[this.data,t.data]})}not(){return new e({type:"not",clause:this.data})}};function re(e,t){const r=e instanceof te?e.data:e;switch(r.type){case"eq":return`${ie(r.left)} = ${ie(r.right)}`;case"ne":return`${ie(r.left)} <> ${ie(r.right)}`;case"gt":return`${ie(r.left)} > ${ie(r.right)}`;case"gte":return`${ie(r.left)} >= ${ie(r.right)}`;case"lt":return`${ie(r.left)} < ${ie(r.right)}`;case"lte":return`${ie(r.left)} <= ${ie(r.right)}`;case"and":return r.clauses.map(e=>re(e)).map(ne).join(" AND ");case"or":return r.clauses.map(e=>re(e)).map(ne).join(" OR ");case"not":return`NOT ${ne(re(r.clause))}`}}function ne(e){return`(${e})`}function ie(e,t){if(function(e){return"literal"===e.type}(e))return function(e){if(null==e)return"NULL";if(e instanceof I||e instanceof V)return`0x${e.toHexString()}`;if(e instanceof n)return`'${e.toISOString()}'`;switch(typeof e){case"number":case"bigint":return String(e);case"boolean":return e?"TRUE":"FALSE";case"string":return`'${e.replace(/'/g,"''")}'`;default:return`'${JSON.stringify(e).replace(/'/g,"''")}'`}}(e.value);return`${se(e.table)}.${se(e.column)}`}function se(e){return`"${e.replace(/"/g,'""')}"`}function ae(e,t){return{...e,...t}}var ue=class{type;algebraicType;constructor(e){this.algebraicType=e}optional(){return new Ue(this)}serialize(e,t){(this.serialize=x.makeSerializer(this.algebraicType))(e,t)}deserialize(e){return(this.deserialize=x.makeDeserializer(this.algebraicType))(e)}},oe=class extends ue{constructor(){super(x.U8)}index(e="btree"){return new ze(this,ae(Fe,{indexType:e}))}unique(){return new ze(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new ze(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new ze(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new ze(this,ae(Fe,{defaultValue:e}))}name(e){return new ze(this,ae(Fe,{name:e}))}},ce=class extends ue{constructor(){super(x.U16)}index(e="btree"){return new Ke(this,ae(Fe,{indexType:e}))}unique(){return new Ke(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ke(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ke(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ke(this,ae(Fe,{defaultValue:e}))}name(e){return new Ke(this,ae(Fe,{name:e}))}},le=class extends ue{constructor(){super(x.U32)}index(e="btree"){return new Le(this,ae(Fe,{indexType:e}))}unique(){return new Le(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Le(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Le(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Le(this,ae(Fe,{defaultValue:e}))}name(e){return new Le(this,ae(Fe,{name:e}))}},de=class extends ue{constructor(){super(x.U64)}index(e="btree"){return new He(this,ae(Fe,{indexType:e}))}unique(){return new He(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new He(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new He(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new He(this,ae(Fe,{defaultValue:e}))}name(e){return new He(this,ae(Fe,{name:e}))}},he=class extends ue{constructor(){super(x.U128)}index(e="btree"){return new Qe(this,ae(Fe,{indexType:e}))}unique(){return new Qe(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Qe(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Qe(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Qe(this,ae(Fe,{defaultValue:e}))}name(e){return new Qe(this,ae(Fe,{name:e}))}},me=class extends ue{constructor(){super(x.U256)}index(e="btree"){return new We(this,ae(Fe,{indexType:e}))}unique(){return new We(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new We(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new We(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new We(this,ae(Fe,{defaultValue:e}))}name(e){return new We(this,ae(Fe,{name:e}))}},pe=class extends ue{constructor(){super(x.I8)}index(e="btree"){return new Ze(this,ae(Fe,{indexType:e}))}unique(){return new Ze(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ze(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ze(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ze(this,ae(Fe,{defaultValue:e}))}name(e){return new Ze(this,ae(Fe,{name:e}))}},fe=class extends ue{constructor(){super(x.I16)}index(e="btree"){return new Ge(this,ae(Fe,{indexType:e}))}unique(){return new Ge(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ge(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ge(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ge(this,ae(Fe,{defaultValue:e}))}name(e){return new Ge(this,ae(Fe,{name:e}))}},ye=class extends ue{constructor(){super(x.I32)}index(e="btree"){return new Xe(this,ae(Fe,{indexType:e}))}unique(){return new Xe(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Xe(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Xe(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Xe(this,ae(Fe,{defaultValue:e}))}name(e){return new Xe(this,ae(Fe,{name:e}))}},ge=class extends ue{constructor(){super(x.I64)}index(e="btree"){return new Je(this,ae(Fe,{indexType:e}))}unique(){return new Je(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Je(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Je(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Je(this,ae(Fe,{defaultValue:e}))}name(e){return new Je(this,ae(Fe,{name:e}))}},we=class extends ue{constructor(){super(x.I128)}index(e="btree"){return new Ye(this,ae(Fe,{indexType:e}))}unique(){return new Ye(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ye(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ye(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ye(this,ae(Fe,{defaultValue:e}))}name(e){return new Ye(this,ae(Fe,{name:e}))}},be=class extends ue{constructor(){super(x.I256)}index(e="btree"){return new et(this,ae(Fe,{indexType:e}))}unique(){return new et(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new et(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new et(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new et(this,ae(Fe,{defaultValue:e}))}name(e){return new et(this,ae(Fe,{name:e}))}},ve=class extends ue{constructor(){super(x.F32)}default(e){return new tt(this,ae(Fe,{defaultValue:e}))}name(e){return new tt(this,ae(Fe,{name:e}))}},Ie=class extends ue{constructor(){super(x.F64)}default(e){return new rt(this,ae(Fe,{defaultValue:e}))}name(e){return new rt(this,ae(Fe,{name:e}))}},Te=class extends ue{constructor(){super(x.Bool)}index(e="btree"){return new nt(this,ae(Fe,{indexType:e}))}unique(){return new nt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new nt(this,ae(Fe,{isPrimaryKey:!0}))}default(e){return new nt(this,ae(Fe,{defaultValue:e}))}name(e){return new nt(this,ae(Fe,{name:e}))}},_e=class extends ue{constructor(){super(x.String)}index(e="btree"){return new it(this,ae(Fe,{indexType:e}))}unique(){return new it(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new it(this,ae(Fe,{isPrimaryKey:!0}))}default(e){return new it(this,ae(Fe,{defaultValue:e}))}name(e){return new it(this,ae(Fe,{name:e}))}},xe=class extends ue{element;constructor(e){super(x.Array(e.algebraicType)),this.element=e}default(e){return new st(this,ae(Fe,{defaultValue:e}))}name(e){return new st(this,ae(Fe,{name:e}))}},Be=class extends ue{constructor(){super(x.Array(x.U8))}default(e){return new at(ae(Fe,{defaultValue:e}))}name(e){return new at(ae(Fe,{name:e}))}},Ue=class extends ue{value;constructor(e){super(H.getAlgebraicType(e.algebraicType)),this.value=e}default(e){return new ut(this,ae(Fe,{defaultValue:e}))}name(e){return new ut(this,ae(Fe,{name:e}))}},Se=class extends ue{typeName;elements;constructor(e,t){var r;super(x.Product({elements:(r=e,Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].algebraicType}})))})),this.typeName=t,this.elements=e}default(e){return new ct(this,ae(Fe,{defaultValue:e}))}name(e){return new ct(this,ae(Fe,{name:e}))}},Me=class extends ue{ok;err;constructor(e,t){super(Q.getAlgebraicType(e.algebraicType,t.algebraicType)),this.ok=e,this.err=t}default(e){return new ot(this,ae(Fe,{defaultValue:e}))}},Re=class extends ue{constructor(){super({tag:"Product",value:{elements:[]}})}},Ae=class extends ue{row;typeName;constructor(e,t){const r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t instanceof $e?t:new $e(t,{})])),n=Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].typeBuilder.algebraicType}}));super(x.Product({elements:n})),this.row=r,this.typeName=t}},qe=class extends ue{variants;typeName;constructor(e,t){var r;super(x.Sum({variants:(r=e,Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].algebraicType}})))})),this.variants=e,this.typeName=t;for(const t of Object.keys(e)){const r=Object.getOwnPropertyDescriptor(e,t);let n=!1;if(!(!!r&&("function"==typeof r.get||"function"==typeof r.set))){n=e[t]instanceof Re}if(n){const e=this.create(t);Object.defineProperty(this,t,{value:e,writable:!1,enumerable:!0,configurable:!1})}else{const e=e=>this.create(t,e);Object.defineProperty(this,t,{value:e,writable:!1,enumerable:!0,configurable:!1})}}}create(e,t){return void 0===t?{tag:e}:{tag:e,value:t}}default(e){return new lt(this,ae(Fe,{defaultValue:e}))}name(e){return new lt(this,ae(Fe,{name:e}))}},Ne=qe,De=class extends qe{index(e="btree"){return new dt(this,ae(Fe,{indexType:e}))}primaryKey(){return new dt(this,ae(Fe,{isPrimaryKey:!0}))}},je=De,Oe=class extends ue{constructor(){super(L.getAlgebraicType())}default(e){return new ht(this,ae(Fe,{defaultValue:e}))}name(e){return new ht(this,ae(Fe,{name:e}))}},ke=class extends ue{constructor(){super(I.getAlgebraicType())}index(e="btree"){return new mt(this,ae(Fe,{indexType:e}))}unique(){return new mt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new mt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new mt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new mt(this,ae(Fe,{defaultValue:e}))}name(e){return new mt(this,ae(Fe,{name:e}))}},Ee=class extends ue{constructor(){super(V.getAlgebraicType())}index(e="btree"){return new pt(this,ae(Fe,{indexType:e}))}unique(){return new pt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new pt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new pt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new pt(this,ae(Fe,{defaultValue:e}))}name(e){return new pt(this,ae(Fe,{name:e}))}},Ce=class extends ue{constructor(){super(n.getAlgebraicType())}index(e="btree"){return new ft(this,ae(Fe,{indexType:e}))}unique(){return new ft(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new ft(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new ft(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new ft(this,ae(Fe,{defaultValue:e}))}name(e){return new ft(this,ae(Fe,{name:e}))}},Ve=class extends ue{constructor(){super(r.getAlgebraicType())}index(e="btree"){return new yt(this,ae(Fe,{indexType:e}))}unique(){return new yt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new yt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new yt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new yt(this,ae(Fe,{defaultValue:e}))}name(e){return new yt(this,ae(Fe,{name:e}))}},Pe=class extends ue{constructor(){super(i.getAlgebraicType())}index(e="btree"){return new gt(this,ae(Fe,{indexType:e}))}unique(){return new gt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new gt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new gt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new gt(this,ae(Fe,{defaultValue:e}))}name(e){return new gt(this,ae(Fe,{name:e}))}},Fe={},$e=class{typeBuilder;columnMetadata;constructor(e,t){this.typeBuilder=e,this.columnMetadata=t}serialize(e,t){this.typeBuilder.serialize(e,t)}deserialize(e){return this.typeBuilder.deserialize(e)}},ze=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ke=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Le=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},He=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Qe=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},We=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ze=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ge=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Xe=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Je=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ye=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},et=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},tt=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},rt=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},nt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},it=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},st=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},at=class e extends $e{constructor(e){super(new ue(x.Array(x.U8)),e)}default(t){return new e(ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(ae(this.columnMetadata,{name:t}))}},ut=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},ot=class e extends $e{constructor(e,t){super(e,t)}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}},ct=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},lt=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},dt=class e extends lt{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}},ht=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},mt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},pt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},ft=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},yt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},gt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},wt=class extends ue{ref;__spacetimeType;constructor(e){super(x.Ref(e)),this.ref=e}},bt={bool:()=>new Te,string:()=>new _e,number:()=>new Ie,i8:()=>new pe,u8:()=>new oe,i16:()=>new fe,u16:()=>new ce,i32:()=>new ye,u32:()=>new le,i64:()=>new ge,u64:()=>new de,i128:()=>new we,u128:()=>new he,i256:()=>new be,u256:()=>new me,f32:()=>new ve,f64:()=>new Ie,object:(e,t)=>{if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the object.");return new Se(t,e)}return new Se(e,void 0)},row:(e,t)=>{const[r,n]="string"==typeof e?[t,e]:[e,void 0];return new Ae(r,n)},array:e=>new xe(e),enum:(e,t)=>{let r,n=e;if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the variants object or array.");n=t,r=e}if(Array.isArray(n)){const e={};for(const t of n)e[t]=new Re;return new De(e,r)}return new Ne(n,r)},unit:()=>new Re,lazy(e){let t=null;const r=()=>t??=e();return new Proxy({},{get(e,t,n){const i=r(),s=Reflect.get(i,t,n);return"function"==typeof s?s.bind(i):s},set:(e,t,n,i)=>Reflect.set(r(),t,n,i),has:(e,t)=>t in r(),ownKeys:()=>Reflect.ownKeys(r()),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(r(),t),getPrototypeOf:()=>Object.getPrototypeOf(r())})},scheduleAt:()=>new Oe,option:e=>new Ue(e),result:(e,t)=>new Me(e,t),identity:()=>new ke,connectionId:()=>new Ee,timestamp:()=>new Ce,timeDuration:()=>new Ve,uuid:()=>new Pe,byteArray:()=>new Be},vt=bt.object("BsatnRowList",{get sizeHint(){return Et},rowsData:bt.byteArray()}),It=bt.object("CallProcedure",{requestId:bt.u32(),flags:bt.u8(),procedure:bt.string(),args:bt.byteArray()}),Tt=bt.object("CallReducer",{requestId:bt.u32(),flags:bt.u8(),reducer:bt.string(),args:bt.byteArray()}),_t=bt.enum("ClientMessage",{get Subscribe(){return Pt},get Unsubscribe(){return Ht},get OneOffQuery(){return Ut},get CallReducer(){return Tt},get CallProcedure(){return It}}),xt=bt.object("EventTableRows",{get events(){return vt}}),Bt=bt.object("InitialConnection",{identity:bt.identity(),connectionId:bt.connectionId(),token:bt.string()}),Ut=bt.object("OneOffQuery",{requestId:bt.u32(),queryString:bt.string()}),St=bt.object("OneOffQueryResult",{requestId:bt.u32(),get result(){return bt.result(qt,bt.string())}}),Mt=bt.object("PersistentTableRows",{get inserts(){return vt},get deletes(){return vt}}),Rt=bt.object("ProcedureResult",{get status(){return At},timestamp:bt.timestamp(),totalHostExecutionDuration:bt.timeDuration(),requestId:bt.u32()}),At=bt.enum("ProcedureStatus",{Returned:bt.byteArray(),InternalError:bt.string()}),qt=bt.object("QueryRows",{get tables(){return bt.array(Vt)}}),Nt=bt.object("QuerySetId",{id:bt.u32()}),Dt=bt.object("QuerySetUpdate",{get querySetId(){return Nt},get tables(){return bt.array(zt)}}),jt=bt.object("ReducerOk",{retValue:bt.byteArray(),get transactionUpdate(){return Lt}}),Ot=bt.enum("ReducerOutcome",{get Ok(){return jt},OkEmpty:bt.unit(),Err:bt.byteArray(),InternalError:bt.string()}),kt=bt.object("ReducerResult",{requestId:bt.u32(),timestamp:bt.timestamp(),get result(){return Ot}}),Et=bt.enum("RowSizeHint",{FixedSize:bt.u16(),RowOffsets:bt.array(bt.u64())}),Ct=bt.enum("ServerMessage",{get InitialConnection(){return Bt},get SubscribeApplied(){return Ft},get UnsubscribeApplied(){return Qt},get SubscriptionError(){return $t},get TransactionUpdate(){return Lt},get OneOffQueryResult(){return St},get ReducerResult(){return kt},get ProcedureResult(){return Rt}}),Vt=bt.object("SingleTableRows",{table:bt.string(),get rows(){return vt}}),Pt=bt.object("Subscribe",{requestId:bt.u32(),get querySetId(){return Nt},queryStrings:bt.array(bt.string())}),Ft=bt.object("SubscribeApplied",{requestId:bt.u32(),get querySetId(){return Nt},get rows(){return qt}}),$t=bt.object("SubscriptionError",{requestId:bt.option(bt.u32()),get querySetId(){return Nt},error:bt.string()}),zt=bt.object("TableUpdate",{tableName:bt.string(),get rows(){return bt.array(Kt)}}),Kt=bt.enum("TableUpdateRows",{get PersistentTable(){return Mt},get EventTable(){return xt}}),Lt=bt.object("TransactionUpdate",{get querySets(){return bt.array(Dt)}}),Ht=bt.object("Unsubscribe",{requestId:bt.u32(),get querySetId(){return Nt},get flags(){return Wt}}),Qt=bt.object("UnsubscribeApplied",{requestId:bt.u32(),get querySetId(){return Nt},get rows(){return bt.option(qt)}}),Wt=bt.enum("UnsubscribeFlags",{Default:bt.unit(),SendDroppedRows:bt.unit()}),Zt=class{#t=new Map;on(e,t){let r=this.#t.get(e);r||(r=new Set,this.#t.set(e,r)),r.add(t)}off(e,t){const r=this.#t.get(e);r&&r.delete(t)}emit(e,...t){const r=this.#t.get(e);if(r)for(const e of r)e(...t)}},Gt={component:"đĻ",info:"âšī¸",warn:"â ī¸",error:"â",debug:"đ",trace:"đ"},Xt={component:"color: #fff; background-color: #8D6FDD; padding: 2px 5px; border-radius: 3px;",info:"color: #fff; background-color: #007bff; padding: 2px 5px; border-radius: 3px;",warn:"color: #fff; background-color: #ffc107; padding: 2px 5px; border-radius: 3px;",error:"color: #fff; background-color: #dc3545; padding: 2px 5px; border-radius: 3px;",debug:"color: #fff; background-color: #28a745; padding: 2px 5px; border-radius: 3px;",trace:"color: #fff; background-color: #17a2b8; padding: 2px 5px; border-radius: 3px;"},Jt={component:"color: #8D6FDD;",info:"color: #007bff;",warn:"color: #ffc107;",error:"color: #dc3545;",debug:"color: #28a745;",trace:"color: #17a2b8;"},Yt={error:0,warn:1,info:2,debug:3,trace:4},er="info",tr=e=>{er=e},rr=()=>er,nr=e=>"function"==typeof e?e():e,ir=e=>Array.from(e).map(e=>e.toString(16).padStart(2,"0")).join(""),sr=new Set(["token","authToken","authorization","accessToken","refreshToken"]),ar=e=>t(e,(e,r)=>{if(sr.has(e))return"[REDACTED]";if(r&&"object"==typeof r&&"__identity__"in r&&"bigint"==typeof r.__identity__)return g(r.__identity__);if(r&&"object"==typeof r&&"__connection_id__"in r&&"bigint"==typeof r.__connection_id__)return f(r.__connection_id__);if(r instanceof Uint8Array){if(r.length<25)return`0x${ir(r)}`;const e=r.subarray(0,10);return`Uint8Array(len=${r.length}, head=0x${ir(e)})`}if(Array.isArray(r)&&r.length>=25){const e=t(r.slice(0,10));return`Array(len=${r.length}, head=${e??"[]"})`}return r}),ur=(e,t,...r)=>{if(!(e=>Yt[e]<=Yt[er])(e))return;const n=nr(t),i=r.map(nr);console.log(`%c${Gt[e]} ${e.toUpperCase()}%c ${n}`,Xt[e],Jt[e],...i)},or=(e,t)=>e===t?0:e<t?-1:1,cr=class{rows;tableDef;emitter;constructor(e){this.tableDef=e,this.rows=new Map,this.emitter=new Zt;const t=this.tableDef.indexes||[];for(const e of t){const t=e,r=this.#r(this.tableDef,t);this[t.name]=r}}#r(e,t){if("btree"!==t.algorithm)throw new Error("Only btree indexes are supported in TableCacheImpl");const r=t.columns,n=e=>r.map(t=>e[t]),i=(e,t)=>{const r=n(e),i=Array.isArray(t)?t:[t],s=Math.max(0,i.length-1);for(let e=0;e<s;e++)if(!c(r[e],i[e]))return!1;const a=i[i.length-1],u=r[s];if(a&&"object"==typeof a&&"from"in a&&"to"in a){const e=a.from,t=a.to;if("unbounded"!==e.tag){const t=or(u,e.value);if(t<0)return!1;if(0===t&&"excluded"===e.tag)return!1}if("unbounded"!==t.tag){const e=or(u,t.value);if(e>0)return!1;if(0===e&&"excluded"===t.tag)return!1}return!0}return!!c(u,a)},s=e.constraints.some(e=>"unique"===e.constraint&&c(e.columns,t.columns)),a=this;if(s){return{find:e=>{const t=Array.isArray(e)?e:[e];for(const e of a.iter())if(c(n(e),t))return e;return null}}}return{*filter(e){for(const t of a.iter())i(t,e)&&(yield t)}}}count(){return BigInt(this.rows.size)}iter(){return function*(e){for(const[t]of e.values())yield t}(this.rows)}[Symbol.iterator](){return this.iter()}applyOperations=(e,t)=>{const r=[];if(this.tableDef.isEvent){for(const n of e)"insert"===n.type&&r.push({type:"insert",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("insert",t,n.row)}});return r}if(Object.values(this.tableDef.columns).some(e=>!0===e.columnMetadata.isPrimaryKey)){const n=new Map,i=new Map;for(const t of e)if("insert"===t.type){const[e,r]=n.get(t.rowId)||[t,0];n.set(t.rowId,[t,r+1])}else{const[e,r]=i.get(t.rowId)||[t,0];i.set(t.rowId,[t,r+1])}for(const[e,[s,a]]of n){const n=i.get(e);if(n){const[u,o]=n,c=a-o,l=this.update(t,e,s.row,c);l&&r.push(l),i.delete(e)}else{const e=this.insert(t,s,a);e&&r.push(e)}}for(const[e,n]of i.values()){const i=this.delete(t,e,n);i&&r.push(i)}}else for(const n of e)if("insert"===n.type){const e=this.insert(t,n);e&&r.push(e)}else{const e=this.delete(t,n);e&&r.push(e)}return r};update=(e,t,r,n=0)=>{const i=this.rows.get(t);if(!i)return void ur("error",`Updating a row that was not present in the cache. Table: ${this.tableDef.sourceName}, RowId: ${t}`);const[s,a]=i,u=Math.max(1,a+n);if(!(a+n<=0))return this.rows.set(t,[r,u]),0===a?(ur("error",`Updating a row id in table ${this.tableDef.sourceName} which was not present in the cache (rowId: ${t})`),{type:"insert",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("insert",e,r)}}):{type:"update",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("update",e,s,r)}};ur("error",`Negative reference count for in table ${this.tableDef.sourceName} row ${t} (${a} + ${n})`)};insert=(e,t,r=1)=>{const[n,i]=this.rows.get(t.rowId)||[t.row,0];if(this.rows.set(t.rowId,[t.row,i+r]),0===i)return{type:"insert",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("insert",e,t.row)}}};delete=(e,t,r=1)=>{const[n,i]=this.rows.get(t.rowId)||[t.row,0];if(0!==i)return i<=r?(this.rows.delete(t.rowId),{type:"delete",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("delete",e,t.row)}}):void this.rows.set(t.rowId,[t.row,i-r]);ur("warn","Deleting a row that was not present in the cache")};onInsert=e=>{this.emitter.on("insert",e)};onDelete=e=>{this.emitter.on("delete",e)};onUpdate=e=>{this.emitter.on("update",e)};removeOnInsert=e=>{this.emitter.off("insert",e)};removeOnDelete=e=>{this.emitter.off("delete",e)};removeOnUpdate=e=>{this.emitter.off("update",e)}},lr=class{map=new Map;get(e){return this.map.get(e)}set(e,t){return this.map.set(e,t),this}has(e){return this.map.has(e)}delete(e){return this.map.delete(e)}keys(){return this.map.keys()}values(){return this.map.values()}entries(){return this.map.entries()}[Symbol.iterator](){return this.entries()}},dr=class{tables=new lr;getTable(e){const t=this.tables.get(e);if(!t)throw console.error("The table has not been registered for this client. Please register the table before using it. If you have registered global tables using the SpacetimeDBClient.registerTables() or `registerTable()` method, please make sure that is executed first!"),new Error(`Table ${String(e)} does not exist`);return t}getOrCreateTable(e){const t=e.accessorName,r=this.tables.get(t);if(r)return r;const n=new cr(e);return this.tables.set(t,n),n}};var hr=class e{major;minor;patch;preRelease;buildInfo;constructor(e,t,r,n=null,i=null){this.major=e,this.minor=t,this.patch=r,this.preRelease=n,this.buildInfo=i}toString(){let e=`${this.major}.${this.minor}.${this.patch}`;return this.preRelease&&(e+=`-${this.preRelease.join(".")}`),this.buildInfo&&(e+=`+${this.buildInfo}`),e}compare(e){return this.major!==e.major?this.major-e.major:this.minor!==e.minor?this.minor-e.minor:this.patch!==e.patch?this.patch-e.patch:this.preRelease&&e.preRelease?function(e,t){const r=Math.min(e.length,t.length);for(let n=0;n<r;n++){const r=e[n],i=t[n];if(r!==i)return"number"==typeof r&&"number"==typeof i?r-i:"string"==typeof r&&"string"==typeof i?r.localeCompare(i):"string"==typeof r?1:-1}return e.length-t.length}(this.preRelease,e.preRelease):this.preRelease||e.preRelease?-1:0}clone(){return new e(this.major,this.minor,this.patch,this.preRelease?[...this.preRelease]:null,this.buildInfo)}static parseVersionString(t){const r=t.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?(?:\+([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?$/);if(!r)throw new Error(`Invalid version string: ${t}`);const n=parseInt(r[1],10),i=parseInt(r[2],10),s=parseInt(r[3],10),a=r[4]?r[4].split(".").map(e=>isNaN(Number(e))?e:Number(e)):null,u=r[5]||null;return new e(n,i,s,a,u)}},mr=new hr(1,4,0);function pr(e){return`Module code was generated with an incompatible version of the spacetimedb cli (${e}). Update the cli version to at least ${mr.toString()} and regenerate the bindings. You can upgrade to the latest cli version by running: spacetime version upgrade`}var fr=class e{onclose;onopen;onmessage;onerror;#n;async#i(e){const t=new Uint8Array(e.data);let r;if(0===t[0])r=t.slice(1);else{if(1===t[0])throw new Error("Brotli Compression not supported. Please use gzip or none compression in withCompression method on DbConnection.");if(2!==t[0])throw new Error("Unexpected Compression Algorithm. Please use `gzip` or `none`");r=await async function(e,t,r=131072){let n=0;const i=new ReadableStream({pull(t){if(n<e.length){const i=e.subarray(n,Math.min(n+r,e.length));t.enqueue(i),n+=r}else t.close()}}),s=new DecompressionStream(t),a=i.pipeThrough(s).getReader(),u=[];let o,c=0;for(;!(o=await a.read()).done;)u.push(o.value),c+=o.value.length;const l=new Uint8Array(c);let d=0;for(const e of u)l.set(e,d),d+=e.length;return l}(t.slice(1),"gzip")}this.onmessage?.({data:r})}#s(e){this.onopen?.(e)}#a(e){this.onerror?.(e)}#u(e){this.onclose?.(e)}send(e){this.#n.send(e)}close(){this.#n.close()}constructor(e){this.onmessage=void 0,this.onopen=void 0,this.onmessage=void 0,this.onerror=void 0,e.onmessage=this.#i.bind(this),e.onerror=this.#a.bind(this),e.onclose=this.#u.bind(this),e.onopen=this.#s.bind(this),e.binaryType="arraybuffer",this.#n=e}static async createWebSocketFn({url:t,nameOrAddress:r,wsProtocol:n,authToken:i,compression:s,lightMode:a,confirmedReads:u}){const o=new Headers,c=await async function(){if(void 0!==globalThis.WebSocket)return globalThis.WebSocket;const e=new Function("m","return import(m)");try{const{WebSocket:t}=await e("undici");return t}catch(e){throw ur("warn","[spacetimedb-sdk] No global WebSocket found. On Node 18â21, please install `undici` (npm install undici) to enable WebSocket support."),e}}();let l;if(i){o.set("Authorization",`Bearer ${i}`);const e=new URL("v1/identity/websocket-token",t);e.protocol="wss:"===t.protocol?"https:":"http:";const r=await fetch(e,{method:"POST",headers:o});if(!r.ok)return Promise.reject(new Error(`Failed to verify token: ${r.statusText}`));{const{token:e}=await r.json();l=e}}const d=new URL(`v1/database/${r}/subscribe`,t);l&&d.searchParams.set("token",l),d.searchParams.set("compression","gzip"===s?"Gzip":"None"),a&&d.searchParams.set("light","true"),void 0!==u&&d.searchParams.set("confirmed",u.toString());const h=new c(d.toString(),n);return new e(h)}},yr=class{constructor(e,t){this.remoteModule=e,this.dbConnectionCtor=t,this.#o=fr.createWebSocketFn}#c;#l;#d;#h;#m=new Zt;#p="gzip";#f=!1;#y;#o;withUri(e){return this.#c=new URL(e),this}withDatabaseName(e){return this.#l=e,this}withToken(e){return this.#h=e,this}withWSFn(e){return this.#o=e,this}withCompression(e){return this.#p=e,this}withLightMode(e){return this.#f=e,this}withConfirmedReads(e){return this.#y=e,this}onConnect(e){return this.#m.on("connect",e),this}onConnectError(e){return this.#m.on("connectError",e),this}onDisconnect(e){return this.#m.on("disconnect",e),this}getUri(){return this.#c?.toString()??""}getModuleName(){return this.#l??""}build(){if(!this.#c)throw new Error("URI is required to connect to SpacetimeDB");if(!this.#l)throw new Error("Database name or address is required to connect to SpacetimeDB");return function(e){if(void 0===e)throw new Error(pr(e));if(hr.parseVersionString(e).compare(mr)<0)throw new Error(pr(e))}(this.remoteModule.versionInfo?.cliVersion),this.dbConnectionCtor({uri:this.#c,nameOrAddress:this.#l,identity:this.#d,token:this.#h,emitter:this.#m,compression:this.#p,lightMode:this.#f,confirmedReads:this.#y,createWSFn:this.#o,remoteModule:this.remoteModule})}},gr=Symbol("INTERNAL_REMOTE_MODULE"),wr=class{constructor(e){this.db=e}#g=void 0;#w=void 0;onApplied(e){return this.#g=e,this}onError(e){return this.#w=e,this}subscribe(e){let t;if("function"==typeof e){const r=this.db.getTablesMap?.(),n=e(r);t=Array.isArray(n)?n:[n]}else t=Array.isArray(e)?e:[e];if(0===t.length)throw new Error("Subscriptions must have at least one query");const r=t.map(e=>{if("string"==typeof e)return e;if((t=e)&&"object"==typeof t&&W in t)return function(e){return e.toSql()}(e);var t;throw new Error("Subscriptions must be SQL strings or typed queries")});return new vr(this.db,r,this.#g,this.#w)}subscribeToAllTables(){const e=this.db[gr](),t=Object.values(e.tables).map(e=>`SELECT * FROM ${e.sourceName}`);this.subscribe(t)}},br=class{subscriptions=new Map},vr=class{constructor(e,t,r,n){this.db=e,this.#m.on("applied",e=>{this.#b=!0,r&&r(e)}),this.#m.on("error",(e,t)=>{this.#b=!1,this.#v=!0,n&&n(e,t)}),this.#I=this.db.registerSubscription(this,this.#m,t)}#I;#T=!1;#v=!1;#b=!1;#m=new Zt;unsubscribe(){if(this.#T)throw new Error("Unsubscribe has already been called");this.#T=!0,this.db.unregisterSubscription(this.#I),this.#m.on("end",e=>{this.#v=!0,this.#b=!1})}unsubscribeThen(e){if(this.#v)throw new Error("Subscription has already ended");if(this.#T)throw new Error("Unsubscribe has already been called");this.#T=!0,this.db.unregisterSubscription(this.#I),this.#m.on("end",t=>{this.#v=!0,this.#b=!1,e(t)})}isEnded(){return this.#v}isActive(){return this.#b}},Ir=class{isActive=!1;identity=void 0;token=void 0;[gr](){return this.#_}db;reducers;procedures;connectionId=V.random();#x=0;#B=0;#U=0;#m;#S=Promise.resolve();#M=[];#R=new br;#_;#A=new Map;#q=new Map;#N=new Map;#D;#j;#O;#k;clientCache;ws;wsPromise;constructor({uri:e,nameOrAddress:t,identity:r,token:n,emitter:i,remoteModule:s,createWSFn:a,compression:u,lightMode:o,confirmedReads:c}){ur("info","Connecting to SpacetimeDB WS...");const l=new URL(e.toString());/^wss?:/.test(e.protocol)||(l.protocol="https:"===l.protocol?"wss:":"ws:"),this.identity=r,this.token=n,this.#_=s,this.#m=i,this.#D=Object.create(null),this.#k=Object.create(null);for(const e of Object.values(s.tables))this.#D[e.sourceName]=E.makeDeserializer(e.rowType),this.#k[e.sourceName]=e;this.#j=Object.create(null);for(const e of s.reducers)this.#j[e.name]={serialize:E.makeSerializer(e.paramsType),deserialize:E.makeDeserializer(e.paramsType)};this.#O=Object.create(null);for(const e of s.procedures)this.#O[e.name]={serializeArgs:E.makeSerializer(new Se(e.params).algebraicType.value),deserializeReturn:x.makeDeserializer(e.returnType.algebraicType)};const d=this.connectionId.toHexString();l.searchParams.set("connection_id",d),this.clientCache=new dr,this.db=this.#E(),this.reducers=this.#C(s),this.procedures=this.#V(s),this.wsPromise=a({url:l,nameOrAddress:t,wsProtocol:"v2.bsatn.spacetimedb",authToken:n,compression:u,lightMode:o,confirmedReads:c}).then(e=>(this.ws=e,this.ws.onclose=()=>{this.#m.emit("disconnect",this),this.isActive=!1},this.ws.onerror=e=>{this.#m.emit("connectError",this,e),this.isActive=!1},this.ws.onopen=this.#s.bind(this),this.ws.onmessage=this.#i.bind(this),e)).catch(e=>{ur("error","Error connecting to SpacetimeDB WS"),this.#m.emit("connectError",this,e)})}#P=()=>{const e=this.#x;return this.#x+=1,e};#F=()=>this.#B++;#E(){const e=Object.create(null);for(const t of Object.values(this.#k)){const r=t.accessorName;Object.defineProperty(e,r,{enumerable:!0,configurable:!1,get:()=>this.clientCache.getOrCreateTable(t)})}return e}#C(e){const t={};for(const r of e.reducers){const e=r.name,n=r.accessorName,{serialize:i}=this.#j[e];t[n]=t=>{const r=new o(1024);i(r,t);const n=r.getBuffer();return this.callReducer(e,n,t)}}return t}#V(e){const t={};for(const r of e.procedures){const e=r.name,n=r.accessorName,{serializeArgs:i,deserializeReturn:a}=this.#O[e];t[n]=t=>{const r=new o(1024);i(r,t);const n=r.getBuffer();return this.callProcedure(e,n).then(e=>a(new s(e)))}}return t}#$(e){return{db:this.db,reducers:this.reducers,isActive:this.isActive,subscriptionBuilder:this.subscriptionBuilder.bind(this),disconnect:this.disconnect.bind(this),event:e}}subscriptionBuilder=()=>new wr(this);getTablesMap(){return function(e){const t=Object.create(null);for(const r of Object.values(e.tables)){const e=J(r);t[r.accessorName]=e}return Object.freeze(t)}({tables:this.#_.tables})}registerSubscription(e,t,r){const n=this.#P();this.#R.subscriptions.set(n,{handle:e,emitter:t});const i=this.#F();return this.#z(_t.Subscribe({queryStrings:r,querySetId:{id:n},requestId:i})),n}unregisterSubscription(e){const t=this.#F();this.#z(_t.Unsubscribe({querySetId:{id:e},requestId:t,flags:Wt.SendDroppedRows}))}#K(t,r,n){const i=n.rowsData,a=new s(i),u=[],o=this.#D[r],c=this.#k[r],l=Object.entries(c.columns).find(e=>e[1].columnMetadata.isPrimaryKey);let d=0;for(;a.remaining>0;){const r=o(a);let n;if(void 0!==l){const e=l[0],t=l[1].typeBuilder.algebraicType;n=x.intoMapKey(t,r[e])}else{const t=i.subarray(d,a.offset);n=e(t)}d=a.offset,u.push({type:t,rowId:n,row:r})}return u}#L(e){const t=new Map;for(const r of e){const e=t.get(r.tableName);if(e)for(const t of r.operations)e.push(t);else t.set(r.tableName,r.operations.slice())}return Array.from(t,([e,t])=>({tableName:e,operations:t}))}#H(e,t){const r=[];for(const n of e.tables)r.push({tableName:n.table,operations:this.#K(t,n.table,n.rows)});return this.#L(r)}#Q(e,t){if("PersistentTable"===t.tag){const r=this.#K("insert",e,t.value.inserts),n=this.#K("delete",e,t.value.deletes);return r.concat(n)}return"EventTable"===t.tag?this.#K("insert",e,t.value.events):[]}#W(e){const t=[];for(const r of e.tables){let e=[];for(const t of r.rows)e=e.concat(this.#Q(r.tableName,t));t.push({tableName:r.tableName,operations:e})}return this.#L(t)}#Z(e,t){ur("trace",()=>`Sending message to server: ${ar(t)}`);const r=new o(1024);_t.serialize(r,t);const n=r.getBuffer();e.send(n)}#G(e){if(!this.isActive||0===this.#M.length)return;const t=this.#M.splice(0);for(const r of t)this.#Z(e,r)}#z(e){this.wsPromise.then(t=>{t&&this.isActive?(this.#G(t),this.#Z(t,e)):this.#M.push(e)})}#X(){return this.#U+=1,`${this.connectionId.toHexString()}:${this.#U}`}#s(){this.isActive=!0,this.ws&&this.#G(this.ws)}#J(e,t){const r=[];for(const n of e){const e=n.tableName,i=this.#k[e],s=this.clientCache.getOrCreateTable(i).applyOperations(n.operations,t);for(const e of s)r.push(e)}return r}#Y(e,t){const r=[];for(const e of t.querySets){const t=this.#W(e);for(const e of t)r.push(e)}return this.#J(this.#L(r),e)}async#ee(e){const t=Ct.deserialize(new s(e));switch(ur("trace",()=>`Processing server message: ${ar(t)}`),t.tag){case"InitialConnection":this.identity=t.value.identity,!this.token&&t.value.token&&(this.token=t.value.token),this.connectionId=t.value.connectionId,this.#m.emit("connect",this,this.identity,this.token);break;case"SubscribeApplied":{const e=t.value.querySetId.id,r=this.#R.subscriptions.get(e);if(!r)return void ur("error",`Received SubscribeApplied for unknown querySetId ${e}.`);const n={id:this.#X(),tag:"SubscribeApplied"},i=this.#$(n),s=this.#H(t.value.rows,"insert"),a=this.#J(s,i),{event:u,...o}=i;r.emitter.emit("applied",o),ur("trace",()=>`Calling ${a.length} triggered row callbacks`);for(const e of a)e.cb();break}case"UnsubscribeApplied":{const e=t.value.querySetId.id,r=this.#R.subscriptions.get(e);if(!r)return void ur("error",`Received UnsubscribeApplied for unknown querySetId ${e}.`);const n={id:this.#X(),tag:"UnsubscribeApplied"},i=this.#$(n),s=t.value.rows?this.#H(t.value.rows,"delete"):[],a=this.#J(s,i),{event:u,...o}=i;r.emitter.emit("end",o),this.#R.subscriptions.delete(e),ur("trace",()=>`Calling ${a.length} triggered row callbacks`);for(const e of a)e.cb();break}case"SubscriptionError":{const e=t.value.querySetId.id,r=t.value.requestId,n=Error(t.value.error),i={id:this.#X(),tag:"Error",value:n},s={...this.#$(i),event:n};if(null==r){ur("error",`Disconnecting due to error for a previously applied subscription: ${t.value.error}`),this.disconnect();break}const a=this.#R.subscriptions.get(e);a?(a.emitter.emit("error",s,n),this.#R.subscriptions.delete(e)):ur("error",`Received SubscriptionError for unknown querySetId ${e}:`,n);break}case"TransactionUpdate":{const e={id:this.#X(),tag:"Transaction"},r=this.#$(e),n=this.#Y(r,t.value);ur("trace",()=>`Calling ${n.length} triggered row callbacks`);for(const e of n)e.cb();break}case"ReducerResult":{const{requestId:e,result:r}=t.value;if("Ok"===r.tag){const n=this.#q.get(e),i=this.#X(),s=n?{id:i,tag:"Reducer",value:{timestamp:t.value.timestamp,outcome:r,reducer:{name:n.name,args:n.args}}}:{id:i,tag:"Transaction"},a=this.#$(s),u=this.#Y(a,r.value.transactionUpdate);ur("trace",()=>`Calling ${u.length} triggered row callbacks`);for(const e of u)e.cb()}this.#q.delete(e);const n=this.#A.get(e);this.#A.delete(e),n?.(r);break}case"ProcedureResult":{const{status:e,requestId:r}=t.value,n="Returned"===e.tag?{tag:"Ok",value:e.value}:{tag:"Err",value:e.value},i=this.#N.get(r);this.#N.delete(r),i?.(n);break}case"OneOffQueryResult":ur("warn","Received OneOffQueryResult but SDK does not expose one-off query APIs yet.")}}#i(e){this.#S=this.#S.then(()=>this.#ee(e.data))}callReducer(e,t,r){const{promise:n,resolve:i,reject:a}=Promise.withResolvers(),u=this.#F(),o=_t.CallReducer({reducer:e,args:t,requestId:u,flags:0});return this.#z(o),r&&this.#q.set(u,{name:e,args:r}),this.#A.set(u,e=>{if("Ok"===e.tag||"OkEmpty"===e.tag)i();else if("Err"===e.tag){const t=new s(e.value).readString();a(new P(t))}else"InternalError"===e.tag?a(new F(e.value)):a(new Error("Unexpected reducer result"))}),n}callReducerWithParams(e,t,r){const n=new o(1024);this.#j[e].serialize(n,r);const i=n.getBuffer();return this.callReducer(e,i,r)}callProcedure(e,t){const{promise:r,resolve:n,reject:i}=Promise.withResolvers(),s=this.#F(),a=_t.CallProcedure({procedure:e,args:t,requestId:s,flags:0});return this.#z(a),this.#N.set(s,e=>{"Ok"===e.tag?n(e.value):i(e.value)}),r}callProcedureWithParams(e,t,r,n){const i=new o(1024),{serializeArgs:a,deserializeReturn:u}=this.#O[e];a(i,r);const c=i.getBuffer();return this.callProcedure(e,c).then(e=>u(new s(e)))}disconnect(){this.wsPromise.then(e=>{e&&e.close()})}on(e,t){this.#m.on(e,t)}off(e,t){this.#m.off(e,t)}onConnect(e){this.#m.on("connect",e)}onDisconnect(e){this.#m.on("disconnect",e)}onConnectError(e){this.#m.on("connectError",e)}removeOnConnect(e){this.#m.off("connect",e)}removeOnDisconnect(e){this.#m.off("disconnect",e)}removeOnConnectError(e){this.#m.off("connectError",e)}};function Tr(e,t,r){const n=e=>t.rowType.algebraicType.value.elements[e].name;return{sourceName:e,accessorName:e,columns:t.rowType.row,rowType:t.rowSpacetimeType,constraints:r.constraints.map(e=>({name:e.sourceName,constraint:"unique",columns:e.data.value.columns.map(n)})),indexes:r.indexes.map(e=>{const t="Direct"===e.algorithm.tag?[e.algorithm.value]:e.algorithm.value;return{name:e.accessorName,unique:r.constraints.some(e=>e.data.value.columns.every(e=>t.includes(e))),algorithm:e.algorithm.tag.toLowerCase(),columns:t.map(n)}}),tableDef:r,...r.isEvent?{isEvent:!0}:{}}}var _r=class{#te=new Map;#re={typespace:{types:[]},tables:[],reducers:[],types:[],rowLevelSecurity:[],schedules:[],procedures:[],views:[],lifeCycleReducers:[],caseConversionPolicy:{tag:"SnakeCase"},explicitNames:{entries:[]}};get moduleDef(){return this.#re}rawModuleDefV10(){const e=[],t=t=>{t&&e.push(t)},r=this.#re;return t(r.typespace&&{tag:"Typespace",value:r.typespace}),t(r.types&&{tag:"Types",value:r.types}),t(r.tables&&{tag:"Tables",value:r.tables}),t(r.reducers&&{tag:"Reducers",value:r.reducers}),t(r.procedures&&{tag:"Procedures",value:r.procedures}),t(r.views&&{tag:"Views",value:r.views}),t(r.schedules&&{tag:"Schedules",value:r.schedules}),t(r.lifeCycleReducers&&{tag:"LifeCycleReducers",value:r.lifeCycleReducers}),t(r.rowLevelSecurity&&{tag:"RowLevelSecurity",value:r.rowLevelSecurity}),t(r.explicitNames&&{tag:"ExplicitNames",value:r.explicitNames}),t(r.caseConversionPolicy&&{tag:"CaseConversionPolicy",value:r.caseConversionPolicy}),{sections:e}}setCaseConversionPolicy(e){this.#re.caseConversionPolicy=e}get typespace(){return this.#re.typespace}resolveType(e){let t=e.algebraicType;for(;"Ref"===t.tag;)t=this.typespace.types[t.value];return t}registerTypesRecursively(e){return e instanceof Se&&!function(e){return null==e.typeName&&0===e.algebraicType.value.elements.length}(e)||e instanceof Ne||e instanceof Ae?this.#ne(e):e instanceof Ue?new Ue(this.registerTypesRecursively(e.value)):e instanceof Me?new Me(this.registerTypesRecursively(e.ok),this.registerTypesRecursively(e.err)):e instanceof xe?new xe(this.registerTypesRecursively(e.element)):e}#ne(e){const t=e.algebraicType,r=e.typeName;if(void 0===r)throw new Error(`Missing type name for ${e.constructor.name??"TypeBuilder"} ${JSON.stringify(e)}`);let n=this.#te.get(t);if(null!=n)return n;const i=e instanceof Ae||e instanceof Se?{tag:"Product",value:{elements:[]}}:{tag:"Sum",value:{variants:[]}};if(n=new wt(this.#re.typespace.types.length),this.#re.typespace.types.push(i),this.#te.set(t,n),e instanceof Ae)for(const[t,r]of Object.entries(e.row))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r.typeBuilder).algebraicType});else if(e instanceof Se)for(const[t,r]of Object.entries(e.elements))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});else if(e instanceof Ne)for(const[t,r]of Object.entries(e.variants))i.value.variants.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});return this.#re.types.push({sourceName:xr(r),ty:n.ref,customOrdering:!0}),n}};function xr(e){const t=e.split(".");return{sourceName:t.pop(),scope:t}}var Br=class{constructor(e){this.schemaType=e}};function Ur(e){const t=new _r;return new Br(function(e,t){return{tables:Object.fromEntries(Object.entries(t).map(([t,r])=>[t,Tr(t,r,r.tableDef(e,t))]))}}(t,e))}function Sr(e){return Object.fromEntries(e.map(e=>[e.accessorName,e]))}var Mr=bt.enum("AlgebraicType",{Ref:bt.u32(),get Sum(){return Mn},get Product(){return Fr},get Array(){return Mr},String:bt.unit(),Bool:bt.unit(),I8:bt.unit(),U8:bt.unit(),I16:bt.unit(),U16:bt.unit(),I32:bt.unit(),U32:bt.unit(),I64:bt.unit(),U64:bt.unit(),I128:bt.unit(),U128:bt.unit(),I256:bt.unit(),U256:bt.unit(),F32:bt.unit(),F64:bt.unit()}),Rr=bt.enum("CaseConversionPolicy",{None:bt.unit(),SnakeCase:bt.unit()}),Ar=bt.enum("ExplicitNameEntry",{get Table(){return Pr},get Function(){return Pr},get Index(){return Pr}}),qr=bt.object("ExplicitNames",{get entries(){return bt.array(Ar)}}),Nr=bt.enum("FunctionVisibility",{Private:bt.unit(),ClientCallable:bt.unit()}),Dr=bt.object("HttpHeaderPair",{name:bt.string(),value:bt.byteArray()}),jr=bt.object("HttpHeaders",{get entries(){return bt.array(Dr)}}),Or=bt.enum("HttpMethod",{Get:bt.unit(),Head:bt.unit(),Post:bt.unit(),Put:bt.unit(),Delete:bt.unit(),Connect:bt.unit(),Options:bt.unit(),Trace:bt.unit(),Patch:bt.unit(),Extension:bt.string()});bt.object("HttpRequest",{get method(){return Or},get headers(){return jr},timeout:bt.option(bt.timeDuration()),uri:bt.string(),get version(){return kr}}),bt.object("HttpResponse",{get headers(){return jr},get version(){return kr},code:bt.u16()});var kr=bt.enum("HttpVersion",{Http09:bt.unit(),Http10:bt.unit(),Http11:bt.unit(),Http2:bt.unit(),Http3:bt.unit()}),Er=bt.enum("IndexType",{BTree:bt.unit(),Hash:bt.unit()}),Cr=bt.enum("Lifecycle",{Init:bt.unit(),OnConnect:bt.unit(),OnDisconnect:bt.unit()}),Vr=bt.enum("MiscModuleExport",{get TypeAlias(){return Dn}}),Pr=bt.object("NameMapping",{sourceName:bt.string(),canonicalName:bt.string()}),Fr=bt.object("ProductType",{get elements(){return bt.array($r)}}),$r=bt.object("ProductTypeElement",{name:bt.option(bt.string()),get algebraicType(){return Mr}}),zr=bt.object("RawColumnDefV8",{colName:bt.string(),get colType(){return Mr}}),Kr=bt.object("RawColumnDefaultValueV10",{colId:bt.u16(),value:bt.byteArray()}),Lr=bt.object("RawColumnDefaultValueV9",{table:bt.string(),colId:bt.u16(),value:bt.byteArray()}),Hr=bt.enum("RawConstraintDataV9",{get Unique(){return xn}}),Qr=bt.object("RawConstraintDefV10",{sourceName:bt.option(bt.string()),get data(){return Hr}}),Wr=bt.object("RawConstraintDefV8",{constraintName:bt.string(),constraints:bt.u8(),columns:bt.array(bt.u16())}),Zr=bt.object("RawConstraintDefV9",{name:bt.option(bt.string()),get data(){return Hr}}),Gr=bt.enum("RawIndexAlgorithm",{BTree:bt.array(bt.u16()),Hash:bt.array(bt.u16()),Direct:bt.u16()}),Xr=bt.object("RawIndexDefV10",{sourceName:bt.option(bt.string()),accessorName:bt.option(bt.string()),get algorithm(){return Gr}}),Jr=bt.object("RawIndexDefV8",{indexName:bt.string(),isUnique:bt.bool(),get indexType(){return Er},columns:bt.array(bt.u16())}),Yr=bt.object("RawIndexDefV9",{name:bt.option(bt.string()),accessorName:bt.option(bt.string()),get algorithm(){return Gr}}),en=bt.object("RawLifeCycleReducerDefV10",{get lifecycleSpec(){return Cr},functionName:bt.string()}),tn=bt.enum("RawMiscModuleExportV9",{get ColumnDefaultValue(){return Lr},get Procedure(){return on},get View(){return Un}});bt.enum("RawModuleDef",{get V8BackCompat(){return sn},get V9(){return an},get V10(){return rn}});var rn=bt.object("RawModuleDefV10",{get sections(){return bt.array(nn)}}),nn=bt.enum("RawModuleDefV10Section",{get Typespace(){return jn},get Types(){return bt.array(Tn)},get Tables(){return bt.array(bn)},get Reducers(){return bt.array(cn)},get Procedures(){return bt.array(un)},get Views(){return bt.array(Bn)},get Schedules(){return bt.array(hn)},get LifeCycleReducers(){return bt.array(en)},get RowLevelSecurity(){return bt.array(dn)},get CaseConversionPolicy(){return Rr},get ExplicitNames(){return qr}}),sn=bt.object("RawModuleDefV8",{get typespace(){return jn},get tables(){return bt.array(qn)},get reducers(){return bt.array(Sn)},get miscExports(){return bt.array(Vr)}}),an=bt.object("RawModuleDefV9",{get typespace(){return jn},get tables(){return bt.array(In)},get reducers(){return bt.array(ln)},get types(){return bt.array(_n)},get miscExports(){return bt.array(tn)},get rowLevelSecurity(){return bt.array(dn)}}),un=bt.object("RawProcedureDefV10",{sourceName:bt.string(),get params(){return Fr},get returnType(){return Mr},get visibility(){return Nr}}),on=bt.object("RawProcedureDefV9",{name:bt.string(),get params(){return Fr},get returnType(){return Mr}}),cn=bt.object("RawReducerDefV10",{sourceName:bt.string(),get params(){return Fr},get visibility(){return Nr},get okReturnType(){return Mr},get errReturnType(){return Mr}}),ln=bt.object("RawReducerDefV9",{name:bt.string(),get params(){return Fr},get lifecycle(){return bt.option(Cr)}}),dn=bt.object("RawRowLevelSecurityDefV9",{sql:bt.string()}),hn=bt.object("RawScheduleDefV10",{sourceName:bt.option(bt.string()),tableName:bt.string(),scheduleAtCol:bt.u16(),functionName:bt.string()}),mn=bt.object("RawScheduleDefV9",{name:bt.option(bt.string()),reducerName:bt.string(),scheduledAtColumn:bt.u16()}),pn=bt.object("RawScopedTypeNameV10",{scope:bt.array(bt.string()),sourceName:bt.string()}),fn=bt.object("RawScopedTypeNameV9",{scope:bt.array(bt.string()),name:bt.string()}),yn=bt.object("RawSequenceDefV10",{sourceName:bt.option(bt.string()),column:bt.u16(),start:bt.option(bt.i128()),minValue:bt.option(bt.i128()),maxValue:bt.option(bt.i128()),increment:bt.i128()}),gn=bt.object("RawSequenceDefV8",{sequenceName:bt.string(),colPos:bt.u16(),increment:bt.i128(),start:bt.option(bt.i128()),minValue:bt.option(bt.i128()),maxValue:bt.option(bt.i128()),allocated:bt.i128()}),wn=bt.object("RawSequenceDefV9",{name:bt.option(bt.string()),column:bt.u16(),start:bt.option(bt.i128()),minValue:bt.option(bt.i128()),maxValue:bt.option(bt.i128()),increment:bt.i128()}),bn=bt.object("RawTableDefV10",{sourceName:bt.string(),productTypeRef:bt.u32(),primaryKey:bt.array(bt.u16()),get indexes(){return bt.array(Xr)},get constraints(){return bt.array(Qr)},get sequences(){return bt.array(yn)},get tableType(){return Nn},get tableAccess(){return An},get defaultValues(){return bt.array(Kr)},isEvent:bt.bool()}),vn=bt.object("RawTableDefV8",{tableName:bt.string(),get columns(){return bt.array(zr)},get indexes(){return bt.array(Jr)},get constraints(){return bt.array(Wr)},get sequences(){return bt.array(gn)},tableType:bt.string(),tableAccess:bt.string(),scheduled:bt.option(bt.string())}),In=bt.object("RawTableDefV9",{name:bt.string(),productTypeRef:bt.u32(),primaryKey:bt.array(bt.u16()),get indexes(){return bt.array(Yr)},get constraints(){return bt.array(Zr)},get sequences(){return bt.array(wn)},get schedule(){return bt.option(mn)},get tableType(){return Nn},get tableAccess(){return An}}),Tn=bt.object("RawTypeDefV10",{get sourceName(){return pn},ty:bt.u32(),customOrdering:bt.bool()}),_n=bt.object("RawTypeDefV9",{get name(){return fn},ty:bt.u32(),customOrdering:bt.bool()}),xn=bt.object("RawUniqueConstraintDataV9",{columns:bt.array(bt.u16())}),Bn=bt.object("RawViewDefV10",{sourceName:bt.string(),index:bt.u32(),isPublic:bt.bool(),isAnonymous:bt.bool(),get params(){return Fr},get returnType(){return Mr}}),Un=bt.object("RawViewDefV9",{name:bt.string(),index:bt.u32(),isPublic:bt.bool(),isAnonymous:bt.bool(),get params(){return Fr},get returnType(){return Mr}}),Sn=bt.object("ReducerDef",{name:bt.string(),get args(){return bt.array($r)}}),Mn=bt.object("SumType",{get variants(){return bt.array(Rn)}}),Rn=bt.object("SumTypeVariant",{name:bt.option(bt.string()),get algebraicType(){return Mr}}),An=bt.enum("TableAccess",{Public:bt.unit(),Private:bt.unit()}),qn=bt.object("TableDesc",{get schema(){return vn},data:bt.u32()}),Nn=bt.enum("TableType",{System:bt.unit(),User:bt.unit()}),Dn=bt.object("TypeAlias",{name:bt.string(),ty:bt.u32()}),jn=bt.object("Typespace",{get types(){return bt.array(Mr)}});function On(e,t,...r){const{name:n,public:i=!1,indexes:s=[],scheduled:a,event:u=!1}=e,c=new Map,l=[];t instanceof Ae||(t=new Ae(t)),t.algebraicType.value.elements.forEach((e,t)=>{c.set(e.name,t),l.push(e.name)});const d=[],h=[],m=[],p=[];let f;const y=[];for(const[e,r]of Object.entries(t.row)){const t=r.columnMetadata;t.isPrimaryKey&&d.push(c.get(e));const n=t.isUnique||t.isPrimaryKey;if(t.indexType||n){const r=t.indexType??"btree",n=c.get(e);let i;switch(r){case"btree":i=Gr.BTree([n]);break;case"hash":i=Gr.Hash([n]);break;case"direct":i=Gr.Direct(n)}h.push({sourceName:void 0,accessorName:e,algorithm:i})}if(n&&m.push({sourceName:void 0,data:{tag:"Unique",value:{columns:[c.get(e)]}}}),t.isAutoIncrement&&p.push({sourceName:void 0,start:void 0,minValue:void 0,maxValue:void 0,column:c.get(e),increment:1n}),t.defaultValue){const n=new o(16);r.serialize(n,t.defaultValue),y.push({colId:c.get(e),value:n.getBuffer()})}if(a){const t=r.typeBuilder.algebraicType;L.isScheduleAt(t)&&(f=c.get(e))}}for(const e of s??[]){let t;switch(e.algorithm){case"btree":t={tag:"BTree",value:e.columns.map(e=>c.get(e))};break;case"hash":t={tag:"Hash",value:e.columns.map(e=>c.get(e))};break;case"direct":t={tag:"Direct",value:c.get(e.column)}}h.push({sourceName:void 0,accessorName:e.accessor,algorithm:t,canonicalName:e.name})}for(const t of e.constraints??[])if("unique"===t.constraint){const e={tag:"Unique",value:{columns:t.columns.map(e=>c.get(e))}};m.push({sourceName:t.name,data:e});continue}const g=t.algebraicType.value;return{rowType:t,tableName:n,rowSpacetimeType:g,tableDef:(e,r)=>{const s=n??r;void 0===t.typeName&&(t.typeName=function(e){const t=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace("-","").replace("_",""));return t.charAt(0).toUpperCase()+t.slice(1)}(s));for(const t of h){const n=("Direct"===t.algorithm.tag?[t.algorithm.value]:t.algorithm.value).map(e=>l[e]).join("_"),i=t.sourceName=`${r}_${n}_idx_${t.algorithm.tag.toLowerCase()}`,{canonicalName:s}=t;void 0!==s&&e.moduleDef.explicitNames.entries.push(Ar.Index({sourceName:i,canonicalName:s}))}return{sourceName:r,productTypeRef:e.registerTypesRecursively(t).ref,primaryKey:d,indexes:h,constraints:m,sequences:p,tableType:{tag:"User"},tableAccess:{tag:i?"Public":"Private"},defaultValues:y,isEvent:u}},idxs:{},constraints:m,schedule:a&&void 0!==f?{scheduleAtCol:f,reducer:a}:void 0}}bt.enum("ViewResultHeader",{RowData:bt.unit(),RawSql:bt.string()});var kn=class{reducersType;constructor(e){this.reducersType=function(e){const t=e.map(e=>{const t=e.params.row;return{name:e.reducerName,accessorName:e.accessorName,params:t,paramsType:e.paramsSpacetimeType}});return{reducers:t}}(e)}};function En(...e){const t=1===e.length&&Array.isArray(e[0])?e[0]:e;return new kn(t)}function Cn(e,t){const r={elements:Object.entries(t).map(([e,t])=>({name:e,algebraicType:"typeBuilder"in t?t.typeBuilder.algebraicType:t.algebraicType}))};return{reducerName:e,accessorName:w(e),params:new Ae(t),paramsSpacetimeType:r,reducerDef:{name:e,params:r,lifecycle:void 0}}}function Vn(...e){return{procedures:1===e.length&&Array.isArray(e[0])?e[0]:e}}function Pn(e,t,r){return{name:e,accessorName:w(e),params:b(t),returnType:r}}export{xe as ArrayBuilder,st as ArrayColumnBuilder,Te as BoolBuilder,nt as BoolColumnBuilder,Be as ByteArrayBuilder,at as ByteArrayColumnBuilder,dr as ClientCache,$e as ColumnBuilder,Ee as ConnectionIdBuilder,pt as ConnectionIdColumnBuilder,yr as DbConnectionBuilder,Ir as DbConnectionImpl,ve as F32Builder,tt as F32ColumnBuilder,Ie as F64Builder,rt as F64ColumnBuilder,we as I128Builder,Ye as I128ColumnBuilder,fe as I16Builder,Ge as I16ColumnBuilder,be as I256Builder,et as I256ColumnBuilder,ye as I32Builder,Xe as I32ColumnBuilder,ge as I64Builder,Je as I64ColumnBuilder,pe as I8Builder,Ze as I8ColumnBuilder,ke as IdentityBuilder,mt as IdentityColumnBuilder,F as InternalError,Ue as OptionBuilder,ut as OptionColumnBuilder,Se as ProductBuilder,ct as ProductColumnBuilder,wt as RefBuilder,Me as ResultBuilder,ot as ResultColumnBuilder,Ae as RowBuilder,Oe as ScheduleAtBuilder,ht as ScheduleAtColumnBuilder,P as SenderError,je as SimpleSumBuilder,dt as SimpleSumColumnBuilder,_e as StringBuilder,it as StringColumnBuilder,wr as SubscriptionBuilderImpl,vr as SubscriptionHandleImpl,Ne as SumBuilder,lt as SumColumnBuilder,Ve as TimeDurationBuilder,yt as TimeDurationColumnBuilder,Ce as TimestampBuilder,ft as TimestampColumnBuilder,ue as TypeBuilder,he as U128Builder,Qe as U128ColumnBuilder,ce as U16Builder,Ke as U16ColumnBuilder,me as U256Builder,We as U256ColumnBuilder,le as U32Builder,Le as U32ColumnBuilder,de as U64Builder,He as U64ColumnBuilder,oe as U8Builder,ze as U8ColumnBuilder,Pe as UuidBuilder,gt as UuidColumnBuilder,Sr as convertToAccessorMap,rr as getGlobalLogLevel,Pn as procedureSchema,Vn as procedures,Cn as reducerSchema,En as reducers,Ur as schema,tr as setGlobalLogLevel,ur as stdbLogger,ar as stringify,bt as t,On as table};//# sourceMappingURL=index.browser.mjs.map
|
|
1
|
+
import{fromByteArray as e}from"base64-js";import{stringify as t}from"safe-stable-stringify";var r=class e{__time_duration_micros__;static MICROS_PER_MILLIS=1000n;static getAlgebraicType(){return _.Product({elements:[{name:"__time_duration_micros__",algebraicType:_.I64}]})}static isTimeDuration(e){if("Product"!==e.tag)return!1;const t=e.value.elements;if(1!==t.length)return!1;const r=t[0];return"__time_duration_micros__"===r.name&&"I64"===r.algebraicType.tag}get micros(){return this.__time_duration_micros__}get millis(){return Number(this.micros/e.MICROS_PER_MILLIS)}constructor(e){this.__time_duration_micros__=e}static fromMillis(t){return new e(BigInt(t)*e.MICROS_PER_MILLIS)}toString(){const e=this.micros,t=e<0?-e:e;return`${e<0?"-":"+"}${t/1000000n}.${String(t%1000000n).padStart(6,"0")}`}},n=class e{__timestamp_micros_since_unix_epoch__;static MICROS_PER_MILLIS=1000n;get microsSinceUnixEpoch(){return this.__timestamp_micros_since_unix_epoch__}constructor(e){this.__timestamp_micros_since_unix_epoch__=e}static getAlgebraicType(){return _.Product({elements:[{name:"__timestamp_micros_since_unix_epoch__",algebraicType:_.I64}]})}static isTimestamp(e){if("Product"!==e.tag)return!1;const t=e.value.elements;if(1!==t.length)return!1;const r=t[0];return"__timestamp_micros_since_unix_epoch__"===r.name&&"I64"===r.algebraicType.tag}static UNIX_EPOCH=new e(0n);static now(){return e.fromDate(new Date)}toMillis(){return this.microsSinceUnixEpoch/1000n}static fromDate(t){const r=t.getTime(),n=BigInt(r)*e.MICROS_PER_MILLIS;return new e(n)}toDate(){const t=this.__timestamp_micros_since_unix_epoch__/e.MICROS_PER_MILLIS;if(t>BigInt(Number.MAX_SAFE_INTEGER)||t<BigInt(Number.MIN_SAFE_INTEGER))throw new RangeError("Timestamp is outside of the representable range of JS's Date");return new Date(Number(t))}toISOString(){const t=this.__timestamp_micros_since_unix_epoch__,r=t/e.MICROS_PER_MILLIS;if(r>BigInt(Number.MAX_SAFE_INTEGER)||r<BigInt(Number.MIN_SAFE_INTEGER))throw new RangeError("Timestamp is outside of the representable range for ISO string formatting");const n=new Date(Number(r)).toISOString(),i=Math.abs(Number(t%1000000n)),s=String(i).padStart(6,"0");return n.replace(/\.\d{3}Z$/,`.${s}Z`)}since(e){return new r(this.__timestamp_micros_since_unix_epoch__-e.__timestamp_micros_since_unix_epoch__)}},i=class e{__uuid__;static NIL=new e(0n);static MAX_UUID_BIGINT=0xffffffffffffffffffffffffffffffffn;static MAX=new e(e.MAX_UUID_BIGINT);constructor(t){if(t<0n||t>e.MAX_UUID_BIGINT)throw new Error("Invalid UUID: must be between 0 and `MAX_UUID_BIGINT`");this.__uuid__=t}static fromRandomBytesV4(t){if(16!==t.length)throw new Error("UUID v4 requires 16 bytes");const r=new Uint8Array(t);return r[6]=15&r[6]|64,r[8]=63&r[8]|128,new e(e.bytesToBigInt(r))}static fromCounterV7(t,r,n){if(4!==n.length)throw new Error("`fromCounterV7` requires `randomBytes.length == 4`");if(t.value<0)throw new Error("`fromCounterV7` uuid `counter` must be non-negative");if(r.__timestamp_micros_since_unix_epoch__<0)throw new Error("`fromCounterV7` `timestamp` before unix epoch");const i=t.value;t.value=i+1&2147483647;const s=0xffffffffffffn&r.toMillis(),a=new Uint8Array(16);return a[0]=Number(s>>40n&0xffn),a[1]=Number(s>>32n&0xffn),a[2]=Number(s>>24n&0xffn),a[3]=Number(s>>16n&0xffn),a[4]=Number(s>>8n&0xffn),a[5]=Number(0xffn&s),a[7]=i>>>23&255,a[9]=i>>>15&255,a[10]=i>>>7&255,a[11]=(127&i)<<1&255,a[12]|=127&n[0],a[13]=n[1],a[14]=n[2],a[15]=n[3],a[6]=15&a[6]|112,a[8]=63&a[8]|128,new e(e.bytesToBigInt(a))}static parse(t){const r=t.replace(/-/g,"");if(32!==r.length)throw new Error("Invalid hex UUID");let n=0n;for(let e=0;e<32;e+=2)n=n<<8n|BigInt(parseInt(r.slice(e,e+2),16));return new e(n)}toString(){const t=[...e.bigIntToBytes(this.__uuid__)].map(e=>e.toString(16).padStart(2,"0")).join("");return t.slice(0,8)+"-"+t.slice(8,12)+"-"+t.slice(12,16)+"-"+t.slice(16,20)+"-"+t.slice(20)}asBigInt(){return this.__uuid__}toBytes(){return e.bigIntToBytes(this.__uuid__)}static bytesToBigInt(e){let t=0n;for(const r of e)t=t<<8n|BigInt(r);return t}static bigIntToBytes(e){const t=new Uint8Array(16);for(let r=15;r>=0;r--)t[r]=Number(0xffn&e),e>>=8n;return t}getVersion(){const t=this.toBytes()[6]>>4&15;switch(t){case 4:return"V4";case 7:return"V7";default:if(this==e.NIL)return"Nil";if(this==e.MAX)return"Max";throw new Error(`Unsupported UUID version: ${t}`)}}getCounter(){const e=this.toBytes();return e[7]<<23|e[9]<<15|e[10]<<7|e[11]>>>1}compareTo(e){return this.__uuid__<e.__uuid__?-1:this.__uuid__>e.__uuid__?1:0}static getAlgebraicType(){return _.Product({elements:[{name:"__uuid__",algebraicType:_.U128}]})}},s=class{view;offset=0;constructor(e){this.view=e instanceof DataView?e:new DataView(e.buffer,e.byteOffset,e.byteLength),this.offset=0}reset(e){this.view=e,this.offset=0}get remaining(){return this.view.byteLength-this.offset}#e(e){if(this.offset+e>this.view.byteLength)throw new RangeError(`Tried to read ${e} byte(s) at relative offset ${this.offset}, but only ${this.remaining} byte(s) remain`)}readUInt8Array(){const e=this.readU32();return this.#e(e),this.readBytes(e)}readBool(){const e=this.view.getUint8(this.offset);return this.offset+=1,0!==e}readByte(){const e=this.view.getUint8(this.offset);return this.offset+=1,e}readBytes(e){const t=new Uint8Array(this.view.buffer,this.view.byteOffset+this.offset,e);return this.offset+=e,t}readI8(){const e=this.view.getInt8(this.offset);return this.offset+=1,e}readU8(){return this.readByte()}readI16(){const e=this.view.getInt16(this.offset,!0);return this.offset+=2,e}readU16(){const e=this.view.getUint16(this.offset,!0);return this.offset+=2,e}readI32(){const e=this.view.getInt32(this.offset,!0);return this.offset+=4,e}readU32(){const e=this.view.getUint32(this.offset,!0);return this.offset+=4,e}readI64(){const e=this.view.getBigInt64(this.offset,!0);return this.offset+=8,e}readU64(){const e=this.view.getBigUint64(this.offset,!0);return this.offset+=8,e}readU128(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigUint64(this.offset+8,!0);return this.offset+=16,(t<<BigInt(64))+e}readI128(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigInt64(this.offset+8,!0);return this.offset+=16,(t<<BigInt(64))+e}readU256(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigUint64(this.offset+8,!0),r=this.view.getBigUint64(this.offset+16,!0),n=this.view.getBigUint64(this.offset+24,!0);return this.offset+=32,(n<<BigInt(192))+(r<<BigInt(128))+(t<<BigInt(64))+e}readI256(){const e=this.view.getBigUint64(this.offset,!0),t=this.view.getBigUint64(this.offset+8,!0),r=this.view.getBigUint64(this.offset+16,!0),n=this.view.getBigInt64(this.offset+24,!0);return this.offset+=32,(n<<BigInt(192))+(r<<BigInt(128))+(t<<BigInt(64))+e}readF32(){const e=this.view.getFloat32(this.offset,!0);return this.offset+=4,e}readF64(){const e=this.view.getFloat64(this.offset,!0);return this.offset+=8,e}readString(){const e=this.readUInt8Array();return new TextDecoder("utf-8").decode(e)}},a=ArrayBuffer.prototype.transfer??function(e){if(void 0===e)return this.slice();if(e<=this.byteLength)return this.slice(0,e);{const t=new Uint8Array(e);return t.set(new Uint8Array(this)),t.buffer}},u=class{buffer;view;constructor(e){this.buffer="number"==typeof e?new ArrayBuffer(e):e,this.view=new DataView(this.buffer)}get capacity(){return this.buffer.byteLength}grow(e){e<=this.buffer.byteLength||(this.buffer=a.call(this.buffer,e),this.view=new DataView(this.buffer))}},o=class{buffer;offset=0;constructor(e){this.buffer="number"==typeof e?new u(e):e}reset(e){this.buffer=e,this.offset=0}expandBuffer(e){const t=this.offset+e+1;if(t<=this.buffer.capacity)return;let r=2*this.buffer.capacity;r<t&&(r=t),this.buffer.grow(r)}toBase64(){return e(this.getBuffer())}getBuffer(){return new Uint8Array(this.buffer.buffer,0,this.offset)}get view(){return this.buffer.view}writeUInt8Array(e){const t=e.length;this.expandBuffer(4+t),this.writeU32(t),new Uint8Array(this.buffer.buffer,this.offset).set(e),this.offset+=t}writeBool(e){this.expandBuffer(1),this.view.setUint8(this.offset,e?1:0),this.offset+=1}writeByte(e){this.expandBuffer(1),this.view.setUint8(this.offset,e),this.offset+=1}writeI8(e){this.expandBuffer(1),this.view.setInt8(this.offset,e),this.offset+=1}writeU8(e){this.expandBuffer(1),this.view.setUint8(this.offset,e),this.offset+=1}writeI16(e){this.expandBuffer(2),this.view.setInt16(this.offset,e,!0),this.offset+=2}writeU16(e){this.expandBuffer(2),this.view.setUint16(this.offset,e,!0),this.offset+=2}writeI32(e){this.expandBuffer(4),this.view.setInt32(this.offset,e,!0),this.offset+=4}writeU32(e){this.expandBuffer(4),this.view.setUint32(this.offset,e,!0),this.offset+=4}writeI64(e){this.expandBuffer(8),this.view.setBigInt64(this.offset,e,!0),this.offset+=8}writeU64(e){this.expandBuffer(8),this.view.setBigUint64(this.offset,e,!0),this.offset+=8}writeU128(e){this.expandBuffer(16);const t=e&BigInt("0xFFFFFFFFFFFFFFFF"),r=e>>BigInt(64);this.view.setBigUint64(this.offset,t,!0),this.view.setBigUint64(this.offset+8,r,!0),this.offset+=16}writeI128(e){this.expandBuffer(16);const t=e&BigInt("0xFFFFFFFFFFFFFFFF"),r=e>>BigInt(64);this.view.setBigInt64(this.offset,t,!0),this.view.setBigInt64(this.offset+8,r,!0),this.offset+=16}writeU256(e){this.expandBuffer(32);const t=BigInt("0xFFFFFFFFFFFFFFFF"),r=e&t,n=e>>BigInt(64)&t,i=e>>BigInt(128)&t,s=e>>BigInt(192);this.view.setBigUint64(this.offset+0,r,!0),this.view.setBigUint64(this.offset+8,n,!0),this.view.setBigUint64(this.offset+16,i,!0),this.view.setBigUint64(this.offset+24,s,!0),this.offset+=32}writeI256(e){this.expandBuffer(32);const t=BigInt("0xFFFFFFFFFFFFFFFF"),r=e&t,n=e>>BigInt(64)&t,i=e>>BigInt(128)&t,s=e>>BigInt(192);this.view.setBigUint64(this.offset+0,r,!0),this.view.setBigUint64(this.offset+8,n,!0),this.view.setBigUint64(this.offset+16,i,!0),this.view.setBigInt64(this.offset+24,s,!0),this.offset+=32}writeF32(e){this.expandBuffer(4),this.view.setFloat32(this.offset,e,!0),this.offset+=4}writeF64(e){this.expandBuffer(8),this.view.setFloat64(this.offset,e,!0),this.offset+=8}writeString(e){const t=(new TextEncoder).encode(e);this.writeUInt8Array(t)}};function c(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const r=Object.keys(e),n=Object.keys(t);if(r.length!==n.length)return!1;for(const i of r)if(!n.includes(i)||!c(e[i],t[i]))return!1;return!0}function l(e){return Array.prototype.map.call(e.reverse(),e=>("00"+e.toString(16)).slice(-2)).join("")}function d(e){e.startsWith("0x")&&(e=e.slice(2));const t=e.match(/.{1,2}/g)||[];return Uint8Array.from(t.map(e=>parseInt(e,16))).reverse()}function h(e){return function(e){if(16!=e.length)throw new Error(`Uint8Array is not 16 bytes long: ${e}`);return new s(e).readU128()}(d(e))}function m(e){return function(e){if(32!=e.length)throw new Error(`Uint8Array is not 32 bytes long: [${e}]`);return new s(e).readU256()}(d(e))}function p(e){const t=new o(16);return t.writeU128(e),t.getBuffer()}function f(e){return l(p(e))}function y(e){const t=new o(32);return t.writeU256(e),t.getBuffer()}function g(e){return l(y(e))}function w(e){const t=e.replace(/[-_]+/g,"_").replace(/_([a-zA-Z0-9])/g,(e,t)=>t.toUpperCase());return t.charAt(0).toLowerCase()+t.slice(1)}function b(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,"typeBuilder"in t?t.typeBuilder:t]))}var v=Object.hasOwn,I=class e{__identity__;constructor(e){this.__identity__="string"==typeof e?m(e):e}static getAlgebraicType(){return _.Product({elements:[{name:"__identity__",algebraicType:_.U256}]})}isEqual(e){return this.toHexString()===e.toHexString()}equals(e){return this.isEqual(e)}toHexString(){return g(this.__identity__)}toUint8Array(){return y(this.__identity__)}static fromString(t){return new e(t)}static zero(){return new e(0n)}toString(){return this.toHexString()}},T=new Map,x=new Map,_={Ref:e=>({tag:"Ref",value:e}),Sum:e=>({tag:"Sum",value:e}),Product:e=>({tag:"Product",value:e}),Array:e=>({tag:"Array",value:e}),String:{tag:"String"},Bool:{tag:"Bool"},I8:{tag:"I8"},U8:{tag:"U8"},I16:{tag:"I16"},U16:{tag:"U16"},I32:{tag:"I32"},U32:{tag:"U32"},I64:{tag:"I64"},U64:{tag:"U64"},I128:{tag:"I128"},U128:{tag:"U128"},I256:{tag:"I256"},U256:{tag:"U256"},F32:{tag:"F32"},F64:{tag:"F64"},makeSerializer(e,t){if("Ref"===e.tag){if(!t)throw new Error("cannot serialize refs without a typespace");for(;"Ref"===e.tag;)e=t.types[e.value]}switch(e.tag){case"Product":return E.makeSerializer(e.value,t);case"Sum":return C.makeSerializer(e.value,t);case"Array":if("U8"===e.value.tag)return S;{const r=_.makeSerializer(e.value,t);return(e,t)=>{e.writeU32(t.length);for(const n of t)r(e,n)}}default:return U[e.tag]}},serializeValue(e,t,r,n){_.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){if("Ref"===e.tag){if(!t)throw new Error("cannot deserialize refs without a typespace");for(;"Ref"===e.tag;)e=t.types[e.value]}switch(e.tag){case"Product":return E.makeDeserializer(e.value,t);case"Sum":return C.makeDeserializer(e.value,t);case"Array":if("U8"===e.value.tag)return R;{const r=_.makeDeserializer(e.value,t);return e=>{const t=e.readU32(),n=Array(t);for(let i=0;i<t;i++)n[i]=r(e);return n}}default:return M[e.tag]}},deserializeValue:(e,t,r)=>_.makeDeserializer(t,r)(e),intoMapKey:function(e,t){switch(e.tag){case"U8":case"U16":case"U32":case"U64":case"U128":case"U256":case"I8":case"I16":case"I32":case"I64":case"I128":case"I256":case"F32":case"F64":case"String":case"Bool":return t;case"Product":return E.intoMapKey(e.value,t);default:{const r=new o(10);return _.serializeValue(r,e,t),r.toBase64()}}}};function B(e){return Function.prototype.call.bind(e)}var U={Bool:B(o.prototype.writeBool),I8:B(o.prototype.writeI8),U8:B(o.prototype.writeU8),I16:B(o.prototype.writeI16),U16:B(o.prototype.writeU16),I32:B(o.prototype.writeI32),U32:B(o.prototype.writeU32),I64:B(o.prototype.writeI64),U64:B(o.prototype.writeU64),I128:B(o.prototype.writeI128),U128:B(o.prototype.writeU128),I256:B(o.prototype.writeI256),U256:B(o.prototype.writeU256),F32:B(o.prototype.writeF32),F64:B(o.prototype.writeF64),String:B(o.prototype.writeString)};Object.freeze(U);var S=B(o.prototype.writeUInt8Array),M={Bool:B(s.prototype.readBool),I8:B(s.prototype.readI8),U8:B(s.prototype.readU8),I16:B(s.prototype.readI16),U16:B(s.prototype.readU16),I32:B(s.prototype.readI32),U32:B(s.prototype.readU32),I64:B(s.prototype.readI64),U64:B(s.prototype.readU64),I128:B(s.prototype.readI128),U128:B(s.prototype.readU128),I256:B(s.prototype.readI256),U256:B(s.prototype.readU256),F32:B(s.prototype.readF32),F64:B(s.prototype.readF64),String:B(s.prototype.readString)};Object.freeze(M);var R=B(s.prototype.readUInt8Array),A={Bool:1,I8:1,U8:1,I16:2,U16:2,I32:4,U32:4,I64:8,U64:8,I128:16,U128:16,I256:32,U256:32,F32:4,F64:8},N=new Set(Object.keys(A)),q=e=>e.elements.every(({algebraicType:e})=>N.has(e.tag)),D={Bool:"Uint8",I8:"Int8",U8:"Uint8",I16:"Int16",U16:"Uint16",I32:"Int32",U32:"Uint32",I64:"BigInt64",U64:"BigUint64",F32:"Float32",F64:"Float64"},j={__time_duration_micros__:e=>new r(e.readI64()),__timestamp_micros_since_unix_epoch__:e=>new n(e.readI64()),__identity__:e=>new I(e.readU256()),__connection_id__:e=>new V(e.readU128()),__uuid__:e=>new i(e.readU128())};Object.freeze(j);var O=()=>({}),k=e=>{let t;switch(e.algebraicType.tag){case"String":t="''";break;case"Bool":t="false";break;case"I8":case"U8":case"I16":case"U16":case"I32":case"U32":t="0";break;case"I64":case"U64":case"I128":case"U128":case"I256":case"U256":t="0n";break;case"F32":case"F64":t="0.0";break;default:t="undefined"}return`${e.name}: ${t}`},E={makeSerializer(e,t){let r=T.get(e);if(null!=r)return r;if(q(e)){const t=(e=>e.elements.reduce((e,{algebraicType:t})=>e+A[t.tag],0))(e),n=`"use strict";\nwriter.expandBuffer(${t});\nconst view = writer.view;\n${e.elements.map(({name:e,algebraicType:{tag:t}})=>t in D?`view.set${D[t]}(writer.offset, value.${e}, ${A[t]>1?"true":""});\nwriter.offset += ${A[t]};`:`writer.write${t}(value.${e});`).join("\n")}`;return r=Function("writer","value",n),T.set(e,r),r}const n={},i='"use strict";\n'+e.elements.map(e=>`this.${e.name}(writer, value.${e.name});`).join("\n");r=Function("writer","value",i).bind(n),T.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=_.makeSerializer(i,t);return Object.freeze(n),r},serializeValue(e,t,r,n){E.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){switch(e.elements.length){case 0:return O;case 1:{const t=e.elements[0].name;if(v(j,t))return j[t]}}let r=x.get(e);if(null!=r)return r;if(q(e)){const t=`"use strict";\nconst result = { ${e.elements.map(k).join(", ")} };\nconst view = reader.view;\n${e.elements.map(({name:e,algebraicType:{tag:t}})=>t in D?`result.${e} = view.get${D[t]}(reader.offset, ${A[t]>1?"true":""});\nreader.offset += ${A[t]};`:`result.${e} = reader.read${t}();`).join("\n")}\nreturn result;`;return r=Function("reader",t),x.set(e,r),r}const n={};r=Function("reader",`"use strict";\nconst result = { ${e.elements.map(k).join(", ")} };\n${e.elements.map(({name:e})=>`result.${e} = this.${e}(reader);`).join("\n")}\nreturn result;`).bind(n),x.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=_.makeDeserializer(i,t);return Object.freeze(n),r},deserializeValue:(e,t,r)=>E.makeDeserializer(t,r)(e),intoMapKey(e,t){if(1===e.elements.length){const r=e.elements[0].name;if(v(j,r))return t[r]}const r=new o(10);return _.serializeValue(r,_.Product(e),t),r.toBase64()}},C={makeSerializer(e,t){if(2==e.variants.length&&"some"===e.variants[0].name&&"none"===e.variants[1].name){const r=_.makeSerializer(e.variants[0].algebraicType,t);return(e,t)=>{null!=t?(e.writeByte(0),r(e,t)):e.writeByte(1)}}if(2==e.variants.length&&"ok"===e.variants[0].name&&"err"===e.variants[1].name){const r=_.makeSerializer(e.variants[0].algebraicType,t),n=_.makeSerializer(e.variants[0].algebraicType,t);return(e,t)=>{if("ok"in t)e.writeU8(0),r(e,t.ok);else{if(!("err"in t))throw new TypeError("could not serialize result: object had neither a `ok` nor an `err` field");e.writeU8(1),n(e,t.err)}}}{let r=T.get(e);if(null!=r)return r;const n={},i=`switch (value.tag) {\n${e.variants.map(({name:e},t)=>` case ${JSON.stringify(e)}:\n writer.writeByte(${t});\n return this.${e}(writer, value.value);`).join("\n")}\n default:\n throw new TypeError(\n \`Could not serialize sum type; unknown tag \${value.tag}\`\n )\n}\n`;r=Function("writer","value",i).bind(n),T.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=_.makeSerializer(i,t);return Object.freeze(n),r}},serializeValue(e,t,r,n){C.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){if(2==e.variants.length&&"some"===e.variants[0].name&&"none"===e.variants[1].name){const r=_.makeDeserializer(e.variants[0].algebraicType,t);return e=>{const t=e.readU8();if(0===t)return r(e);if(1!==t)throw`Can't deserialize an option type, couldn't find ${t} tag`}}if(2==e.variants.length&&"ok"===e.variants[0].name&&"err"===e.variants[1].name){const r=_.makeDeserializer(e.variants[0].algebraicType,t),n=_.makeDeserializer(e.variants[1].algebraicType,t);return e=>{const t=e.readByte();if(0===t)return{ok:r(e)};if(1===t)return{err:n(e)};throw`Can't deserialize a result type, couldn't find ${t} tag`}}{let r=x.get(e);if(null!=r)return r;const n={};r=Function("reader",`switch (reader.readU8()) {\n${e.variants.map(({name:e},t)=>`case ${t}: return { tag: ${JSON.stringify(e)}, value: this.${e}(reader) };`).join("\n")} }`).bind(n),x.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=_.makeDeserializer(i,t);return Object.freeze(n),r}},deserializeValue:(e,t,r)=>C.makeDeserializer(t,r)(e)},V=class e{__connection_id__;constructor(e){this.__connection_id__=e}static getAlgebraicType(){return _.Product({elements:[{name:"__connection_id__",algebraicType:_.U128}]})}isZero(){return this.__connection_id__===BigInt(0)}static nullIfZero(e){return e.isZero()?null:e}static random(){function t(){return Math.floor(255*Math.random())}let r=BigInt(0);for(let e=0;e<16;e++)r=r<<BigInt(8)|BigInt(t());return new e(r)}isEqual(e){return this.__connection_id__==e.__connection_id__}equals(e){return this.isEqual(e)}toHexString(){return f(this.__connection_id__)}toUint8Array(){return p(this.__connection_id__)}static fromString(t){return new e(h(t))}static fromStringOrNull(t){const r=e.fromString(t);return r.isZero()?null:r}},P=class extends Error{constructor(e){super(e)}get name(){return"SenderError"}},F=class extends Error{constructor(e){super(e)}get name(){return"InternalError"}},$={interval:e=>z(e),time:e=>K(e),getAlgebraicType:()=>_.Sum({variants:[{name:"Interval",algebraicType:r.getAlgebraicType()},{name:"Time",algebraicType:n.getAlgebraicType()}]}),isScheduleAt(e){if("Sum"!==e.tag)return!1;const t=e.value.variants;if(2!==t.length)return!1;const i=t.find(e=>"Interval"===e.name),s=t.find(e=>"Time"===e.name);return!(!i||!s)&&(r.isTimeDuration(i.algebraicType)&&n.isTimestamp(s.algebraicType))}},z=e=>({tag:"Interval",value:new r(e)}),K=e=>({tag:"Time",value:new n(e)}),L=$,H={getAlgebraicType:e=>_.Sum({variants:[{name:"some",algebraicType:e},{name:"none",algebraicType:_.Product({elements:[]})}]})},Q={getAlgebraicType:(e,t)=>_.Sum({variants:[{name:"ok",algebraicType:e},{name:"err",algebraicType:t}]})},W=Symbol("QueryBrand");var Z=class e{constructor(e,t,r){if(this.sourceQuery=e,this.filterQuery=t,this.joinCondition=r,e.table.sourceName===t.table.sourceName)throw new Error("Cannot semijoin a table to itself")}[W]=!0;type="semijoin";build(){return this}where(t){const r=this.sourceQuery.where(t);return new e(r,this.filterQuery,this.joinCondition)}toSql(){const e=this.filterQuery,t=this.sourceQuery,r=se(e.table.sourceName),n=se(t.table.sourceName);let i=`SELECT ${n}.* FROM ${r} JOIN ${n} ON ${re(this.joinCondition)}`;const s=[];if(e.whereClause&&s.push(re(e.whereClause)),t.whereClause&&s.push(re(t.whereClause)),s.length>0){i+=` WHERE ${1===s.length?s[0]:s.map(ne).join(" AND ")}`}return i}},G=class e{constructor(e,t){this.table=e,this.whereClause=t}[W]=!0;where(t){const r=t(this.table.cols),n=this.whereClause?this.whereClause.and(r):r;return new e(this.table,n)}rightSemijoin(t,r){const n=new e(t),i=r(this.table.indexedCols,t.indexedCols);return new Z(n,this,i)}leftSemijoin(t,r){const n=new e(t),i=r(this.table.indexedCols,t.indexedCols);return new Z(this,n,i)}toSql(){return function(e,t,r=[]){const n=`SELECT * FROM ${se(e.sourceName)}`,i=[];t&&i.push(re(t));if(i.push(...r),0===i.length)return n;const s=1===i.length?i[0]:i.map(ne).join(" AND ");return`${n} WHERE ${s}`}(this.table,this.whereClause)}build(){return this}},X=class{[W]=!0;type="table";sourceName;accessorName;cols;indexedCols;tableDef;get columns(){return this.tableDef.columns}get indexes(){return this.tableDef.indexes}get rowType(){return this.tableDef.rowType}get constraints(){return this.tableDef.constraints}constructor(e){this.sourceName=e.sourceName,this.accessorName=e.accessorName,this.cols=function(e){const t={};for(const r of Object.keys(e.columns)){const n=e.columns[r],i=new Y(e.sourceName,r,n.typeBuilder.algebraicType);t[r]=Object.freeze(i)}return Object.freeze(t)}(e),this.indexedCols=this.cols,this.tableDef=e,Object.freeze(this)}asFrom(){return new G(this)}rightSemijoin(e,t){return this.asFrom().rightSemijoin(e,t)}leftSemijoin(e,t){return this.asFrom().leftSemijoin(e,t)}build(){return this.asFrom().build()}toSql(){return this.asFrom().toSql()}where(e){return this.asFrom().where(e)}};function J(e){return new X(e)}var Y=class{type="column";column;table;tsValueType;spacetimeType;constructor(e,t,r){this.table=e,this.column=t,this.spacetimeType=r}eq(e){return new te({type:"eq",left:this,right:ee(e)})}ne(e){return new te({type:"ne",left:this,right:ee(e)})}lt(e){return new te({type:"lt",left:this,right:ee(e)})}lte(e){return new te({type:"lte",left:this,right:ee(e)})}gt(e){return new te({type:"gt",left:this,right:ee(e)})}gte(e){return new te({type:"gte",left:this,right:ee(e)})}};function ee(e){return"literal"===e.type||"object"==typeof e&&null!=e&&"type"in e&&"column"===e.type?e:{type:"literal",value:e}}var te=class e{constructor(e){this.data=e}and(t){return new e({type:"and",clauses:[this.data,t.data]})}or(t){return new e({type:"or",clauses:[this.data,t.data]})}not(){return new e({type:"not",clause:this.data})}};function re(e,t){const r=e instanceof te?e.data:e;switch(r.type){case"eq":return`${ie(r.left)} = ${ie(r.right)}`;case"ne":return`${ie(r.left)} <> ${ie(r.right)}`;case"gt":return`${ie(r.left)} > ${ie(r.right)}`;case"gte":return`${ie(r.left)} >= ${ie(r.right)}`;case"lt":return`${ie(r.left)} < ${ie(r.right)}`;case"lte":return`${ie(r.left)} <= ${ie(r.right)}`;case"and":return r.clauses.map(e=>re(e)).map(ne).join(" AND ");case"or":return r.clauses.map(e=>re(e)).map(ne).join(" OR ");case"not":return`NOT ${ne(re(r.clause))}`}}function ne(e){return`(${e})`}function ie(e,t){if(function(e){return"literal"===e.type}(e))return function(e){if(null==e)return"NULL";if(e instanceof I||e instanceof V)return`0x${e.toHexString()}`;if(e instanceof n)return`'${e.toISOString()}'`;switch(typeof e){case"number":case"bigint":return String(e);case"boolean":return e?"TRUE":"FALSE";case"string":return`'${e.replace(/'/g,"''")}'`;default:return`'${JSON.stringify(e).replace(/'/g,"''")}'`}}(e.value);return`${se(e.table)}.${se(e.column)}`}function se(e){return`"${e.replace(/"/g,'""')}"`}function ae(e,t){return{...e,...t}}var ue=class{type;algebraicType;constructor(e){this.algebraicType=e}optional(){return new Ue(this)}serialize(e,t){(this.serialize=_.makeSerializer(this.algebraicType))(e,t)}deserialize(e){return(this.deserialize=_.makeDeserializer(this.algebraicType))(e)}},oe=class extends ue{constructor(){super(_.U8)}index(e="btree"){return new ze(this,ae(Fe,{indexType:e}))}unique(){return new ze(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new ze(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new ze(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new ze(this,ae(Fe,{defaultValue:e}))}name(e){return new ze(this,ae(Fe,{name:e}))}},ce=class extends ue{constructor(){super(_.U16)}index(e="btree"){return new Ke(this,ae(Fe,{indexType:e}))}unique(){return new Ke(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ke(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ke(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ke(this,ae(Fe,{defaultValue:e}))}name(e){return new Ke(this,ae(Fe,{name:e}))}},le=class extends ue{constructor(){super(_.U32)}index(e="btree"){return new Le(this,ae(Fe,{indexType:e}))}unique(){return new Le(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Le(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Le(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Le(this,ae(Fe,{defaultValue:e}))}name(e){return new Le(this,ae(Fe,{name:e}))}},de=class extends ue{constructor(){super(_.U64)}index(e="btree"){return new He(this,ae(Fe,{indexType:e}))}unique(){return new He(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new He(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new He(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new He(this,ae(Fe,{defaultValue:e}))}name(e){return new He(this,ae(Fe,{name:e}))}},he=class extends ue{constructor(){super(_.U128)}index(e="btree"){return new Qe(this,ae(Fe,{indexType:e}))}unique(){return new Qe(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Qe(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Qe(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Qe(this,ae(Fe,{defaultValue:e}))}name(e){return new Qe(this,ae(Fe,{name:e}))}},me=class extends ue{constructor(){super(_.U256)}index(e="btree"){return new We(this,ae(Fe,{indexType:e}))}unique(){return new We(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new We(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new We(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new We(this,ae(Fe,{defaultValue:e}))}name(e){return new We(this,ae(Fe,{name:e}))}},pe=class extends ue{constructor(){super(_.I8)}index(e="btree"){return new Ze(this,ae(Fe,{indexType:e}))}unique(){return new Ze(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ze(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ze(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ze(this,ae(Fe,{defaultValue:e}))}name(e){return new Ze(this,ae(Fe,{name:e}))}},fe=class extends ue{constructor(){super(_.I16)}index(e="btree"){return new Ge(this,ae(Fe,{indexType:e}))}unique(){return new Ge(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ge(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ge(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ge(this,ae(Fe,{defaultValue:e}))}name(e){return new Ge(this,ae(Fe,{name:e}))}},ye=class extends ue{constructor(){super(_.I32)}index(e="btree"){return new Xe(this,ae(Fe,{indexType:e}))}unique(){return new Xe(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Xe(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Xe(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Xe(this,ae(Fe,{defaultValue:e}))}name(e){return new Xe(this,ae(Fe,{name:e}))}},ge=class extends ue{constructor(){super(_.I64)}index(e="btree"){return new Je(this,ae(Fe,{indexType:e}))}unique(){return new Je(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Je(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Je(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Je(this,ae(Fe,{defaultValue:e}))}name(e){return new Je(this,ae(Fe,{name:e}))}},we=class extends ue{constructor(){super(_.I128)}index(e="btree"){return new Ye(this,ae(Fe,{indexType:e}))}unique(){return new Ye(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new Ye(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new Ye(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new Ye(this,ae(Fe,{defaultValue:e}))}name(e){return new Ye(this,ae(Fe,{name:e}))}},be=class extends ue{constructor(){super(_.I256)}index(e="btree"){return new et(this,ae(Fe,{indexType:e}))}unique(){return new et(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new et(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new et(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new et(this,ae(Fe,{defaultValue:e}))}name(e){return new et(this,ae(Fe,{name:e}))}},ve=class extends ue{constructor(){super(_.F32)}default(e){return new tt(this,ae(Fe,{defaultValue:e}))}name(e){return new tt(this,ae(Fe,{name:e}))}},Ie=class extends ue{constructor(){super(_.F64)}default(e){return new rt(this,ae(Fe,{defaultValue:e}))}name(e){return new rt(this,ae(Fe,{name:e}))}},Te=class extends ue{constructor(){super(_.Bool)}index(e="btree"){return new nt(this,ae(Fe,{indexType:e}))}unique(){return new nt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new nt(this,ae(Fe,{isPrimaryKey:!0}))}default(e){return new nt(this,ae(Fe,{defaultValue:e}))}name(e){return new nt(this,ae(Fe,{name:e}))}},xe=class extends ue{constructor(){super(_.String)}index(e="btree"){return new it(this,ae(Fe,{indexType:e}))}unique(){return new it(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new it(this,ae(Fe,{isPrimaryKey:!0}))}default(e){return new it(this,ae(Fe,{defaultValue:e}))}name(e){return new it(this,ae(Fe,{name:e}))}},_e=class extends ue{element;constructor(e){super(_.Array(e.algebraicType)),this.element=e}default(e){return new st(this,ae(Fe,{defaultValue:e}))}name(e){return new st(this,ae(Fe,{name:e}))}},Be=class extends ue{constructor(){super(_.Array(_.U8))}default(e){return new at(ae(Fe,{defaultValue:e}))}name(e){return new at(ae(Fe,{name:e}))}},Ue=class extends ue{value;constructor(e){super(H.getAlgebraicType(e.algebraicType)),this.value=e}default(e){return new ut(this,ae(Fe,{defaultValue:e}))}name(e){return new ut(this,ae(Fe,{name:e}))}},Se=class extends ue{typeName;elements;constructor(e,t){var r;super(_.Product({elements:(r=e,Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].algebraicType}})))})),this.typeName=t,this.elements=e}default(e){return new ct(this,ae(Fe,{defaultValue:e}))}name(e){return new ct(this,ae(Fe,{name:e}))}},Me=class extends ue{ok;err;constructor(e,t){super(Q.getAlgebraicType(e.algebraicType,t.algebraicType)),this.ok=e,this.err=t}default(e){return new ot(this,ae(Fe,{defaultValue:e}))}},Re=class extends ue{constructor(){super({tag:"Product",value:{elements:[]}})}},Ae=class extends ue{row;typeName;constructor(e,t){const r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t instanceof $e?t:new $e(t,{})])),n=Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].typeBuilder.algebraicType}}));super(_.Product({elements:n})),this.row=r,this.typeName=t}},Ne=class extends ue{variants;typeName;constructor(e,t){var r;super(_.Sum({variants:(r=e,Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].algebraicType}})))})),this.variants=e,this.typeName=t;for(const t of Object.keys(e)){const r=Object.getOwnPropertyDescriptor(e,t);let n=!1;if(!(!!r&&("function"==typeof r.get||"function"==typeof r.set))){n=e[t]instanceof Re}if(n){const e=this.create(t);Object.defineProperty(this,t,{value:e,writable:!1,enumerable:!0,configurable:!1})}else{const e=e=>this.create(t,e);Object.defineProperty(this,t,{value:e,writable:!1,enumerable:!0,configurable:!1})}}}create(e,t){return void 0===t?{tag:e}:{tag:e,value:t}}default(e){return new lt(this,ae(Fe,{defaultValue:e}))}name(e){return new lt(this,ae(Fe,{name:e}))}},qe=Ne,De=class extends Ne{index(e="btree"){return new dt(this,ae(Fe,{indexType:e}))}primaryKey(){return new dt(this,ae(Fe,{isPrimaryKey:!0}))}},je=De,Oe=class extends ue{constructor(){super(L.getAlgebraicType())}default(e){return new ht(this,ae(Fe,{defaultValue:e}))}name(e){return new ht(this,ae(Fe,{name:e}))}},ke=class extends ue{constructor(){super(I.getAlgebraicType())}index(e="btree"){return new mt(this,ae(Fe,{indexType:e}))}unique(){return new mt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new mt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new mt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new mt(this,ae(Fe,{defaultValue:e}))}name(e){return new mt(this,ae(Fe,{name:e}))}},Ee=class extends ue{constructor(){super(V.getAlgebraicType())}index(e="btree"){return new pt(this,ae(Fe,{indexType:e}))}unique(){return new pt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new pt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new pt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new pt(this,ae(Fe,{defaultValue:e}))}name(e){return new pt(this,ae(Fe,{name:e}))}},Ce=class extends ue{constructor(){super(n.getAlgebraicType())}index(e="btree"){return new ft(this,ae(Fe,{indexType:e}))}unique(){return new ft(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new ft(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new ft(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new ft(this,ae(Fe,{defaultValue:e}))}name(e){return new ft(this,ae(Fe,{name:e}))}},Ve=class extends ue{constructor(){super(r.getAlgebraicType())}index(e="btree"){return new yt(this,ae(Fe,{indexType:e}))}unique(){return new yt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new yt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new yt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new yt(this,ae(Fe,{defaultValue:e}))}name(e){return new yt(this,ae(Fe,{name:e}))}},Pe=class extends ue{constructor(){super(i.getAlgebraicType())}index(e="btree"){return new gt(this,ae(Fe,{indexType:e}))}unique(){return new gt(this,ae(Fe,{isUnique:!0}))}primaryKey(){return new gt(this,ae(Fe,{isPrimaryKey:!0}))}autoInc(){return new gt(this,ae(Fe,{isAutoIncrement:!0}))}default(e){return new gt(this,ae(Fe,{defaultValue:e}))}name(e){return new gt(this,ae(Fe,{name:e}))}},Fe={},$e=class{typeBuilder;columnMetadata;constructor(e,t){this.typeBuilder=e,this.columnMetadata=t}serialize(e,t){this.typeBuilder.serialize(e,t)}deserialize(e){return this.typeBuilder.deserialize(e)}},ze=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ke=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Le=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},He=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Qe=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},We=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ze=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ge=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Xe=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Je=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},Ye=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},et=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ae(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},tt=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},rt=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},nt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},it=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},st=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},at=class e extends $e{constructor(e){super(new ue(_.Array(_.U8)),e)}default(t){return new e(ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(ae(this.columnMetadata,{name:t}))}},ut=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},ot=class e extends $e{constructor(e,t){super(e,t)}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}},ct=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},lt=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},dt=class e extends lt{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}},ht=class e extends $e{default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},mt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},pt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},ft=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},yt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},gt=class e extends $e{index(t="btree"){return new e(this.typeBuilder,ae(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ae(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ae(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ae(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ae(this.columnMetadata,{name:t}))}},wt=class extends ue{ref;__spacetimeType;constructor(e){super(_.Ref(e)),this.ref=e}},bt={bool:()=>new Te,string:()=>new xe,number:()=>new Ie,i8:()=>new pe,u8:()=>new oe,i16:()=>new fe,u16:()=>new ce,i32:()=>new ye,u32:()=>new le,i64:()=>new ge,u64:()=>new de,i128:()=>new we,u128:()=>new he,i256:()=>new be,u256:()=>new me,f32:()=>new ve,f64:()=>new Ie,object:(e,t)=>{if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the object.");return new Se(t,e)}return new Se(e,void 0)},row:(e,t)=>{const[r,n]="string"==typeof e?[t,e]:[e,void 0];return new Ae(r,n)},array:e=>new _e(e),enum:(e,t)=>{let r,n=e;if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the variants object or array.");n=t,r=e}if(Array.isArray(n)){const e={};for(const t of n)e[t]=new Re;return new De(e,r)}return new qe(n,r)},unit:()=>new Re,lazy(e){let t=null;const r=()=>t??=e();return new Proxy({},{get(e,t,n){const i=r(),s=Reflect.get(i,t,n);return"function"==typeof s?s.bind(i):s},set:(e,t,n,i)=>Reflect.set(r(),t,n,i),has:(e,t)=>t in r(),ownKeys:()=>Reflect.ownKeys(r()),getOwnPropertyDescriptor:(e,t)=>Object.getOwnPropertyDescriptor(r(),t),getPrototypeOf:()=>Object.getPrototypeOf(r())})},scheduleAt:()=>new Oe,option:e=>new Ue(e),result:(e,t)=>new Me(e,t),identity:()=>new ke,connectionId:()=>new Ee,timestamp:()=>new Ce,timeDuration:()=>new Ve,uuid:()=>new Pe,byteArray:()=>new Be},vt=bt.object("BsatnRowList",{get sizeHint(){return Et},rowsData:bt.byteArray()}),It=bt.object("CallProcedure",{requestId:bt.u32(),flags:bt.u8(),procedure:bt.string(),args:bt.byteArray()}),Tt=bt.object("CallReducer",{requestId:bt.u32(),flags:bt.u8(),reducer:bt.string(),args:bt.byteArray()}),xt=bt.enum("ClientMessage",{get Subscribe(){return Pt},get Unsubscribe(){return Ht},get OneOffQuery(){return Ut},get CallReducer(){return Tt},get CallProcedure(){return It}}),_t=bt.object("EventTableRows",{get events(){return vt}}),Bt=bt.object("InitialConnection",{identity:bt.identity(),connectionId:bt.connectionId(),token:bt.string()}),Ut=bt.object("OneOffQuery",{requestId:bt.u32(),queryString:bt.string()}),St=bt.object("OneOffQueryResult",{requestId:bt.u32(),get result(){return bt.result(Nt,bt.string())}}),Mt=bt.object("PersistentTableRows",{get inserts(){return vt},get deletes(){return vt}}),Rt=bt.object("ProcedureResult",{get status(){return At},timestamp:bt.timestamp(),totalHostExecutionDuration:bt.timeDuration(),requestId:bt.u32()}),At=bt.enum("ProcedureStatus",{Returned:bt.byteArray(),InternalError:bt.string()}),Nt=bt.object("QueryRows",{get tables(){return bt.array(Vt)}}),qt=bt.object("QuerySetId",{id:bt.u32()}),Dt=bt.object("QuerySetUpdate",{get querySetId(){return qt},get tables(){return bt.array(zt)}}),jt=bt.object("ReducerOk",{retValue:bt.byteArray(),get transactionUpdate(){return Lt}}),Ot=bt.enum("ReducerOutcome",{get Ok(){return jt},OkEmpty:bt.unit(),Err:bt.byteArray(),InternalError:bt.string()}),kt=bt.object("ReducerResult",{requestId:bt.u32(),timestamp:bt.timestamp(),get result(){return Ot}}),Et=bt.enum("RowSizeHint",{FixedSize:bt.u16(),RowOffsets:bt.array(bt.u64())}),Ct=bt.enum("ServerMessage",{get InitialConnection(){return Bt},get SubscribeApplied(){return Ft},get UnsubscribeApplied(){return Qt},get SubscriptionError(){return $t},get TransactionUpdate(){return Lt},get OneOffQueryResult(){return St},get ReducerResult(){return kt},get ProcedureResult(){return Rt}}),Vt=bt.object("SingleTableRows",{table:bt.string(),get rows(){return vt}}),Pt=bt.object("Subscribe",{requestId:bt.u32(),get querySetId(){return qt},queryStrings:bt.array(bt.string())}),Ft=bt.object("SubscribeApplied",{requestId:bt.u32(),get querySetId(){return qt},get rows(){return Nt}}),$t=bt.object("SubscriptionError",{requestId:bt.option(bt.u32()),get querySetId(){return qt},error:bt.string()}),zt=bt.object("TableUpdate",{tableName:bt.string(),get rows(){return bt.array(Kt)}}),Kt=bt.enum("TableUpdateRows",{get PersistentTable(){return Mt},get EventTable(){return _t}}),Lt=bt.object("TransactionUpdate",{get querySets(){return bt.array(Dt)}}),Ht=bt.object("Unsubscribe",{requestId:bt.u32(),get querySetId(){return qt},get flags(){return Wt}}),Qt=bt.object("UnsubscribeApplied",{requestId:bt.u32(),get querySetId(){return qt},get rows(){return bt.option(Nt)}}),Wt=bt.enum("UnsubscribeFlags",{Default:bt.unit(),SendDroppedRows:bt.unit()}),Zt=class{#t=new Map;on(e,t){let r=this.#t.get(e);r||(r=new Set,this.#t.set(e,r)),r.add(t)}off(e,t){const r=this.#t.get(e);r&&r.delete(t)}emit(e,...t){const r=this.#t.get(e);if(r)for(const e of r)e(...t)}},Gt={component:"đĻ",info:"âšī¸",warn:"â ī¸",error:"â",debug:"đ",trace:"đ"},Xt={component:"color: #fff; background-color: #8D6FDD; padding: 2px 5px; border-radius: 3px;",info:"color: #fff; background-color: #007bff; padding: 2px 5px; border-radius: 3px;",warn:"color: #fff; background-color: #ffc107; padding: 2px 5px; border-radius: 3px;",error:"color: #fff; background-color: #dc3545; padding: 2px 5px; border-radius: 3px;",debug:"color: #fff; background-color: #28a745; padding: 2px 5px; border-radius: 3px;",trace:"color: #fff; background-color: #17a2b8; padding: 2px 5px; border-radius: 3px;"},Jt={component:"color: #8D6FDD;",info:"color: #007bff;",warn:"color: #ffc107;",error:"color: #dc3545;",debug:"color: #28a745;",trace:"color: #17a2b8;"},Yt={error:0,warn:1,info:2,debug:3,trace:4},er="info",tr=e=>{er=e},rr=()=>er,nr=e=>"function"==typeof e?e():e,ir=e=>Array.from(e).map(e=>e.toString(16).padStart(2,"0")).join(""),sr=new Set(["token","authToken","authorization","accessToken","refreshToken"]),ar=e=>t(e,(e,r)=>{if(sr.has(e))return"[REDACTED]";if(r&&"object"==typeof r&&"__identity__"in r&&"bigint"==typeof r.__identity__)return g(r.__identity__);if(r&&"object"==typeof r&&"__connection_id__"in r&&"bigint"==typeof r.__connection_id__)return f(r.__connection_id__);if(r instanceof Uint8Array){if(r.length<25)return`0x${ir(r)}`;const e=r.subarray(0,10);return`Uint8Array(len=${r.length}, head=0x${ir(e)})`}if(Array.isArray(r)&&r.length>=25){const e=t(r.slice(0,10));return`Array(len=${r.length}, head=${e??"[]"})`}return r}),ur=(e,t,...r)=>{if(!(e=>Yt[e]<=Yt[er])(e))return;const n=nr(t),i=r.map(nr);console.log(`%c${Gt[e]} ${e.toUpperCase()}%c ${n}`,Xt[e],Jt[e],...i)},or=(e,t)=>e===t?0:e<t?-1:1,cr=class{rows;tableDef;emitter;constructor(e){this.tableDef=e,this.rows=new Map,this.emitter=new Zt;const t=this.tableDef.indexes||[];for(const e of t){const t=e,r=this.#r(this.tableDef,t);this[t.name]=r}}#r(e,t){if("btree"!==t.algorithm)throw new Error("Only btree indexes are supported in TableCacheImpl");const r=t.columns,n=e=>r.map(t=>e[t]),i=(e,t)=>{const r=n(e),i=Array.isArray(t)?t:[t],s=Math.max(0,i.length-1);for(let e=0;e<s;e++)if(!c(r[e],i[e]))return!1;const a=i[i.length-1],u=r[s];if(a&&"object"==typeof a&&"from"in a&&"to"in a){const e=a.from,t=a.to;if("unbounded"!==e.tag){const t=or(u,e.value);if(t<0)return!1;if(0===t&&"excluded"===e.tag)return!1}if("unbounded"!==t.tag){const e=or(u,t.value);if(e>0)return!1;if(0===e&&"excluded"===t.tag)return!1}return!0}return!!c(u,a)},s=e.constraints.some(e=>"unique"===e.constraint&&c(e.columns,t.columns)),a=this;if(s){return{find:e=>{const t=Array.isArray(e)?e:[e];for(const e of a.iter())if(c(n(e),t))return e;return null}}}return{*filter(e){for(const t of a.iter())i(t,e)&&(yield t)}}}count(){return BigInt(this.rows.size)}iter(){return function*(e){for(const[t]of e.values())yield t}(this.rows)}[Symbol.iterator](){return this.iter()}applyOperations=(e,t)=>{const r=[];if(this.tableDef.isEvent){for(const n of e)"insert"===n.type&&r.push({type:"insert",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("insert",t,n.row)}});return r}if(Object.values(this.tableDef.columns).some(e=>!0===e.columnMetadata.isPrimaryKey)){const n=new Map,i=new Map;for(const t of e)if("insert"===t.type){const[e,r]=n.get(t.rowId)||[t,0];n.set(t.rowId,[t,r+1])}else{const[e,r]=i.get(t.rowId)||[t,0];i.set(t.rowId,[t,r+1])}for(const[e,[s,a]]of n){const n=i.get(e);if(n){const[u,o]=n,c=a-o,l=this.update(t,e,s.row,c);l&&r.push(l),i.delete(e)}else{const e=this.insert(t,s,a);e&&r.push(e)}}for(const[e,n]of i.values()){const i=this.delete(t,e,n);i&&r.push(i)}}else for(const n of e)if("insert"===n.type){const e=this.insert(t,n);e&&r.push(e)}else{const e=this.delete(t,n);e&&r.push(e)}return r};update=(e,t,r,n=0)=>{const i=this.rows.get(t);if(!i)return void ur("error",`Updating a row that was not present in the cache. Table: ${this.tableDef.sourceName}, RowId: ${t}`);const[s,a]=i,u=Math.max(1,a+n);if(!(a+n<=0))return this.rows.set(t,[r,u]),0===a?(ur("error",`Updating a row id in table ${this.tableDef.sourceName} which was not present in the cache (rowId: ${t})`),{type:"insert",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("insert",e,r)}}):{type:"update",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("update",e,s,r)}};ur("error",`Negative reference count for in table ${this.tableDef.sourceName} row ${t} (${a} + ${n})`)};insert=(e,t,r=1)=>{const[n,i]=this.rows.get(t.rowId)||[t.row,0];if(this.rows.set(t.rowId,[t.row,i+r]),0===i)return{type:"insert",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("insert",e,t.row)}}};delete=(e,t,r=1)=>{const[n,i]=this.rows.get(t.rowId)||[t.row,0];if(0!==i)return i<=r?(this.rows.delete(t.rowId),{type:"delete",table:this.tableDef.sourceName,cb:()=>{this.emitter.emit("delete",e,t.row)}}):void this.rows.set(t.rowId,[t.row,i-r]);ur("warn","Deleting a row that was not present in the cache")};onInsert=e=>{this.emitter.on("insert",e)};onDelete=e=>{this.emitter.on("delete",e)};onUpdate=e=>{this.emitter.on("update",e)};removeOnInsert=e=>{this.emitter.off("insert",e)};removeOnDelete=e=>{this.emitter.off("delete",e)};removeOnUpdate=e=>{this.emitter.off("update",e)}},lr=class{map=new Map;get(e){return this.map.get(e)}set(e,t){return this.map.set(e,t),this}has(e){return this.map.has(e)}delete(e){return this.map.delete(e)}keys(){return this.map.keys()}values(){return this.map.values()}entries(){return this.map.entries()}[Symbol.iterator](){return this.entries()}},dr=class{tables=new lr;getTable(e){const t=this.tables.get(e);if(!t)throw console.error("The table has not been registered for this client. Please register the table before using it. If you have registered global tables using the SpacetimeDBClient.registerTables() or `registerTable()` method, please make sure that is executed first!"),new Error(`Table ${String(e)} does not exist`);return t}getOrCreateTable(e){const t=e.accessorName,r=this.tables.get(t);if(r)return r;const n=new cr(e);return this.tables.set(t,n),n}};var hr=class e{major;minor;patch;preRelease;buildInfo;constructor(e,t,r,n=null,i=null){this.major=e,this.minor=t,this.patch=r,this.preRelease=n,this.buildInfo=i}toString(){let e=`${this.major}.${this.minor}.${this.patch}`;return this.preRelease&&(e+=`-${this.preRelease.join(".")}`),this.buildInfo&&(e+=`+${this.buildInfo}`),e}compare(e){return this.major!==e.major?this.major-e.major:this.minor!==e.minor?this.minor-e.minor:this.patch!==e.patch?this.patch-e.patch:this.preRelease&&e.preRelease?function(e,t){const r=Math.min(e.length,t.length);for(let n=0;n<r;n++){const r=e[n],i=t[n];if(r!==i)return"number"==typeof r&&"number"==typeof i?r-i:"string"==typeof r&&"string"==typeof i?r.localeCompare(i):"string"==typeof r?1:-1}return e.length-t.length}(this.preRelease,e.preRelease):this.preRelease||e.preRelease?-1:0}clone(){return new e(this.major,this.minor,this.patch,this.preRelease?[...this.preRelease]:null,this.buildInfo)}static parseVersionString(t){const r=t.match(/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?(?:\+([\da-zA-Z-]+(?:\.[\da-zA-Z-]+)*))?$/);if(!r)throw new Error(`Invalid version string: ${t}`);const n=parseInt(r[1],10),i=parseInt(r[2],10),s=parseInt(r[3],10),a=r[4]?r[4].split(".").map(e=>isNaN(Number(e))?e:Number(e)):null,u=r[5]||null;return new e(n,i,s,a,u)}},mr=new hr(1,4,0);function pr(e){return`Module code was generated with an incompatible version of the spacetimedb cli (${e}). Update the cli version to at least ${mr.toString()} and regenerate the bindings. You can upgrade to the latest cli version by running: spacetime version upgrade`}var fr=class e{onclose;onopen;onmessage;onerror;#n;async#i(e){const t=new Uint8Array(e.data);let r;if(0===t[0])r=t.slice(1);else{if(1===t[0])throw new Error("Brotli Compression not supported. Please use gzip or none compression in withCompression method on DbConnection.");if(2!==t[0])throw new Error("Unexpected Compression Algorithm. Please use `gzip` or `none`");r=await async function(e,t,r=131072){let n=0;const i=new ReadableStream({pull(t){if(n<e.length){const i=e.subarray(n,Math.min(n+r,e.length));t.enqueue(i),n+=r}else t.close()}}),s=new DecompressionStream(t),a=i.pipeThrough(s).getReader(),u=[];let o,c=0;for(;!(o=await a.read()).done;)u.push(o.value),c+=o.value.length;const l=new Uint8Array(c);let d=0;for(const e of u)l.set(e,d),d+=e.length;return l}(t.slice(1),"gzip")}this.onmessage?.({data:r})}#s(e){this.onopen?.(e)}#a(e){this.onerror?.(e)}#u(e){this.onclose?.(e)}send(e){this.#n.send(e)}close(){this.#n.close()}constructor(e){this.onmessage=void 0,this.onopen=void 0,this.onmessage=void 0,this.onerror=void 0,e.onmessage=this.#i.bind(this),e.onerror=this.#a.bind(this),e.onclose=this.#u.bind(this),e.onopen=this.#s.bind(this),e.binaryType="arraybuffer",this.#n=e}static async createWebSocketFn({url:t,nameOrAddress:r,wsProtocol:n,authToken:i,compression:s,lightMode:a,confirmedReads:u}){const o=new Headers,c=await async function(){if(void 0!==globalThis.WebSocket)return globalThis.WebSocket;const e=new Function("m","return import(m)");try{const{WebSocket:t}=await e("undici");return t}catch(e){throw ur("warn","[spacetimedb-sdk] No global WebSocket found. On Node 18â21, please install `undici` (npm install undici) to enable WebSocket support."),e}}();let l;if(i){o.set("Authorization",`Bearer ${i}`);const e=new URL("v1/identity/websocket-token",t);e.protocol="wss:"===t.protocol?"https:":"http:";const r=await fetch(e,{method:"POST",headers:o});if(!r.ok)return Promise.reject(new Error(`Failed to verify token: ${r.statusText}`));{const{token:e}=await r.json();l=e}}const d=new URL(`v1/database/${r}/subscribe`,t);l&&d.searchParams.set("token",l),d.searchParams.set("compression","gzip"===s?"Gzip":"None"),a&&d.searchParams.set("light","true"),void 0!==u&&d.searchParams.set("confirmed",u.toString());const h=new c(d.toString(),n);return new e(h)}},yr=class{constructor(e,t){this.remoteModule=e,this.dbConnectionCtor=t,this.#o=fr.createWebSocketFn}#c;#l;#d;#h;#m=new Zt;#p="gzip";#f=!1;#y;#o;withUri(e){return this.#c=new URL(e),this}withDatabaseName(e){return this.#l=e,this}withToken(e){return this.#h=e,this}withWSFn(e){return this.#o=e,this}withCompression(e){return this.#p=e,this}withLightMode(e){return this.#f=e,this}withConfirmedReads(e){return this.#y=e,this}onConnect(e){return this.#m.on("connect",e),this}onConnectError(e){return this.#m.on("connectError",e),this}onDisconnect(e){return this.#m.on("disconnect",e),this}getUri(){return this.#c?.toString()??""}getModuleName(){return this.#l??""}build(){if(!this.#c)throw new Error("URI is required to connect to SpacetimeDB");if(!this.#l)throw new Error("Database name or address is required to connect to SpacetimeDB");return function(e){if(void 0===e)throw new Error(pr(e));if(hr.parseVersionString(e).compare(mr)<0)throw new Error(pr(e))}(this.remoteModule.versionInfo?.cliVersion),this.dbConnectionCtor({uri:this.#c,nameOrAddress:this.#l,identity:this.#d,token:this.#h,emitter:this.#m,compression:this.#p,lightMode:this.#f,confirmedReads:this.#y,createWSFn:this.#o,remoteModule:this.remoteModule})}},gr=Symbol("INTERNAL_REMOTE_MODULE"),wr=class{constructor(e){this.db=e}#g=void 0;#w=void 0;onApplied(e){return this.#g=e,this}onError(e){return this.#w=e,this}subscribe(e){let t;if("function"==typeof e){const r=this.db.getTablesMap?.(),n=e(r);t=Array.isArray(n)?n:[n]}else t=Array.isArray(e)?e:[e];if(0===t.length)throw new Error("Subscriptions must have at least one query");const r=t.map(e=>{if("string"==typeof e)return e;if((t=e)&&"object"==typeof t&&W in t)return function(e){return e.toSql()}(e);var t;throw new Error("Subscriptions must be SQL strings or typed queries")});return new vr(this.db,r,this.#g,this.#w)}subscribeToAllTables(){const e=this.db[gr](),t=Object.values(e.tables).map(e=>`SELECT * FROM ${e.sourceName}`);this.subscribe(t)}},br=class{subscriptions=new Map},vr=class{constructor(e,t,r,n){this.db=e,this.#m.on("applied",e=>{this.#b=!0,r&&r(e)}),this.#m.on("error",(e,t)=>{this.#b=!1,this.#v=!0,n&&n(e,t)}),this.#I=this.db.registerSubscription(this,this.#m,t)}#I;#T=!1;#v=!1;#b=!1;#m=new Zt;unsubscribe(){if(this.#T)throw new Error("Unsubscribe has already been called");this.#T=!0,this.db.unregisterSubscription(this.#I),this.#m.on("end",e=>{this.#v=!0,this.#b=!1})}unsubscribeThen(e){if(this.#v)throw new Error("Subscription has already ended");if(this.#T)throw new Error("Unsubscribe has already been called");this.#T=!0,this.db.unregisterSubscription(this.#I),this.#m.on("end",t=>{this.#v=!0,this.#b=!1,e(t)})}isEnded(){return this.#v}isActive(){return this.#b}},Ir=class{isActive=!1;identity=void 0;token=void 0;[gr](){return this.#x}db;reducers;procedures;connectionId=V.random();#_=0;#B=0;#U=0;#m;#S=Promise.resolve();#M=[];#R=new br;#x;#A=new Map;#N=new Map;#q=new Map;#D;#j;#O;#k;clientCache;ws;wsPromise;constructor({uri:e,nameOrAddress:t,identity:r,token:n,emitter:i,remoteModule:s,createWSFn:a,compression:u,lightMode:o,confirmedReads:c}){ur("info","Connecting to SpacetimeDB WS...");const l=new URL(e.toString());/^wss?:/.test(e.protocol)||(l.protocol="https:"===l.protocol?"wss:":"ws:"),this.identity=r,this.token=n,this.#x=s,this.#m=i,this.#D=Object.create(null),this.#k=Object.create(null);for(const e of Object.values(s.tables))this.#D[e.sourceName]=E.makeDeserializer(e.rowType),this.#k[e.sourceName]=e;this.#j=Object.create(null);for(const e of s.reducers)this.#j[e.name]={serialize:E.makeSerializer(e.paramsType),deserialize:E.makeDeserializer(e.paramsType)};this.#O=Object.create(null);for(const e of s.procedures)this.#O[e.name]={serializeArgs:E.makeSerializer(new Se(e.params).algebraicType.value),deserializeReturn:_.makeDeserializer(e.returnType.algebraicType)};const d=this.connectionId.toHexString();l.searchParams.set("connection_id",d),this.clientCache=new dr,this.db=this.#E(),this.reducers=this.#C(s),this.procedures=this.#V(s),this.wsPromise=a({url:l,nameOrAddress:t,wsProtocol:"v2.bsatn.spacetimedb",authToken:n,compression:u,lightMode:o,confirmedReads:c}).then(e=>(this.ws=e,this.ws.onclose=()=>{this.#m.emit("disconnect",this),this.isActive=!1},this.ws.onerror=e=>{this.#m.emit("connectError",this,e),this.isActive=!1},this.ws.onopen=this.#s.bind(this),this.ws.onmessage=this.#i.bind(this),e)).catch(e=>{ur("error","Error connecting to SpacetimeDB WS"),this.#m.emit("connectError",this,e)})}#P=()=>{const e=this.#_;return this.#_+=1,e};#F=()=>this.#B++;#E(){const e=Object.create(null);for(const t of Object.values(this.#k)){const r=t.accessorName;Object.defineProperty(e,r,{enumerable:!0,configurable:!1,get:()=>this.clientCache.getOrCreateTable(t)})}return e}#C(e){const t={};for(const r of e.reducers){const e=r.name,n=r.accessorName,{serialize:i}=this.#j[e];t[n]=t=>{const r=new o(1024);i(r,t);const n=r.getBuffer();return this.callReducer(e,n,t)}}return t}#V(e){const t={};for(const r of e.procedures){const e=r.name,n=r.accessorName,{serializeArgs:i,deserializeReturn:a}=this.#O[e];t[n]=t=>{const r=new o(1024);i(r,t);const n=r.getBuffer();return this.callProcedure(e,n).then(e=>a(new s(e)))}}return t}#$(e){return{db:this.db,reducers:this.reducers,isActive:this.isActive,subscriptionBuilder:this.subscriptionBuilder.bind(this),disconnect:this.disconnect.bind(this),event:e}}subscriptionBuilder=()=>new wr(this);getTablesMap(){return function(e){const t=Object.create(null);for(const r of Object.values(e.tables)){const e=J(r);t[r.accessorName]=e}return Object.freeze(t)}({tables:this.#x.tables})}registerSubscription(e,t,r){const n=this.#P();this.#R.subscriptions.set(n,{handle:e,emitter:t});const i=this.#F();return this.#z(xt.Subscribe({queryStrings:r,querySetId:{id:n},requestId:i})),n}unregisterSubscription(e){const t=this.#F();this.#z(xt.Unsubscribe({querySetId:{id:e},requestId:t,flags:Wt.SendDroppedRows}))}#K(t,r,n){const i=n.rowsData,a=new s(i),u=[],o=this.#D[r],c=this.#k[r],l=Object.entries(c.columns).find(e=>e[1].columnMetadata.isPrimaryKey);let d=0;for(;a.remaining>0;){const r=o(a);let n;if(void 0!==l){const e=l[0],t=l[1].typeBuilder.algebraicType;n=_.intoMapKey(t,r[e])}else{const t=i.subarray(d,a.offset);n=e(t)}d=a.offset,u.push({type:t,rowId:n,row:r})}return u}#L(e){const t=new Map;for(const r of e){const e=t.get(r.tableName);if(e)for(const t of r.operations)e.push(t);else t.set(r.tableName,r.operations.slice())}return Array.from(t,([e,t])=>({tableName:e,operations:t}))}#H(e,t){const r=[];for(const n of e.tables)r.push({tableName:n.table,operations:this.#K(t,n.table,n.rows)});return this.#L(r)}#Q(e,t){if("PersistentTable"===t.tag){const r=this.#K("insert",e,t.value.inserts),n=this.#K("delete",e,t.value.deletes);return r.concat(n)}return"EventTable"===t.tag?this.#K("insert",e,t.value.events):[]}#W(e){const t=[];for(const r of e.tables){let e=[];for(const t of r.rows)e=e.concat(this.#Q(r.tableName,t));t.push({tableName:r.tableName,operations:e})}return this.#L(t)}#Z(e,t){ur("trace",()=>`Sending message to server: ${ar(t)}`);const r=new o(1024);xt.serialize(r,t);const n=r.getBuffer();e.send(n)}#G(e){if(!this.isActive||0===this.#M.length)return;const t=this.#M.splice(0);for(const r of t)this.#Z(e,r)}#z(e){this.wsPromise.then(t=>{t&&this.isActive?(this.#G(t),this.#Z(t,e)):this.#M.push(e)})}#X(){return this.#U+=1,`${this.connectionId.toHexString()}:${this.#U}`}#s(){this.isActive=!0,this.ws&&this.#G(this.ws)}#J(e,t){const r=[];for(const n of e){const e=n.tableName,i=this.#k[e],s=this.clientCache.getOrCreateTable(i).applyOperations(n.operations,t);for(const e of s)r.push(e)}return r}#Y(e,t){const r=[];for(const e of t.querySets){const t=this.#W(e);for(const e of t)r.push(e)}return this.#J(this.#L(r),e)}async#ee(e){const t=Ct.deserialize(new s(e));switch(ur("trace",()=>`Processing server message: ${ar(t)}`),t.tag){case"InitialConnection":this.identity=t.value.identity,!this.token&&t.value.token&&(this.token=t.value.token),this.connectionId=t.value.connectionId,this.#m.emit("connect",this,this.identity,this.token);break;case"SubscribeApplied":{const e=t.value.querySetId.id,r=this.#R.subscriptions.get(e);if(!r)return void ur("error",`Received SubscribeApplied for unknown querySetId ${e}.`);const n={id:this.#X(),tag:"SubscribeApplied"},i=this.#$(n),s=this.#H(t.value.rows,"insert"),a=this.#J(s,i),{event:u,...o}=i;r.emitter.emit("applied",o),ur("trace",()=>`Calling ${a.length} triggered row callbacks`);for(const e of a)e.cb();break}case"UnsubscribeApplied":{const e=t.value.querySetId.id,r=this.#R.subscriptions.get(e);if(!r)return void ur("error",`Received UnsubscribeApplied for unknown querySetId ${e}.`);const n={id:this.#X(),tag:"UnsubscribeApplied"},i=this.#$(n),s=t.value.rows?this.#H(t.value.rows,"delete"):[],a=this.#J(s,i),{event:u,...o}=i;r.emitter.emit("end",o),this.#R.subscriptions.delete(e),ur("trace",()=>`Calling ${a.length} triggered row callbacks`);for(const e of a)e.cb();break}case"SubscriptionError":{const e=t.value.querySetId.id,r=t.value.requestId,n=Error(t.value.error),i={id:this.#X(),tag:"Error",value:n},s={...this.#$(i),event:n};if(null==r){ur("error",`Disconnecting due to error for a previously applied subscription: ${t.value.error}`),this.disconnect();break}const a=this.#R.subscriptions.get(e);a?(a.emitter.emit("error",s,n),this.#R.subscriptions.delete(e)):ur("error",`Received SubscriptionError for unknown querySetId ${e}:`,n);break}case"TransactionUpdate":{const e={id:this.#X(),tag:"Transaction"},r=this.#$(e),n=this.#Y(r,t.value);ur("trace",()=>`Calling ${n.length} triggered row callbacks`);for(const e of n)e.cb();break}case"ReducerResult":{const{requestId:e,result:r}=t.value;if("Ok"===r.tag){const n=this.#N.get(e),i=this.#X(),s=n?{id:i,tag:"Reducer",value:{timestamp:t.value.timestamp,outcome:r,reducer:{name:n.name,args:n.args}}}:{id:i,tag:"Transaction"},a=this.#$(s),u=this.#Y(a,r.value.transactionUpdate);ur("trace",()=>`Calling ${u.length} triggered row callbacks`);for(const e of u)e.cb()}this.#N.delete(e);const n=this.#A.get(e);this.#A.delete(e),n?.(r);break}case"ProcedureResult":{const{status:e,requestId:r}=t.value,n="Returned"===e.tag?{tag:"Ok",value:e.value}:{tag:"Err",value:e.value},i=this.#q.get(r);this.#q.delete(r),i?.(n);break}case"OneOffQueryResult":ur("warn","Received OneOffQueryResult but SDK does not expose one-off query APIs yet.")}}#i(e){this.#S=this.#S.then(()=>this.#ee(e.data))}callReducer(e,t,r){const{promise:n,resolve:i,reject:a}=Promise.withResolvers(),u=this.#F(),o=xt.CallReducer({reducer:e,args:t,requestId:u,flags:0});return this.#z(o),r&&this.#N.set(u,{name:e,args:r}),this.#A.set(u,e=>{if("Ok"===e.tag||"OkEmpty"===e.tag)i();else if("Err"===e.tag){const t=new s(e.value).readString();a(new P(t))}else"InternalError"===e.tag?a(new F(e.value)):a(new Error("Unexpected reducer result"))}),n}callReducerWithParams(e,t,r){const n=new o(1024);this.#j[e].serialize(n,r);const i=n.getBuffer();return this.callReducer(e,i,r)}callProcedure(e,t){const{promise:r,resolve:n,reject:i}=Promise.withResolvers(),s=this.#F(),a=xt.CallProcedure({procedure:e,args:t,requestId:s,flags:0});return this.#z(a),this.#q.set(s,e=>{"Ok"===e.tag?n(e.value):i(e.value)}),r}callProcedureWithParams(e,t,r,n){const i=new o(1024),{serializeArgs:a,deserializeReturn:u}=this.#O[e];a(i,r);const c=i.getBuffer();return this.callProcedure(e,c).then(e=>u(new s(e)))}disconnect(){this.wsPromise.then(e=>{e&&e.close()})}on(e,t){this.#m.on(e,t)}off(e,t){this.#m.off(e,t)}onConnect(e){this.#m.on("connect",e)}onDisconnect(e){this.#m.on("disconnect",e)}onConnectError(e){this.#m.on("connectError",e)}removeOnConnect(e){this.#m.off("connect",e)}removeOnDisconnect(e){this.#m.off("disconnect",e)}removeOnConnectError(e){this.#m.off("connectError",e)}};function Tr(e,t,r){const n=e=>t.rowType.algebraicType.value.elements[e].name;return{sourceName:t.tableName||e,accessorName:e,columns:t.rowType.row,rowType:t.rowSpacetimeType,constraints:r.constraints.map(e=>({name:e.sourceName,constraint:"unique",columns:e.data.value.columns.map(n)})),indexes:r.indexes.map(e=>{const t="Direct"===e.algorithm.tag?[e.algorithm.value]:e.algorithm.value;return{name:e.accessorName,unique:r.constraints.some(e=>e.data.value.columns.every(e=>t.includes(e))),algorithm:e.algorithm.tag.toLowerCase(),columns:t.map(n)}}),tableDef:r,...r.isEvent?{isEvent:!0}:{}}}var xr=class{#te=new Map;#re={typespace:{types:[]},tables:[],reducers:[],types:[],rowLevelSecurity:[],schedules:[],procedures:[],views:[],lifeCycleReducers:[],caseConversionPolicy:{tag:"SnakeCase"},explicitNames:{entries:[]}};get moduleDef(){return this.#re}rawModuleDefV10(){const e=[],t=t=>{t&&e.push(t)},r=this.#re;return t(r.typespace&&{tag:"Typespace",value:r.typespace}),t(r.types&&{tag:"Types",value:r.types}),t(r.tables&&{tag:"Tables",value:r.tables}),t(r.reducers&&{tag:"Reducers",value:r.reducers}),t(r.procedures&&{tag:"Procedures",value:r.procedures}),t(r.views&&{tag:"Views",value:r.views}),t(r.schedules&&{tag:"Schedules",value:r.schedules}),t(r.lifeCycleReducers&&{tag:"LifeCycleReducers",value:r.lifeCycleReducers}),t(r.rowLevelSecurity&&{tag:"RowLevelSecurity",value:r.rowLevelSecurity}),t(r.explicitNames&&{tag:"ExplicitNames",value:r.explicitNames}),t(r.caseConversionPolicy&&{tag:"CaseConversionPolicy",value:r.caseConversionPolicy}),{sections:e}}setCaseConversionPolicy(e){this.#re.caseConversionPolicy=e}get typespace(){return this.#re.typespace}resolveType(e){let t=e.algebraicType;for(;"Ref"===t.tag;)t=this.typespace.types[t.value];return t}registerTypesRecursively(e){return e instanceof Se&&!function(e){return null==e.typeName&&0===e.algebraicType.value.elements.length}(e)||e instanceof qe||e instanceof Ae?this.#ne(e):e instanceof Ue?new Ue(this.registerTypesRecursively(e.value)):e instanceof Me?new Me(this.registerTypesRecursively(e.ok),this.registerTypesRecursively(e.err)):e instanceof _e?new _e(this.registerTypesRecursively(e.element)):e}#ne(e){const t=e.algebraicType,r=e.typeName;if(void 0===r)throw new Error(`Missing type name for ${e.constructor.name??"TypeBuilder"} ${JSON.stringify(e)}`);let n=this.#te.get(t);if(null!=n)return n;const i=e instanceof Ae||e instanceof Se?{tag:"Product",value:{elements:[]}}:{tag:"Sum",value:{variants:[]}};if(n=new wt(this.#re.typespace.types.length),this.#re.typespace.types.push(i),this.#te.set(t,n),e instanceof Ae)for(const[t,r]of Object.entries(e.row))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r.typeBuilder).algebraicType});else if(e instanceof Se)for(const[t,r]of Object.entries(e.elements))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});else if(e instanceof qe)for(const[t,r]of Object.entries(e.variants))i.value.variants.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});return this.#re.types.push({sourceName:_r(r),ty:n.ref,customOrdering:!0}),n}};function _r(e){const t=e.split(".");return{sourceName:t.pop(),scope:t}}var Br=class{constructor(e){this.schemaType=e}};function Ur(e){const t=new xr;return new Br(function(e,t){return{tables:Object.fromEntries(Object.entries(t).map(([t,r])=>[t,Tr(t,r,r.tableDef(e,t))]))}}(t,e))}function Sr(e){return Object.fromEntries(e.map(e=>[e.accessorName,e]))}var Mr=bt.enum("AlgebraicType",{Ref:bt.u32(),get Sum(){return Mn},get Product(){return Fr},get Array(){return Mr},String:bt.unit(),Bool:bt.unit(),I8:bt.unit(),U8:bt.unit(),I16:bt.unit(),U16:bt.unit(),I32:bt.unit(),U32:bt.unit(),I64:bt.unit(),U64:bt.unit(),I128:bt.unit(),U128:bt.unit(),I256:bt.unit(),U256:bt.unit(),F32:bt.unit(),F64:bt.unit()}),Rr=bt.enum("CaseConversionPolicy",{None:bt.unit(),SnakeCase:bt.unit()}),Ar=bt.enum("ExplicitNameEntry",{get Table(){return Pr},get Function(){return Pr},get Index(){return Pr}}),Nr=bt.object("ExplicitNames",{get entries(){return bt.array(Ar)}}),qr=bt.enum("FunctionVisibility",{Private:bt.unit(),ClientCallable:bt.unit()}),Dr=bt.object("HttpHeaderPair",{name:bt.string(),value:bt.byteArray()}),jr=bt.object("HttpHeaders",{get entries(){return bt.array(Dr)}}),Or=bt.enum("HttpMethod",{Get:bt.unit(),Head:bt.unit(),Post:bt.unit(),Put:bt.unit(),Delete:bt.unit(),Connect:bt.unit(),Options:bt.unit(),Trace:bt.unit(),Patch:bt.unit(),Extension:bt.string()});bt.object("HttpRequest",{get method(){return Or},get headers(){return jr},timeout:bt.option(bt.timeDuration()),uri:bt.string(),get version(){return kr}}),bt.object("HttpResponse",{get headers(){return jr},get version(){return kr},code:bt.u16()});var kr=bt.enum("HttpVersion",{Http09:bt.unit(),Http10:bt.unit(),Http11:bt.unit(),Http2:bt.unit(),Http3:bt.unit()}),Er=bt.enum("IndexType",{BTree:bt.unit(),Hash:bt.unit()}),Cr=bt.enum("Lifecycle",{Init:bt.unit(),OnConnect:bt.unit(),OnDisconnect:bt.unit()}),Vr=bt.enum("MiscModuleExport",{get TypeAlias(){return Dn}}),Pr=bt.object("NameMapping",{sourceName:bt.string(),canonicalName:bt.string()}),Fr=bt.object("ProductType",{get elements(){return bt.array($r)}}),$r=bt.object("ProductTypeElement",{name:bt.option(bt.string()),get algebraicType(){return Mr}}),zr=bt.object("RawColumnDefV8",{colName:bt.string(),get colType(){return Mr}}),Kr=bt.object("RawColumnDefaultValueV10",{colId:bt.u16(),value:bt.byteArray()}),Lr=bt.object("RawColumnDefaultValueV9",{table:bt.string(),colId:bt.u16(),value:bt.byteArray()}),Hr=bt.enum("RawConstraintDataV9",{get Unique(){return _n}}),Qr=bt.object("RawConstraintDefV10",{sourceName:bt.option(bt.string()),get data(){return Hr}}),Wr=bt.object("RawConstraintDefV8",{constraintName:bt.string(),constraints:bt.u8(),columns:bt.array(bt.u16())}),Zr=bt.object("RawConstraintDefV9",{name:bt.option(bt.string()),get data(){return Hr}}),Gr=bt.enum("RawIndexAlgorithm",{BTree:bt.array(bt.u16()),Hash:bt.array(bt.u16()),Direct:bt.u16()}),Xr=bt.object("RawIndexDefV10",{sourceName:bt.option(bt.string()),accessorName:bt.option(bt.string()),get algorithm(){return Gr}}),Jr=bt.object("RawIndexDefV8",{indexName:bt.string(),isUnique:bt.bool(),get indexType(){return Er},columns:bt.array(bt.u16())}),Yr=bt.object("RawIndexDefV9",{name:bt.option(bt.string()),accessorName:bt.option(bt.string()),get algorithm(){return Gr}}),en=bt.object("RawLifeCycleReducerDefV10",{get lifecycleSpec(){return Cr},functionName:bt.string()}),tn=bt.enum("RawMiscModuleExportV9",{get ColumnDefaultValue(){return Lr},get Procedure(){return on},get View(){return Un}});bt.enum("RawModuleDef",{get V8BackCompat(){return sn},get V9(){return an},get V10(){return rn}});var rn=bt.object("RawModuleDefV10",{get sections(){return bt.array(nn)}}),nn=bt.enum("RawModuleDefV10Section",{get Typespace(){return jn},get Types(){return bt.array(Tn)},get Tables(){return bt.array(bn)},get Reducers(){return bt.array(cn)},get Procedures(){return bt.array(un)},get Views(){return bt.array(Bn)},get Schedules(){return bt.array(hn)},get LifeCycleReducers(){return bt.array(en)},get RowLevelSecurity(){return bt.array(dn)},get CaseConversionPolicy(){return Rr},get ExplicitNames(){return Nr}}),sn=bt.object("RawModuleDefV8",{get typespace(){return jn},get tables(){return bt.array(Nn)},get reducers(){return bt.array(Sn)},get miscExports(){return bt.array(Vr)}}),an=bt.object("RawModuleDefV9",{get typespace(){return jn},get tables(){return bt.array(In)},get reducers(){return bt.array(ln)},get types(){return bt.array(xn)},get miscExports(){return bt.array(tn)},get rowLevelSecurity(){return bt.array(dn)}}),un=bt.object("RawProcedureDefV10",{sourceName:bt.string(),get params(){return Fr},get returnType(){return Mr},get visibility(){return qr}}),on=bt.object("RawProcedureDefV9",{name:bt.string(),get params(){return Fr},get returnType(){return Mr}}),cn=bt.object("RawReducerDefV10",{sourceName:bt.string(),get params(){return Fr},get visibility(){return qr},get okReturnType(){return Mr},get errReturnType(){return Mr}}),ln=bt.object("RawReducerDefV9",{name:bt.string(),get params(){return Fr},get lifecycle(){return bt.option(Cr)}}),dn=bt.object("RawRowLevelSecurityDefV9",{sql:bt.string()}),hn=bt.object("RawScheduleDefV10",{sourceName:bt.option(bt.string()),tableName:bt.string(),scheduleAtCol:bt.u16(),functionName:bt.string()}),mn=bt.object("RawScheduleDefV9",{name:bt.option(bt.string()),reducerName:bt.string(),scheduledAtColumn:bt.u16()}),pn=bt.object("RawScopedTypeNameV10",{scope:bt.array(bt.string()),sourceName:bt.string()}),fn=bt.object("RawScopedTypeNameV9",{scope:bt.array(bt.string()),name:bt.string()}),yn=bt.object("RawSequenceDefV10",{sourceName:bt.option(bt.string()),column:bt.u16(),start:bt.option(bt.i128()),minValue:bt.option(bt.i128()),maxValue:bt.option(bt.i128()),increment:bt.i128()}),gn=bt.object("RawSequenceDefV8",{sequenceName:bt.string(),colPos:bt.u16(),increment:bt.i128(),start:bt.option(bt.i128()),minValue:bt.option(bt.i128()),maxValue:bt.option(bt.i128()),allocated:bt.i128()}),wn=bt.object("RawSequenceDefV9",{name:bt.option(bt.string()),column:bt.u16(),start:bt.option(bt.i128()),minValue:bt.option(bt.i128()),maxValue:bt.option(bt.i128()),increment:bt.i128()}),bn=bt.object("RawTableDefV10",{sourceName:bt.string(),productTypeRef:bt.u32(),primaryKey:bt.array(bt.u16()),get indexes(){return bt.array(Xr)},get constraints(){return bt.array(Qr)},get sequences(){return bt.array(yn)},get tableType(){return qn},get tableAccess(){return An},get defaultValues(){return bt.array(Kr)},isEvent:bt.bool()}),vn=bt.object("RawTableDefV8",{tableName:bt.string(),get columns(){return bt.array(zr)},get indexes(){return bt.array(Jr)},get constraints(){return bt.array(Wr)},get sequences(){return bt.array(gn)},tableType:bt.string(),tableAccess:bt.string(),scheduled:bt.option(bt.string())}),In=bt.object("RawTableDefV9",{name:bt.string(),productTypeRef:bt.u32(),primaryKey:bt.array(bt.u16()),get indexes(){return bt.array(Yr)},get constraints(){return bt.array(Zr)},get sequences(){return bt.array(wn)},get schedule(){return bt.option(mn)},get tableType(){return qn},get tableAccess(){return An}}),Tn=bt.object("RawTypeDefV10",{get sourceName(){return pn},ty:bt.u32(),customOrdering:bt.bool()}),xn=bt.object("RawTypeDefV9",{get name(){return fn},ty:bt.u32(),customOrdering:bt.bool()}),_n=bt.object("RawUniqueConstraintDataV9",{columns:bt.array(bt.u16())}),Bn=bt.object("RawViewDefV10",{sourceName:bt.string(),index:bt.u32(),isPublic:bt.bool(),isAnonymous:bt.bool(),get params(){return Fr},get returnType(){return Mr}}),Un=bt.object("RawViewDefV9",{name:bt.string(),index:bt.u32(),isPublic:bt.bool(),isAnonymous:bt.bool(),get params(){return Fr},get returnType(){return Mr}}),Sn=bt.object("ReducerDef",{name:bt.string(),get args(){return bt.array($r)}}),Mn=bt.object("SumType",{get variants(){return bt.array(Rn)}}),Rn=bt.object("SumTypeVariant",{name:bt.option(bt.string()),get algebraicType(){return Mr}}),An=bt.enum("TableAccess",{Public:bt.unit(),Private:bt.unit()}),Nn=bt.object("TableDesc",{get schema(){return vn},data:bt.u32()}),qn=bt.enum("TableType",{System:bt.unit(),User:bt.unit()}),Dn=bt.object("TypeAlias",{name:bt.string(),ty:bt.u32()}),jn=bt.object("Typespace",{get types(){return bt.array(Mr)}});function On(e,t,...r){const{name:n,public:i=!1,indexes:s=[],scheduled:a,event:u=!1}=e,c=new Map,l=[];t instanceof Ae||(t=new Ae(t)),t.algebraicType.value.elements.forEach((e,t)=>{c.set(e.name,t),l.push(e.name)});const d=[],h=[],m=[],p=[];let f;const y=[];for(const[e,r]of Object.entries(t.row)){const t=r.columnMetadata;t.isPrimaryKey&&d.push(c.get(e));const n=t.isUnique||t.isPrimaryKey;if(t.indexType||n){const r=t.indexType??"btree",n=c.get(e);let i;switch(r){case"btree":i=Gr.BTree([n]);break;case"hash":i=Gr.Hash([n]);break;case"direct":i=Gr.Direct(n)}h.push({sourceName:void 0,accessorName:e,algorithm:i})}if(n&&m.push({sourceName:void 0,data:{tag:"Unique",value:{columns:[c.get(e)]}}}),t.isAutoIncrement&&p.push({sourceName:void 0,start:void 0,minValue:void 0,maxValue:void 0,column:c.get(e),increment:1n}),t.defaultValue){const n=new o(16);r.serialize(n,t.defaultValue),y.push({colId:c.get(e),value:n.getBuffer()})}if(a){const t=r.typeBuilder.algebraicType;L.isScheduleAt(t)&&(f=c.get(e))}}for(const e of s??[]){let t;switch(e.algorithm){case"btree":t={tag:"BTree",value:e.columns.map(e=>c.get(e))};break;case"hash":t={tag:"Hash",value:e.columns.map(e=>c.get(e))};break;case"direct":t={tag:"Direct",value:c.get(e.column)}}h.push({sourceName:void 0,accessorName:e.accessor,algorithm:t,canonicalName:e.name})}for(const t of e.constraints??[])if("unique"===t.constraint){const e={tag:"Unique",value:{columns:t.columns.map(e=>c.get(e))}};m.push({sourceName:t.name,data:e});continue}const g=t.algebraicType.value;return{rowType:t,tableName:n,rowSpacetimeType:g,tableDef:(e,r)=>{const s=n??r;void 0===t.typeName&&(t.typeName=function(e){const t=w(e);return t.charAt(0).toUpperCase()+t.slice(1)}(s));for(const t of h){const n=("Direct"===t.algorithm.tag?[t.algorithm.value]:t.algorithm.value).map(e=>l[e]).join("_"),i=t.sourceName=`${r}_${n}_idx_${t.algorithm.tag.toLowerCase()}`,{canonicalName:s}=t;void 0!==s&&e.moduleDef.explicitNames.entries.push(Ar.Index({sourceName:i,canonicalName:s}))}return{sourceName:r,productTypeRef:e.registerTypesRecursively(t).ref,primaryKey:d,indexes:h,constraints:m,sequences:p,tableType:{tag:"User"},tableAccess:{tag:i?"Public":"Private"},defaultValues:y,isEvent:u}},idxs:{},constraints:m,schedule:a&&void 0!==f?{scheduleAtCol:f,reducer:a}:void 0}}bt.enum("ViewResultHeader",{RowData:bt.unit(),RawSql:bt.string()});var kn=class{reducersType;constructor(e){this.reducersType=function(e){const t=e.map(e=>{const t=e.params.row;return{name:e.reducerName,accessorName:e.accessorName,params:t,paramsType:e.paramsSpacetimeType}});return{reducers:t}}(e)}};function En(...e){const t=1===e.length&&Array.isArray(e[0])?e[0]:e;return new kn(t)}function Cn(e,t){const r={elements:Object.entries(t).map(([e,t])=>({name:e,algebraicType:"typeBuilder"in t?t.typeBuilder.algebraicType:t.algebraicType}))};return{reducerName:e,accessorName:w(e),params:new Ae(t),paramsSpacetimeType:r,reducerDef:{name:e,params:r,lifecycle:void 0}}}function Vn(...e){return{procedures:1===e.length&&Array.isArray(e[0])?e[0]:e}}function Pn(e,t,r){return{name:e,accessorName:w(e),params:b(t),returnType:r}}export{_e as ArrayBuilder,st as ArrayColumnBuilder,Te as BoolBuilder,nt as BoolColumnBuilder,Be as ByteArrayBuilder,at as ByteArrayColumnBuilder,dr as ClientCache,$e as ColumnBuilder,Ee as ConnectionIdBuilder,pt as ConnectionIdColumnBuilder,yr as DbConnectionBuilder,Ir as DbConnectionImpl,ve as F32Builder,tt as F32ColumnBuilder,Ie as F64Builder,rt as F64ColumnBuilder,we as I128Builder,Ye as I128ColumnBuilder,fe as I16Builder,Ge as I16ColumnBuilder,be as I256Builder,et as I256ColumnBuilder,ye as I32Builder,Xe as I32ColumnBuilder,ge as I64Builder,Je as I64ColumnBuilder,pe as I8Builder,Ze as I8ColumnBuilder,ke as IdentityBuilder,mt as IdentityColumnBuilder,F as InternalError,Ue as OptionBuilder,ut as OptionColumnBuilder,Se as ProductBuilder,ct as ProductColumnBuilder,wt as RefBuilder,Me as ResultBuilder,ot as ResultColumnBuilder,Ae as RowBuilder,Oe as ScheduleAtBuilder,ht as ScheduleAtColumnBuilder,P as SenderError,je as SimpleSumBuilder,dt as SimpleSumColumnBuilder,xe as StringBuilder,it as StringColumnBuilder,wr as SubscriptionBuilderImpl,vr as SubscriptionHandleImpl,qe as SumBuilder,lt as SumColumnBuilder,Ve as TimeDurationBuilder,yt as TimeDurationColumnBuilder,Ce as TimestampBuilder,ft as TimestampColumnBuilder,ue as TypeBuilder,he as U128Builder,Qe as U128ColumnBuilder,ce as U16Builder,Ke as U16ColumnBuilder,me as U256Builder,We as U256ColumnBuilder,le as U32Builder,Le as U32ColumnBuilder,de as U64Builder,He as U64ColumnBuilder,oe as U8Builder,ze as U8ColumnBuilder,Pe as UuidBuilder,gt as UuidColumnBuilder,Sr as convertToAccessorMap,rr as getGlobalLogLevel,Pn as procedureSchema,Vn as procedures,Cn as reducerSchema,En as reducers,Ur as schema,tr as setGlobalLogLevel,ur as stdbLogger,ar as stringify,bt as t,On as table};//# sourceMappingURL=index.browser.mjs.map
|