spacetimedb 2.0.4 → 2.1.0

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