@powersync/common 1.40.0 → 1.41.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.
package/dist/bundle.cjs CHANGED
@@ -19,4 +19,4 @@ read:function(l,n,u,e,t){var r,s,i=8*t-e-1,o=(1<<i)-1,a=o>>1,c=-7,h=u?t-1:0,d=u?
19
19
  * @author Feross Aboukhadijeh <https://feross.org>
20
20
  * @license MIT
21
21
  */
22
- !function(l){var n=il,u=ml,e="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;l.Buffer=s,l.SlowBuffer=function(l){+l!=l&&(l=0);return s.alloc(+l)},l.INSPECT_MAX_BYTES=50;var t=2147483647;function r(l){if(l>t)throw new RangeError('The value "'+l+'" is invalid for option "size"');var n=new Uint8Array(l);return Object.setPrototypeOf(n,s.prototype),n}function s(l,n,u){if("number"==typeof l){if("string"==typeof n)throw new TypeError('The "string" argument must be of type string. Received type number');return a(l)}return i(l,n,u)}function i(l,n,u){if("string"==typeof l)return function(l,n){"string"==typeof n&&""!==n||(n="utf8");if(!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var u=0|p(l,n),e=r(u),t=e.write(l,n);t!==u&&(e=e.slice(0,t));return e}(l,n);if(ArrayBuffer.isView(l))return function(l){if(B(l,Uint8Array)){var n=new Uint8Array(l);return h(n.buffer,n.byteOffset,n.byteLength)}return c(l)}(l);if(null==l)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(B(l,ArrayBuffer)||l&&B(l.buffer,ArrayBuffer))return h(l,n,u);if("undefined"!=typeof SharedArrayBuffer&&(B(l,SharedArrayBuffer)||l&&B(l.buffer,SharedArrayBuffer)))return h(l,n,u);if("number"==typeof l)throw new TypeError('The "value" argument must not be of type number. Received type number');var e=l.valueOf&&l.valueOf();if(null!=e&&e!==l)return s.from(e,n,u);var t=function(l){if(s.isBuffer(l)){var n=0|d(l.length),u=r(n);return 0===u.length||l.copy(u,0,0,n),u}if(void 0!==l.length)return"number"!=typeof l.length||q(l.length)?r(0):c(l);if("Buffer"===l.type&&Array.isArray(l.data))return c(l.data)}(l);if(t)return t;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof l[Symbol.toPrimitive])return s.from(l[Symbol.toPrimitive]("string"),n,u);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}function o(l){if("number"!=typeof l)throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function a(l){return o(l),r(l<0?0:0|d(l))}function c(l){for(var n=l.length<0?0:0|d(l.length),u=r(n),e=0;e<n;e+=1)u[e]=255&l[e];return u}function h(l,n,u){if(n<0||l.byteLength<n)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<n+(u||0))throw new RangeError('"length" is outside of buffer bounds');var e;return e=void 0===n&&void 0===u?new Uint8Array(l):void 0===u?new Uint8Array(l,n):new Uint8Array(l,n,u),Object.setPrototypeOf(e,s.prototype),e}function d(l){if(l>=t)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+t.toString(16)+" bytes");return 0|l}function p(l,n){if(s.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||B(l,ArrayBuffer))return l.byteLength;if("string"!=typeof l)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);var u=l.length,e=arguments.length>2&&!0===arguments[2];if(!e&&0===u)return 0;for(var t=!1;;)switch(n){case"ascii":case"latin1":case"binary":return u;case"utf8":case"utf-8":return D(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*u;case"hex":return u>>>1;case"base64":return P(l).length;default:if(t)return e?-1:D(l).length;n=(""+n).toLowerCase(),t=!0}}function f(l,n,u){var e=!1;if((void 0===n||n<0)&&(n=0),n>this.length)return"";if((void 0===u||u>this.length)&&(u=this.length),u<=0)return"";if((u>>>=0)<=(n>>>=0))return"";for(l||(l="utf8");;)switch(l){case"hex":return C(this,n,u);case"utf8":case"utf-8":return R(this,n,u);case"ascii":return O(this,n,u);case"latin1":case"binary":return A(this,n,u);case"base64":return T(this,n,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,n,u);default:if(e)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),e=!0}}function m(l,n,u){var e=l[n];l[n]=l[u],l[u]=e}function y(l,n,u,e,t){if(0===l.length)return-1;if("string"==typeof u?(e=u,u=0):u>2147483647?u=2147483647:u<-2147483648&&(u=-2147483648),q(u=+u)&&(u=t?0:l.length-1),u<0&&(u=l.length+u),u>=l.length){if(t)return-1;u=l.length-1}else if(u<0){if(!t)return-1;u=0}if("string"==typeof n&&(n=s.from(n,e)),s.isBuffer(n))return 0===n.length?-1:g(l,n,u,e,t);if("number"==typeof n)return n&=255,"function"==typeof Uint8Array.prototype.indexOf?t?Uint8Array.prototype.indexOf.call(l,n,u):Uint8Array.prototype.lastIndexOf.call(l,n,u):g(l,[n],u,e,t);throw new TypeError("val must be string, number or Buffer")}function g(l,n,u,e,t){var r,s=1,i=l.length,o=n.length;if(void 0!==e&&("ucs2"===(e=String(e).toLowerCase())||"ucs-2"===e||"utf16le"===e||"utf-16le"===e)){if(l.length<2||n.length<2)return-1;s=2,i/=2,o/=2,u/=2}function a(l,n){return 1===s?l[n]:l.readUInt16BE(n*s)}if(t){var c=-1;for(r=u;r<i;r++)if(a(l,r)===a(n,-1===c?0:r-c)){if(-1===c&&(c=r),r-c+1===o)return c*s}else-1!==c&&(r-=r-c),c=-1}else for(u+o>i&&(u=i-o),r=u;r>=0;r--){for(var h=!0,d=0;d<o;d++)if(a(l,r+d)!==a(n,d)){h=!1;break}if(h)return r}return-1}function E(l,n,u,e){u=Number(u)||0;var t=l.length-u;e?(e=Number(e))>t&&(e=t):e=t;var r=n.length;e>r/2&&(e=r/2);for(var s=0;s<e;++s){var i=parseInt(n.substr(2*s,2),16);if(q(i))return s;l[u+s]=i}return s}function w(l,n,u,e){return M(D(n,l.length-u),l,u,e)}function b(l,n,u,e){return M(function(l){for(var n=[],u=0;u<l.length;++u)n.push(255&l.charCodeAt(u));return n}(n),l,u,e)}function v(l,n,u,e){return M(P(n),l,u,e)}function S(l,n,u,e){return M(function(l,n){for(var u,e,t,r=[],s=0;s<l.length&&!((n-=2)<0);++s)e=(u=l.charCodeAt(s))>>8,t=u%256,r.push(t),r.push(e);return r}(n,l.length-u),l,u,e)}function T(l,u,e){return 0===u&&e===l.length?n.fromByteArray(l):n.fromByteArray(l.slice(u,e))}function R(l,n,u){u=Math.min(l.length,u);for(var e=[],t=n;t<u;){var r,s,i,o,a=l[t],c=null,h=a>239?4:a>223?3:a>191?2:1;if(t+h<=u)switch(h){case 1:a<128&&(c=a);break;case 2:128==(192&(r=l[t+1]))&&(o=(31&a)<<6|63&r)>127&&(c=o);break;case 3:r=l[t+1],s=l[t+2],128==(192&r)&&128==(192&s)&&(o=(15&a)<<12|(63&r)<<6|63&s)>2047&&(o<55296||o>57343)&&(c=o);break;case 4:r=l[t+1],s=l[t+2],i=l[t+3],128==(192&r)&&128==(192&s)&&128==(192&i)&&(o=(15&a)<<18|(63&r)<<12|(63&s)<<6|63&i)>65535&&o<1114112&&(c=o)}null===c?(c=65533,h=1):c>65535&&(c-=65536,e.push(c>>>10&1023|55296),c=56320|1023&c),e.push(c),t+=h}return function(l){var n=l.length;if(n<=_)return String.fromCharCode.apply(String,l);var u="",e=0;for(;e<n;)u+=String.fromCharCode.apply(String,l.slice(e,e+=_));return u}(e)}l.kMaxLength=t,s.TYPED_ARRAY_SUPPORT=function(){try{var l=new Uint8Array(1),n={foo:function(){return 42}};return Object.setPrototypeOf(n,Uint8Array.prototype),Object.setPrototypeOf(l,n),42===l.foo()}catch(l){return!1}}(),s.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),s.poolSize=8192,s.from=function(l,n,u){return i(l,n,u)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array),s.alloc=function(l,n,u){return function(l,n,u){return o(l),l<=0?r(l):void 0!==n?"string"==typeof u?r(l).fill(n,u):r(l).fill(n):r(l)}(l,n,u)},s.allocUnsafe=function(l){return a(l)},s.allocUnsafeSlow=function(l){return a(l)},s.isBuffer=function(l){return null!=l&&!0===l._isBuffer&&l!==s.prototype},s.compare=function(l,n){if(B(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),B(n,Uint8Array)&&(n=s.from(n,n.offset,n.byteLength)),!s.isBuffer(l)||!s.isBuffer(n))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(l===n)return 0;for(var u=l.length,e=n.length,t=0,r=Math.min(u,e);t<r;++t)if(l[t]!==n[t]){u=l[t],e=n[t];break}return u<e?-1:e<u?1:0},s.isEncoding=function(l){switch(String(l).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(l,n){if(!Array.isArray(l))throw new TypeError('"list" argument must be an Array of Buffers');if(0===l.length)return s.alloc(0);var u;if(void 0===n)for(n=0,u=0;u<l.length;++u)n+=l[u].length;var e=s.allocUnsafe(n),t=0;for(u=0;u<l.length;++u){var r=l[u];if(B(r,Uint8Array))t+r.length>e.length?s.from(r).copy(e,t):Uint8Array.prototype.set.call(e,r,t);else{if(!s.isBuffer(r))throw new TypeError('"list" argument must be an Array of Buffers');r.copy(e,t)}t+=r.length}return e},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var l=this.length;if(l%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var n=0;n<l;n+=2)m(this,n,n+1);return this},s.prototype.swap32=function(){var l=this.length;if(l%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var n=0;n<l;n+=4)m(this,n,n+3),m(this,n+1,n+2);return this},s.prototype.swap64=function(){var l=this.length;if(l%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var n=0;n<l;n+=8)m(this,n,n+7),m(this,n+1,n+6),m(this,n+2,n+5),m(this,n+3,n+4);return this},s.prototype.toString=function(){var l=this.length;return 0===l?"":0===arguments.length?R(this,0,l):f.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(l){if(!s.isBuffer(l))throw new TypeError("Argument must be a Buffer");return this===l||0===s.compare(this,l)},s.prototype.inspect=function(){var n="",u=l.INSPECT_MAX_BYTES;return n=this.toString("hex",0,u).replace(/(.{2})/g,"$1 ").trim(),this.length>u&&(n+=" ... "),"<Buffer "+n+">"},e&&(s.prototype[e]=s.prototype.inspect),s.prototype.compare=function(l,n,u,e,t){if(B(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),!s.isBuffer(l))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof l);if(void 0===n&&(n=0),void 0===u&&(u=l?l.length:0),void 0===e&&(e=0),void 0===t&&(t=this.length),n<0||u>l.length||e<0||t>this.length)throw new RangeError("out of range index");if(e>=t&&n>=u)return 0;if(e>=t)return-1;if(n>=u)return 1;if(this===l)return 0;for(var r=(t>>>=0)-(e>>>=0),i=(u>>>=0)-(n>>>=0),o=Math.min(r,i),a=this.slice(e,t),c=l.slice(n,u),h=0;h<o;++h)if(a[h]!==c[h]){r=a[h],i=c[h];break}return r<i?-1:i<r?1:0},s.prototype.includes=function(l,n,u){return-1!==this.indexOf(l,n,u)},s.prototype.indexOf=function(l,n,u){return y(this,l,n,u,!0)},s.prototype.lastIndexOf=function(l,n,u){return y(this,l,n,u,!1)},s.prototype.write=function(l,n,u,e){if(void 0===n)e="utf8",u=this.length,n=0;else if(void 0===u&&"string"==typeof n)e=n,u=this.length,n=0;else{if(!isFinite(n))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");n>>>=0,isFinite(u)?(u>>>=0,void 0===e&&(e="utf8")):(e=u,u=void 0)}var t=this.length-n;if((void 0===u||u>t)&&(u=t),l.length>0&&(u<0||n<0)||n>this.length)throw new RangeError("Attempt to write outside buffer bounds");e||(e="utf8");for(var r=!1;;)switch(e){case"hex":return E(this,l,n,u);case"utf8":case"utf-8":return w(this,l,n,u);case"ascii":case"latin1":case"binary":return b(this,l,n,u);case"base64":return v(this,l,n,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,l,n,u);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(""+e).toLowerCase(),r=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var _=4096;function O(l,n,u){var e="";u=Math.min(l.length,u);for(var t=n;t<u;++t)e+=String.fromCharCode(127&l[t]);return e}function A(l,n,u){var e="";u=Math.min(l.length,u);for(var t=n;t<u;++t)e+=String.fromCharCode(l[t]);return e}function C(l,n,u){var e=l.length;(!n||n<0)&&(n=0),(!u||u<0||u>e)&&(u=e);for(var t="",r=n;r<u;++r)t+=j[l[r]];return t}function F(l,n,u){for(var e=l.slice(n,u),t="",r=0;r<e.length-1;r+=2)t+=String.fromCharCode(e[r]+256*e[r+1]);return t}function I(l,n,u){if(l%1!=0||l<0)throw new RangeError("offset is not uint");if(l+n>u)throw new RangeError("Trying to access beyond buffer length")}function L(l,n,u,e,t,r){if(!s.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(n>t||n<r)throw new RangeError('"value" argument is out of bounds');if(u+e>l.length)throw new RangeError("Index out of range")}function x(l,n,u,e,t,r){if(u+e>l.length)throw new RangeError("Index out of range");if(u<0)throw new RangeError("Index out of range")}function N(l,n,e,t,r){return n=+n,e>>>=0,r||x(l,0,e,4),u.write(l,n,e,t,23,4),e+4}function k(l,n,e,t,r){return n=+n,e>>>=0,r||x(l,0,e,8),u.write(l,n,e,t,52,8),e+8}s.prototype.slice=function(l,n){var u=this.length;(l=~~l)<0?(l+=u)<0&&(l=0):l>u&&(l=u),(n=void 0===n?u:~~n)<0?(n+=u)<0&&(n=0):n>u&&(n=u),n<l&&(n=l);var e=this.subarray(l,n);return Object.setPrototypeOf(e,s.prototype),e},s.prototype.readUintLE=s.prototype.readUIntLE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=this[l],t=1,r=0;++r<n&&(t*=256);)e+=this[l+r]*t;return e},s.prototype.readUintBE=s.prototype.readUIntBE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=this[l+--n],t=1;n>0&&(t*=256);)e+=this[l+--n]*t;return e},s.prototype.readUint8=s.prototype.readUInt8=function(l,n){return l>>>=0,n||I(l,1,this.length),this[l]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(l,n){return l>>>=0,n||I(l,2,this.length),this[l]|this[l+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(l,n){return l>>>=0,n||I(l,2,this.length),this[l]<<8|this[l+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(l,n){return l>>>=0,n||I(l,4,this.length),(this[l]|this[l+1]<<8|this[l+2]<<16)+16777216*this[l+3]},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(l,n){return l>>>=0,n||I(l,4,this.length),16777216*this[l]+(this[l+1]<<16|this[l+2]<<8|this[l+3])},s.prototype.readIntLE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=this[l],t=1,r=0;++r<n&&(t*=256);)e+=this[l+r]*t;return e>=(t*=128)&&(e-=Math.pow(2,8*n)),e},s.prototype.readIntBE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=n,t=1,r=this[l+--e];e>0&&(t*=256);)r+=this[l+--e]*t;return r>=(t*=128)&&(r-=Math.pow(2,8*n)),r},s.prototype.readInt8=function(l,n){return l>>>=0,n||I(l,1,this.length),128&this[l]?-1*(255-this[l]+1):this[l]},s.prototype.readInt16LE=function(l,n){l>>>=0,n||I(l,2,this.length);var u=this[l]|this[l+1]<<8;return 32768&u?4294901760|u:u},s.prototype.readInt16BE=function(l,n){l>>>=0,n||I(l,2,this.length);var u=this[l+1]|this[l]<<8;return 32768&u?4294901760|u:u},s.prototype.readInt32LE=function(l,n){return l>>>=0,n||I(l,4,this.length),this[l]|this[l+1]<<8|this[l+2]<<16|this[l+3]<<24},s.prototype.readInt32BE=function(l,n){return l>>>=0,n||I(l,4,this.length),this[l]<<24|this[l+1]<<16|this[l+2]<<8|this[l+3]},s.prototype.readFloatLE=function(l,n){return l>>>=0,n||I(l,4,this.length),u.read(this,l,!0,23,4)},s.prototype.readFloatBE=function(l,n){return l>>>=0,n||I(l,4,this.length),u.read(this,l,!1,23,4)},s.prototype.readDoubleLE=function(l,n){return l>>>=0,n||I(l,8,this.length),u.read(this,l,!0,52,8)},s.prototype.readDoubleBE=function(l,n){return l>>>=0,n||I(l,8,this.length),u.read(this,l,!1,52,8)},s.prototype.writeUintLE=s.prototype.writeUIntLE=function(l,n,u,e){(l=+l,n>>>=0,u>>>=0,e)||L(this,l,n,u,Math.pow(2,8*u)-1,0);var t=1,r=0;for(this[n]=255&l;++r<u&&(t*=256);)this[n+r]=l/t&255;return n+u},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(l,n,u,e){(l=+l,n>>>=0,u>>>=0,e)||L(this,l,n,u,Math.pow(2,8*u)-1,0);var t=u-1,r=1;for(this[n+t]=255&l;--t>=0&&(r*=256);)this[n+t]=l/r&255;return n+u},s.prototype.writeUint8=s.prototype.writeUInt8=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,1,255,0),this[n]=255&l,n+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,65535,0),this[n]=255&l,this[n+1]=l>>>8,n+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,65535,0),this[n]=l>>>8,this[n+1]=255&l,n+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,4294967295,0),this[n+3]=l>>>24,this[n+2]=l>>>16,this[n+1]=l>>>8,this[n]=255&l,n+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,4294967295,0),this[n]=l>>>24,this[n+1]=l>>>16,this[n+2]=l>>>8,this[n+3]=255&l,n+4},s.prototype.writeIntLE=function(l,n,u,e){if(l=+l,n>>>=0,!e){var t=Math.pow(2,8*u-1);L(this,l,n,u,t-1,-t)}var r=0,s=1,i=0;for(this[n]=255&l;++r<u&&(s*=256);)l<0&&0===i&&0!==this[n+r-1]&&(i=1),this[n+r]=(l/s|0)-i&255;return n+u},s.prototype.writeIntBE=function(l,n,u,e){if(l=+l,n>>>=0,!e){var t=Math.pow(2,8*u-1);L(this,l,n,u,t-1,-t)}var r=u-1,s=1,i=0;for(this[n+r]=255&l;--r>=0&&(s*=256);)l<0&&0===i&&0!==this[n+r+1]&&(i=1),this[n+r]=(l/s|0)-i&255;return n+u},s.prototype.writeInt8=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,1,127,-128),l<0&&(l=255+l+1),this[n]=255&l,n+1},s.prototype.writeInt16LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,32767,-32768),this[n]=255&l,this[n+1]=l>>>8,n+2},s.prototype.writeInt16BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,32767,-32768),this[n]=l>>>8,this[n+1]=255&l,n+2},s.prototype.writeInt32LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,2147483647,-2147483648),this[n]=255&l,this[n+1]=l>>>8,this[n+2]=l>>>16,this[n+3]=l>>>24,n+4},s.prototype.writeInt32BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,2147483647,-2147483648),l<0&&(l=4294967295+l+1),this[n]=l>>>24,this[n+1]=l>>>16,this[n+2]=l>>>8,this[n+3]=255&l,n+4},s.prototype.writeFloatLE=function(l,n,u){return N(this,l,n,!0,u)},s.prototype.writeFloatBE=function(l,n,u){return N(this,l,n,!1,u)},s.prototype.writeDoubleLE=function(l,n,u){return k(this,l,n,!0,u)},s.prototype.writeDoubleBE=function(l,n,u){return k(this,l,n,!1,u)},s.prototype.copy=function(l,n,u,e){if(!s.isBuffer(l))throw new TypeError("argument should be a Buffer");if(u||(u=0),e||0===e||(e=this.length),n>=l.length&&(n=l.length),n||(n=0),e>0&&e<u&&(e=u),e===u)return 0;if(0===l.length||0===this.length)return 0;if(n<0)throw new RangeError("targetStart out of bounds");if(u<0||u>=this.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),l.length-n<e-u&&(e=l.length-n+u);var t=e-u;return this===l&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(n,u,e):Uint8Array.prototype.set.call(l,this.subarray(u,e),n),t},s.prototype.fill=function(l,n,u,e){if("string"==typeof l){if("string"==typeof n?(e=n,n=0,u=this.length):"string"==typeof u&&(e=u,u=this.length),void 0!==e&&"string"!=typeof e)throw new TypeError("encoding must be a string");if("string"==typeof e&&!s.isEncoding(e))throw new TypeError("Unknown encoding: "+e);if(1===l.length){var t=l.charCodeAt(0);("utf8"===e&&t<128||"latin1"===e)&&(l=t)}}else"number"==typeof l?l&=255:"boolean"==typeof l&&(l=Number(l));if(n<0||this.length<n||this.length<u)throw new RangeError("Out of range index");if(u<=n)return this;var r;if(n>>>=0,u=void 0===u?this.length:u>>>0,l||(l=0),"number"==typeof l)for(r=n;r<u;++r)this[r]=l;else{var i=s.isBuffer(l)?l:s.from(l,e),o=i.length;if(0===o)throw new TypeError('The value "'+l+'" is invalid for argument "value"');for(r=0;r<u-n;++r)this[r+n]=i[r%o]}return this};var U=/[^+/0-9A-Za-z-_]/g;function D(l,n){var u;n=n||1/0;for(var e=l.length,t=null,r=[],s=0;s<e;++s){if((u=l.charCodeAt(s))>55295&&u<57344){if(!t){if(u>56319){(n-=3)>-1&&r.push(239,191,189);continue}if(s+1===e){(n-=3)>-1&&r.push(239,191,189);continue}t=u;continue}if(u<56320){(n-=3)>-1&&r.push(239,191,189),t=u;continue}u=65536+(t-55296<<10|u-56320)}else t&&(n-=3)>-1&&r.push(239,191,189);if(t=null,u<128){if((n-=1)<0)break;r.push(u)}else if(u<2048){if((n-=2)<0)break;r.push(u>>6|192,63&u|128)}else if(u<65536){if((n-=3)<0)break;r.push(u>>12|224,u>>6&63|128,63&u|128)}else{if(!(u<1114112))throw new Error("Invalid code point");if((n-=4)<0)break;r.push(u>>18|240,u>>12&63|128,u>>6&63|128,63&u|128)}}return r}function P(l){return n.toByteArray(function(l){if((l=(l=l.split("=")[0]).trim().replace(U,"")).length<2)return"";for(;l.length%4!=0;)l+="=";return l}(l))}function M(l,n,u,e){for(var t=0;t<e&&!(t+u>=n.length||t>=l.length);++t)n[t+u]=l[t];return t}function B(l,n){return l instanceof n||null!=l&&null!=l.constructor&&null!=l.constructor.name&&l.constructor.name===n.name}function q(l){return l!=l}var j=function(){for(var l="0123456789abcdef",n=new Array(256),u=0;u<16;++u)for(var e=16*u,t=0;t<16;++t)n[e+t]=l[u]+l[t];return n}()}(gl);var El={},wl={};!function(l){var n,u,e,t;Object.defineProperty(l,"__esModule",{value:!0}),l.Frame=l.Lengths=l.Flags=l.FrameTypes=void 0,function(l){l[l.RESERVED=0]="RESERVED",l[l.SETUP=1]="SETUP",l[l.LEASE=2]="LEASE",l[l.KEEPALIVE=3]="KEEPALIVE",l[l.REQUEST_RESPONSE=4]="REQUEST_RESPONSE",l[l.REQUEST_FNF=5]="REQUEST_FNF",l[l.REQUEST_STREAM=6]="REQUEST_STREAM",l[l.REQUEST_CHANNEL=7]="REQUEST_CHANNEL",l[l.REQUEST_N=8]="REQUEST_N",l[l.CANCEL=9]="CANCEL",l[l.PAYLOAD=10]="PAYLOAD",l[l.ERROR=11]="ERROR",l[l.METADATA_PUSH=12]="METADATA_PUSH",l[l.RESUME=13]="RESUME",l[l.RESUME_OK=14]="RESUME_OK",l[l.EXT=63]="EXT"}(n=l.FrameTypes||(l.FrameTypes={})),(u=l.Flags||(l.Flags={}))[u.NONE=0]="NONE",u[u.COMPLETE=64]="COMPLETE",u[u.FOLLOWS=128]="FOLLOWS",u[u.IGNORE=512]="IGNORE",u[u.LEASE=64]="LEASE",u[u.METADATA=256]="METADATA",u[u.NEXT=32]="NEXT",u[u.RESPOND=128]="RESPOND",u[u.RESUME_ENABLE=128]="RESUME_ENABLE",function(l){l.hasMetadata=function(n){return(n&l.METADATA)===l.METADATA},l.hasComplete=function(n){return(n&l.COMPLETE)===l.COMPLETE},l.hasNext=function(n){return(n&l.NEXT)===l.NEXT},l.hasFollows=function(n){return(n&l.FOLLOWS)===l.FOLLOWS},l.hasIgnore=function(n){return(n&l.IGNORE)===l.IGNORE},l.hasRespond=function(n){return(n&l.RESPOND)===l.RESPOND},l.hasLease=function(n){return(n&l.LEASE)===l.LEASE},l.hasResume=function(n){return(n&l.RESUME_ENABLE)===l.RESUME_ENABLE}}(l.Flags||(l.Flags={})),(e=l.Lengths||(l.Lengths={}))[e.FRAME=3]="FRAME",e[e.HEADER=6]="HEADER",e[e.METADATA=3]="METADATA",e[e.REQUEST=3]="REQUEST",(t=l.Frame||(l.Frame={})).isConnection=function(l){return 0===l.streamId},t.isRequest=function(l){return n.REQUEST_RESPONSE<=l.type&&l.type<=n.REQUEST_CHANNEL}}(wl),function(l){var n=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(l,"__esModule",{value:!0}),l.Deserializer=l.sizeOfFrame=l.serializeFrame=l.deserializeFrame=l.serializeFrameWithLength=l.deserializeFrames=l.deserializeFrameWithLength=l.writeUInt64BE=l.readUInt64BE=l.writeUInt24BE=l.readUInt24BE=l.MAX_VERSION=l.MAX_TTL=l.MAX_STREAM_ID=l.MAX_RESUME_LENGTH=l.MAX_REQUEST_N=l.MAX_REQUEST_COUNT=l.MAX_MIME_LENGTH=l.MAX_METADATA_LENGTH=l.MAX_LIFETIME=l.MAX_KEEPALIVE=l.MAX_CODE=l.FRAME_TYPE_OFFFSET=l.FLAGS_MASK=void 0;var u=wl;l.FLAGS_MASK=1023,l.FRAME_TYPE_OFFFSET=10,l.MAX_CODE=2147483647,l.MAX_KEEPALIVE=2147483647,l.MAX_LIFETIME=2147483647,l.MAX_METADATA_LENGTH=16777215,l.MAX_MIME_LENGTH=255,l.MAX_REQUEST_COUNT=2147483647,l.MAX_REQUEST_N=2147483647,l.MAX_RESUME_LENGTH=65535,l.MAX_STREAM_ID=2147483647,l.MAX_TTL=2147483647,l.MAX_VERSION=65535;var e=4294967296;function t(l,n){return l.readUInt8(n)<<16|l.readUInt8(n+1)<<8|l.readUInt8(n+2)}function s(l,n,u){return u=l.writeUInt8(n>>>16,u),u=l.writeUInt8(n>>>8&255,u),l.writeUInt8(255&n,u)}function i(l,n){var u=l.readUInt32BE(n),t=l.readUInt32BE(n+4);return u*e+t}function o(l,n,u){var t=n/e|0,r=n%e;return u=l.writeUInt32BE(t,u),l.writeUInt32BE(r,u)}l.readUInt24BE=t,l.writeUInt24BE=s,l.readUInt64BE=i,l.writeUInt64BE=o;function a(l){var n=t(l,0);return h(l.slice(3,3+n))}function c(l){var u,e,r,s,i;return n(this,(function(n){switch(n.label){case 0:u=0,n.label=1;case 1:return u+3<l.length?(e=t(l,u),(s=(r=u+3)+e)>l.length?[3,3]:(i=l.slice(r,s),[4,[h(i),u=s]])):[3,3];case 2:return n.sent(),[3,1];case 3:return[2]}}))}function h(n){var e=0,t=n.readInt32BE(e);e+=4;var r=n.readUInt16BE(e);e+=2;var s=r>>>l.FRAME_TYPE_OFFFSET,o=r&l.FLAGS_MASK;switch(s){case u.FrameTypes.SETUP:return function(l,n,e){l.length;var t=6,r=l.readUInt16BE(t);t+=2;var s=l.readUInt16BE(t);t+=2;var i=l.readInt32BE(t);t+=4;var o=l.readInt32BE(t);t+=4;var a=null;if(e&u.Flags.RESUME_ENABLE){var c=l.readInt16BE(t);t+=2,a=l.slice(t,t+c),t+=c}var h=l.readUInt8(t);t+=1;var d=l.toString("ascii",t,t+h);t+=h;var p=l.readUInt8(t);t+=1;var f=l.toString("ascii",t,t+p);t+=p;var m={data:null,dataMimeType:f,flags:e,keepAlive:i,lifetime:o,majorVersion:r,metadata:null,metadataMimeType:d,minorVersion:s,resumeToken:a,streamId:0,type:u.FrameTypes.SETUP};return _(l,m,t),m}(n,0,o);case u.FrameTypes.PAYLOAD:return function(l,n,e){l.length;var t={data:null,flags:e,metadata:null,streamId:n,type:u.FrameTypes.PAYLOAD};return _(l,t,6),t}(n,t,o);case u.FrameTypes.ERROR:return function(l,n,e){l.length;var t=6,r=l.readInt32BE(t);t+=4;var s=l.length-t,i="";s>0&&(i=l.toString("utf8",t,t+s),t+=s);return{code:r,flags:e,message:i,streamId:n,type:u.FrameTypes.ERROR}}(n,t,o);case u.FrameTypes.KEEPALIVE:return function(l,n,e){l.length;var t=6,r=i(l,t);t+=8;var s=null;t<l.length&&(s=l.slice(t,l.length));return{data:s,flags:e,lastReceivedPosition:r,streamId:0,type:u.FrameTypes.KEEPALIVE}}(n,0,o);case u.FrameTypes.REQUEST_FNF:return function(l,n,e){l.length;var t={data:null,flags:e,metadata:null,streamId:n,type:u.FrameTypes.REQUEST_FNF};return _(l,t,6),t}(n,t,o);case u.FrameTypes.REQUEST_RESPONSE:return function(l,n,e){var t={data:null,flags:e,metadata:null,streamId:n,type:u.FrameTypes.REQUEST_RESPONSE};return _(l,t,6),t}(n,t,o);case u.FrameTypes.REQUEST_STREAM:return function(l,n,e){l.length;var t=6,r=l.readInt32BE(t);t+=4;var s={data:null,flags:e,metadata:null,requestN:r,streamId:n,type:u.FrameTypes.REQUEST_STREAM};return _(l,s,t),s}(n,t,o);case u.FrameTypes.REQUEST_CHANNEL:return function(l,n,e){l.length;var t=6,r=l.readInt32BE(t);t+=4;var s={data:null,flags:e,metadata:null,requestN:r,streamId:n,type:u.FrameTypes.REQUEST_CHANNEL};return _(l,s,t),s}(n,t,o);case u.FrameTypes.METADATA_PUSH:return function(l,n,e){return{flags:e,metadata:6===length?null:l.slice(6,length),streamId:0,type:u.FrameTypes.METADATA_PUSH}}(n,0,o);case u.FrameTypes.REQUEST_N:return function(l,n,e){l.length;var t=l.readInt32BE(6);return{flags:e,requestN:t,streamId:n,type:u.FrameTypes.REQUEST_N}}(n,t,o);case u.FrameTypes.RESUME:return function(l,n,e){l.length;var t=6,r=l.readUInt16BE(t);t+=2;var s=l.readUInt16BE(t);t+=2;var o=l.readInt16BE(t);t+=2;var a=l.slice(t,t+o);t+=o;var c=i(l,t);t+=8;var h=i(l,t);return t+=8,{clientPosition:h,flags:e,majorVersion:r,minorVersion:s,resumeToken:a,serverPosition:c,streamId:0,type:u.FrameTypes.RESUME}}(n,0,o);case u.FrameTypes.RESUME_OK:return function(l,n,e){l.length;var t=i(l,6);return{clientPosition:t,flags:e,streamId:0,type:u.FrameTypes.RESUME_OK}}(n,0,o);case u.FrameTypes.CANCEL:return function(l,n,e){return l.length,{flags:e,streamId:n,type:u.FrameTypes.CANCEL}}(n,t,o);case u.FrameTypes.LEASE:return function(l,n,e){var t=6,r=l.readUInt32BE(t);t+=4;var s=l.readUInt32BE(t);t+=4;var i=null;t<l.length&&(i=l.slice(t,l.length));return{flags:e,metadata:i,requestCount:s,streamId:0,ttl:r,type:u.FrameTypes.LEASE}}(n,0,o)}}function d(l){switch(l.type){case u.FrameTypes.SETUP:return function(l){var n=null!=l.resumeToken?l.resumeToken.byteLength:0,e=null!=l.metadataMimeType?gl.Buffer.byteLength(l.metadataMimeType,"ascii"):0,t=null!=l.dataMimeType?gl.Buffer.byteLength(l.dataMimeType,"ascii"):0,r=T(l),s=gl.Buffer.allocUnsafe(6+p+(n?f+n:0)+e+t+r),i=S(l,s);i=s.writeUInt16BE(l.majorVersion,i),i=s.writeUInt16BE(l.minorVersion,i),i=s.writeUInt32BE(l.keepAlive,i),i=s.writeUInt32BE(l.lifetime,i),l.flags&u.Flags.RESUME_ENABLE&&(i=s.writeUInt16BE(n,i),null!=l.resumeToken&&(i+=l.resumeToken.copy(s,i)));i=s.writeUInt8(e,i),null!=l.metadataMimeType&&(i+=s.write(l.metadataMimeType,i,i+e,"ascii"));i=s.writeUInt8(t,i),null!=l.dataMimeType&&(i+=s.write(l.dataMimeType,i,i+t,"ascii"));return R(l,s,i),s}(l);case u.FrameTypes.PAYLOAD:return function(l){var n=T(l),u=gl.Buffer.allocUnsafe(6+n),e=S(l,u);return R(l,u,e),u}(l);case u.FrameTypes.ERROR:return function(l){var n=null!=l.message?gl.Buffer.byteLength(l.message,"utf8"):0,u=gl.Buffer.allocUnsafe(6+m+n),e=S(l,u);e=u.writeUInt32BE(l.code,e),null!=l.message&&u.write(l.message,e,e+n,"utf8");return u}(l);case u.FrameTypes.KEEPALIVE:return function(l){var n=null!=l.data?l.data.byteLength:0,u=gl.Buffer.allocUnsafe(6+y+n),e=S(l,u);e=o(u,l.lastReceivedPosition,e),null!=l.data&&l.data.copy(u,e);return u}(l);case u.FrameTypes.REQUEST_FNF:case u.FrameTypes.REQUEST_RESPONSE:return function(l){var n=T(l),u=gl.Buffer.allocUnsafe(6+n),e=S(l,u);return R(l,u,e),u}(l);case u.FrameTypes.REQUEST_STREAM:case u.FrameTypes.REQUEST_CHANNEL:return function(l){var n=T(l),u=gl.Buffer.allocUnsafe(6+E+n),e=S(l,u);return e=u.writeUInt32BE(l.requestN,e),R(l,u,e),u}(l);case u.FrameTypes.METADATA_PUSH:return function(l){var n=l.metadata;if(null!=n){var u=S(l,e=gl.Buffer.allocUnsafe(6+n.byteLength));return n.copy(e,u),e}var e;return S(l,e=gl.Buffer.allocUnsafe(6)),e}(l);case u.FrameTypes.REQUEST_N:return function(l){var n=gl.Buffer.allocUnsafe(6+w),u=S(l,n);return n.writeUInt32BE(l.requestN,u),n}(l);case u.FrameTypes.RESUME:return function(l){var n=l.resumeToken.byteLength,u=gl.Buffer.allocUnsafe(6+b+n),e=S(l,u);return e=u.writeUInt16BE(l.majorVersion,e),e=u.writeUInt16BE(l.minorVersion,e),e=u.writeUInt16BE(n,e),e+=l.resumeToken.copy(u,e),e=o(u,l.serverPosition,e),o(u,l.clientPosition,e),u}(l);case u.FrameTypes.RESUME_OK:return function(l){var n=gl.Buffer.allocUnsafe(6+v),u=S(l,n);return o(n,l.clientPosition,u),n}(l);case u.FrameTypes.CANCEL:return function(l){var n=gl.Buffer.allocUnsafe(6);return S(l,n),n}(l);case u.FrameTypes.LEASE:return function(l){var n=null!=l.metadata?l.metadata.byteLength:0,u=gl.Buffer.allocUnsafe(6+g+n),e=S(l,u);e=u.writeUInt32BE(l.ttl,e),e=u.writeUInt32BE(l.requestCount,e),null!=l.metadata&&l.metadata.copy(u,e);return u}(l)}}l.deserializeFrameWithLength=a,l.deserializeFrames=c,l.serializeFrameWithLength=function(l){var n=d(l),u=gl.Buffer.allocUnsafe(n.length+3);return s(u,n.length,0),n.copy(u,3),u},l.deserializeFrame=h,l.serializeFrame=d,l.sizeOfFrame=function(l){switch(l.type){case u.FrameTypes.SETUP:return function(l){var n=null!=l.resumeToken?l.resumeToken.byteLength:0,u=null!=l.metadataMimeType?gl.Buffer.byteLength(l.metadataMimeType,"ascii"):0,e=null!=l.dataMimeType?gl.Buffer.byteLength(l.dataMimeType,"ascii"):0,t=T(l);return 6+p+(n?f+n:0)+u+e+t}(l);case u.FrameTypes.PAYLOAD:return function(l){var n=T(l);return 6+n}(l);case u.FrameTypes.ERROR:return function(l){var n=null!=l.message?gl.Buffer.byteLength(l.message,"utf8"):0;return 6+m+n}(l);case u.FrameTypes.KEEPALIVE:return function(l){var n=null!=l.data?l.data.byteLength:0;return 6+y+n}(l);case u.FrameTypes.REQUEST_FNF:case u.FrameTypes.REQUEST_RESPONSE:return function(l){var n=T(l);return 6+n}(l);case u.FrameTypes.REQUEST_STREAM:case u.FrameTypes.REQUEST_CHANNEL:return function(l){var n=T(l);return 6+E+n}(l);case u.FrameTypes.METADATA_PUSH:return function(l){return 6+(null!=l.metadata?l.metadata.byteLength:0)}(l);case u.FrameTypes.REQUEST_N:return 6+w;case u.FrameTypes.RESUME:return function(l){var n=l.resumeToken.byteLength;return 6+b+n}(l);case u.FrameTypes.RESUME_OK:return 6+v;case u.FrameTypes.CANCEL:return 6;case u.FrameTypes.LEASE:return function(l){var n=null!=l.metadata?l.metadata.byteLength:0;return 6+g+n}(l)}};var p=14,f=2;var m=4;var y=8;var g=8;var E=4;var w=4;var b=22;var v=8;function S(n,u){var e=u.writeInt32BE(n.streamId,0);return u.writeUInt16BE(n.type<<l.FRAME_TYPE_OFFFSET|n.flags&l.FLAGS_MASK,e)}function T(l){var n=0;return null!=l.data&&(n+=l.data.byteLength),u.Flags.hasMetadata(l.flags)&&(n+=3,null!=l.metadata&&(n+=l.metadata.byteLength)),n}function R(l,n,e){u.Flags.hasMetadata(l.flags)&&(null!=l.metadata?(e=s(n,l.metadata.byteLength,e),e+=l.metadata.copy(n,e)):e=s(n,0,e));null!=l.data&&l.data.copy(n,e)}function _(l,n,e){if(u.Flags.hasMetadata(n.flags)){var r=t(l,e);e+=3,r>0&&(n.metadata=l.slice(e,e+r),e+=r)}e<l.length&&(n.data=l.slice(e,l.length))}var O=function(){function l(){}return l.prototype.deserializeFrame=function(l){return h(l)},l.prototype.deserializeFrameWithLength=function(l){return a(l)},l.prototype.deserializeFrames=function(l){return c(l)},l}();l.Deserializer=O}(El);var bl={};Object.defineProperty(bl,"__esModule",{value:!0});var vl={},Sl=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(vl,"__esModule",{value:!0}),vl.Deferred=void 0;var Tl=function(){function l(){this._done=!1,this.onCloseCallbacks=[]}return Object.defineProperty(l.prototype,"done",{get:function(){return this._done},enumerable:!1,configurable:!0}),l.prototype.close=function(l){var n,u,e,t;if(this.done)console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):""));else if(this._done=!0,this._error=l,l)try{for(var r=Sl(this.onCloseCallbacks),s=r.next();!s.done;s=r.next()){(0,s.value)(l)}}catch(l){n={error:l}}finally{try{s&&!s.done&&(u=r.return)&&u.call(r)}finally{if(n)throw n.error}}else try{for(var i=Sl(this.onCloseCallbacks),o=i.next();!o.done;o=i.next()){(0,o.value)()}}catch(l){e={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}},l.prototype.onClose=function(l){this._done?l(this._error):this.onCloseCallbacks.push(l)},l}();vl.Deferred=Tl;var Rl={};!function(l){var n,u=r&&r.__extends||(n=function(l,u){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,n){l.__proto__=n}||function(l,n){for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u])},n(l,u)},function(l,u){if("function"!=typeof u&&null!==u)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");function e(){this.constructor=l}n(l,u),l.prototype=null===u?Object.create(u):(e.prototype=u.prototype,new e)});Object.defineProperty(l,"__esModule",{value:!0}),l.ErrorCodes=l.RSocketError=void 0;var e,t=function(l){function n(n,u){var e=l.call(this,u)||this;return e.code=n,e}return u(n,l),n}(Error);l.RSocketError=t,(e=l.ErrorCodes||(l.ErrorCodes={}))[e.RESERVED=0]="RESERVED",e[e.INVALID_SETUP=1]="INVALID_SETUP",e[e.UNSUPPORTED_SETUP=2]="UNSUPPORTED_SETUP",e[e.REJECTED_SETUP=3]="REJECTED_SETUP",e[e.REJECTED_RESUME=4]="REJECTED_RESUME",e[e.CONNECTION_CLOSE=258]="CONNECTION_CLOSE",e[e.CONNECTION_ERROR=257]="CONNECTION_ERROR",e[e.APPLICATION_ERROR=513]="APPLICATION_ERROR",e[e.REJECTED=514]="REJECTED",e[e.CANCELED=515]="CANCELED",e[e.INVALID=516]="INVALID",e[e.RESERVED_EXTENSION=4294967295]="RESERVED_EXTENSION"}(Rl);var _l={};Object.defineProperty(_l,"__esModule",{value:!0});var Ol,Al={},Cl={};function Fl(){return Ol||(Ol=1,function(l){var n,u=r&&r.__extends||(n=function(l,u){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,n){l.__proto__=n}||function(l,n){for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u])},n(l,u)},function(l,u){if("function"!=typeof u&&null!==u)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");function e(){this.constructor=l}n(l,u),l.prototype=null===u?Object.create(u):(e.prototype=u.prototype,new e)}),e=r&&r.__awaiter||function(l,n,u,e){return new(u||(u=Promise))((function(t,r){function s(l){try{o(e.next(l))}catch(l){r(l)}}function i(l){try{o(e.throw(l))}catch(l){r(l)}}function o(l){var n;l.done?t(l.value):(n=l.value,n instanceof u?n:new u((function(l){l(n)}))).then(s,i)}o((e=e.apply(l,n||[])).next())}))},t=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(l,"__esModule",{value:!0}),l.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer=l.ResumableClientServerInputMultiplexerDemultiplexer=l.ClientServerInputMultiplexerDemultiplexer=l.StreamIdGenerator=void 0;var s=Xn(),i=vl,o=Rl,a=wl;!function(l){l.create=function(l){return new n(l)};var n=function(){function l(l){this.currentId=l}return l.prototype.next=function(l){var n=this.currentId+2;l(n)&&(this.currentId=n)},l}()}(l.StreamIdGenerator||(l.StreamIdGenerator={}));var c=function(l){function n(n,u,e){var t=l.call(this)||this;return t.streamIdSupplier=n,t.outbound=u,t.closeable=e,t.registry={},e.onClose(t.close.bind(t)),t}return u(n,l),n.prototype.handle=function(l){if(a.Frame.isConnection(l)){if(l.type===s.FrameTypes.RESERVED)return;this.connectionFramesHandler.handle(l)}else if(a.Frame.isRequest(l)){if(this.registry[l.streamId])return;this.requestFramesHandler.handle(l,this)}else{var n=this.registry[l.streamId];if(!n)return;n.handle(l)}},n.prototype.connectionInbound=function(l){if(this.connectionFramesHandler)throw new Error("Connection frame handler has already been installed");this.connectionFramesHandler=l},n.prototype.handleRequestStream=function(l){if(this.requestFramesHandler)throw new Error("Stream handler has already been installed");this.requestFramesHandler=l},n.prototype.send=function(l){this.outbound.send(l)},Object.defineProperty(n.prototype,"connectionOutbound",{get:function(){return this},enumerable:!1,configurable:!0}),n.prototype.createRequestStream=function(l){var n=this;if(this.done)l.handleReject(new Error("Already closed"));else{var u=this.registry;this.streamIdSupplier.next((function(u){return l.handleReady(u,n)}),Object.keys(u))}},n.prototype.connect=function(l){this.registry[l.streamId]=l},n.prototype.disconnect=function(l){delete this.registry[l.streamId]},n.prototype.close=function(n){if(this.done)l.prototype.close.call(this,n);else{for(var u in this.registry){this.registry[u].close(new Error("Closed. ".concat(n?"Original cause [".concat(n,"]."):"")))}l.prototype.close.call(this,n)}},n}(i.Deferred);l.ClientServerInputMultiplexerDemultiplexer=c;var h=function(l){function n(n,u,e,t,r,s,o){var a=l.call(this,n,u,new i.Deferred)||this;return a.frameStore=t,a.token=r,a.sessionTimeout=o,s instanceof Function?a.reconnector=s:a.sessionStore=s,e.onClose(a.handleConnectionClose.bind(a)),a}return u(n,l),n.prototype.send=function(n){if(a.Frame.isConnection(n)){if(n.type===s.FrameTypes.KEEPALIVE)n.lastReceivedPosition=this.frameStore.lastReceivedFramePosition;else if(n.type===s.FrameTypes.ERROR)return this.outbound.send(n),this.sessionStore&&delete this.sessionStore[this.token],void l.prototype.close.call(this,new o.RSocketError(n.code,n.message))}else this.frameStore.store(n);this.outbound.send(n)},n.prototype.handle=function(n){if(a.Frame.isConnection(n)){if(n.type===s.FrameTypes.KEEPALIVE)try{this.frameStore.dropTo(n.lastReceivedPosition)}catch(l){this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:l.code,message:l.message}),this.close(l)}else if(n.type===s.FrameTypes.ERROR)return l.prototype.handle.call(this,n),this.sessionStore&&delete this.sessionStore[this.token],void l.prototype.close.call(this,new o.RSocketError(n.code,n.message))}else this.frameStore.record(n);l.prototype.handle.call(this,n)},n.prototype.resume=function(l,n,u){switch(this.outbound=n,l.type){case s.FrameTypes.RESUME:if(clearTimeout(this.timeoutId),this.frameStore.lastReceivedFramePosition<l.clientPosition){var e=new o.RSocketError(s.ErrorCodes.REJECTED_RESUME,"Impossible to resume since first available client frame position is greater than last received server frame position");return this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:e.code,message:e.message}),void this.close(e)}try{this.frameStore.dropTo(l.serverPosition)}catch(l){return this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:l.code,message:l.message}),void this.close(l)}this.outbound.send({type:s.FrameTypes.RESUME_OK,streamId:0,flags:s.Flags.NONE,clientPosition:this.frameStore.lastReceivedFramePosition});break;case s.FrameTypes.RESUME_OK:try{this.frameStore.dropTo(l.clientPosition)}catch(l){this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:l.code,message:l.message}),this.close(l)}}this.frameStore.drain(this.outbound.send.bind(this.outbound)),u.onClose(this.handleConnectionClose.bind(this)),this.connectionFramesHandler.resume()},n.prototype.handleConnectionClose=function(l){return e(this,void 0,void 0,(function(){var l;return t(this,(function(n){switch(n.label){case 0:if(this.connectionFramesHandler.pause(),!this.reconnector)return[3,5];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.reconnector(this,this.frameStore)];case 2:return n.sent(),[3,4];case 3:return l=n.sent(),this.close(l),[3,4];case 4:return[3,6];case 5:this.timeoutId=setTimeout(this.close.bind(this),this.sessionTimeout),n.label=6;case 6:return[2]}}))}))},n}(c);l.ResumableClientServerInputMultiplexerDemultiplexer=h;var d=function(){function l(l,n,u){this.outbound=l,this.closeable=n,this.delegate=u,this.resumed=!1}return l.prototype.close=function(){this.delegate.close()},l.prototype.onClose=function(l){this.delegate.onClose(l)},Object.defineProperty(l.prototype,"connectionOutbound",{get:function(){return this.delegate.connectionOutbound},enumerable:!1,configurable:!0}),l.prototype.createRequestStream=function(l){this.delegate.createRequestStream(l)},l.prototype.connectionInbound=function(l){this.delegate.connectionInbound(l)},l.prototype.handleRequestStream=function(l){this.delegate.handleRequestStream(l)},l.prototype.handle=function(l){var n=this;if(!this.resumed)return l.type===s.FrameTypes.RESUME_OK?(this.resumed=!0,void this.delegate.resume(l,this.outbound,this.closeable)):(this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,code:s.ErrorCodes.CONNECTION_ERROR,message:"Incomplete RESUME handshake. Unexpected frame ".concat(l.type," received"),flags:s.Flags.NONE}),this.closeable.close(),void this.closeable.onClose((function(){return n.delegate.close(new o.RSocketError(s.ErrorCodes.CONNECTION_ERROR,"Incomplete RESUME handshake. Unexpected frame ".concat(l.type," received")))})));this.delegate.handle(l)},l}();l.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer=d}(Cl)),Cl}var Il={},Ll={},xl={},Nl=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(xl,"__esModule",{value:!0}),xl.fragmentWithRequestN=xl.fragment=xl.isFragmentable=void 0;var kl=wl;xl.isFragmentable=function(l,n,u){return 0!==n&&l.data.byteLength+(l.metadata?l.metadata.byteLength+kl.Lengths.METADATA:0)+(u==kl.FrameTypes.REQUEST_STREAM||u==kl.FrameTypes.REQUEST_CHANNEL?kl.Lengths.REQUEST:0)>n},xl.fragment=function(l,n,u,e,t){var r,s,i,o,a,c,h,d,p,f,m,y;return void 0===t&&(t=!1),Nl(this,(function(g){switch(g.label){case 0:return r=null!==(y=null===(m=n.data)||void 0===m?void 0:m.byteLength)&&void 0!==y?y:0,s=e!==kl.FrameTypes.PAYLOAD,i=u,n.metadata?0!==(a=n.metadata.byteLength)?[3,1]:(i-=kl.Lengths.METADATA,o=gl.Buffer.allocUnsafe(0),[3,6]):[3,6];case 1:return c=0,s?(i-=kl.Lengths.METADATA,h=Math.min(a,c+i),o=n.metadata.slice(c,h),i-=o.byteLength,c=h,0!==i?[3,3]:(s=!1,[4,{type:e,flags:kl.Flags.FOLLOWS|kl.Flags.METADATA,data:void 0,metadata:o,streamId:l}])):[3,3];case 2:g.sent(),o=void 0,i=u,g.label=3;case 3:return c<a?(i-=kl.Lengths.METADATA,h=Math.min(a,c+i),o=n.metadata.slice(c,h),i-=o.byteLength,c=h,0!==i&&0!==r?[3,5]:[4,{type:kl.FrameTypes.PAYLOAD,flags:kl.Flags.NEXT|kl.Flags.METADATA|(c===a&&t&&0===r?kl.Flags.COMPLETE:kl.Flags.FOLLOWS),data:void 0,metadata:o,streamId:l}]):[3,6];case 4:g.sent(),o=void 0,i=u,g.label=5;case 5:return[3,3];case 6:return d=0,s?(f=Math.min(r,d+i),p=n.data.slice(d,f),i-=p.byteLength,d=f,[4,{type:e,flags:kl.Flags.FOLLOWS|(o?kl.Flags.METADATA:kl.Flags.NONE),data:p,metadata:o,streamId:l}]):[3,8];case 7:g.sent(),o=void 0,p=void 0,i=u,g.label=8;case 8:return d<r?(f=Math.min(r,d+i),p=n.data.slice(d,f),i-=p.byteLength,d=f,[4,{type:kl.FrameTypes.PAYLOAD,flags:d===r?(t?kl.Flags.COMPLETE:kl.Flags.NONE)|kl.Flags.NEXT|(o?kl.Flags.METADATA:0):kl.Flags.FOLLOWS|kl.Flags.NEXT|(o?kl.Flags.METADATA:0),data:p,metadata:o,streamId:l}]):[3,10];case 9:return g.sent(),o=void 0,p=void 0,i=u,[3,8];case 10:return[2]}}))},xl.fragmentWithRequestN=function(l,n,u,e,t,r){var s,i,o,a,c,h,d,p,f,m,y,g;return void 0===r&&(r=!1),Nl(this,(function(E){switch(E.label){case 0:return s=null!==(g=null===(y=n.data)||void 0===y?void 0:y.byteLength)&&void 0!==g?g:0,i=!0,o=u,n.metadata?0!==(c=n.metadata.byteLength)?[3,1]:(o-=kl.Lengths.METADATA,a=gl.Buffer.allocUnsafe(0),[3,6]):[3,6];case 1:return h=0,i?(o-=kl.Lengths.METADATA+kl.Lengths.REQUEST,d=Math.min(c,h+o),a=n.metadata.slice(h,d),o-=a.byteLength,h=d,0!==o?[3,3]:(i=!1,[4,{type:e,flags:kl.Flags.FOLLOWS|kl.Flags.METADATA,data:void 0,requestN:t,metadata:a,streamId:l}])):[3,3];case 2:E.sent(),a=void 0,o=u,E.label=3;case 3:return h<c?(o-=kl.Lengths.METADATA,d=Math.min(c,h+o),a=n.metadata.slice(h,d),o-=a.byteLength,h=d,0!==o&&0!==s?[3,5]:[4,{type:kl.FrameTypes.PAYLOAD,flags:kl.Flags.NEXT|kl.Flags.METADATA|(h===c&&r&&0===s?kl.Flags.COMPLETE:kl.Flags.FOLLOWS),data:void 0,metadata:a,streamId:l}]):[3,6];case 4:E.sent(),a=void 0,o=u,E.label=5;case 5:return[3,3];case 6:return p=0,i?(o-=kl.Lengths.REQUEST,m=Math.min(s,p+o),f=n.data.slice(p,m),o-=f.byteLength,p=m,[4,{type:e,flags:kl.Flags.FOLLOWS|(a?kl.Flags.METADATA:kl.Flags.NONE),data:f,requestN:t,metadata:a,streamId:l}]):[3,8];case 7:E.sent(),a=void 0,f=void 0,o=u,E.label=8;case 8:return p<s?(m=Math.min(s,p+o),f=n.data.slice(p,m),o-=f.byteLength,p=m,[4,{type:kl.FrameTypes.PAYLOAD,flags:p===s?(r?kl.Flags.COMPLETE:kl.Flags.NONE)|kl.Flags.NEXT|(a?kl.Flags.METADATA:0):kl.Flags.FOLLOWS|kl.Flags.NEXT|(a?kl.Flags.METADATA:0),data:f,metadata:a,streamId:l}]):[3,10];case 9:return E.sent(),a=void 0,f=void 0,o=u,[3,8];case 10:return[2]}}))};var Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.cancel=Ul.reassemble=Ul.add=void 0,Ul.add=function(l,n,u){return l.hasFragments?(l.data=l.data?gl.Buffer.concat([l.data,n]):n,l.metadata&&u&&(l.metadata=gl.Buffer.concat([l.metadata,u])),!0):(l.hasFragments=!0,l.data=n,u&&(l.metadata=u),!0)},Ul.reassemble=function(l,n,u){l.hasFragments=!1;var e=l.data?gl.Buffer.concat([l.data,n]):n;if(l.data=void 0,l.metadata){var t=u?gl.Buffer.concat([l.metadata,u]):l.metadata;return l.metadata=void 0,{data:e,metadata:t}}return{data:e}},Ul.cancel=function(l){l.hasFragments=!1,l.data=void 0,l.metadata=void 0};var Dl=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),Pl=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),Ml=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&Dl(n,l,u);return Pl(n,l),n},Bl=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Ll,"__esModule",{value:!0}),Ll.RequestChannelResponderStream=Ll.RequestChannelRequesterStream=void 0;var ql=Rl,jl=xl,$l=wl,Wl=Ml(Ul),Ql=function(){function l(l,n,u,e,t,r){this.payload=l,this.isComplete=n,this.receiver=u,this.fragmentSize=e,this.initialRequestN=t,this.leaseManager=r,this.streamType=$l.FrameTypes.REQUEST_CHANNEL}return l.prototype.handleReady=function(l,n){var u,e;if(this.outboundDone)return!1;this.streamId=l,this.stream=n,n.connect(this);var t=this.isComplete;if(t&&(this.outboundDone=t),(0,jl.isFragmentable)(this.payload,this.fragmentSize,$l.FrameTypes.REQUEST_CHANNEL))try{for(var r=Bl((0,jl.fragmentWithRequestN)(l,this.payload,this.fragmentSize,$l.FrameTypes.REQUEST_CHANNEL,this.initialRequestN,t)),s=r.next();!s.done;s=r.next()){var i=s.value;this.stream.send(i)}}catch(l){u={error:l}}finally{try{s&&!s.done&&(e=r.return)&&e.call(r)}finally{if(u)throw u.error}}else this.stream.send({type:$l.FrameTypes.REQUEST_CHANNEL,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:(void 0!==this.payload.metadata?$l.Flags.METADATA:$l.Flags.NONE)|(t?$l.Flags.COMPLETE:$l.Flags.NONE),streamId:l});return this.hasExtension&&this.stream.send({type:$l.FrameTypes.EXT,streamId:l,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},l.prototype.handleReject=function(l){this.inboundDone||(this.inboundDone=!0,this.outboundDone=!0,this.receiver.onError(l))},l.prototype.handle=function(l){var n,u=l.type;switch(u){case $l.FrameTypes.PAYLOAD:var e=$l.Flags.hasComplete(l.flags),t=$l.Flags.hasNext(l.flags);if(e||!$l.Flags.hasFollows(l.flags)){if(e&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!t))return void this.receiver.onComplete();var r=this.hasFragments?Wl.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata};return void this.receiver.onNext(r,e)}if(Wl.add(this,l.data,l.metadata))return;n="Unexpected frame size";break;case $l.FrameTypes.CANCEL:if(this.outboundDone)return;return this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this),void this.receiver.cancel();case $l.FrameTypes.REQUEST_N:if(this.outboundDone)return;if(this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.request(l.requestN);case $l.FrameTypes.ERROR:var s=this.outboundDone;return this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),Wl.cancel(this),s||this.receiver.cancel(),void this.receiver.onError(new ql.RSocketError(l.code,l.message));case $l.FrameTypes.EXT:return void this.receiver.onExtension(l.extendedType,l.extendedContent,$l.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.close(new ql.RSocketError(ql.ErrorCodes.CANCELED,n)),this.stream.send({type:$l.FrameTypes.CANCEL,streamId:this.streamId,flags:$l.Flags.NONE}),this.stream.disconnect(this)},l.prototype.request=function(l){this.inboundDone||(this.streamId?this.stream.send({type:$l.FrameTypes.REQUEST_N,flags:$l.Flags.NONE,requestN:l,streamId:this.streamId}):this.initialRequestN+=l)},l.prototype.cancel=function(){var l,n=this.inboundDone,u=this.outboundDone;n&&u||(this.inboundDone=!0,this.outboundDone=!0,u||this.receiver.cancel(),this.streamId?(this.stream.send({type:n?$l.FrameTypes.ERROR:$l.FrameTypes.CANCEL,flags:$l.Flags.NONE,streamId:this.streamId,code:ql.ErrorCodes.CANCELED,message:"Cancelled"}),this.stream.disconnect(this),Wl.cancel(this)):null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.onNext=function(l,n){var u,e;if(!this.outboundDone)if(n&&(this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this)),(0,jl.isFragmentable)(l,this.fragmentSize,$l.FrameTypes.PAYLOAD))try{for(var t=Bl((0,jl.fragment)(this.streamId,l,this.fragmentSize,$l.FrameTypes.PAYLOAD,n)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:$l.FrameTypes.PAYLOAD,streamId:this.streamId,flags:$l.Flags.NEXT|(l.metadata?$l.Flags.METADATA:$l.Flags.NONE)|(n?$l.Flags.COMPLETE:$l.Flags.NONE),data:l.data,metadata:l.metadata})},l.prototype.onComplete=function(){this.streamId?this.outboundDone||(this.outboundDone=!0,this.stream.send({type:$l.FrameTypes.PAYLOAD,streamId:this.streamId,flags:$l.Flags.COMPLETE,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this)):this.isComplete=!0},l.prototype.onError=function(l){if(!this.outboundDone){var n=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:$l.FrameTypes.ERROR,streamId:this.streamId,flags:$l.Flags.NONE,code:l instanceof ql.RSocketError?l.code:ql.ErrorCodes.APPLICATION_ERROR,message:l.message}),this.stream.disconnect(this),n||this.receiver.onError(l)}},l.prototype.onExtension=function(l,n,u){if(!this.outboundDone)return this.streamId?void this.stream.send({streamId:this.streamId,type:$l.FrameTypes.EXT,extendedType:l,extendedContent:n,flags:u?$l.Flags.IGNORE:$l.Flags.NONE}):(this.hasExtension=!0,this.extendedType=l,this.extendedContent=n,void(this.flags=u?$l.Flags.IGNORE:$l.Flags.NONE))},l.prototype.close=function(l){if(!this.inboundDone||!this.outboundDone){var n=this.inboundDone,u=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,Wl.cancel(this),u||this.receiver.cancel(),n||(l?this.receiver.onError(l):this.receiver.onComplete())}},l}();Ll.RequestChannelRequesterStream=Ql;var Hl=function(){function l(l,n,u,e,t){if(this.streamId=l,this.stream=n,this.fragmentSize=u,this.handler=e,this.streamType=$l.FrameTypes.REQUEST_CHANNEL,n.connect(this),$l.Flags.hasFollows(t.flags))return Wl.add(this,t.data,t.metadata),this.initialRequestN=t.requestN,void(this.isComplete=$l.Flags.hasComplete(t.flags));var r={data:t.data,metadata:t.metadata},s=$l.Flags.hasComplete(t.flags);this.inboundDone=s;try{this.receiver=e(r,t.requestN,s,this),this.outboundDone&&this.defferedError&&this.receiver.onError(this.defferedError)}catch(l){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(l)}}return l.prototype.handle=function(l){var n,u=l.type;switch(u){case $l.FrameTypes.PAYLOAD:if($l.Flags.hasFollows(l.flags)){if(Wl.add(this,l.data,l.metadata))return;n="Unexpected frame size";break}var e=this.hasFragments?Wl.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata},t=$l.Flags.hasComplete(l.flags);if(this.receiver){if(t&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!$l.Flags.hasNext(l.flags)))return void this.receiver.onComplete();this.receiver.onNext(e,t)}else{(r=this.isComplete||t)&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this));try{this.receiver=this.handler(e,this.initialRequestN,r,this),this.outboundDone&&this.defferedError}catch(i){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(i)}}return;case $l.FrameTypes.REQUEST_N:if(!this.receiver||this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.request(l.requestN);case $l.FrameTypes.ERROR:case $l.FrameTypes.CANCEL:var r=this.inboundDone,s=this.outboundDone;if(this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),Wl.cancel(this),!this.receiver)return;if(s||this.receiver.cancel(),!r){var i=u===$l.FrameTypes.CANCEL?new ql.RSocketError(ql.ErrorCodes.CANCELED,"Cancelled"):new ql.RSocketError(l.code,l.message);this.receiver.onError(i)}return;case $l.FrameTypes.EXT:if(!this.receiver||this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.onExtension(l.extendedType,l.extendedContent,$l.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.stream.send({type:$l.FrameTypes.ERROR,flags:$l.Flags.NONE,code:ql.ErrorCodes.CANCELED,message:n,streamId:this.streamId}),this.stream.disconnect(this),this.close(new ql.RSocketError(ql.ErrorCodes.CANCELED,n))},l.prototype.onError=function(l){if(this.outboundDone)console.warn("Trying to error for the second time. ".concat(l?"Dropping error [".concat(l,"]."):""));else{var n=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:$l.FrameTypes.ERROR,flags:$l.Flags.NONE,code:l instanceof ql.RSocketError?l.code:ql.ErrorCodes.APPLICATION_ERROR,message:l.message,streamId:this.streamId}),this.stream.disconnect(this),n||(this.receiver?this.receiver.onError(l):this.defferedError=l)}},l.prototype.onNext=function(l,n){var u,e;if(!this.outboundDone){if(n&&(this.outboundDone=!0),(0,jl.isFragmentable)(l,this.fragmentSize,$l.FrameTypes.PAYLOAD))try{for(var t=Bl((0,jl.fragment)(this.streamId,l,this.fragmentSize,$l.FrameTypes.PAYLOAD,n)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:$l.FrameTypes.PAYLOAD,flags:$l.Flags.NEXT|(n?$l.Flags.COMPLETE:$l.Flags.NONE)|(l.metadata?$l.Flags.METADATA:$l.Flags.NONE),data:l.data,metadata:l.metadata,streamId:this.streamId});n&&this.inboundDone&&this.stream.disconnect(this)}},l.prototype.onComplete=function(){this.outboundDone||(this.outboundDone=!0,this.stream.send({type:$l.FrameTypes.PAYLOAD,flags:$l.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this))},l.prototype.onExtension=function(l,n,u){this.outboundDone&&this.inboundDone||this.stream.send({type:$l.FrameTypes.EXT,streamId:this.streamId,flags:u?$l.Flags.IGNORE:$l.Flags.NONE,extendedType:l,extendedContent:n})},l.prototype.request=function(l){this.inboundDone||this.stream.send({type:$l.FrameTypes.REQUEST_N,flags:$l.Flags.NONE,streamId:this.streamId,requestN:l})},l.prototype.cancel=function(){this.inboundDone||(this.inboundDone=!0,this.stream.send({type:$l.FrameTypes.CANCEL,flags:$l.Flags.NONE,streamId:this.streamId}),this.outboundDone&&this.stream.disconnect(this))},l.prototype.close=function(l){if(this.inboundDone&&this.outboundDone)console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):""));else{var n=this.inboundDone,u=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,Wl.cancel(this);var e=this.receiver;e&&(u||e.cancel(),n||(l?e.onError(l):e.onComplete()))}},l}();Ll.RequestChannelResponderStream=Hl;var zl={},Vl=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),Gl=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),Jl=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&Vl(n,l,u);return Gl(n,l),n},Xl=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(zl,"__esModule",{value:!0}),zl.RequestFnfResponderStream=zl.RequestFnFRequesterStream=void 0;var Yl=Rl,Kl=xl,Zl=wl,ln=Jl(Ul),nn=function(){function l(l,n,u,e){this.payload=l,this.receiver=n,this.fragmentSize=u,this.leaseManager=e,this.streamType=Zl.FrameTypes.REQUEST_FNF}return l.prototype.handleReady=function(l,n){var u,e;if(this.done)return!1;if(this.streamId=l,(0,Kl.isFragmentable)(this.payload,this.fragmentSize,Zl.FrameTypes.REQUEST_FNF))try{for(var t=Xl((0,Kl.fragment)(l,this.payload,this.fragmentSize,Zl.FrameTypes.REQUEST_FNF)),r=t.next();!r.done;r=t.next()){var s=r.value;n.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else n.send({type:Zl.FrameTypes.REQUEST_FNF,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?Zl.Flags.METADATA:0,streamId:l});return this.done=!0,this.receiver.onComplete(),!0},l.prototype.handleReject=function(l){this.done||(this.done=!0,this.receiver.onError(l))},l.prototype.cancel=function(){var l;this.done||(this.done=!0,null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.handle=function(l){l.type!=Zl.FrameTypes.ERROR?this.close(new Yl.RSocketError(Yl.ErrorCodes.CANCELED,"Received invalid frame")):this.close(new Yl.RSocketError(l.code,l.message))},l.prototype.close=function(l){this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):l?this.receiver.onError(l):this.receiver.onComplete()},l}();zl.RequestFnFRequesterStream=nn;var un=function(){function l(l,n,u,e){if(this.streamId=l,this.stream=n,this.handler=u,this.streamType=Zl.FrameTypes.REQUEST_FNF,Zl.Flags.hasFollows(e.flags))return ln.add(this,e.data,e.metadata),void n.connect(this);var t={data:e.data,metadata:e.metadata};try{this.cancellable=u(t,this)}catch(l){}}return l.prototype.handle=function(l){var n;if(l.type==Zl.FrameTypes.PAYLOAD){if(!Zl.Flags.hasFollows(l.flags)){this.stream.disconnect(this);var u=ln.reassemble(this,l.data,l.metadata);try{this.cancellable=this.handler(u,this)}catch(l){}return}if(ln.add(this,l.data,l.metadata))return;n="Unexpected fragment size"}else n="Unexpected frame type [".concat(l.type,"]");this.done=!0,l.type!=Zl.FrameTypes.CANCEL&&l.type!=Zl.FrameTypes.ERROR&&this.stream.send({type:Zl.FrameTypes.ERROR,streamId:this.streamId,flags:Zl.Flags.NONE,code:Yl.ErrorCodes.CANCELED,message:n}),this.stream.disconnect(this),ln.cancel(this)},l.prototype.close=function(l){var n;this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(this.done=!0,ln.cancel(this),null===(n=this.cancellable)||void 0===n||n.cancel())},l.prototype.onError=function(l){},l.prototype.onComplete=function(){},l}();zl.RequestFnfResponderStream=un;var en={},tn=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),rn=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),sn=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&tn(n,l,u);return rn(n,l),n},on=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(en,"__esModule",{value:!0}),en.RequestResponseResponderStream=en.RequestResponseRequesterStream=void 0;var an=Rl,cn=xl,hn=wl,dn=sn(Ul),pn=function(){function l(l,n,u,e){this.payload=l,this.receiver=n,this.fragmentSize=u,this.leaseManager=e,this.streamType=hn.FrameTypes.REQUEST_RESPONSE}return l.prototype.handleReady=function(l,n){var u,e;if(this.done)return!1;if(this.streamId=l,this.stream=n,n.connect(this),(0,cn.isFragmentable)(this.payload,this.fragmentSize,hn.FrameTypes.REQUEST_RESPONSE))try{for(var t=on((0,cn.fragment)(l,this.payload,this.fragmentSize,hn.FrameTypes.REQUEST_RESPONSE)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:hn.FrameTypes.REQUEST_RESPONSE,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?hn.Flags.METADATA:0,streamId:l});return this.hasExtension&&this.stream.send({type:hn.FrameTypes.EXT,streamId:l,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},l.prototype.handleReject=function(l){this.done||(this.done=!0,this.receiver.onError(l))},l.prototype.handle=function(l){var n,u=l.type;switch(u){case hn.FrameTypes.PAYLOAD:var e=hn.Flags.hasComplete(l.flags),t=hn.Flags.hasNext(l.flags);if(e||!hn.Flags.hasFollows(l.flags)){if(this.done=!0,this.stream.disconnect(this),!t)return void this.receiver.onComplete();var r=this.hasFragments?dn.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata};return void this.receiver.onNext(r,!0)}if(!dn.add(this,l.data,l.metadata)){n="Unexpected fragment size";break}return;case hn.FrameTypes.ERROR:return this.done=!0,this.stream.disconnect(this),dn.cancel(this),void this.receiver.onError(new an.RSocketError(l.code,l.message));case hn.FrameTypes.EXT:if(this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.onExtension(l.extendedType,l.extendedContent,hn.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.close(new an.RSocketError(an.ErrorCodes.CANCELED,n)),this.stream.send({type:hn.FrameTypes.CANCEL,streamId:this.streamId,flags:hn.Flags.NONE}),this.stream.disconnect(this)},l.prototype.cancel=function(){var l;this.done||(this.done=!0,this.streamId?(this.stream.send({type:hn.FrameTypes.CANCEL,flags:hn.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),dn.cancel(this)):null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.onExtension=function(l,n,u){if(!this.done)return this.streamId?void this.stream.send({streamId:this.streamId,type:hn.FrameTypes.EXT,extendedType:l,extendedContent:n,flags:u?hn.Flags.IGNORE:hn.Flags.NONE}):(this.hasExtension=!0,this.extendedType=l,this.extendedContent=n,void(this.flags=u?hn.Flags.IGNORE:hn.Flags.NONE))},l.prototype.close=function(l){this.done||(this.done=!0,dn.cancel(this),l?this.receiver.onError(l):this.receiver.onComplete())},l}();en.RequestResponseRequesterStream=pn;var fn=function(){function l(l,n,u,e,t){if(this.streamId=l,this.stream=n,this.fragmentSize=u,this.handler=e,this.streamType=hn.FrameTypes.REQUEST_RESPONSE,n.connect(this),hn.Flags.hasFollows(t.flags))dn.add(this,t.data,t.metadata);else{var r={data:t.data,metadata:t.metadata};try{this.receiver=e(r,this)}catch(l){this.onError(l)}}}return l.prototype.handle=function(l){var n,u;if(!this.receiver||this.hasFragments)if(l.type===hn.FrameTypes.PAYLOAD){if(!hn.Flags.hasFollows(l.flags)){var e=dn.reassemble(this,l.data,l.metadata);try{this.receiver=this.handler(e,this)}catch(l){this.onError(l)}return}if(dn.add(this,l.data,l.metadata))return;u="Unexpected fragment size"}else u="Unexpected frame type [".concat(l.type,"] during reassembly");else{if(l.type===hn.FrameTypes.EXT)return void this.receiver.onExtension(l.extendedType,l.extendedContent,hn.Flags.hasIgnore(l.flags));u="Unexpected frame type [".concat(l.type,"]")}this.done=!0,null===(n=this.receiver)||void 0===n||n.cancel(),l.type!==hn.FrameTypes.CANCEL&&l.type!==hn.FrameTypes.ERROR&&this.stream.send({type:hn.FrameTypes.ERROR,flags:hn.Flags.NONE,code:an.ErrorCodes.CANCELED,message:u,streamId:this.streamId}),this.stream.disconnect(this),dn.cancel(this)},l.prototype.onError=function(l){this.done?console.warn("Trying to error for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(this.done=!0,this.stream.send({type:hn.FrameTypes.ERROR,flags:hn.Flags.NONE,code:l instanceof an.RSocketError?l.code:an.ErrorCodes.APPLICATION_ERROR,message:l.message,streamId:this.streamId}),this.stream.disconnect(this))},l.prototype.onNext=function(l,n){var u,e;if(!this.done){if(this.done=!0,(0,cn.isFragmentable)(l,this.fragmentSize,hn.FrameTypes.PAYLOAD))try{for(var t=on((0,cn.fragment)(this.streamId,l,this.fragmentSize,hn.FrameTypes.PAYLOAD,!0)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:hn.FrameTypes.PAYLOAD,flags:hn.Flags.NEXT|hn.Flags.COMPLETE|(l.metadata?hn.Flags.METADATA:0),data:l.data,metadata:l.metadata,streamId:this.streamId});this.stream.disconnect(this)}},l.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:hn.FrameTypes.PAYLOAD,flags:hn.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},l.prototype.onExtension=function(l,n,u){this.done||this.stream.send({type:hn.FrameTypes.EXT,streamId:this.streamId,flags:u?hn.Flags.IGNORE:hn.Flags.NONE,extendedType:l,extendedContent:n})},l.prototype.close=function(l){var n;this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(dn.cancel(this),null===(n=this.receiver)||void 0===n||n.cancel())},l}();en.RequestResponseResponderStream=fn;var mn={},yn=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),gn=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),En=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&yn(n,l,u);return gn(n,l),n},wn=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(mn,"__esModule",{value:!0}),mn.RequestStreamResponderStream=mn.RequestStreamRequesterStream=void 0;var bn=Rl,vn=xl,Sn=wl,Tn=En(Ul),Rn=function(){function l(l,n,u,e,t){this.payload=l,this.receiver=n,this.fragmentSize=u,this.initialRequestN=e,this.leaseManager=t,this.streamType=Sn.FrameTypes.REQUEST_STREAM}return l.prototype.handleReady=function(l,n){var u,e;if(this.done)return!1;if(this.streamId=l,this.stream=n,n.connect(this),(0,vn.isFragmentable)(this.payload,this.fragmentSize,Sn.FrameTypes.REQUEST_STREAM))try{for(var t=wn((0,vn.fragmentWithRequestN)(l,this.payload,this.fragmentSize,Sn.FrameTypes.REQUEST_STREAM,this.initialRequestN)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:Sn.FrameTypes.REQUEST_STREAM,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:void 0!==this.payload.metadata?Sn.Flags.METADATA:0,streamId:l});return this.hasExtension&&this.stream.send({type:Sn.FrameTypes.EXT,streamId:l,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},l.prototype.handleReject=function(l){this.done||(this.done=!0,this.receiver.onError(l))},l.prototype.handle=function(l){var n,u=l.type;switch(u){case Sn.FrameTypes.PAYLOAD:var e=Sn.Flags.hasComplete(l.flags),t=Sn.Flags.hasNext(l.flags);if(e||!Sn.Flags.hasFollows(l.flags)){if(e&&(this.done=!0,this.stream.disconnect(this),!t))return void this.receiver.onComplete();var r=this.hasFragments?Tn.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata};return void this.receiver.onNext(r,e)}if(!Tn.add(this,l.data,l.metadata)){n="Unexpected fragment size";break}return;case Sn.FrameTypes.ERROR:return this.done=!0,this.stream.disconnect(this),Tn.cancel(this),void this.receiver.onError(new bn.RSocketError(l.code,l.message));case Sn.FrameTypes.EXT:if(this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.onExtension(l.extendedType,l.extendedContent,Sn.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.close(new bn.RSocketError(bn.ErrorCodes.CANCELED,n)),this.stream.send({type:Sn.FrameTypes.CANCEL,streamId:this.streamId,flags:Sn.Flags.NONE}),this.stream.disconnect(this)},l.prototype.request=function(l){this.done||(this.streamId?this.stream.send({type:Sn.FrameTypes.REQUEST_N,flags:Sn.Flags.NONE,requestN:l,streamId:this.streamId}):this.initialRequestN+=l)},l.prototype.cancel=function(){var l;this.done||(this.done=!0,this.streamId?(this.stream.send({type:Sn.FrameTypes.CANCEL,flags:Sn.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),Tn.cancel(this)):null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.onExtension=function(l,n,u){if(!this.done)return this.streamId?void this.stream.send({streamId:this.streamId,type:Sn.FrameTypes.EXT,extendedType:l,extendedContent:n,flags:u?Sn.Flags.IGNORE:Sn.Flags.NONE}):(this.hasExtension=!0,this.extendedType=l,this.extendedContent=n,void(this.flags=u?Sn.Flags.IGNORE:Sn.Flags.NONE))},l.prototype.close=function(l){this.done||(this.done=!0,Tn.cancel(this),l?this.receiver.onError(l):this.receiver.onComplete())},l}();mn.RequestStreamRequesterStream=Rn;var _n=function(){function l(l,n,u,e,t){if(this.streamId=l,this.stream=n,this.fragmentSize=u,this.handler=e,this.streamType=Sn.FrameTypes.REQUEST_STREAM,n.connect(this),Sn.Flags.hasFollows(t.flags))return this.initialRequestN=t.requestN,void Tn.add(this,t.data,t.metadata);var r={data:t.data,metadata:t.metadata};try{this.receiver=e(r,t.requestN,this)}catch(l){this.onError(l)}}return l.prototype.handle=function(l){var n,u;if(!this.receiver||this.hasFragments)if(l.type===Sn.FrameTypes.PAYLOAD){if(!Sn.Flags.hasFollows(l.flags)){var e=Tn.reassemble(this,l.data,l.metadata);try{this.receiver=this.handler(e,this.initialRequestN,this)}catch(l){this.onError(l)}return}if(Tn.add(this,l.data,l.metadata))return;u="Unexpected frame size"}else u="Unexpected frame type [".concat(l.type,"] during reassembly");else{if(l.type===Sn.FrameTypes.REQUEST_N)return void this.receiver.request(l.requestN);if(l.type===Sn.FrameTypes.EXT)return void this.receiver.onExtension(l.extendedType,l.extendedContent,Sn.Flags.hasIgnore(l.flags));u="Unexpected frame type [".concat(l.type,"]")}this.done=!0,Tn.cancel(this),null===(n=this.receiver)||void 0===n||n.cancel(),l.type!==Sn.FrameTypes.CANCEL&&l.type!==Sn.FrameTypes.ERROR&&this.stream.send({type:Sn.FrameTypes.ERROR,flags:Sn.Flags.NONE,code:bn.ErrorCodes.CANCELED,message:u,streamId:this.streamId}),this.stream.disconnect(this)},l.prototype.onError=function(l){this.done?console.warn("Trying to error for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(this.done=!0,this.stream.send({type:Sn.FrameTypes.ERROR,flags:Sn.Flags.NONE,code:l instanceof bn.RSocketError?l.code:bn.ErrorCodes.APPLICATION_ERROR,message:l.message,streamId:this.streamId}),this.stream.disconnect(this))},l.prototype.onNext=function(l,n){var u,e;if(!this.done){if(n&&(this.done=!0),(0,vn.isFragmentable)(l,this.fragmentSize,Sn.FrameTypes.PAYLOAD))try{for(var t=wn((0,vn.fragment)(this.streamId,l,this.fragmentSize,Sn.FrameTypes.PAYLOAD,n)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:Sn.FrameTypes.PAYLOAD,flags:Sn.Flags.NEXT|(n?Sn.Flags.COMPLETE:Sn.Flags.NONE)|(l.metadata?Sn.Flags.METADATA:Sn.Flags.NONE),data:l.data,metadata:l.metadata,streamId:this.streamId});n&&this.stream.disconnect(this)}},l.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:Sn.FrameTypes.PAYLOAD,flags:Sn.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},l.prototype.onExtension=function(l,n,u){this.done||this.stream.send({type:Sn.FrameTypes.EXT,streamId:this.streamId,flags:u?Sn.Flags.IGNORE:Sn.Flags.NONE,extendedType:l,extendedContent:n})},l.prototype.close=function(l){var n;this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(Tn.cancel(this),null===(n=this.receiver)||void 0===n||n.cancel())},l}();mn.RequestStreamResponderStream=_n,Object.defineProperty(Il,"__esModule",{value:!0}),Il.KeepAliveSender=Il.KeepAliveHandler=Il.DefaultConnectionFrameHandler=Il.DefaultStreamRequestHandler=Il.LeaseHandler=Il.RSocketRequester=void 0;var On=Rl,An=wl,Cn=Ll,Fn=zl,In=en,Ln=mn,xn=function(){function l(l,n,u){this.connection=l,this.fragmentSize=n,this.leaseManager=u}return l.prototype.fireAndForget=function(l,n){var u=new Fn.RequestFnFRequesterStream(l,n,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(u):this.connection.multiplexerDemultiplexer.createRequestStream(u),u},l.prototype.requestResponse=function(l,n){var u=new In.RequestResponseRequesterStream(l,n,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(u):this.connection.multiplexerDemultiplexer.createRequestStream(u),u},l.prototype.requestStream=function(l,n,u){var e=new Ln.RequestStreamRequesterStream(l,u,this.fragmentSize,n,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(e):this.connection.multiplexerDemultiplexer.createRequestStream(e),e},l.prototype.requestChannel=function(l,n,u,e){var t=new Cn.RequestChannelRequesterStream(l,u,e,this.fragmentSize,n,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(t):this.connection.multiplexerDemultiplexer.createRequestStream(t),t},l.prototype.metadataPush=function(l,n){throw new Error("Method not implemented.")},l.prototype.close=function(l){this.connection.close(l)},l.prototype.onClose=function(l){this.connection.onClose(l)},l}();Il.RSocketRequester=xn;var Nn=function(){function l(l,n){this.maxPendingRequests=l,this.multiplexer=n,this.pendingRequests=[],this.expirationTime=0,this.availableLease=0}return l.prototype.handle=function(l){for(this.expirationTime=l.ttl+Date.now(),this.availableLease=l.requestCount;this.availableLease>0&&this.pendingRequests.length>0;){var n=this.pendingRequests.shift();this.availableLease--,this.multiplexer.createRequestStream(n)}},l.prototype.requestLease=function(l){var n=this.availableLease;if(n>0&&Date.now()<this.expirationTime)return this.availableLease=n-1,void this.multiplexer.createRequestStream(l);this.pendingRequests.length>=this.maxPendingRequests?l.handleReject(new On.RSocketError(On.ErrorCodes.REJECTED,"No available lease given")):this.pendingRequests.push(l)},l.prototype.cancelRequest=function(l){var n=this.pendingRequests.indexOf(l);n>-1&&this.pendingRequests.splice(n,1)},l}();Il.LeaseHandler=Nn;var kn=function(){function l(l,n){this.rsocket=l,this.fragmentSize=n}return l.prototype.handle=function(l,n){switch(l.type){case An.FrameTypes.REQUEST_FNF:return void(this.rsocket.fireAndForget&&new Fn.RequestFnfResponderStream(l.streamId,n,this.rsocket.fireAndForget.bind(this.rsocket),l));case An.FrameTypes.REQUEST_RESPONSE:return this.rsocket.requestResponse?void new In.RequestResponseResponderStream(l.streamId,n,this.fragmentSize,this.rsocket.requestResponse.bind(this.rsocket),l):void this.rejectRequest(l.streamId,n);case An.FrameTypes.REQUEST_STREAM:return this.rsocket.requestStream?void new Ln.RequestStreamResponderStream(l.streamId,n,this.fragmentSize,this.rsocket.requestStream.bind(this.rsocket),l):void this.rejectRequest(l.streamId,n);case An.FrameTypes.REQUEST_CHANNEL:return this.rsocket.requestChannel?void new Cn.RequestChannelResponderStream(l.streamId,n,this.fragmentSize,this.rsocket.requestChannel.bind(this.rsocket),l):void this.rejectRequest(l.streamId,n)}},l.prototype.rejectRequest=function(l,n){n.send({type:An.FrameTypes.ERROR,streamId:l,flags:An.Flags.NONE,code:On.ErrorCodes.REJECTED,message:"No available handler found"})},l.prototype.close=function(){},l}();Il.DefaultStreamRequestHandler=kn;var Un,Dn=function(){function l(l,n,u,e,t){this.connection=l,this.keepAliveHandler=n,this.keepAliveSender=u,this.leaseHandler=e,this.rsocket=t}return l.prototype.handle=function(l){switch(l.type){case An.FrameTypes.KEEPALIVE:return void this.keepAliveHandler.handle(l);case An.FrameTypes.LEASE:return this.leaseHandler?void this.leaseHandler.handle(l):void 0;case An.FrameTypes.ERROR:return void this.connection.close(new On.RSocketError(l.code,l.message));case An.FrameTypes.METADATA_PUSH:return void this.rsocket.metadataPush;default:this.connection.multiplexerDemultiplexer.connectionOutbound.send({type:An.FrameTypes.ERROR,streamId:0,flags:An.Flags.NONE,message:"Received unknown frame type",code:On.ErrorCodes.CONNECTION_ERROR})}},l.prototype.pause=function(){var l;this.keepAliveHandler.pause(),null===(l=this.keepAliveSender)||void 0===l||l.pause()},l.prototype.resume=function(){var l;this.keepAliveHandler.start(),null===(l=this.keepAliveSender)||void 0===l||l.start()},l.prototype.close=function(l){var n;this.keepAliveHandler.close(),null===(n=this.rsocket.close)||void 0===n||n.call(this.rsocket,l)},l}();Il.DefaultConnectionFrameHandler=Dn,function(l){l[l.Paused=0]="Paused",l[l.Running=1]="Running",l[l.Closed=2]="Closed"}(Un||(Un={}));var Pn,Mn=function(){function l(l,n){this.connection=l,this.keepAliveTimeoutDuration=n,this.state=Un.Paused,this.outbound=l.multiplexerDemultiplexer.connectionOutbound}return l.prototype.handle=function(l){this.keepAliveLastReceivedMillis=Date.now(),An.Flags.hasRespond(l.flags)&&this.outbound.send({type:An.FrameTypes.KEEPALIVE,streamId:0,data:l.data,flags:l.flags^An.Flags.RESPOND,lastReceivedPosition:0})},l.prototype.start=function(){this.state===Un.Paused&&(this.keepAliveLastReceivedMillis=Date.now(),this.state=Un.Running,this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),this.keepAliveTimeoutDuration))},l.prototype.pause=function(){this.state===Un.Running&&(this.state=Un.Paused,clearTimeout(this.activeTimeout))},l.prototype.close=function(){this.state=Un.Closed,clearTimeout(this.activeTimeout)},l.prototype.timeoutCheck=function(){var l=Date.now()-this.keepAliveLastReceivedMillis;l>=this.keepAliveTimeoutDuration?this.connection.close(new Error("No keep-alive acks for ".concat(this.keepAliveTimeoutDuration," millis"))):this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),Math.max(100,this.keepAliveTimeoutDuration-l))},l}();Il.KeepAliveHandler=Mn,function(l){l[l.Paused=0]="Paused",l[l.Running=1]="Running",l[l.Closed=2]="Closed"}(Pn||(Pn={}));var Bn=function(){function l(l,n){this.outbound=l,this.keepAlivePeriodDuration=n,this.state=Pn.Paused}return l.prototype.sendKeepAlive=function(){this.outbound.send({type:An.FrameTypes.KEEPALIVE,streamId:0,data:void 0,flags:An.Flags.RESPOND,lastReceivedPosition:0})},l.prototype.start=function(){this.state===Pn.Paused&&(this.state=Pn.Running,this.activeInterval=setInterval(this.sendKeepAlive.bind(this),this.keepAlivePeriodDuration))},l.prototype.pause=function(){this.state===Pn.Running&&(this.state=Pn.Paused,clearInterval(this.activeInterval))},l.prototype.close=function(){this.state=Pn.Closed,clearInterval(this.activeInterval)},l}();Il.KeepAliveSender=Bn;var qn,jn,$n={};function Wn(){if(qn)return $n;qn=1;var l=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty($n,"__esModule",{value:!0}),$n.FrameStore=void 0;var n=Xn(),u=El,e=function(){function e(){this.storedFrames=[],this._lastReceivedFramePosition=0,this._firstAvailableFramePosition=0,this._lastSentFramePosition=0}return Object.defineProperty(e.prototype,"lastReceivedFramePosition",{get:function(){return this._lastReceivedFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"firstAvailableFramePosition",{get:function(){return this._firstAvailableFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSentFramePosition",{get:function(){return this._lastSentFramePosition},enumerable:!1,configurable:!0}),e.prototype.store=function(l){this._lastSentFramePosition+=(0,u.sizeOfFrame)(l),this.storedFrames.push(l)},e.prototype.record=function(l){this._lastReceivedFramePosition+=(0,u.sizeOfFrame)(l)},e.prototype.dropTo=function(l){for(var e=l-this._firstAvailableFramePosition;e>0&&this.storedFrames.length>0;){var t=this.storedFrames.shift();e-=(0,u.sizeOfFrame)(t)}if(0!==e)throw new n.RSocketError(n.ErrorCodes.CONNECTION_ERROR,"State inconsistency. Expected bytes to drop ".concat(l-this._firstAvailableFramePosition," but actual ").concat(e));this._firstAvailableFramePosition=l},e.prototype.drain=function(n){var u,e;try{for(var t=l(this.storedFrames),r=t.next();!r.done;r=t.next()){n(r.value)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}},e}();return $n.FrameStore=e,$n}function Qn(){if(jn)return Al;jn=1;var l=r&&r.__awaiter||function(l,n,u,e){return new(u||(u=Promise))((function(t,r){function s(l){try{o(e.next(l))}catch(l){r(l)}}function i(l){try{o(e.throw(l))}catch(l){r(l)}}function o(l){var n;l.done?t(l.value):(n=l.value,n instanceof u?n:new u((function(l){l(n)}))).then(s,i)}o((e=e.apply(l,n||[])).next())}))},n=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(Al,"__esModule",{value:!0}),Al.RSocketConnector=void 0;var u=Fl(),e=wl,t=Il,s=Wn(),i=function(){function r(l){this.config=l}return r.prototype.connect=function(){var r,i,o,a,c,h,d,p,f,m,y,g,E,w,b,v,S,T,R,_;return l(this,void 0,void 0,(function(){var O,A,C,F,I,L,x,N,k,U=this;return n(this,(function(D){switch(D.label){case 0:return O=this.config,A={type:e.FrameTypes.SETUP,dataMimeType:null!==(i=null===(r=O.setup)||void 0===r?void 0:r.dataMimeType)&&void 0!==i?i:"application/octet-stream",metadataMimeType:null!==(a=null===(o=O.setup)||void 0===o?void 0:o.metadataMimeType)&&void 0!==a?a:"application/octet-stream",keepAlive:null!==(h=null===(c=O.setup)||void 0===c?void 0:c.keepAlive)&&void 0!==h?h:6e4,lifetime:null!==(p=null===(d=O.setup)||void 0===d?void 0:d.lifetime)&&void 0!==p?p:3e5,metadata:null===(m=null===(f=O.setup)||void 0===f?void 0:f.payload)||void 0===m?void 0:m.metadata,data:null===(g=null===(y=O.setup)||void 0===y?void 0:y.payload)||void 0===g?void 0:g.data,resumeToken:null!==(w=null===(E=O.resume)||void 0===E?void 0:E.tokenGenerator())&&void 0!==w?w:null,streamId:0,majorVersion:1,minorVersion:0,flags:((null===(v=null===(b=O.setup)||void 0===b?void 0:b.payload)||void 0===v?void 0:v.metadata)?e.Flags.METADATA:e.Flags.NONE)|(O.lease?e.Flags.LEASE:e.Flags.NONE)|(O.resume?e.Flags.RESUME_ENABLE:e.Flags.NONE)},[4,O.transport.connect((function(t){return O.resume?new u.ResumableClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(-1),t,t,new s.FrameStore,A.resumeToken.toString(),(function(t,r){return l(U,void 0,void 0,(function(){var l,s,i;return n(this,(function(n){switch(n.label){case 0:return l=function(l){return l.send({type:e.FrameTypes.RESUME,streamId:0,flags:e.Flags.NONE,clientPosition:r.firstAvailableFramePosition,serverPosition:r.lastReceivedFramePosition,majorVersion:A.minorVersion,minorVersion:A.majorVersion,resumeToken:A.resumeToken}),new u.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(l,l,t)},s=-1,[4,(i=function(){return s++,O.resume.reconnectFunction(s).then((function(){return O.transport.connect(l).catch(i)}))})()];case 1:return n.sent(),[2]}}))}))})):new u.ClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(-1),t,t)}))];case 1:return C=D.sent(),F=new t.KeepAliveSender(C.multiplexerDemultiplexer.connectionOutbound,A.keepAlive),I=new t.KeepAliveHandler(C,A.lifetime),L=O.lease?new t.LeaseHandler(null!==(S=O.lease.maxPendingRequests)&&void 0!==S?S:256,C.multiplexerDemultiplexer):void 0,x=null!==(T=O.responder)&&void 0!==T?T:{},N=new t.DefaultConnectionFrameHandler(C,I,F,L,x),k=new t.DefaultStreamRequestHandler(x,0),C.onClose((function(l){F.close(),I.close(),N.close(l)})),C.multiplexerDemultiplexer.connectionInbound(N),C.multiplexerDemultiplexer.handleRequestStream(k),C.multiplexerDemultiplexer.connectionOutbound.send(A),I.start(),F.start(),[2,new t.RSocketRequester(C,null!==(_=null===(R=O.fragmentation)||void 0===R?void 0:R.maxOutboundFragmentSize)&&void 0!==_?_:0,L)]}}))}))},r}();return Al.RSocketConnector=i,Al}var Hn,zn={};function Vn(){if(Hn)return zn;Hn=1;var l=r&&r.__awaiter||function(l,n,u,e){return new(u||(u=Promise))((function(t,r){function s(l){try{o(e.next(l))}catch(l){r(l)}}function i(l){try{o(e.throw(l))}catch(l){r(l)}}function o(l){var n;l.done?t(l.value):(n=l.value,n instanceof u?n:new u((function(l){l(n)}))).then(s,i)}o((e=e.apply(l,n||[])).next())}))},n=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(zn,"__esModule",{value:!0}),zn.RSocketServer=void 0;var u=Fl(),e=Rl,t=wl,s=Il,i=Wn(),o=function(){function r(l){var n,u;this.acceptor=l.acceptor,this.transport=l.transport,this.lease=l.lease,this.serverSideKeepAlive=l.serverSideKeepAlive,this.sessionStore=l.resume?{}:void 0,this.sessionTimeout=null!==(u=null===(n=l.resume)||void 0===n?void 0:n.sessionTimeout)&&void 0!==u?u:void 0}return r.prototype.bind=function(){return l(this,void 0,void 0,(function(){var r=this;return n(this,(function(o){switch(o.label){case 0:return[4,this.transport.bind((function(u,i){return l(r,void 0,void 0,(function(){var l,r,o,a,c,h,d,p,f,m,y,g,E;return n(this,(function(n){switch(n.label){case 0:switch(u.type){case t.FrameTypes.SETUP:return[3,1];case t.FrameTypes.RESUME:return[3,5]}return[3,6];case 1:return n.trys.push([1,3,,4]),this.lease&&!t.Flags.hasLease(u.flags)?(l=new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,"Lease has to be enabled"),i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,flags:t.Flags.NONE,code:l.code,message:l.message}),i.close(l),[2]):t.Flags.hasLease(u.flags)&&!this.lease?(l=new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,"Lease has to be disabled"),i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,flags:t.Flags.NONE,code:l.code,message:l.message}),i.close(l),[2]):(r=t.Flags.hasLease(u.flags)?new s.LeaseHandler(null!==(m=this.lease.maxPendingRequests)&&void 0!==m?m:256,i.multiplexerDemultiplexer):void 0,o=new s.RSocketRequester(i,null!==(g=null===(y=this.fragmentation)||void 0===y?void 0:y.maxOutboundFragmentSize)&&void 0!==g?g:0,r),[4,this.acceptor.accept({data:u.data,dataMimeType:u.dataMimeType,metadata:u.metadata,metadataMimeType:u.metadataMimeType,flags:u.flags,keepAliveMaxLifetime:u.lifetime,keepAliveInterval:u.keepAlive,resumeToken:u.resumeToken},o)]);case 2:return a=n.sent(),c=new s.KeepAliveHandler(i,u.lifetime),h=this.serverSideKeepAlive?new s.KeepAliveSender(i.multiplexerDemultiplexer.connectionOutbound,u.keepAlive):void 0,d=new s.DefaultConnectionFrameHandler(i,c,h,r,a),p=new s.DefaultStreamRequestHandler(a,0),i.onClose((function(l){null==h||h.close(),c.close(),d.close(l)})),i.multiplexerDemultiplexer.connectionInbound(d),i.multiplexerDemultiplexer.handleRequestStream(p),c.start(),null==h||h.start(),[3,4];case 3:return f=n.sent(),i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.REJECTED_SETUP,message:null!==(E=f.message)&&void 0!==E?E:"",flags:t.Flags.NONE}),i.close(f instanceof e.RSocketError?f:new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,f.message)),[3,4];case 4:case 5:return[2];case 6:i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.UNSUPPORTED_SETUP,message:"Unsupported setup",flags:t.Flags.NONE}),i.close(new e.RSocketError(e.ErrorCodes.UNSUPPORTED_SETUP)),n.label=7;case 7:return[2]}}))}))}),(function(l,n){if(l.type===t.FrameTypes.RESUME){if(r.sessionStore){var s=r.sessionStore[l.resumeToken.toString()];return s?(s.resume(l,n,n),s):(n.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.REJECTED_RESUME,message:"No session found for the given resume token",flags:t.Flags.NONE}),void n.close())}return n.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.REJECTED_RESUME,message:"Resume is not enabled",flags:t.Flags.NONE}),void n.close()}if(l.type===t.FrameTypes.SETUP&&t.Flags.hasResume(l.flags)){if(!r.sessionStore){var o=new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,"No resume support");return n.send({type:t.FrameTypes.ERROR,streamId:0,flags:t.Flags.NONE,code:o.code,message:o.message}),void n.close(o)}var a=new u.ResumableClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(0),n,n,new i.FrameStore,l.resumeToken.toString(),r.sessionStore,r.sessionTimeout);return r.sessionStore[l.resumeToken.toString()]=a,a}return new u.ClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(0),n,n)}))];case 1:return[2,o.sent()]}}))}))},r}();return zn.RSocketServer=o,zn}var Gn,Jn={};function Xn(){return Gn||(Gn=1,function(l){var n=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),u=r&&r.__exportStar||function(l,u){for(var e in l)"default"===e||Object.prototype.hasOwnProperty.call(u,e)||n(u,l,e)};Object.defineProperty(l,"__esModule",{value:!0}),u(El,l),u(bl,l),u(vl,l),u(Rl,l),u(wl,l),u(_l,l),u(Qn(),l),u(Vn(),l),u(Jn,l)}(yl)),yl}Object.defineProperty(Jn,"__esModule",{value:!0});var Yn=Xn(),Kn="1.40.0";const Zn={highWater:10,lowWater:0};class lu extends R{options;dataQueue;isClosed;processingPromise;notifyDataAdded;logger;mapLine;constructor(l){if(super(),this.options=l,this.processingPromise=null,this.isClosed=!1,this.dataQueue=[],this.mapLine=l?.mapLine??(l=>l),this.logger=l?.logger??y.get("DataStream"),l?.closeOnError){const l=this.registerListener({error:n=>{l?.(),this.close()}})}}get highWatermark(){return this.options?.pressure?.highWaterMark??Zn.highWater}get lowWatermark(){return this.options?.pressure?.lowWaterMark??Zn.lowWater}get closed(){return this.isClosed}async close(){this.isClosed=!0,await this.processingPromise,this.iterateListeners((l=>l.closed?.())),this.dataQueue=[],this.listeners.clear()}enqueueData(l){if(this.isClosed)throw new Error("Cannot enqueue data into closed stream.");this.dataQueue.push(l),this.notifyDataAdded?.(),this.processQueue()}async read(){return this.closed?null:new Promise(((l,n)=>{const u=this.registerListener({data:async n=>{l(n),u?.()},closed:()=>{l(null),u?.()},error:l=>{n(l),u?.()}});this.processQueue()}))}forEach(l){return this.dataQueue.length<=this.lowWatermark&&this.iterateAsyncErrored((async l=>l.lowWater?.())),this.registerListener({data:l})}processQueue(){if(this.processingPromise)return;const l=this.processingPromise=this._processQueue();return l.finally((()=>this.processingPromise=null)),l}hasDataReader(){return Array.from(this.listeners.values()).some((l=>!!l.data))}async _processQueue(){if(this.dataQueue.length>=this.highWatermark&&await this.iterateAsyncErrored((async l=>l.highWater?.())),!this.isClosed&&this.hasDataReader()){if(this.dataQueue.length){const l=this.dataQueue.shift(),n=this.mapLine(l);await this.iterateAsyncErrored((async l=>l.data?.(n)))}if(this.dataQueue.length<=this.lowWatermark){const l=new Promise((l=>{this.notifyDataAdded=l}));await Promise.race([this.iterateAsyncErrored((async l=>l.lowWater?.())),l]),this.notifyDataAdded=null}this.dataQueue.length>0&&setTimeout((()=>this.processQueue()))}}async iterateAsyncErrored(l){const n=Array.from(this.listeners.values());for(let u of n)try{await l(u)}catch(l){this.logger.error(l),this.iterateListeners((n=>n.error?.(l)))}}}var nu,uu={},eu=r&&r.__extends||(nu=function(l,n){return nu=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,n){l.__proto__=n}||function(l,n){for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u])},nu(l,n)},function(l,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function u(){this.constructor=l}nu(l,n),l.prototype=null===n?Object.create(n):(u.prototype=n.prototype,new u)});Object.defineProperty(uu,"__esModule",{value:!0});var tu=uu.WebsocketDuplexConnection=void 0,ru=Xn(),su=function(l){function n(n,u,e){var t=l.call(this)||this;return t.websocket=n,t.deserializer=u,t.handleClosed=function(l){t.close(new Error(l.reason||"WebsocketDuplexConnection: Socket closed unexpectedly."))},t.handleError=function(l){t.close(l.error)},t.handleMessage=function(l){try{var n=gl.Buffer.from(l.data),u=t.deserializer.deserializeFrame(n);t.multiplexerDemultiplexer.handle(u)}catch(l){t.close(l)}},n.addEventListener("close",t.handleClosed),n.addEventListener("error",t.handleError),n.addEventListener("message",t.handleMessage),t.multiplexerDemultiplexer=e(t),t}return eu(n,l),Object.defineProperty(n.prototype,"availability",{get:function(){return this.done?0:1},enumerable:!1,configurable:!0}),n.prototype.close=function(n){this.done||(this.websocket.removeEventListener("close",this.handleClosed),this.websocket.removeEventListener("error",this.handleError),this.websocket.removeEventListener("message",this.handleMessage),this.websocket.close(),delete this.websocket),l.prototype.close.call(this,n)},n.prototype.send=function(l){if(!this.done){var n=(0,ru.serializeFrame)(l);this.websocket.send(n)}},n}(ru.Deferred);tu=uu.WebsocketDuplexConnection=su;class iu{url;factory;constructor(l){this.url=l.url,this.factory=l.wsCreator??(l=>new WebSocket(l))}connect(l){return new Promise(((n,u)=>{const e=this.factory(this.url);let t;e.binaryType="arraybuffer";const r=()=>{t(),n(new tu(e,new Yn.Deserializer,l))},s=l=>{t(),null!=l.error?u(l.error):null!=l.message?u(new Error(`Failed to create websocket connection: ${l.message}`)):u(new Error(`Failed to create websocket connection to ${this.url}`))},i=()=>{t(),u(new Error("WebSocket connection closed while opening"))};t=()=>{e.removeEventListener("open",r),e.removeEventListener("error",s),e.removeEventListener("close",i)},e.addEventListener("open",r),e.addEventListener("error",s),e.addEventListener("close",i)}))}}const ou=/\/+$/,au=Kn,cu=y.get("PowerSyncRemote");var hu;exports.FetchStrategy=void 0,(hu=exports.FetchStrategy||(exports.FetchStrategy={})).Buffered="buffered",hu.Sequential="sequential";class du{getFetch(){throw new Error("Unspecified fetch implementation")}}const pu={socketUrlTransformer:l=>l.replace(/^https?:\/\//,(function(l){return"https://"===l?"wss://":"ws://"})),fetchImplementation:new du,fetchOptions:{}};function fu(l){return{priority:l.priority,hasSynced:l.has_synced??void 0,lastSyncedAt:null!=l.last_synced_at?new Date(1e3*l.last_synced_at):void 0}}function mu(l){const n=l.priority_status.find((l=>l.priority==w)),u=null!=n?fu(n):null;return{connected:l.connected,connecting:l.connecting,dataFlow:{downloading:null!=l.downloading,downloadProgress:l.downloading?.buckets,internalStreamSubscriptions:l.streams},lastSyncedAt:u?.lastSyncedAt,hasSynced:u?.hasSynced,priorityStatusEntries:l.priority_status.map(fu)}}function yu(l){return null!=l.data}function gu(l){return null!=l.token_expires_in}function Eu(l){return null!=l.checkpoint}function wu(l){return null!=l.checkpoint_complete}function bu(l){return null!=l.partial_checkpoint_complete}function vu(l){return null!=l.checkpoint_diff}var Su,Tu,Ru;exports.LockType=void 0,(Su=exports.LockType||(exports.LockType={})).CRUD="crud",Su.SYNC="sync",exports.SyncStreamConnectionMethod=void 0,(Tu=exports.SyncStreamConnectionMethod||(exports.SyncStreamConnectionMethod={})).HTTP="http",Tu.WEB_SOCKET="web-socket",exports.SyncClientImplementation=void 0,(Ru=exports.SyncClientImplementation||(exports.SyncClientImplementation={})).JAVASCRIPT="js",Ru.RUST="rust";const _u=exports.SyncClientImplementation.JAVASCRIPT,Ou=1e3,Au=5e3,Cu={retryDelayMs:Au,crudUploadThrottleMs:Ou},Fu={connectionMethod:exports.SyncStreamConnectionMethod.WEB_SOCKET,clientImplementation:_u,fetchStrategy:exports.FetchStrategy.Buffered,params:{},serializedSchema:void 0,includeDefaultStreams:!0};var Iu;exports.DiffTriggerOperation=void 0,(Iu=exports.DiffTriggerOperation||(exports.DiffTriggerOperation={})).INSERT="INSERT",Iu.UPDATE="UPDATE",Iu.DELETE="DELETE";class Lu{options;schema;constructor(l){this.options=l,this.schema=l.schema,l.db.registerListener({schemaChanged:l=>{this.schema=l}})}get db(){return this.options.db}async getUUID(){const{id:l}=await this.db.get("\n SELECT\n uuid () as id\n ");return l.replace(/-/g,"_")}async removeTriggers(l,n){for(const u of n)await l.execute(`DROP TRIGGER IF EXISTS ${u}; `)}async createDiffTrigger(l){await this.db.waitForReady();const{source:n,destination:u,columns:e,when:t,hooks:r}=l,s=Object.keys(t);if(0==s.length)throw new Error("At least one WHEN operation must be specified for the trigger.");const i=Object.fromEntries(Object.entries(t).map((([l,n])=>[l,`WHEN ${n}`]))),o=this.schema.tables.find((l=>l.viewName==n));if(!o)throw new Error(`Source table or view "${n}" not found in the schema.`);const a=e??o.columns.map((l=>l.name)),c=o.internalName,h=[],d=await this.getUUID(),p=(l="NEW")=>null==e?`${l}.data`:0==e.length?"'{}'":`json_object(${a.map((n=>`'${n}', json_extract(${l}.data, '$.${n}')`)).join(", ")})`,f=this.db.registerListener({schemaChanged:()=>{this.db.logger.warn("The PowerSync schema has changed while previously configured triggers are still operational. This might cause unexpected results.")}}),m=async()=>(f(),this.db.writeLock((async l=>{await this.removeTriggers(l,h),await l.execute(`DROP TABLE IF EXISTS ${u};`)}))),y=async l=>{if(await(r?.beforeCreate?.(l)),await l.execute(`\n CREATE TEMP TABLE ${u} (\n id TEXT,\n operation TEXT,\n timestamp TEXT,\n value TEXT,\n previous_value TEXT\n );\n `),s.includes(exports.DiffTriggerOperation.INSERT)){const n=`ps_temp_trigger_insert_${d}`;h.push(n),await l.execute(`\n CREATE TEMP TRIGGER ${n} AFTER INSERT ON ${c} ${i[exports.DiffTriggerOperation.INSERT]} BEGIN\n INSERT INTO\n ${u} (id, operation, timestamp, value)\n VALUES\n (\n NEW.id,\n 'INSERT',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${p("NEW")}\n );\n\n END;\n `)}if(s.includes(exports.DiffTriggerOperation.UPDATE)){const n=`ps_temp_trigger_update_${d}`;h.push(n),await l.execute(`\n CREATE TEMP TRIGGER ${n} AFTER\n UPDATE ON ${c} ${i[exports.DiffTriggerOperation.UPDATE]} BEGIN\n INSERT INTO\n ${u} (id, operation, timestamp, value, previous_value)\n VALUES\n (\n NEW.id,\n 'UPDATE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${p("NEW")},\n ${p("OLD")}\n );\n\n END;\n `)}if(s.includes(exports.DiffTriggerOperation.DELETE)){const n=`ps_temp_trigger_delete_${d}`;h.push(n),await l.execute(`\n CREATE TEMP TRIGGER ${n} AFTER DELETE ON ${c} ${i[exports.DiffTriggerOperation.DELETE]} BEGIN\n INSERT INTO\n ${u} (id, operation, timestamp, value)\n VALUES\n (\n OLD.id,\n 'DELETE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${p("OLD")}\n );\n\n END;\n `)}};try{return await this.db.writeLock(y),m}catch(l){try{await m()}catch(n){throw new AggregateError([l,n],"Error during operation and cleanup")}throw l}}async trackTableDiff(l){const{source:n,when:u,columns:e,hooks:t,throttleMs:r=k}=l;await this.db.waitForReady();const s=this.schema.tables.find((l=>l.viewName==n));if(!s)throw new Error(`Source table or view "${n}" not found in the schema.`);const i=e??s.columns.map((l=>l.name)),o=await this.getUUID(),a=`ps_temp_track_${n}_${o}`,c=new AbortController,h=()=>c.abort();this.db.onChange({onChange:async()=>{c.signal.aborted||await this.db.writeTransaction((async n=>{const u=await l.onChange({...n,destinationTable:a,withDiff:async(l,u)=>{const e=`\n WITH\n DIFF AS (\n SELECT\n *\n FROM\n ${a}\n ORDER BY\n timestamp ASC\n ) ${l}\n `;return n.getAll(e,u)},withExtractedDiff:async(l,u)=>{const e=`\n WITH\n DIFF AS (\n SELECT\n id,\n ${i.length>0?`${i.map((l=>`json_extract(value, '$.${l}') as ${l}`)).join(", ")},`:""} operation as __operation,\n timestamp as __timestamp,\n previous_value as __previous_value\n FROM\n ${a}\n ORDER BY\n __timestamp ASC\n ) ${l}\n `;return n.getAll(e,u)}});return await n.execute(`DELETE FROM ${a};`),u}))}},{tables:[a],signal:c.signal,throttleMs:r});try{const l=await this.createDiffTrigger({source:n,destination:a,columns:i,when:u,hooks:t});return async()=>{h(),await l()}}catch(l){try{h()}catch(n){throw new AggregateError([l,n],"Error during operation and cleanup")}throw l}}}const xu=/(^ps_data__|^ps_data_local__)/,Nu={clearLocal:!0},ku={disconnect:!0},Uu={retryDelayMs:5e3,crudUploadThrottleMs:Ou},Du=12e4,Pu=l=>"object"==typeof l&&j(l.database);function Mu(l,n,u){const e=()=>{const t=new AbortController;let r=null;const s=()=>{t.abort("Abort triggered"),r?.(),r=null,u?.signal?.removeEventListener("abort",s)};u?.signal?.addEventListener("abort",s),r=n.registerListener({schemaChanged:async()=>{s(),setTimeout((()=>e()),0)}}),l(t.signal)};e()}const Bu="9223372036854775807";class qu extends R{db;logger;tableNames;_hasCompletedSync;updateListener;_clientId;constructor(l,n=y.get("SqliteBucketStorage")){super(),this.db=l,this.logger=n,this._hasCompletedSync=!1,this.tableNames=new Set,this.updateListener=l.registerListener({tablesUpdated:l=>{E(l).includes(exports.PSInternalTable.CRUD)&&this.iterateListeners((l=>l.crudUpdate?.()))}})}async init(){this._hasCompletedSync=!1;const l=await this.db.getAll("SELECT name FROM sqlite_master WHERE type='table' AND name GLOB 'ps_data_*'");for(const n of l??[])this.tableNames.add(n.name)}async dispose(){this.updateListener?.()}async _getClientId(){return(await this.db.get("SELECT powersync_client_id() as client_id")).client_id}getClientId(){return null==this._clientId&&(this._clientId=this._getClientId()),this._clientId}getMaxOpId(){return Bu}startSession(){}async getBucketStates(){return await this.db.getAll("SELECT name as bucket, cast(last_op as TEXT) as op_id FROM ps_buckets WHERE pending_delete = 0 AND name != '$local'")}async getBucketOperationProgress(){const l=await this.db.getAll("SELECT name, count_at_last, count_since_last FROM ps_buckets");return Object.fromEntries(l.map((l=>[l.name,{atLast:l.count_at_last,sinceLast:l.count_since_last}])))}async saveSyncData(l,n=!1){await this.writeTransaction((async u=>{for(const e of l.buckets)await u.execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",["save",JSON.stringify({buckets:[e.toJSON(n)]})]),this.logger.debug(`Saved batch of data for bucket: ${e.bucket}, operations: ${e.data.length}`)}))}async removeBuckets(l){for(const n of l)await this.deleteBucket(n)}async deleteBucket(l){await this.writeTransaction((async n=>{await n.execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",["delete_bucket",l])})),this.logger.debug(`Done deleting bucket ${l}`)}async hasCompletedSync(){if(this._hasCompletedSync)return!0;const l=null!=(await this.db.get("SELECT powersync_last_synced_at() as synced_at")).synced_at;return l&&(this._hasCompletedSync=!0),l}async syncLocalDatabase(l,n){const u=await this.validateChecksums(l,n);if(!u.checkpointValid){this.logger.error("Checksums failed for",u.checkpointFailures);for(const l of u.checkpointFailures??[])await this.deleteBucket(l);return{ready:!1,checkpointValid:!1,checkpointFailures:u.checkpointFailures}}null==n?this.logger.debug(`Validated checksums checkpoint ${l.last_op_id}`):this.logger.debug(`Validated checksums for partial checkpoint ${l.last_op_id}, priority ${n}`);let e=l.buckets;void 0!==n&&(e=e.filter((l=>ju(n,l))));const t=e.map((l=>l.bucket));await this.writeTransaction((async u=>{await u.execute("UPDATE ps_buckets SET last_op = ? WHERE name IN (SELECT json_each.value FROM json_each(?))",[l.last_op_id,JSON.stringify(t)]),null==n&&l.write_checkpoint&&await u.execute("UPDATE ps_buckets SET last_op = ? WHERE name = '$local'",[l.write_checkpoint])}));return await this.updateObjectsFromBuckets(l,n)?{ready:!0,checkpointValid:!0}:{ready:!1,checkpointValid:!0}}async updateObjectsFromBuckets(l,n){let u="";if(void 0!==n){const e=[];for(const u of l.buckets)ju(n,u)&&e.push(u.bucket);u=JSON.stringify({priority:n,buckets:e})}return this.writeTransaction((async e=>{const{insertId:t}=await e.execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",["sync_local",u]);if(1==t){if(null==n){const n=Object.fromEntries(l.buckets.map((l=>[l.bucket,l.count]))),u=JSON.stringify(n);await e.execute("UPDATE ps_buckets SET count_since_last = 0, count_at_last = ?->name WHERE name != '$local' AND ?->name IS NOT NULL",[u,u])}return!0}return!1}))}async validateChecksums(l,n){if(void 0!==n){const u=l.buckets.filter((l=>ju(n,l)));l={...l,buckets:u}}const u=await this.db.execute("SELECT powersync_validate_checkpoint(?) as result",[JSON.stringify({...l})]),e=u.rows?.item(0);if(!e)return{checkpointValid:!1,ready:!1,checkpointFailures:[]};const t=JSON.parse(e.result);return t.valid?{ready:!0,checkpointValid:!0}:{checkpointValid:!1,ready:!1,checkpointFailures:t.failed_buckets}}async updateLocalTarget(l){if(!(await this.db.getAll("SELECT target_op FROM ps_buckets WHERE name = '$local' AND target_op = CAST(? as INTEGER)",[Bu])).length)return!1;const n=await this.db.getAll("SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'");if(!n.length)return!1;const u=n[0].seq,e=await l();return this.writeTransaction((async l=>{const n=await l.execute("SELECT 1 FROM ps_crud LIMIT 1");if(n.rows?.length)return this.logger.debug(`New data uploaded since write checkpoint ${e} - need new write checkpoint`),!1;const t=await l.execute("SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'");if(!t.rows?.length)throw new Error("SQLite Sequence should not be empty");const r=t.rows?.item(0).seq;return r!=u?(this.logger.debug(`New data uploaded since write checpoint ${e} - need new write checkpoint (sequence updated)`),!1):(this.logger.debug(`Updating target write checkpoint to ${e}`),await l.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'",[e]),!0)}))}async nextCrudItem(){const l=await this.db.getOptional("SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1");if(l)return J.fromRow(l)}async hasCrud(){return!!await this.db.getOptional("SELECT 1 FROM ps_crud LIMIT 1")}async getCrudBatch(l=100){if(!await this.hasCrud())return null;const n=await this.db.getAll("SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?",[l]),u=[];for(const l of n)u.push(J.fromRow(l));if(0===u.length)return null;const e=u[u.length-1];return{crud:u,haveMore:!0,complete:async l=>this.writeTransaction((async n=>{if(await n.execute("DELETE FROM ps_crud WHERE id <= ?",[e.clientId]),l){const u=await n.execute("SELECT 1 FROM ps_crud LIMIT 1");u.rows?.length&&await n.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'",[l])}else await n.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'",[this.getMaxOpId()])}))}}async writeTransaction(l,n){return this.db.writeTransaction(l,n)}async setTargetCheckpoint(l){}async control(l,n){return await this.writeTransaction((async u=>{const[[e]]=await u.executeRaw("SELECT powersync_control(?, ?)",[l,n]);return e}))}async hasMigratedSubkeys(){const{r:l}=await this.db.get("SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r",[qu._subkeyMigrationKey]);return 0!=l}async migrateToFixedSubkeys(){await this.writeTransaction((async l=>{await l.execute("UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);"),await l.execute("INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);",[qu._subkeyMigrationKey,"1"])}))}static _subkeyMigrationKey="powersync_js_migrated_subkeys"}function ju(l,n){return null!=n.priority&&n.priority<=l}class $u{buckets;static fromJSON(l){return new $u(l.buckets.map((l=>ll.fromRow(l))))}constructor(l){this.buckets=l}}var Wu;exports.ColumnType=void 0,(Wu=exports.ColumnType||(exports.ColumnType={})).TEXT="TEXT",Wu.INTEGER="INTEGER",Wu.REAL="REAL";const Qu={type:exports.ColumnType.TEXT},Hu={type:exports.ColumnType.INTEGER},zu={type:exports.ColumnType.REAL},Vu=1999,Gu={text:Qu,integer:Hu,real:zu};class Ju{options;constructor(l){this.options=l}get name(){return this.options.name}get type(){return this.options.type}toJSON(){return{name:this.name,type:this.type}}}const Xu={ascending:!0};class Yu{options;static createAscending(l){return new Yu({name:l,ascending:!0})}constructor(l){this.options={...Xu,...l}}get name(){return this.options.name}get ascending(){return this.options.ascending}toJSON(l){return{name:this.name,ascending:this.ascending,type:l.columns.find((l=>l.name===this.name))?.type??exports.ColumnType.TEXT}}}const Ku={columns:[]};class Zu{options;static createAscending(l,n){return new Zu({...l,columns:n.map((l=>Yu.createAscending(l)))})}constructor(l){this.options=l,this.options={...Ku,...l}}get name(){return this.options.name}get columns(){return this.options.columns??[]}toJSON(l){return{name:this.name,columns:this.columns.map((n=>n.toJSON(l)))}}}class le{name;put;delete;constructor(l,n){this.name=l,this.put=n.put,this.delete=n.delete}}const ne={indexes:[],insertOnly:!1,localOnly:!1,trackPrevious:!1,trackMetadata:!1,ignoreEmptyUpdates:!1},ue=/["'%,.#\s[\]]/;class ee{options;_mappedColumns;static createLocalOnly(l){return new ee({...l,localOnly:!0,insertOnly:!1})}static createInsertOnly(l){return new ee({...l,localOnly:!1,insertOnly:!0})}static createTable(l,n){return new ee({name:l,columns:n.columns,indexes:n.indexes,localOnly:n.options.localOnly,insertOnly:n.options.insertOnly,viewName:n.options.viewName})}constructor(l,n){this.isTableV1(l)?this.initTableV1(l):this.initTableV2(l,n)}copyWithName(l){return new ee({...this.options,name:l})}isTableV1(l){return"columns"in l&&Array.isArray(l.columns)}initTableV1(l){this.options={...l,indexes:l.indexes||[]},this.applyDefaultOptions()}initTableV2(l,n){const u=Object.entries(l).map((([l,n])=>new Ju({name:l,type:n.type}))),e=Object.entries(n?.indexes??{}).map((([l,n])=>new Zu({name:l,columns:n.map((l=>new Yu({name:l.replace(/^-/,""),ascending:!l.startsWith("-")})))})));this.options={name:"",columns:u,indexes:e,viewName:n?.viewName,insertOnly:n?.insertOnly,localOnly:n?.localOnly,trackPrevious:n?.trackPrevious,trackMetadata:n?.trackMetadata,ignoreEmptyUpdates:n?.ignoreEmptyUpdates},this.applyDefaultOptions(),this._mappedColumns=l}applyDefaultOptions(){this.options.insertOnly??=ne.insertOnly,this.options.localOnly??=ne.localOnly,this.options.trackPrevious??=ne.trackPrevious,this.options.trackMetadata??=ne.trackMetadata,this.options.ignoreEmptyUpdates??=ne.ignoreEmptyUpdates}get name(){return this.options.name}get viewNameOverride(){return this.options.viewName}get viewName(){return this.viewNameOverride??this.name}get columns(){return this.options.columns}get columnMap(){return this._mappedColumns??this.columns.reduce(((l,n)=>(l[n.name]={type:n.type??exports.ColumnType.TEXT},l)),{})}get indexes(){return this.options.indexes??[]}get localOnly(){return this.options.localOnly}get insertOnly(){return this.options.insertOnly}get trackPrevious(){return this.options.trackPrevious}get trackMetadata(){return this.options.trackMetadata}get ignoreEmptyUpdates(){return this.options.ignoreEmptyUpdates}get internalName(){return this.options.localOnly?`ps_data_local__${this.name}`:`ps_data__${this.name}`}get validName(){return!ue.test(this.name)&&(null==this.viewNameOverride||!ue.test(this.viewNameOverride))}validate(){if(ue.test(this.name))throw new Error(`Invalid characters in table name: ${this.name}`);if(this.viewNameOverride&&ue.test(this.viewNameOverride))throw new Error(`Invalid characters in view name: ${this.viewNameOverride}`);if(this.columns.length>Vu)throw new Error("Table has too many columns. The maximum number of columns is 1999.");if(this.trackMetadata&&this.localOnly)throw new Error("Can't include metadata for local-only tables.");if(0!=this.trackPrevious&&this.localOnly)throw new Error("Can't include old values for local-only tables.");const l=new Set;l.add("id");for(const n of this.columns){const{name:u}=n;if("id"===n.name)throw new Error("An id column is automatically added, custom id columns are not supported");if(l.has(u))throw new Error(`Duplicate column ${u}`);if(ue.test(u))throw new Error(`Invalid characters in column name: ${n.name}`);l.add(u)}const n=new Set;for(const u of this.indexes){if(n.has(u.name))throw new Error(`Duplicate index ${u.name}`);if(ue.test(u.name))throw new Error(`Invalid characters in index name: ${u.name}`);for(const n of u.columns)if(!l.has(n.name))throw new Error(`Column ${n.name} not found for index ${u.name}`);n.add(u.name)}}toJSON(){const l=this.trackPrevious;return{name:this.name,view_name:this.viewName,local_only:this.localOnly,insert_only:this.insertOnly,include_old:l&&(l.columns??!0),include_old_only_when_changed:"object"==typeof l&&1==l.onlyWhenChanged,include_metadata:this.trackMetadata,ignore_empty_update:this.ignoreEmptyUpdates,columns:this.columns.map((l=>l.toJSON())),indexes:this.indexes.map((l=>l.toJSON(this)))}}}function te(l){return`'${l.replace(/'/g,"''")}'`}const re=y,se={TRACE:re.TRACE,DEBUG:re.DEBUG,INFO:re.INFO,TIME:re.TIME,WARN:re.WARN,ERROR:re.ERROR,OFF:re.OFF};exports.AbortOperation=Y,exports.AbstractPowerSyncDatabase=class extends R{options;closed;ready;currentStatus;sdkVersion;bucketStorageAdapter;_isReadyPromise;connectionManager;subscriptions;get syncStreamImplementation(){return this.connectionManager.syncStreamImplementation}get connector(){return this.connectionManager.connector}get connectionOptions(){return this.connectionManager.connectionOptions}_schema;_database;runExclusiveMutex;triggers;logger;constructor(l){super(),this.options=l;const{database:n,schema:u}=l;if("function"!=typeof u?.toJSON)throw new Error("The `schema` option should be provided and should be an instance of `Schema`.");if(W(n))this._database=n;else if($(n))this._database=n.openDB();else{if(!Pu(l))throw new Error("The provided `database` option is invalid.");this._database=this.openDBAdapter(l)}this.logger=l.logger??y.get(`PowerSyncDatabase[${this._database.name}]`),this.bucketStorageAdapter=this.generateBucketStorageAdapter(),this.closed=!1,this.currentStatus=new v({}),this.options={...Uu,...l},this._schema=u,this.ready=!1,this.sdkVersion="",this.runExclusiveMutex=new t,this.subscriptions={firstStatusMatching:(l,n)=>this.waitForStatus(l,n),resolveOfflineSyncStatus:()=>this.resolveOfflineSyncStatus(),rustSubscriptionsCommand:async l=>{await this.writeTransaction((n=>n.execute("select powersync_control(?,?)",["subscriptions",JSON.stringify(l)])))}},this.connectionManager=new A({createSyncImplementation:async(l,n)=>(await this.waitForReady(),this.runExclusive((async()=>{const u=this.generateSyncStreamImplementation(l,this.resolvedConnectionOptions(n)),e=u.registerListener({statusChanged:l=>{this.currentStatus=new v({...l.toJSON(),hasSynced:this.currentStatus?.hasSynced||!!l.lastSyncedAt}),this.iterateListeners((l=>l.statusChanged?.(this.currentStatus)))}});return await u.waitForReady(),{sync:u,onDispose:e}}))),logger:this.logger}),this._isReadyPromise=this.initialize(),this.triggers=new Lu({db:this,schema:this.schema})}get schema(){return this._schema}get database(){return this._database}get connected(){return this.currentStatus?.connected||!1}get connecting(){return this.currentStatus?.connecting||!1}async waitForReady(){this.ready||await this._isReadyPromise}async waitForFirstSync(l){const n=l instanceof AbortSignal?l:l?.signal,u=l&&"priority"in l?l.priority:void 0,e=void 0===u?l=>l.hasSynced:l=>l.statusForPriority(u).hasSynced;return this.waitForStatus(e,n)}async waitForStatus(l,n){if(!l(this.currentStatus))return new Promise((u=>{const e=this.registerListener({statusChanged:n=>{l(n)&&t()}});function t(){e(),u()}n?.aborted?t():n?.addEventListener("abort",t)}))}async initialize(){await this._initialize(),await this.bucketStorageAdapter.init(),await this._loadVersion(),await this.updateSchema(this.options.schema),await this.resolveOfflineSyncStatus(),await this.database.execute("PRAGMA RECURSIVE_TRIGGERS=TRUE"),this.ready=!0,this.iterateListeners((l=>l.initialized?.()))}async _loadVersion(){try{const{version:l}=await this.database.get("SELECT powersync_rs_version() as version");this.sdkVersion=l}catch(l){throw new Error(`The powersync extension is not loaded correctly. Details: ${l.message}`)}let l;try{l=this.sdkVersion.split(/[.\/]/).slice(0,3).map((l=>parseInt(l)))}catch(l){throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}. Details: ${l.message}`)}if(0!=l[0]||l[1]<4||4==l[1]&&l[2]<5)throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}`)}async resolveOfflineSyncStatus(){const l=await this.database.get("SELECT powersync_offline_sync_status() as r"),n=JSON.parse(l.r),u=new v({...this.currentStatus.toJSON(),...mu(n)});u.isEqual(this.currentStatus)||(this.currentStatus=u,this.iterateListeners((l=>l.statusChanged?.(this.currentStatus))))}async updateSchema(l){if(this.syncStreamImplementation)throw new Error("Cannot update schema while connected");try{l.validate()}catch(l){this.logger.warn("Schema validation failed. Unexpected behaviour could occur",l)}this._schema=l,await this.database.execute("SELECT powersync_replace_schema(?)",[JSON.stringify(this.schema.toJSON())]),await this.database.refreshSchema(),this.iterateListeners((async n=>n.schemaChanged?.(l)))}async init(){return this.waitForReady()}resolvedConnectionOptions(l){return{...l,retryDelayMs:l?.retryDelayMs??this.options.retryDelayMs??this.options.retryDelay??Au,crudUploadThrottleMs:l?.crudUploadThrottleMs??this.options.crudUploadThrottleMs??Ou}}dispose(){return super.dispose()}runExclusive(l){return this.runExclusiveMutex.runExclusive(l)}async connect(l,n){const u=n??{};return u.serializedSchema=this.schema.toJSON(),this.connectionManager.connect(l,u)}async disconnect(){return this.connectionManager.disconnect()}async disconnectAndClear(l=Nu){await this.disconnect(),await this.waitForReady();const{clearLocal:n}=l;await this.database.writeTransaction((async l=>{await l.execute("SELECT powersync_clear(?)",[n?1:0])})),this.currentStatus=new v({}),this.iterateListeners((l=>l.statusChanged?.(this.currentStatus)))}syncStream(l,n){return this.connectionManager.stream(this.subscriptions,l,n??null)}async close(l=ku){if(await this.waitForReady(),this.closed)return;await this.iterateAsyncListeners((async l=>l.closing?.()));const{disconnect:n}=l;n&&await this.disconnect(),await this.connectionManager.close(),await this.database.close(),this.closed=!0,await this.iterateAsyncListeners((async l=>l.closed?.()))}async getUploadQueueStats(l){return this.readTransaction((async n=>{if(l){const l=(await n.execute(`SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ${exports.PSInternalTable.CRUD}`)).rows.item(0);return new T(l?.count??0,l?.size??0)}{const l=(await n.execute(`SELECT count(*) as count FROM ${exports.PSInternalTable.CRUD}`)).rows.item(0);return new T(l?.count??0)}}))}async getCrudBatch(l=100){const n=(await this.getAll(`SELECT id, tx_id, data FROM ${exports.PSInternalTable.CRUD} ORDER BY id ASC LIMIT ?`,[l+1])).map((l=>J.fromRow(l)))??[];let u=!1;if(n.length>l&&(n.pop(),u=!0),0==n.length)return null;const e=n[n.length-1];return new G(n,u,(async l=>this.handleCrudCheckpoint(e.clientId,l)))}async getNextCrudTransaction(){const l=this.getCrudTransactions()[O]();return(await l.next()).value}getCrudTransactions(){return{[O]:()=>{let l=-1;return{next:async()=>{const n=await this.database.getAll("\nWITH RECURSIVE crud_entries AS (\n SELECT id, tx_id, data FROM ps_crud WHERE id = (SELECT min(id) FROM ps_crud WHERE id > ?)\n UNION ALL\n SELECT ps_crud.id, ps_crud.tx_id, ps_crud.data FROM ps_crud\n INNER JOIN crud_entries ON crud_entries.id + 1 = rowid\n WHERE crud_entries.tx_id = ps_crud.tx_id\n)\nSELECT * FROM crud_entries;\n ",[l]);if(0==n.length)return{done:!0,value:null};const u=n.map((l=>J.fromRow(l))),e=u[u.length-1],t=e.transactionId;return l=e.clientId,{done:!1,value:new X(u,(async l=>this.handleCrudCheckpoint(e.clientId,l)),t)}}}}}}async getClientId(){return this.bucketStorageAdapter.getClientId()}async handleCrudCheckpoint(l,n){return this.writeTransaction((async u=>{if(await u.execute(`DELETE FROM ${exports.PSInternalTable.CRUD} WHERE id <= ?`,[l]),n){const l=await u.execute(`SELECT 1 FROM ${exports.PSInternalTable.CRUD} LIMIT 1`);l.rows?.length||await u.execute(`UPDATE ${exports.PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`,[n])}else await u.execute(`UPDATE ${exports.PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`,[this.bucketStorageAdapter.getMaxOpId()])}))}async execute(l,n){return this.writeLock((u=>u.execute(l,n)))}async executeRaw(l,n){return await this.waitForReady(),this.database.executeRaw(l,n)}async executeBatch(l,n){return await this.waitForReady(),this.database.executeBatch(l,n)}async getAll(l,n){return await this.waitForReady(),this.database.getAll(l,n)}async getOptional(l,n){return await this.waitForReady(),this.database.getOptional(l,n)}async get(l,n){return await this.waitForReady(),this.database.get(l,n)}async readLock(l){return await this.waitForReady(),this.database.readLock(l)}async writeLock(l){return await this.waitForReady(),this.database.writeLock(l)}async readTransaction(l,n=12e4){return await this.waitForReady(),this.database.readTransaction((async n=>{const u=await l({...n});return await n.rollback(),u}),{timeoutMs:n})}async writeTransaction(l,n=12e4){return await this.waitForReady(),this.database.writeTransaction((async n=>{const u=await l(n);return await n.commit(),u}),{timeoutMs:n})}watch(l,n,u,e){if(u&&"object"==typeof u&&"onResult"in u){const t=u,r=e;return this.watchWithCallback(l,n,t,r)}const t=u;return this.watchWithAsyncGenerator(l,n,t)}query(l){const{sql:n,parameters:u=[],mapper:e}=l,t={compile:()=>({sql:n,parameters:u}),execute:async({sql:l,parameters:n})=>{const u=await this.getAll(l,n);return e?u.map(e):u}};return this.customQuery(t)}customQuery(l){return new q({db:this,query:l})}watchWithCallback(l,n,u,e){const{onResult:t,onError:r=l=>this.logger.error(l)}=u??{};if(!t)throw new Error("onResult is required");const{comparator:s}=e??{},i=new B({db:this,comparator:s,placeholderData:null,watchOptions:{query:{compile:()=>({sql:l,parameters:n??[]}),execute:()=>this.executeReadOnly(l,n)},reportFetching:!1,throttleMs:e?.throttleMs??k,triggerOnTables:e?.tables}}),o=i.registerListener({onData:l=>{l&&t(l)},onError:l=>{r(l)}});e?.signal?.addEventListener("abort",(()=>{o(),i.close()}))}watchWithAsyncGenerator(l,n,u){return new d((e=>{const t={onResult:l=>{e.push(l)},onError:l=>{e.fail(l)}};this.watchWithCallback(l,n,t,u),u?.signal?.addEventListener("abort",(()=>{e.stop()}))}))}async resolveTables(l,n,u){const e=u?.tables?[...u.tables]:[];if(!u?.tables){const u=(await this.getAll(`EXPLAIN ${l}`,n)).filter((l=>"OpenRead"==l.opcode&&0==l.p3&&"number"==typeof l.p2)).map((l=>l.p2)),t=await this.getAll("SELECT DISTINCT tbl_name FROM sqlite_master WHERE rootpage IN (SELECT json_each.value FROM json_each(?))",[JSON.stringify(u)]);for(const l of t)e.push(l.tbl_name.replace(xu,""))}return e}onChange(l,n){if(l&&"object"==typeof l&&"onChange"in l){const u=l,e=n;return this.onChangeWithCallback(u,e)}const u=l;return this.onChangeWithAsyncGenerator(u)}onChangeWithCallback(l,n){const{onChange:u,onError:e=l=>this.logger.error(l)}=l??{};if(!u)throw new Error("onChange is required");const t=n??{},r=new Set((t?.tables??[]).flatMap((l=>[l,`ps_data__${l}`,`ps_data_local__${l}`]))),s=new Set,i=t.throttleMs??k,o=new _((async l=>{await u(l)})),a=function(l,n){let u=null;const e=()=>{l(),u=null};return function(){null==u&&(u=setTimeout(e,n))}}((()=>this.handleTableChanges(s,r,(l=>{t?.signal?.aborted||o.schedule({changedTables:l})}))),i);n?.triggerImmediate&&o.schedule({changedTables:[]});const c=this.database.registerListener({tablesUpdated:async l=>{try{this.processTableUpdates(l,s),a()}catch(l){e?.(l)}}});return t.signal?.addEventListener("abort",(()=>{o.dispose(),c()})),()=>c()}onChangeWithAsyncGenerator(l){const n=l??{};return new d((u=>{const e=this.onChangeWithCallback({onChange:l=>{u.push(l)},onError:l=>{u.fail(l)}},l);return n.signal?.addEventListener("abort",(()=>{u.stop()})),()=>e()}))}handleTableChanges(l,n,u){if(l.size>0){const e=Array.from(l.values()).filter((l=>n.has(l)));e.length&&u(e)}l.clear()}processTableUpdates(l,n){const u=g(l)?l.tables:[l.table];for(const l of u)n.add(l)}async executeReadOnly(l,n){return await this.waitForReady(),this.database.readLock((u=>u.execute(l,n)))}},exports.AbstractPowerSyncDatabaseOpenFactory=class{options;constructor(l){this.options=l,l.logger=l.logger??y.get(`PowerSync ${this.options.dbFilename}`)}get schema(){return this.options.schema}generateOptions(){return{database:this.openDB(),...this.options}}getInstance(){const l=this.generateOptions();return this.generateInstance(l)}},exports.AbstractQueryProcessor=D,exports.AbstractRemote=class{connector;logger;credentials=null;options;constructor(l,n=cu,u){this.connector=l,this.logger=n,this.options={...pu,...u??{}}}get fetch(){const{fetchImplementation:l}=this.options;return l instanceof du?l.getFetch():l}async getCredentials(){return this.credentials?this.credentials:this.prefetchCredentials()}async prefetchCredentials(){return this.credentials=await this.fetchCredentials(),this.credentials}async fetchCredentials(){const l=await this.connector.fetchCredentials();if(l?.endpoint.match(ou))throw new Error(`A trailing forward slash "/" was found in the fetchCredentials endpoint: "${l.endpoint}". Remove the trailing forward slash "/" to fix this error.`);return l}invalidateCredentials(){this.credentials=null,this.connector.invalidateCredentials?.()}getUserAgent(){return`powersync-js/${au}`}async buildRequest(l){const n=await this.getCredentials();if(null!=n&&(null==n.endpoint||""==n.endpoint))throw new Error("PowerSync endpoint not configured");if(null==n?.token||""==n?.token){const l=new Error("Not signed in");throw l.status=401,l}const u=this.getUserAgent();return{url:n.endpoint+l,headers:{"content-type":"application/json",Authorization:`Token ${n.token}`,"x-user-agent":u}}}async post(l,n,u={}){const e=await this.buildRequest(l),t=await this.fetch(e.url,{method:"POST",headers:{...u,...e.headers},body:JSON.stringify(n)});if(401===t.status&&this.invalidateCredentials(),!t.ok)throw new Error(`Received ${t.status} - ${t.statusText} when posting to ${l}: ${await t.text()}}`);return t.json()}async get(l,n){const u=await this.buildRequest(l),e=await this.fetch(u.url,{method:"GET",headers:{...n,...u.headers}});if(401===e.status&&this.invalidateCredentials(),!e.ok)throw new Error(`Received ${e.status} - ${e.statusText} when getting from ${l}: ${await e.text()}}`);return e.json()}createSocket(l){return new WebSocket(l)}async socketStreamRaw(l,n,u){const{path:e,fetchStrategy:t=exports.FetchStrategy.Buffered}=l,r=null==u?"application/json":"application/bson";function s(l){let n;return n=null!=u?u.serialize(l):JSON.stringify(l),sl.Buffer.from(n)}const i=t==exports.FetchStrategy.Buffered?10:1,o=await this.buildRequest(e),a=this.getUserAgent(),c=new lu({logger:this.logger,pressure:{lowWaterMark:5},mapLine:n});if(l.abortSignal?.aborted)throw new Y("Connection request aborted");let h;l.abortSignal?.addEventListener("abort",(()=>{c.close()}),{once:!0});const d=()=>{clearTimeout(h),h=setTimeout((()=>{this.logger.error("No data received on WebSocket in 30000ms, closing connection."),c.close()}),3e4)};d();let p=()=>{};const f=this.options.socketUrlTransformer(o.url),m=new Yn.RSocketConnector({transport:new iu({url:f,wsCreator:l=>{const n=this.createSocket(l);return p=c.registerListener({closed:()=>{n.close()}}),n.addEventListener("message",(l=>{d()})),n}}),setup:{keepAlive:2e4,lifetime:9e4,dataMimeType:r,metadataMimeType:r,payload:{data:null,metadata:s({token:o.headers.Authorization,user_agent:a})}}});let y;try{y=await m.connect(),p()}catch(l){throw this.logger.error("Failed to connect WebSocket",l),clearTimeout(h),c.closed||await c.close(),l}d();let g=!1;y.onClose((()=>g=!0));let E=i;const w=c.registerListener({closed:()=>{clearTimeout(h),g||(g=!0,y.close()),w()}}),b=await new Promise(((n,u)=>{let t=!1;const r=y.requestStream({data:s(l.data),metadata:s({path:e})},i,{onError:l=>{l.message.includes("PSYNC_")?l.message.includes("PSYNC_S21")&&this.invalidateCredentials():"Closed. "!==l.message&&this.invalidateCredentials(),"Closed. "!==l.message&&this.logger.error(l),c.close(),t||u(l)},onNext:l=>{t||(t=!0,n(r));const{data:u}=l;E--,u&&c.enqueueData(u)},onComplete:()=>{c.close()},onExtension:()=>{}})})),v=c.registerListener({lowWater:async()=>{i-E>0&&(b.request(i-E),E=i)},closed:()=>{v()}});return c}async postStreamRaw(l,n){const{data:u,path:e,headers:t,abortSignal:r}=l,s=await this.buildRequest(e);if(r?.aborted)throw new Y("Abort request received before making postStreamRaw request");const i=new AbortController;let o=!1;r?.addEventListener("abort",(()=>{o||i.abort(r.reason??new Y("Cancelling network request before it resolves. Abort signal has been received."))}));const a=await this.fetch(s.url,{method:"POST",headers:{...t,...s.headers},body:JSON.stringify(u),signal:i.signal,cache:"no-store",...this.options.fetchOptions??{},...l.fetchOptions}).catch((l=>{if("AbortError"==l.name)throw new Y(`Pending fetch request to ${s.url} has been aborted.`);throw l}));if(!a)throw new Error("Fetch request was aborted");if(o=!0,!a.ok||!a.body){const l=await a.text();this.logger.error(`Could not POST streaming to ${e} - ${a.status} - ${a.statusText}: ${l}`);const n=new Error(`HTTP ${a.statusText}: ${l}`);throw n.status=a.status,n}const c=a.body.getReader(),h=async()=>{try{await c.cancel()}catch(l){}c.releaseLock()};r?.addEventListener("abort",(()=>{h()}));const d=new rl.TextDecoder;let p="";const f=new lu({logger:this.logger,mapLine:n}),m=f.registerListener({lowWater:async()=>{try{let u=!1;for(;!u;){const{done:e,value:t}=await c.read();if(e){const l=p.trim();return 0!=l.length&&f.enqueueData(l),f.close(),void await h()}const r=d.decode(t,{stream:!0});p+=r;const s=p.split("\n");for(var l=0;l<s.length-1;l++){var n=s[l].trim();n.length>0&&(f.enqueueData(n),u=!0)}p=s[s.length-1]}}catch(l){throw f.close(),l}},closed:()=>{h(),m?.()}});return f}},exports.AbstractStreamingSyncImplementation=class extends R{_lastSyncedAt;options;abortController;uploadAbortController;crudUpdateListener;streamingSyncPromise;logger;activeStreams;isUploadingCrud=!1;notifyCompletedUploads;handleActiveStreamsChange;syncStatus;triggerCrudUpload;constructor(l){super(),this.options=l,this.activeStreams=l.subscriptions,this.logger=l.logger??y.get("PowerSyncStream"),this.syncStatus=new v({connected:!1,connecting:!1,lastSyncedAt:void 0,dataFlow:{uploading:!1,downloading:!1}}),this.abortController=null,this.triggerCrudUpload=function(l,n){let u=null,e=0;const t=()=>{l(),e=Date.now(),u=null};return function(){const l=Date.now(),r=n-(l-e);r<=0?t():u||(u=setTimeout(t,r))}}((()=>{this.syncStatus.connected&&!this.isUploadingCrud&&(this.isUploadingCrud=!0,this._uploadAllCrud().finally((()=>{this.notifyCompletedUploads?.(),this.isUploadingCrud=!1})))}),this.options.crudUploadThrottleMs)}async waitForReady(){}waitForStatus(l){return this.waitUntilStatusMatches((n=>{const u=(l,n)=>Object.entries(l).every((([l,e])=>{const t=n[l];return"object"==typeof e&&"object"==typeof t?u(e,t):e==t}));return u(l,n)}))}waitUntilStatusMatches(l){return new Promise((n=>{if(l(this.syncStatus))return void n();const u=this.registerListener({statusChanged:e=>{l(e)&&(n(),u?.())}})}))}get lastSyncedAt(){const l=this.syncStatus.lastSyncedAt;return l&&new Date(l)}get isConnected(){return this.syncStatus.connected}async dispose(){super.dispose(),this.crudUpdateListener?.(),this.crudUpdateListener=void 0,this.uploadAbortController?.abort()}async hasCompletedSync(){return this.options.adapter.hasCompletedSync()}async getWriteCheckpoint(){let l=`/write-checkpoint2.json?client_id=${await this.options.adapter.getClientId()}`;const n=(await this.options.remote.get(l)).data.write_checkpoint;return this.logger.debug(`Created write checkpoint: ${n}`),n}async _uploadAllCrud(){return this.obtainLock({type:exports.LockType.CRUD,callback:async()=>{let l;const n=new AbortController;for(this.uploadAbortController=n,this.abortController?.signal.addEventListener("abort",(()=>{n.abort()}),{once:!0});!n.signal.aborted;)try{const n=await this.options.adapter.nextCrudItem();if(!n){0==await this.options.adapter.updateLocalTarget((()=>this.getWriteCheckpoint()))&&null!=l&&this.logger.debug("Upload complete, no write checkpoint needed.");break}if(this.updateSyncStatus({dataFlow:{uploading:!0}}),n.clientId==l?.clientId)throw this.logger.warn("Potentially previously uploaded CRUD entries are still present in the upload queue.\nMake sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method.\nThe next upload iteration will be delayed."),new Error("Delaying due to previously encountered CRUD item.");l=n,await this.options.uploadCrud(),this.updateSyncStatus({dataFlow:{uploadError:void 0}})}catch(u){if(l=void 0,this.updateSyncStatus({dataFlow:{uploading:!1,uploadError:u}}),await this.delayRetry(n.signal),!this.isConnected)break;this.logger.debug(`Caught exception when uploading. Upload will retry after a delay. Exception: ${u.message}`)}finally{this.updateSyncStatus({dataFlow:{uploading:!1}})}this.uploadAbortController=null}})}async connect(l){this.abortController&&await this.disconnect();const n=new AbortController;return this.abortController=n,this.streamingSyncPromise=this.streamingSync(this.abortController.signal,l),new Promise((l=>{const n=this.registerListener({statusChanged:u=>{if(null!=u.dataFlowStatus.downloadError)this.logger.warn("Initial connect attempt did not successfully connect to server");else if(u.connecting)return;n(),l()}})}))}async disconnect(){if(this.abortController){this.abortController.signal.aborted||this.abortController.abort(new Y("Disconnect has been requested"));try{await this.streamingSyncPromise}catch(l){this.logger.warn(l)}this.streamingSyncPromise=void 0,this.abortController=null,this.updateSyncStatus({connected:!1,connecting:!1})}}async streamingSync(l,n){l||(this.abortController=new AbortController,l=this.abortController.signal),this.crudUpdateListener=this.options.adapter.registerListener({crudUpdate:()=>this.triggerCrudUpload()});let u=new AbortController;for(l.addEventListener("abort",(()=>{u.abort(l?.reason??new Y("Received command to disconnect from upstream")),this.crudUpdateListener?.(),this.crudUpdateListener=void 0,this.updateSyncStatus({connected:!1,connecting:!1,dataFlow:{downloading:!1,downloadProgress:null}})}));;){this.updateSyncStatus({connecting:!0});let e=!0,t=null;try{if(l?.aborted)break;t=await this.streamingSyncIteration(u.signal,n)}catch(l){l instanceof Y?(this.logger.warn(l),e=!1):this.logger.error(l),this.updateSyncStatus({dataFlow:{downloadError:l}})}finally{this.notifyCompletedUploads=void 0,l.aborted||(u.abort(new Y("Closing sync stream network requests before retry.")),u=new AbortController),1!=t?.immediateRestart&&(this.updateSyncStatus({connected:!1,connecting:!0}),e&&await this.delayRetry(u.signal))}}this.updateSyncStatus({connected:!1,connecting:!1})}async collectLocalBucketState(){const l=await this.options.adapter.getBucketStates(),n=l.map((l=>({name:l.bucket,after:l.op_id}))),u=new Map;for(const n of l)u.set(n.bucket,null);return[n,u]}async requireKeyFormat(l){const n=await this.options.adapter.hasMigratedSubkeys();return l&&!n?(await this.options.adapter.migrateToFixedSubkeys(),!0):n}streamingSyncIteration(l,n){return this.obtainLock({type:exports.LockType.SYNC,signal:l,callback:async()=>{const u={...Fu,...n??{}},e=u.clientImplementation;return this.updateSyncStatus({clientImplementation:e}),e==exports.SyncClientImplementation.JAVASCRIPT?(await this.legacyStreamingSyncIteration(l,u),null):(await this.requireKeyFormat(!0),await this.rustSyncIteration(l,u))}})}async legacyStreamingSyncIteration(l,n){const u=n.serializedSchema?.raw_tables;null!=u&&u.length&&this.logger.warn("Raw tables require the Rust-based sync client. The JS client will ignore them."),this.logger.debug("Streaming sync iteration started"),this.options.adapter.startSession();let[e,t]=await this.collectLocalBucketState(),r=null,s=null;const i=await this.options.adapter.getClientId(),o=await this.requireKeyFormat(!1);this.logger.debug("Requesting stream from server");const a={path:"/sync/stream",abortSignal:l,data:{buckets:e,include_checksum:!0,raw_data:!0,parameters:n.params,client_id:i}};let c;if(n?.connectionMethod==exports.SyncStreamConnectionMethod.HTTP)c=await this.options.remote.postStreamRaw(a,(l=>"string"==typeof l?JSON.parse(l):l));else{const l=await this.options.remote.getBSON();c=await this.options.remote.socketStreamRaw({...a,fetchStrategy:n.fetchStrategy},(n=>n instanceof Uint8Array?l.deserialize(n):n),l)}for(this.logger.debug("Stream established. Processing events"),this.notifyCompletedUploads=()=>{c.closed||c.enqueueData({crud_upload_completed:null})};!c.closed;){const l=await c.read();if(!l)return;if("crud_upload_completed"in l){if(null!=s){const{applied:l,endIteration:n}=await this.applyCheckpoint(s);if(l)s=null;else if(n)break}}else if(this.syncStatus.connected||(Promise.resolve().then((()=>this.triggerCrudUpload())),this.updateSyncStatus({connected:!0})),Eu(l)){r=l.checkpoint,s=null;const n=new Set(t.keys()),u=new Map;for(const e of l.checkpoint.buckets)u.set(e.bucket,{name:e.bucket,priority:e.priority??3}),n.delete(e.bucket);n.size>0&&this.logger.debug("Removing buckets",[...n]),t=u,await this.options.adapter.removeBuckets([...n]),await this.options.adapter.setTargetCheckpoint(r),await this.updateSyncStatusForStartingCheckpoint(r)}else if(wu(l)){const l=await this.applyCheckpoint(r);if(l.endIteration)return;s=l.applied?null:r}else if(bu(l)){const n=l.partial_checkpoint_complete.priority;this.logger.debug("Partial checkpoint complete",n);const u=await this.options.adapter.syncLocalDatabase(r,n);if(!u.checkpointValid)return void await new Promise((l=>setTimeout(l,50)));if(u.ready){this.logger.debug("partial checkpoint validation succeeded");const l=this.syncStatus.priorityStatusEntries.filter((l=>l.priority<=n));l.push({priority:n,lastSyncedAt:new Date,hasSynced:!0}),this.updateSyncStatus({connected:!0,priorityStatusEntries:l})}else;}else if(vu(l)){if(null==r)throw new Error("Checkpoint diff without previous checkpoint");s=null;const n=l.checkpoint_diff,u=new Map;for(const l of r.buckets)u.set(l.bucket,l);for(const l of n.updated_buckets)u.set(l.bucket,l);for(const l of n.removed_buckets)u.delete(l);r={last_op_id:n.last_op_id,buckets:[...u.values()],write_checkpoint:n.write_checkpoint},await this.updateSyncStatusForStartingCheckpoint(r),t=new Map,u.forEach(((l,n)=>t.set(n,{name:l.bucket,priority:l.priority??3})));const e=n.removed_buckets;e.length>0&&this.logger.debug("Remove buckets",e),await this.options.adapter.removeBuckets(e),await this.options.adapter.setTargetCheckpoint(r)}else if(yu(l)){const{data:n}=l,u=this.syncStatus.dataFlowStatus.downloadProgress;let e=null;if(u){e={...u};const l=e[n.bucket];l&&(e[n.bucket]={...l,since_last:l.since_last+n.data.length})}this.updateSyncStatus({dataFlow:{downloading:!0,downloadProgress:e}}),await this.options.adapter.saveSyncData({buckets:[ll.fromRow(n)]},o)}else if(gu(l)){const n=l.token_expires_in;if(0==n)return this.logger.debug("Token expiring; reconnect"),void await this.delayRetry();if(n<30)return this.logger.debug("Token will expire soon; reconnect"),void this.options.remote.invalidateCredentials();this.triggerCrudUpload()}else this.logger.debug("Received unknown sync line",l)}this.logger.debug("Stream input empty")}async rustSyncIteration(l,n){const u=this,e=this.options.adapter,t=this.options.remote;let r=null,s=!1,i=!1;if(l.aborted)throw new Y("Connection request has been aborted");const o=new AbortController;l.addEventListener("abort",(()=>o.abort()));let a=null;async function c(l,n){const t=await e.control(l,n??null);u.logger.trace("powersync_control",l,null==n||"string"==typeof n?n:"<bytes>",t),await async function(l){for(const n of l)await h(n)}(JSON.parse(t))}async function h(l){if("LogLine"in l)switch(l.LogLine.severity){case"DEBUG":u.logger.debug(l.LogLine.line);break;case"INFO":u.logger.info(l.LogLine.line);break;case"WARNING":u.logger.warn(l.LogLine.line)}else if("UpdateSyncStatus"in l)u.updateSyncStatus(mu(l.UpdateSyncStatus.status));else if("EstablishSyncStream"in l){if(null!=r)throw"Unexpected request to establish sync stream, already connected";r=async function(l){const e={path:"/sync/stream",abortSignal:o.signal,data:l.request};a=n.connectionMethod==exports.SyncStreamConnectionMethod.HTTP?await t.postStreamRaw(e,(l=>"string"==typeof l?{command:exports.PowerSyncControlCommand.PROCESS_TEXT_LINE,payload:l}:l)):await t.socketStreamRaw({...e,fetchStrategy:n.fetchStrategy},(l=>l instanceof Uint8Array?{command:exports.PowerSyncControlCommand.PROCESS_BSON_LINE,payload:l}:l)),u.updateSyncStatus({connected:!0});try{for(;!a.closed;){const l=await a.read();if(null==l)return;await c(l.command,l.payload),s||(u.triggerCrudUpload(),s=!0)}}finally{const l=a;a=null,await l.close()}}(l.EstablishSyncStream)}else"FetchCredentials"in l?l.FetchCredentials.did_expire?t.invalidateCredentials():(t.invalidateCredentials(),t.fetchCredentials().then((l=>{a?.enqueueData({command:exports.PowerSyncControlCommand.NOTIFY_TOKEN_REFRESHED})}),(l=>{u.logger.warn("Could not prefetch credentials",l)}))):"CloseSyncStream"in l?(o.abort(),i=l.CloseSyncStream.hide_disconnect):"FlushFileSystem"in l||"DidCompleteSync"in l&&u.updateSyncStatus({dataFlow:{downloadError:void 0}})}try{const l={parameters:n.params,active_streams:this.activeStreams,include_defaults:n.includeDefaultStreams};n.serializedSchema&&(l.schema=n.serializedSchema),await c(exports.PowerSyncControlCommand.START,JSON.stringify(l)),this.notifyCompletedUploads=()=>{a&&!a?.closed&&a.enqueueData({command:exports.PowerSyncControlCommand.NOTIFY_CRUD_UPLOAD_COMPLETED})},this.handleActiveStreamsChange=()=>{a&&!a?.closed&&a.enqueueData({command:exports.PowerSyncControlCommand.UPDATE_SUBSCRIPTIONS,payload:JSON.stringify(this.activeStreams)})},await r}finally{this.notifyCompletedUploads=this.handleActiveStreamsChange=void 0,await async function(){await c(exports.PowerSyncControlCommand.STOP)}()}return{immediateRestart:i}}async updateSyncStatusForStartingCheckpoint(l){const n=await this.options.adapter.getBucketOperationProgress(),u={};let e=!1;for(const t of l.buckets){const l=n[t.bucket],r=l?.atLast??0,s=l?.sinceLast??0;u[t.bucket]={priority:t.priority??3,at_last:r,since_last:s,target_count:t.count??0},null!=t.count&&t.count<r+s&&(e=!0)}if(e)for(const l in u){const n=u[l];n.at_last=0,n.since_last=0}this.updateSyncStatus({dataFlow:{downloading:!0,downloadProgress:u}})}async applyCheckpoint(l){let n=await this.options.adapter.syncLocalDatabase(l);return n.checkpointValid?n.ready?(this.logger.debug(`Applied checkpoint ${l.last_op_id}`,l),this.updateSyncStatus({connected:!0,lastSyncedAt:new Date,dataFlow:{downloading:!1,downloadProgress:null,downloadError:void 0}}),{applied:!0,endIteration:!1}):(this.logger.debug(`Could not apply checkpoint ${l.last_op_id} due to local data. We will retry applying the checkpoint after that upload is completed.`),{applied:!1,endIteration:!1}):(this.logger.debug(`Checksum mismatch in checkpoint ${l.last_op_id}, will reconnect`),await new Promise((l=>setTimeout(l,50))),{applied:!1,endIteration:!0})}updateSyncStatus(l){const n=new v({connected:l.connected??this.syncStatus.connected,connecting:!l.connected&&(l.connecting??this.syncStatus.connecting),lastSyncedAt:l.lastSyncedAt??this.syncStatus.lastSyncedAt,dataFlow:{...this.syncStatus.dataFlowStatus,...l.dataFlow},priorityStatusEntries:l.priorityStatusEntries??this.syncStatus.priorityStatusEntries,clientImplementation:l.clientImplementation??this.syncStatus.clientImplementation});this.syncStatus.isEqual(n)||(this.syncStatus=n,this.iterateListeners((l=>l.statusChanged?.(n)))),this.iterateListeners((n=>n.statusUpdated?.(l)))}async delayRetry(l){return new Promise((n=>{if(l?.aborted)return void n();const{retryDelayMs:u}=this.options;let e;const t=()=>{n(),e&&(clearTimeout(e),e=void 0),l?.removeEventListener("abort",t)};l?.addEventListener("abort",t,{once:!0}),e=setTimeout(t,u)}))}updateSubscriptions(l){this.activeStreams=l,this.handleActiveStreamsChange?.()}},exports.ArrayComparator=class{options;constructor(l){this.options=l}checkEquality(l,n){if(0===l.length&&0===n.length)return!0;if(l.length!==n.length)return!1;const{compareBy:u}=this.options;for(let e=0;e<l.length;e++){if(u(l[e])!==u(n[e]))return!1}return!0}},exports.BaseObserver=R,exports.Column=Ju,exports.ConnectionManager=A,exports.ControlledExecutor=_,exports.CrudBatch=G,exports.CrudEntry=J,exports.CrudTransaction=X,exports.DEFAULT_CRUD_BATCH_LIMIT=100,exports.DEFAULT_CRUD_UPLOAD_THROTTLE_MS=Ou,exports.DEFAULT_INDEX_COLUMN_OPTIONS=Xu,exports.DEFAULT_INDEX_OPTIONS=Ku,exports.DEFAULT_LOCK_TIMEOUT_MS=Du,exports.DEFAULT_POWERSYNC_CLOSE_OPTIONS=ku,exports.DEFAULT_POWERSYNC_DB_OPTIONS=Uu,exports.DEFAULT_PRESSURE_LIMITS=Zn,exports.DEFAULT_REMOTE_LOGGER=cu,exports.DEFAULT_REMOTE_OPTIONS=pu,exports.DEFAULT_RETRY_DELAY_MS=Au,exports.DEFAULT_ROW_COMPARATOR=P,exports.DEFAULT_STREAMING_SYNC_OPTIONS=Cu,exports.DEFAULT_STREAM_CONNECTION_OPTIONS=Fu,exports.DEFAULT_SYNC_CLIENT_IMPLEMENTATION=_u,exports.DEFAULT_TABLE_OPTIONS=ne,exports.DEFAULT_WATCH_QUERY_OPTIONS=U,exports.DEFAULT_WATCH_THROTTLE_MS=k,exports.DataStream=lu,exports.DifferentialQueryProcessor=M,exports.EMPTY_DIFFERENTIAL={added:[],all:[],removed:[],updated:[],unchanged:[]},exports.FalsyComparator=L,exports.FetchImplementationProvider=du,exports.GetAllQuery=class{options;constructor(l){this.options=l}compile(){return{sql:this.options.sql,parameters:this.options.parameters??[]}}async execute(l){const{db:n}=l,{sql:u,parameters:e=[]}=this.compile(),t=await n.getAll(u,[...e]);return this.options.mapper?t.map(this.options.mapper):t}},exports.Index=Zu,exports.IndexedColumn=Yu,exports.InvalidSQLCharacters=ue,exports.LogLevel=se,exports.MAX_AMOUNT_OF_COLUMNS=Vu,exports.MAX_OP_ID=Bu,exports.OnChangeQueryProcessor=B,exports.OpType=K,exports.OplogEntry=Z,exports.Schema=class{types;props;tables;rawTables;constructor(l){if(Array.isArray(l)){for(const n of l)if(""===n.name)throw new Error("It appears you are trying to create a new Schema with an array instead of an object. Passing in an object instead of an array into 'new Schema()' may resolve your issue.");this.tables=l}else this.props=l,this.tables=this.convertToClassicTables(this.props);this.rawTables=[]}withRawTables(l){for(const[n,u]of Object.entries(l))this.rawTables.push(new le(n,u))}validate(){for(const l of this.tables)l.validate()}toJSON(){return{tables:this.tables.map((l=>l.toJSON())),raw_tables:this.rawTables}}convertToClassicTables(l){return Object.entries(l).map((([l,n])=>n.copyWithName(l)))}},exports.SqliteBucketStorage=qu,exports.SyncDataBatch=$u,exports.SyncDataBucket=ll,exports.SyncProgress=b,exports.SyncStatus=v,exports.Table=ee,exports.TableV2=class extends ee{},exports.UploadQueueStats=T,exports.column=Gu,exports.compilableQueryWatch=function(l,n,u,e){const{onResult:t,onError:r=l=>{}}=u??{};if(!t)throw new Error("onResult is required");Mu((async u=>{try{const s=n.compile(),i=await l.resolveTables(s.sql,s.parameters,e),o=await n.execute();t(o),l.onChangeWithCallback({onChange:async()=>{try{const l=await n.execute();t(l)}catch(l){r(l)}},onError:r},{...e??{},tables:i,signal:u})}catch(l){r(l)}}),l,e)},exports.createBaseLogger=function(){return y},exports.createLogger=function(l,n={}){const u=y.get(l);return n.logLevel&&u.setLevel(n.logLevel),u},exports.extractTableUpdates=E,exports.isBatchedUpdateNotification=g,exports.isContinueCheckpointRequest=function(l){return Array.isArray(l.buckets)&&"string"==typeof l.checkpoint_token},exports.isDBAdapter=W,exports.isPowerSyncDatabaseOptionsWithSettings=Pu,exports.isSQLOpenFactory=$,exports.isSQLOpenOptions=j,exports.isStreamingKeepalive=gu,exports.isStreamingSyncCheckpoint=Eu,exports.isStreamingSyncCheckpointComplete=wu,exports.isStreamingSyncCheckpointDiff=vu,exports.isStreamingSyncCheckpointPartiallyComplete=bu,exports.isStreamingSyncData=yu,exports.isSyncNewCheckpointRequest=function(l){return"object"==typeof l.request_checkpoint},exports.parseQuery=(l,n)=>{let u;if("string"==typeof l)u=l;else{if(n.length>0)throw new Error("You cannot pass parameters to a compiled query.");const e=l.compile();u=e.sql,n=e.parameters}return{sqlStatement:u,parameters:n}},exports.runOnSchemaChange=Mu,exports.sanitizeSQL=function(l,...n){let u="";return l.forEach(((l,e)=>{if(u+=l,e<n.length){const l=n[e];if("string"==typeof l)u+=te(l);else if(null==l)u+="NULL";else if("object"==typeof l){const n=JSON.stringify(l);u+=te(n)}else u+=l}})),u},exports.sanitizeUUID=function(l){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(l))throw new Error(`${l} is not a valid UUID`);return l};
22
+ !function(l){var n=il,u=ml,e="function"==typeof Symbol&&"function"==typeof Symbol.for?Symbol.for("nodejs.util.inspect.custom"):null;l.Buffer=s,l.SlowBuffer=function(l){+l!=l&&(l=0);return s.alloc(+l)},l.INSPECT_MAX_BYTES=50;var t=2147483647;function r(l){if(l>t)throw new RangeError('The value "'+l+'" is invalid for option "size"');var n=new Uint8Array(l);return Object.setPrototypeOf(n,s.prototype),n}function s(l,n,u){if("number"==typeof l){if("string"==typeof n)throw new TypeError('The "string" argument must be of type string. Received type number');return a(l)}return i(l,n,u)}function i(l,n,u){if("string"==typeof l)return function(l,n){"string"==typeof n&&""!==n||(n="utf8");if(!s.isEncoding(n))throw new TypeError("Unknown encoding: "+n);var u=0|p(l,n),e=r(u),t=e.write(l,n);t!==u&&(e=e.slice(0,t));return e}(l,n);if(ArrayBuffer.isView(l))return function(l){if(B(l,Uint8Array)){var n=new Uint8Array(l);return h(n.buffer,n.byteOffset,n.byteLength)}return c(l)}(l);if(null==l)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l);if(B(l,ArrayBuffer)||l&&B(l.buffer,ArrayBuffer))return h(l,n,u);if("undefined"!=typeof SharedArrayBuffer&&(B(l,SharedArrayBuffer)||l&&B(l.buffer,SharedArrayBuffer)))return h(l,n,u);if("number"==typeof l)throw new TypeError('The "value" argument must not be of type number. Received type number');var e=l.valueOf&&l.valueOf();if(null!=e&&e!==l)return s.from(e,n,u);var t=function(l){if(s.isBuffer(l)){var n=0|d(l.length),u=r(n);return 0===u.length||l.copy(u,0,0,n),u}if(void 0!==l.length)return"number"!=typeof l.length||q(l.length)?r(0):c(l);if("Buffer"===l.type&&Array.isArray(l.data))return c(l.data)}(l);if(t)return t;if("undefined"!=typeof Symbol&&null!=Symbol.toPrimitive&&"function"==typeof l[Symbol.toPrimitive])return s.from(l[Symbol.toPrimitive]("string"),n,u);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof l)}function o(l){if("number"!=typeof l)throw new TypeError('"size" argument must be of type number');if(l<0)throw new RangeError('The value "'+l+'" is invalid for option "size"')}function a(l){return o(l),r(l<0?0:0|d(l))}function c(l){for(var n=l.length<0?0:0|d(l.length),u=r(n),e=0;e<n;e+=1)u[e]=255&l[e];return u}function h(l,n,u){if(n<0||l.byteLength<n)throw new RangeError('"offset" is outside of buffer bounds');if(l.byteLength<n+(u||0))throw new RangeError('"length" is outside of buffer bounds');var e;return e=void 0===n&&void 0===u?new Uint8Array(l):void 0===u?new Uint8Array(l,n):new Uint8Array(l,n,u),Object.setPrototypeOf(e,s.prototype),e}function d(l){if(l>=t)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+t.toString(16)+" bytes");return 0|l}function p(l,n){if(s.isBuffer(l))return l.length;if(ArrayBuffer.isView(l)||B(l,ArrayBuffer))return l.byteLength;if("string"!=typeof l)throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof l);var u=l.length,e=arguments.length>2&&!0===arguments[2];if(!e&&0===u)return 0;for(var t=!1;;)switch(n){case"ascii":case"latin1":case"binary":return u;case"utf8":case"utf-8":return D(l).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*u;case"hex":return u>>>1;case"base64":return P(l).length;default:if(t)return e?-1:D(l).length;n=(""+n).toLowerCase(),t=!0}}function f(l,n,u){var e=!1;if((void 0===n||n<0)&&(n=0),n>this.length)return"";if((void 0===u||u>this.length)&&(u=this.length),u<=0)return"";if((u>>>=0)<=(n>>>=0))return"";for(l||(l="utf8");;)switch(l){case"hex":return C(this,n,u);case"utf8":case"utf-8":return R(this,n,u);case"ascii":return O(this,n,u);case"latin1":case"binary":return A(this,n,u);case"base64":return T(this,n,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,n,u);default:if(e)throw new TypeError("Unknown encoding: "+l);l=(l+"").toLowerCase(),e=!0}}function m(l,n,u){var e=l[n];l[n]=l[u],l[u]=e}function y(l,n,u,e,t){if(0===l.length)return-1;if("string"==typeof u?(e=u,u=0):u>2147483647?u=2147483647:u<-2147483648&&(u=-2147483648),q(u=+u)&&(u=t?0:l.length-1),u<0&&(u=l.length+u),u>=l.length){if(t)return-1;u=l.length-1}else if(u<0){if(!t)return-1;u=0}if("string"==typeof n&&(n=s.from(n,e)),s.isBuffer(n))return 0===n.length?-1:g(l,n,u,e,t);if("number"==typeof n)return n&=255,"function"==typeof Uint8Array.prototype.indexOf?t?Uint8Array.prototype.indexOf.call(l,n,u):Uint8Array.prototype.lastIndexOf.call(l,n,u):g(l,[n],u,e,t);throw new TypeError("val must be string, number or Buffer")}function g(l,n,u,e,t){var r,s=1,i=l.length,o=n.length;if(void 0!==e&&("ucs2"===(e=String(e).toLowerCase())||"ucs-2"===e||"utf16le"===e||"utf-16le"===e)){if(l.length<2||n.length<2)return-1;s=2,i/=2,o/=2,u/=2}function a(l,n){return 1===s?l[n]:l.readUInt16BE(n*s)}if(t){var c=-1;for(r=u;r<i;r++)if(a(l,r)===a(n,-1===c?0:r-c)){if(-1===c&&(c=r),r-c+1===o)return c*s}else-1!==c&&(r-=r-c),c=-1}else for(u+o>i&&(u=i-o),r=u;r>=0;r--){for(var h=!0,d=0;d<o;d++)if(a(l,r+d)!==a(n,d)){h=!1;break}if(h)return r}return-1}function E(l,n,u,e){u=Number(u)||0;var t=l.length-u;e?(e=Number(e))>t&&(e=t):e=t;var r=n.length;e>r/2&&(e=r/2);for(var s=0;s<e;++s){var i=parseInt(n.substr(2*s,2),16);if(q(i))return s;l[u+s]=i}return s}function w(l,n,u,e){return M(D(n,l.length-u),l,u,e)}function b(l,n,u,e){return M(function(l){for(var n=[],u=0;u<l.length;++u)n.push(255&l.charCodeAt(u));return n}(n),l,u,e)}function v(l,n,u,e){return M(P(n),l,u,e)}function S(l,n,u,e){return M(function(l,n){for(var u,e,t,r=[],s=0;s<l.length&&!((n-=2)<0);++s)e=(u=l.charCodeAt(s))>>8,t=u%256,r.push(t),r.push(e);return r}(n,l.length-u),l,u,e)}function T(l,u,e){return 0===u&&e===l.length?n.fromByteArray(l):n.fromByteArray(l.slice(u,e))}function R(l,n,u){u=Math.min(l.length,u);for(var e=[],t=n;t<u;){var r,s,i,o,a=l[t],c=null,h=a>239?4:a>223?3:a>191?2:1;if(t+h<=u)switch(h){case 1:a<128&&(c=a);break;case 2:128==(192&(r=l[t+1]))&&(o=(31&a)<<6|63&r)>127&&(c=o);break;case 3:r=l[t+1],s=l[t+2],128==(192&r)&&128==(192&s)&&(o=(15&a)<<12|(63&r)<<6|63&s)>2047&&(o<55296||o>57343)&&(c=o);break;case 4:r=l[t+1],s=l[t+2],i=l[t+3],128==(192&r)&&128==(192&s)&&128==(192&i)&&(o=(15&a)<<18|(63&r)<<12|(63&s)<<6|63&i)>65535&&o<1114112&&(c=o)}null===c?(c=65533,h=1):c>65535&&(c-=65536,e.push(c>>>10&1023|55296),c=56320|1023&c),e.push(c),t+=h}return function(l){var n=l.length;if(n<=_)return String.fromCharCode.apply(String,l);var u="",e=0;for(;e<n;)u+=String.fromCharCode.apply(String,l.slice(e,e+=_));return u}(e)}l.kMaxLength=t,s.TYPED_ARRAY_SUPPORT=function(){try{var l=new Uint8Array(1),n={foo:function(){return 42}};return Object.setPrototypeOf(n,Uint8Array.prototype),Object.setPrototypeOf(l,n),42===l.foo()}catch(l){return!1}}(),s.TYPED_ARRAY_SUPPORT||"undefined"==typeof console||"function"!=typeof console.error||console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support."),Object.defineProperty(s.prototype,"parent",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.buffer}}),Object.defineProperty(s.prototype,"offset",{enumerable:!0,get:function(){if(s.isBuffer(this))return this.byteOffset}}),s.poolSize=8192,s.from=function(l,n,u){return i(l,n,u)},Object.setPrototypeOf(s.prototype,Uint8Array.prototype),Object.setPrototypeOf(s,Uint8Array),s.alloc=function(l,n,u){return function(l,n,u){return o(l),l<=0?r(l):void 0!==n?"string"==typeof u?r(l).fill(n,u):r(l).fill(n):r(l)}(l,n,u)},s.allocUnsafe=function(l){return a(l)},s.allocUnsafeSlow=function(l){return a(l)},s.isBuffer=function(l){return null!=l&&!0===l._isBuffer&&l!==s.prototype},s.compare=function(l,n){if(B(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),B(n,Uint8Array)&&(n=s.from(n,n.offset,n.byteLength)),!s.isBuffer(l)||!s.isBuffer(n))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(l===n)return 0;for(var u=l.length,e=n.length,t=0,r=Math.min(u,e);t<r;++t)if(l[t]!==n[t]){u=l[t],e=n[t];break}return u<e?-1:e<u?1:0},s.isEncoding=function(l){switch(String(l).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},s.concat=function(l,n){if(!Array.isArray(l))throw new TypeError('"list" argument must be an Array of Buffers');if(0===l.length)return s.alloc(0);var u;if(void 0===n)for(n=0,u=0;u<l.length;++u)n+=l[u].length;var e=s.allocUnsafe(n),t=0;for(u=0;u<l.length;++u){var r=l[u];if(B(r,Uint8Array))t+r.length>e.length?s.from(r).copy(e,t):Uint8Array.prototype.set.call(e,r,t);else{if(!s.isBuffer(r))throw new TypeError('"list" argument must be an Array of Buffers');r.copy(e,t)}t+=r.length}return e},s.byteLength=p,s.prototype._isBuffer=!0,s.prototype.swap16=function(){var l=this.length;if(l%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var n=0;n<l;n+=2)m(this,n,n+1);return this},s.prototype.swap32=function(){var l=this.length;if(l%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var n=0;n<l;n+=4)m(this,n,n+3),m(this,n+1,n+2);return this},s.prototype.swap64=function(){var l=this.length;if(l%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var n=0;n<l;n+=8)m(this,n,n+7),m(this,n+1,n+6),m(this,n+2,n+5),m(this,n+3,n+4);return this},s.prototype.toString=function(){var l=this.length;return 0===l?"":0===arguments.length?R(this,0,l):f.apply(this,arguments)},s.prototype.toLocaleString=s.prototype.toString,s.prototype.equals=function(l){if(!s.isBuffer(l))throw new TypeError("Argument must be a Buffer");return this===l||0===s.compare(this,l)},s.prototype.inspect=function(){var n="",u=l.INSPECT_MAX_BYTES;return n=this.toString("hex",0,u).replace(/(.{2})/g,"$1 ").trim(),this.length>u&&(n+=" ... "),"<Buffer "+n+">"},e&&(s.prototype[e]=s.prototype.inspect),s.prototype.compare=function(l,n,u,e,t){if(B(l,Uint8Array)&&(l=s.from(l,l.offset,l.byteLength)),!s.isBuffer(l))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof l);if(void 0===n&&(n=0),void 0===u&&(u=l?l.length:0),void 0===e&&(e=0),void 0===t&&(t=this.length),n<0||u>l.length||e<0||t>this.length)throw new RangeError("out of range index");if(e>=t&&n>=u)return 0;if(e>=t)return-1;if(n>=u)return 1;if(this===l)return 0;for(var r=(t>>>=0)-(e>>>=0),i=(u>>>=0)-(n>>>=0),o=Math.min(r,i),a=this.slice(e,t),c=l.slice(n,u),h=0;h<o;++h)if(a[h]!==c[h]){r=a[h],i=c[h];break}return r<i?-1:i<r?1:0},s.prototype.includes=function(l,n,u){return-1!==this.indexOf(l,n,u)},s.prototype.indexOf=function(l,n,u){return y(this,l,n,u,!0)},s.prototype.lastIndexOf=function(l,n,u){return y(this,l,n,u,!1)},s.prototype.write=function(l,n,u,e){if(void 0===n)e="utf8",u=this.length,n=0;else if(void 0===u&&"string"==typeof n)e=n,u=this.length,n=0;else{if(!isFinite(n))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");n>>>=0,isFinite(u)?(u>>>=0,void 0===e&&(e="utf8")):(e=u,u=void 0)}var t=this.length-n;if((void 0===u||u>t)&&(u=t),l.length>0&&(u<0||n<0)||n>this.length)throw new RangeError("Attempt to write outside buffer bounds");e||(e="utf8");for(var r=!1;;)switch(e){case"hex":return E(this,l,n,u);case"utf8":case"utf-8":return w(this,l,n,u);case"ascii":case"latin1":case"binary":return b(this,l,n,u);case"base64":return v(this,l,n,u);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return S(this,l,n,u);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(""+e).toLowerCase(),r=!0}},s.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var _=4096;function O(l,n,u){var e="";u=Math.min(l.length,u);for(var t=n;t<u;++t)e+=String.fromCharCode(127&l[t]);return e}function A(l,n,u){var e="";u=Math.min(l.length,u);for(var t=n;t<u;++t)e+=String.fromCharCode(l[t]);return e}function C(l,n,u){var e=l.length;(!n||n<0)&&(n=0),(!u||u<0||u>e)&&(u=e);for(var t="",r=n;r<u;++r)t+=j[l[r]];return t}function F(l,n,u){for(var e=l.slice(n,u),t="",r=0;r<e.length-1;r+=2)t+=String.fromCharCode(e[r]+256*e[r+1]);return t}function I(l,n,u){if(l%1!=0||l<0)throw new RangeError("offset is not uint");if(l+n>u)throw new RangeError("Trying to access beyond buffer length")}function L(l,n,u,e,t,r){if(!s.isBuffer(l))throw new TypeError('"buffer" argument must be a Buffer instance');if(n>t||n<r)throw new RangeError('"value" argument is out of bounds');if(u+e>l.length)throw new RangeError("Index out of range")}function x(l,n,u,e,t,r){if(u+e>l.length)throw new RangeError("Index out of range");if(u<0)throw new RangeError("Index out of range")}function N(l,n,e,t,r){return n=+n,e>>>=0,r||x(l,0,e,4),u.write(l,n,e,t,23,4),e+4}function k(l,n,e,t,r){return n=+n,e>>>=0,r||x(l,0,e,8),u.write(l,n,e,t,52,8),e+8}s.prototype.slice=function(l,n){var u=this.length;(l=~~l)<0?(l+=u)<0&&(l=0):l>u&&(l=u),(n=void 0===n?u:~~n)<0?(n+=u)<0&&(n=0):n>u&&(n=u),n<l&&(n=l);var e=this.subarray(l,n);return Object.setPrototypeOf(e,s.prototype),e},s.prototype.readUintLE=s.prototype.readUIntLE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=this[l],t=1,r=0;++r<n&&(t*=256);)e+=this[l+r]*t;return e},s.prototype.readUintBE=s.prototype.readUIntBE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=this[l+--n],t=1;n>0&&(t*=256);)e+=this[l+--n]*t;return e},s.prototype.readUint8=s.prototype.readUInt8=function(l,n){return l>>>=0,n||I(l,1,this.length),this[l]},s.prototype.readUint16LE=s.prototype.readUInt16LE=function(l,n){return l>>>=0,n||I(l,2,this.length),this[l]|this[l+1]<<8},s.prototype.readUint16BE=s.prototype.readUInt16BE=function(l,n){return l>>>=0,n||I(l,2,this.length),this[l]<<8|this[l+1]},s.prototype.readUint32LE=s.prototype.readUInt32LE=function(l,n){return l>>>=0,n||I(l,4,this.length),(this[l]|this[l+1]<<8|this[l+2]<<16)+16777216*this[l+3]},s.prototype.readUint32BE=s.prototype.readUInt32BE=function(l,n){return l>>>=0,n||I(l,4,this.length),16777216*this[l]+(this[l+1]<<16|this[l+2]<<8|this[l+3])},s.prototype.readIntLE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=this[l],t=1,r=0;++r<n&&(t*=256);)e+=this[l+r]*t;return e>=(t*=128)&&(e-=Math.pow(2,8*n)),e},s.prototype.readIntBE=function(l,n,u){l>>>=0,n>>>=0,u||I(l,n,this.length);for(var e=n,t=1,r=this[l+--e];e>0&&(t*=256);)r+=this[l+--e]*t;return r>=(t*=128)&&(r-=Math.pow(2,8*n)),r},s.prototype.readInt8=function(l,n){return l>>>=0,n||I(l,1,this.length),128&this[l]?-1*(255-this[l]+1):this[l]},s.prototype.readInt16LE=function(l,n){l>>>=0,n||I(l,2,this.length);var u=this[l]|this[l+1]<<8;return 32768&u?4294901760|u:u},s.prototype.readInt16BE=function(l,n){l>>>=0,n||I(l,2,this.length);var u=this[l+1]|this[l]<<8;return 32768&u?4294901760|u:u},s.prototype.readInt32LE=function(l,n){return l>>>=0,n||I(l,4,this.length),this[l]|this[l+1]<<8|this[l+2]<<16|this[l+3]<<24},s.prototype.readInt32BE=function(l,n){return l>>>=0,n||I(l,4,this.length),this[l]<<24|this[l+1]<<16|this[l+2]<<8|this[l+3]},s.prototype.readFloatLE=function(l,n){return l>>>=0,n||I(l,4,this.length),u.read(this,l,!0,23,4)},s.prototype.readFloatBE=function(l,n){return l>>>=0,n||I(l,4,this.length),u.read(this,l,!1,23,4)},s.prototype.readDoubleLE=function(l,n){return l>>>=0,n||I(l,8,this.length),u.read(this,l,!0,52,8)},s.prototype.readDoubleBE=function(l,n){return l>>>=0,n||I(l,8,this.length),u.read(this,l,!1,52,8)},s.prototype.writeUintLE=s.prototype.writeUIntLE=function(l,n,u,e){(l=+l,n>>>=0,u>>>=0,e)||L(this,l,n,u,Math.pow(2,8*u)-1,0);var t=1,r=0;for(this[n]=255&l;++r<u&&(t*=256);)this[n+r]=l/t&255;return n+u},s.prototype.writeUintBE=s.prototype.writeUIntBE=function(l,n,u,e){(l=+l,n>>>=0,u>>>=0,e)||L(this,l,n,u,Math.pow(2,8*u)-1,0);var t=u-1,r=1;for(this[n+t]=255&l;--t>=0&&(r*=256);)this[n+t]=l/r&255;return n+u},s.prototype.writeUint8=s.prototype.writeUInt8=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,1,255,0),this[n]=255&l,n+1},s.prototype.writeUint16LE=s.prototype.writeUInt16LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,65535,0),this[n]=255&l,this[n+1]=l>>>8,n+2},s.prototype.writeUint16BE=s.prototype.writeUInt16BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,65535,0),this[n]=l>>>8,this[n+1]=255&l,n+2},s.prototype.writeUint32LE=s.prototype.writeUInt32LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,4294967295,0),this[n+3]=l>>>24,this[n+2]=l>>>16,this[n+1]=l>>>8,this[n]=255&l,n+4},s.prototype.writeUint32BE=s.prototype.writeUInt32BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,4294967295,0),this[n]=l>>>24,this[n+1]=l>>>16,this[n+2]=l>>>8,this[n+3]=255&l,n+4},s.prototype.writeIntLE=function(l,n,u,e){if(l=+l,n>>>=0,!e){var t=Math.pow(2,8*u-1);L(this,l,n,u,t-1,-t)}var r=0,s=1,i=0;for(this[n]=255&l;++r<u&&(s*=256);)l<0&&0===i&&0!==this[n+r-1]&&(i=1),this[n+r]=(l/s|0)-i&255;return n+u},s.prototype.writeIntBE=function(l,n,u,e){if(l=+l,n>>>=0,!e){var t=Math.pow(2,8*u-1);L(this,l,n,u,t-1,-t)}var r=u-1,s=1,i=0;for(this[n+r]=255&l;--r>=0&&(s*=256);)l<0&&0===i&&0!==this[n+r+1]&&(i=1),this[n+r]=(l/s|0)-i&255;return n+u},s.prototype.writeInt8=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,1,127,-128),l<0&&(l=255+l+1),this[n]=255&l,n+1},s.prototype.writeInt16LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,32767,-32768),this[n]=255&l,this[n+1]=l>>>8,n+2},s.prototype.writeInt16BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,2,32767,-32768),this[n]=l>>>8,this[n+1]=255&l,n+2},s.prototype.writeInt32LE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,2147483647,-2147483648),this[n]=255&l,this[n+1]=l>>>8,this[n+2]=l>>>16,this[n+3]=l>>>24,n+4},s.prototype.writeInt32BE=function(l,n,u){return l=+l,n>>>=0,u||L(this,l,n,4,2147483647,-2147483648),l<0&&(l=4294967295+l+1),this[n]=l>>>24,this[n+1]=l>>>16,this[n+2]=l>>>8,this[n+3]=255&l,n+4},s.prototype.writeFloatLE=function(l,n,u){return N(this,l,n,!0,u)},s.prototype.writeFloatBE=function(l,n,u){return N(this,l,n,!1,u)},s.prototype.writeDoubleLE=function(l,n,u){return k(this,l,n,!0,u)},s.prototype.writeDoubleBE=function(l,n,u){return k(this,l,n,!1,u)},s.prototype.copy=function(l,n,u,e){if(!s.isBuffer(l))throw new TypeError("argument should be a Buffer");if(u||(u=0),e||0===e||(e=this.length),n>=l.length&&(n=l.length),n||(n=0),e>0&&e<u&&(e=u),e===u)return 0;if(0===l.length||0===this.length)return 0;if(n<0)throw new RangeError("targetStart out of bounds");if(u<0||u>=this.length)throw new RangeError("Index out of range");if(e<0)throw new RangeError("sourceEnd out of bounds");e>this.length&&(e=this.length),l.length-n<e-u&&(e=l.length-n+u);var t=e-u;return this===l&&"function"==typeof Uint8Array.prototype.copyWithin?this.copyWithin(n,u,e):Uint8Array.prototype.set.call(l,this.subarray(u,e),n),t},s.prototype.fill=function(l,n,u,e){if("string"==typeof l){if("string"==typeof n?(e=n,n=0,u=this.length):"string"==typeof u&&(e=u,u=this.length),void 0!==e&&"string"!=typeof e)throw new TypeError("encoding must be a string");if("string"==typeof e&&!s.isEncoding(e))throw new TypeError("Unknown encoding: "+e);if(1===l.length){var t=l.charCodeAt(0);("utf8"===e&&t<128||"latin1"===e)&&(l=t)}}else"number"==typeof l?l&=255:"boolean"==typeof l&&(l=Number(l));if(n<0||this.length<n||this.length<u)throw new RangeError("Out of range index");if(u<=n)return this;var r;if(n>>>=0,u=void 0===u?this.length:u>>>0,l||(l=0),"number"==typeof l)for(r=n;r<u;++r)this[r]=l;else{var i=s.isBuffer(l)?l:s.from(l,e),o=i.length;if(0===o)throw new TypeError('The value "'+l+'" is invalid for argument "value"');for(r=0;r<u-n;++r)this[r+n]=i[r%o]}return this};var U=/[^+/0-9A-Za-z-_]/g;function D(l,n){var u;n=n||1/0;for(var e=l.length,t=null,r=[],s=0;s<e;++s){if((u=l.charCodeAt(s))>55295&&u<57344){if(!t){if(u>56319){(n-=3)>-1&&r.push(239,191,189);continue}if(s+1===e){(n-=3)>-1&&r.push(239,191,189);continue}t=u;continue}if(u<56320){(n-=3)>-1&&r.push(239,191,189),t=u;continue}u=65536+(t-55296<<10|u-56320)}else t&&(n-=3)>-1&&r.push(239,191,189);if(t=null,u<128){if((n-=1)<0)break;r.push(u)}else if(u<2048){if((n-=2)<0)break;r.push(u>>6|192,63&u|128)}else if(u<65536){if((n-=3)<0)break;r.push(u>>12|224,u>>6&63|128,63&u|128)}else{if(!(u<1114112))throw new Error("Invalid code point");if((n-=4)<0)break;r.push(u>>18|240,u>>12&63|128,u>>6&63|128,63&u|128)}}return r}function P(l){return n.toByteArray(function(l){if((l=(l=l.split("=")[0]).trim().replace(U,"")).length<2)return"";for(;l.length%4!=0;)l+="=";return l}(l))}function M(l,n,u,e){for(var t=0;t<e&&!(t+u>=n.length||t>=l.length);++t)n[t+u]=l[t];return t}function B(l,n){return l instanceof n||null!=l&&null!=l.constructor&&null!=l.constructor.name&&l.constructor.name===n.name}function q(l){return l!=l}var j=function(){for(var l="0123456789abcdef",n=new Array(256),u=0;u<16;++u)for(var e=16*u,t=0;t<16;++t)n[e+t]=l[u]+l[t];return n}()}(gl);var El={},wl={};!function(l){var n,u,e,t;Object.defineProperty(l,"__esModule",{value:!0}),l.Frame=l.Lengths=l.Flags=l.FrameTypes=void 0,function(l){l[l.RESERVED=0]="RESERVED",l[l.SETUP=1]="SETUP",l[l.LEASE=2]="LEASE",l[l.KEEPALIVE=3]="KEEPALIVE",l[l.REQUEST_RESPONSE=4]="REQUEST_RESPONSE",l[l.REQUEST_FNF=5]="REQUEST_FNF",l[l.REQUEST_STREAM=6]="REQUEST_STREAM",l[l.REQUEST_CHANNEL=7]="REQUEST_CHANNEL",l[l.REQUEST_N=8]="REQUEST_N",l[l.CANCEL=9]="CANCEL",l[l.PAYLOAD=10]="PAYLOAD",l[l.ERROR=11]="ERROR",l[l.METADATA_PUSH=12]="METADATA_PUSH",l[l.RESUME=13]="RESUME",l[l.RESUME_OK=14]="RESUME_OK",l[l.EXT=63]="EXT"}(n=l.FrameTypes||(l.FrameTypes={})),(u=l.Flags||(l.Flags={}))[u.NONE=0]="NONE",u[u.COMPLETE=64]="COMPLETE",u[u.FOLLOWS=128]="FOLLOWS",u[u.IGNORE=512]="IGNORE",u[u.LEASE=64]="LEASE",u[u.METADATA=256]="METADATA",u[u.NEXT=32]="NEXT",u[u.RESPOND=128]="RESPOND",u[u.RESUME_ENABLE=128]="RESUME_ENABLE",function(l){l.hasMetadata=function(n){return(n&l.METADATA)===l.METADATA},l.hasComplete=function(n){return(n&l.COMPLETE)===l.COMPLETE},l.hasNext=function(n){return(n&l.NEXT)===l.NEXT},l.hasFollows=function(n){return(n&l.FOLLOWS)===l.FOLLOWS},l.hasIgnore=function(n){return(n&l.IGNORE)===l.IGNORE},l.hasRespond=function(n){return(n&l.RESPOND)===l.RESPOND},l.hasLease=function(n){return(n&l.LEASE)===l.LEASE},l.hasResume=function(n){return(n&l.RESUME_ENABLE)===l.RESUME_ENABLE}}(l.Flags||(l.Flags={})),(e=l.Lengths||(l.Lengths={}))[e.FRAME=3]="FRAME",e[e.HEADER=6]="HEADER",e[e.METADATA=3]="METADATA",e[e.REQUEST=3]="REQUEST",(t=l.Frame||(l.Frame={})).isConnection=function(l){return 0===l.streamId},t.isRequest=function(l){return n.REQUEST_RESPONSE<=l.type&&l.type<=n.REQUEST_CHANNEL}}(wl),function(l){var n=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(l,"__esModule",{value:!0}),l.Deserializer=l.sizeOfFrame=l.serializeFrame=l.deserializeFrame=l.serializeFrameWithLength=l.deserializeFrames=l.deserializeFrameWithLength=l.writeUInt64BE=l.readUInt64BE=l.writeUInt24BE=l.readUInt24BE=l.MAX_VERSION=l.MAX_TTL=l.MAX_STREAM_ID=l.MAX_RESUME_LENGTH=l.MAX_REQUEST_N=l.MAX_REQUEST_COUNT=l.MAX_MIME_LENGTH=l.MAX_METADATA_LENGTH=l.MAX_LIFETIME=l.MAX_KEEPALIVE=l.MAX_CODE=l.FRAME_TYPE_OFFFSET=l.FLAGS_MASK=void 0;var u=wl;l.FLAGS_MASK=1023,l.FRAME_TYPE_OFFFSET=10,l.MAX_CODE=2147483647,l.MAX_KEEPALIVE=2147483647,l.MAX_LIFETIME=2147483647,l.MAX_METADATA_LENGTH=16777215,l.MAX_MIME_LENGTH=255,l.MAX_REQUEST_COUNT=2147483647,l.MAX_REQUEST_N=2147483647,l.MAX_RESUME_LENGTH=65535,l.MAX_STREAM_ID=2147483647,l.MAX_TTL=2147483647,l.MAX_VERSION=65535;var e=4294967296;function t(l,n){return l.readUInt8(n)<<16|l.readUInt8(n+1)<<8|l.readUInt8(n+2)}function s(l,n,u){return u=l.writeUInt8(n>>>16,u),u=l.writeUInt8(n>>>8&255,u),l.writeUInt8(255&n,u)}function i(l,n){var u=l.readUInt32BE(n),t=l.readUInt32BE(n+4);return u*e+t}function o(l,n,u){var t=n/e|0,r=n%e;return u=l.writeUInt32BE(t,u),l.writeUInt32BE(r,u)}l.readUInt24BE=t,l.writeUInt24BE=s,l.readUInt64BE=i,l.writeUInt64BE=o;function a(l){var n=t(l,0);return h(l.slice(3,3+n))}function c(l){var u,e,r,s,i;return n(this,(function(n){switch(n.label){case 0:u=0,n.label=1;case 1:return u+3<l.length?(e=t(l,u),(s=(r=u+3)+e)>l.length?[3,3]:(i=l.slice(r,s),[4,[h(i),u=s]])):[3,3];case 2:return n.sent(),[3,1];case 3:return[2]}}))}function h(n){var e=0,t=n.readInt32BE(e);e+=4;var r=n.readUInt16BE(e);e+=2;var s=r>>>l.FRAME_TYPE_OFFFSET,o=r&l.FLAGS_MASK;switch(s){case u.FrameTypes.SETUP:return function(l,n,e){l.length;var t=6,r=l.readUInt16BE(t);t+=2;var s=l.readUInt16BE(t);t+=2;var i=l.readInt32BE(t);t+=4;var o=l.readInt32BE(t);t+=4;var a=null;if(e&u.Flags.RESUME_ENABLE){var c=l.readInt16BE(t);t+=2,a=l.slice(t,t+c),t+=c}var h=l.readUInt8(t);t+=1;var d=l.toString("ascii",t,t+h);t+=h;var p=l.readUInt8(t);t+=1;var f=l.toString("ascii",t,t+p);t+=p;var m={data:null,dataMimeType:f,flags:e,keepAlive:i,lifetime:o,majorVersion:r,metadata:null,metadataMimeType:d,minorVersion:s,resumeToken:a,streamId:0,type:u.FrameTypes.SETUP};return _(l,m,t),m}(n,0,o);case u.FrameTypes.PAYLOAD:return function(l,n,e){l.length;var t={data:null,flags:e,metadata:null,streamId:n,type:u.FrameTypes.PAYLOAD};return _(l,t,6),t}(n,t,o);case u.FrameTypes.ERROR:return function(l,n,e){l.length;var t=6,r=l.readInt32BE(t);t+=4;var s=l.length-t,i="";s>0&&(i=l.toString("utf8",t,t+s),t+=s);return{code:r,flags:e,message:i,streamId:n,type:u.FrameTypes.ERROR}}(n,t,o);case u.FrameTypes.KEEPALIVE:return function(l,n,e){l.length;var t=6,r=i(l,t);t+=8;var s=null;t<l.length&&(s=l.slice(t,l.length));return{data:s,flags:e,lastReceivedPosition:r,streamId:0,type:u.FrameTypes.KEEPALIVE}}(n,0,o);case u.FrameTypes.REQUEST_FNF:return function(l,n,e){l.length;var t={data:null,flags:e,metadata:null,streamId:n,type:u.FrameTypes.REQUEST_FNF};return _(l,t,6),t}(n,t,o);case u.FrameTypes.REQUEST_RESPONSE:return function(l,n,e){var t={data:null,flags:e,metadata:null,streamId:n,type:u.FrameTypes.REQUEST_RESPONSE};return _(l,t,6),t}(n,t,o);case u.FrameTypes.REQUEST_STREAM:return function(l,n,e){l.length;var t=6,r=l.readInt32BE(t);t+=4;var s={data:null,flags:e,metadata:null,requestN:r,streamId:n,type:u.FrameTypes.REQUEST_STREAM};return _(l,s,t),s}(n,t,o);case u.FrameTypes.REQUEST_CHANNEL:return function(l,n,e){l.length;var t=6,r=l.readInt32BE(t);t+=4;var s={data:null,flags:e,metadata:null,requestN:r,streamId:n,type:u.FrameTypes.REQUEST_CHANNEL};return _(l,s,t),s}(n,t,o);case u.FrameTypes.METADATA_PUSH:return function(l,n,e){return{flags:e,metadata:6===length?null:l.slice(6,length),streamId:0,type:u.FrameTypes.METADATA_PUSH}}(n,0,o);case u.FrameTypes.REQUEST_N:return function(l,n,e){l.length;var t=l.readInt32BE(6);return{flags:e,requestN:t,streamId:n,type:u.FrameTypes.REQUEST_N}}(n,t,o);case u.FrameTypes.RESUME:return function(l,n,e){l.length;var t=6,r=l.readUInt16BE(t);t+=2;var s=l.readUInt16BE(t);t+=2;var o=l.readInt16BE(t);t+=2;var a=l.slice(t,t+o);t+=o;var c=i(l,t);t+=8;var h=i(l,t);return t+=8,{clientPosition:h,flags:e,majorVersion:r,minorVersion:s,resumeToken:a,serverPosition:c,streamId:0,type:u.FrameTypes.RESUME}}(n,0,o);case u.FrameTypes.RESUME_OK:return function(l,n,e){l.length;var t=i(l,6);return{clientPosition:t,flags:e,streamId:0,type:u.FrameTypes.RESUME_OK}}(n,0,o);case u.FrameTypes.CANCEL:return function(l,n,e){return l.length,{flags:e,streamId:n,type:u.FrameTypes.CANCEL}}(n,t,o);case u.FrameTypes.LEASE:return function(l,n,e){var t=6,r=l.readUInt32BE(t);t+=4;var s=l.readUInt32BE(t);t+=4;var i=null;t<l.length&&(i=l.slice(t,l.length));return{flags:e,metadata:i,requestCount:s,streamId:0,ttl:r,type:u.FrameTypes.LEASE}}(n,0,o)}}function d(l){switch(l.type){case u.FrameTypes.SETUP:return function(l){var n=null!=l.resumeToken?l.resumeToken.byteLength:0,e=null!=l.metadataMimeType?gl.Buffer.byteLength(l.metadataMimeType,"ascii"):0,t=null!=l.dataMimeType?gl.Buffer.byteLength(l.dataMimeType,"ascii"):0,r=T(l),s=gl.Buffer.allocUnsafe(6+p+(n?f+n:0)+e+t+r),i=S(l,s);i=s.writeUInt16BE(l.majorVersion,i),i=s.writeUInt16BE(l.minorVersion,i),i=s.writeUInt32BE(l.keepAlive,i),i=s.writeUInt32BE(l.lifetime,i),l.flags&u.Flags.RESUME_ENABLE&&(i=s.writeUInt16BE(n,i),null!=l.resumeToken&&(i+=l.resumeToken.copy(s,i)));i=s.writeUInt8(e,i),null!=l.metadataMimeType&&(i+=s.write(l.metadataMimeType,i,i+e,"ascii"));i=s.writeUInt8(t,i),null!=l.dataMimeType&&(i+=s.write(l.dataMimeType,i,i+t,"ascii"));return R(l,s,i),s}(l);case u.FrameTypes.PAYLOAD:return function(l){var n=T(l),u=gl.Buffer.allocUnsafe(6+n),e=S(l,u);return R(l,u,e),u}(l);case u.FrameTypes.ERROR:return function(l){var n=null!=l.message?gl.Buffer.byteLength(l.message,"utf8"):0,u=gl.Buffer.allocUnsafe(6+m+n),e=S(l,u);e=u.writeUInt32BE(l.code,e),null!=l.message&&u.write(l.message,e,e+n,"utf8");return u}(l);case u.FrameTypes.KEEPALIVE:return function(l){var n=null!=l.data?l.data.byteLength:0,u=gl.Buffer.allocUnsafe(6+y+n),e=S(l,u);e=o(u,l.lastReceivedPosition,e),null!=l.data&&l.data.copy(u,e);return u}(l);case u.FrameTypes.REQUEST_FNF:case u.FrameTypes.REQUEST_RESPONSE:return function(l){var n=T(l),u=gl.Buffer.allocUnsafe(6+n),e=S(l,u);return R(l,u,e),u}(l);case u.FrameTypes.REQUEST_STREAM:case u.FrameTypes.REQUEST_CHANNEL:return function(l){var n=T(l),u=gl.Buffer.allocUnsafe(6+E+n),e=S(l,u);return e=u.writeUInt32BE(l.requestN,e),R(l,u,e),u}(l);case u.FrameTypes.METADATA_PUSH:return function(l){var n=l.metadata;if(null!=n){var u=S(l,e=gl.Buffer.allocUnsafe(6+n.byteLength));return n.copy(e,u),e}var e;return S(l,e=gl.Buffer.allocUnsafe(6)),e}(l);case u.FrameTypes.REQUEST_N:return function(l){var n=gl.Buffer.allocUnsafe(6+w),u=S(l,n);return n.writeUInt32BE(l.requestN,u),n}(l);case u.FrameTypes.RESUME:return function(l){var n=l.resumeToken.byteLength,u=gl.Buffer.allocUnsafe(6+b+n),e=S(l,u);return e=u.writeUInt16BE(l.majorVersion,e),e=u.writeUInt16BE(l.minorVersion,e),e=u.writeUInt16BE(n,e),e+=l.resumeToken.copy(u,e),e=o(u,l.serverPosition,e),o(u,l.clientPosition,e),u}(l);case u.FrameTypes.RESUME_OK:return function(l){var n=gl.Buffer.allocUnsafe(6+v),u=S(l,n);return o(n,l.clientPosition,u),n}(l);case u.FrameTypes.CANCEL:return function(l){var n=gl.Buffer.allocUnsafe(6);return S(l,n),n}(l);case u.FrameTypes.LEASE:return function(l){var n=null!=l.metadata?l.metadata.byteLength:0,u=gl.Buffer.allocUnsafe(6+g+n),e=S(l,u);e=u.writeUInt32BE(l.ttl,e),e=u.writeUInt32BE(l.requestCount,e),null!=l.metadata&&l.metadata.copy(u,e);return u}(l)}}l.deserializeFrameWithLength=a,l.deserializeFrames=c,l.serializeFrameWithLength=function(l){var n=d(l),u=gl.Buffer.allocUnsafe(n.length+3);return s(u,n.length,0),n.copy(u,3),u},l.deserializeFrame=h,l.serializeFrame=d,l.sizeOfFrame=function(l){switch(l.type){case u.FrameTypes.SETUP:return function(l){var n=null!=l.resumeToken?l.resumeToken.byteLength:0,u=null!=l.metadataMimeType?gl.Buffer.byteLength(l.metadataMimeType,"ascii"):0,e=null!=l.dataMimeType?gl.Buffer.byteLength(l.dataMimeType,"ascii"):0,t=T(l);return 6+p+(n?f+n:0)+u+e+t}(l);case u.FrameTypes.PAYLOAD:return function(l){var n=T(l);return 6+n}(l);case u.FrameTypes.ERROR:return function(l){var n=null!=l.message?gl.Buffer.byteLength(l.message,"utf8"):0;return 6+m+n}(l);case u.FrameTypes.KEEPALIVE:return function(l){var n=null!=l.data?l.data.byteLength:0;return 6+y+n}(l);case u.FrameTypes.REQUEST_FNF:case u.FrameTypes.REQUEST_RESPONSE:return function(l){var n=T(l);return 6+n}(l);case u.FrameTypes.REQUEST_STREAM:case u.FrameTypes.REQUEST_CHANNEL:return function(l){var n=T(l);return 6+E+n}(l);case u.FrameTypes.METADATA_PUSH:return function(l){return 6+(null!=l.metadata?l.metadata.byteLength:0)}(l);case u.FrameTypes.REQUEST_N:return 6+w;case u.FrameTypes.RESUME:return function(l){var n=l.resumeToken.byteLength;return 6+b+n}(l);case u.FrameTypes.RESUME_OK:return 6+v;case u.FrameTypes.CANCEL:return 6;case u.FrameTypes.LEASE:return function(l){var n=null!=l.metadata?l.metadata.byteLength:0;return 6+g+n}(l)}};var p=14,f=2;var m=4;var y=8;var g=8;var E=4;var w=4;var b=22;var v=8;function S(n,u){var e=u.writeInt32BE(n.streamId,0);return u.writeUInt16BE(n.type<<l.FRAME_TYPE_OFFFSET|n.flags&l.FLAGS_MASK,e)}function T(l){var n=0;return null!=l.data&&(n+=l.data.byteLength),u.Flags.hasMetadata(l.flags)&&(n+=3,null!=l.metadata&&(n+=l.metadata.byteLength)),n}function R(l,n,e){u.Flags.hasMetadata(l.flags)&&(null!=l.metadata?(e=s(n,l.metadata.byteLength,e),e+=l.metadata.copy(n,e)):e=s(n,0,e));null!=l.data&&l.data.copy(n,e)}function _(l,n,e){if(u.Flags.hasMetadata(n.flags)){var r=t(l,e);e+=3,r>0&&(n.metadata=l.slice(e,e+r),e+=r)}e<l.length&&(n.data=l.slice(e,l.length))}var O=function(){function l(){}return l.prototype.deserializeFrame=function(l){return h(l)},l.prototype.deserializeFrameWithLength=function(l){return a(l)},l.prototype.deserializeFrames=function(l){return c(l)},l}();l.Deserializer=O}(El);var bl={};Object.defineProperty(bl,"__esModule",{value:!0});var vl={},Sl=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(vl,"__esModule",{value:!0}),vl.Deferred=void 0;var Tl=function(){function l(){this._done=!1,this.onCloseCallbacks=[]}return Object.defineProperty(l.prototype,"done",{get:function(){return this._done},enumerable:!1,configurable:!0}),l.prototype.close=function(l){var n,u,e,t;if(this.done)console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):""));else if(this._done=!0,this._error=l,l)try{for(var r=Sl(this.onCloseCallbacks),s=r.next();!s.done;s=r.next()){(0,s.value)(l)}}catch(l){n={error:l}}finally{try{s&&!s.done&&(u=r.return)&&u.call(r)}finally{if(n)throw n.error}}else try{for(var i=Sl(this.onCloseCallbacks),o=i.next();!o.done;o=i.next()){(0,o.value)()}}catch(l){e={error:l}}finally{try{o&&!o.done&&(t=i.return)&&t.call(i)}finally{if(e)throw e.error}}},l.prototype.onClose=function(l){this._done?l(this._error):this.onCloseCallbacks.push(l)},l}();vl.Deferred=Tl;var Rl={};!function(l){var n,u=r&&r.__extends||(n=function(l,u){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,n){l.__proto__=n}||function(l,n){for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u])},n(l,u)},function(l,u){if("function"!=typeof u&&null!==u)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");function e(){this.constructor=l}n(l,u),l.prototype=null===u?Object.create(u):(e.prototype=u.prototype,new e)});Object.defineProperty(l,"__esModule",{value:!0}),l.ErrorCodes=l.RSocketError=void 0;var e,t=function(l){function n(n,u){var e=l.call(this,u)||this;return e.code=n,e}return u(n,l),n}(Error);l.RSocketError=t,(e=l.ErrorCodes||(l.ErrorCodes={}))[e.RESERVED=0]="RESERVED",e[e.INVALID_SETUP=1]="INVALID_SETUP",e[e.UNSUPPORTED_SETUP=2]="UNSUPPORTED_SETUP",e[e.REJECTED_SETUP=3]="REJECTED_SETUP",e[e.REJECTED_RESUME=4]="REJECTED_RESUME",e[e.CONNECTION_CLOSE=258]="CONNECTION_CLOSE",e[e.CONNECTION_ERROR=257]="CONNECTION_ERROR",e[e.APPLICATION_ERROR=513]="APPLICATION_ERROR",e[e.REJECTED=514]="REJECTED",e[e.CANCELED=515]="CANCELED",e[e.INVALID=516]="INVALID",e[e.RESERVED_EXTENSION=4294967295]="RESERVED_EXTENSION"}(Rl);var _l={};Object.defineProperty(_l,"__esModule",{value:!0});var Ol,Al={},Cl={};function Fl(){return Ol||(Ol=1,function(l){var n,u=r&&r.__extends||(n=function(l,u){return n=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,n){l.__proto__=n}||function(l,n){for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u])},n(l,u)},function(l,u){if("function"!=typeof u&&null!==u)throw new TypeError("Class extends value "+String(u)+" is not a constructor or null");function e(){this.constructor=l}n(l,u),l.prototype=null===u?Object.create(u):(e.prototype=u.prototype,new e)}),e=r&&r.__awaiter||function(l,n,u,e){return new(u||(u=Promise))((function(t,r){function s(l){try{o(e.next(l))}catch(l){r(l)}}function i(l){try{o(e.throw(l))}catch(l){r(l)}}function o(l){var n;l.done?t(l.value):(n=l.value,n instanceof u?n:new u((function(l){l(n)}))).then(s,i)}o((e=e.apply(l,n||[])).next())}))},t=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(l,"__esModule",{value:!0}),l.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer=l.ResumableClientServerInputMultiplexerDemultiplexer=l.ClientServerInputMultiplexerDemultiplexer=l.StreamIdGenerator=void 0;var s=Xn(),i=vl,o=Rl,a=wl;!function(l){l.create=function(l){return new n(l)};var n=function(){function l(l){this.currentId=l}return l.prototype.next=function(l){var n=this.currentId+2;l(n)&&(this.currentId=n)},l}()}(l.StreamIdGenerator||(l.StreamIdGenerator={}));var c=function(l){function n(n,u,e){var t=l.call(this)||this;return t.streamIdSupplier=n,t.outbound=u,t.closeable=e,t.registry={},e.onClose(t.close.bind(t)),t}return u(n,l),n.prototype.handle=function(l){if(a.Frame.isConnection(l)){if(l.type===s.FrameTypes.RESERVED)return;this.connectionFramesHandler.handle(l)}else if(a.Frame.isRequest(l)){if(this.registry[l.streamId])return;this.requestFramesHandler.handle(l,this)}else{var n=this.registry[l.streamId];if(!n)return;n.handle(l)}},n.prototype.connectionInbound=function(l){if(this.connectionFramesHandler)throw new Error("Connection frame handler has already been installed");this.connectionFramesHandler=l},n.prototype.handleRequestStream=function(l){if(this.requestFramesHandler)throw new Error("Stream handler has already been installed");this.requestFramesHandler=l},n.prototype.send=function(l){this.outbound.send(l)},Object.defineProperty(n.prototype,"connectionOutbound",{get:function(){return this},enumerable:!1,configurable:!0}),n.prototype.createRequestStream=function(l){var n=this;if(this.done)l.handleReject(new Error("Already closed"));else{var u=this.registry;this.streamIdSupplier.next((function(u){return l.handleReady(u,n)}),Object.keys(u))}},n.prototype.connect=function(l){this.registry[l.streamId]=l},n.prototype.disconnect=function(l){delete this.registry[l.streamId]},n.prototype.close=function(n){if(this.done)l.prototype.close.call(this,n);else{for(var u in this.registry){this.registry[u].close(new Error("Closed. ".concat(n?"Original cause [".concat(n,"]."):"")))}l.prototype.close.call(this,n)}},n}(i.Deferred);l.ClientServerInputMultiplexerDemultiplexer=c;var h=function(l){function n(n,u,e,t,r,s,o){var a=l.call(this,n,u,new i.Deferred)||this;return a.frameStore=t,a.token=r,a.sessionTimeout=o,s instanceof Function?a.reconnector=s:a.sessionStore=s,e.onClose(a.handleConnectionClose.bind(a)),a}return u(n,l),n.prototype.send=function(n){if(a.Frame.isConnection(n)){if(n.type===s.FrameTypes.KEEPALIVE)n.lastReceivedPosition=this.frameStore.lastReceivedFramePosition;else if(n.type===s.FrameTypes.ERROR)return this.outbound.send(n),this.sessionStore&&delete this.sessionStore[this.token],void l.prototype.close.call(this,new o.RSocketError(n.code,n.message))}else this.frameStore.store(n);this.outbound.send(n)},n.prototype.handle=function(n){if(a.Frame.isConnection(n)){if(n.type===s.FrameTypes.KEEPALIVE)try{this.frameStore.dropTo(n.lastReceivedPosition)}catch(l){this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:l.code,message:l.message}),this.close(l)}else if(n.type===s.FrameTypes.ERROR)return l.prototype.handle.call(this,n),this.sessionStore&&delete this.sessionStore[this.token],void l.prototype.close.call(this,new o.RSocketError(n.code,n.message))}else this.frameStore.record(n);l.prototype.handle.call(this,n)},n.prototype.resume=function(l,n,u){switch(this.outbound=n,l.type){case s.FrameTypes.RESUME:if(clearTimeout(this.timeoutId),this.frameStore.lastReceivedFramePosition<l.clientPosition){var e=new o.RSocketError(s.ErrorCodes.REJECTED_RESUME,"Impossible to resume since first available client frame position is greater than last received server frame position");return this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:e.code,message:e.message}),void this.close(e)}try{this.frameStore.dropTo(l.serverPosition)}catch(l){return this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:l.code,message:l.message}),void this.close(l)}this.outbound.send({type:s.FrameTypes.RESUME_OK,streamId:0,flags:s.Flags.NONE,clientPosition:this.frameStore.lastReceivedFramePosition});break;case s.FrameTypes.RESUME_OK:try{this.frameStore.dropTo(l.clientPosition)}catch(l){this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,flags:s.Flags.NONE,code:l.code,message:l.message}),this.close(l)}}this.frameStore.drain(this.outbound.send.bind(this.outbound)),u.onClose(this.handleConnectionClose.bind(this)),this.connectionFramesHandler.resume()},n.prototype.handleConnectionClose=function(l){return e(this,void 0,void 0,(function(){var l;return t(this,(function(n){switch(n.label){case 0:if(this.connectionFramesHandler.pause(),!this.reconnector)return[3,5];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.reconnector(this,this.frameStore)];case 2:return n.sent(),[3,4];case 3:return l=n.sent(),this.close(l),[3,4];case 4:return[3,6];case 5:this.timeoutId=setTimeout(this.close.bind(this),this.sessionTimeout),n.label=6;case 6:return[2]}}))}))},n}(c);l.ResumableClientServerInputMultiplexerDemultiplexer=h;var d=function(){function l(l,n,u){this.outbound=l,this.closeable=n,this.delegate=u,this.resumed=!1}return l.prototype.close=function(){this.delegate.close()},l.prototype.onClose=function(l){this.delegate.onClose(l)},Object.defineProperty(l.prototype,"connectionOutbound",{get:function(){return this.delegate.connectionOutbound},enumerable:!1,configurable:!0}),l.prototype.createRequestStream=function(l){this.delegate.createRequestStream(l)},l.prototype.connectionInbound=function(l){this.delegate.connectionInbound(l)},l.prototype.handleRequestStream=function(l){this.delegate.handleRequestStream(l)},l.prototype.handle=function(l){var n=this;if(!this.resumed)return l.type===s.FrameTypes.RESUME_OK?(this.resumed=!0,void this.delegate.resume(l,this.outbound,this.closeable)):(this.outbound.send({type:s.FrameTypes.ERROR,streamId:0,code:s.ErrorCodes.CONNECTION_ERROR,message:"Incomplete RESUME handshake. Unexpected frame ".concat(l.type," received"),flags:s.Flags.NONE}),this.closeable.close(),void this.closeable.onClose((function(){return n.delegate.close(new o.RSocketError(s.ErrorCodes.CONNECTION_ERROR,"Incomplete RESUME handshake. Unexpected frame ".concat(l.type," received")))})));this.delegate.handle(l)},l}();l.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer=d}(Cl)),Cl}var Il={},Ll={},xl={},Nl=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(xl,"__esModule",{value:!0}),xl.fragmentWithRequestN=xl.fragment=xl.isFragmentable=void 0;var kl=wl;xl.isFragmentable=function(l,n,u){return 0!==n&&l.data.byteLength+(l.metadata?l.metadata.byteLength+kl.Lengths.METADATA:0)+(u==kl.FrameTypes.REQUEST_STREAM||u==kl.FrameTypes.REQUEST_CHANNEL?kl.Lengths.REQUEST:0)>n},xl.fragment=function(l,n,u,e,t){var r,s,i,o,a,c,h,d,p,f,m,y;return void 0===t&&(t=!1),Nl(this,(function(g){switch(g.label){case 0:return r=null!==(y=null===(m=n.data)||void 0===m?void 0:m.byteLength)&&void 0!==y?y:0,s=e!==kl.FrameTypes.PAYLOAD,i=u,n.metadata?0!==(a=n.metadata.byteLength)?[3,1]:(i-=kl.Lengths.METADATA,o=gl.Buffer.allocUnsafe(0),[3,6]):[3,6];case 1:return c=0,s?(i-=kl.Lengths.METADATA,h=Math.min(a,c+i),o=n.metadata.slice(c,h),i-=o.byteLength,c=h,0!==i?[3,3]:(s=!1,[4,{type:e,flags:kl.Flags.FOLLOWS|kl.Flags.METADATA,data:void 0,metadata:o,streamId:l}])):[3,3];case 2:g.sent(),o=void 0,i=u,g.label=3;case 3:return c<a?(i-=kl.Lengths.METADATA,h=Math.min(a,c+i),o=n.metadata.slice(c,h),i-=o.byteLength,c=h,0!==i&&0!==r?[3,5]:[4,{type:kl.FrameTypes.PAYLOAD,flags:kl.Flags.NEXT|kl.Flags.METADATA|(c===a&&t&&0===r?kl.Flags.COMPLETE:kl.Flags.FOLLOWS),data:void 0,metadata:o,streamId:l}]):[3,6];case 4:g.sent(),o=void 0,i=u,g.label=5;case 5:return[3,3];case 6:return d=0,s?(f=Math.min(r,d+i),p=n.data.slice(d,f),i-=p.byteLength,d=f,[4,{type:e,flags:kl.Flags.FOLLOWS|(o?kl.Flags.METADATA:kl.Flags.NONE),data:p,metadata:o,streamId:l}]):[3,8];case 7:g.sent(),o=void 0,p=void 0,i=u,g.label=8;case 8:return d<r?(f=Math.min(r,d+i),p=n.data.slice(d,f),i-=p.byteLength,d=f,[4,{type:kl.FrameTypes.PAYLOAD,flags:d===r?(t?kl.Flags.COMPLETE:kl.Flags.NONE)|kl.Flags.NEXT|(o?kl.Flags.METADATA:0):kl.Flags.FOLLOWS|kl.Flags.NEXT|(o?kl.Flags.METADATA:0),data:p,metadata:o,streamId:l}]):[3,10];case 9:return g.sent(),o=void 0,p=void 0,i=u,[3,8];case 10:return[2]}}))},xl.fragmentWithRequestN=function(l,n,u,e,t,r){var s,i,o,a,c,h,d,p,f,m,y,g;return void 0===r&&(r=!1),Nl(this,(function(E){switch(E.label){case 0:return s=null!==(g=null===(y=n.data)||void 0===y?void 0:y.byteLength)&&void 0!==g?g:0,i=!0,o=u,n.metadata?0!==(c=n.metadata.byteLength)?[3,1]:(o-=kl.Lengths.METADATA,a=gl.Buffer.allocUnsafe(0),[3,6]):[3,6];case 1:return h=0,i?(o-=kl.Lengths.METADATA+kl.Lengths.REQUEST,d=Math.min(c,h+o),a=n.metadata.slice(h,d),o-=a.byteLength,h=d,0!==o?[3,3]:(i=!1,[4,{type:e,flags:kl.Flags.FOLLOWS|kl.Flags.METADATA,data:void 0,requestN:t,metadata:a,streamId:l}])):[3,3];case 2:E.sent(),a=void 0,o=u,E.label=3;case 3:return h<c?(o-=kl.Lengths.METADATA,d=Math.min(c,h+o),a=n.metadata.slice(h,d),o-=a.byteLength,h=d,0!==o&&0!==s?[3,5]:[4,{type:kl.FrameTypes.PAYLOAD,flags:kl.Flags.NEXT|kl.Flags.METADATA|(h===c&&r&&0===s?kl.Flags.COMPLETE:kl.Flags.FOLLOWS),data:void 0,metadata:a,streamId:l}]):[3,6];case 4:E.sent(),a=void 0,o=u,E.label=5;case 5:return[3,3];case 6:return p=0,i?(o-=kl.Lengths.REQUEST,m=Math.min(s,p+o),f=n.data.slice(p,m),o-=f.byteLength,p=m,[4,{type:e,flags:kl.Flags.FOLLOWS|(a?kl.Flags.METADATA:kl.Flags.NONE),data:f,requestN:t,metadata:a,streamId:l}]):[3,8];case 7:E.sent(),a=void 0,f=void 0,o=u,E.label=8;case 8:return p<s?(m=Math.min(s,p+o),f=n.data.slice(p,m),o-=f.byteLength,p=m,[4,{type:kl.FrameTypes.PAYLOAD,flags:p===s?(r?kl.Flags.COMPLETE:kl.Flags.NONE)|kl.Flags.NEXT|(a?kl.Flags.METADATA:0):kl.Flags.FOLLOWS|kl.Flags.NEXT|(a?kl.Flags.METADATA:0),data:f,metadata:a,streamId:l}]):[3,10];case 9:return E.sent(),a=void 0,f=void 0,o=u,[3,8];case 10:return[2]}}))};var Ul={};Object.defineProperty(Ul,"__esModule",{value:!0}),Ul.cancel=Ul.reassemble=Ul.add=void 0,Ul.add=function(l,n,u){return l.hasFragments?(l.data=l.data?gl.Buffer.concat([l.data,n]):n,l.metadata&&u&&(l.metadata=gl.Buffer.concat([l.metadata,u])),!0):(l.hasFragments=!0,l.data=n,u&&(l.metadata=u),!0)},Ul.reassemble=function(l,n,u){l.hasFragments=!1;var e=l.data?gl.Buffer.concat([l.data,n]):n;if(l.data=void 0,l.metadata){var t=u?gl.Buffer.concat([l.metadata,u]):l.metadata;return l.metadata=void 0,{data:e,metadata:t}}return{data:e}},Ul.cancel=function(l){l.hasFragments=!1,l.data=void 0,l.metadata=void 0};var Dl=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),Pl=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),Ml=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&Dl(n,l,u);return Pl(n,l),n},Bl=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(Ll,"__esModule",{value:!0}),Ll.RequestChannelResponderStream=Ll.RequestChannelRequesterStream=void 0;var ql=Rl,jl=xl,$l=wl,Wl=Ml(Ul),Ql=function(){function l(l,n,u,e,t,r){this.payload=l,this.isComplete=n,this.receiver=u,this.fragmentSize=e,this.initialRequestN=t,this.leaseManager=r,this.streamType=$l.FrameTypes.REQUEST_CHANNEL}return l.prototype.handleReady=function(l,n){var u,e;if(this.outboundDone)return!1;this.streamId=l,this.stream=n,n.connect(this);var t=this.isComplete;if(t&&(this.outboundDone=t),(0,jl.isFragmentable)(this.payload,this.fragmentSize,$l.FrameTypes.REQUEST_CHANNEL))try{for(var r=Bl((0,jl.fragmentWithRequestN)(l,this.payload,this.fragmentSize,$l.FrameTypes.REQUEST_CHANNEL,this.initialRequestN,t)),s=r.next();!s.done;s=r.next()){var i=s.value;this.stream.send(i)}}catch(l){u={error:l}}finally{try{s&&!s.done&&(e=r.return)&&e.call(r)}finally{if(u)throw u.error}}else this.stream.send({type:$l.FrameTypes.REQUEST_CHANNEL,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:(void 0!==this.payload.metadata?$l.Flags.METADATA:$l.Flags.NONE)|(t?$l.Flags.COMPLETE:$l.Flags.NONE),streamId:l});return this.hasExtension&&this.stream.send({type:$l.FrameTypes.EXT,streamId:l,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},l.prototype.handleReject=function(l){this.inboundDone||(this.inboundDone=!0,this.outboundDone=!0,this.receiver.onError(l))},l.prototype.handle=function(l){var n,u=l.type;switch(u){case $l.FrameTypes.PAYLOAD:var e=$l.Flags.hasComplete(l.flags),t=$l.Flags.hasNext(l.flags);if(e||!$l.Flags.hasFollows(l.flags)){if(e&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!t))return void this.receiver.onComplete();var r=this.hasFragments?Wl.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata};return void this.receiver.onNext(r,e)}if(Wl.add(this,l.data,l.metadata))return;n="Unexpected frame size";break;case $l.FrameTypes.CANCEL:if(this.outboundDone)return;return this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this),void this.receiver.cancel();case $l.FrameTypes.REQUEST_N:if(this.outboundDone)return;if(this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.request(l.requestN);case $l.FrameTypes.ERROR:var s=this.outboundDone;return this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),Wl.cancel(this),s||this.receiver.cancel(),void this.receiver.onError(new ql.RSocketError(l.code,l.message));case $l.FrameTypes.EXT:return void this.receiver.onExtension(l.extendedType,l.extendedContent,$l.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.close(new ql.RSocketError(ql.ErrorCodes.CANCELED,n)),this.stream.send({type:$l.FrameTypes.CANCEL,streamId:this.streamId,flags:$l.Flags.NONE}),this.stream.disconnect(this)},l.prototype.request=function(l){this.inboundDone||(this.streamId?this.stream.send({type:$l.FrameTypes.REQUEST_N,flags:$l.Flags.NONE,requestN:l,streamId:this.streamId}):this.initialRequestN+=l)},l.prototype.cancel=function(){var l,n=this.inboundDone,u=this.outboundDone;n&&u||(this.inboundDone=!0,this.outboundDone=!0,u||this.receiver.cancel(),this.streamId?(this.stream.send({type:n?$l.FrameTypes.ERROR:$l.FrameTypes.CANCEL,flags:$l.Flags.NONE,streamId:this.streamId,code:ql.ErrorCodes.CANCELED,message:"Cancelled"}),this.stream.disconnect(this),Wl.cancel(this)):null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.onNext=function(l,n){var u,e;if(!this.outboundDone)if(n&&(this.outboundDone=!0,this.inboundDone&&this.stream.disconnect(this)),(0,jl.isFragmentable)(l,this.fragmentSize,$l.FrameTypes.PAYLOAD))try{for(var t=Bl((0,jl.fragment)(this.streamId,l,this.fragmentSize,$l.FrameTypes.PAYLOAD,n)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:$l.FrameTypes.PAYLOAD,streamId:this.streamId,flags:$l.Flags.NEXT|(l.metadata?$l.Flags.METADATA:$l.Flags.NONE)|(n?$l.Flags.COMPLETE:$l.Flags.NONE),data:l.data,metadata:l.metadata})},l.prototype.onComplete=function(){this.streamId?this.outboundDone||(this.outboundDone=!0,this.stream.send({type:$l.FrameTypes.PAYLOAD,streamId:this.streamId,flags:$l.Flags.COMPLETE,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this)):this.isComplete=!0},l.prototype.onError=function(l){if(!this.outboundDone){var n=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:$l.FrameTypes.ERROR,streamId:this.streamId,flags:$l.Flags.NONE,code:l instanceof ql.RSocketError?l.code:ql.ErrorCodes.APPLICATION_ERROR,message:l.message}),this.stream.disconnect(this),n||this.receiver.onError(l)}},l.prototype.onExtension=function(l,n,u){if(!this.outboundDone)return this.streamId?void this.stream.send({streamId:this.streamId,type:$l.FrameTypes.EXT,extendedType:l,extendedContent:n,flags:u?$l.Flags.IGNORE:$l.Flags.NONE}):(this.hasExtension=!0,this.extendedType=l,this.extendedContent=n,void(this.flags=u?$l.Flags.IGNORE:$l.Flags.NONE))},l.prototype.close=function(l){if(!this.inboundDone||!this.outboundDone){var n=this.inboundDone,u=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,Wl.cancel(this),u||this.receiver.cancel(),n||(l?this.receiver.onError(l):this.receiver.onComplete())}},l}();Ll.RequestChannelRequesterStream=Ql;var Hl=function(){function l(l,n,u,e,t){if(this.streamId=l,this.stream=n,this.fragmentSize=u,this.handler=e,this.streamType=$l.FrameTypes.REQUEST_CHANNEL,n.connect(this),$l.Flags.hasFollows(t.flags))return Wl.add(this,t.data,t.metadata),this.initialRequestN=t.requestN,void(this.isComplete=$l.Flags.hasComplete(t.flags));var r={data:t.data,metadata:t.metadata},s=$l.Flags.hasComplete(t.flags);this.inboundDone=s;try{this.receiver=e(r,t.requestN,s,this),this.outboundDone&&this.defferedError&&this.receiver.onError(this.defferedError)}catch(l){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(l)}}return l.prototype.handle=function(l){var n,u=l.type;switch(u){case $l.FrameTypes.PAYLOAD:if($l.Flags.hasFollows(l.flags)){if(Wl.add(this,l.data,l.metadata))return;n="Unexpected frame size";break}var e=this.hasFragments?Wl.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata},t=$l.Flags.hasComplete(l.flags);if(this.receiver){if(t&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this),!$l.Flags.hasNext(l.flags)))return void this.receiver.onComplete();this.receiver.onNext(e,t)}else{(r=this.isComplete||t)&&(this.inboundDone=!0,this.outboundDone&&this.stream.disconnect(this));try{this.receiver=this.handler(e,this.initialRequestN,r,this),this.outboundDone&&this.defferedError}catch(i){this.outboundDone&&!this.inboundDone?this.cancel():this.inboundDone=!0,this.onError(i)}}return;case $l.FrameTypes.REQUEST_N:if(!this.receiver||this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.request(l.requestN);case $l.FrameTypes.ERROR:case $l.FrameTypes.CANCEL:var r=this.inboundDone,s=this.outboundDone;if(this.inboundDone=!0,this.outboundDone=!0,this.stream.disconnect(this),Wl.cancel(this),!this.receiver)return;if(s||this.receiver.cancel(),!r){var i=u===$l.FrameTypes.CANCEL?new ql.RSocketError(ql.ErrorCodes.CANCELED,"Cancelled"):new ql.RSocketError(l.code,l.message);this.receiver.onError(i)}return;case $l.FrameTypes.EXT:if(!this.receiver||this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.onExtension(l.extendedType,l.extendedContent,$l.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.stream.send({type:$l.FrameTypes.ERROR,flags:$l.Flags.NONE,code:ql.ErrorCodes.CANCELED,message:n,streamId:this.streamId}),this.stream.disconnect(this),this.close(new ql.RSocketError(ql.ErrorCodes.CANCELED,n))},l.prototype.onError=function(l){if(this.outboundDone)console.warn("Trying to error for the second time. ".concat(l?"Dropping error [".concat(l,"]."):""));else{var n=this.inboundDone;this.outboundDone=!0,this.inboundDone=!0,this.stream.send({type:$l.FrameTypes.ERROR,flags:$l.Flags.NONE,code:l instanceof ql.RSocketError?l.code:ql.ErrorCodes.APPLICATION_ERROR,message:l.message,streamId:this.streamId}),this.stream.disconnect(this),n||(this.receiver?this.receiver.onError(l):this.defferedError=l)}},l.prototype.onNext=function(l,n){var u,e;if(!this.outboundDone){if(n&&(this.outboundDone=!0),(0,jl.isFragmentable)(l,this.fragmentSize,$l.FrameTypes.PAYLOAD))try{for(var t=Bl((0,jl.fragment)(this.streamId,l,this.fragmentSize,$l.FrameTypes.PAYLOAD,n)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:$l.FrameTypes.PAYLOAD,flags:$l.Flags.NEXT|(n?$l.Flags.COMPLETE:$l.Flags.NONE)|(l.metadata?$l.Flags.METADATA:$l.Flags.NONE),data:l.data,metadata:l.metadata,streamId:this.streamId});n&&this.inboundDone&&this.stream.disconnect(this)}},l.prototype.onComplete=function(){this.outboundDone||(this.outboundDone=!0,this.stream.send({type:$l.FrameTypes.PAYLOAD,flags:$l.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.inboundDone&&this.stream.disconnect(this))},l.prototype.onExtension=function(l,n,u){this.outboundDone&&this.inboundDone||this.stream.send({type:$l.FrameTypes.EXT,streamId:this.streamId,flags:u?$l.Flags.IGNORE:$l.Flags.NONE,extendedType:l,extendedContent:n})},l.prototype.request=function(l){this.inboundDone||this.stream.send({type:$l.FrameTypes.REQUEST_N,flags:$l.Flags.NONE,streamId:this.streamId,requestN:l})},l.prototype.cancel=function(){this.inboundDone||(this.inboundDone=!0,this.stream.send({type:$l.FrameTypes.CANCEL,flags:$l.Flags.NONE,streamId:this.streamId}),this.outboundDone&&this.stream.disconnect(this))},l.prototype.close=function(l){if(this.inboundDone&&this.outboundDone)console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):""));else{var n=this.inboundDone,u=this.outboundDone;this.inboundDone=!0,this.outboundDone=!0,Wl.cancel(this);var e=this.receiver;e&&(u||e.cancel(),n||(l?e.onError(l):e.onComplete()))}},l}();Ll.RequestChannelResponderStream=Hl;var zl={},Vl=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),Gl=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),Jl=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&Vl(n,l,u);return Gl(n,l),n},Xl=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(zl,"__esModule",{value:!0}),zl.RequestFnfResponderStream=zl.RequestFnFRequesterStream=void 0;var Yl=Rl,Kl=xl,Zl=wl,ln=Jl(Ul),nn=function(){function l(l,n,u,e){this.payload=l,this.receiver=n,this.fragmentSize=u,this.leaseManager=e,this.streamType=Zl.FrameTypes.REQUEST_FNF}return l.prototype.handleReady=function(l,n){var u,e;if(this.done)return!1;if(this.streamId=l,(0,Kl.isFragmentable)(this.payload,this.fragmentSize,Zl.FrameTypes.REQUEST_FNF))try{for(var t=Xl((0,Kl.fragment)(l,this.payload,this.fragmentSize,Zl.FrameTypes.REQUEST_FNF)),r=t.next();!r.done;r=t.next()){var s=r.value;n.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else n.send({type:Zl.FrameTypes.REQUEST_FNF,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?Zl.Flags.METADATA:0,streamId:l});return this.done=!0,this.receiver.onComplete(),!0},l.prototype.handleReject=function(l){this.done||(this.done=!0,this.receiver.onError(l))},l.prototype.cancel=function(){var l;this.done||(this.done=!0,null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.handle=function(l){l.type!=Zl.FrameTypes.ERROR?this.close(new Yl.RSocketError(Yl.ErrorCodes.CANCELED,"Received invalid frame")):this.close(new Yl.RSocketError(l.code,l.message))},l.prototype.close=function(l){this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):l?this.receiver.onError(l):this.receiver.onComplete()},l}();zl.RequestFnFRequesterStream=nn;var un=function(){function l(l,n,u,e){if(this.streamId=l,this.stream=n,this.handler=u,this.streamType=Zl.FrameTypes.REQUEST_FNF,Zl.Flags.hasFollows(e.flags))return ln.add(this,e.data,e.metadata),void n.connect(this);var t={data:e.data,metadata:e.metadata};try{this.cancellable=u(t,this)}catch(l){}}return l.prototype.handle=function(l){var n;if(l.type==Zl.FrameTypes.PAYLOAD){if(!Zl.Flags.hasFollows(l.flags)){this.stream.disconnect(this);var u=ln.reassemble(this,l.data,l.metadata);try{this.cancellable=this.handler(u,this)}catch(l){}return}if(ln.add(this,l.data,l.metadata))return;n="Unexpected fragment size"}else n="Unexpected frame type [".concat(l.type,"]");this.done=!0,l.type!=Zl.FrameTypes.CANCEL&&l.type!=Zl.FrameTypes.ERROR&&this.stream.send({type:Zl.FrameTypes.ERROR,streamId:this.streamId,flags:Zl.Flags.NONE,code:Yl.ErrorCodes.CANCELED,message:n}),this.stream.disconnect(this),ln.cancel(this)},l.prototype.close=function(l){var n;this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(this.done=!0,ln.cancel(this),null===(n=this.cancellable)||void 0===n||n.cancel())},l.prototype.onError=function(l){},l.prototype.onComplete=function(){},l}();zl.RequestFnfResponderStream=un;var en={},tn=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),rn=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),sn=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&tn(n,l,u);return rn(n,l),n},on=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(en,"__esModule",{value:!0}),en.RequestResponseResponderStream=en.RequestResponseRequesterStream=void 0;var an=Rl,cn=xl,hn=wl,dn=sn(Ul),pn=function(){function l(l,n,u,e){this.payload=l,this.receiver=n,this.fragmentSize=u,this.leaseManager=e,this.streamType=hn.FrameTypes.REQUEST_RESPONSE}return l.prototype.handleReady=function(l,n){var u,e;if(this.done)return!1;if(this.streamId=l,this.stream=n,n.connect(this),(0,cn.isFragmentable)(this.payload,this.fragmentSize,hn.FrameTypes.REQUEST_RESPONSE))try{for(var t=on((0,cn.fragment)(l,this.payload,this.fragmentSize,hn.FrameTypes.REQUEST_RESPONSE)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:hn.FrameTypes.REQUEST_RESPONSE,data:this.payload.data,metadata:this.payload.metadata,flags:this.payload.metadata?hn.Flags.METADATA:0,streamId:l});return this.hasExtension&&this.stream.send({type:hn.FrameTypes.EXT,streamId:l,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},l.prototype.handleReject=function(l){this.done||(this.done=!0,this.receiver.onError(l))},l.prototype.handle=function(l){var n,u=l.type;switch(u){case hn.FrameTypes.PAYLOAD:var e=hn.Flags.hasComplete(l.flags),t=hn.Flags.hasNext(l.flags);if(e||!hn.Flags.hasFollows(l.flags)){if(this.done=!0,this.stream.disconnect(this),!t)return void this.receiver.onComplete();var r=this.hasFragments?dn.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata};return void this.receiver.onNext(r,!0)}if(!dn.add(this,l.data,l.metadata)){n="Unexpected fragment size";break}return;case hn.FrameTypes.ERROR:return this.done=!0,this.stream.disconnect(this),dn.cancel(this),void this.receiver.onError(new an.RSocketError(l.code,l.message));case hn.FrameTypes.EXT:if(this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.onExtension(l.extendedType,l.extendedContent,hn.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.close(new an.RSocketError(an.ErrorCodes.CANCELED,n)),this.stream.send({type:hn.FrameTypes.CANCEL,streamId:this.streamId,flags:hn.Flags.NONE}),this.stream.disconnect(this)},l.prototype.cancel=function(){var l;this.done||(this.done=!0,this.streamId?(this.stream.send({type:hn.FrameTypes.CANCEL,flags:hn.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),dn.cancel(this)):null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.onExtension=function(l,n,u){if(!this.done)return this.streamId?void this.stream.send({streamId:this.streamId,type:hn.FrameTypes.EXT,extendedType:l,extendedContent:n,flags:u?hn.Flags.IGNORE:hn.Flags.NONE}):(this.hasExtension=!0,this.extendedType=l,this.extendedContent=n,void(this.flags=u?hn.Flags.IGNORE:hn.Flags.NONE))},l.prototype.close=function(l){this.done||(this.done=!0,dn.cancel(this),l?this.receiver.onError(l):this.receiver.onComplete())},l}();en.RequestResponseRequesterStream=pn;var fn=function(){function l(l,n,u,e,t){if(this.streamId=l,this.stream=n,this.fragmentSize=u,this.handler=e,this.streamType=hn.FrameTypes.REQUEST_RESPONSE,n.connect(this),hn.Flags.hasFollows(t.flags))dn.add(this,t.data,t.metadata);else{var r={data:t.data,metadata:t.metadata};try{this.receiver=e(r,this)}catch(l){this.onError(l)}}}return l.prototype.handle=function(l){var n,u;if(!this.receiver||this.hasFragments)if(l.type===hn.FrameTypes.PAYLOAD){if(!hn.Flags.hasFollows(l.flags)){var e=dn.reassemble(this,l.data,l.metadata);try{this.receiver=this.handler(e,this)}catch(l){this.onError(l)}return}if(dn.add(this,l.data,l.metadata))return;u="Unexpected fragment size"}else u="Unexpected frame type [".concat(l.type,"] during reassembly");else{if(l.type===hn.FrameTypes.EXT)return void this.receiver.onExtension(l.extendedType,l.extendedContent,hn.Flags.hasIgnore(l.flags));u="Unexpected frame type [".concat(l.type,"]")}this.done=!0,null===(n=this.receiver)||void 0===n||n.cancel(),l.type!==hn.FrameTypes.CANCEL&&l.type!==hn.FrameTypes.ERROR&&this.stream.send({type:hn.FrameTypes.ERROR,flags:hn.Flags.NONE,code:an.ErrorCodes.CANCELED,message:u,streamId:this.streamId}),this.stream.disconnect(this),dn.cancel(this)},l.prototype.onError=function(l){this.done?console.warn("Trying to error for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(this.done=!0,this.stream.send({type:hn.FrameTypes.ERROR,flags:hn.Flags.NONE,code:l instanceof an.RSocketError?l.code:an.ErrorCodes.APPLICATION_ERROR,message:l.message,streamId:this.streamId}),this.stream.disconnect(this))},l.prototype.onNext=function(l,n){var u,e;if(!this.done){if(this.done=!0,(0,cn.isFragmentable)(l,this.fragmentSize,hn.FrameTypes.PAYLOAD))try{for(var t=on((0,cn.fragment)(this.streamId,l,this.fragmentSize,hn.FrameTypes.PAYLOAD,!0)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:hn.FrameTypes.PAYLOAD,flags:hn.Flags.NEXT|hn.Flags.COMPLETE|(l.metadata?hn.Flags.METADATA:0),data:l.data,metadata:l.metadata,streamId:this.streamId});this.stream.disconnect(this)}},l.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:hn.FrameTypes.PAYLOAD,flags:hn.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},l.prototype.onExtension=function(l,n,u){this.done||this.stream.send({type:hn.FrameTypes.EXT,streamId:this.streamId,flags:u?hn.Flags.IGNORE:hn.Flags.NONE,extendedType:l,extendedContent:n})},l.prototype.close=function(l){var n;this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(dn.cancel(this),null===(n=this.receiver)||void 0===n||n.cancel())},l}();en.RequestResponseResponderStream=fn;var mn={},yn=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),gn=r&&r.__setModuleDefault||(Object.create?function(l,n){Object.defineProperty(l,"default",{enumerable:!0,value:n})}:function(l,n){l.default=n}),En=r&&r.__importStar||function(l){if(l&&l.__esModule)return l;var n={};if(null!=l)for(var u in l)"default"!==u&&Object.prototype.hasOwnProperty.call(l,u)&&yn(n,l,u);return gn(n,l),n},wn=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty(mn,"__esModule",{value:!0}),mn.RequestStreamResponderStream=mn.RequestStreamRequesterStream=void 0;var bn=Rl,vn=xl,Sn=wl,Tn=En(Ul),Rn=function(){function l(l,n,u,e,t){this.payload=l,this.receiver=n,this.fragmentSize=u,this.initialRequestN=e,this.leaseManager=t,this.streamType=Sn.FrameTypes.REQUEST_STREAM}return l.prototype.handleReady=function(l,n){var u,e;if(this.done)return!1;if(this.streamId=l,this.stream=n,n.connect(this),(0,vn.isFragmentable)(this.payload,this.fragmentSize,Sn.FrameTypes.REQUEST_STREAM))try{for(var t=wn((0,vn.fragmentWithRequestN)(l,this.payload,this.fragmentSize,Sn.FrameTypes.REQUEST_STREAM,this.initialRequestN)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:Sn.FrameTypes.REQUEST_STREAM,data:this.payload.data,metadata:this.payload.metadata,requestN:this.initialRequestN,flags:void 0!==this.payload.metadata?Sn.Flags.METADATA:0,streamId:l});return this.hasExtension&&this.stream.send({type:Sn.FrameTypes.EXT,streamId:l,extendedContent:this.extendedContent,extendedType:this.extendedType,flags:this.flags}),!0},l.prototype.handleReject=function(l){this.done||(this.done=!0,this.receiver.onError(l))},l.prototype.handle=function(l){var n,u=l.type;switch(u){case Sn.FrameTypes.PAYLOAD:var e=Sn.Flags.hasComplete(l.flags),t=Sn.Flags.hasNext(l.flags);if(e||!Sn.Flags.hasFollows(l.flags)){if(e&&(this.done=!0,this.stream.disconnect(this),!t))return void this.receiver.onComplete();var r=this.hasFragments?Tn.reassemble(this,l.data,l.metadata):{data:l.data,metadata:l.metadata};return void this.receiver.onNext(r,e)}if(!Tn.add(this,l.data,l.metadata)){n="Unexpected fragment size";break}return;case Sn.FrameTypes.ERROR:return this.done=!0,this.stream.disconnect(this),Tn.cancel(this),void this.receiver.onError(new bn.RSocketError(l.code,l.message));case Sn.FrameTypes.EXT:if(this.hasFragments){n="Unexpected frame type [".concat(u,"] during reassembly");break}return void this.receiver.onExtension(l.extendedType,l.extendedContent,Sn.Flags.hasIgnore(l.flags));default:n="Unexpected frame type [".concat(u,"]")}this.close(new bn.RSocketError(bn.ErrorCodes.CANCELED,n)),this.stream.send({type:Sn.FrameTypes.CANCEL,streamId:this.streamId,flags:Sn.Flags.NONE}),this.stream.disconnect(this)},l.prototype.request=function(l){this.done||(this.streamId?this.stream.send({type:Sn.FrameTypes.REQUEST_N,flags:Sn.Flags.NONE,requestN:l,streamId:this.streamId}):this.initialRequestN+=l)},l.prototype.cancel=function(){var l;this.done||(this.done=!0,this.streamId?(this.stream.send({type:Sn.FrameTypes.CANCEL,flags:Sn.Flags.NONE,streamId:this.streamId}),this.stream.disconnect(this),Tn.cancel(this)):null===(l=this.leaseManager)||void 0===l||l.cancelRequest(this))},l.prototype.onExtension=function(l,n,u){if(!this.done)return this.streamId?void this.stream.send({streamId:this.streamId,type:Sn.FrameTypes.EXT,extendedType:l,extendedContent:n,flags:u?Sn.Flags.IGNORE:Sn.Flags.NONE}):(this.hasExtension=!0,this.extendedType=l,this.extendedContent=n,void(this.flags=u?Sn.Flags.IGNORE:Sn.Flags.NONE))},l.prototype.close=function(l){this.done||(this.done=!0,Tn.cancel(this),l?this.receiver.onError(l):this.receiver.onComplete())},l}();mn.RequestStreamRequesterStream=Rn;var _n=function(){function l(l,n,u,e,t){if(this.streamId=l,this.stream=n,this.fragmentSize=u,this.handler=e,this.streamType=Sn.FrameTypes.REQUEST_STREAM,n.connect(this),Sn.Flags.hasFollows(t.flags))return this.initialRequestN=t.requestN,void Tn.add(this,t.data,t.metadata);var r={data:t.data,metadata:t.metadata};try{this.receiver=e(r,t.requestN,this)}catch(l){this.onError(l)}}return l.prototype.handle=function(l){var n,u;if(!this.receiver||this.hasFragments)if(l.type===Sn.FrameTypes.PAYLOAD){if(!Sn.Flags.hasFollows(l.flags)){var e=Tn.reassemble(this,l.data,l.metadata);try{this.receiver=this.handler(e,this.initialRequestN,this)}catch(l){this.onError(l)}return}if(Tn.add(this,l.data,l.metadata))return;u="Unexpected frame size"}else u="Unexpected frame type [".concat(l.type,"] during reassembly");else{if(l.type===Sn.FrameTypes.REQUEST_N)return void this.receiver.request(l.requestN);if(l.type===Sn.FrameTypes.EXT)return void this.receiver.onExtension(l.extendedType,l.extendedContent,Sn.Flags.hasIgnore(l.flags));u="Unexpected frame type [".concat(l.type,"]")}this.done=!0,Tn.cancel(this),null===(n=this.receiver)||void 0===n||n.cancel(),l.type!==Sn.FrameTypes.CANCEL&&l.type!==Sn.FrameTypes.ERROR&&this.stream.send({type:Sn.FrameTypes.ERROR,flags:Sn.Flags.NONE,code:bn.ErrorCodes.CANCELED,message:u,streamId:this.streamId}),this.stream.disconnect(this)},l.prototype.onError=function(l){this.done?console.warn("Trying to error for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(this.done=!0,this.stream.send({type:Sn.FrameTypes.ERROR,flags:Sn.Flags.NONE,code:l instanceof bn.RSocketError?l.code:bn.ErrorCodes.APPLICATION_ERROR,message:l.message,streamId:this.streamId}),this.stream.disconnect(this))},l.prototype.onNext=function(l,n){var u,e;if(!this.done){if(n&&(this.done=!0),(0,vn.isFragmentable)(l,this.fragmentSize,Sn.FrameTypes.PAYLOAD))try{for(var t=wn((0,vn.fragment)(this.streamId,l,this.fragmentSize,Sn.FrameTypes.PAYLOAD,n)),r=t.next();!r.done;r=t.next()){var s=r.value;this.stream.send(s)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}else this.stream.send({type:Sn.FrameTypes.PAYLOAD,flags:Sn.Flags.NEXT|(n?Sn.Flags.COMPLETE:Sn.Flags.NONE)|(l.metadata?Sn.Flags.METADATA:Sn.Flags.NONE),data:l.data,metadata:l.metadata,streamId:this.streamId});n&&this.stream.disconnect(this)}},l.prototype.onComplete=function(){this.done||(this.done=!0,this.stream.send({type:Sn.FrameTypes.PAYLOAD,flags:Sn.Flags.COMPLETE,streamId:this.streamId,data:null,metadata:null}),this.stream.disconnect(this))},l.prototype.onExtension=function(l,n,u){this.done||this.stream.send({type:Sn.FrameTypes.EXT,streamId:this.streamId,flags:u?Sn.Flags.IGNORE:Sn.Flags.NONE,extendedType:l,extendedContent:n})},l.prototype.close=function(l){var n;this.done?console.warn("Trying to close for the second time. ".concat(l?"Dropping error [".concat(l,"]."):"")):(Tn.cancel(this),null===(n=this.receiver)||void 0===n||n.cancel())},l}();mn.RequestStreamResponderStream=_n,Object.defineProperty(Il,"__esModule",{value:!0}),Il.KeepAliveSender=Il.KeepAliveHandler=Il.DefaultConnectionFrameHandler=Il.DefaultStreamRequestHandler=Il.LeaseHandler=Il.RSocketRequester=void 0;var On=Rl,An=wl,Cn=Ll,Fn=zl,In=en,Ln=mn,xn=function(){function l(l,n,u){this.connection=l,this.fragmentSize=n,this.leaseManager=u}return l.prototype.fireAndForget=function(l,n){var u=new Fn.RequestFnFRequesterStream(l,n,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(u):this.connection.multiplexerDemultiplexer.createRequestStream(u),u},l.prototype.requestResponse=function(l,n){var u=new In.RequestResponseRequesterStream(l,n,this.fragmentSize,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(u):this.connection.multiplexerDemultiplexer.createRequestStream(u),u},l.prototype.requestStream=function(l,n,u){var e=new Ln.RequestStreamRequesterStream(l,u,this.fragmentSize,n,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(e):this.connection.multiplexerDemultiplexer.createRequestStream(e),e},l.prototype.requestChannel=function(l,n,u,e){var t=new Cn.RequestChannelRequesterStream(l,u,e,this.fragmentSize,n,this.leaseManager);return this.leaseManager?this.leaseManager.requestLease(t):this.connection.multiplexerDemultiplexer.createRequestStream(t),t},l.prototype.metadataPush=function(l,n){throw new Error("Method not implemented.")},l.prototype.close=function(l){this.connection.close(l)},l.prototype.onClose=function(l){this.connection.onClose(l)},l}();Il.RSocketRequester=xn;var Nn=function(){function l(l,n){this.maxPendingRequests=l,this.multiplexer=n,this.pendingRequests=[],this.expirationTime=0,this.availableLease=0}return l.prototype.handle=function(l){for(this.expirationTime=l.ttl+Date.now(),this.availableLease=l.requestCount;this.availableLease>0&&this.pendingRequests.length>0;){var n=this.pendingRequests.shift();this.availableLease--,this.multiplexer.createRequestStream(n)}},l.prototype.requestLease=function(l){var n=this.availableLease;if(n>0&&Date.now()<this.expirationTime)return this.availableLease=n-1,void this.multiplexer.createRequestStream(l);this.pendingRequests.length>=this.maxPendingRequests?l.handleReject(new On.RSocketError(On.ErrorCodes.REJECTED,"No available lease given")):this.pendingRequests.push(l)},l.prototype.cancelRequest=function(l){var n=this.pendingRequests.indexOf(l);n>-1&&this.pendingRequests.splice(n,1)},l}();Il.LeaseHandler=Nn;var kn=function(){function l(l,n){this.rsocket=l,this.fragmentSize=n}return l.prototype.handle=function(l,n){switch(l.type){case An.FrameTypes.REQUEST_FNF:return void(this.rsocket.fireAndForget&&new Fn.RequestFnfResponderStream(l.streamId,n,this.rsocket.fireAndForget.bind(this.rsocket),l));case An.FrameTypes.REQUEST_RESPONSE:return this.rsocket.requestResponse?void new In.RequestResponseResponderStream(l.streamId,n,this.fragmentSize,this.rsocket.requestResponse.bind(this.rsocket),l):void this.rejectRequest(l.streamId,n);case An.FrameTypes.REQUEST_STREAM:return this.rsocket.requestStream?void new Ln.RequestStreamResponderStream(l.streamId,n,this.fragmentSize,this.rsocket.requestStream.bind(this.rsocket),l):void this.rejectRequest(l.streamId,n);case An.FrameTypes.REQUEST_CHANNEL:return this.rsocket.requestChannel?void new Cn.RequestChannelResponderStream(l.streamId,n,this.fragmentSize,this.rsocket.requestChannel.bind(this.rsocket),l):void this.rejectRequest(l.streamId,n)}},l.prototype.rejectRequest=function(l,n){n.send({type:An.FrameTypes.ERROR,streamId:l,flags:An.Flags.NONE,code:On.ErrorCodes.REJECTED,message:"No available handler found"})},l.prototype.close=function(){},l}();Il.DefaultStreamRequestHandler=kn;var Un,Dn=function(){function l(l,n,u,e,t){this.connection=l,this.keepAliveHandler=n,this.keepAliveSender=u,this.leaseHandler=e,this.rsocket=t}return l.prototype.handle=function(l){switch(l.type){case An.FrameTypes.KEEPALIVE:return void this.keepAliveHandler.handle(l);case An.FrameTypes.LEASE:return this.leaseHandler?void this.leaseHandler.handle(l):void 0;case An.FrameTypes.ERROR:return void this.connection.close(new On.RSocketError(l.code,l.message));case An.FrameTypes.METADATA_PUSH:return void this.rsocket.metadataPush;default:this.connection.multiplexerDemultiplexer.connectionOutbound.send({type:An.FrameTypes.ERROR,streamId:0,flags:An.Flags.NONE,message:"Received unknown frame type",code:On.ErrorCodes.CONNECTION_ERROR})}},l.prototype.pause=function(){var l;this.keepAliveHandler.pause(),null===(l=this.keepAliveSender)||void 0===l||l.pause()},l.prototype.resume=function(){var l;this.keepAliveHandler.start(),null===(l=this.keepAliveSender)||void 0===l||l.start()},l.prototype.close=function(l){var n;this.keepAliveHandler.close(),null===(n=this.rsocket.close)||void 0===n||n.call(this.rsocket,l)},l}();Il.DefaultConnectionFrameHandler=Dn,function(l){l[l.Paused=0]="Paused",l[l.Running=1]="Running",l[l.Closed=2]="Closed"}(Un||(Un={}));var Pn,Mn=function(){function l(l,n){this.connection=l,this.keepAliveTimeoutDuration=n,this.state=Un.Paused,this.outbound=l.multiplexerDemultiplexer.connectionOutbound}return l.prototype.handle=function(l){this.keepAliveLastReceivedMillis=Date.now(),An.Flags.hasRespond(l.flags)&&this.outbound.send({type:An.FrameTypes.KEEPALIVE,streamId:0,data:l.data,flags:l.flags^An.Flags.RESPOND,lastReceivedPosition:0})},l.prototype.start=function(){this.state===Un.Paused&&(this.keepAliveLastReceivedMillis=Date.now(),this.state=Un.Running,this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),this.keepAliveTimeoutDuration))},l.prototype.pause=function(){this.state===Un.Running&&(this.state=Un.Paused,clearTimeout(this.activeTimeout))},l.prototype.close=function(){this.state=Un.Closed,clearTimeout(this.activeTimeout)},l.prototype.timeoutCheck=function(){var l=Date.now()-this.keepAliveLastReceivedMillis;l>=this.keepAliveTimeoutDuration?this.connection.close(new Error("No keep-alive acks for ".concat(this.keepAliveTimeoutDuration," millis"))):this.activeTimeout=setTimeout(this.timeoutCheck.bind(this),Math.max(100,this.keepAliveTimeoutDuration-l))},l}();Il.KeepAliveHandler=Mn,function(l){l[l.Paused=0]="Paused",l[l.Running=1]="Running",l[l.Closed=2]="Closed"}(Pn||(Pn={}));var Bn=function(){function l(l,n){this.outbound=l,this.keepAlivePeriodDuration=n,this.state=Pn.Paused}return l.prototype.sendKeepAlive=function(){this.outbound.send({type:An.FrameTypes.KEEPALIVE,streamId:0,data:void 0,flags:An.Flags.RESPOND,lastReceivedPosition:0})},l.prototype.start=function(){this.state===Pn.Paused&&(this.state=Pn.Running,this.activeInterval=setInterval(this.sendKeepAlive.bind(this),this.keepAlivePeriodDuration))},l.prototype.pause=function(){this.state===Pn.Running&&(this.state=Pn.Paused,clearInterval(this.activeInterval))},l.prototype.close=function(){this.state=Pn.Closed,clearInterval(this.activeInterval)},l}();Il.KeepAliveSender=Bn;var qn,jn,$n={};function Wn(){if(qn)return $n;qn=1;var l=r&&r.__values||function(l){var n="function"==typeof Symbol&&Symbol.iterator,u=n&&l[n],e=0;if(u)return u.call(l);if(l&&"number"==typeof l.length)return{next:function(){return l&&e>=l.length&&(l=void 0),{value:l&&l[e++],done:!l}}};throw new TypeError(n?"Object is not iterable.":"Symbol.iterator is not defined.")};Object.defineProperty($n,"__esModule",{value:!0}),$n.FrameStore=void 0;var n=Xn(),u=El,e=function(){function e(){this.storedFrames=[],this._lastReceivedFramePosition=0,this._firstAvailableFramePosition=0,this._lastSentFramePosition=0}return Object.defineProperty(e.prototype,"lastReceivedFramePosition",{get:function(){return this._lastReceivedFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"firstAvailableFramePosition",{get:function(){return this._firstAvailableFramePosition},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"lastSentFramePosition",{get:function(){return this._lastSentFramePosition},enumerable:!1,configurable:!0}),e.prototype.store=function(l){this._lastSentFramePosition+=(0,u.sizeOfFrame)(l),this.storedFrames.push(l)},e.prototype.record=function(l){this._lastReceivedFramePosition+=(0,u.sizeOfFrame)(l)},e.prototype.dropTo=function(l){for(var e=l-this._firstAvailableFramePosition;e>0&&this.storedFrames.length>0;){var t=this.storedFrames.shift();e-=(0,u.sizeOfFrame)(t)}if(0!==e)throw new n.RSocketError(n.ErrorCodes.CONNECTION_ERROR,"State inconsistency. Expected bytes to drop ".concat(l-this._firstAvailableFramePosition," but actual ").concat(e));this._firstAvailableFramePosition=l},e.prototype.drain=function(n){var u,e;try{for(var t=l(this.storedFrames),r=t.next();!r.done;r=t.next()){n(r.value)}}catch(l){u={error:l}}finally{try{r&&!r.done&&(e=t.return)&&e.call(t)}finally{if(u)throw u.error}}},e}();return $n.FrameStore=e,$n}function Qn(){if(jn)return Al;jn=1;var l=r&&r.__awaiter||function(l,n,u,e){return new(u||(u=Promise))((function(t,r){function s(l){try{o(e.next(l))}catch(l){r(l)}}function i(l){try{o(e.throw(l))}catch(l){r(l)}}function o(l){var n;l.done?t(l.value):(n=l.value,n instanceof u?n:new u((function(l){l(n)}))).then(s,i)}o((e=e.apply(l,n||[])).next())}))},n=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(Al,"__esModule",{value:!0}),Al.RSocketConnector=void 0;var u=Fl(),e=wl,t=Il,s=Wn(),i=function(){function r(l){this.config=l}return r.prototype.connect=function(){var r,i,o,a,c,h,d,p,f,m,y,g,E,w,b,v,S,T,R,_;return l(this,void 0,void 0,(function(){var O,A,C,F,I,L,x,N,k,U=this;return n(this,(function(D){switch(D.label){case 0:return O=this.config,A={type:e.FrameTypes.SETUP,dataMimeType:null!==(i=null===(r=O.setup)||void 0===r?void 0:r.dataMimeType)&&void 0!==i?i:"application/octet-stream",metadataMimeType:null!==(a=null===(o=O.setup)||void 0===o?void 0:o.metadataMimeType)&&void 0!==a?a:"application/octet-stream",keepAlive:null!==(h=null===(c=O.setup)||void 0===c?void 0:c.keepAlive)&&void 0!==h?h:6e4,lifetime:null!==(p=null===(d=O.setup)||void 0===d?void 0:d.lifetime)&&void 0!==p?p:3e5,metadata:null===(m=null===(f=O.setup)||void 0===f?void 0:f.payload)||void 0===m?void 0:m.metadata,data:null===(g=null===(y=O.setup)||void 0===y?void 0:y.payload)||void 0===g?void 0:g.data,resumeToken:null!==(w=null===(E=O.resume)||void 0===E?void 0:E.tokenGenerator())&&void 0!==w?w:null,streamId:0,majorVersion:1,minorVersion:0,flags:((null===(v=null===(b=O.setup)||void 0===b?void 0:b.payload)||void 0===v?void 0:v.metadata)?e.Flags.METADATA:e.Flags.NONE)|(O.lease?e.Flags.LEASE:e.Flags.NONE)|(O.resume?e.Flags.RESUME_ENABLE:e.Flags.NONE)},[4,O.transport.connect((function(t){return O.resume?new u.ResumableClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(-1),t,t,new s.FrameStore,A.resumeToken.toString(),(function(t,r){return l(U,void 0,void 0,(function(){var l,s,i;return n(this,(function(n){switch(n.label){case 0:return l=function(l){return l.send({type:e.FrameTypes.RESUME,streamId:0,flags:e.Flags.NONE,clientPosition:r.firstAvailableFramePosition,serverPosition:r.lastReceivedFramePosition,majorVersion:A.minorVersion,minorVersion:A.majorVersion,resumeToken:A.resumeToken}),new u.ResumeOkAwaitingResumableClientServerInputMultiplexerDemultiplexer(l,l,t)},s=-1,[4,(i=function(){return s++,O.resume.reconnectFunction(s).then((function(){return O.transport.connect(l).catch(i)}))})()];case 1:return n.sent(),[2]}}))}))})):new u.ClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(-1),t,t)}))];case 1:return C=D.sent(),F=new t.KeepAliveSender(C.multiplexerDemultiplexer.connectionOutbound,A.keepAlive),I=new t.KeepAliveHandler(C,A.lifetime),L=O.lease?new t.LeaseHandler(null!==(S=O.lease.maxPendingRequests)&&void 0!==S?S:256,C.multiplexerDemultiplexer):void 0,x=null!==(T=O.responder)&&void 0!==T?T:{},N=new t.DefaultConnectionFrameHandler(C,I,F,L,x),k=new t.DefaultStreamRequestHandler(x,0),C.onClose((function(l){F.close(),I.close(),N.close(l)})),C.multiplexerDemultiplexer.connectionInbound(N),C.multiplexerDemultiplexer.handleRequestStream(k),C.multiplexerDemultiplexer.connectionOutbound.send(A),I.start(),F.start(),[2,new t.RSocketRequester(C,null!==(_=null===(R=O.fragmentation)||void 0===R?void 0:R.maxOutboundFragmentSize)&&void 0!==_?_:0,L)]}}))}))},r}();return Al.RSocketConnector=i,Al}var Hn,zn={};function Vn(){if(Hn)return zn;Hn=1;var l=r&&r.__awaiter||function(l,n,u,e){return new(u||(u=Promise))((function(t,r){function s(l){try{o(e.next(l))}catch(l){r(l)}}function i(l){try{o(e.throw(l))}catch(l){r(l)}}function o(l){var n;l.done?t(l.value):(n=l.value,n instanceof u?n:new u((function(l){l(n)}))).then(s,i)}o((e=e.apply(l,n||[])).next())}))},n=r&&r.__generator||function(l,n){var u,e,t,r,s={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return r={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function i(r){return function(i){return function(r){if(u)throw new TypeError("Generator is already executing.");for(;s;)try{if(u=1,e&&(t=2&r[0]?e.return:r[0]?e.throw||((t=e.return)&&t.call(e),0):e.next)&&!(t=t.call(e,r[1])).done)return t;switch(e=0,t&&(r=[2&r[0],t.value]),r[0]){case 0:case 1:t=r;break;case 4:return s.label++,{value:r[1],done:!1};case 5:s.label++,e=r[1],r=[0];continue;case 7:r=s.ops.pop(),s.trys.pop();continue;default:if(!(t=s.trys,(t=t.length>0&&t[t.length-1])||6!==r[0]&&2!==r[0])){s=0;continue}if(3===r[0]&&(!t||r[1]>t[0]&&r[1]<t[3])){s.label=r[1];break}if(6===r[0]&&s.label<t[1]){s.label=t[1],t=r;break}if(t&&s.label<t[2]){s.label=t[2],s.ops.push(r);break}t[2]&&s.ops.pop(),s.trys.pop();continue}r=n.call(l,s)}catch(l){r=[6,l],e=0}finally{u=t=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,i])}}};Object.defineProperty(zn,"__esModule",{value:!0}),zn.RSocketServer=void 0;var u=Fl(),e=Rl,t=wl,s=Il,i=Wn(),o=function(){function r(l){var n,u;this.acceptor=l.acceptor,this.transport=l.transport,this.lease=l.lease,this.serverSideKeepAlive=l.serverSideKeepAlive,this.sessionStore=l.resume?{}:void 0,this.sessionTimeout=null!==(u=null===(n=l.resume)||void 0===n?void 0:n.sessionTimeout)&&void 0!==u?u:void 0}return r.prototype.bind=function(){return l(this,void 0,void 0,(function(){var r=this;return n(this,(function(o){switch(o.label){case 0:return[4,this.transport.bind((function(u,i){return l(r,void 0,void 0,(function(){var l,r,o,a,c,h,d,p,f,m,y,g,E;return n(this,(function(n){switch(n.label){case 0:switch(u.type){case t.FrameTypes.SETUP:return[3,1];case t.FrameTypes.RESUME:return[3,5]}return[3,6];case 1:return n.trys.push([1,3,,4]),this.lease&&!t.Flags.hasLease(u.flags)?(l=new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,"Lease has to be enabled"),i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,flags:t.Flags.NONE,code:l.code,message:l.message}),i.close(l),[2]):t.Flags.hasLease(u.flags)&&!this.lease?(l=new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,"Lease has to be disabled"),i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,flags:t.Flags.NONE,code:l.code,message:l.message}),i.close(l),[2]):(r=t.Flags.hasLease(u.flags)?new s.LeaseHandler(null!==(m=this.lease.maxPendingRequests)&&void 0!==m?m:256,i.multiplexerDemultiplexer):void 0,o=new s.RSocketRequester(i,null!==(g=null===(y=this.fragmentation)||void 0===y?void 0:y.maxOutboundFragmentSize)&&void 0!==g?g:0,r),[4,this.acceptor.accept({data:u.data,dataMimeType:u.dataMimeType,metadata:u.metadata,metadataMimeType:u.metadataMimeType,flags:u.flags,keepAliveMaxLifetime:u.lifetime,keepAliveInterval:u.keepAlive,resumeToken:u.resumeToken},o)]);case 2:return a=n.sent(),c=new s.KeepAliveHandler(i,u.lifetime),h=this.serverSideKeepAlive?new s.KeepAliveSender(i.multiplexerDemultiplexer.connectionOutbound,u.keepAlive):void 0,d=new s.DefaultConnectionFrameHandler(i,c,h,r,a),p=new s.DefaultStreamRequestHandler(a,0),i.onClose((function(l){null==h||h.close(),c.close(),d.close(l)})),i.multiplexerDemultiplexer.connectionInbound(d),i.multiplexerDemultiplexer.handleRequestStream(p),c.start(),null==h||h.start(),[3,4];case 3:return f=n.sent(),i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.REJECTED_SETUP,message:null!==(E=f.message)&&void 0!==E?E:"",flags:t.Flags.NONE}),i.close(f instanceof e.RSocketError?f:new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,f.message)),[3,4];case 4:case 5:return[2];case 6:i.multiplexerDemultiplexer.connectionOutbound.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.UNSUPPORTED_SETUP,message:"Unsupported setup",flags:t.Flags.NONE}),i.close(new e.RSocketError(e.ErrorCodes.UNSUPPORTED_SETUP)),n.label=7;case 7:return[2]}}))}))}),(function(l,n){if(l.type===t.FrameTypes.RESUME){if(r.sessionStore){var s=r.sessionStore[l.resumeToken.toString()];return s?(s.resume(l,n,n),s):(n.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.REJECTED_RESUME,message:"No session found for the given resume token",flags:t.Flags.NONE}),void n.close())}return n.send({type:t.FrameTypes.ERROR,streamId:0,code:e.ErrorCodes.REJECTED_RESUME,message:"Resume is not enabled",flags:t.Flags.NONE}),void n.close()}if(l.type===t.FrameTypes.SETUP&&t.Flags.hasResume(l.flags)){if(!r.sessionStore){var o=new e.RSocketError(e.ErrorCodes.REJECTED_SETUP,"No resume support");return n.send({type:t.FrameTypes.ERROR,streamId:0,flags:t.Flags.NONE,code:o.code,message:o.message}),void n.close(o)}var a=new u.ResumableClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(0),n,n,new i.FrameStore,l.resumeToken.toString(),r.sessionStore,r.sessionTimeout);return r.sessionStore[l.resumeToken.toString()]=a,a}return new u.ClientServerInputMultiplexerDemultiplexer(u.StreamIdGenerator.create(0),n,n)}))];case 1:return[2,o.sent()]}}))}))},r}();return zn.RSocketServer=o,zn}var Gn,Jn={};function Xn(){return Gn||(Gn=1,function(l){var n=r&&r.__createBinding||(Object.create?function(l,n,u,e){void 0===e&&(e=u),Object.defineProperty(l,e,{enumerable:!0,get:function(){return n[u]}})}:function(l,n,u,e){void 0===e&&(e=u),l[e]=n[u]}),u=r&&r.__exportStar||function(l,u){for(var e in l)"default"===e||Object.prototype.hasOwnProperty.call(u,e)||n(u,l,e)};Object.defineProperty(l,"__esModule",{value:!0}),u(El,l),u(bl,l),u(vl,l),u(Rl,l),u(wl,l),u(_l,l),u(Qn(),l),u(Vn(),l),u(Jn,l)}(yl)),yl}Object.defineProperty(Jn,"__esModule",{value:!0});var Yn=Xn(),Kn="1.41.0";const Zn={highWater:10,lowWater:0};class lu extends R{options;dataQueue;isClosed;processingPromise;notifyDataAdded;logger;mapLine;constructor(l){if(super(),this.options=l,this.processingPromise=null,this.isClosed=!1,this.dataQueue=[],this.mapLine=l?.mapLine??(l=>l),this.logger=l?.logger??y.get("DataStream"),l?.closeOnError){const l=this.registerListener({error:n=>{l?.(),this.close()}})}}get highWatermark(){return this.options?.pressure?.highWaterMark??Zn.highWater}get lowWatermark(){return this.options?.pressure?.lowWaterMark??Zn.lowWater}get closed(){return this.isClosed}async close(){this.isClosed=!0,await this.processingPromise,this.iterateListeners((l=>l.closed?.())),this.dataQueue=[],this.listeners.clear()}enqueueData(l){if(this.isClosed)throw new Error("Cannot enqueue data into closed stream.");this.dataQueue.push(l),this.notifyDataAdded?.(),this.processQueue()}async read(){return this.closed?null:new Promise(((l,n)=>{const u=this.registerListener({data:async n=>{l(n),u?.()},closed:()=>{l(null),u?.()},error:l=>{n(l),u?.()}});this.processQueue()}))}forEach(l){return this.dataQueue.length<=this.lowWatermark&&this.iterateAsyncErrored((async l=>l.lowWater?.())),this.registerListener({data:l})}processQueue(){if(this.processingPromise)return;const l=this.processingPromise=this._processQueue();return l.finally((()=>this.processingPromise=null)),l}hasDataReader(){return Array.from(this.listeners.values()).some((l=>!!l.data))}async _processQueue(){if(this.dataQueue.length>=this.highWatermark&&await this.iterateAsyncErrored((async l=>l.highWater?.())),!this.isClosed&&this.hasDataReader()){if(this.dataQueue.length){const l=this.dataQueue.shift(),n=this.mapLine(l);await this.iterateAsyncErrored((async l=>l.data?.(n)))}if(this.dataQueue.length<=this.lowWatermark){const l=new Promise((l=>{this.notifyDataAdded=l}));await Promise.race([this.iterateAsyncErrored((async l=>l.lowWater?.())),l]),this.notifyDataAdded=null}this.dataQueue.length>0&&setTimeout((()=>this.processQueue()))}}async iterateAsyncErrored(l){const n=Array.from(this.listeners.values());for(let u of n)try{await l(u)}catch(l){this.logger.error(l),this.iterateListeners((n=>n.error?.(l)))}}}var nu,uu={},eu=r&&r.__extends||(nu=function(l,n){return nu=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(l,n){l.__proto__=n}||function(l,n){for(var u in n)Object.prototype.hasOwnProperty.call(n,u)&&(l[u]=n[u])},nu(l,n)},function(l,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function u(){this.constructor=l}nu(l,n),l.prototype=null===n?Object.create(n):(u.prototype=n.prototype,new u)});Object.defineProperty(uu,"__esModule",{value:!0});var tu=uu.WebsocketDuplexConnection=void 0,ru=Xn(),su=function(l){function n(n,u,e){var t=l.call(this)||this;return t.websocket=n,t.deserializer=u,t.handleClosed=function(l){t.close(new Error(l.reason||"WebsocketDuplexConnection: Socket closed unexpectedly."))},t.handleError=function(l){t.close(l.error)},t.handleMessage=function(l){try{var n=gl.Buffer.from(l.data),u=t.deserializer.deserializeFrame(n);t.multiplexerDemultiplexer.handle(u)}catch(l){t.close(l)}},n.addEventListener("close",t.handleClosed),n.addEventListener("error",t.handleError),n.addEventListener("message",t.handleMessage),t.multiplexerDemultiplexer=e(t),t}return eu(n,l),Object.defineProperty(n.prototype,"availability",{get:function(){return this.done?0:1},enumerable:!1,configurable:!0}),n.prototype.close=function(n){this.done||(this.websocket.removeEventListener("close",this.handleClosed),this.websocket.removeEventListener("error",this.handleError),this.websocket.removeEventListener("message",this.handleMessage),this.websocket.close(),delete this.websocket),l.prototype.close.call(this,n)},n.prototype.send=function(l){if(!this.done){var n=(0,ru.serializeFrame)(l);this.websocket.send(n)}},n}(ru.Deferred);tu=uu.WebsocketDuplexConnection=su;class iu{url;factory;constructor(l){this.url=l.url,this.factory=l.wsCreator??(l=>new WebSocket(l))}connect(l){return new Promise(((n,u)=>{const e=this.factory(this.url);let t;e.binaryType="arraybuffer";const r=()=>{t(),n(new tu(e,new Yn.Deserializer,l))},s=l=>{t(),null!=l.error?u(l.error):null!=l.message?u(new Error(`Failed to create websocket connection: ${l.message}`)):u(new Error(`Failed to create websocket connection to ${this.url}`))},i=()=>{t(),u(new Error("WebSocket connection closed while opening"))};t=()=>{e.removeEventListener("open",r),e.removeEventListener("error",s),e.removeEventListener("close",i)},e.addEventListener("open",r),e.addEventListener("error",s),e.addEventListener("close",i)}))}}const ou=/\/+$/,au=Kn,cu=y.get("PowerSyncRemote");var hu;exports.FetchStrategy=void 0,(hu=exports.FetchStrategy||(exports.FetchStrategy={})).Buffered="buffered",hu.Sequential="sequential";class du{getFetch(){throw new Error("Unspecified fetch implementation")}}const pu={socketUrlTransformer:l=>l.replace(/^https?:\/\//,(function(l){return"https://"===l?"wss://":"ws://"})),fetchImplementation:new du,fetchOptions:{}};function fu(l){return{priority:l.priority,hasSynced:l.has_synced??void 0,lastSyncedAt:null!=l.last_synced_at?new Date(1e3*l.last_synced_at):void 0}}function mu(l){const n=l.priority_status.find((l=>l.priority==w)),u=null!=n?fu(n):null;return{connected:l.connected,connecting:l.connecting,dataFlow:{downloading:null!=l.downloading,downloadProgress:l.downloading?.buckets,internalStreamSubscriptions:l.streams},lastSyncedAt:u?.lastSyncedAt,hasSynced:u?.hasSynced,priorityStatusEntries:l.priority_status.map(fu)}}function yu(l){return null!=l.data}function gu(l){return null!=l.token_expires_in}function Eu(l){return null!=l.checkpoint}function wu(l){return null!=l.checkpoint_complete}function bu(l){return null!=l.partial_checkpoint_complete}function vu(l){return null!=l.checkpoint_diff}var Su,Tu,Ru;exports.LockType=void 0,(Su=exports.LockType||(exports.LockType={})).CRUD="crud",Su.SYNC="sync",exports.SyncStreamConnectionMethod=void 0,(Tu=exports.SyncStreamConnectionMethod||(exports.SyncStreamConnectionMethod={})).HTTP="http",Tu.WEB_SOCKET="web-socket",exports.SyncClientImplementation=void 0,(Ru=exports.SyncClientImplementation||(exports.SyncClientImplementation={})).JAVASCRIPT="js",Ru.RUST="rust";const _u=exports.SyncClientImplementation.JAVASCRIPT,Ou=1e3,Au=5e3,Cu={retryDelayMs:Au,crudUploadThrottleMs:Ou},Fu={connectionMethod:exports.SyncStreamConnectionMethod.WEB_SOCKET,clientImplementation:_u,fetchStrategy:exports.FetchStrategy.Buffered,params:{},serializedSchema:void 0,includeDefaultStreams:!0};var Iu;exports.DiffTriggerOperation=void 0,(Iu=exports.DiffTriggerOperation||(exports.DiffTriggerOperation={})).INSERT="INSERT",Iu.UPDATE="UPDATE",Iu.DELETE="DELETE";class Lu{options;schema;constructor(l){this.options=l,this.schema=l.schema,l.db.registerListener({schemaChanged:l=>{this.schema=l}})}get db(){return this.options.db}async getUUID(){const{id:l}=await this.db.get("\n SELECT\n uuid () as id\n ");return l.replace(/-/g,"_")}async removeTriggers(l,n){for(const u of n)await l.execute(`DROP TRIGGER IF EXISTS ${u}; `)}async createDiffTrigger(l){await this.db.waitForReady();const{source:n,destination:u,columns:e,when:t,hooks:r}=l,s=Object.keys(t);if(0==s.length)throw new Error("At least one WHEN operation must be specified for the trigger.");const i=Object.fromEntries(Object.entries(t).map((([l,n])=>[l,`WHEN ${n}`]))),o=this.schema.tables.find((l=>l.viewName==n));if(!o)throw new Error(`Source table or view "${n}" not found in the schema.`);const a=e??o.columns.map((l=>l.name)),c=o.internalName,h=[],d=await this.getUUID(),p=(l="NEW")=>null==e?`${l}.data`:0==e.length?"'{}'":`json_object(${a.map((n=>`'${n}', json_extract(${l}.data, '$.${n}')`)).join(", ")})`,f=this.db.registerListener({schemaChanged:()=>{this.db.logger.warn("The PowerSync schema has changed while previously configured triggers are still operational. This might cause unexpected results.")}}),m=async()=>(f(),this.db.writeLock((async l=>{await this.removeTriggers(l,h),await l.execute(`DROP TABLE IF EXISTS ${u};`)}))),y=async l=>{if(await(r?.beforeCreate?.(l)),await l.execute(`\n CREATE TEMP TABLE ${u} (\n id TEXT,\n operation TEXT,\n timestamp TEXT,\n value TEXT,\n previous_value TEXT\n );\n `),s.includes(exports.DiffTriggerOperation.INSERT)){const n=`ps_temp_trigger_insert_${d}`;h.push(n),await l.execute(`\n CREATE TEMP TRIGGER ${n} AFTER INSERT ON ${c} ${i[exports.DiffTriggerOperation.INSERT]} BEGIN\n INSERT INTO\n ${u} (id, operation, timestamp, value)\n VALUES\n (\n NEW.id,\n 'INSERT',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${p("NEW")}\n );\n\n END;\n `)}if(s.includes(exports.DiffTriggerOperation.UPDATE)){const n=`ps_temp_trigger_update_${d}`;h.push(n),await l.execute(`\n CREATE TEMP TRIGGER ${n} AFTER\n UPDATE ON ${c} ${i[exports.DiffTriggerOperation.UPDATE]} BEGIN\n INSERT INTO\n ${u} (id, operation, timestamp, value, previous_value)\n VALUES\n (\n NEW.id,\n 'UPDATE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${p("NEW")},\n ${p("OLD")}\n );\n\n END;\n `)}if(s.includes(exports.DiffTriggerOperation.DELETE)){const n=`ps_temp_trigger_delete_${d}`;h.push(n),await l.execute(`\n CREATE TEMP TRIGGER ${n} AFTER DELETE ON ${c} ${i[exports.DiffTriggerOperation.DELETE]} BEGIN\n INSERT INTO\n ${u} (id, operation, timestamp, value)\n VALUES\n (\n OLD.id,\n 'DELETE',\n strftime ('%Y-%m-%dT%H:%M:%fZ', 'now'),\n ${p("OLD")}\n );\n\n END;\n `)}};try{return await this.db.writeLock(y),m}catch(l){try{await m()}catch(n){throw new AggregateError([l,n],"Error during operation and cleanup")}throw l}}async trackTableDiff(l){const{source:n,when:u,columns:e,hooks:t,throttleMs:r=k}=l;await this.db.waitForReady();const s=this.schema.tables.find((l=>l.viewName==n));if(!s)throw new Error(`Source table or view "${n}" not found in the schema.`);const i=e??s.columns.map((l=>l.name)),o=await this.getUUID(),a=`ps_temp_track_${n}_${o}`,c=new AbortController,h=()=>c.abort();this.db.onChange({onChange:async()=>{c.signal.aborted||await this.db.writeTransaction((async n=>{const u=await l.onChange({...n,destinationTable:a,withDiff:async(l,u)=>{const e=`\n WITH\n DIFF AS (\n SELECT\n *\n FROM\n ${a}\n ORDER BY\n timestamp ASC\n ) ${l}\n `;return n.getAll(e,u)},withExtractedDiff:async(l,u)=>{const e=`\n WITH\n DIFF AS (\n SELECT\n id,\n ${i.length>0?`${i.map((l=>`json_extract(value, '$.${l}') as ${l}`)).join(", ")},`:""} operation as __operation,\n timestamp as __timestamp,\n previous_value as __previous_value\n FROM\n ${a}\n ORDER BY\n __timestamp ASC\n ) ${l}\n `;return n.getAll(e,u)}});return await n.execute(`DELETE FROM ${a};`),u}))}},{tables:[a],signal:c.signal,throttleMs:r});try{const l=await this.createDiffTrigger({source:n,destination:a,columns:i,when:u,hooks:t});return async()=>{h(),await l()}}catch(l){try{h()}catch(n){throw new AggregateError([l,n],"Error during operation and cleanup")}throw l}}}const xu=/(^ps_data__|^ps_data_local__)/,Nu={clearLocal:!0},ku={disconnect:!0},Uu={retryDelayMs:5e3,crudUploadThrottleMs:Ou},Du=12e4,Pu=l=>"object"==typeof l&&j(l.database);function Mu(l,n,u){const e=()=>{const t=new AbortController;let r=null;const s=()=>{t.abort("Abort triggered"),r?.(),r=null,u?.signal?.removeEventListener("abort",s)};u?.signal?.addEventListener("abort",s),r=n.registerListener({schemaChanged:async()=>{s(),setTimeout((()=>e()),0)}}),l(t.signal)};e()}const Bu="9223372036854775807";class qu extends R{db;logger;tableNames;_hasCompletedSync;updateListener;_clientId;constructor(l,n=y.get("SqliteBucketStorage")){super(),this.db=l,this.logger=n,this._hasCompletedSync=!1,this.tableNames=new Set,this.updateListener=l.registerListener({tablesUpdated:l=>{E(l).includes(exports.PSInternalTable.CRUD)&&this.iterateListeners((l=>l.crudUpdate?.()))}})}async init(){this._hasCompletedSync=!1;const l=await this.db.getAll("SELECT name FROM sqlite_master WHERE type='table' AND name GLOB 'ps_data_*'");for(const n of l??[])this.tableNames.add(n.name)}async dispose(){this.updateListener?.()}async _getClientId(){return(await this.db.get("SELECT powersync_client_id() as client_id")).client_id}getClientId(){return null==this._clientId&&(this._clientId=this._getClientId()),this._clientId}getMaxOpId(){return Bu}startSession(){}async getBucketStates(){return await this.db.getAll("SELECT name as bucket, cast(last_op as TEXT) as op_id FROM ps_buckets WHERE pending_delete = 0 AND name != '$local'")}async getBucketOperationProgress(){const l=await this.db.getAll("SELECT name, count_at_last, count_since_last FROM ps_buckets");return Object.fromEntries(l.map((l=>[l.name,{atLast:l.count_at_last,sinceLast:l.count_since_last}])))}async saveSyncData(l,n=!1){await this.writeTransaction((async u=>{for(const e of l.buckets)await u.execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",["save",JSON.stringify({buckets:[e.toJSON(n)]})]),this.logger.debug(`Saved batch of data for bucket: ${e.bucket}, operations: ${e.data.length}`)}))}async removeBuckets(l){for(const n of l)await this.deleteBucket(n)}async deleteBucket(l){await this.writeTransaction((async n=>{await n.execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",["delete_bucket",l])})),this.logger.debug(`Done deleting bucket ${l}`)}async hasCompletedSync(){if(this._hasCompletedSync)return!0;const l=null!=(await this.db.get("SELECT powersync_last_synced_at() as synced_at")).synced_at;return l&&(this._hasCompletedSync=!0),l}async syncLocalDatabase(l,n){const u=await this.validateChecksums(l,n);if(!u.checkpointValid){this.logger.error("Checksums failed for",u.checkpointFailures);for(const l of u.checkpointFailures??[])await this.deleteBucket(l);return{ready:!1,checkpointValid:!1,checkpointFailures:u.checkpointFailures}}null==n?this.logger.debug(`Validated checksums checkpoint ${l.last_op_id}`):this.logger.debug(`Validated checksums for partial checkpoint ${l.last_op_id}, priority ${n}`);let e=l.buckets;void 0!==n&&(e=e.filter((l=>ju(n,l))));const t=e.map((l=>l.bucket));await this.writeTransaction((async u=>{await u.execute("UPDATE ps_buckets SET last_op = ? WHERE name IN (SELECT json_each.value FROM json_each(?))",[l.last_op_id,JSON.stringify(t)]),null==n&&l.write_checkpoint&&await u.execute("UPDATE ps_buckets SET last_op = ? WHERE name = '$local'",[l.write_checkpoint])}));return await this.updateObjectsFromBuckets(l,n)?{ready:!0,checkpointValid:!0}:{ready:!1,checkpointValid:!0}}async updateObjectsFromBuckets(l,n){let u="";if(void 0!==n){const e=[];for(const u of l.buckets)ju(n,u)&&e.push(u.bucket);u=JSON.stringify({priority:n,buckets:e})}return this.writeTransaction((async e=>{const{insertId:t}=await e.execute("INSERT INTO powersync_operations(op, data) VALUES(?, ?)",["sync_local",u]);if(1==t){if(null==n){const n=Object.fromEntries(l.buckets.map((l=>[l.bucket,l.count]))),u=JSON.stringify(n);await e.execute("UPDATE ps_buckets SET count_since_last = 0, count_at_last = ?->name WHERE name != '$local' AND ?->name IS NOT NULL",[u,u])}return!0}return!1}))}async validateChecksums(l,n){if(void 0!==n){const u=l.buckets.filter((l=>ju(n,l)));l={...l,buckets:u}}const u=await this.db.execute("SELECT powersync_validate_checkpoint(?) as result",[JSON.stringify({...l})]),e=u.rows?.item(0);if(!e)return{checkpointValid:!1,ready:!1,checkpointFailures:[]};const t=JSON.parse(e.result);return t.valid?{ready:!0,checkpointValid:!0}:{checkpointValid:!1,ready:!1,checkpointFailures:t.failed_buckets}}async updateLocalTarget(l){if(!(await this.db.getAll("SELECT target_op FROM ps_buckets WHERE name = '$local' AND target_op = CAST(? as INTEGER)",[Bu])).length)return!1;const n=await this.db.getAll("SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'");if(!n.length)return!1;const u=n[0].seq,e=await l();return this.writeTransaction((async l=>{const n=await l.execute("SELECT 1 FROM ps_crud LIMIT 1");if(n.rows?.length)return this.logger.debug(`New data uploaded since write checkpoint ${e} - need new write checkpoint`),!1;const t=await l.execute("SELECT seq FROM sqlite_sequence WHERE name = 'ps_crud'");if(!t.rows?.length)throw new Error("SQLite Sequence should not be empty");const r=t.rows?.item(0).seq;return r!=u?(this.logger.debug(`New data uploaded since write checpoint ${e} - need new write checkpoint (sequence updated)`),!1):(this.logger.debug(`Updating target write checkpoint to ${e}`),await l.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'",[e]),!0)}))}async nextCrudItem(){const l=await this.db.getOptional("SELECT * FROM ps_crud ORDER BY id ASC LIMIT 1");if(l)return J.fromRow(l)}async hasCrud(){return!!await this.db.getOptional("SELECT 1 FROM ps_crud LIMIT 1")}async getCrudBatch(l=100){if(!await this.hasCrud())return null;const n=await this.db.getAll("SELECT * FROM ps_crud ORDER BY id ASC LIMIT ?",[l]),u=[];for(const l of n)u.push(J.fromRow(l));if(0===u.length)return null;const e=u[u.length-1];return{crud:u,haveMore:!0,complete:async l=>this.writeTransaction((async n=>{if(await n.execute("DELETE FROM ps_crud WHERE id <= ?",[e.clientId]),l){const u=await n.execute("SELECT 1 FROM ps_crud LIMIT 1");u.rows?.length&&await n.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'",[l])}else await n.execute("UPDATE ps_buckets SET target_op = CAST(? as INTEGER) WHERE name='$local'",[this.getMaxOpId()])}))}}async writeTransaction(l,n){return this.db.writeTransaction(l,n)}async setTargetCheckpoint(l){}async control(l,n){return await this.writeTransaction((async u=>{const[[e]]=await u.executeRaw("SELECT powersync_control(?, ?)",[l,n]);return e}))}async hasMigratedSubkeys(){const{r:l}=await this.db.get("SELECT EXISTS(SELECT * FROM ps_kv WHERE key = ?) as r",[qu._subkeyMigrationKey]);return 0!=l}async migrateToFixedSubkeys(){await this.writeTransaction((async l=>{await l.execute("UPDATE ps_oplog SET key = powersync_remove_duplicate_key_encoding(key);"),await l.execute("INSERT OR REPLACE INTO ps_kv (key, value) VALUES (?, ?);",[qu._subkeyMigrationKey,"1"])}))}static _subkeyMigrationKey="powersync_js_migrated_subkeys"}function ju(l,n){return null!=n.priority&&n.priority<=l}class $u{buckets;static fromJSON(l){return new $u(l.buckets.map((l=>ll.fromRow(l))))}constructor(l){this.buckets=l}}var Wu;exports.ColumnType=void 0,(Wu=exports.ColumnType||(exports.ColumnType={})).TEXT="TEXT",Wu.INTEGER="INTEGER",Wu.REAL="REAL";const Qu={type:exports.ColumnType.TEXT},Hu={type:exports.ColumnType.INTEGER},zu={type:exports.ColumnType.REAL},Vu=1999,Gu={text:Qu,integer:Hu,real:zu};class Ju{options;constructor(l){this.options=l}get name(){return this.options.name}get type(){return this.options.type}toJSON(){return{name:this.name,type:this.type}}}const Xu={ascending:!0};class Yu{options;static createAscending(l){return new Yu({name:l,ascending:!0})}constructor(l){this.options={...Xu,...l}}get name(){return this.options.name}get ascending(){return this.options.ascending}toJSON(l){return{name:this.name,ascending:this.ascending,type:l.columns.find((l=>l.name===this.name))?.type??exports.ColumnType.TEXT}}}const Ku={columns:[]};class Zu{options;static createAscending(l,n){return new Zu({...l,columns:n.map((l=>Yu.createAscending(l)))})}constructor(l){this.options=l,this.options={...Ku,...l}}get name(){return this.options.name}get columns(){return this.options.columns??[]}toJSON(l){return{name:this.name,columns:this.columns.map((n=>n.toJSON(l)))}}}class le{name;put;delete;constructor(l,n){this.name=l,this.put=n.put,this.delete=n.delete}}const ne={indexes:[],insertOnly:!1,localOnly:!1,trackPrevious:!1,trackMetadata:!1,ignoreEmptyUpdates:!1},ue=/["'%,.#\s[\]]/;class ee{options;_mappedColumns;static createLocalOnly(l){return new ee({...l,localOnly:!0,insertOnly:!1})}static createInsertOnly(l){return new ee({...l,localOnly:!1,insertOnly:!0})}static createTable(l,n){return new ee({name:l,columns:n.columns,indexes:n.indexes,localOnly:n.options.localOnly,insertOnly:n.options.insertOnly,viewName:n.options.viewName})}constructor(l,n){this.isTableV1(l)?this.initTableV1(l):this.initTableV2(l,n)}copyWithName(l){return new ee({...this.options,name:l})}isTableV1(l){return"columns"in l&&Array.isArray(l.columns)}initTableV1(l){this.options={...l,indexes:l.indexes||[]},this.applyDefaultOptions()}initTableV2(l,n){const u=Object.entries(l).map((([l,n])=>new Ju({name:l,type:n.type}))),e=Object.entries(n?.indexes??{}).map((([l,n])=>new Zu({name:l,columns:n.map((l=>new Yu({name:l.replace(/^-/,""),ascending:!l.startsWith("-")})))})));this.options={name:"",columns:u,indexes:e,viewName:n?.viewName,insertOnly:n?.insertOnly,localOnly:n?.localOnly,trackPrevious:n?.trackPrevious,trackMetadata:n?.trackMetadata,ignoreEmptyUpdates:n?.ignoreEmptyUpdates},this.applyDefaultOptions(),this._mappedColumns=l}applyDefaultOptions(){this.options.insertOnly??=ne.insertOnly,this.options.localOnly??=ne.localOnly,this.options.trackPrevious??=ne.trackPrevious,this.options.trackMetadata??=ne.trackMetadata,this.options.ignoreEmptyUpdates??=ne.ignoreEmptyUpdates}get name(){return this.options.name}get viewNameOverride(){return this.options.viewName}get viewName(){return this.viewNameOverride??this.name}get columns(){return this.options.columns}get columnMap(){return this._mappedColumns??this.columns.reduce(((l,n)=>(l[n.name]={type:n.type??exports.ColumnType.TEXT},l)),{})}get indexes(){return this.options.indexes??[]}get localOnly(){return this.options.localOnly}get insertOnly(){return this.options.insertOnly}get trackPrevious(){return this.options.trackPrevious}get trackMetadata(){return this.options.trackMetadata}get ignoreEmptyUpdates(){return this.options.ignoreEmptyUpdates}get internalName(){return this.options.localOnly?`ps_data_local__${this.name}`:`ps_data__${this.name}`}get validName(){return!ue.test(this.name)&&(null==this.viewNameOverride||!ue.test(this.viewNameOverride))}validate(){if(ue.test(this.name))throw new Error(`Invalid characters in table name: ${this.name}`);if(this.viewNameOverride&&ue.test(this.viewNameOverride))throw new Error(`Invalid characters in view name: ${this.viewNameOverride}`);if(this.columns.length>Vu)throw new Error("Table has too many columns. The maximum number of columns is 1999.");if(this.trackMetadata&&this.localOnly)throw new Error("Can't include metadata for local-only tables.");if(0!=this.trackPrevious&&this.localOnly)throw new Error("Can't include old values for local-only tables.");const l=new Set;l.add("id");for(const n of this.columns){const{name:u}=n;if("id"===n.name)throw new Error("An id column is automatically added, custom id columns are not supported");if(l.has(u))throw new Error(`Duplicate column ${u}`);if(ue.test(u))throw new Error(`Invalid characters in column name: ${n.name}`);l.add(u)}const n=new Set;for(const u of this.indexes){if(n.has(u.name))throw new Error(`Duplicate index ${u.name}`);if(ue.test(u.name))throw new Error(`Invalid characters in index name: ${u.name}`);for(const n of u.columns)if(!l.has(n.name))throw new Error(`Column ${n.name} not found for index ${u.name}`);n.add(u.name)}}toJSON(){const l=this.trackPrevious;return{name:this.name,view_name:this.viewName,local_only:this.localOnly,insert_only:this.insertOnly,include_old:l&&(l.columns??!0),include_old_only_when_changed:"object"==typeof l&&1==l.onlyWhenChanged,include_metadata:this.trackMetadata,ignore_empty_update:this.ignoreEmptyUpdates,columns:this.columns.map((l=>l.toJSON())),indexes:this.indexes.map((l=>l.toJSON(this)))}}}function te(l){return`'${l.replace(/'/g,"''")}'`}const re=y,se={TRACE:re.TRACE,DEBUG:re.DEBUG,INFO:re.INFO,TIME:re.TIME,WARN:re.WARN,ERROR:re.ERROR,OFF:re.OFF};exports.AbortOperation=Y,exports.AbstractPowerSyncDatabase=class extends R{options;closed;ready;currentStatus;sdkVersion;bucketStorageAdapter;_isReadyPromise;connectionManager;subscriptions;get syncStreamImplementation(){return this.connectionManager.syncStreamImplementation}get connector(){return this.connectionManager.connector}get connectionOptions(){return this.connectionManager.connectionOptions}_schema;_database;runExclusiveMutex;triggers;logger;constructor(l){super(),this.options=l;const{database:n,schema:u}=l;if("function"!=typeof u?.toJSON)throw new Error("The `schema` option should be provided and should be an instance of `Schema`.");if(W(n))this._database=n;else if($(n))this._database=n.openDB();else{if(!Pu(l))throw new Error("The provided `database` option is invalid.");this._database=this.openDBAdapter(l)}this.logger=l.logger??y.get(`PowerSyncDatabase[${this._database.name}]`),this.bucketStorageAdapter=this.generateBucketStorageAdapter(),this.closed=!1,this.currentStatus=new v({}),this.options={...Uu,...l},this._schema=u,this.ready=!1,this.sdkVersion="",this.runExclusiveMutex=new t,this.subscriptions={firstStatusMatching:(l,n)=>this.waitForStatus(l,n),resolveOfflineSyncStatus:()=>this.resolveOfflineSyncStatus(),rustSubscriptionsCommand:async l=>{await this.writeTransaction((n=>n.execute("select powersync_control(?,?)",["subscriptions",JSON.stringify(l)])))}},this.connectionManager=new A({createSyncImplementation:async(l,n)=>(await this.waitForReady(),this.runExclusive((async()=>{const u=this.generateSyncStreamImplementation(l,this.resolvedConnectionOptions(n)),e=u.registerListener({statusChanged:l=>{this.currentStatus=new v({...l.toJSON(),hasSynced:this.currentStatus?.hasSynced||!!l.lastSyncedAt}),this.iterateListeners((l=>l.statusChanged?.(this.currentStatus)))}});return await u.waitForReady(),{sync:u,onDispose:e}}))),logger:this.logger}),this._isReadyPromise=this.initialize(),this.triggers=new Lu({db:this,schema:this.schema})}get schema(){return this._schema}get database(){return this._database}get connected(){return this.currentStatus?.connected||!1}get connecting(){return this.currentStatus?.connecting||!1}async waitForReady(){this.ready||await this._isReadyPromise}async waitForFirstSync(l){const n=l instanceof AbortSignal?l:l?.signal,u=l&&"priority"in l?l.priority:void 0,e=void 0===u?l=>l.hasSynced:l=>l.statusForPriority(u).hasSynced;return this.waitForStatus(e,n)}async waitForStatus(l,n){if(!l(this.currentStatus))return new Promise((u=>{const e=this.registerListener({statusChanged:n=>{l(n)&&t()}});function t(){e(),u()}n?.aborted?t():n?.addEventListener("abort",t)}))}async initialize(){await this._initialize(),await this.bucketStorageAdapter.init(),await this._loadVersion(),await this.updateSchema(this.options.schema),await this.resolveOfflineSyncStatus(),await this.database.execute("PRAGMA RECURSIVE_TRIGGERS=TRUE"),this.ready=!0,this.iterateListeners((l=>l.initialized?.()))}async _loadVersion(){try{const{version:l}=await this.database.get("SELECT powersync_rs_version() as version");this.sdkVersion=l}catch(l){throw new Error(`The powersync extension is not loaded correctly. Details: ${l.message}`)}let l;try{l=this.sdkVersion.split(/[.\/]/).slice(0,3).map((l=>parseInt(l)))}catch(l){throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}. Details: ${l.message}`)}if(0!=l[0]||l[1]<4||4==l[1]&&l[2]<5)throw new Error(`Unsupported powersync extension version. Need >=0.4.5 <1.0.0, got: ${this.sdkVersion}`)}async resolveOfflineSyncStatus(){const l=await this.database.get("SELECT powersync_offline_sync_status() as r"),n=JSON.parse(l.r),u=new v({...this.currentStatus.toJSON(),...mu(n)});u.isEqual(this.currentStatus)||(this.currentStatus=u,this.iterateListeners((l=>l.statusChanged?.(this.currentStatus))))}async updateSchema(l){if(this.syncStreamImplementation)throw new Error("Cannot update schema while connected");try{l.validate()}catch(l){this.logger.warn("Schema validation failed. Unexpected behaviour could occur",l)}this._schema=l,await this.database.execute("SELECT powersync_replace_schema(?)",[JSON.stringify(this.schema.toJSON())]),await this.database.refreshSchema(),this.iterateListeners((async n=>n.schemaChanged?.(l)))}async init(){return this.waitForReady()}resolvedConnectionOptions(l){return{...l,retryDelayMs:l?.retryDelayMs??this.options.retryDelayMs??this.options.retryDelay??Au,crudUploadThrottleMs:l?.crudUploadThrottleMs??this.options.crudUploadThrottleMs??Ou}}dispose(){return super.dispose()}runExclusive(l){return this.runExclusiveMutex.runExclusive(l)}async connect(l,n){const u=n??{};return u.serializedSchema=this.schema.toJSON(),this.connectionManager.connect(l,u)}async disconnect(){return this.connectionManager.disconnect()}async disconnectAndClear(l=Nu){await this.disconnect(),await this.waitForReady();const{clearLocal:n}=l;await this.database.writeTransaction((async l=>{await l.execute("SELECT powersync_clear(?)",[n?1:0])})),this.currentStatus=new v({}),this.iterateListeners((l=>l.statusChanged?.(this.currentStatus)))}syncStream(l,n){return this.connectionManager.stream(this.subscriptions,l,n??null)}async close(l=ku){if(await this.waitForReady(),this.closed)return;await this.iterateAsyncListeners((async l=>l.closing?.()));const{disconnect:n}=l;n&&await this.disconnect(),await this.connectionManager.close(),await this.database.close(),this.closed=!0,await this.iterateAsyncListeners((async l=>l.closed?.()))}async getUploadQueueStats(l){return this.readTransaction((async n=>{if(l){const l=(await n.execute(`SELECT SUM(cast(data as blob) + 20) as size, count(*) as count FROM ${exports.PSInternalTable.CRUD}`)).rows.item(0);return new T(l?.count??0,l?.size??0)}{const l=(await n.execute(`SELECT count(*) as count FROM ${exports.PSInternalTable.CRUD}`)).rows.item(0);return new T(l?.count??0)}}))}async getCrudBatch(l=100){const n=(await this.getAll(`SELECT id, tx_id, data FROM ${exports.PSInternalTable.CRUD} ORDER BY id ASC LIMIT ?`,[l+1])).map((l=>J.fromRow(l)))??[];let u=!1;if(n.length>l&&(n.pop(),u=!0),0==n.length)return null;const e=n[n.length-1];return new G(n,u,(async l=>this.handleCrudCheckpoint(e.clientId,l)))}async getNextCrudTransaction(){const l=this.getCrudTransactions()[O]();return(await l.next()).value}getCrudTransactions(){return{[O]:()=>{let l=-1;return{next:async()=>{const n=await this.database.getAll("\nWITH RECURSIVE crud_entries AS (\n SELECT id, tx_id, data FROM ps_crud WHERE id = (SELECT min(id) FROM ps_crud WHERE id > ?)\n UNION ALL\n SELECT ps_crud.id, ps_crud.tx_id, ps_crud.data FROM ps_crud\n INNER JOIN crud_entries ON crud_entries.id + 1 = rowid\n WHERE crud_entries.tx_id = ps_crud.tx_id\n)\nSELECT * FROM crud_entries;\n ",[l]);if(0==n.length)return{done:!0,value:null};const u=n.map((l=>J.fromRow(l))),e=u[u.length-1],t=e.transactionId;return l=e.clientId,{done:!1,value:new X(u,(async l=>this.handleCrudCheckpoint(e.clientId,l)),t)}}}}}}async getClientId(){return this.bucketStorageAdapter.getClientId()}async handleCrudCheckpoint(l,n){return this.writeTransaction((async u=>{if(await u.execute(`DELETE FROM ${exports.PSInternalTable.CRUD} WHERE id <= ?`,[l]),n){const l=await u.execute(`SELECT 1 FROM ${exports.PSInternalTable.CRUD} LIMIT 1`);l.rows?.length||await u.execute(`UPDATE ${exports.PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`,[n])}else await u.execute(`UPDATE ${exports.PSInternalTable.BUCKETS} SET target_op = CAST(? as INTEGER) WHERE name='$local'`,[this.bucketStorageAdapter.getMaxOpId()])}))}async execute(l,n){return this.writeLock((u=>u.execute(l,n)))}async executeRaw(l,n){return await this.waitForReady(),this.database.executeRaw(l,n)}async executeBatch(l,n){return await this.waitForReady(),this.database.executeBatch(l,n)}async getAll(l,n){return await this.waitForReady(),this.database.getAll(l,n)}async getOptional(l,n){return await this.waitForReady(),this.database.getOptional(l,n)}async get(l,n){return await this.waitForReady(),this.database.get(l,n)}async readLock(l){return await this.waitForReady(),this.database.readLock(l)}async writeLock(l){return await this.waitForReady(),this.database.writeLock(l)}async readTransaction(l,n=12e4){return await this.waitForReady(),this.database.readTransaction((async n=>{const u=await l({...n});return await n.rollback(),u}),{timeoutMs:n})}async writeTransaction(l,n=12e4){return await this.waitForReady(),this.database.writeTransaction((async n=>{const u=await l(n);return await n.commit(),u}),{timeoutMs:n})}watch(l,n,u,e){if(u&&"object"==typeof u&&"onResult"in u){const t=u,r=e;return this.watchWithCallback(l,n,t,r)}const t=u;return this.watchWithAsyncGenerator(l,n,t)}query(l){const{sql:n,parameters:u=[],mapper:e}=l,t={compile:()=>({sql:n,parameters:u}),execute:async({sql:l,parameters:n})=>{const u=await this.getAll(l,n);return e?u.map(e):u}};return this.customQuery(t)}customQuery(l){return new q({db:this,query:l})}watchWithCallback(l,n,u,e){const{onResult:t,onError:r=l=>this.logger.error(l)}=u??{};if(!t)throw new Error("onResult is required");const{comparator:s}=e??{},i=new B({db:this,comparator:s,placeholderData:null,watchOptions:{query:{compile:()=>({sql:l,parameters:n??[]}),execute:()=>this.executeReadOnly(l,n)},reportFetching:!1,throttleMs:e?.throttleMs??k,triggerOnTables:e?.tables}}),o=i.registerListener({onData:l=>{l&&t(l)},onError:l=>{r(l)}});e?.signal?.addEventListener("abort",(()=>{o(),i.close()}))}watchWithAsyncGenerator(l,n,u){return new d((e=>{const t={onResult:l=>{e.push(l)},onError:l=>{e.fail(l)}};this.watchWithCallback(l,n,t,u),u?.signal?.addEventListener("abort",(()=>{e.stop()}))}))}async resolveTables(l,n,u){const e=u?.tables?[...u.tables]:[];if(!u?.tables){const u=(await this.getAll(`EXPLAIN ${l}`,n)).filter((l=>"OpenRead"==l.opcode&&0==l.p3&&"number"==typeof l.p2)).map((l=>l.p2)),t=await this.getAll("SELECT DISTINCT tbl_name FROM sqlite_master WHERE rootpage IN (SELECT json_each.value FROM json_each(?))",[JSON.stringify(u)]);for(const l of t)e.push(l.tbl_name.replace(xu,""))}return e}onChange(l,n){if(l&&"object"==typeof l&&"onChange"in l){const u=l,e=n;return this.onChangeWithCallback(u,e)}const u=l;return this.onChangeWithAsyncGenerator(u)}onChangeWithCallback(l,n){const{onChange:u,onError:e=l=>this.logger.error(l)}=l??{};if(!u)throw new Error("onChange is required");const t=n??{},r=new Set((t?.tables??[]).flatMap((l=>[l,`ps_data__${l}`,`ps_data_local__${l}`]))),s=new Set,i=t.throttleMs??k,o=new _((async l=>{await u(l)})),a=function(l,n){let u=null;const e=()=>{l(),u=null};return function(){null==u&&(u=setTimeout(e,n))}}((()=>this.handleTableChanges(s,r,(l=>{t?.signal?.aborted||o.schedule({changedTables:l})}))),i);n?.triggerImmediate&&o.schedule({changedTables:[]});const c=this.database.registerListener({tablesUpdated:async l=>{try{this.processTableUpdates(l,s),a()}catch(l){e?.(l)}}});return t.signal?.addEventListener("abort",(()=>{o.dispose(),c()})),()=>c()}onChangeWithAsyncGenerator(l){const n=l??{};return new d((u=>{const e=this.onChangeWithCallback({onChange:l=>{u.push(l)},onError:l=>{u.fail(l)}},l);return n.signal?.addEventListener("abort",(()=>{u.stop()})),()=>e()}))}handleTableChanges(l,n,u){if(l.size>0){const e=Array.from(l.values()).filter((l=>n.has(l)));e.length&&u(e)}l.clear()}processTableUpdates(l,n){const u=g(l)?l.tables:[l.table];for(const l of u)n.add(l)}async executeReadOnly(l,n){return await this.waitForReady(),this.database.readLock((u=>u.execute(l,n)))}},exports.AbstractPowerSyncDatabaseOpenFactory=class{options;constructor(l){this.options=l,l.logger=l.logger??y.get(`PowerSync ${this.options.dbFilename}`)}get schema(){return this.options.schema}generateOptions(){return{database:this.openDB(),...this.options}}getInstance(){const l=this.generateOptions();return this.generateInstance(l)}},exports.AbstractQueryProcessor=D,exports.AbstractRemote=class{connector;logger;credentials=null;options;constructor(l,n=cu,u){this.connector=l,this.logger=n,this.options={...pu,...u??{}}}get fetch(){const{fetchImplementation:l}=this.options;return l instanceof du?l.getFetch():l}async getCredentials(){return this.credentials?this.credentials:this.prefetchCredentials()}async prefetchCredentials(){return this.credentials=await this.fetchCredentials(),this.credentials}async fetchCredentials(){const l=await this.connector.fetchCredentials();if(l?.endpoint.match(ou))throw new Error(`A trailing forward slash "/" was found in the fetchCredentials endpoint: "${l.endpoint}". Remove the trailing forward slash "/" to fix this error.`);return l}invalidateCredentials(){this.credentials=null,this.connector.invalidateCredentials?.()}getUserAgent(){return`powersync-js/${au}`}async buildRequest(l){const n=await this.getCredentials();if(null!=n&&(null==n.endpoint||""==n.endpoint))throw new Error("PowerSync endpoint not configured");if(null==n?.token||""==n?.token){const l=new Error("Not signed in");throw l.status=401,l}const u=this.getUserAgent();return{url:n.endpoint+l,headers:{"content-type":"application/json",Authorization:`Token ${n.token}`,"x-user-agent":u}}}async post(l,n,u={}){const e=await this.buildRequest(l),t=await this.fetch(e.url,{method:"POST",headers:{...u,...e.headers},body:JSON.stringify(n)});if(401===t.status&&this.invalidateCredentials(),!t.ok)throw new Error(`Received ${t.status} - ${t.statusText} when posting to ${l}: ${await t.text()}}`);return t.json()}async get(l,n){const u=await this.buildRequest(l),e=await this.fetch(u.url,{method:"GET",headers:{...n,...u.headers}});if(401===e.status&&this.invalidateCredentials(),!e.ok)throw new Error(`Received ${e.status} - ${e.statusText} when getting from ${l}: ${await e.text()}}`);return e.json()}createSocket(l){return new WebSocket(l)}async socketStreamRaw(l,n,u){const{path:e,fetchStrategy:t=exports.FetchStrategy.Buffered}=l,r=null==u?"application/json":"application/bson";function s(l){let n;return n=null!=u?u.serialize(l):JSON.stringify(l),sl.Buffer.from(n)}const i=t==exports.FetchStrategy.Buffered?10:1,o=await this.buildRequest(e),a=this.getUserAgent(),c=new lu({logger:this.logger,pressure:{lowWaterMark:5},mapLine:n});if(l.abortSignal?.aborted)throw new Y("Connection request aborted");let h;l.abortSignal?.addEventListener("abort",(()=>{c.close()}),{once:!0});const d=()=>{clearTimeout(h),h=setTimeout((()=>{this.logger.error("No data received on WebSocket in 30000ms, closing connection."),c.close()}),3e4)};d();let p=()=>{};const f=this.options.socketUrlTransformer(o.url),m=new Yn.RSocketConnector({transport:new iu({url:f,wsCreator:l=>{const n=this.createSocket(l);return p=c.registerListener({closed:()=>{n.close()}}),n.addEventListener("message",(l=>{d()})),n}}),setup:{keepAlive:2e4,lifetime:9e4,dataMimeType:r,metadataMimeType:r,payload:{data:null,metadata:s({token:o.headers.Authorization,user_agent:a})}}});let y;try{y=await m.connect(),p()}catch(l){throw this.logger.error("Failed to connect WebSocket",l),clearTimeout(h),c.closed||await c.close(),l}d();let g=!1;y.onClose((()=>g=!0));let E=i;const w=c.registerListener({closed:()=>{clearTimeout(h),g||(g=!0,y.close()),w()}}),b=await new Promise(((n,u)=>{let t=!1;const r=y.requestStream({data:s(l.data),metadata:s({path:e})},i,{onError:l=>{l.message.includes("PSYNC_")?l.message.includes("PSYNC_S21")&&this.invalidateCredentials():"Closed. "!==l.message&&this.invalidateCredentials(),"Closed. "!==l.message&&this.logger.error(l),c.close(),t||u(l)},onNext:l=>{t||(t=!0,n(r));const{data:u}=l;E--,u&&c.enqueueData(u)},onComplete:()=>{c.close()},onExtension:()=>{}})})),v=c.registerListener({lowWater:async()=>{i-E>0&&(b.request(i-E),E=i)},closed:()=>{v()}});return c}async postStreamRaw(l,n){const{data:u,path:e,headers:t,abortSignal:r}=l,s=await this.buildRequest(e);if(r?.aborted)throw new Y("Abort request received before making postStreamRaw request");const i=new AbortController;let o=!1;r?.addEventListener("abort",(()=>{o||i.abort(r.reason??new Y("Cancelling network request before it resolves. Abort signal has been received."))}));const a=await this.fetch(s.url,{method:"POST",headers:{...t,...s.headers},body:JSON.stringify(u),signal:i.signal,cache:"no-store",...this.options.fetchOptions??{},...l.fetchOptions}).catch((l=>{if("AbortError"==l.name)throw new Y(`Pending fetch request to ${s.url} has been aborted.`);throw l}));if(!a)throw new Error("Fetch request was aborted");if(o=!0,!a.ok||!a.body){const l=await a.text();this.logger.error(`Could not POST streaming to ${e} - ${a.status} - ${a.statusText}: ${l}`);const n=new Error(`HTTP ${a.statusText}: ${l}`);throw n.status=a.status,n}const c=a.body.getReader(),h=async()=>{try{await c.cancel()}catch(l){}c.releaseLock()};r?.addEventListener("abort",(()=>{h()}));const d=new rl.TextDecoder;let p="";const f=new lu({logger:this.logger,mapLine:n}),m=f.registerListener({lowWater:async()=>{try{let u=!1;for(;!u;){const{done:e,value:t}=await c.read();if(e){const l=p.trim();return 0!=l.length&&f.enqueueData(l),f.close(),void await h()}const r=d.decode(t,{stream:!0});p+=r;const s=p.split("\n");for(var l=0;l<s.length-1;l++){var n=s[l].trim();n.length>0&&(f.enqueueData(n),u=!0)}p=s[s.length-1]}}catch(l){throw f.close(),l}},closed:()=>{h(),m?.()}});return f}},exports.AbstractStreamingSyncImplementation=class extends R{_lastSyncedAt;options;abortController;uploadAbortController;crudUpdateListener;streamingSyncPromise;logger;activeStreams;isUploadingCrud=!1;notifyCompletedUploads;handleActiveStreamsChange;syncStatus;triggerCrudUpload;constructor(l){super(),this.options=l,this.activeStreams=l.subscriptions,this.logger=l.logger??y.get("PowerSyncStream"),this.syncStatus=new v({connected:!1,connecting:!1,lastSyncedAt:void 0,dataFlow:{uploading:!1,downloading:!1}}),this.abortController=null,this.triggerCrudUpload=function(l,n){let u=null,e=0;const t=()=>{l(),e=Date.now(),u=null};return function(){const l=Date.now(),r=n-(l-e);r<=0?t():u||(u=setTimeout(t,r))}}((()=>{this.syncStatus.connected&&!this.isUploadingCrud&&(this.isUploadingCrud=!0,this._uploadAllCrud().finally((()=>{this.notifyCompletedUploads?.(),this.isUploadingCrud=!1})))}),this.options.crudUploadThrottleMs)}async waitForReady(){}waitForStatus(l){return this.waitUntilStatusMatches((n=>{const u=(l,n)=>Object.entries(l).every((([l,e])=>{const t=n[l];return"object"==typeof e&&"object"==typeof t?u(e,t):e==t}));return u(l,n)}))}waitUntilStatusMatches(l){return new Promise((n=>{if(l(this.syncStatus))return void n();const u=this.registerListener({statusChanged:e=>{l(e)&&(n(),u?.())}})}))}get lastSyncedAt(){const l=this.syncStatus.lastSyncedAt;return l&&new Date(l)}get isConnected(){return this.syncStatus.connected}async dispose(){super.dispose(),this.crudUpdateListener?.(),this.crudUpdateListener=void 0,this.uploadAbortController?.abort()}async hasCompletedSync(){return this.options.adapter.hasCompletedSync()}async getWriteCheckpoint(){let l=`/write-checkpoint2.json?client_id=${await this.options.adapter.getClientId()}`;const n=(await this.options.remote.get(l)).data.write_checkpoint;return this.logger.debug(`Created write checkpoint: ${n}`),n}async _uploadAllCrud(){return this.obtainLock({type:exports.LockType.CRUD,callback:async()=>{let l;const n=new AbortController;for(this.uploadAbortController=n,this.abortController?.signal.addEventListener("abort",(()=>{n.abort()}),{once:!0});!n.signal.aborted;)try{const n=await this.options.adapter.nextCrudItem();if(!n){0==await this.options.adapter.updateLocalTarget((()=>this.getWriteCheckpoint()))&&null!=l&&this.logger.debug("Upload complete, no write checkpoint needed.");break}if(this.updateSyncStatus({dataFlow:{uploading:!0}}),n.clientId==l?.clientId)throw this.logger.warn("Potentially previously uploaded CRUD entries are still present in the upload queue.\nMake sure to handle uploads and complete CRUD transactions or batches by calling and awaiting their [.complete()] method.\nThe next upload iteration will be delayed."),new Error("Delaying due to previously encountered CRUD item.");l=n,await this.options.uploadCrud(),this.updateSyncStatus({dataFlow:{uploadError:void 0}})}catch(u){if(l=void 0,this.updateSyncStatus({dataFlow:{uploading:!1,uploadError:u}}),await this.delayRetry(n.signal),!this.isConnected)break;this.logger.debug(`Caught exception when uploading. Upload will retry after a delay. Exception: ${u.message}`)}finally{this.updateSyncStatus({dataFlow:{uploading:!1}})}this.uploadAbortController=null}})}async connect(l){this.abortController&&await this.disconnect();const n=new AbortController;return this.abortController=n,this.streamingSyncPromise=this.streamingSync(this.abortController.signal,l),new Promise((l=>{const n=this.registerListener({statusChanged:u=>{if(null!=u.dataFlowStatus.downloadError)this.logger.warn("Initial connect attempt did not successfully connect to server");else if(u.connecting)return;n(),l()}})}))}async disconnect(){if(this.abortController){this.abortController.signal.aborted||this.abortController.abort(new Y("Disconnect has been requested"));try{await this.streamingSyncPromise}catch(l){this.logger.warn(l)}this.streamingSyncPromise=void 0,this.abortController=null,this.updateSyncStatus({connected:!1,connecting:!1})}}async streamingSync(l,n){l||(this.abortController=new AbortController,l=this.abortController.signal),this.crudUpdateListener=this.options.adapter.registerListener({crudUpdate:()=>this.triggerCrudUpload()});let u=new AbortController;for(l.addEventListener("abort",(()=>{u.abort(l?.reason??new Y("Received command to disconnect from upstream")),this.crudUpdateListener?.(),this.crudUpdateListener=void 0,this.updateSyncStatus({connected:!1,connecting:!1,dataFlow:{downloading:!1,downloadProgress:null}})}));;){this.updateSyncStatus({connecting:!0});let e=!0,t=null;try{if(l?.aborted)break;t=await this.streamingSyncIteration(u.signal,n)}catch(l){l instanceof Y?(this.logger.warn(l),e=!1):this.logger.error(l),this.updateSyncStatus({dataFlow:{downloadError:l}})}finally{this.notifyCompletedUploads=void 0,l.aborted||(u.abort(new Y("Closing sync stream network requests before retry.")),u=new AbortController),1!=t?.immediateRestart&&(this.updateSyncStatus({connected:!1,connecting:!0}),e&&await this.delayRetry(u.signal))}}this.updateSyncStatus({connected:!1,connecting:!1})}async collectLocalBucketState(){const l=await this.options.adapter.getBucketStates(),n=l.map((l=>({name:l.bucket,after:l.op_id}))),u=new Map;for(const n of l)u.set(n.bucket,null);return[n,u]}async requireKeyFormat(l){const n=await this.options.adapter.hasMigratedSubkeys();return l&&!n?(await this.options.adapter.migrateToFixedSubkeys(),!0):n}streamingSyncIteration(l,n){return this.obtainLock({type:exports.LockType.SYNC,signal:l,callback:async()=>{const u={...Fu,...n??{}},e=u.clientImplementation;return this.updateSyncStatus({clientImplementation:e}),e==exports.SyncClientImplementation.JAVASCRIPT?(await this.legacyStreamingSyncIteration(l,u),null):(await this.requireKeyFormat(!0),await this.rustSyncIteration(l,u))}})}async legacyStreamingSyncIteration(l,n){const u=n.serializedSchema?.raw_tables;null!=u&&u.length&&this.logger.warn("Raw tables require the Rust-based sync client. The JS client will ignore them."),this.logger.debug("Streaming sync iteration started"),this.options.adapter.startSession();let[e,t]=await this.collectLocalBucketState(),r=null,s=null;const i=await this.options.adapter.getClientId(),o=await this.requireKeyFormat(!1);this.logger.debug("Requesting stream from server");const a={path:"/sync/stream",abortSignal:l,data:{buckets:e,include_checksum:!0,raw_data:!0,parameters:n.params,client_id:i}};let c;if(n?.connectionMethod==exports.SyncStreamConnectionMethod.HTTP)c=await this.options.remote.postStreamRaw(a,(l=>"string"==typeof l?JSON.parse(l):l));else{const l=await this.options.remote.getBSON();c=await this.options.remote.socketStreamRaw({...a,fetchStrategy:n.fetchStrategy},(n=>n instanceof Uint8Array?l.deserialize(n):n),l)}for(this.logger.debug("Stream established. Processing events"),this.notifyCompletedUploads=()=>{c.closed||c.enqueueData({crud_upload_completed:null})};!c.closed;){const l=await c.read();if(!l)return;if("crud_upload_completed"in l){if(null!=s){const{applied:l,endIteration:n}=await this.applyCheckpoint(s);if(l)s=null;else if(n)break}}else if(this.syncStatus.connected||(Promise.resolve().then((()=>this.triggerCrudUpload())),this.updateSyncStatus({connected:!0})),Eu(l)){r=l.checkpoint,s=null;const n=new Set(t.keys()),u=new Map;for(const e of l.checkpoint.buckets)u.set(e.bucket,{name:e.bucket,priority:e.priority??3}),n.delete(e.bucket);n.size>0&&this.logger.debug("Removing buckets",[...n]),t=u,await this.options.adapter.removeBuckets([...n]),await this.options.adapter.setTargetCheckpoint(r),await this.updateSyncStatusForStartingCheckpoint(r)}else if(wu(l)){const l=await this.applyCheckpoint(r);if(l.endIteration)return;s=l.applied?null:r}else if(bu(l)){const n=l.partial_checkpoint_complete.priority;this.logger.debug("Partial checkpoint complete",n);const u=await this.options.adapter.syncLocalDatabase(r,n);if(!u.checkpointValid)return void await new Promise((l=>setTimeout(l,50)));if(u.ready){this.logger.debug("partial checkpoint validation succeeded");const l=this.syncStatus.priorityStatusEntries.filter((l=>l.priority<=n));l.push({priority:n,lastSyncedAt:new Date,hasSynced:!0}),this.updateSyncStatus({connected:!0,priorityStatusEntries:l})}else;}else if(vu(l)){if(null==r)throw new Error("Checkpoint diff without previous checkpoint");s=null;const n=l.checkpoint_diff,u=new Map;for(const l of r.buckets)u.set(l.bucket,l);for(const l of n.updated_buckets)u.set(l.bucket,l);for(const l of n.removed_buckets)u.delete(l);r={last_op_id:n.last_op_id,buckets:[...u.values()],write_checkpoint:n.write_checkpoint},await this.updateSyncStatusForStartingCheckpoint(r),t=new Map,u.forEach(((l,n)=>t.set(n,{name:l.bucket,priority:l.priority??3})));const e=n.removed_buckets;e.length>0&&this.logger.debug("Remove buckets",e),await this.options.adapter.removeBuckets(e),await this.options.adapter.setTargetCheckpoint(r)}else if(yu(l)){const{data:n}=l,u=this.syncStatus.dataFlowStatus.downloadProgress;let e=null;if(u){e={...u};const l=e[n.bucket];l&&(e[n.bucket]={...l,since_last:l.since_last+n.data.length})}this.updateSyncStatus({dataFlow:{downloading:!0,downloadProgress:e}}),await this.options.adapter.saveSyncData({buckets:[ll.fromRow(n)]},o)}else if(gu(l)){const n=l.token_expires_in;if(0==n)return this.logger.debug("Token expiring; reconnect"),void await this.delayRetry();if(n<30)return this.logger.debug("Token will expire soon; reconnect"),void this.options.remote.invalidateCredentials();this.triggerCrudUpload()}else this.logger.debug("Received unknown sync line",l)}this.logger.debug("Stream input empty")}async rustSyncIteration(l,n){const u=this,e=this.options.adapter,t=this.options.remote;let r=null,s=!1,i=!1;if(l.aborted)throw new Y("Connection request has been aborted");const o=new AbortController;l.addEventListener("abort",(()=>o.abort()));let a=null;async function c(l,n){const t=await e.control(l,n??null);u.logger.trace("powersync_control",l,null==n||"string"==typeof n?n:"<bytes>",t),await async function(l){for(const n of l)await h(n)}(JSON.parse(t))}async function h(l){if("LogLine"in l)switch(l.LogLine.severity){case"DEBUG":u.logger.debug(l.LogLine.line);break;case"INFO":u.logger.info(l.LogLine.line);break;case"WARNING":u.logger.warn(l.LogLine.line)}else if("UpdateSyncStatus"in l)u.updateSyncStatus(mu(l.UpdateSyncStatus.status));else if("EstablishSyncStream"in l){if(null!=r)throw"Unexpected request to establish sync stream, already connected";r=async function(l){const e={path:"/sync/stream",abortSignal:o.signal,data:l.request};a=n.connectionMethod==exports.SyncStreamConnectionMethod.HTTP?await t.postStreamRaw(e,(l=>"string"==typeof l?{command:exports.PowerSyncControlCommand.PROCESS_TEXT_LINE,payload:l}:l)):await t.socketStreamRaw({...e,fetchStrategy:n.fetchStrategy},(l=>l instanceof Uint8Array?{command:exports.PowerSyncControlCommand.PROCESS_BSON_LINE,payload:l}:l)),u.updateSyncStatus({connected:!0});try{for(;!a.closed;){const l=await a.read();if(null==l)return;await c(l.command,l.payload),s||(u.triggerCrudUpload(),s=!0)}}finally{const l=a;a=null,await l.close()}}(l.EstablishSyncStream)}else"FetchCredentials"in l?l.FetchCredentials.did_expire?t.invalidateCredentials():(t.invalidateCredentials(),t.fetchCredentials().then((l=>{a?.enqueueData({command:exports.PowerSyncControlCommand.NOTIFY_TOKEN_REFRESHED})}),(l=>{u.logger.warn("Could not prefetch credentials",l)}))):"CloseSyncStream"in l?(o.abort(),i=l.CloseSyncStream.hide_disconnect):"FlushFileSystem"in l||"DidCompleteSync"in l&&u.updateSyncStatus({dataFlow:{downloadError:void 0}})}try{const l={parameters:n.params,active_streams:this.activeStreams,include_defaults:n.includeDefaultStreams};n.serializedSchema&&(l.schema=n.serializedSchema),await c(exports.PowerSyncControlCommand.START,JSON.stringify(l)),this.notifyCompletedUploads=()=>{a&&!a?.closed&&a.enqueueData({command:exports.PowerSyncControlCommand.NOTIFY_CRUD_UPLOAD_COMPLETED})},this.handleActiveStreamsChange=()=>{a&&!a?.closed&&a.enqueueData({command:exports.PowerSyncControlCommand.UPDATE_SUBSCRIPTIONS,payload:JSON.stringify(this.activeStreams)})},await r}finally{this.notifyCompletedUploads=this.handleActiveStreamsChange=void 0,await async function(){await c(exports.PowerSyncControlCommand.STOP)}()}return{immediateRestart:i}}async updateSyncStatusForStartingCheckpoint(l){const n=await this.options.adapter.getBucketOperationProgress(),u={};let e=!1;for(const t of l.buckets){const l=n[t.bucket],r=l?.atLast??0,s=l?.sinceLast??0;u[t.bucket]={priority:t.priority??3,at_last:r,since_last:s,target_count:t.count??0},null!=t.count&&t.count<r+s&&(e=!0)}if(e)for(const l in u){const n=u[l];n.at_last=0,n.since_last=0}this.updateSyncStatus({dataFlow:{downloading:!0,downloadProgress:u}})}async applyCheckpoint(l){let n=await this.options.adapter.syncLocalDatabase(l);return n.checkpointValid?n.ready?(this.logger.debug(`Applied checkpoint ${l.last_op_id}`,l),this.updateSyncStatus({connected:!0,lastSyncedAt:new Date,dataFlow:{downloading:!1,downloadProgress:null,downloadError:void 0}}),{applied:!0,endIteration:!1}):(this.logger.debug(`Could not apply checkpoint ${l.last_op_id} due to local data. We will retry applying the checkpoint after that upload is completed.`),{applied:!1,endIteration:!1}):(this.logger.debug(`Checksum mismatch in checkpoint ${l.last_op_id}, will reconnect`),await new Promise((l=>setTimeout(l,50))),{applied:!1,endIteration:!0})}updateSyncStatus(l){const n=new v({connected:l.connected??this.syncStatus.connected,connecting:!l.connected&&(l.connecting??this.syncStatus.connecting),lastSyncedAt:l.lastSyncedAt??this.syncStatus.lastSyncedAt,dataFlow:{...this.syncStatus.dataFlowStatus,...l.dataFlow},priorityStatusEntries:l.priorityStatusEntries??this.syncStatus.priorityStatusEntries,clientImplementation:l.clientImplementation??this.syncStatus.clientImplementation});this.syncStatus.isEqual(n)||(this.syncStatus=n,this.iterateListeners((l=>l.statusChanged?.(n)))),this.iterateListeners((n=>n.statusUpdated?.(l)))}async delayRetry(l){return new Promise((n=>{if(l?.aborted)return void n();const{retryDelayMs:u}=this.options;let e;const t=()=>{n(),e&&(clearTimeout(e),e=void 0),l?.removeEventListener("abort",t)};l?.addEventListener("abort",t,{once:!0}),e=setTimeout(t,u)}))}updateSubscriptions(l){this.activeStreams=l,this.handleActiveStreamsChange?.()}},exports.ArrayComparator=class{options;constructor(l){this.options=l}checkEquality(l,n){if(0===l.length&&0===n.length)return!0;if(l.length!==n.length)return!1;const{compareBy:u}=this.options;for(let e=0;e<l.length;e++){if(u(l[e])!==u(n[e]))return!1}return!0}},exports.BaseObserver=R,exports.Column=Ju,exports.ConnectionManager=A,exports.ControlledExecutor=_,exports.CrudBatch=G,exports.CrudEntry=J,exports.CrudTransaction=X,exports.DEFAULT_CRUD_BATCH_LIMIT=100,exports.DEFAULT_CRUD_UPLOAD_THROTTLE_MS=Ou,exports.DEFAULT_INDEX_COLUMN_OPTIONS=Xu,exports.DEFAULT_INDEX_OPTIONS=Ku,exports.DEFAULT_LOCK_TIMEOUT_MS=Du,exports.DEFAULT_POWERSYNC_CLOSE_OPTIONS=ku,exports.DEFAULT_POWERSYNC_DB_OPTIONS=Uu,exports.DEFAULT_PRESSURE_LIMITS=Zn,exports.DEFAULT_REMOTE_LOGGER=cu,exports.DEFAULT_REMOTE_OPTIONS=pu,exports.DEFAULT_RETRY_DELAY_MS=Au,exports.DEFAULT_ROW_COMPARATOR=P,exports.DEFAULT_STREAMING_SYNC_OPTIONS=Cu,exports.DEFAULT_STREAM_CONNECTION_OPTIONS=Fu,exports.DEFAULT_SYNC_CLIENT_IMPLEMENTATION=_u,exports.DEFAULT_TABLE_OPTIONS=ne,exports.DEFAULT_WATCH_QUERY_OPTIONS=U,exports.DEFAULT_WATCH_THROTTLE_MS=k,exports.DataStream=lu,exports.DifferentialQueryProcessor=M,exports.EMPTY_DIFFERENTIAL={added:[],all:[],removed:[],updated:[],unchanged:[]},exports.FalsyComparator=L,exports.FetchImplementationProvider=du,exports.GetAllQuery=class{options;constructor(l){this.options=l}compile(){return{sql:this.options.sql,parameters:this.options.parameters??[]}}async execute(l){const{db:n}=l,{sql:u,parameters:e=[]}=this.compile(),t=await n.getAll(u,[...e]);return this.options.mapper?t.map(this.options.mapper):t}},exports.Index=Zu,exports.IndexedColumn=Yu,exports.InvalidSQLCharacters=ue,exports.LogLevel=se,exports.MAX_AMOUNT_OF_COLUMNS=Vu,exports.MAX_OP_ID=Bu,exports.OnChangeQueryProcessor=B,exports.OpType=K,exports.OplogEntry=Z,exports.Schema=class{types;props;tables;rawTables;constructor(l){if(Array.isArray(l)){for(const n of l)if(""===n.name)throw new Error("It appears you are trying to create a new Schema with an array instead of an object. Passing in an object instead of an array into 'new Schema()' may resolve your issue.");this.tables=l}else this.props=Object.fromEntries(Object.entries(l).map((([l,n])=>[l,n.copyWithName(l)]))),this.tables=Object.values(this.props);this.rawTables=[]}withRawTables(l){for(const[n,u]of Object.entries(l))this.rawTables.push(new le(n,u))}validate(){for(const l of this.tables)l.validate()}toJSON(){return{tables:this.tables.map((l=>l.toJSON())),raw_tables:this.rawTables}}},exports.SqliteBucketStorage=qu,exports.SyncDataBatch=$u,exports.SyncDataBucket=ll,exports.SyncProgress=b,exports.SyncStatus=v,exports.Table=ee,exports.TableV2=class extends ee{},exports.UploadQueueStats=T,exports.column=Gu,exports.compilableQueryWatch=function(l,n,u,e){const{onResult:t,onError:r=l=>{}}=u??{};if(!t)throw new Error("onResult is required");Mu((async u=>{try{const s=n.compile(),i=await l.resolveTables(s.sql,s.parameters,e),o=await n.execute();t(o),l.onChangeWithCallback({onChange:async()=>{try{const l=await n.execute();t(l)}catch(l){r(l)}},onError:r},{...e??{},tables:i,signal:u})}catch(l){r(l)}}),l,e)},exports.createBaseLogger=function(){return y},exports.createLogger=function(l,n={}){const u=y.get(l);return n.logLevel&&u.setLevel(n.logLevel),u},exports.extractTableUpdates=E,exports.isBatchedUpdateNotification=g,exports.isContinueCheckpointRequest=function(l){return Array.isArray(l.buckets)&&"string"==typeof l.checkpoint_token},exports.isDBAdapter=W,exports.isPowerSyncDatabaseOptionsWithSettings=Pu,exports.isSQLOpenFactory=$,exports.isSQLOpenOptions=j,exports.isStreamingKeepalive=gu,exports.isStreamingSyncCheckpoint=Eu,exports.isStreamingSyncCheckpointComplete=wu,exports.isStreamingSyncCheckpointDiff=vu,exports.isStreamingSyncCheckpointPartiallyComplete=bu,exports.isStreamingSyncData=yu,exports.isSyncNewCheckpointRequest=function(l){return"object"==typeof l.request_checkpoint},exports.parseQuery=(l,n)=>{let u;if("string"==typeof l)u=l;else{if(n.length>0)throw new Error("You cannot pass parameters to a compiled query.");const e=l.compile();u=e.sql,n=e.parameters}return{sqlStatement:u,parameters:n}},exports.runOnSchemaChange=Mu,exports.sanitizeSQL=function(l,...n){let u="";return l.forEach(((l,e)=>{if(u+=l,e<n.length){const l=n[e];if("string"==typeof l)u+=te(l);else if(null==l)u+="NULL";else if("object"==typeof l){const n=JSON.stringify(l);u+=te(n)}else u+=l}})),u},exports.sanitizeUUID=function(l){if(!/^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(l))throw new Error(`${l} is not a valid UUID`);return l};