spacetimedb 2.0.2 â 2.0.4
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 +3 -0
- package/dist/angular/index.cjs.map +1 -1
- package/dist/angular/index.mjs +3 -0
- package/dist/angular/index.mjs.map +1 -1
- package/dist/browser/angular/index.mjs +3 -0
- package/dist/browser/angular/index.mjs.map +1 -1
- package/dist/browser/react/index.mjs +6 -0
- package/dist/browser/react/index.mjs.map +1 -1
- package/dist/browser/svelte/index.mjs +3 -0
- package/dist/browser/svelte/index.mjs.map +1 -1
- package/dist/browser/vue/index.mjs +3 -0
- package/dist/browser/vue/index.mjs.map +1 -1
- package/dist/index.browser.mjs +133 -100
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +133 -100
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +133 -100
- package/dist/index.mjs.map +1 -1
- package/dist/lib/binary_writer.d.ts +1 -0
- package/dist/lib/binary_writer.d.ts.map +1 -1
- package/dist/lib/indexes.d.ts +1 -1
- package/dist/lib/indexes.d.ts.map +1 -1
- package/dist/lib/query.d.ts +4 -2
- package/dist/lib/query.d.ts.map +1 -1
- package/dist/lib/schema.d.ts +2 -0
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/lib/table.d.ts +19 -1
- package/dist/lib/table.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 +6 -0
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.mjs +6 -0
- package/dist/react/index.mjs.map +1 -1
- package/dist/react/useTable.d.ts.map +1 -1
- package/dist/sdk/db_connection_impl.d.ts.map +1 -1
- package/dist/sdk/index.browser.mjs +133 -100
- package/dist/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/index.cjs +133 -100
- package/dist/sdk/index.cjs.map +1 -1
- package/dist/sdk/index.mjs +133 -100
- 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/sdk/table_cache.d.ts.map +1 -1
- package/dist/sdk/websocket_decompress_adapter.d.ts +17 -7
- package/dist/sdk/websocket_decompress_adapter.d.ts.map +1 -1
- package/dist/sdk/websocket_test_adapter.d.ts +3 -2
- package/dist/sdk/websocket_test_adapter.d.ts.map +1 -1
- package/dist/server/index.mjs +72 -29
- package/dist/server/index.mjs.map +1 -1
- package/dist/svelte/index.cjs +3 -0
- package/dist/svelte/index.cjs.map +1 -1
- package/dist/svelte/index.mjs +3 -0
- package/dist/svelte/index.mjs.map +1 -1
- package/dist/tanstack/SpacetimeDBQueryClient.d.ts +3 -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 +28 -1
- package/dist/tanstack/index.cjs.map +1 -1
- package/dist/tanstack/index.mjs +28 -1
- package/dist/tanstack/index.mjs.map +1 -1
- package/dist/vue/index.cjs +3 -0
- package/dist/vue/index.cjs.map +1 -1
- package/dist/vue/index.mjs +3 -0
- package/dist/vue/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/lib/binary_writer.ts +4 -0
- package/src/lib/indexes.ts +1 -1
- package/src/lib/query.ts +30 -6
- package/src/lib/schema.ts +66 -24
- package/src/lib/table.ts +41 -9
- package/src/lib/util.ts +18 -21
- package/src/react/useTable.ts +7 -0
- package/src/sdk/db_connection_impl.ts +38 -43
- package/src/sdk/procedures.ts +1 -3
- package/src/sdk/reducers.ts +5 -7
- package/src/sdk/table_cache.ts +14 -11
- package/src/sdk/websocket_decompress_adapter.ts +42 -45
- package/src/sdk/websocket_test_adapter.ts +3 -2
- package/src/server/runtime.ts +7 -3
- package/src/server/schema.test-d.ts +37 -0
- package/src/server/view.test-d.ts +2 -0
- package/src/tanstack/SpacetimeDBQueryClient.ts +28 -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},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]=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(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),_.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}},Ne=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}))}},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(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 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()}),_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(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 xt}}),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.#_}db;reducers;procedures;connectionId=V.random();#x=0;#B=0;#U=0;#m;#S=Promise.resolve();#M=[];#R=new br;#_;#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.#_=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.#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=_t.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=_t.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 _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 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 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 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: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}}),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 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 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(_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 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()}),_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()}),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=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,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
|
|
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}clear(){this.offset=0}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 V.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 V.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 V.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},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 O(e.readU128()),__uuid__:e=>new i(e.readU128())};Object.freeze(j);var k=()=>({}),E=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}`},V={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]=_.makeSerializer(i,t);return Object.freeze(n),r},serializeValue(e,t,r,n){V.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){switch(e.elements.length){case 0:return k;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(N(e)){const t=`"use strict";\nconst result = { ${e.elements.map(E).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(E).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)=>V.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)},O=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=ae(e.table.sourceName),n=ae(t.table.sourceName);let i=`SELECT ${n}.* FROM ${r} JOIN ${n} ON ${ne(this.joinCondition)}`;const s=[];if(e.whereClause&&s.push(ne(e.whereClause)),t.whereClause&&s.push(ne(t.whereClause)),s.length>0){i+=` WHERE ${1===s.length?s[0]:s.map(ie).join(" AND ")}`}return i}},G=class e{constructor(e,t){this.table=e,this.whereClause=t}[W]=!0;where(t){const r=function(e){if(e instanceof re)return e;if("boolean"==typeof e)return new re({type:"eq",left:ee(e),right:ee(!0)});return new re({type:"eq",left:e,right:ee(!0)})}(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 ${ae(e.sourceName)}`,i=[];t&&i.push(ne(t));if(i.push(...r),0===i.length)return n;const s=1===i.length?i[0]:i.map(ie).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 re({type:"eq",left:this,right:te(e)})}ne(e){return new re({type:"ne",left:this,right:te(e)})}lt(e){return new re({type:"lt",left:this,right:te(e)})}lte(e){return new re({type:"lte",left:this,right:te(e)})}gt(e){return new re({type:"gt",left:this,right:te(e)})}gte(e){return new re({type:"gte",left:this,right:te(e)})}};function ee(e){return{type:"literal",value:e}}function te(e){return"literal"===e.type||"object"==typeof e&&null!=e&&"type"in e&&"column"===e.type?e:ee(e)}var re=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 ne(e,t){const r=e instanceof re?e.data:e;switch(r.type){case"eq":return`${se(r.left)} = ${se(r.right)}`;case"ne":return`${se(r.left)} <> ${se(r.right)}`;case"gt":return`${se(r.left)} > ${se(r.right)}`;case"gte":return`${se(r.left)} >= ${se(r.right)}`;case"lt":return`${se(r.left)} < ${se(r.right)}`;case"lte":return`${se(r.left)} <= ${se(r.right)}`;case"and":return r.clauses.map(e=>ne(e)).map(ie).join(" AND ");case"or":return r.clauses.map(e=>ne(e)).map(ie).join(" OR ");case"not":return`NOT ${ie(ne(r.clause))}`}}function ie(e){return`(${e})`}function se(e,t){if(function(e){return"literal"===e.type}(e))return function(e){if(null==e)return"NULL";if(e instanceof I||e instanceof O)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`${ae(e.table)}.${ae(e.column)}`}function ae(e){return`"${e.replace(/"/g,'""')}"`}function ue(e,t){return{...e,...t}}var oe=class{type;algebraicType;constructor(e){this.algebraicType=e}optional(){return new Se(this)}serialize(e,t){(this.serialize=_.makeSerializer(this.algebraicType))(e,t)}deserialize(e){return(this.deserialize=_.makeDeserializer(this.algebraicType))(e)}},ce=class extends oe{constructor(){super(_.U8)}index(e="btree"){return new Ke(this,ue($e,{indexType:e}))}unique(){return new Ke(this,ue($e,{isUnique:!0}))}primaryKey(){return new Ke(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Ke(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Ke(this,ue($e,{defaultValue:e}))}name(e){return new Ke(this,ue($e,{name:e}))}},le=class extends oe{constructor(){super(_.U16)}index(e="btree"){return new Le(this,ue($e,{indexType:e}))}unique(){return new Le(this,ue($e,{isUnique:!0}))}primaryKey(){return new Le(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Le(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Le(this,ue($e,{defaultValue:e}))}name(e){return new Le(this,ue($e,{name:e}))}},de=class extends oe{constructor(){super(_.U32)}index(e="btree"){return new He(this,ue($e,{indexType:e}))}unique(){return new He(this,ue($e,{isUnique:!0}))}primaryKey(){return new He(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new He(this,ue($e,{isAutoIncrement:!0}))}default(e){return new He(this,ue($e,{defaultValue:e}))}name(e){return new He(this,ue($e,{name:e}))}},he=class extends oe{constructor(){super(_.U64)}index(e="btree"){return new Qe(this,ue($e,{indexType:e}))}unique(){return new Qe(this,ue($e,{isUnique:!0}))}primaryKey(){return new Qe(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Qe(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Qe(this,ue($e,{defaultValue:e}))}name(e){return new Qe(this,ue($e,{name:e}))}},me=class extends oe{constructor(){super(_.U128)}index(e="btree"){return new We(this,ue($e,{indexType:e}))}unique(){return new We(this,ue($e,{isUnique:!0}))}primaryKey(){return new We(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new We(this,ue($e,{isAutoIncrement:!0}))}default(e){return new We(this,ue($e,{defaultValue:e}))}name(e){return new We(this,ue($e,{name:e}))}},pe=class extends oe{constructor(){super(_.U256)}index(e="btree"){return new Ze(this,ue($e,{indexType:e}))}unique(){return new Ze(this,ue($e,{isUnique:!0}))}primaryKey(){return new Ze(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Ze(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Ze(this,ue($e,{defaultValue:e}))}name(e){return new Ze(this,ue($e,{name:e}))}},fe=class extends oe{constructor(){super(_.I8)}index(e="btree"){return new Ge(this,ue($e,{indexType:e}))}unique(){return new Ge(this,ue($e,{isUnique:!0}))}primaryKey(){return new Ge(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Ge(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Ge(this,ue($e,{defaultValue:e}))}name(e){return new Ge(this,ue($e,{name:e}))}},ye=class extends oe{constructor(){super(_.I16)}index(e="btree"){return new Xe(this,ue($e,{indexType:e}))}unique(){return new Xe(this,ue($e,{isUnique:!0}))}primaryKey(){return new Xe(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Xe(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Xe(this,ue($e,{defaultValue:e}))}name(e){return new Xe(this,ue($e,{name:e}))}},ge=class extends oe{constructor(){super(_.I32)}index(e="btree"){return new Je(this,ue($e,{indexType:e}))}unique(){return new Je(this,ue($e,{isUnique:!0}))}primaryKey(){return new Je(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Je(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Je(this,ue($e,{defaultValue:e}))}name(e){return new Je(this,ue($e,{name:e}))}},we=class extends oe{constructor(){super(_.I64)}index(e="btree"){return new Ye(this,ue($e,{indexType:e}))}unique(){return new Ye(this,ue($e,{isUnique:!0}))}primaryKey(){return new Ye(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new Ye(this,ue($e,{isAutoIncrement:!0}))}default(e){return new Ye(this,ue($e,{defaultValue:e}))}name(e){return new Ye(this,ue($e,{name:e}))}},be=class extends oe{constructor(){super(_.I128)}index(e="btree"){return new et(this,ue($e,{indexType:e}))}unique(){return new et(this,ue($e,{isUnique:!0}))}primaryKey(){return new et(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new et(this,ue($e,{isAutoIncrement:!0}))}default(e){return new et(this,ue($e,{defaultValue:e}))}name(e){return new et(this,ue($e,{name:e}))}},ve=class extends oe{constructor(){super(_.I256)}index(e="btree"){return new tt(this,ue($e,{indexType:e}))}unique(){return new tt(this,ue($e,{isUnique:!0}))}primaryKey(){return new tt(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new tt(this,ue($e,{isAutoIncrement:!0}))}default(e){return new tt(this,ue($e,{defaultValue:e}))}name(e){return new tt(this,ue($e,{name:e}))}},Ie=class extends oe{constructor(){super(_.F32)}default(e){return new rt(this,ue($e,{defaultValue:e}))}name(e){return new rt(this,ue($e,{name:e}))}},Te=class extends oe{constructor(){super(_.F64)}default(e){return new nt(this,ue($e,{defaultValue:e}))}name(e){return new nt(this,ue($e,{name:e}))}},xe=class extends oe{constructor(){super(_.Bool)}index(e="btree"){return new it(this,ue($e,{indexType:e}))}unique(){return new it(this,ue($e,{isUnique:!0}))}primaryKey(){return new it(this,ue($e,{isPrimaryKey:!0}))}default(e){return new it(this,ue($e,{defaultValue:e}))}name(e){return new it(this,ue($e,{name:e}))}},_e=class extends oe{constructor(){super(_.String)}index(e="btree"){return new st(this,ue($e,{indexType:e}))}unique(){return new st(this,ue($e,{isUnique:!0}))}primaryKey(){return new st(this,ue($e,{isPrimaryKey:!0}))}default(e){return new st(this,ue($e,{defaultValue:e}))}name(e){return new st(this,ue($e,{name:e}))}},Be=class extends oe{element;constructor(e){super(_.Array(e.algebraicType)),this.element=e}default(e){return new at(this,ue($e,{defaultValue:e}))}name(e){return new at(this,ue($e,{name:e}))}},Ue=class extends oe{constructor(){super(_.Array(_.U8))}default(e){return new ut(ue($e,{defaultValue:e}))}name(e){return new ut(ue($e,{name:e}))}},Se=class extends oe{value;constructor(e){super(H.getAlgebraicType(e.algebraicType)),this.value=e}default(e){return new ot(this,ue($e,{defaultValue:e}))}name(e){return new ot(this,ue($e,{name:e}))}},Me=class extends oe{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 lt(this,ue($e,{defaultValue:e}))}name(e){return new lt(this,ue($e,{name:e}))}},Re=class extends oe{ok;err;constructor(e,t){super(Q.getAlgebraicType(e.algebraicType,t.algebraicType)),this.ok=e,this.err=t}default(e){return new ct(this,ue($e,{defaultValue:e}))}},Ae=class extends oe{constructor(){super({tag:"Product",value:{elements:[]}})}},qe=class extends oe{row;typeName;constructor(e,t){const r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t instanceof ze?t:new ze(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 oe{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 Ae}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 dt(this,ue($e,{defaultValue:e}))}name(e){return new dt(this,ue($e,{name:e}))}},De=Ne,je=class extends Ne{index(e="btree"){return new ht(this,ue($e,{indexType:e}))}primaryKey(){return new ht(this,ue($e,{isPrimaryKey:!0}))}},ke=je,Ee=class extends oe{constructor(){super(L.getAlgebraicType())}default(e){return new mt(this,ue($e,{defaultValue:e}))}name(e){return new mt(this,ue($e,{name:e}))}},Ve=class extends oe{constructor(){super(I.getAlgebraicType())}index(e="btree"){return new pt(this,ue($e,{indexType:e}))}unique(){return new pt(this,ue($e,{isUnique:!0}))}primaryKey(){return new pt(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new pt(this,ue($e,{isAutoIncrement:!0}))}default(e){return new pt(this,ue($e,{defaultValue:e}))}name(e){return new pt(this,ue($e,{name:e}))}},Ce=class extends oe{constructor(){super(O.getAlgebraicType())}index(e="btree"){return new ft(this,ue($e,{indexType:e}))}unique(){return new ft(this,ue($e,{isUnique:!0}))}primaryKey(){return new ft(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new ft(this,ue($e,{isAutoIncrement:!0}))}default(e){return new ft(this,ue($e,{defaultValue:e}))}name(e){return new ft(this,ue($e,{name:e}))}},Oe=class extends oe{constructor(){super(n.getAlgebraicType())}index(e="btree"){return new yt(this,ue($e,{indexType:e}))}unique(){return new yt(this,ue($e,{isUnique:!0}))}primaryKey(){return new yt(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new yt(this,ue($e,{isAutoIncrement:!0}))}default(e){return new yt(this,ue($e,{defaultValue:e}))}name(e){return new yt(this,ue($e,{name:e}))}},Pe=class extends oe{constructor(){super(r.getAlgebraicType())}index(e="btree"){return new gt(this,ue($e,{indexType:e}))}unique(){return new gt(this,ue($e,{isUnique:!0}))}primaryKey(){return new gt(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new gt(this,ue($e,{isAutoIncrement:!0}))}default(e){return new gt(this,ue($e,{defaultValue:e}))}name(e){return new gt(this,ue($e,{name:e}))}},Fe=class extends oe{constructor(){super(i.getAlgebraicType())}index(e="btree"){return new wt(this,ue($e,{indexType:e}))}unique(){return new wt(this,ue($e,{isUnique:!0}))}primaryKey(){return new wt(this,ue($e,{isPrimaryKey:!0}))}autoInc(){return new wt(this,ue($e,{isAutoIncrement:!0}))}default(e){return new wt(this,ue($e,{defaultValue:e}))}name(e){return new wt(this,ue($e,{name:e}))}},$e={},ze=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)}},Ke=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Le=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},He=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Qe=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},We=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Ze=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Ge=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Xe=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Je=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},Ye=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},et=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},tt=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,ue(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},rt=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},nt=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},it=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},st=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},at=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},ut=class e extends ze{constructor(e){super(new oe(_.Array(_.U8)),e)}default(t){return new e(ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(ue(this.columnMetadata,{name:t}))}},ot=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},ct=class e extends ze{constructor(e,t){super(e,t)}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}},lt=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},dt=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},ht=class e extends dt{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}},mt=class e extends ze{default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},pt=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},ft=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},yt=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},gt=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},wt=class e extends ze{index(t="btree"){return new e(this.typeBuilder,ue(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,ue(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,ue(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,ue(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,ue(this.columnMetadata,{name:t}))}},bt=class extends oe{ref;__spacetimeType;constructor(e){super(_.Ref(e)),this.ref=e}},vt={bool:()=>new xe,string:()=>new _e,number:()=>new Te,i8:()=>new fe,u8:()=>new ce,i16:()=>new ye,u16:()=>new le,i32:()=>new ge,u32:()=>new de,i64:()=>new we,u64:()=>new he,i128:()=>new be,u128:()=>new me,i256:()=>new ve,u256:()=>new pe,f32:()=>new Ie,f64:()=>new Te,object:(e,t)=>{if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the object.");return new Me(t,e)}return new Me(e,void 0)},row:(e,t)=>{const[r,n]="string"==typeof e?[t,e]:[e,void 0];return new qe(r,n)},array:e=>new Be(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 Ae;return new je(e,r)}return new De(n,r)},unit:()=>new Ae,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 Ee,option:e=>new Se(e),result:(e,t)=>new Re(e,t),identity:()=>new Ve,connectionId:()=>new Ce,timestamp:()=>new Oe,timeDuration:()=>new Pe,uuid:()=>new Fe,byteArray:()=>new Ue},It=vt.object("BsatnRowList",{get sizeHint(){return Ct},rowsData:vt.byteArray()}),Tt=vt.object("CallProcedure",{requestId:vt.u32(),flags:vt.u8(),procedure:vt.string(),args:vt.byteArray()}),xt=vt.object("CallReducer",{requestId:vt.u32(),flags:vt.u8(),reducer:vt.string(),args:vt.byteArray()}),_t=vt.enum("ClientMessage",{get Subscribe(){return Ft},get Unsubscribe(){return Qt},get OneOffQuery(){return St},get CallReducer(){return xt},get CallProcedure(){return Tt}}),Bt=vt.object("EventTableRows",{get events(){return It}}),Ut=vt.object("InitialConnection",{identity:vt.identity(),connectionId:vt.connectionId(),token:vt.string()}),St=vt.object("OneOffQuery",{requestId:vt.u32(),queryString:vt.string()}),Mt=vt.object("OneOffQueryResult",{requestId:vt.u32(),get result(){return vt.result(Nt,vt.string())}}),Rt=vt.object("PersistentTableRows",{get inserts(){return It},get deletes(){return It}}),At=vt.object("ProcedureResult",{get status(){return qt},timestamp:vt.timestamp(),totalHostExecutionDuration:vt.timeDuration(),requestId:vt.u32()}),qt=vt.enum("ProcedureStatus",{Returned:vt.byteArray(),InternalError:vt.string()}),Nt=vt.object("QueryRows",{get tables(){return vt.array(Pt)}}),Dt=vt.object("QuerySetId",{id:vt.u32()}),jt=vt.object("QuerySetUpdate",{get querySetId(){return Dt},get tables(){return vt.array(Kt)}}),kt=vt.object("ReducerOk",{retValue:vt.byteArray(),get transactionUpdate(){return Ht}}),Et=vt.enum("ReducerOutcome",{get Ok(){return kt},OkEmpty:vt.unit(),Err:vt.byteArray(),InternalError:vt.string()}),Vt=vt.object("ReducerResult",{requestId:vt.u32(),timestamp:vt.timestamp(),get result(){return Et}}),Ct=vt.enum("RowSizeHint",{FixedSize:vt.u16(),RowOffsets:vt.array(vt.u64())}),Ot=vt.enum("ServerMessage",{get InitialConnection(){return Ut},get SubscribeApplied(){return $t},get UnsubscribeApplied(){return Wt},get SubscriptionError(){return zt},get TransactionUpdate(){return Ht},get OneOffQueryResult(){return Mt},get ReducerResult(){return Vt},get ProcedureResult(){return At}}),Pt=vt.object("SingleTableRows",{table:vt.string(),get rows(){return It}}),Ft=vt.object("Subscribe",{requestId:vt.u32(),get querySetId(){return Dt},queryStrings:vt.array(vt.string())}),$t=vt.object("SubscribeApplied",{requestId:vt.u32(),get querySetId(){return Dt},get rows(){return Nt}}),zt=vt.object("SubscriptionError",{requestId:vt.option(vt.u32()),get querySetId(){return Dt},error:vt.string()}),Kt=vt.object("TableUpdate",{tableName:vt.string(),get rows(){return vt.array(Lt)}}),Lt=vt.enum("TableUpdateRows",{get PersistentTable(){return Rt},get EventTable(){return Bt}}),Ht=vt.object("TransactionUpdate",{get querySets(){return vt.array(jt)}}),Qt=vt.object("Unsubscribe",{requestId:vt.u32(),get querySetId(){return Dt},get flags(){return Zt}}),Wt=vt.object("UnsubscribeApplied",{requestId:vt.u32(),get querySetId(){return Dt},get rows(){return vt.option(Nt)}}),Zt=vt.enum("UnsubscribeFlags",{Default:vt.unit(),SendDroppedRows:vt.unit()}),Gt=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)}},Xt={component:"đĻ",info:"âšī¸",warn:"â ī¸",error:"â",debug:"đ",trace:"đ"},Jt={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;"},Yt={component:"color: #8D6FDD;",info:"color: #007bff;",warn:"color: #ffc107;",error:"color: #dc3545;",debug:"color: #28a745;",trace:"color: #17a2b8;"},er={error:0,warn:1,info:2,debug:3,trace:4},tr="info",rr=e=>{tr=e},nr=()=>tr,ir=e=>"function"==typeof e?e():e,sr=e=>Array.from(e).map(e=>e.toString(16).padStart(2,"0")).join(""),ar=new Set(["token","authToken","authorization","accessToken","refreshToken"]),ur=e=>t(e,(e,r)=>{if(ar.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${sr(r)}`;const e=r.subarray(0,10);return`Uint8Array(len=${r.length}, head=0x${sr(e)})`}if(Array.isArray(r)&&r.length>=25){const e=t(r.slice(0,10));return`Array(len=${r.length}, head=${e??"[]"})`}return r}),or=(e,t,...r)=>{if(!(e=>er[e]<=er[tr])(e))return;const n=ir(t),i=r.map(ir);console.log(`%c${Xt[e]} ${e.toUpperCase()}%c ${n}`,Jt[e],Yt[e],...i)},cr=(e,t)=>e===t?0:e<t?-1:1,lr=class{rows;tableDef;emitter;constructor(e){this.tableDef=e,this.rows=new Map,this.emitter=new Gt;for(const e of this.tableDef.resolvedIndexes){const t=this.#r(this.tableDef,e);this[e.name]=t}}#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=cr(u,e.value);if(t<0)return!1;if(0===t&&"excluded"===e.tag)return!1}if("unbounded"!==t.tag){const e=cr(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 or("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?(or("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)}};or("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]);or("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)}},dr=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()}},hr=class{tables=new dr;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 lr(e);return this.tables.set(t,n),n}};var mr=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)}},pr=new mr(1,4,0);function fr(e){return`Module code was generated with an incompatible version of the spacetimedb cli (${e}). Update the cli version to at least ${pr.toString()} and regenerate the bindings. You can upgrade to the latest cli version by running: spacetime version upgrade`}var yr=class e{set onclose(e){this.#n.onclose=e}set onopen(e){this.#n.onopen=e}set onmessage(e){this.#n.onmessage=async t=>{const r=await this.#i(new Uint8Array(t.data));e({data:r})}}set onerror(e){this.#n.onerror=e}#n;async#i(e){const t=e[0],r=e.subarray(1);switch(t){case 0:return r;case 1:throw new Error("Brotli Compression not supported. Please use gzip or none compression in withCompression method on DbConnection.");case 2:return 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}(r,"gzip");default:throw new Error("Unexpected Compression Algorithm. Please use `gzip` or `none`")}}send(e){this.#n.send(e)}close(){this.#n.close()}constructor(e){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 or("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)}},gr=class{constructor(e,t){this.remoteModule=e,this.dbConnectionCtor=t,this.#s=yr.createWebSocketFn}#a;#u;#o;#c;#l=new Gt;#d="gzip";#h=!1;#m;#s;withUri(e){return this.#a=new URL(e),this}withDatabaseName(e){return this.#u=e,this}withToken(e){return this.#c=e,this}withWSFn(e){return this.#s=e,this}withCompression(e){return this.#d=e,this}withLightMode(e){return this.#h=e,this}withConfirmedReads(e){return this.#m=e,this}onConnect(e){return this.#l.on("connect",e),this}onConnectError(e){return this.#l.on("connectError",e),this}onDisconnect(e){return this.#l.on("disconnect",e),this}getUri(){return this.#a?.toString()??""}getModuleName(){return this.#u??""}build(){if(!this.#a)throw new Error("URI is required to connect to SpacetimeDB");if(!this.#u)throw new Error("Database name or address is required to connect to SpacetimeDB");return function(e){if(void 0===e)throw new Error(fr(e));if(mr.parseVersionString(e).compare(pr)<0)throw new Error(fr(e))}(this.remoteModule.versionInfo?.cliVersion),this.dbConnectionCtor({uri:this.#a,nameOrAddress:this.#u,identity:this.#o,token:this.#c,emitter:this.#l,compression:this.#d,lightMode:this.#h,confirmedReads:this.#m,createWSFn:this.#s,remoteModule:this.remoteModule})}},wr=Symbol("INTERNAL_REMOTE_MODULE"),br=class{constructor(e){this.db=e}#p=void 0;#f=void 0;onApplied(e){return this.#p=e,this}onError(e){return this.#f=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 Ir(this.db,r,this.#p,this.#f)}subscribeToAllTables(){const e=this.db[wr](),t=Object.values(e.tables).map(e=>`SELECT * FROM ${e.sourceName}`);this.subscribe(t)}},vr=class{subscriptions=new Map},Ir=class{constructor(e,t,r,n){this.db=e,this.#l.on("applied",e=>{this.#y=!0,r&&r(e)}),this.#l.on("error",(e,t)=>{this.#y=!1,this.#g=!0,n&&n(e,t)}),this.#w=this.db.registerSubscription(this,this.#l,t)}#w;#b=!1;#g=!1;#y=!1;#l=new Gt;unsubscribe(){if(this.#b)throw new Error("Unsubscribe has already been called");this.#b=!0,this.db.unregisterSubscription(this.#w),this.#l.on("end",e=>{this.#g=!0,this.#y=!1})}unsubscribeThen(e){if(this.#g)throw new Error("Subscription has already ended");if(this.#b)throw new Error("Unsubscribe has already been called");this.#b=!0,this.db.unregisterSubscription(this.#w),this.#l.on("end",t=>{this.#g=!0,this.#y=!1,e(t)})}isEnded(){return this.#g}isActive(){return this.#y}},Tr=class{isActive=!1;identity=void 0;token=void 0;[wr](){return this.#v}db;reducers;procedures;connectionId=O.random();#I=0;#T=0;#x=0;#l;#_=Promise.resolve();#B=[];#U=new vr;#v;#S=new Map;#M=new Map;#R=new Map;#A;#q;#N;#D;clientCache;ws;wsPromise;constructor({uri:e,nameOrAddress:t,identity:r,token:n,emitter:i,remoteModule:s,createWSFn:a,compression:u,lightMode:o,confirmedReads:c}){or("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.#v=s,this.#l=i,this.#A=Object.create(null),this.#D=Object.create(null);for(const e of Object.values(s.tables))this.#A[e.sourceName]=V.makeDeserializer(e.rowType),this.#D[e.sourceName]=e;this.#q=Object.create(null);for(const e of s.reducers)this.#q[e.name]={serialize:V.makeSerializer(e.paramsType),deserialize:V.makeDeserializer(e.paramsType)};this.#N=Object.create(null);for(const e of s.procedures)this.#N[e.name]={serializeArgs:V.makeSerializer(new Me(e.params).algebraicType.value),deserializeReturn:_.makeDeserializer(e.returnType.algebraicType)};const d=this.connectionId.toHexString();l.searchParams.set("connection_id",d),this.clientCache=new hr,this.db=this.#j(),this.reducers=this.#k(s),this.procedures=this.#E(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.#l.emit("disconnect",this),this.isActive=!1},this.ws.onerror=e=>{this.#l.emit("connectError",this,e),this.isActive=!1},this.ws.onopen=this.#V.bind(this),this.ws.onmessage=this.#C.bind(this),e)).catch(e=>{or("error","Error connecting to SpacetimeDB WS"),this.#l.emit("connectError",this,e)})}#O=()=>{const e=this.#I;return this.#I+=1,e};#P=()=>this.#T++;#j(){const e=Object.create(null);for(const t of Object.values(this.#D)){const r=t.accessorName;Object.defineProperty(e,r,{enumerable:!0,configurable:!1,get:()=>this.clientCache.getOrCreateTable(t)})}return e}#k(e){const t={},r=new o(1024);for(const n of e.reducers){const e=n.name,i=n.accessorName,{serialize:s}=this.#q[e];t[i]=t=>{r.clear(),s(r,t);const n=r.getBuffer();return this.callReducer(e,n,t)}}return t}#E(e){const t={},r=new o(1024);for(const n of e.procedures){const e=n.name,i=n.accessorName,{serializeArgs:a,deserializeReturn:u}=this.#N[e];t[i]=t=>{r.clear(),a(r,t);const n=r.getBuffer();return this.callProcedure(e,n).then(e=>u(new s(e)))}}return t}#F(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 br(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.#v.tables})}registerSubscription(e,t,r){const n=this.#O();this.#U.subscriptions.set(n,{handle:e,emitter:t});const i=this.#P();return this.#$(_t.Subscribe({queryStrings:r,querySetId:{id:n},requestId:i})),n}unregisterSubscription(e){const t=this.#P();this.#$(_t.Unsubscribe({querySetId:{id:e},requestId:t,flags:Zt.SendDroppedRows}))}#z(t,r,n){const i=n.rowsData,a=new s(i),u=[],o=this.#A[r],c=this.#D[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}#K(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}))}#L(e,t){const r=[];for(const n of e.tables)r.push({tableName:n.table,operations:this.#z(t,n.table,n.rows)});return this.#K(r)}#H(e,t){if("PersistentTable"===t.tag){const r=this.#z("insert",e,t.value.inserts),n=this.#z("delete",e,t.value.deletes);return r.concat(n)}return"EventTable"===t.tag?this.#z("insert",e,t.value.events):[]}#Q(e){const t=[];for(const r of e.tables){let e=[];for(const t of r.rows)e=e.concat(this.#H(r.tableName,t));t.push({tableName:r.tableName,operations:e})}return this.#K(t)}#W(e){const t=this.#B.splice(0);for(const r of t)e.send(r)}#Z=new o(1024);#$(e){const t=this.#Z;t.clear(),_t.serialize(t,e);const r=t.getBuffer();this.ws&&this.isActive?(this.#B.length&&this.#W(this.ws),or("trace",()=>`Sending message to server: ${ur(e)}`),this.ws.send(r)):(or("trace",()=>`Queuing message to server: ${ur(e)}`),this.#B.push(r.slice()))}#G(){return this.#x+=1,`${this.connectionId.toHexString()}:${this.#x}`}#V(){this.isActive=!0,this.ws&&this.#W(this.ws)}#X(e,t){const r=[];for(const n of e){const e=n.tableName,i=this.#D[e],s=this.clientCache.getOrCreateTable(i).applyOperations(n.operations,t);for(const e of s)r.push(e)}return r}#J(e,t){const r=[];for(const e of t.querySets){const t=this.#Q(e);for(const e of t)r.push(e)}return this.#X(this.#K(r),e)}async#Y(e){const t=Ot.deserialize(new s(e));switch(or("trace",()=>`Processing server message: ${ur(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.#l.emit("connect",this,this.identity,this.token);break;case"SubscribeApplied":{const e=t.value.querySetId.id,r=this.#U.subscriptions.get(e);if(!r)return void or("error",`Received SubscribeApplied for unknown querySetId ${e}.`);const n={id:this.#G(),tag:"SubscribeApplied"},i=this.#F(n),s=this.#L(t.value.rows,"insert"),a=this.#X(s,i),{event:u,...o}=i;r.emitter.emit("applied",o),or("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.#U.subscriptions.get(e);if(!r)return void or("error",`Received UnsubscribeApplied for unknown querySetId ${e}.`);const n={id:this.#G(),tag:"UnsubscribeApplied"},i=this.#F(n),s=t.value.rows?this.#L(t.value.rows,"delete"):[],a=this.#X(s,i),{event:u,...o}=i;r.emitter.emit("end",o),this.#U.subscriptions.delete(e),or("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.#G(),tag:"Error",value:n},s={...this.#F(i),event:n};if(null==r){or("error",`Disconnecting due to error for a previously applied subscription: ${t.value.error}`),this.disconnect();break}const a=this.#U.subscriptions.get(e);a?(a.emitter.emit("error",s,n),this.#U.subscriptions.delete(e)):or("error",`Received SubscriptionError for unknown querySetId ${e}:`,n);break}case"TransactionUpdate":{const e={id:this.#G(),tag:"Transaction"},r=this.#F(e),n=this.#J(r,t.value);or("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.#M.get(e),i=this.#G(),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.#F(s),u=this.#J(a,r.value.transactionUpdate);or("trace",()=>`Calling ${u.length} triggered row callbacks`);for(const e of u)e.cb()}this.#M.delete(e);const n=this.#S.get(e);this.#S.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.#R.get(r);this.#R.delete(r),i?.(n);break}case"OneOffQueryResult":or("warn","Received OneOffQueryResult but SDK does not expose one-off query APIs yet.")}}#C(e){this.#_=this.#_.then(()=>this.#Y(e.data))}callReducer(e,t,r){const{promise:n,resolve:i,reject:a}=Promise.withResolvers(),u=this.#P(),o=_t.CallReducer({reducer:e,args:t,requestId:u,flags:0});return this.#$(o),r&&this.#M.set(u,{name:e,args:r}),this.#S.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.#q[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.#P(),a=_t.CallProcedure({procedure:e,args:t,requestId:s,flags:0});return this.#$(a),this.#R.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.#N[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?.close())}on(e,t){this.#l.on(e,t)}off(e,t){this.#l.off(e,t)}onConnect(e){this.#l.on("connect",e)}onDisconnect(e){this.#l.on("disconnect",e)}onConnectError(e){this.#l.on("connectError",e)}removeOnConnect(e){this.#l.off("connect",e)}removeOnDisconnect(e){this.#l.off("disconnect",e)}removeOnConnectError(e){this.#l.off("connectError",e)}};function xr(e,t,r){const n=e=>t.rowType.algebraicType.value.elements[e].name,i=r.indexes.map(e=>{const t=e.accessorName;if("string"!=typeof t||0===t.length)throw new TypeError(`Index '${e.sourceName??"<unknown>"}' on table '${r.sourceName}' is missing accessor name`);const i="Direct"===e.algorithm.tag?[e.algorithm.value]:e.algorithm.value;return{name:t,unique:r.constraints.some(e=>"Unique"===e.data.tag&&e.data.value.columns.every(e=>i.includes(e))),algorithm:{BTree:"btree",Hash:"hash",Direct:"direct"}[e.algorithm.tag],columns:i.map(n)}});return{sourceName:t.tableName||e,accessorName:e,columns:t.rowType.row,rowType:t.rowSpacetimeType,indexes:t.idxs,constraints:r.constraints.map(e=>({name:e.sourceName,constraint:"unique",columns:e.data.value.columns.map(n)})),resolvedIndexes:i,tableDef:r,...r.isEvent?{isEvent:!0}:{}}}var _r=class{#ee=new Map;#te={typespace:{types:[]},tables:[],reducers:[],types:[],rowLevelSecurity:[],schedules:[],procedures:[],views:[],lifeCycleReducers:[],caseConversionPolicy:{tag:"SnakeCase"},explicitNames:{entries:[]}};get moduleDef(){return this.#te}rawModuleDefV10(){const e=[],t=t=>{t&&e.push(t)},r=this.#te;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.#te.caseConversionPolicy=e}get typespace(){return this.#te.typespace}resolveType(e){let t=e.algebraicType;for(;"Ref"===t.tag;)t=this.typespace.types[t.value];return t}registerTypesRecursively(e){return e instanceof Me&&!function(e){return null==e.typeName&&0===e.algebraicType.value.elements.length}(e)||e instanceof De||e instanceof qe?this.#re(e):e instanceof Se?new Se(this.registerTypesRecursively(e.value)):e instanceof Re?new Re(this.registerTypesRecursively(e.ok),this.registerTypesRecursively(e.err)):e instanceof Be?new Be(this.registerTypesRecursively(e.element)):e}#re(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.#ee.get(t);if(null!=n)return n;const i=e instanceof qe||e instanceof Me?{tag:"Product",value:{elements:[]}}:{tag:"Sum",value:{variants:[]}};if(n=new bt(this.#te.typespace.types.length),this.#te.typespace.types.push(i),this.#ee.set(t,n),e instanceof qe)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 Me)for(const[t,r]of Object.entries(e.elements))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});else if(e instanceof De)for(const[t,r]of Object.entries(e.variants))i.value.variants.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});return this.#te.types.push({sourceName:Br(r),ty:n.ref,customOrdering:!0}),n}};function Br(e){const t=e.split(".");return{sourceName:t.pop(),scope:t}}var Ur=class{constructor(e){this.schemaType=e}};function Sr(e){const t=new _r;return new Ur(function(e,t){const r=Object.create(null);for(const[n,i]of Object.entries(t))r[n]=xr(n,i,i.tableDef(e,n));return{tables:r}}(t,e))}function Mr(e){return Object.fromEntries(e.map(e=>[e.accessorName,e]))}var Rr=vt.enum("AlgebraicType",{Ref:vt.u32(),get Sum(){return Rn},get Product(){return $r},get Array(){return Rr},String:vt.unit(),Bool:vt.unit(),I8:vt.unit(),U8:vt.unit(),I16:vt.unit(),U16:vt.unit(),I32:vt.unit(),U32:vt.unit(),I64:vt.unit(),U64:vt.unit(),I128:vt.unit(),U128:vt.unit(),I256:vt.unit(),U256:vt.unit(),F32:vt.unit(),F64:vt.unit()}),Ar=vt.enum("CaseConversionPolicy",{None:vt.unit(),SnakeCase:vt.unit()}),qr=vt.enum("ExplicitNameEntry",{get Table(){return Fr},get Function(){return Fr},get Index(){return Fr}}),Nr=vt.object("ExplicitNames",{get entries(){return vt.array(qr)}}),Dr=vt.enum("FunctionVisibility",{Private:vt.unit(),ClientCallable:vt.unit()}),jr=vt.object("HttpHeaderPair",{name:vt.string(),value:vt.byteArray()}),kr=vt.object("HttpHeaders",{get entries(){return vt.array(jr)}}),Er=vt.enum("HttpMethod",{Get:vt.unit(),Head:vt.unit(),Post:vt.unit(),Put:vt.unit(),Delete:vt.unit(),Connect:vt.unit(),Options:vt.unit(),Trace:vt.unit(),Patch:vt.unit(),Extension:vt.string()});vt.object("HttpRequest",{get method(){return Er},get headers(){return kr},timeout:vt.option(vt.timeDuration()),uri:vt.string(),get version(){return Vr}}),vt.object("HttpResponse",{get headers(){return kr},get version(){return Vr},code:vt.u16()});var Vr=vt.enum("HttpVersion",{Http09:vt.unit(),Http10:vt.unit(),Http11:vt.unit(),Http2:vt.unit(),Http3:vt.unit()}),Cr=vt.enum("IndexType",{BTree:vt.unit(),Hash:vt.unit()}),Or=vt.enum("Lifecycle",{Init:vt.unit(),OnConnect:vt.unit(),OnDisconnect:vt.unit()}),Pr=vt.enum("MiscModuleExport",{get TypeAlias(){return jn}}),Fr=vt.object("NameMapping",{sourceName:vt.string(),canonicalName:vt.string()}),$r=vt.object("ProductType",{get elements(){return vt.array(zr)}}),zr=vt.object("ProductTypeElement",{name:vt.option(vt.string()),get algebraicType(){return Rr}}),Kr=vt.object("RawColumnDefV8",{colName:vt.string(),get colType(){return Rr}}),Lr=vt.object("RawColumnDefaultValueV10",{colId:vt.u16(),value:vt.byteArray()}),Hr=vt.object("RawColumnDefaultValueV9",{table:vt.string(),colId:vt.u16(),value:vt.byteArray()}),Qr=vt.enum("RawConstraintDataV9",{get Unique(){return Bn}}),Wr=vt.object("RawConstraintDefV10",{sourceName:vt.option(vt.string()),get data(){return Qr}}),Zr=vt.object("RawConstraintDefV8",{constraintName:vt.string(),constraints:vt.u8(),columns:vt.array(vt.u16())}),Gr=vt.object("RawConstraintDefV9",{name:vt.option(vt.string()),get data(){return Qr}}),Xr=vt.enum("RawIndexAlgorithm",{BTree:vt.array(vt.u16()),Hash:vt.array(vt.u16()),Direct:vt.u16()}),Jr=vt.object("RawIndexDefV10",{sourceName:vt.option(vt.string()),accessorName:vt.option(vt.string()),get algorithm(){return Xr}}),Yr=vt.object("RawIndexDefV8",{indexName:vt.string(),isUnique:vt.bool(),get indexType(){return Cr},columns:vt.array(vt.u16())}),en=vt.object("RawIndexDefV9",{name:vt.option(vt.string()),accessorName:vt.option(vt.string()),get algorithm(){return Xr}}),tn=vt.object("RawLifeCycleReducerDefV10",{get lifecycleSpec(){return Or},functionName:vt.string()}),rn=vt.enum("RawMiscModuleExportV9",{get ColumnDefaultValue(){return Hr},get Procedure(){return cn},get View(){return Sn}});vt.enum("RawModuleDef",{get V8BackCompat(){return an},get V9(){return un},get V10(){return nn}});var nn=vt.object("RawModuleDefV10",{get sections(){return vt.array(sn)}}),sn=vt.enum("RawModuleDefV10Section",{get Typespace(){return kn},get Types(){return vt.array(xn)},get Tables(){return vt.array(vn)},get Reducers(){return vt.array(ln)},get Procedures(){return vt.array(on)},get Views(){return vt.array(Un)},get Schedules(){return vt.array(mn)},get LifeCycleReducers(){return vt.array(tn)},get RowLevelSecurity(){return vt.array(hn)},get CaseConversionPolicy(){return Ar},get ExplicitNames(){return Nr}}),an=vt.object("RawModuleDefV8",{get typespace(){return kn},get tables(){return vt.array(Nn)},get reducers(){return vt.array(Mn)},get miscExports(){return vt.array(Pr)}}),un=vt.object("RawModuleDefV9",{get typespace(){return kn},get tables(){return vt.array(Tn)},get reducers(){return vt.array(dn)},get types(){return vt.array(_n)},get miscExports(){return vt.array(rn)},get rowLevelSecurity(){return vt.array(hn)}}),on=vt.object("RawProcedureDefV10",{sourceName:vt.string(),get params(){return $r},get returnType(){return Rr},get visibility(){return Dr}}),cn=vt.object("RawProcedureDefV9",{name:vt.string(),get params(){return $r},get returnType(){return Rr}}),ln=vt.object("RawReducerDefV10",{sourceName:vt.string(),get params(){return $r},get visibility(){return Dr},get okReturnType(){return Rr},get errReturnType(){return Rr}}),dn=vt.object("RawReducerDefV9",{name:vt.string(),get params(){return $r},get lifecycle(){return vt.option(Or)}}),hn=vt.object("RawRowLevelSecurityDefV9",{sql:vt.string()}),mn=vt.object("RawScheduleDefV10",{sourceName:vt.option(vt.string()),tableName:vt.string(),scheduleAtCol:vt.u16(),functionName:vt.string()}),pn=vt.object("RawScheduleDefV9",{name:vt.option(vt.string()),reducerName:vt.string(),scheduledAtColumn:vt.u16()}),fn=vt.object("RawScopedTypeNameV10",{scope:vt.array(vt.string()),sourceName:vt.string()}),yn=vt.object("RawScopedTypeNameV9",{scope:vt.array(vt.string()),name:vt.string()}),gn=vt.object("RawSequenceDefV10",{sourceName:vt.option(vt.string()),column:vt.u16(),start:vt.option(vt.i128()),minValue:vt.option(vt.i128()),maxValue:vt.option(vt.i128()),increment:vt.i128()}),wn=vt.object("RawSequenceDefV8",{sequenceName:vt.string(),colPos:vt.u16(),increment:vt.i128(),start:vt.option(vt.i128()),minValue:vt.option(vt.i128()),maxValue:vt.option(vt.i128()),allocated:vt.i128()}),bn=vt.object("RawSequenceDefV9",{name:vt.option(vt.string()),column:vt.u16(),start:vt.option(vt.i128()),minValue:vt.option(vt.i128()),maxValue:vt.option(vt.i128()),increment:vt.i128()}),vn=vt.object("RawTableDefV10",{sourceName:vt.string(),productTypeRef:vt.u32(),primaryKey:vt.array(vt.u16()),get indexes(){return vt.array(Jr)},get constraints(){return vt.array(Wr)},get sequences(){return vt.array(gn)},get tableType(){return Dn},get tableAccess(){return qn},get defaultValues(){return vt.array(Lr)},isEvent:vt.bool()}),In=vt.object("RawTableDefV8",{tableName:vt.string(),get columns(){return vt.array(Kr)},get indexes(){return vt.array(Yr)},get constraints(){return vt.array(Zr)},get sequences(){return vt.array(wn)},tableType:vt.string(),tableAccess:vt.string(),scheduled:vt.option(vt.string())}),Tn=vt.object("RawTableDefV9",{name:vt.string(),productTypeRef:vt.u32(),primaryKey:vt.array(vt.u16()),get indexes(){return vt.array(en)},get constraints(){return vt.array(Gr)},get sequences(){return vt.array(bn)},get schedule(){return vt.option(pn)},get tableType(){return Dn},get tableAccess(){return qn}}),xn=vt.object("RawTypeDefV10",{get sourceName(){return fn},ty:vt.u32(),customOrdering:vt.bool()}),_n=vt.object("RawTypeDefV9",{get name(){return yn},ty:vt.u32(),customOrdering:vt.bool()}),Bn=vt.object("RawUniqueConstraintDataV9",{columns:vt.array(vt.u16())}),Un=vt.object("RawViewDefV10",{sourceName:vt.string(),index:vt.u32(),isPublic:vt.bool(),isAnonymous:vt.bool(),get params(){return $r},get returnType(){return Rr}}),Sn=vt.object("RawViewDefV9",{name:vt.string(),index:vt.u32(),isPublic:vt.bool(),isAnonymous:vt.bool(),get params(){return $r},get returnType(){return Rr}}),Mn=vt.object("ReducerDef",{name:vt.string(),get args(){return vt.array(zr)}}),Rn=vt.object("SumType",{get variants(){return vt.array(An)}}),An=vt.object("SumTypeVariant",{name:vt.option(vt.string()),get algebraicType(){return Rr}}),qn=vt.enum("TableAccess",{Public:vt.unit(),Private:vt.unit()}),Nn=vt.object("TableDesc",{get schema(){return In},data:vt.u32()}),Dn=vt.enum("TableType",{System:vt.unit(),User:vt.unit()}),jn=vt.object("TypeAlias",{name:vt.string(),ty:vt.u32()}),kn=vt.object("Typespace",{get types(){return vt.array(Rr)}});function En(e,t,...r){const{name:n,public:i=!1,indexes:s=[],scheduled:a,event:u=!1}=e,c=new Map,l=[];t instanceof qe||(t=new qe(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=Xr.BTree([n]);break;case"hash":i=Xr.Hash([n]);break;case"direct":i=Xr.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??[]){const t=e.accessor;if("string"!=typeof t||0===t.length){const t=n??"<unnamed>",r=e.name??"<unnamed>";throw new TypeError(`Index '${r}' on table '${t}' must define a non-empty 'accessor'`)}let r;switch(e.algorithm){case"btree":r={tag:"BTree",value:e.columns.map(e=>c.get(e))};break;case"hash":r={tag:"Hash",value:e.columns.map(e=>c.get(e))};break;case"direct":r={tag:"Direct",value:c.get(e.column)}}h.push({sourceName:void 0,accessorName:t,algorithm:r,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(qr.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:s,constraints:m,schedule:a&&void 0!==f?{scheduleAtCol:f,reducer:a}:void 0}}vt.enum("ViewResultHeader",{RowData:vt.unit(),RawSql:vt.string()});var Vn=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 Cn(...e){const t=1===e.length&&Array.isArray(e[0])?e[0]:e;return new Vn(t)}function On(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 qe(t),paramsSpacetimeType:r,reducerDef:{name:e,params:r,lifecycle:void 0}}}function Pn(...e){return{procedures:1===e.length&&Array.isArray(e[0])?e[0]:e}}function Fn(e,t,r){return{name:e,accessorName:w(e),params:b(t),returnType:r}}export{Be as ArrayBuilder,at as ArrayColumnBuilder,xe as BoolBuilder,it as BoolColumnBuilder,Ue as ByteArrayBuilder,ut as ByteArrayColumnBuilder,hr as ClientCache,ze as ColumnBuilder,Ce as ConnectionIdBuilder,ft as ConnectionIdColumnBuilder,gr as DbConnectionBuilder,Tr as DbConnectionImpl,Ie as F32Builder,rt as F32ColumnBuilder,Te as F64Builder,nt as F64ColumnBuilder,be as I128Builder,et as I128ColumnBuilder,ye as I16Builder,Xe as I16ColumnBuilder,ve as I256Builder,tt as I256ColumnBuilder,ge as I32Builder,Je as I32ColumnBuilder,we as I64Builder,Ye as I64ColumnBuilder,fe as I8Builder,Ge as I8ColumnBuilder,Ve as IdentityBuilder,pt as IdentityColumnBuilder,F as InternalError,Se as OptionBuilder,ot as OptionColumnBuilder,Me as ProductBuilder,lt as ProductColumnBuilder,bt as RefBuilder,Re as ResultBuilder,ct as ResultColumnBuilder,qe as RowBuilder,Ee as ScheduleAtBuilder,mt as ScheduleAtColumnBuilder,P as SenderError,ke as SimpleSumBuilder,ht as SimpleSumColumnBuilder,_e as StringBuilder,st as StringColumnBuilder,br as SubscriptionBuilderImpl,Ir as SubscriptionHandleImpl,De as SumBuilder,dt as SumColumnBuilder,Pe as TimeDurationBuilder,gt as TimeDurationColumnBuilder,Oe as TimestampBuilder,yt as TimestampColumnBuilder,oe as TypeBuilder,me as U128Builder,We as U128ColumnBuilder,le as U16Builder,Le as U16ColumnBuilder,pe as U256Builder,Ze as U256ColumnBuilder,de as U32Builder,He as U32ColumnBuilder,he as U64Builder,Qe as U64ColumnBuilder,ce as U8Builder,Ke as U8ColumnBuilder,Fe as UuidBuilder,wt as UuidColumnBuilder,Mr as convertToAccessorMap,nr as getGlobalLogLevel,Fn as procedureSchema,Pn as procedures,On as reducerSchema,Cn as reducers,Sr as schema,rr as setGlobalLogLevel,or as stdbLogger,ur as stringify,vt as t,En as table};//# sourceMappingURL=index.browser.mjs.map
|