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 A.Product({elements:[{name:"__time_duration_micros__",algebraicType:A.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 A.Product({elements:[{name:"__timestamp_micros_since_unix_epoch__",algebraicType:A.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 A.Product({elements:[{name:"__uuid__",algebraicType:A.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){const t=e.replace(/([-_][a-z])/gi,e=>e.toUpperCase().replace("-","").replace("_",""));return t.charAt(0).toUpperCase()+t.slice(1)}function l(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)||!l(e[i],t[i]))return!1;return!0}function d(e){return Array.prototype.map.call(e.reverse(),e=>("00"+e.toString(16)).slice(-2)).join("")}function h(e){if(16!=e.length)throw new Error(`Uint8Array is not 16 bytes long: ${e}`);return new s(e).readU128()}function m(e){if(32!=e.length)throw new Error(`Uint8Array is not 32 bytes long: [${e}]`);return new s(e).readU256()}function p(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 f(e){return h(p(e))}function y(e){return m(p(e))}function g(e){const t=new o(16);return t.writeU128(e),t.getBuffer()}function w(e){return d(g(e))}function b(e){const t=new o(32);return t.writeU256(e),t.getBuffer()}function v(e){return d(b(e))}function I(e){return e.replace(/[-_]+/g,"_").replace(/_([a-zA-Z0-9])/g,(e,t)=>t.toUpperCase())}function T(e){return e.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase()}function _(e,t){for(;"Ref"===t.tag;)t=e.types[t.value];if("Product"===t.tag){let r=0;for(const{algebraicType:n}of t.value.elements)r+=_(e,n);return r}if("Sum"===t.tag){let r=1/0;for(const{algebraicType:n}of t.value.variants){const t=_(e,n);t<r&&(r=t)}return r===1/0&&(r=0),4+r}return"Array"==t.tag?4+4*_(e,t.value):{String:8,Sum:1,Bool:1,I8:1,U8:1,I16:2,U16:2,I32:4,U32:4,F32:4,I64:8,U64:8,F64:8,I128:16,U128:16,I256:32,U256:32}[t.tag]}function x(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,"typeBuilder"in t?t.typeBuilder:t]))}var U=Object.hasOwn,B=class e{__identity__;constructor(e){this.__identity__="string"==typeof e?y(e):e}static getAlgebraicType(){return A.Product({elements:[{name:"__identity__",algebraicType:A.U256}]})}isEqual(e){return this.toHexString()===e.toHexString()}equals(e){return this.isEqual(e)}toHexString(){return v(this.__identity__)}toUint8Array(){return b(this.__identity__)}static fromString(t){return new e(t)}static zero(){return new e(0n)}toString(){return this.toHexString()}},S={},M=new Map,R=new Map,A={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 z.makeSerializer(e.value,t);case"Sum":return K.makeSerializer(e.value,t);case"Array":if("U8"===e.value.tag)return j;{const r=A.makeSerializer(e.value,t);return(e,t)=>{e.writeU32(t.length);for(const n of t)r(e,n)}}default:return q[e.tag]}},serializeValue(e,t,r,n){A.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 z.makeDeserializer(e.value,t);case"Sum":return K.makeDeserializer(e.value,t);case"Array":if("U8"===e.value.tag)return E;{const r=A.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 D[e.tag]}},deserializeValue:(e,t,r)=>A.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 z.intoMapKey(e.value,t);default:{const r=new o(10);return A.serializeValue(r,e,t),r.toBase64()}}}};function N(e){return Function.prototype.call.bind(e)}var q={Bool:N(o.prototype.writeBool),I8:N(o.prototype.writeI8),U8:N(o.prototype.writeU8),I16:N(o.prototype.writeI16),U16:N(o.prototype.writeU16),I32:N(o.prototype.writeI32),U32:N(o.prototype.writeU32),I64:N(o.prototype.writeI64),U64:N(o.prototype.writeU64),I128:N(o.prototype.writeI128),U128:N(o.prototype.writeU128),I256:N(o.prototype.writeI256),U256:N(o.prototype.writeU256),F32:N(o.prototype.writeF32),F64:N(o.prototype.writeF64),String:N(o.prototype.writeString)};Object.freeze(q);var j=N(o.prototype.writeUInt8Array),D={Bool:N(s.prototype.readBool),I8:N(s.prototype.readI8),U8:N(s.prototype.readU8),I16:N(s.prototype.readI16),U16:N(s.prototype.readU16),I32:N(s.prototype.readI32),U32:N(s.prototype.readU32),I64:N(s.prototype.readI64),U64:N(s.prototype.readU64),I128:N(s.prototype.readI128),U128:N(s.prototype.readU128),I256:N(s.prototype.readI256),U256:N(s.prototype.readU256),F32:N(s.prototype.readF32),F64:N(s.prototype.readF64),String:N(s.prototype.readString)};Object.freeze(D);var E=N(s.prototype.readUInt8Array),O={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},k=new Set(Object.keys(O)),C=e=>e.elements.every(({algebraicType:e})=>k.has(e.tag)),V={Bool:"Uint8",I8:"Int8",U8:"Uint8",I16:"Int16",U16:"Uint16",I32:"Int32",U32:"Uint32",I64:"BigInt64",U64:"BigUint64",F32:"Float32",F64:"Float64"},P={__time_duration_micros__:e=>new r(e.readI64()),__timestamp_micros_since_unix_epoch__:e=>new n(e.readI64()),__identity__:e=>new B(e.readU256()),__connection_id__:e=>new L(e.readU128()),__uuid__:e=>new i(e.readU128())};Object.freeze(P);var F=()=>({}),$=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}`},z={makeSerializer(e,t){let r=M.get(e);if(null!=r)return r;if(C(e)){const t=(e=>e.elements.reduce((e,{algebraicType:t})=>e+O[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 V?`view.set${V[t]}(writer.offset, value.${e}, ${O[t]>1?"true":""});\nwriter.offset += ${O[t]};`:`writer.write${t}(value.${e});`).join("\n")}`;return r=Function("writer","value",n),M.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),M.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=A.makeSerializer(i,t);return Object.freeze(n),r},serializeValue(e,t,r,n){z.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){switch(e.elements.length){case 0:return F;case 1:{const t=e.elements[0].name;if(U(P,t))return P[t]}}let r=R.get(e);if(null!=r)return r;if(C(e)){const t=`"use strict";\nconst result = { ${e.elements.map($).join(", ")} };\nconst view = reader.view;\n${e.elements.map(({name:e,algebraicType:{tag:t}})=>t in V?`result.${e} = view.get${V[t]}(reader.offset, ${O[t]>1?"true":""});\nreader.offset += ${O[t]};`:`result.${e} = reader.read${t}();`).join("\n")}\nreturn result;`;return r=Function("reader",t),R.set(e,r),r}const n={};r=Function("reader",`"use strict";\nconst result = { ${e.elements.map($).join(", ")} };\n${e.elements.map(({name:e})=>`result.${e} = this.${e}(reader);`).join("\n")}\nreturn result;`).bind(n),R.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=A.makeDeserializer(i,t);return Object.freeze(n),r},deserializeValue:(e,t,r)=>z.makeDeserializer(t,r)(e),intoMapKey(e,t){if(1===e.elements.length){const r=e.elements[0].name;if(U(P,r))return t[r]}const r=new o(10);return A.serializeValue(r,A.Product(e),t),r.toBase64()}},K={makeSerializer(e,t){if(2==e.variants.length&&"some"===e.variants[0].name&&"none"===e.variants[1].name){const r=A.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=A.makeSerializer(e.variants[0].algebraicType,t),n=A.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=M.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),M.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=A.makeSerializer(i,t);return Object.freeze(n),r}},serializeValue(e,t,r,n){K.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=A.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=A.makeDeserializer(e.variants[0].algebraicType,t),n=A.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=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),R.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=A.makeDeserializer(i,t);return Object.freeze(n),r}},deserializeValue:(e,t,r)=>K.makeDeserializer(t,r)(e)},L=class e{__connection_id__;constructor(e){this.__connection_id__=e}static getAlgebraicType(){return A.Product({elements:[{name:"__connection_id__",algebraicType:A.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 w(this.__connection_id__)}toUint8Array(){return g(this.__connection_id__)}static fromString(t){return new e(f(t))}static fromStringOrNull(t){const r=e.fromString(t);return r.isZero()?null:r}},H=class extends Error{constructor(e){super(e)}get name(){return"SenderError"}},Q=class extends Error{constructor(e){super(e)}get name(){return"InternalError"}};function W(e,t){const r=new s(t);return e.deserialize(r)}var Z={interval:e=>G(e),time:e=>X(e),getAlgebraicType:()=>A.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))}},G=e=>({tag:"Interval",value:new r(e)}),X=e=>({tag:"Time",value:new n(e)}),J=Z,Y={getAlgebraicType:e=>A.Sum({variants:[{name:"some",algebraicType:e},{name:"none",algebraicType:A.Product({elements:[]})}]})},ee={getAlgebraicType:(e,t)=>A.Sum({variants:[{name:"ok",algebraicType:e},{name:"err",algebraicType:t}]})},te=Symbol("QueryBrand"),re=e=>!!e&&"object"==typeof e&&te in e,ne=e=>!!e&&"object"==typeof e&&te in e;function ie(e){return e.toSql()}var se=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")}[te]=!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=ve(e.table.sourceName),n=ve(t.table.sourceName);let i=`SELECT ${n}.* FROM ${r} JOIN ${n} ON ${ge(this.joinCondition)}`;const s=[];if(e.whereClause&&s.push(ge(e.whereClause)),t.whereClause&&s.push(ge(t.whereClause)),s.length>0){i+=` WHERE ${1===s.length?s[0]:s.map(we).join(" AND ")}`}return i}},ae=class e{constructor(e,t){this.table=e,this.whereClause=t}[te]=!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 se(n,this,i)}leftSemijoin(t,r){const n=new e(t),i=r(this.table.indexedCols,t.indexedCols);return new se(this,n,i)}toSql(){return function(e,t,r=[]){const n=`SELECT * FROM ${ve(e.sourceName)}`,i=[];t&&i.push(ge(t));if(i.push(...r),0===i.length)return n;const s=1===i.length?i[0]:i.map(we).join(" AND ");return`${n} WHERE ${s}`}(this.table,this.whereClause)}build(){return this}},ue=class{[te]=!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 le(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 ae(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 oe(e){return new ue(e)}function ce(e){const t=Object.create(null);for(const r of Object.values(e.tables)){const e=oe(r);t[r.accessorName]=e}return Object.freeze(t)}var le=class{type="column";column;table;tsValueType;spacetimeType;constructor(e,t,r){this.table=e,this.column=t,this.spacetimeType=r}eq(e){return new me({type:"eq",left:this,right:he(e)})}ne(e){return new me({type:"ne",left:this,right:he(e)})}lt(e){return new me({type:"lt",left:this,right:he(e)})}lte(e){return new me({type:"lte",left:this,right:he(e)})}gt(e){return new me({type:"gt",left:this,right:he(e)})}gte(e){return new me({type:"gte",left:this,right:he(e)})}};function de(e){return{type:"literal",value:e}}function he(e){return"literal"===e.type||"object"==typeof e&&null!=e&&"type"in e&&"column"===e.type?e:de(e)}var me=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 pe(e){return new me({type:"not",clause:e.data})}function fe(...e){return new me({type:"and",clauses:e.map(e=>e.data)})}function ye(...e){return new me({type:"or",clauses:e.map(e=>e.data)})}function ge(e,t){const r=e instanceof me?e.data:e;switch(r.type){case"eq":return`${be(r.left)} = ${be(r.right)}`;case"ne":return`${be(r.left)} <> ${be(r.right)}`;case"gt":return`${be(r.left)} > ${be(r.right)}`;case"gte":return`${be(r.left)} >= ${be(r.right)}`;case"lt":return`${be(r.left)} < ${be(r.right)}`;case"lte":return`${be(r.left)} <= ${be(r.right)}`;case"and":return r.clauses.map(e=>ge(e)).map(we).join(" AND ");case"or":return r.clauses.map(e=>ge(e)).map(we).join(" OR ");case"not":return`NOT ${we(ge(r.clause))}`}}function we(e){return`(${e})`}function be(e,t){if(Ie(e))return function(e){if(null==e)return"NULL";if(e instanceof B||e instanceof L)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`${ve(e.table)}.${ve(e.column)}`}function ve(e){return`"${e.replace(/"/g,'""')}"`}function Ie(e){return"literal"===e.type}function Te(e,t){return _e(e.data,t)}function _e(e,t){switch(e.type){case"eq":return xe(e.left,t)===xe(e.right,t);case"ne":return xe(e.left,t)!==xe(e.right,t);case"gt":return xe(e.left,t)>xe(e.right,t);case"gte":return xe(e.left,t)>=xe(e.right,t);case"lt":return xe(e.left,t)<xe(e.right,t);case"lte":return xe(e.left,t)<=xe(e.right,t);case"and":return e.clauses.every(e=>_e(e,t));case"or":return e.clauses.some(e=>_e(e,t));case"not":return!_e(e.clause,t)}}function xe(e,t){return Ie(e)?Ue(e.value):Ue(t[e.column])}function Ue(e){return function(e){return!!e&&"object"==typeof e&&"function"==typeof e.toHexString}(e)?e.toHexString():function(e){return!(!e||"object"!=typeof e)&&(e instanceof n||"bigint"==typeof e.__timestamp_micros_since_unix_epoch__)}(e)?e.__timestamp_micros_since_unix_epoch__:e}function Be(e){if(e.table)return e.table.name;if(e.name)return e.name;if(e.sourceQuery)return e.sourceQuery.table.name;throw new Error("Cannot extract table name from query")}function Se(e){if(e.table)return e.table.accessorName;if(e.accessorName)return e.accessorName;if(e.sourceQuery)return e.sourceQuery.table.accessorName;throw new Error("Cannot extract accessor name from query")}function Me(e){if(e.whereClause)return e.whereClause}function Re(e,t){return{...e,...t}}var Ae=class{type;algebraicType;constructor(e){this.algebraicType=e}optional(){return new Ze(this)}serialize(e,t){(this.serialize=A.makeSerializer(this.algebraicType))(e,t)}deserialize(e){return(this.deserialize=A.makeDeserializer(this.algebraicType))(e)}},Ne=class extends Ae{constructor(){super(A.U8)}index(e="btree"){return new ht(this,Re(lt,{indexType:e}))}unique(){return new ht(this,Re(lt,{isUnique:!0}))}primaryKey(){return new ht(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new ht(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new ht(this,Re(lt,{defaultValue:e}))}name(e){return new ht(this,Re(lt,{name:e}))}},qe=class extends Ae{constructor(){super(A.U16)}index(e="btree"){return new mt(this,Re(lt,{indexType:e}))}unique(){return new mt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new mt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new mt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new mt(this,Re(lt,{defaultValue:e}))}name(e){return new mt(this,Re(lt,{name:e}))}},je=class extends Ae{constructor(){super(A.U32)}index(e="btree"){return new pt(this,Re(lt,{indexType:e}))}unique(){return new pt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new pt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new pt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new pt(this,Re(lt,{defaultValue:e}))}name(e){return new pt(this,Re(lt,{name:e}))}},De=class extends Ae{constructor(){super(A.U64)}index(e="btree"){return new ft(this,Re(lt,{indexType:e}))}unique(){return new ft(this,Re(lt,{isUnique:!0}))}primaryKey(){return new ft(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new ft(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new ft(this,Re(lt,{defaultValue:e}))}name(e){return new ft(this,Re(lt,{name:e}))}},Ee=class extends Ae{constructor(){super(A.U128)}index(e="btree"){return new yt(this,Re(lt,{indexType:e}))}unique(){return new yt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new yt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new yt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new yt(this,Re(lt,{defaultValue:e}))}name(e){return new yt(this,Re(lt,{name:e}))}},Oe=class extends Ae{constructor(){super(A.U256)}index(e="btree"){return new gt(this,Re(lt,{indexType:e}))}unique(){return new gt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new gt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new gt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new gt(this,Re(lt,{defaultValue:e}))}name(e){return new gt(this,Re(lt,{name:e}))}},ke=class extends Ae{constructor(){super(A.I8)}index(e="btree"){return new wt(this,Re(lt,{indexType:e}))}unique(){return new wt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new wt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new wt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new wt(this,Re(lt,{defaultValue:e}))}name(e){return new wt(this,Re(lt,{name:e}))}},Ce=class extends Ae{constructor(){super(A.I16)}index(e="btree"){return new bt(this,Re(lt,{indexType:e}))}unique(){return new bt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new bt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new bt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new bt(this,Re(lt,{defaultValue:e}))}name(e){return new bt(this,Re(lt,{name:e}))}},Ve=class extends Ae{constructor(){super(A.I32)}index(e="btree"){return new vt(this,Re(lt,{indexType:e}))}unique(){return new vt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new vt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new vt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new vt(this,Re(lt,{defaultValue:e}))}name(e){return new vt(this,Re(lt,{name:e}))}},Pe=class extends Ae{constructor(){super(A.I64)}index(e="btree"){return new It(this,Re(lt,{indexType:e}))}unique(){return new It(this,Re(lt,{isUnique:!0}))}primaryKey(){return new It(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new It(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new It(this,Re(lt,{defaultValue:e}))}name(e){return new It(this,Re(lt,{name:e}))}},Fe=class extends Ae{constructor(){super(A.I128)}index(e="btree"){return new Tt(this,Re(lt,{indexType:e}))}unique(){return new Tt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Tt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Tt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Tt(this,Re(lt,{defaultValue:e}))}name(e){return new Tt(this,Re(lt,{name:e}))}},$e=class extends Ae{constructor(){super(A.I256)}index(e="btree"){return new _t(this,Re(lt,{indexType:e}))}unique(){return new _t(this,Re(lt,{isUnique:!0}))}primaryKey(){return new _t(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new _t(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new _t(this,Re(lt,{defaultValue:e}))}name(e){return new _t(this,Re(lt,{name:e}))}},ze=class extends Ae{constructor(){super(A.F32)}default(e){return new xt(this,Re(lt,{defaultValue:e}))}name(e){return new xt(this,Re(lt,{name:e}))}},Ke=class extends Ae{constructor(){super(A.F64)}default(e){return new Ut(this,Re(lt,{defaultValue:e}))}name(e){return new Ut(this,Re(lt,{name:e}))}},Le=class extends Ae{constructor(){super(A.Bool)}index(e="btree"){return new Bt(this,Re(lt,{indexType:e}))}unique(){return new Bt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Bt(this,Re(lt,{isPrimaryKey:!0}))}default(e){return new Bt(this,Re(lt,{defaultValue:e}))}name(e){return new Bt(this,Re(lt,{name:e}))}},He=class extends Ae{constructor(){super(A.String)}index(e="btree"){return new St(this,Re(lt,{indexType:e}))}unique(){return new St(this,Re(lt,{isUnique:!0}))}primaryKey(){return new St(this,Re(lt,{isPrimaryKey:!0}))}default(e){return new St(this,Re(lt,{defaultValue:e}))}name(e){return new St(this,Re(lt,{name:e}))}},Qe=class extends Ae{element;constructor(e){super(A.Array(e.algebraicType)),this.element=e}default(e){return new Mt(this,Re(lt,{defaultValue:e}))}name(e){return new Mt(this,Re(lt,{name:e}))}},We=class extends Ae{constructor(){super(A.Array(A.U8))}default(e){return new Rt(Re(lt,{defaultValue:e}))}name(e){return new Rt(Re(lt,{name:e}))}},Ze=class extends Ae{value;constructor(e){super(Y.getAlgebraicType(e.algebraicType)),this.value=e}default(e){return new At(this,Re(lt,{defaultValue:e}))}name(e){return new At(this,Re(lt,{name:e}))}},Ge=class extends Ae{typeName;elements;constructor(e,t){var r;super(A.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 qt(this,Re(lt,{defaultValue:e}))}name(e){return new qt(this,Re(lt,{name:e}))}},Xe=class extends Ae{ok;err;constructor(e,t){super(ee.getAlgebraicType(e.algebraicType,t.algebraicType)),this.ok=e,this.err=t}default(e){return new Nt(this,Re(lt,{defaultValue:e}))}},Je=class extends Ae{constructor(){super({tag:"Product",value:{elements:[]}})}},Ye=class extends Ae{row;typeName;constructor(e,t){const r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t instanceof dt?t:new dt(t,{})])),n=Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].typeBuilder.algebraicType}}));super(A.Product({elements:n})),this.row=r,this.typeName=t}},et=class extends Ae{variants;typeName;constructor(e,t){var r;super(A.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 Je}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 jt(this,Re(lt,{defaultValue:e}))}name(e){return new jt(this,Re(lt,{name:e}))}},tt=et,rt=class extends et{index(e="btree"){return new Dt(this,Re(lt,{indexType:e}))}primaryKey(){return new Dt(this,Re(lt,{isPrimaryKey:!0}))}},nt=rt,it=class extends Ae{constructor(){super(J.getAlgebraicType())}default(e){return new Et(this,Re(lt,{defaultValue:e}))}name(e){return new Et(this,Re(lt,{name:e}))}},st=class extends Ae{constructor(){super(B.getAlgebraicType())}index(e="btree"){return new Ot(this,Re(lt,{indexType:e}))}unique(){return new Ot(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Ot(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Ot(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Ot(this,Re(lt,{defaultValue:e}))}name(e){return new Ot(this,Re(lt,{name:e}))}},at=class extends Ae{constructor(){super(L.getAlgebraicType())}index(e="btree"){return new kt(this,Re(lt,{indexType:e}))}unique(){return new kt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new kt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new kt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new kt(this,Re(lt,{defaultValue:e}))}name(e){return new kt(this,Re(lt,{name:e}))}},ut=class extends Ae{constructor(){super(n.getAlgebraicType())}index(e="btree"){return new Ct(this,Re(lt,{indexType:e}))}unique(){return new Ct(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Ct(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Ct(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Ct(this,Re(lt,{defaultValue:e}))}name(e){return new Ct(this,Re(lt,{name:e}))}},ot=class extends Ae{constructor(){super(r.getAlgebraicType())}index(e="btree"){return new Vt(this,Re(lt,{indexType:e}))}unique(){return new Vt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Vt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Vt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Vt(this,Re(lt,{defaultValue:e}))}name(e){return new Vt(this,Re(lt,{name:e}))}},ct=class extends Ae{constructor(){super(i.getAlgebraicType())}index(e="btree"){return new Pt(this,Re(lt,{indexType:e}))}unique(){return new Pt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Pt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Pt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Pt(this,Re(lt,{defaultValue:e}))}name(e){return new Pt(this,Re(lt,{name:e}))}},lt={},dt=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)}},ht=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},mt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},pt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},ft=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},yt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},gt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},wt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},bt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},vt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},It=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Tt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},_t=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},xt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ut=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Bt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},St=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Mt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Rt=class e extends dt{constructor(e){super(new Ae(A.Array(A.U8)),e)}default(t){return new e(Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(Re(this.columnMetadata,{name:t}))}},At=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Nt=class e extends dt{constructor(e,t){super(e,t)}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}},qt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},jt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Dt=class e extends jt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}},Et=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ot=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},kt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ct=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Vt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Pt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ft=class extends Ae{ref;__spacetimeType;constructor(e){super(A.Ref(e)),this.ref=e}},$t={bool:()=>new Le,string:()=>new He,number:()=>new Ke,i8:()=>new ke,u8:()=>new Ne,i16:()=>new Ce,u16:()=>new qe,i32:()=>new Ve,u32:()=>new je,i64:()=>new Pe,u64:()=>new De,i128:()=>new Fe,u128:()=>new Ee,i256:()=>new $e,u256:()=>new Oe,f32:()=>new ze,f64:()=>new Ke,object:(e,t)=>{if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the object.");return new Ge(t,e)}return new Ge(e,void 0)},row:(e,t)=>{const[r,n]="string"==typeof e?[t,e]:[e,void 0];return new Ye(r,n)},array:e=>new Qe(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 Je;return new rt(e,r)}return new tt(n,r)},unit:()=>new Je,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 it,option:e=>new Ze(e),result:(e,t)=>new Xe(e,t),identity:()=>new st,connectionId:()=>new at,timestamp:()=>new ut,timeDuration:()=>new ot,uuid:()=>new ct,byteArray:()=>new We},zt=$t.object("BsatnRowList",{get sizeHint(){return ar},rowsData:$t.byteArray()}),Kt=$t.object("CallProcedure",{requestId:$t.u32(),flags:$t.u8(),procedure:$t.string(),args:$t.byteArray()}),Lt=$t.object("CallReducer",{requestId:$t.u32(),flags:$t.u8(),reducer:$t.string(),args:$t.byteArray()}),Ht=$t.enum("ClientMessage",{get Subscribe(){return cr},get Unsubscribe(){return fr},get OneOffQuery(){return Zt},get CallReducer(){return Lt},get CallProcedure(){return Kt}}),Qt=$t.object("EventTableRows",{get events(){return zt}}),Wt=$t.object("InitialConnection",{identity:$t.identity(),connectionId:$t.connectionId(),token:$t.string()}),Zt=$t.object("OneOffQuery",{requestId:$t.u32(),queryString:$t.string()}),Gt=$t.object("OneOffQueryResult",{requestId:$t.u32(),get result(){return $t.result(er,$t.string())}}),Xt=$t.object("PersistentTableRows",{get inserts(){return zt},get deletes(){return zt}}),Jt=$t.object("ProcedureResult",{get status(){return Yt},timestamp:$t.timestamp(),totalHostExecutionDuration:$t.timeDuration(),requestId:$t.u32()}),Yt=$t.enum("ProcedureStatus",{Returned:$t.byteArray(),InternalError:$t.string()}),er=$t.object("QueryRows",{get tables(){return $t.array(or)}}),tr=$t.object("QuerySetId",{id:$t.u32()}),rr=$t.object("QuerySetUpdate",{get querySetId(){return tr},get tables(){return $t.array(hr)}}),nr=$t.object("ReducerOk",{retValue:$t.byteArray(),get transactionUpdate(){return pr}}),ir=$t.enum("ReducerOutcome",{get Ok(){return nr},OkEmpty:$t.unit(),Err:$t.byteArray(),InternalError:$t.string()}),sr=$t.object("ReducerResult",{requestId:$t.u32(),timestamp:$t.timestamp(),get result(){return ir}}),ar=$t.enum("RowSizeHint",{FixedSize:$t.u16(),RowOffsets:$t.array($t.u64())}),ur=$t.enum("ServerMessage",{get InitialConnection(){return Wt},get SubscribeApplied(){return lr},get UnsubscribeApplied(){return yr},get SubscriptionError(){return dr},get TransactionUpdate(){return pr},get OneOffQueryResult(){return Gt},get ReducerResult(){return sr},get ProcedureResult(){return Jt}}),or=$t.object("SingleTableRows",{table:$t.string(),get rows(){return zt}}),cr=$t.object("Subscribe",{requestId:$t.u32(),get querySetId(){return tr},queryStrings:$t.array($t.string())}),lr=$t.object("SubscribeApplied",{requestId:$t.u32(),get querySetId(){return tr},get rows(){return er}}),dr=$t.object("SubscriptionError",{requestId:$t.option($t.u32()),get querySetId(){return tr},error:$t.string()}),hr=$t.object("TableUpdate",{tableName:$t.string(),get rows(){return $t.array(mr)}}),mr=$t.enum("TableUpdateRows",{get PersistentTable(){return Xt},get EventTable(){return Qt}}),pr=$t.object("TransactionUpdate",{get querySets(){return $t.array(rr)}}),fr=$t.object("Unsubscribe",{requestId:$t.u32(),get querySetId(){return tr},get flags(){return gr}}),yr=$t.object("UnsubscribeApplied",{requestId:$t.u32(),get querySetId(){return tr},get rows(){return $t.option(er)}}),gr=$t.enum("UnsubscribeFlags",{Default:$t.unit(),SendDroppedRows:$t.unit()}),wr=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)}},br={component:"đĻ",info:"âšī¸",warn:"â ī¸",error:"â",debug:"đ",trace:"đ"},vr={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;"},Ir={component:"color: #8D6FDD;",info:"color: #007bff;",warn:"color: #ffc107;",error:"color: #dc3545;",debug:"color: #28a745;",trace:"color: #17a2b8;"},Tr={error:0,warn:1,info:2,debug:3,trace:4},_r="info",xr=e=>{_r=e},Ur=()=>_r,Br=e=>"function"==typeof e?e():e,Sr=e=>Array.from(e).map(e=>e.toString(16).padStart(2,"0")).join(""),Mr=new Set(["token","authToken","authorization","accessToken","refreshToken"]),Rr=e=>t(e,(e,r)=>{if(Mr.has(e))return"[REDACTED]";if(r&&"object"==typeof r&&"__identity__"in r&&"bigint"==typeof r.__identity__)return v(r.__identity__);if(r&&"object"==typeof r&&"__connection_id__"in r&&"bigint"==typeof r.__connection_id__)return w(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}),Ar=(e,t,...r)=>{if(!(e=>Tr[e]<=Tr[_r])(e))return;const n=Br(t),i=r.map(Br);console.log(`%c${br[e]} ${e.toUpperCase()}%c ${n}`,vr[e],Ir[e],...i)},Nr=(e,t)=>e===t?0:e<t?-1:1,qr=class{rows;tableDef;emitter;constructor(e){this.tableDef=e,this.rows=new Map,this.emitter=new wr;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(!l(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=Nr(u,e.value);if(t<0)return!1;if(0===t&&"excluded"===e.tag)return!1}if("unbounded"!==t.tag){const e=Nr(u,t.value);if(e>0)return!1;if(0===e&&"excluded"===t.tag)return!1}return!0}return!!l(u,a)},s=e.constraints.some(e=>"unique"===e.constraint&&l(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(l(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 Ar("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?(Ar("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)}};Ar("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]);Ar("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)}},jr=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 jr;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 qr(e);return this.tables.set(t,n),n}};var Er=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)}},Or=new Er(1,4,0);function kr(e){return`Module code was generated with an incompatible version of the spacetimedb cli (${e}). Update the cli version to at least ${Or.toString()} and regenerate the bindings. You can upgrade to the latest cli version by running: spacetime version upgrade`}var Cr=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 Ar("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)}},Vr=class{constructor(e,t){this.remoteModule=e,this.dbConnectionCtor=t,this.#o=Cr.createWebSocketFn}#c;#l;#d;#h;#m=new wr;#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(kr(e));if(Er.parseVersionString(e).compare(Or)<0)throw new Error(kr(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})}},Pr=Symbol("INTERNAL_REMOTE_MODULE"),Fr=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(re(e))return ie(e);throw new Error("Subscriptions must be SQL strings or typed queries")});return new zr(this.db,r,this.#g,this.#w)}subscribeToAllTables(){const e=this.db[Pr](),t=Object.values(e.tables).map(e=>`SELECT * FROM ${e.sourceName}`);this.subscribe(t)}},$r=class{subscriptions=new Map},zr=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 wr;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}},Kr=class{isActive=!1;identity=void 0;token=void 0;[Pr](){return this.#_}db;reducers;procedures;connectionId=L.random();#x=0;#U=0;#B=0;#m;#S=Promise.resolve();#M=[];#R=new $r;#_;#A=new Map;#N=new Map;#q=new Map;#j;#D;#E;#O;clientCache;ws;wsPromise;constructor({uri:e,nameOrAddress:t,identity:r,token:n,emitter:i,remoteModule:s,createWSFn:a,compression:u,lightMode:o,confirmedReads:c}){Ar("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.#j=Object.create(null),this.#O=Object.create(null);for(const e of Object.values(s.tables))this.#j[e.sourceName]=z.makeDeserializer(e.rowType),this.#O[e.sourceName]=e;this.#D=Object.create(null);for(const e of s.reducers)this.#D[e.name]={serialize:z.makeSerializer(e.paramsType),deserialize:z.makeDeserializer(e.paramsType)};this.#E=Object.create(null);for(const e of s.procedures)this.#E[e.name]={serializeArgs:z.makeSerializer(new Ge(e.params).algebraicType.value),deserializeReturn:A.makeDeserializer(e.returnType.algebraicType)};const d=this.connectionId.toHexString();l.searchParams.set("connection_id",d),this.clientCache=new Dr,this.db=this.#k(),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=>{Ar("error","Error connecting to SpacetimeDB WS"),this.#m.emit("connectError",this,e)})}#P=()=>{const e=this.#x;return this.#x+=1,e};#F=()=>this.#U++;#k(){const e=Object.create(null);for(const t of Object.values(this.#O)){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.#D[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.#E[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 Fr(this);getTablesMap(){return ce({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(Ht.Subscribe({queryStrings:r,querySetId:{id:n},requestId:i})),n}unregisterSubscription(e){const t=this.#F();this.#z(Ht.Unsubscribe({querySetId:{id:e},requestId:t,flags:gr.SendDroppedRows}))}#K(t,r,n){const i=n.rowsData,a=new s(i),u=[],o=this.#j[r],c=this.#O[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=A.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){Ar("trace",()=>`Sending message to server: ${Rr(t)}`);const r=new o(1024);Ht.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.#B+=1,`${this.connectionId.toHexString()}:${this.#B}`}#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.#O[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=ur.deserialize(new s(e));switch(Ar("trace",()=>`Processing server message: ${Rr(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 Ar("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),Ar("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 Ar("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),Ar("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){Ar("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)):Ar("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);Ar("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);Ar("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":Ar("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=Ht.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 H(t))}else"InternalError"===e.tag?a(new Q(e.value)):a(new Error("Unexpected reducer result"))}),n}callReducerWithParams(e,t,r){const n=new o(1024);this.#D[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=Ht.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.#E[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 Lr(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 Hr=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 Ge&&!function(e){return null==e.typeName&&0===e.algebraicType.value.elements.length}(e)||e instanceof tt||e instanceof Ye?this.#ne(e):e instanceof Ze?new Ze(this.registerTypesRecursively(e.value)):e instanceof Xe?new Xe(this.registerTypesRecursively(e.ok),this.registerTypesRecursively(e.err)):e instanceof Qe?new Qe(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 Ye||e instanceof Ge?{tag:"Product",value:{elements:[]}}:{tag:"Sum",value:{variants:[]}};if(n=new Ft(this.#re.typespace.types.length),this.#re.typespace.types.push(i),this.#te.set(t,n),e instanceof Ye)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 Ge)for(const[t,r]of Object.entries(e.elements))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});else if(e instanceof tt)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:Qr(r),ty:n.ref,customOrdering:!0}),n}};function Qr(e){const t=e.split(".");return{sourceName:t.pop(),scope:t}}var Wr=class{constructor(e){this.schemaType=e}};function Zr(e){const t=new Hr;return new Wr(function(e,t){return{tables:Object.fromEntries(Object.entries(t).map(([t,r])=>[t,Lr(t,r,r.tableDef(e,t))]))}}(t,e))}function Gr(e){return Object.fromEntries(e.map(e=>[e.accessorName,e]))}var Xr=$t.enum("AlgebraicType",{Ref:$t.u32(),get Sum(){return Xn},get Product(){return dn},get Array(){return Xr},String:$t.unit(),Bool:$t.unit(),I8:$t.unit(),U8:$t.unit(),I16:$t.unit(),U16:$t.unit(),I32:$t.unit(),U32:$t.unit(),I64:$t.unit(),U64:$t.unit(),I128:$t.unit(),U128:$t.unit(),I256:$t.unit(),U256:$t.unit(),F32:$t.unit(),F64:$t.unit()}),Jr=$t.enum("CaseConversionPolicy",{None:$t.unit(),SnakeCase:$t.unit()}),Yr=$t.enum("ExplicitNameEntry",{get Table(){return ln},get Function(){return ln},get Index(){return ln}}),en=$t.object("ExplicitNames",{get entries(){return $t.array(Yr)}}),tn=$t.enum("FunctionVisibility",{Private:$t.unit(),ClientCallable:$t.unit()}),rn=$t.object("HttpHeaderPair",{name:$t.string(),value:$t.byteArray()}),nn=$t.object("HttpHeaders",{get entries(){return $t.array(rn)}}),sn=$t.enum("HttpMethod",{Get:$t.unit(),Head:$t.unit(),Post:$t.unit(),Put:$t.unit(),Delete:$t.unit(),Connect:$t.unit(),Options:$t.unit(),Trace:$t.unit(),Patch:$t.unit(),Extension:$t.string()});$t.object("HttpRequest",{get method(){return sn},get headers(){return nn},timeout:$t.option($t.timeDuration()),uri:$t.string(),get version(){return an}}),$t.object("HttpResponse",{get headers(){return nn},get version(){return an},code:$t.u16()});var an=$t.enum("HttpVersion",{Http09:$t.unit(),Http10:$t.unit(),Http11:$t.unit(),Http2:$t.unit(),Http3:$t.unit()}),un=$t.enum("IndexType",{BTree:$t.unit(),Hash:$t.unit()}),on=$t.enum("Lifecycle",{Init:$t.unit(),OnConnect:$t.unit(),OnDisconnect:$t.unit()}),cn=$t.enum("MiscModuleExport",{get TypeAlias(){return ri}}),ln=$t.object("NameMapping",{sourceName:$t.string(),canonicalName:$t.string()}),dn=$t.object("ProductType",{get elements(){return $t.array(hn)}}),hn=$t.object("ProductTypeElement",{name:$t.option($t.string()),get algebraicType(){return Xr}}),mn=$t.object("RawColumnDefV8",{colName:$t.string(),get colType(){return Xr}}),pn=$t.object("RawColumnDefaultValueV10",{colId:$t.u16(),value:$t.byteArray()}),fn=$t.object("RawColumnDefaultValueV9",{table:$t.string(),colId:$t.u16(),value:$t.byteArray()}),yn=$t.enum("RawConstraintDataV9",{get Unique(){return Qn}}),gn=$t.object("RawConstraintDefV10",{sourceName:$t.option($t.string()),get data(){return yn}}),wn=$t.object("RawConstraintDefV8",{constraintName:$t.string(),constraints:$t.u8(),columns:$t.array($t.u16())}),bn=$t.object("RawConstraintDefV9",{name:$t.option($t.string()),get data(){return yn}}),vn=$t.enum("RawIndexAlgorithm",{BTree:$t.array($t.u16()),Hash:$t.array($t.u16()),Direct:$t.u16()}),In=$t.object("RawIndexDefV10",{sourceName:$t.option($t.string()),accessorName:$t.option($t.string()),get algorithm(){return vn}}),Tn=$t.object("RawIndexDefV8",{indexName:$t.string(),isUnique:$t.bool(),get indexType(){return un},columns:$t.array($t.u16())}),_n=$t.object("RawIndexDefV9",{name:$t.option($t.string()),accessorName:$t.option($t.string()),get algorithm(){return vn}}),xn=$t.object("RawLifeCycleReducerDefV10",{get lifecycleSpec(){return on},functionName:$t.string()}),Un=$t.enum("RawMiscModuleExportV9",{get ColumnDefaultValue(){return fn},get Procedure(){return Nn},get View(){return Zn}});$t.enum("RawModuleDef",{get V8BackCompat(){return Mn},get V9(){return Rn},get V10(){return Bn}});var Bn=$t.object("RawModuleDefV10",{get sections(){return $t.array(Sn)}}),Sn=$t.enum("RawModuleDefV10Section",{get Typespace(){return ni},get Types(){return $t.array(Ln)},get Tables(){return $t.array($n)},get Reducers(){return $t.array(qn)},get Procedures(){return $t.array(An)},get Views(){return $t.array(Wn)},get Schedules(){return $t.array(En)},get LifeCycleReducers(){return $t.array(xn)},get RowLevelSecurity(){return $t.array(Dn)},get CaseConversionPolicy(){return Jr},get ExplicitNames(){return en}}),Mn=$t.object("RawModuleDefV8",{get typespace(){return ni},get tables(){return $t.array(ei)},get reducers(){return $t.array(Gn)},get miscExports(){return $t.array(cn)}}),Rn=$t.object("RawModuleDefV9",{get typespace(){return ni},get tables(){return $t.array(Kn)},get reducers(){return $t.array(jn)},get types(){return $t.array(Hn)},get miscExports(){return $t.array(Un)},get rowLevelSecurity(){return $t.array(Dn)}}),An=$t.object("RawProcedureDefV10",{sourceName:$t.string(),get params(){return dn},get returnType(){return Xr},get visibility(){return tn}}),Nn=$t.object("RawProcedureDefV9",{name:$t.string(),get params(){return dn},get returnType(){return Xr}}),qn=$t.object("RawReducerDefV10",{sourceName:$t.string(),get params(){return dn},get visibility(){return tn},get okReturnType(){return Xr},get errReturnType(){return Xr}}),jn=$t.object("RawReducerDefV9",{name:$t.string(),get params(){return dn},get lifecycle(){return $t.option(on)}}),Dn=$t.object("RawRowLevelSecurityDefV9",{sql:$t.string()}),En=$t.object("RawScheduleDefV10",{sourceName:$t.option($t.string()),tableName:$t.string(),scheduleAtCol:$t.u16(),functionName:$t.string()}),On=$t.object("RawScheduleDefV9",{name:$t.option($t.string()),reducerName:$t.string(),scheduledAtColumn:$t.u16()}),kn=$t.object("RawScopedTypeNameV10",{scope:$t.array($t.string()),sourceName:$t.string()}),Cn=$t.object("RawScopedTypeNameV9",{scope:$t.array($t.string()),name:$t.string()}),Vn=$t.object("RawSequenceDefV10",{sourceName:$t.option($t.string()),column:$t.u16(),start:$t.option($t.i128()),minValue:$t.option($t.i128()),maxValue:$t.option($t.i128()),increment:$t.i128()}),Pn=$t.object("RawSequenceDefV8",{sequenceName:$t.string(),colPos:$t.u16(),increment:$t.i128(),start:$t.option($t.i128()),minValue:$t.option($t.i128()),maxValue:$t.option($t.i128()),allocated:$t.i128()}),Fn=$t.object("RawSequenceDefV9",{name:$t.option($t.string()),column:$t.u16(),start:$t.option($t.i128()),minValue:$t.option($t.i128()),maxValue:$t.option($t.i128()),increment:$t.i128()}),$n=$t.object("RawTableDefV10",{sourceName:$t.string(),productTypeRef:$t.u32(),primaryKey:$t.array($t.u16()),get indexes(){return $t.array(In)},get constraints(){return $t.array(gn)},get sequences(){return $t.array(Vn)},get tableType(){return ti},get tableAccess(){return Yn},get defaultValues(){return $t.array(pn)},isEvent:$t.bool()}),zn=$t.object("RawTableDefV8",{tableName:$t.string(),get columns(){return $t.array(mn)},get indexes(){return $t.array(Tn)},get constraints(){return $t.array(wn)},get sequences(){return $t.array(Pn)},tableType:$t.string(),tableAccess:$t.string(),scheduled:$t.option($t.string())}),Kn=$t.object("RawTableDefV9",{name:$t.string(),productTypeRef:$t.u32(),primaryKey:$t.array($t.u16()),get indexes(){return $t.array(_n)},get constraints(){return $t.array(bn)},get sequences(){return $t.array(Fn)},get schedule(){return $t.option(On)},get tableType(){return ti},get tableAccess(){return Yn}}),Ln=$t.object("RawTypeDefV10",{get sourceName(){return kn},ty:$t.u32(),customOrdering:$t.bool()}),Hn=$t.object("RawTypeDefV9",{get name(){return Cn},ty:$t.u32(),customOrdering:$t.bool()}),Qn=$t.object("RawUniqueConstraintDataV9",{columns:$t.array($t.u16())}),Wn=$t.object("RawViewDefV10",{sourceName:$t.string(),index:$t.u32(),isPublic:$t.bool(),isAnonymous:$t.bool(),get params(){return dn},get returnType(){return Xr}}),Zn=$t.object("RawViewDefV9",{name:$t.string(),index:$t.u32(),isPublic:$t.bool(),isAnonymous:$t.bool(),get params(){return dn},get returnType(){return Xr}}),Gn=$t.object("ReducerDef",{name:$t.string(),get args(){return $t.array(hn)}}),Xn=$t.object("SumType",{get variants(){return $t.array(Jn)}}),Jn=$t.object("SumTypeVariant",{name:$t.option($t.string()),get algebraicType(){return Xr}}),Yn=$t.enum("TableAccess",{Public:$t.unit(),Private:$t.unit()}),ei=$t.object("TableDesc",{get schema(){return zn},data:$t.u32()}),ti=$t.enum("TableType",{System:$t.unit(),User:$t.unit()}),ri=$t.object("TypeAlias",{name:$t.string(),ty:$t.u32()}),ni=$t.object("Typespace",{get types(){return $t.array(Xr)}});function ii(e,t,...r){const{name:n,public:i=!1,indexes:s=[],scheduled:a,event:u=!1}=e,l=new Map,d=[];t instanceof Ye||(t=new Ye(t)),t.algebraicType.value.elements.forEach((e,t)=>{l.set(e.name,t),d.push(e.name)});const h=[],m=[],p=[],f=[];let y;const g=[];for(const[e,r]of Object.entries(t.row)){const t=r.columnMetadata;t.isPrimaryKey&&h.push(l.get(e));const n=t.isUnique||t.isPrimaryKey;if(t.indexType||n){const r=t.indexType??"btree",n=l.get(e);let i;switch(r){case"btree":i=vn.BTree([n]);break;case"hash":i=vn.Hash([n]);break;case"direct":i=vn.Direct(n)}m.push({sourceName:void 0,accessorName:e,algorithm:i})}if(n&&p.push({sourceName:void 0,data:{tag:"Unique",value:{columns:[l.get(e)]}}}),t.isAutoIncrement&&f.push({sourceName:void 0,start:void 0,minValue:void 0,maxValue:void 0,column:l.get(e),increment:1n}),t.defaultValue){const n=new o(16);r.serialize(n,t.defaultValue),g.push({colId:l.get(e),value:n.getBuffer()})}if(a){const t=r.typeBuilder.algebraicType;J.isScheduleAt(t)&&(y=l.get(e))}}for(const e of s??[]){let t;switch(e.algorithm){case"btree":t={tag:"BTree",value:e.columns.map(e=>l.get(e))};break;case"hash":t={tag:"Hash",value:e.columns.map(e=>l.get(e))};break;case"direct":t={tag:"Direct",value:l.get(e.column)}}m.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=>l.get(e))}};p.push({sourceName:t.name,data:e});continue}const w=t.algebraicType.value;return{rowType:t,tableName:n,rowSpacetimeType:w,tableDef:(e,r)=>{const s=n??r;void 0===t.typeName&&(t.typeName=c(s));for(const t of m){const n=("Direct"===t.algorithm.tag?[t.algorithm.value]:t.algorithm.value).map(e=>d[e]).join("_"),i=t.sourceName=`${r}_${n}_idx_${t.algorithm.tag.toLowerCase()}`,{canonicalName:s}=t;void 0!==s&&e.moduleDef.explicitNames.entries.push(Yr.Index({sourceName:i,canonicalName:s}))}return{sourceName:r,productTypeRef:e.registerTypesRecursively(t).ref,primaryKey:h,indexes:m,constraints:p,sequences:f,tableType:{tag:"User"},tableAccess:{tag:i?"Public":"Private"},defaultValues:g,isEvent:u}},idxs:{},constraints:p,schedule:a&&void 0!==y?{scheduleAtCol:y,reducer:a}:void 0}}$t.enum("ViewResultHeader",{RowData:$t.unit(),RawSql:$t.string()});var si=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 ai(...e){const t=1===e.length&&Array.isArray(e[0])?e[0]:e;return new si(t)}function ui(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:I(e),params:new Ye(t),paramsSpacetimeType:r,reducerDef:{name:e,params:r,lifecycle:void 0}}}function oi(...e){return{procedures:1===e.length&&Array.isArray(e[0])?e[0]:e}}function ci(e,t,r){return{name:e,accessorName:I(e),params:x(t),returnType:r}}export{A as AlgebraicType,S as AlgebraicTypeVariants,Qe as ArrayBuilder,Mt as ArrayColumnBuilder,s as BinaryReader,o as BinaryWriter,Le as BoolBuilder,Bt as BoolColumnBuilder,me as BooleanExpr,We as ByteArrayBuilder,Rt as ByteArrayColumnBuilder,Dr as ClientCache,dt as ColumnBuilder,le as ColumnExpression,L as ConnectionId,at as ConnectionIdBuilder,kt as ConnectionIdColumnBuilder,Vr as DbConnectionBuilder,Kr as DbConnectionImpl,ze as F32Builder,xt as F32ColumnBuilder,Ke as F64Builder,Ut as F64ColumnBuilder,Fe as I128Builder,Tt as I128ColumnBuilder,Ce as I16Builder,bt as I16ColumnBuilder,$e as I256Builder,_t as I256ColumnBuilder,Ve as I32Builder,vt as I32ColumnBuilder,Pe as I64Builder,It as I64ColumnBuilder,ke as I8Builder,wt as I8ColumnBuilder,B as Identity,st as IdentityBuilder,Ot as IdentityColumnBuilder,Q as InternalError,G as Interval,Y as Option,Ze as OptionBuilder,At as OptionColumnBuilder,Ge as ProductBuilder,qt as ProductColumnBuilder,z as ProductType,Ft as RefBuilder,ee as Result,Xe as ResultBuilder,Nt as ResultColumnBuilder,Ye as RowBuilder,Z as ScheduleAt,it as ScheduleAtBuilder,Et as ScheduleAtColumnBuilder,H as SenderError,nt as SimpleSumBuilder,Dt as SimpleSumColumnBuilder,He as StringBuilder,St as StringColumnBuilder,Fr as SubscriptionBuilderImpl,zr as SubscriptionHandleImpl,tt as SumBuilder,jt as SumColumnBuilder,K as SumType,X as Time,r as TimeDuration,ot as TimeDurationBuilder,Vt as TimeDurationColumnBuilder,n as Timestamp,ut as TimestampBuilder,Ct as TimestampColumnBuilder,Ae as TypeBuilder,Ee as U128Builder,yt as U128ColumnBuilder,qe as U16Builder,mt as U16ColumnBuilder,Oe as U256Builder,gt as U256ColumnBuilder,je as U32Builder,pt as U32ColumnBuilder,De as U64Builder,ft as U64ColumnBuilder,Ne as U8Builder,ht as U8ColumnBuilder,i as Uuid,ct as UuidBuilder,Pt as UuidColumnBuilder,fe as and,_ as bsatnBaseSize,x as coerceParams,Gr as convertToAccessorMap,oe as createTableRefFromDef,l as deepEqual,Te as evaluateBooleanExpr,Ur as getGlobalLogLevel,Se as getQueryAccessorName,Be as getQueryTableName,Me as getQueryWhereClause,U as hasOwn,f as hexStringToU128,y as hexStringToU256,p as hexStringToUint8Array,re as isRowTypedQuery,ne as isTypedQuery,de as literal,ce as makeQueryBuilder,pe as not,ye as or,W as parseValue,ci as procedureSchema,oi as procedures,ui as reducerSchema,ai as reducers,Zr as schema,xr as setGlobalLogLevel,Ar as stdbLogger,Rr as stringify,$t as t,ii as table,I as toCamelCase,Ue as toComparableValue,c as toPascalCase,T as toSnakeCase,ie as toSql,w as u128ToHexString,g as u128ToUint8Array,v as u256ToHexString,b as u256ToUint8Array,d as uint8ArrayToHexString,h as uint8ArrayToU128,m as uint8ArrayToU256};//# 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 A.Product({elements:[{name:"__time_duration_micros__",algebraicType:A.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 A.Product({elements:[{name:"__timestamp_micros_since_unix_epoch__",algebraicType:A.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 A.Product({elements:[{name:"__uuid__",algebraicType:A.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){if(16!=e.length)throw new Error(`Uint8Array is not 16 bytes long: ${e}`);return new s(e).readU128()}function h(e){if(32!=e.length)throw new Error(`Uint8Array is not 32 bytes long: [${e}]`);return new s(e).readU256()}function m(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 p(e){return d(m(e))}function f(e){return h(m(e))}function y(e){const t=new o(16);return t.writeU128(e),t.getBuffer()}function g(e){return l(y(e))}function w(e){const t=new o(32);return t.writeU256(e),t.getBuffer()}function b(e){return l(w(e))}function v(e){const t=I(e);return t.charAt(0).toUpperCase()+t.slice(1)}function I(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 T(e){return e.replace(/([A-Z])/g,"_$1").replace(/[-\s]+/g,"_").toLowerCase()}function _(e,t){for(;"Ref"===t.tag;)t=e.types[t.value];if("Product"===t.tag){let r=0;for(const{algebraicType:n}of t.value.elements)r+=_(e,n);return r}if("Sum"===t.tag){let r=1/0;for(const{algebraicType:n}of t.value.variants){const t=_(e,n);t<r&&(r=t)}return r===1/0&&(r=0),4+r}return"Array"==t.tag?4+4*_(e,t.value):{String:8,Sum:1,Bool:1,I8:1,U8:1,I16:2,U16:2,I32:4,U32:4,F32:4,I64:8,U64:8,F64:8,I128:16,U128:16,I256:32,U256:32}[t.tag]}function x(e){return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,"typeBuilder"in t?t.typeBuilder:t]))}var U=Object.hasOwn,B=class e{__identity__;constructor(e){this.__identity__="string"==typeof e?f(e):e}static getAlgebraicType(){return A.Product({elements:[{name:"__identity__",algebraicType:A.U256}]})}isEqual(e){return this.toHexString()===e.toHexString()}equals(e){return this.isEqual(e)}toHexString(){return b(this.__identity__)}toUint8Array(){return w(this.__identity__)}static fromString(t){return new e(t)}static zero(){return new e(0n)}toString(){return this.toHexString()}},S={},M=new Map,R=new Map,A={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 z.makeSerializer(e.value,t);case"Sum":return K.makeSerializer(e.value,t);case"Array":if("U8"===e.value.tag)return j;{const r=A.makeSerializer(e.value,t);return(e,t)=>{e.writeU32(t.length);for(const n of t)r(e,n)}}default:return q[e.tag]}},serializeValue(e,t,r,n){A.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 z.makeDeserializer(e.value,t);case"Sum":return K.makeDeserializer(e.value,t);case"Array":if("U8"===e.value.tag)return k;{const r=A.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 D[e.tag]}},deserializeValue:(e,t,r)=>A.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 z.intoMapKey(e.value,t);default:{const r=new o(10);return A.serializeValue(r,e,t),r.toBase64()}}}};function N(e){return Function.prototype.call.bind(e)}var q={Bool:N(o.prototype.writeBool),I8:N(o.prototype.writeI8),U8:N(o.prototype.writeU8),I16:N(o.prototype.writeI16),U16:N(o.prototype.writeU16),I32:N(o.prototype.writeI32),U32:N(o.prototype.writeU32),I64:N(o.prototype.writeI64),U64:N(o.prototype.writeU64),I128:N(o.prototype.writeI128),U128:N(o.prototype.writeU128),I256:N(o.prototype.writeI256),U256:N(o.prototype.writeU256),F32:N(o.prototype.writeF32),F64:N(o.prototype.writeF64),String:N(o.prototype.writeString)};Object.freeze(q);var j=N(o.prototype.writeUInt8Array),D={Bool:N(s.prototype.readBool),I8:N(s.prototype.readI8),U8:N(s.prototype.readU8),I16:N(s.prototype.readI16),U16:N(s.prototype.readU16),I32:N(s.prototype.readI32),U32:N(s.prototype.readU32),I64:N(s.prototype.readI64),U64:N(s.prototype.readU64),I128:N(s.prototype.readI128),U128:N(s.prototype.readU128),I256:N(s.prototype.readI256),U256:N(s.prototype.readU256),F32:N(s.prototype.readF32),F64:N(s.prototype.readF64),String:N(s.prototype.readString)};Object.freeze(D);var k=N(s.prototype.readUInt8Array),E={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},C=new Set(Object.keys(E)),V=e=>e.elements.every(({algebraicType:e})=>C.has(e.tag)),O={Bool:"Uint8",I8:"Int8",U8:"Uint8",I16:"Int16",U16:"Uint16",I32:"Int32",U32:"Uint32",I64:"BigInt64",U64:"BigUint64",F32:"Float32",F64:"Float64"},P={__time_duration_micros__:e=>new r(e.readI64()),__timestamp_micros_since_unix_epoch__:e=>new n(e.readI64()),__identity__:e=>new B(e.readU256()),__connection_id__:e=>new L(e.readU128()),__uuid__:e=>new i(e.readU128())};Object.freeze(P);var F=()=>({}),$=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}`},z={makeSerializer(e,t){let r=M.get(e);if(null!=r)return r;if(V(e)){const t=(e=>e.elements.reduce((e,{algebraicType:t})=>e+E[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 O?`view.set${O[t]}(writer.offset, value.${e}, ${E[t]>1?"true":""});\nwriter.offset += ${E[t]};`:`writer.write${t}(value.${e});`).join("\n")}`;return r=Function("writer","value",n),M.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),M.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=A.makeSerializer(i,t);return Object.freeze(n),r},serializeValue(e,t,r,n){z.makeSerializer(t,n)(e,r)},makeDeserializer(e,t){switch(e.elements.length){case 0:return F;case 1:{const t=e.elements[0].name;if(U(P,t))return P[t]}}let r=R.get(e);if(null!=r)return r;if(V(e)){const t=`"use strict";\nconst result = { ${e.elements.map($).join(", ")} };\nconst view = reader.view;\n${e.elements.map(({name:e,algebraicType:{tag:t}})=>t in O?`result.${e} = view.get${O[t]}(reader.offset, ${E[t]>1?"true":""});\nreader.offset += ${E[t]};`:`result.${e} = reader.read${t}();`).join("\n")}\nreturn result;`;return r=Function("reader",t),R.set(e,r),r}const n={};r=Function("reader",`"use strict";\nconst result = { ${e.elements.map($).join(", ")} };\n${e.elements.map(({name:e})=>`result.${e} = this.${e}(reader);`).join("\n")}\nreturn result;`).bind(n),R.set(e,r);for(const{name:r,algebraicType:i}of e.elements)n[r]=A.makeDeserializer(i,t);return Object.freeze(n),r},deserializeValue:(e,t,r)=>z.makeDeserializer(t,r)(e),intoMapKey(e,t){if(1===e.elements.length){const r=e.elements[0].name;if(U(P,r))return t[r]}const r=new o(10);return A.serializeValue(r,A.Product(e),t),r.toBase64()}},K={makeSerializer(e,t){if(2==e.variants.length&&"some"===e.variants[0].name&&"none"===e.variants[1].name){const r=A.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=A.makeSerializer(e.variants[0].algebraicType,t),n=A.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=M.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),M.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=A.makeSerializer(i,t);return Object.freeze(n),r}},serializeValue(e,t,r,n){K.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=A.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=A.makeDeserializer(e.variants[0].algebraicType,t),n=A.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=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),R.set(e,r);for(const{name:r,algebraicType:i}of e.variants)n[r]=A.makeDeserializer(i,t);return Object.freeze(n),r}},deserializeValue:(e,t,r)=>K.makeDeserializer(t,r)(e)},L=class e{__connection_id__;constructor(e){this.__connection_id__=e}static getAlgebraicType(){return A.Product({elements:[{name:"__connection_id__",algebraicType:A.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 g(this.__connection_id__)}toUint8Array(){return y(this.__connection_id__)}static fromString(t){return new e(p(t))}static fromStringOrNull(t){const r=e.fromString(t);return r.isZero()?null:r}},H=class extends Error{constructor(e){super(e)}get name(){return"SenderError"}},Q=class extends Error{constructor(e){super(e)}get name(){return"InternalError"}};function W(e,t){const r=new s(t);return e.deserialize(r)}var Z={interval:e=>G(e),time:e=>X(e),getAlgebraicType:()=>A.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))}},G=e=>({tag:"Interval",value:new r(e)}),X=e=>({tag:"Time",value:new n(e)}),J=Z,Y={getAlgebraicType:e=>A.Sum({variants:[{name:"some",algebraicType:e},{name:"none",algebraicType:A.Product({elements:[]})}]})},ee={getAlgebraicType:(e,t)=>A.Sum({variants:[{name:"ok",algebraicType:e},{name:"err",algebraicType:t}]})},te=Symbol("QueryBrand"),re=e=>!!e&&"object"==typeof e&&te in e,ne=e=>!!e&&"object"==typeof e&&te in e;function ie(e){return e.toSql()}var se=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")}[te]=!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=ve(e.table.sourceName),n=ve(t.table.sourceName);let i=`SELECT ${n}.* FROM ${r} JOIN ${n} ON ${ge(this.joinCondition)}`;const s=[];if(e.whereClause&&s.push(ge(e.whereClause)),t.whereClause&&s.push(ge(t.whereClause)),s.length>0){i+=` WHERE ${1===s.length?s[0]:s.map(we).join(" AND ")}`}return i}},ae=class e{constructor(e,t){this.table=e,this.whereClause=t}[te]=!0;where(t){const r=function(e){if(e instanceof me)return e;if("boolean"==typeof e)return new me({type:"eq",left:de(e),right:de(!0)});return new me({type:"eq",left:e,right:de(!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 se(n,this,i)}leftSemijoin(t,r){const n=new e(t),i=r(this.table.indexedCols,t.indexedCols);return new se(this,n,i)}toSql(){return function(e,t,r=[]){const n=`SELECT * FROM ${ve(e.sourceName)}`,i=[];t&&i.push(ge(t));if(i.push(...r),0===i.length)return n;const s=1===i.length?i[0]:i.map(we).join(" AND ");return`${n} WHERE ${s}`}(this.table,this.whereClause)}build(){return this}},ue=class{[te]=!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 le(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 ae(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 oe(e){return new ue(e)}function ce(e){const t=Object.create(null);for(const r of Object.values(e.tables)){const e=oe(r);t[r.accessorName]=e}return Object.freeze(t)}var le=class{type="column";column;table;tsValueType;spacetimeType;constructor(e,t,r){this.table=e,this.column=t,this.spacetimeType=r}eq(e){return new me({type:"eq",left:this,right:he(e)})}ne(e){return new me({type:"ne",left:this,right:he(e)})}lt(e){return new me({type:"lt",left:this,right:he(e)})}lte(e){return new me({type:"lte",left:this,right:he(e)})}gt(e){return new me({type:"gt",left:this,right:he(e)})}gte(e){return new me({type:"gte",left:this,right:he(e)})}};function de(e){return{type:"literal",value:e}}function he(e){return"literal"===e.type||"object"==typeof e&&null!=e&&"type"in e&&"column"===e.type?e:de(e)}var me=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 pe(e){return new me({type:"not",clause:e.data})}function fe(...e){return new me({type:"and",clauses:e.map(e=>e.data)})}function ye(...e){return new me({type:"or",clauses:e.map(e=>e.data)})}function ge(e,t){const r=e instanceof me?e.data:e;switch(r.type){case"eq":return`${be(r.left)} = ${be(r.right)}`;case"ne":return`${be(r.left)} <> ${be(r.right)}`;case"gt":return`${be(r.left)} > ${be(r.right)}`;case"gte":return`${be(r.left)} >= ${be(r.right)}`;case"lt":return`${be(r.left)} < ${be(r.right)}`;case"lte":return`${be(r.left)} <= ${be(r.right)}`;case"and":return r.clauses.map(e=>ge(e)).map(we).join(" AND ");case"or":return r.clauses.map(e=>ge(e)).map(we).join(" OR ");case"not":return`NOT ${we(ge(r.clause))}`}}function we(e){return`(${e})`}function be(e,t){if(Ie(e))return function(e){if(null==e)return"NULL";if(e instanceof B||e instanceof L)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`${ve(e.table)}.${ve(e.column)}`}function ve(e){return`"${e.replace(/"/g,'""')}"`}function Ie(e){return"literal"===e.type}function Te(e,t){return _e(e.data,t)}function _e(e,t){switch(e.type){case"eq":return xe(e.left,t)===xe(e.right,t);case"ne":return xe(e.left,t)!==xe(e.right,t);case"gt":return xe(e.left,t)>xe(e.right,t);case"gte":return xe(e.left,t)>=xe(e.right,t);case"lt":return xe(e.left,t)<xe(e.right,t);case"lte":return xe(e.left,t)<=xe(e.right,t);case"and":return e.clauses.every(e=>_e(e,t));case"or":return e.clauses.some(e=>_e(e,t));case"not":return!_e(e.clause,t)}}function xe(e,t){return Ie(e)?Ue(e.value):Ue(t[e.column])}function Ue(e){return function(e){return!!e&&"object"==typeof e&&"function"==typeof e.toHexString}(e)?e.toHexString():function(e){return!(!e||"object"!=typeof e)&&(e instanceof n||"bigint"==typeof e.__timestamp_micros_since_unix_epoch__)}(e)?e.__timestamp_micros_since_unix_epoch__:e}function Be(e){if(e.table)return e.table.name;if(e.name)return e.name;if(e.sourceQuery)return e.sourceQuery.table.name;throw new Error("Cannot extract table name from query")}function Se(e){if(e.table)return e.table.accessorName;if(e.accessorName)return e.accessorName;if(e.sourceQuery)return e.sourceQuery.table.accessorName;throw new Error("Cannot extract accessor name from query")}function Me(e){if(e.whereClause)return e.whereClause}function Re(e,t){return{...e,...t}}var Ae=class{type;algebraicType;constructor(e){this.algebraicType=e}optional(){return new Ze(this)}serialize(e,t){(this.serialize=A.makeSerializer(this.algebraicType))(e,t)}deserialize(e){return(this.deserialize=A.makeDeserializer(this.algebraicType))(e)}},Ne=class extends Ae{constructor(){super(A.U8)}index(e="btree"){return new ht(this,Re(lt,{indexType:e}))}unique(){return new ht(this,Re(lt,{isUnique:!0}))}primaryKey(){return new ht(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new ht(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new ht(this,Re(lt,{defaultValue:e}))}name(e){return new ht(this,Re(lt,{name:e}))}},qe=class extends Ae{constructor(){super(A.U16)}index(e="btree"){return new mt(this,Re(lt,{indexType:e}))}unique(){return new mt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new mt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new mt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new mt(this,Re(lt,{defaultValue:e}))}name(e){return new mt(this,Re(lt,{name:e}))}},je=class extends Ae{constructor(){super(A.U32)}index(e="btree"){return new pt(this,Re(lt,{indexType:e}))}unique(){return new pt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new pt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new pt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new pt(this,Re(lt,{defaultValue:e}))}name(e){return new pt(this,Re(lt,{name:e}))}},De=class extends Ae{constructor(){super(A.U64)}index(e="btree"){return new ft(this,Re(lt,{indexType:e}))}unique(){return new ft(this,Re(lt,{isUnique:!0}))}primaryKey(){return new ft(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new ft(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new ft(this,Re(lt,{defaultValue:e}))}name(e){return new ft(this,Re(lt,{name:e}))}},ke=class extends Ae{constructor(){super(A.U128)}index(e="btree"){return new yt(this,Re(lt,{indexType:e}))}unique(){return new yt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new yt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new yt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new yt(this,Re(lt,{defaultValue:e}))}name(e){return new yt(this,Re(lt,{name:e}))}},Ee=class extends Ae{constructor(){super(A.U256)}index(e="btree"){return new gt(this,Re(lt,{indexType:e}))}unique(){return new gt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new gt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new gt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new gt(this,Re(lt,{defaultValue:e}))}name(e){return new gt(this,Re(lt,{name:e}))}},Ce=class extends Ae{constructor(){super(A.I8)}index(e="btree"){return new wt(this,Re(lt,{indexType:e}))}unique(){return new wt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new wt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new wt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new wt(this,Re(lt,{defaultValue:e}))}name(e){return new wt(this,Re(lt,{name:e}))}},Ve=class extends Ae{constructor(){super(A.I16)}index(e="btree"){return new bt(this,Re(lt,{indexType:e}))}unique(){return new bt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new bt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new bt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new bt(this,Re(lt,{defaultValue:e}))}name(e){return new bt(this,Re(lt,{name:e}))}},Oe=class extends Ae{constructor(){super(A.I32)}index(e="btree"){return new vt(this,Re(lt,{indexType:e}))}unique(){return new vt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new vt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new vt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new vt(this,Re(lt,{defaultValue:e}))}name(e){return new vt(this,Re(lt,{name:e}))}},Pe=class extends Ae{constructor(){super(A.I64)}index(e="btree"){return new It(this,Re(lt,{indexType:e}))}unique(){return new It(this,Re(lt,{isUnique:!0}))}primaryKey(){return new It(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new It(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new It(this,Re(lt,{defaultValue:e}))}name(e){return new It(this,Re(lt,{name:e}))}},Fe=class extends Ae{constructor(){super(A.I128)}index(e="btree"){return new Tt(this,Re(lt,{indexType:e}))}unique(){return new Tt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Tt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Tt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Tt(this,Re(lt,{defaultValue:e}))}name(e){return new Tt(this,Re(lt,{name:e}))}},$e=class extends Ae{constructor(){super(A.I256)}index(e="btree"){return new _t(this,Re(lt,{indexType:e}))}unique(){return new _t(this,Re(lt,{isUnique:!0}))}primaryKey(){return new _t(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new _t(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new _t(this,Re(lt,{defaultValue:e}))}name(e){return new _t(this,Re(lt,{name:e}))}},ze=class extends Ae{constructor(){super(A.F32)}default(e){return new xt(this,Re(lt,{defaultValue:e}))}name(e){return new xt(this,Re(lt,{name:e}))}},Ke=class extends Ae{constructor(){super(A.F64)}default(e){return new Ut(this,Re(lt,{defaultValue:e}))}name(e){return new Ut(this,Re(lt,{name:e}))}},Le=class extends Ae{constructor(){super(A.Bool)}index(e="btree"){return new Bt(this,Re(lt,{indexType:e}))}unique(){return new Bt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Bt(this,Re(lt,{isPrimaryKey:!0}))}default(e){return new Bt(this,Re(lt,{defaultValue:e}))}name(e){return new Bt(this,Re(lt,{name:e}))}},He=class extends Ae{constructor(){super(A.String)}index(e="btree"){return new St(this,Re(lt,{indexType:e}))}unique(){return new St(this,Re(lt,{isUnique:!0}))}primaryKey(){return new St(this,Re(lt,{isPrimaryKey:!0}))}default(e){return new St(this,Re(lt,{defaultValue:e}))}name(e){return new St(this,Re(lt,{name:e}))}},Qe=class extends Ae{element;constructor(e){super(A.Array(e.algebraicType)),this.element=e}default(e){return new Mt(this,Re(lt,{defaultValue:e}))}name(e){return new Mt(this,Re(lt,{name:e}))}},We=class extends Ae{constructor(){super(A.Array(A.U8))}default(e){return new Rt(Re(lt,{defaultValue:e}))}name(e){return new Rt(Re(lt,{name:e}))}},Ze=class extends Ae{value;constructor(e){super(Y.getAlgebraicType(e.algebraicType)),this.value=e}default(e){return new At(this,Re(lt,{defaultValue:e}))}name(e){return new At(this,Re(lt,{name:e}))}},Ge=class extends Ae{typeName;elements;constructor(e,t){var r;super(A.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 qt(this,Re(lt,{defaultValue:e}))}name(e){return new qt(this,Re(lt,{name:e}))}},Xe=class extends Ae{ok;err;constructor(e,t){super(ee.getAlgebraicType(e.algebraicType,t.algebraicType)),this.ok=e,this.err=t}default(e){return new Nt(this,Re(lt,{defaultValue:e}))}},Je=class extends Ae{constructor(){super({tag:"Product",value:{elements:[]}})}},Ye=class extends Ae{row;typeName;constructor(e,t){const r=Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t instanceof dt?t:new dt(t,{})])),n=Object.keys(r).map(e=>({name:e,get algebraicType(){return r[e].typeBuilder.algebraicType}}));super(A.Product({elements:n})),this.row=r,this.typeName=t}},et=class extends Ae{variants;typeName;constructor(e,t){var r;super(A.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 Je}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 jt(this,Re(lt,{defaultValue:e}))}name(e){return new jt(this,Re(lt,{name:e}))}},tt=et,rt=class extends et{index(e="btree"){return new Dt(this,Re(lt,{indexType:e}))}primaryKey(){return new Dt(this,Re(lt,{isPrimaryKey:!0}))}},nt=rt,it=class extends Ae{constructor(){super(J.getAlgebraicType())}default(e){return new kt(this,Re(lt,{defaultValue:e}))}name(e){return new kt(this,Re(lt,{name:e}))}},st=class extends Ae{constructor(){super(B.getAlgebraicType())}index(e="btree"){return new Et(this,Re(lt,{indexType:e}))}unique(){return new Et(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Et(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Et(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Et(this,Re(lt,{defaultValue:e}))}name(e){return new Et(this,Re(lt,{name:e}))}},at=class extends Ae{constructor(){super(L.getAlgebraicType())}index(e="btree"){return new Ct(this,Re(lt,{indexType:e}))}unique(){return new Ct(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Ct(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Ct(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Ct(this,Re(lt,{defaultValue:e}))}name(e){return new Ct(this,Re(lt,{name:e}))}},ut=class extends Ae{constructor(){super(n.getAlgebraicType())}index(e="btree"){return new Vt(this,Re(lt,{indexType:e}))}unique(){return new Vt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Vt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Vt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Vt(this,Re(lt,{defaultValue:e}))}name(e){return new Vt(this,Re(lt,{name:e}))}},ot=class extends Ae{constructor(){super(r.getAlgebraicType())}index(e="btree"){return new Ot(this,Re(lt,{indexType:e}))}unique(){return new Ot(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Ot(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Ot(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Ot(this,Re(lt,{defaultValue:e}))}name(e){return new Ot(this,Re(lt,{name:e}))}},ct=class extends Ae{constructor(){super(i.getAlgebraicType())}index(e="btree"){return new Pt(this,Re(lt,{indexType:e}))}unique(){return new Pt(this,Re(lt,{isUnique:!0}))}primaryKey(){return new Pt(this,Re(lt,{isPrimaryKey:!0}))}autoInc(){return new Pt(this,Re(lt,{isAutoIncrement:!0}))}default(e){return new Pt(this,Re(lt,{defaultValue:e}))}name(e){return new Pt(this,Re(lt,{name:e}))}},lt={},dt=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)}},ht=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},mt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},pt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},ft=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},yt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},gt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},wt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},bt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},vt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},It=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Tt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},_t=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}autoInc(){return new e(this.typeBuilder,Re(this.columnMetadata,{isAutoIncrement:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},xt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ut=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Bt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},St=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Mt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Rt=class e extends dt{constructor(e){super(new Ae(A.Array(A.U8)),e)}default(t){return new e(Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(Re(this.columnMetadata,{name:t}))}},At=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Nt=class e extends dt{constructor(e,t){super(e,t)}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}},qt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},jt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Dt=class e extends jt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}},kt=class e extends dt{default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Et=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ct=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Vt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ot=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Pt=class e extends dt{index(t="btree"){return new e(this.typeBuilder,Re(this.columnMetadata,{indexType:t}))}unique(){return new e(this.typeBuilder,Re(this.columnMetadata,{isUnique:!0}))}primaryKey(){return new e(this.typeBuilder,Re(this.columnMetadata,{isPrimaryKey:!0}))}default(t){return new e(this.typeBuilder,Re(this.columnMetadata,{defaultValue:t}))}name(t){return new e(this.typeBuilder,Re(this.columnMetadata,{name:t}))}},Ft=class extends Ae{ref;__spacetimeType;constructor(e){super(A.Ref(e)),this.ref=e}},$t={bool:()=>new Le,string:()=>new He,number:()=>new Ke,i8:()=>new Ce,u8:()=>new Ne,i16:()=>new Ve,u16:()=>new qe,i32:()=>new Oe,u32:()=>new je,i64:()=>new Pe,u64:()=>new De,i128:()=>new Fe,u128:()=>new ke,i256:()=>new $e,u256:()=>new Ee,f32:()=>new ze,f64:()=>new Ke,object:(e,t)=>{if("string"==typeof e){if(!t)throw new TypeError("When providing a name, you must also provide the object.");return new Ge(t,e)}return new Ge(e,void 0)},row:(e,t)=>{const[r,n]="string"==typeof e?[t,e]:[e,void 0];return new Ye(r,n)},array:e=>new Qe(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 Je;return new rt(e,r)}return new tt(n,r)},unit:()=>new Je,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 it,option:e=>new Ze(e),result:(e,t)=>new Xe(e,t),identity:()=>new st,connectionId:()=>new at,timestamp:()=>new ut,timeDuration:()=>new ot,uuid:()=>new ct,byteArray:()=>new We},zt=$t.object("BsatnRowList",{get sizeHint(){return ar},rowsData:$t.byteArray()}),Kt=$t.object("CallProcedure",{requestId:$t.u32(),flags:$t.u8(),procedure:$t.string(),args:$t.byteArray()}),Lt=$t.object("CallReducer",{requestId:$t.u32(),flags:$t.u8(),reducer:$t.string(),args:$t.byteArray()}),Ht=$t.enum("ClientMessage",{get Subscribe(){return cr},get Unsubscribe(){return fr},get OneOffQuery(){return Zt},get CallReducer(){return Lt},get CallProcedure(){return Kt}}),Qt=$t.object("EventTableRows",{get events(){return zt}}),Wt=$t.object("InitialConnection",{identity:$t.identity(),connectionId:$t.connectionId(),token:$t.string()}),Zt=$t.object("OneOffQuery",{requestId:$t.u32(),queryString:$t.string()}),Gt=$t.object("OneOffQueryResult",{requestId:$t.u32(),get result(){return $t.result(er,$t.string())}}),Xt=$t.object("PersistentTableRows",{get inserts(){return zt},get deletes(){return zt}}),Jt=$t.object("ProcedureResult",{get status(){return Yt},timestamp:$t.timestamp(),totalHostExecutionDuration:$t.timeDuration(),requestId:$t.u32()}),Yt=$t.enum("ProcedureStatus",{Returned:$t.byteArray(),InternalError:$t.string()}),er=$t.object("QueryRows",{get tables(){return $t.array(or)}}),tr=$t.object("QuerySetId",{id:$t.u32()}),rr=$t.object("QuerySetUpdate",{get querySetId(){return tr},get tables(){return $t.array(hr)}}),nr=$t.object("ReducerOk",{retValue:$t.byteArray(),get transactionUpdate(){return pr}}),ir=$t.enum("ReducerOutcome",{get Ok(){return nr},OkEmpty:$t.unit(),Err:$t.byteArray(),InternalError:$t.string()}),sr=$t.object("ReducerResult",{requestId:$t.u32(),timestamp:$t.timestamp(),get result(){return ir}}),ar=$t.enum("RowSizeHint",{FixedSize:$t.u16(),RowOffsets:$t.array($t.u64())}),ur=$t.enum("ServerMessage",{get InitialConnection(){return Wt},get SubscribeApplied(){return lr},get UnsubscribeApplied(){return yr},get SubscriptionError(){return dr},get TransactionUpdate(){return pr},get OneOffQueryResult(){return Gt},get ReducerResult(){return sr},get ProcedureResult(){return Jt}}),or=$t.object("SingleTableRows",{table:$t.string(),get rows(){return zt}}),cr=$t.object("Subscribe",{requestId:$t.u32(),get querySetId(){return tr},queryStrings:$t.array($t.string())}),lr=$t.object("SubscribeApplied",{requestId:$t.u32(),get querySetId(){return tr},get rows(){return er}}),dr=$t.object("SubscriptionError",{requestId:$t.option($t.u32()),get querySetId(){return tr},error:$t.string()}),hr=$t.object("TableUpdate",{tableName:$t.string(),get rows(){return $t.array(mr)}}),mr=$t.enum("TableUpdateRows",{get PersistentTable(){return Xt},get EventTable(){return Qt}}),pr=$t.object("TransactionUpdate",{get querySets(){return $t.array(rr)}}),fr=$t.object("Unsubscribe",{requestId:$t.u32(),get querySetId(){return tr},get flags(){return gr}}),yr=$t.object("UnsubscribeApplied",{requestId:$t.u32(),get querySetId(){return tr},get rows(){return $t.option(er)}}),gr=$t.enum("UnsubscribeFlags",{Default:$t.unit(),SendDroppedRows:$t.unit()}),wr=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)}},br={component:"đĻ",info:"âšī¸",warn:"â ī¸",error:"â",debug:"đ",trace:"đ"},vr={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;"},Ir={component:"color: #8D6FDD;",info:"color: #007bff;",warn:"color: #ffc107;",error:"color: #dc3545;",debug:"color: #28a745;",trace:"color: #17a2b8;"},Tr={error:0,warn:1,info:2,debug:3,trace:4},_r="info",xr=e=>{_r=e},Ur=()=>_r,Br=e=>"function"==typeof e?e():e,Sr=e=>Array.from(e).map(e=>e.toString(16).padStart(2,"0")).join(""),Mr=new Set(["token","authToken","authorization","accessToken","refreshToken"]),Rr=e=>t(e,(e,r)=>{if(Mr.has(e))return"[REDACTED]";if(r&&"object"==typeof r&&"__identity__"in r&&"bigint"==typeof r.__identity__)return b(r.__identity__);if(r&&"object"==typeof r&&"__connection_id__"in r&&"bigint"==typeof r.__connection_id__)return g(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}),Ar=(e,t,...r)=>{if(!(e=>Tr[e]<=Tr[_r])(e))return;const n=Br(t),i=r.map(Br);console.log(`%c${br[e]} ${e.toUpperCase()}%c ${n}`,vr[e],Ir[e],...i)},Nr=(e,t)=>e===t?0:e<t?-1:1,qr=class{rows;tableDef;emitter;constructor(e){this.tableDef=e,this.rows=new Map,this.emitter=new wr;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=Nr(u,e.value);if(t<0)return!1;if(0===t&&"excluded"===e.tag)return!1}if("unbounded"!==t.tag){const e=Nr(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 Ar("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?(Ar("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)}};Ar("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]);Ar("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)}},jr=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 jr;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 qr(e);return this.tables.set(t,n),n}};var kr=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)}},Er=new kr(1,4,0);function Cr(e){return`Module code was generated with an incompatible version of the spacetimedb cli (${e}). Update the cli version to at least ${Er.toString()} and regenerate the bindings. You can upgrade to the latest cli version by running: spacetime version upgrade`}var Vr=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 Ar("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)}},Or=class{constructor(e,t){this.remoteModule=e,this.dbConnectionCtor=t,this.#s=Vr.createWebSocketFn}#a;#u;#o;#c;#l=new wr;#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(Cr(e));if(kr.parseVersionString(e).compare(Er)<0)throw new Error(Cr(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})}},Pr=Symbol("INTERNAL_REMOTE_MODULE"),Fr=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(re(e))return ie(e);throw new Error("Subscriptions must be SQL strings or typed queries")});return new zr(this.db,r,this.#p,this.#f)}subscribeToAllTables(){const e=this.db[Pr](),t=Object.values(e.tables).map(e=>`SELECT * FROM ${e.sourceName}`);this.subscribe(t)}},$r=class{subscriptions=new Map},zr=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 wr;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}},Kr=class{isActive=!1;identity=void 0;token=void 0;[Pr](){return this.#v}db;reducers;procedures;connectionId=L.random();#I=0;#T=0;#_=0;#l;#x=Promise.resolve();#U=[];#B=new $r;#v;#S=new Map;#M=new Map;#R=new Map;#A;#N;#q;#j;clientCache;ws;wsPromise;constructor({uri:e,nameOrAddress:t,identity:r,token:n,emitter:i,remoteModule:s,createWSFn:a,compression:u,lightMode:o,confirmedReads:c}){Ar("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.#j=Object.create(null);for(const e of Object.values(s.tables))this.#A[e.sourceName]=z.makeDeserializer(e.rowType),this.#j[e.sourceName]=e;this.#N=Object.create(null);for(const e of s.reducers)this.#N[e.name]={serialize:z.makeSerializer(e.paramsType),deserialize:z.makeDeserializer(e.paramsType)};this.#q=Object.create(null);for(const e of s.procedures)this.#q[e.name]={serializeArgs:z.makeSerializer(new Ge(e.params).algebraicType.value),deserializeReturn:A.makeDeserializer(e.returnType.algebraicType)};const d=this.connectionId.toHexString();l.searchParams.set("connection_id",d),this.clientCache=new Dr,this.db=this.#D(),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.#C.bind(this),this.ws.onmessage=this.#V.bind(this),e)).catch(e=>{Ar("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++;#D(){const e=Object.create(null);for(const t of Object.values(this.#j)){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.#N[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.#q[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 Fr(this);getTablesMap(){return ce({tables:this.#v.tables})}registerSubscription(e,t,r){const n=this.#O();this.#B.subscriptions.set(n,{handle:e,emitter:t});const i=this.#P();return this.#$(Ht.Subscribe({queryStrings:r,querySetId:{id:n},requestId:i})),n}unregisterSubscription(e){const t=this.#P();this.#$(Ht.Unsubscribe({querySetId:{id:e},requestId:t,flags:gr.SendDroppedRows}))}#z(t,r,n){const i=n.rowsData,a=new s(i),u=[],o=this.#A[r],c=this.#j[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=A.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.#U.splice(0);for(const r of t)e.send(r)}#Z=new o(1024);#$(e){const t=this.#Z;t.clear(),Ht.serialize(t,e);const r=t.getBuffer();this.ws&&this.isActive?(this.#U.length&&this.#W(this.ws),Ar("trace",()=>`Sending message to server: ${Rr(e)}`),this.ws.send(r)):(Ar("trace",()=>`Queuing message to server: ${Rr(e)}`),this.#U.push(r.slice()))}#G(){return this.#_+=1,`${this.connectionId.toHexString()}:${this.#_}`}#C(){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.#j[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=ur.deserialize(new s(e));switch(Ar("trace",()=>`Processing server message: ${Rr(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.#B.subscriptions.get(e);if(!r)return void Ar("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),Ar("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.#B.subscriptions.get(e);if(!r)return void Ar("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.#B.subscriptions.delete(e),Ar("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){Ar("error",`Disconnecting due to error for a previously applied subscription: ${t.value.error}`),this.disconnect();break}const a=this.#B.subscriptions.get(e);a?(a.emitter.emit("error",s,n),this.#B.subscriptions.delete(e)):Ar("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);Ar("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);Ar("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":Ar("warn","Received OneOffQueryResult but SDK does not expose one-off query APIs yet.")}}#V(e){this.#x=this.#x.then(()=>this.#Y(e.data))}callReducer(e,t,r){const{promise:n,resolve:i,reject:a}=Promise.withResolvers(),u=this.#P(),o=Ht.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 H(t))}else"InternalError"===e.tag?a(new Q(e.value)):a(new Error("Unexpected reducer result"))}),n}callReducerWithParams(e,t,r){const n=new o(1024);this.#N[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=Ht.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.#q[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 Lr(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 Hr=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 Ge&&!function(e){return null==e.typeName&&0===e.algebraicType.value.elements.length}(e)||e instanceof tt||e instanceof Ye?this.#re(e):e instanceof Ze?new Ze(this.registerTypesRecursively(e.value)):e instanceof Xe?new Xe(this.registerTypesRecursively(e.ok),this.registerTypesRecursively(e.err)):e instanceof Qe?new Qe(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 Ye||e instanceof Ge?{tag:"Product",value:{elements:[]}}:{tag:"Sum",value:{variants:[]}};if(n=new Ft(this.#te.typespace.types.length),this.#te.typespace.types.push(i),this.#ee.set(t,n),e instanceof Ye)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 Ge)for(const[t,r]of Object.entries(e.elements))i.value.elements.push({name:t,algebraicType:this.registerTypesRecursively(r).algebraicType});else if(e instanceof tt)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:Qr(r),ty:n.ref,customOrdering:!0}),n}};function Qr(e){const t=e.split(".");return{sourceName:t.pop(),scope:t}}var Wr=class{constructor(e){this.schemaType=e}};function Zr(e){const t=new Hr;return new Wr(function(e,t){const r=Object.create(null);for(const[n,i]of Object.entries(t))r[n]=Lr(n,i,i.tableDef(e,n));return{tables:r}}(t,e))}function Gr(e){return Object.fromEntries(e.map(e=>[e.accessorName,e]))}var Xr=$t.enum("AlgebraicType",{Ref:$t.u32(),get Sum(){return Xn},get Product(){return dn},get Array(){return Xr},String:$t.unit(),Bool:$t.unit(),I8:$t.unit(),U8:$t.unit(),I16:$t.unit(),U16:$t.unit(),I32:$t.unit(),U32:$t.unit(),I64:$t.unit(),U64:$t.unit(),I128:$t.unit(),U128:$t.unit(),I256:$t.unit(),U256:$t.unit(),F32:$t.unit(),F64:$t.unit()}),Jr=$t.enum("CaseConversionPolicy",{None:$t.unit(),SnakeCase:$t.unit()}),Yr=$t.enum("ExplicitNameEntry",{get Table(){return ln},get Function(){return ln},get Index(){return ln}}),en=$t.object("ExplicitNames",{get entries(){return $t.array(Yr)}}),tn=$t.enum("FunctionVisibility",{Private:$t.unit(),ClientCallable:$t.unit()}),rn=$t.object("HttpHeaderPair",{name:$t.string(),value:$t.byteArray()}),nn=$t.object("HttpHeaders",{get entries(){return $t.array(rn)}}),sn=$t.enum("HttpMethod",{Get:$t.unit(),Head:$t.unit(),Post:$t.unit(),Put:$t.unit(),Delete:$t.unit(),Connect:$t.unit(),Options:$t.unit(),Trace:$t.unit(),Patch:$t.unit(),Extension:$t.string()});$t.object("HttpRequest",{get method(){return sn},get headers(){return nn},timeout:$t.option($t.timeDuration()),uri:$t.string(),get version(){return an}}),$t.object("HttpResponse",{get headers(){return nn},get version(){return an},code:$t.u16()});var an=$t.enum("HttpVersion",{Http09:$t.unit(),Http10:$t.unit(),Http11:$t.unit(),Http2:$t.unit(),Http3:$t.unit()}),un=$t.enum("IndexType",{BTree:$t.unit(),Hash:$t.unit()}),on=$t.enum("Lifecycle",{Init:$t.unit(),OnConnect:$t.unit(),OnDisconnect:$t.unit()}),cn=$t.enum("MiscModuleExport",{get TypeAlias(){return ri}}),ln=$t.object("NameMapping",{sourceName:$t.string(),canonicalName:$t.string()}),dn=$t.object("ProductType",{get elements(){return $t.array(hn)}}),hn=$t.object("ProductTypeElement",{name:$t.option($t.string()),get algebraicType(){return Xr}}),mn=$t.object("RawColumnDefV8",{colName:$t.string(),get colType(){return Xr}}),pn=$t.object("RawColumnDefaultValueV10",{colId:$t.u16(),value:$t.byteArray()}),fn=$t.object("RawColumnDefaultValueV9",{table:$t.string(),colId:$t.u16(),value:$t.byteArray()}),yn=$t.enum("RawConstraintDataV9",{get Unique(){return Qn}}),gn=$t.object("RawConstraintDefV10",{sourceName:$t.option($t.string()),get data(){return yn}}),wn=$t.object("RawConstraintDefV8",{constraintName:$t.string(),constraints:$t.u8(),columns:$t.array($t.u16())}),bn=$t.object("RawConstraintDefV9",{name:$t.option($t.string()),get data(){return yn}}),vn=$t.enum("RawIndexAlgorithm",{BTree:$t.array($t.u16()),Hash:$t.array($t.u16()),Direct:$t.u16()}),In=$t.object("RawIndexDefV10",{sourceName:$t.option($t.string()),accessorName:$t.option($t.string()),get algorithm(){return vn}}),Tn=$t.object("RawIndexDefV8",{indexName:$t.string(),isUnique:$t.bool(),get indexType(){return un},columns:$t.array($t.u16())}),_n=$t.object("RawIndexDefV9",{name:$t.option($t.string()),accessorName:$t.option($t.string()),get algorithm(){return vn}}),xn=$t.object("RawLifeCycleReducerDefV10",{get lifecycleSpec(){return on},functionName:$t.string()}),Un=$t.enum("RawMiscModuleExportV9",{get ColumnDefaultValue(){return fn},get Procedure(){return Nn},get View(){return Zn}});$t.enum("RawModuleDef",{get V8BackCompat(){return Mn},get V9(){return Rn},get V10(){return Bn}});var Bn=$t.object("RawModuleDefV10",{get sections(){return $t.array(Sn)}}),Sn=$t.enum("RawModuleDefV10Section",{get Typespace(){return ni},get Types(){return $t.array(Ln)},get Tables(){return $t.array($n)},get Reducers(){return $t.array(qn)},get Procedures(){return $t.array(An)},get Views(){return $t.array(Wn)},get Schedules(){return $t.array(kn)},get LifeCycleReducers(){return $t.array(xn)},get RowLevelSecurity(){return $t.array(Dn)},get CaseConversionPolicy(){return Jr},get ExplicitNames(){return en}}),Mn=$t.object("RawModuleDefV8",{get typespace(){return ni},get tables(){return $t.array(ei)},get reducers(){return $t.array(Gn)},get miscExports(){return $t.array(cn)}}),Rn=$t.object("RawModuleDefV9",{get typespace(){return ni},get tables(){return $t.array(Kn)},get reducers(){return $t.array(jn)},get types(){return $t.array(Hn)},get miscExports(){return $t.array(Un)},get rowLevelSecurity(){return $t.array(Dn)}}),An=$t.object("RawProcedureDefV10",{sourceName:$t.string(),get params(){return dn},get returnType(){return Xr},get visibility(){return tn}}),Nn=$t.object("RawProcedureDefV9",{name:$t.string(),get params(){return dn},get returnType(){return Xr}}),qn=$t.object("RawReducerDefV10",{sourceName:$t.string(),get params(){return dn},get visibility(){return tn},get okReturnType(){return Xr},get errReturnType(){return Xr}}),jn=$t.object("RawReducerDefV9",{name:$t.string(),get params(){return dn},get lifecycle(){return $t.option(on)}}),Dn=$t.object("RawRowLevelSecurityDefV9",{sql:$t.string()}),kn=$t.object("RawScheduleDefV10",{sourceName:$t.option($t.string()),tableName:$t.string(),scheduleAtCol:$t.u16(),functionName:$t.string()}),En=$t.object("RawScheduleDefV9",{name:$t.option($t.string()),reducerName:$t.string(),scheduledAtColumn:$t.u16()}),Cn=$t.object("RawScopedTypeNameV10",{scope:$t.array($t.string()),sourceName:$t.string()}),Vn=$t.object("RawScopedTypeNameV9",{scope:$t.array($t.string()),name:$t.string()}),On=$t.object("RawSequenceDefV10",{sourceName:$t.option($t.string()),column:$t.u16(),start:$t.option($t.i128()),minValue:$t.option($t.i128()),maxValue:$t.option($t.i128()),increment:$t.i128()}),Pn=$t.object("RawSequenceDefV8",{sequenceName:$t.string(),colPos:$t.u16(),increment:$t.i128(),start:$t.option($t.i128()),minValue:$t.option($t.i128()),maxValue:$t.option($t.i128()),allocated:$t.i128()}),Fn=$t.object("RawSequenceDefV9",{name:$t.option($t.string()),column:$t.u16(),start:$t.option($t.i128()),minValue:$t.option($t.i128()),maxValue:$t.option($t.i128()),increment:$t.i128()}),$n=$t.object("RawTableDefV10",{sourceName:$t.string(),productTypeRef:$t.u32(),primaryKey:$t.array($t.u16()),get indexes(){return $t.array(In)},get constraints(){return $t.array(gn)},get sequences(){return $t.array(On)},get tableType(){return ti},get tableAccess(){return Yn},get defaultValues(){return $t.array(pn)},isEvent:$t.bool()}),zn=$t.object("RawTableDefV8",{tableName:$t.string(),get columns(){return $t.array(mn)},get indexes(){return $t.array(Tn)},get constraints(){return $t.array(wn)},get sequences(){return $t.array(Pn)},tableType:$t.string(),tableAccess:$t.string(),scheduled:$t.option($t.string())}),Kn=$t.object("RawTableDefV9",{name:$t.string(),productTypeRef:$t.u32(),primaryKey:$t.array($t.u16()),get indexes(){return $t.array(_n)},get constraints(){return $t.array(bn)},get sequences(){return $t.array(Fn)},get schedule(){return $t.option(En)},get tableType(){return ti},get tableAccess(){return Yn}}),Ln=$t.object("RawTypeDefV10",{get sourceName(){return Cn},ty:$t.u32(),customOrdering:$t.bool()}),Hn=$t.object("RawTypeDefV9",{get name(){return Vn},ty:$t.u32(),customOrdering:$t.bool()}),Qn=$t.object("RawUniqueConstraintDataV9",{columns:$t.array($t.u16())}),Wn=$t.object("RawViewDefV10",{sourceName:$t.string(),index:$t.u32(),isPublic:$t.bool(),isAnonymous:$t.bool(),get params(){return dn},get returnType(){return Xr}}),Zn=$t.object("RawViewDefV9",{name:$t.string(),index:$t.u32(),isPublic:$t.bool(),isAnonymous:$t.bool(),get params(){return dn},get returnType(){return Xr}}),Gn=$t.object("ReducerDef",{name:$t.string(),get args(){return $t.array(hn)}}),Xn=$t.object("SumType",{get variants(){return $t.array(Jn)}}),Jn=$t.object("SumTypeVariant",{name:$t.option($t.string()),get algebraicType(){return Xr}}),Yn=$t.enum("TableAccess",{Public:$t.unit(),Private:$t.unit()}),ei=$t.object("TableDesc",{get schema(){return zn},data:$t.u32()}),ti=$t.enum("TableType",{System:$t.unit(),User:$t.unit()}),ri=$t.object("TypeAlias",{name:$t.string(),ty:$t.u32()}),ni=$t.object("Typespace",{get types(){return $t.array(Xr)}});function ii(e,t,...r){const{name:n,public:i=!1,indexes:s=[],scheduled:a,event:u=!1}=e,c=new Map,l=[];t instanceof Ye||(t=new Ye(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=vn.BTree([n]);break;case"hash":i=vn.Hash([n]);break;case"direct":i=vn.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;J.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=v(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(Yr.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}}$t.enum("ViewResultHeader",{RowData:$t.unit(),RawSql:$t.string()});var si=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 ai(...e){const t=1===e.length&&Array.isArray(e[0])?e[0]:e;return new si(t)}function ui(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:I(e),params:new Ye(t),paramsSpacetimeType:r,reducerDef:{name:e,params:r,lifecycle:void 0}}}function oi(...e){return{procedures:1===e.length&&Array.isArray(e[0])?e[0]:e}}function ci(e,t,r){return{name:e,accessorName:I(e),params:x(t),returnType:r}}export{A as AlgebraicType,S as AlgebraicTypeVariants,Qe as ArrayBuilder,Mt as ArrayColumnBuilder,s as BinaryReader,o as BinaryWriter,Le as BoolBuilder,Bt as BoolColumnBuilder,me as BooleanExpr,We as ByteArrayBuilder,Rt as ByteArrayColumnBuilder,Dr as ClientCache,dt as ColumnBuilder,le as ColumnExpression,L as ConnectionId,at as ConnectionIdBuilder,Ct as ConnectionIdColumnBuilder,Or as DbConnectionBuilder,Kr as DbConnectionImpl,ze as F32Builder,xt as F32ColumnBuilder,Ke as F64Builder,Ut as F64ColumnBuilder,Fe as I128Builder,Tt as I128ColumnBuilder,Ve as I16Builder,bt as I16ColumnBuilder,$e as I256Builder,_t as I256ColumnBuilder,Oe as I32Builder,vt as I32ColumnBuilder,Pe as I64Builder,It as I64ColumnBuilder,Ce as I8Builder,wt as I8ColumnBuilder,B as Identity,st as IdentityBuilder,Et as IdentityColumnBuilder,Q as InternalError,G as Interval,Y as Option,Ze as OptionBuilder,At as OptionColumnBuilder,Ge as ProductBuilder,qt as ProductColumnBuilder,z as ProductType,Ft as RefBuilder,ee as Result,Xe as ResultBuilder,Nt as ResultColumnBuilder,Ye as RowBuilder,Z as ScheduleAt,it as ScheduleAtBuilder,kt as ScheduleAtColumnBuilder,H as SenderError,nt as SimpleSumBuilder,Dt as SimpleSumColumnBuilder,He as StringBuilder,St as StringColumnBuilder,Fr as SubscriptionBuilderImpl,zr as SubscriptionHandleImpl,tt as SumBuilder,jt as SumColumnBuilder,K as SumType,X as Time,r as TimeDuration,ot as TimeDurationBuilder,Ot as TimeDurationColumnBuilder,n as Timestamp,ut as TimestampBuilder,Vt as TimestampColumnBuilder,Ae as TypeBuilder,ke as U128Builder,yt as U128ColumnBuilder,qe as U16Builder,mt as U16ColumnBuilder,Ee as U256Builder,gt as U256ColumnBuilder,je as U32Builder,pt as U32ColumnBuilder,De as U64Builder,ft as U64ColumnBuilder,Ne as U8Builder,ht as U8ColumnBuilder,i as Uuid,ct as UuidBuilder,Pt as UuidColumnBuilder,fe as and,_ as bsatnBaseSize,x as coerceParams,Gr as convertToAccessorMap,oe as createTableRefFromDef,c as deepEqual,Te as evaluateBooleanExpr,Ur as getGlobalLogLevel,Se as getQueryAccessorName,Be as getQueryTableName,Me as getQueryWhereClause,U as hasOwn,p as hexStringToU128,f as hexStringToU256,m as hexStringToUint8Array,re as isRowTypedQuery,ne as isTypedQuery,de as literal,ce as makeQueryBuilder,pe as not,ye as or,W as parseValue,ci as procedureSchema,oi as procedures,ui as reducerSchema,ai as reducers,Zr as schema,xr as setGlobalLogLevel,Ar as stdbLogger,Rr as stringify,$t as t,ii as table,I as toCamelCase,Ue as toComparableValue,v as toPascalCase,T as toSnakeCase,ie as toSql,g as u128ToHexString,y as u128ToUint8Array,b as u256ToHexString,w as u256ToUint8Array,l as uint8ArrayToHexString,d as uint8ArrayToU128,h as uint8ArrayToU256};//# sourceMappingURL=index.browser.mjs.map
|