{"version":3,"sources":["jsdelivr-header.js","/npm/@supabase/realtime-js@2.103.2/dist/module/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","file":"/npm/@supabase/realtime-js@2.103.2/dist/module/index.js/+esm","sourceRoot":"","sourcesContent":["/**\n * Bundled by jsDelivr using Rollup v4.62.2 and esbuild v0.28.1.\n * Original file: /npm/@supabase/realtime-js@2.103.2/dist/module/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","import{Presence as H,Socket as J}from\"/npm/@supabase/phoenix@0.4.0/+esm\";var C=typeof global<\"u\"?global:typeof self<\"u\"?self:typeof window<\"u\"?window:{};class R{constructor(){}static detectEnvironment(){var e;if(typeof WebSocket<\"u\")return{type:\"native\",constructor:WebSocket};if(typeof globalThis<\"u\"&&typeof globalThis.WebSocket<\"u\")return{type:\"native\",constructor:globalThis.WebSocket};if(typeof C<\"u\"&&typeof C.WebSocket<\"u\")return{type:\"native\",constructor:C.WebSocket};if(typeof globalThis<\"u\"&&typeof globalThis.WebSocketPair<\"u\"&&typeof globalThis.WebSocket>\"u\")return{type:\"cloudflare\",error:\"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.\",workaround:\"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime.\"};if(typeof globalThis<\"u\"&&globalThis.EdgeRuntime||typeof navigator<\"u\"&&(!((e=navigator.userAgent)===null||e===void 0)&&e.includes(\"Vercel-Edge\")))return{type:\"unsupported\",error:\"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.\",workaround:\"Use serverless functions or a different deployment target for WebSocket functionality.\"};const t=globalThis.process;if(t){const n=t.versions;if(n&&n.node){const s=n.node,i=parseInt(s.replace(/^v/,\"\").split(\".\")[0]);return i>=22?typeof globalThis.WebSocket<\"u\"?{type:\"native\",constructor:globalThis.WebSocket}:{type:\"unsupported\",error:`Node.js ${i} detected but native WebSocket not found.`,workaround:\"Provide a WebSocket implementation via the transport option.\"}:{type:\"unsupported\",error:`Node.js ${i} detected without native WebSocket support.`,workaround:`For Node.js < 22, install \"ws\" package and provide it via the transport option:\nimport ws from \"ws\"\nnew RealtimeClient(url, { transport: ws })`}}}return{type:\"unsupported\",error:\"Unknown JavaScript runtime without WebSocket support.\",workaround:\"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation.\"}}static getWebSocketConstructor(){const e=this.detectEnvironment();if(e.constructor)return e.constructor;let t=e.error||\"WebSocket not supported in this environment.\";throw e.workaround&&(t+=`\n\nSuggested solution: ${e.workaround}`),new Error(t)}static isWebSocketSupported(){try{const e=this.detectEnvironment();return e.type===\"native\"||e.type===\"ws\"}catch{return!1}}}const I=\"2.103.2\",M=`realtime-js/${I}`,x=\"1.0.0\",j=\"2.0.0\",$=j,V=1e4,z=100,b={closed:\"closed\",errored:\"errored\",joined:\"joined\",joining:\"joining\",leaving:\"leaving\"},U={close:\"phx_close\",error:\"phx_error\",join:\"phx_join\",leave:\"phx_leave\",access_token:\"access_token\"},S={connecting:\"connecting\",closing:\"closing\",closed:\"closed\"};class F{constructor(e){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT=\"broadcast\",this.allowedMetadataKeys=[],this.allowedMetadataKeys=e??[]}encode(e,t){if(e.event===this.BROADCAST_EVENT&&!(e.payload instanceof ArrayBuffer)&&typeof e.payload.event==\"string\")return t(this._binaryEncodeUserBroadcastPush(e));let n=[e.join_ref,e.ref,e.topic,e.event,e.payload];return t(JSON.stringify(n))}_binaryEncodeUserBroadcastPush(e){var t;return this._isArrayBuffer((t=e.payload)===null||t===void 0?void 0:t.payload)?this._encodeBinaryUserBroadcastPush(e):this._encodeJsonUserBroadcastPush(e)}_encodeBinaryUserBroadcastPush(e){var t,n;const s=(n=(t=e.payload)===null||t===void 0?void 0:t.payload)!==null&&n!==void 0?n:new ArrayBuffer(0);return this._encodeUserBroadcastPush(e,this.BINARY_ENCODING,s)}_encodeJsonUserBroadcastPush(e){var t,n;const s=(n=(t=e.payload)===null||t===void 0?void 0:t.payload)!==null&&n!==void 0?n:{},o=new TextEncoder().encode(JSON.stringify(s)).buffer;return this._encodeUserBroadcastPush(e,this.JSON_ENCODING,o)}_encodeUserBroadcastPush(e,t,n){var s,i;const o=e.topic,a=(s=e.ref)!==null&&s!==void 0?s:\"\",c=(i=e.join_ref)!==null&&i!==void 0?i:\"\",l=e.payload.event,v=this.allowedMetadataKeys?this._pick(e.payload,this.allowedMetadataKeys):{},d=Object.keys(v).length===0?\"\":JSON.stringify(v);if(c.length>255)throw new Error(`joinRef length ${c.length} exceeds maximum of 255`);if(a.length>255)throw new Error(`ref length ${a.length} exceeds maximum of 255`);if(o.length>255)throw new Error(`topic length ${o.length} exceeds maximum of 255`);if(l.length>255)throw new Error(`userEvent length ${l.length} exceeds maximum of 255`);if(d.length>255)throw new Error(`metadata length ${d.length} exceeds maximum of 255`);const p=this.USER_BROADCAST_PUSH_META_LENGTH+c.length+a.length+o.length+l.length+d.length,h=new ArrayBuffer(this.HEADER_LENGTH+p);let f=new DataView(h),g=0;f.setUint8(g++,this.KINDS.userBroadcastPush),f.setUint8(g++,c.length),f.setUint8(g++,a.length),f.setUint8(g++,o.length),f.setUint8(g++,l.length),f.setUint8(g++,d.length),f.setUint8(g++,t),Array.from(c,m=>f.setUint8(g++,m.charCodeAt(0))),Array.from(a,m=>f.setUint8(g++,m.charCodeAt(0))),Array.from(o,m=>f.setUint8(g++,m.charCodeAt(0))),Array.from(l,m=>f.setUint8(g++,m.charCodeAt(0))),Array.from(d,m=>f.setUint8(g++,m.charCodeAt(0)));var _=new Uint8Array(h.byteLength+n.byteLength);return _.set(new Uint8Array(h),0),_.set(new Uint8Array(n),h.byteLength),_.buffer}decode(e,t){if(this._isArrayBuffer(e)){let n=this._binaryDecode(e);return t(n)}if(typeof e==\"string\"){const n=JSON.parse(e),[s,i,o,a,c]=n;return t({join_ref:s,ref:i,topic:o,event:a,payload:c})}return t({})}_binaryDecode(e){const t=new DataView(e),n=t.getUint8(0),s=new TextDecoder;if(n===this.KINDS.userBroadcast)return this._decodeUserBroadcast(e,t,s)}_decodeUserBroadcast(e,t,n){const s=t.getUint8(1),i=t.getUint8(2),o=t.getUint8(3),a=t.getUint8(4);let c=this.HEADER_LENGTH+4;const l=n.decode(e.slice(c,c+s));c=c+s;const v=n.decode(e.slice(c,c+i));c=c+i;const d=n.decode(e.slice(c,c+o));c=c+o;const p=e.slice(c,e.byteLength),h=a===this.JSON_ENCODING?JSON.parse(n.decode(p)):p,f={type:this.BROADCAST_EVENT,event:v,payload:h};return o>0&&(f.meta=JSON.parse(d)),{join_ref:null,ref:null,topic:l,event:this.BROADCAST_EVENT,payload:f}}_isArrayBuffer(e){var t;return e instanceof ArrayBuffer||((t=e?.constructor)===null||t===void 0?void 0:t.name)===\"ArrayBuffer\"}_pick(e,t){return!e||typeof e!=\"object\"?{}:Object.fromEntries(Object.entries(e).filter(([n])=>t.includes(n)))}}var u;(function(r){r.abstime=\"abstime\",r.bool=\"bool\",r.date=\"date\",r.daterange=\"daterange\",r.float4=\"float4\",r.float8=\"float8\",r.int2=\"int2\",r.int4=\"int4\",r.int4range=\"int4range\",r.int8=\"int8\",r.int8range=\"int8range\",r.json=\"json\",r.jsonb=\"jsonb\",r.money=\"money\",r.numeric=\"numeric\",r.oid=\"oid\",r.reltime=\"reltime\",r.text=\"text\",r.time=\"time\",r.timestamp=\"timestamp\",r.timestamptz=\"timestamptz\",r.timetz=\"timetz\",r.tsrange=\"tsrange\",r.tstzrange=\"tstzrange\"})(u||(u={}));const P=(r,e,t={})=>{var n;const s=(n=t.skipTypes)!==null&&n!==void 0?n:[];return e?Object.keys(e).reduce((i,o)=>(i[o]=K(o,r,e,s),i),{}):{}},K=(r,e,t,n)=>{const s=e.find(a=>a.name===r),i=s?.type,o=t[r];return i&&!n.includes(i)?B(i,o):T(o)},B=(r,e)=>{if(r.charAt(0)===\"_\"){const t=r.slice(1,r.length);return X(e,t)}switch(r){case u.bool:return G(e);case u.float4:case u.float8:case u.int2:case u.int4:case u.int8:case u.numeric:case u.oid:return q(e);case u.json:case u.jsonb:return Y(e);case u.timestamp:return Z(e);case u.abstime:case u.date:case u.daterange:case u.int4range:case u.int8range:case u.money:case u.reltime:case u.text:case u.time:case u.timestamptz:case u.timetz:case u.tsrange:case u.tstzrange:return T(e);default:return T(e)}},T=r=>r,G=r=>{switch(r){case\"t\":return!0;case\"f\":return!1;default:return r}},q=r=>{if(typeof r==\"string\"){const e=parseFloat(r);if(!Number.isNaN(e))return e}return r},Y=r=>{if(typeof r==\"string\")try{return JSON.parse(r)}catch{return r}return r},X=(r,e)=>{if(typeof r!=\"string\")return r;const t=r.length-1,n=r[t];if(r[0]===\"{\"&&n===\"}\"){let i;const o=r.slice(1,t);try{i=JSON.parse(\"[\"+o+\"]\")}catch{i=o?o.split(\",\"):[]}return i.map(a=>B(e,a))}return r},Z=r=>typeof r==\"string\"?r.replace(\" \",\"T\"):r,L=r=>{const e=new URL(r);return e.protocol=e.protocol.replace(/^ws/i,\"http\"),e.pathname=e.pathname.replace(/\\/+$/,\"\").replace(/\\/socket\\/websocket$/i,\"\").replace(/\\/socket$/i,\"\").replace(/\\/websocket$/i,\"\"),e.pathname===\"\"||e.pathname===\"/\"?e.pathname=\"/api/broadcast\":e.pathname=e.pathname+\"/api/broadcast\",e.href};class A{constructor(e,t){const n=ee(t);this.presence=new H(e.getChannel(),n),this.presence.onJoin((s,i,o)=>{const a=A.onJoinPayload(s,i,o);e.getChannel().trigger(\"presence\",a)}),this.presence.onLeave((s,i,o)=>{const a=A.onLeavePayload(s,i,o);e.getChannel().trigger(\"presence\",a)}),this.presence.onSync(()=>{e.getChannel().trigger(\"presence\",{event:\"sync\"})})}get state(){return A.transformState(this.presence.state)}static transformState(e){return e=Q(e),Object.getOwnPropertyNames(e).reduce((t,n)=>{const s=e[n];return t[n]=E(s),t},{})}static onJoinPayload(e,t,n){const s=D(t),i=E(n);return{event:\"join\",key:e,currentPresences:s,newPresences:i}}static onLeavePayload(e,t,n){const s=D(t),i=E(n);return{event:\"leave\",key:e,currentPresences:s,leftPresences:i}}}function E(r){return r.metas.map(e=>(e.presence_ref=e.phx_ref,delete e.phx_ref,delete e.phx_ref_prev,e))}function Q(r){return JSON.parse(JSON.stringify(r))}function ee(r){return r?.events&&{events:r.events}}function D(r){return r?.metas?E(r):[]}var O;(function(r){r.SYNC=\"sync\",r.JOIN=\"join\",r.LEAVE=\"leave\"})(O||(O={}));class W{get state(){return this.presenceAdapter.state}constructor(e,t){this.channel=e,this.presenceAdapter=new A(this.channel.channelAdapter,t)}}class te{constructor(e,t,n){const s=ne(n);this.channel=e.getSocket().channel(t,s),this.socket=e}get state(){return this.channel.state}set state(e){this.channel.state=e}get joinedOnce(){return this.channel.joinedOnce}get joinPush(){return this.channel.joinPush}get rejoinTimer(){return this.channel.rejoinTimer}on(e,t){return this.channel.on(e,t)}off(e,t){this.channel.off(e,t)}subscribe(e){return this.channel.join(e)}unsubscribe(e){return this.channel.leave(e)}teardown(){this.channel.teardown()}onClose(e){this.channel.onClose(e)}onError(e){return this.channel.onError(e)}push(e,t,n){let s;try{s=this.channel.push(e,t,n)}catch{throw`tried to push '${e}' to '${this.channel.topic}' before joining. Use channel.subscribe() before pushing events`}if(this.channel.pushBuffer.length>z){const i=this.channel.pushBuffer.shift();i.cancelTimeout(),this.socket.log(\"channel\",`discarded push due to buffer overflow: ${i.event}`,i.payload())}return s}updateJoinPayload(e){const t=this.channel.joinPush.payload();this.channel.joinPush.payload=()=>Object.assign(Object.assign({},t),e)}canPush(){return this.socket.isConnected()&&this.state===b.joined}isJoined(){return this.state===b.joined}isJoining(){return this.state===b.joining}isClosed(){return this.state===b.closed}isLeaving(){return this.state===b.leaving}updateFilterBindings(e){this.channel.filterBindings=e}updatePayloadTransform(e){this.channel.onMessage=e}getChannel(){return this.channel}}function ne(r){return{config:Object.assign({broadcast:{ack:!1,self:!1},presence:{key:\"\",enabled:!1},private:!1},r.config)}}var N;(function(r){r.ALL=\"*\",r.INSERT=\"INSERT\",r.UPDATE=\"UPDATE\",r.DELETE=\"DELETE\"})(N||(N={}));var w;(function(r){r.BROADCAST=\"broadcast\",r.PRESENCE=\"presence\",r.POSTGRES_CHANGES=\"postgres_changes\",r.SYSTEM=\"system\"})(w||(w={}));var k;(function(r){r.SUBSCRIBED=\"SUBSCRIBED\",r.TIMED_OUT=\"TIMED_OUT\",r.CLOSED=\"CLOSED\",r.CHANNEL_ERROR=\"CHANNEL_ERROR\"})(k||(k={}));const re=b;class y{get state(){return this.channelAdapter.state}set state(e){this.channelAdapter.state=e}get joinedOnce(){return this.channelAdapter.joinedOnce}get timeout(){return this.socket.timeout}get joinPush(){return this.channelAdapter.joinPush}get rejoinTimer(){return this.channelAdapter.rejoinTimer}constructor(e,t={config:{}},n){var s,i;if(this.topic=e,this.params=t,this.socket=n,this.bindings={},this.subTopic=e.replace(/^realtime:/i,\"\"),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:\"\",enabled:!1},private:!1},t.config),this.channelAdapter=new te(this.socket.socketAdapter,e,this.params),this.presence=new W(this),this._onClose(()=>{this.socket._remove(this)}),this._updateFilterTransform(),this.broadcastEndpointURL=L(this.socket.socketAdapter.endPointURL()),this.private=this.params.config.private||!1,!this.private&&(!((i=(s=this.params.config)===null||s===void 0?void 0:s.broadcast)===null||i===void 0)&&i.replay))throw`tried to use replay on public channel '${this.topic}'. It must be a private channel.`}subscribe(e,t=this.timeout){var n,s,i;if(this.socket.isConnected()||this.socket.connect(),this.channelAdapter.isClosed()){const{config:{broadcast:o,presence:a,private:c}}=this.params,l=(s=(n=this.bindings.postgres_changes)===null||n===void 0?void 0:n.map(h=>h.filter))!==null&&s!==void 0?s:[],v=!!this.bindings[w.PRESENCE]&&this.bindings[w.PRESENCE].length>0||((i=this.params.config.presence)===null||i===void 0?void 0:i.enabled)===!0,d={},p={broadcast:o,presence:Object.assign(Object.assign({},a),{enabled:v}),postgres_changes:l,private:c};this.socket.accessTokenValue&&(d.access_token=this.socket.accessTokenValue),this._onError(h=>{e?.(k.CHANNEL_ERROR,h)}),this._onClose(()=>e?.(k.CLOSED)),this.updateJoinPayload(Object.assign({config:p},d)),this._updateFilterMessage(),this.channelAdapter.subscribe(t).receive(\"ok\",async({postgres_changes:h})=>{if(this.socket._isManualToken()||this.socket.setAuth(),h===void 0){e?.(k.SUBSCRIBED);return}this._updatePostgresBindings(h,e)}).receive(\"error\",h=>{this.state=b.errored,e?.(k.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(h).join(\", \")||\"error\")))}).receive(\"timeout\",()=>{e?.(k.TIMED_OUT)})}return this}_updatePostgresBindings(e,t){var n;const s=this.bindings.postgres_changes,i=(n=s?.length)!==null&&n!==void 0?n:0,o=[];for(let a=0;a<i;a++){const c=s[a],{filter:{event:l,schema:v,table:d,filter:p}}=c,h=e&&e[a];if(h&&h.event===l&&y.isFilterValueEqual(h.schema,v)&&y.isFilterValueEqual(h.table,d)&&y.isFilterValueEqual(h.filter,p))o.push(Object.assign(Object.assign({},c),{id:h.id}));else{this.unsubscribe(),this.state=b.errored,t?.(k.CHANNEL_ERROR,new Error(\"mismatch between server and client bindings for postgres changes\"));return}}this.bindings.postgres_changes=o,this.state!=b.errored&&t&&t(k.SUBSCRIBED)}presenceState(){return this.presence.state}async track(e,t={}){return await this.send({type:\"presence\",event:\"track\",payload:e},t.timeout||this.timeout)}async untrack(e={}){return await this.send({type:\"presence\",event:\"untrack\"},e)}on(e,t,n){const s=this.channelAdapter.isJoined()||this.channelAdapter.isJoining(),i=e===w.PRESENCE||e===w.POSTGRES_CHANGES;if(s&&i)throw this.socket.log(\"channel\",`cannot add \\`${e}\\` callbacks for ${this.topic} after \\`subscribe()\\`.`),new Error(`cannot add \\`${e}\\` callbacks for ${this.topic} after \\`subscribe()\\`.`);return this._on(e,t,n)}async httpSend(e,t,n={}){var s;if(t==null)return Promise.reject(\"Payload is required for httpSend()\");const i={apikey:this.socket.apiKey?this.socket.apiKey:\"\",\"Content-Type\":\"application/json\"};this.socket.accessTokenValue&&(i.Authorization=`Bearer ${this.socket.accessTokenValue}`);const o={method:\"POST\",headers:i,body:JSON.stringify({messages:[{topic:this.subTopic,event:e,payload:t,private:this.private}]})},a=await this._fetchWithTimeout(this.broadcastEndpointURL,o,(s=n.timeout)!==null&&s!==void 0?s:this.timeout);if(a.status===202)return{success:!0};let c=a.statusText;try{const l=await a.json();c=l.error||l.message||c}catch{}return Promise.reject(new Error(c))}async send(e,t={}){var n,s;if(!this.channelAdapter.canPush()&&e.type===\"broadcast\"){console.warn(\"Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.\");const{event:i,payload:o}=e,a={apikey:this.socket.apiKey?this.socket.apiKey:\"\",\"Content-Type\":\"application/json\"};this.socket.accessTokenValue&&(a.Authorization=`Bearer ${this.socket.accessTokenValue}`);const c={method:\"POST\",headers:a,body:JSON.stringify({messages:[{topic:this.subTopic,event:i,payload:o,private:this.private}]})};try{const l=await this._fetchWithTimeout(this.broadcastEndpointURL,c,(n=t.timeout)!==null&&n!==void 0?n:this.timeout);return await((s=l.body)===null||s===void 0?void 0:s.cancel()),l.ok?\"ok\":\"error\"}catch(l){return l.name===\"AbortError\"?\"timed out\":\"error\"}}else return new Promise(i=>{var o,a,c;const l=this.channelAdapter.push(e.type,e,t.timeout||this.timeout);e.type===\"broadcast\"&&!(!((c=(a=(o=this.params)===null||o===void 0?void 0:o.config)===null||a===void 0?void 0:a.broadcast)===null||c===void 0)&&c.ack)&&i(\"ok\"),l.receive(\"ok\",()=>i(\"ok\")),l.receive(\"error\",()=>i(\"error\")),l.receive(\"timeout\",()=>i(\"timed out\"))})}updateJoinPayload(e){this.channelAdapter.updateJoinPayload(e)}async unsubscribe(e=this.timeout){return new Promise(t=>{this.channelAdapter.unsubscribe(e).receive(\"ok\",()=>t(\"ok\")).receive(\"timeout\",()=>t(\"timed out\")).receive(\"error\",()=>t(\"error\"))})}teardown(){this.channelAdapter.teardown()}async _fetchWithTimeout(e,t,n){const s=new AbortController,i=setTimeout(()=>s.abort(),n),o=await this.socket.fetch(e,Object.assign(Object.assign({},t),{signal:s.signal}));return clearTimeout(i),o}_on(e,t,n){const s=e.toLocaleLowerCase(),i=this.channelAdapter.on(e,n),o={type:s,filter:t,callback:n,ref:i};return this.bindings[s]?this.bindings[s].push(o):this.bindings[s]=[o],this._updateFilterMessage(),this}_onClose(e){this.channelAdapter.onClose(e)}_onError(e){this.channelAdapter.onError(e)}_updateFilterMessage(){this.channelAdapter.updateFilterBindings((e,t,n)=>{var s,i,o,a,c,l,v;const d=e.event.toLocaleLowerCase();if(this._notThisChannelEvent(d,n))return!1;const p=(s=this.bindings[d])===null||s===void 0?void 0:s.find(h=>h.ref===e.ref);if(!p)return!0;if([\"broadcast\",\"presence\",\"postgres_changes\"].includes(d))if(\"id\"in p){const h=p.id,f=(i=p.filter)===null||i===void 0?void 0:i.event;return h&&((o=t.ids)===null||o===void 0?void 0:o.includes(h))&&(f===\"*\"||f?.toLocaleLowerCase()===((a=t.data)===null||a===void 0?void 0:a.type.toLocaleLowerCase()))}else{const h=(l=(c=p?.filter)===null||c===void 0?void 0:c.event)===null||l===void 0?void 0:l.toLocaleLowerCase();return h===\"*\"||h===((v=t?.event)===null||v===void 0?void 0:v.toLocaleLowerCase())}else return p.type.toLocaleLowerCase()===d})}_notThisChannelEvent(e,t){const{close:n,error:s,leave:i,join:o}=U;return t&&[n,s,i,o].includes(e)&&t!==this.joinPush.ref}_updateFilterTransform(){this.channelAdapter.updatePayloadTransform((e,t,n)=>{if(typeof t==\"object\"&&\"ids\"in t){const s=t.data,{schema:i,table:o,commit_timestamp:a,type:c,errors:l}=s;return Object.assign(Object.assign({},{schema:i,table:o,commit_timestamp:a,eventType:c,new:{},old:{},errors:l}),this._getPayloadRecords(s))}return t})}copyBindings(e){if(this.joinedOnce)throw new Error(\"cannot copy bindings into joined channel\");for(const t in e.bindings)for(const n of e.bindings[t])this._on(n.type,n.filter,n.callback)}static isFilterValueEqual(e,t){return(e??void 0)===(t??void 0)}_getPayloadRecords(e){const t={new:{},old:{}};return(e.type===\"INSERT\"||e.type===\"UPDATE\")&&(t.new=P(e.columns,e.record)),(e.type===\"UPDATE\"||e.type===\"DELETE\")&&(t.old=P(e.columns,e.old_record)),t}}class se{constructor(e,t){this.socket=new J(e,t)}get timeout(){return this.socket.timeout}get endPoint(){return this.socket.endPoint}get transport(){return this.socket.transport}get heartbeatIntervalMs(){return this.socket.heartbeatIntervalMs}get heartbeatCallback(){return this.socket.heartbeatCallback}set heartbeatCallback(e){this.socket.heartbeatCallback=e}get heartbeatTimer(){return this.socket.heartbeatTimer}get pendingHeartbeatRef(){return this.socket.pendingHeartbeatRef}get reconnectTimer(){return this.socket.reconnectTimer}get vsn(){return this.socket.vsn}get encode(){return this.socket.encode}get decode(){return this.socket.decode}get reconnectAfterMs(){return this.socket.reconnectAfterMs}get sendBuffer(){return this.socket.sendBuffer}get stateChangeCallbacks(){return this.socket.stateChangeCallbacks}connect(){this.socket.connect()}disconnect(e,t,n,s=1e4){return new Promise(i=>{setTimeout(()=>i(\"timeout\"),s),this.socket.disconnect(()=>{e(),i(\"ok\")},t,n)})}push(e){this.socket.push(e)}log(e,t,n){this.socket.log(e,t,n)}makeRef(){return this.socket.makeRef()}onOpen(e){this.socket.onOpen(e)}onClose(e){this.socket.onClose(e)}onError(e){this.socket.onError(e)}onMessage(e){this.socket.onMessage(e)}isConnected(){return this.socket.isConnected()}isConnecting(){return this.socket.connectionState()==S.connecting}isDisconnecting(){return this.socket.connectionState()==S.closing}connectionState(){return this.socket.connectionState()}endPointURL(){return this.socket.endPointURL()}sendHeartbeat(){this.socket.sendHeartbeat()}getSocket(){return this.socket}}const ie={HEARTBEAT_INTERVAL:25e3},oe=[1e3,2e3,5e3,1e4],ae=1e4,ce=`\n  addEventListener(\"message\", (e) => {\n    if (e.data.event === \"start\") {\n      setInterval(() => postMessage({ event: \"keepAlive\" }), e.data.interval);\n    }\n  });`;class le{get endPoint(){return this.socketAdapter.endPoint}get timeout(){return this.socketAdapter.timeout}get transport(){return this.socketAdapter.transport}get heartbeatCallback(){return this.socketAdapter.heartbeatCallback}get heartbeatIntervalMs(){return this.socketAdapter.heartbeatIntervalMs}get heartbeatTimer(){return this.worker?this._workerHeartbeatTimer:this.socketAdapter.heartbeatTimer}get pendingHeartbeatRef(){return this.worker?this._pendingWorkerHeartbeatRef:this.socketAdapter.pendingHeartbeatRef}get reconnectTimer(){return this.socketAdapter.reconnectTimer}get vsn(){return this.socketAdapter.vsn}get encode(){return this.socketAdapter.encode}get decode(){return this.socketAdapter.decode}get reconnectAfterMs(){return this.socketAdapter.reconnectAfterMs}get sendBuffer(){return this.socketAdapter.sendBuffer}get stateChangeCallbacks(){return this.socketAdapter.stateChangeCallbacks}constructor(e,t){var n;if(this.channels=new Array,this.accessTokenValue=null,this.accessToken=null,this.apiKey=null,this.httpEndpoint=\"\",this.headers={},this.params={},this.ref=0,this.serializer=new F,this._manuallySetToken=!1,this._authPromise=null,this._workerHeartbeatTimer=void 0,this._pendingWorkerHeartbeatRef=null,this._resolveFetch=i=>i?(...o)=>i(...o):(...o)=>fetch(...o),!(!((n=t?.params)===null||n===void 0)&&n.apikey))throw new Error(\"API key is required to connect to Realtime\");this.apiKey=t.params.apikey;const s=this._initializeOptions(t);this.socketAdapter=new se(e,s),this.httpEndpoint=L(e),this.fetch=this._resolveFetch(t?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.isConnected())){this.accessToken&&!this._authPromise&&this._setAuthSafely(\"connect\"),this._setupConnectionHandlers();try{this.socketAdapter.connect()}catch(e){const t=e.message;throw t.includes(\"Node.js\")?new Error(`${t}\n\nTo use Realtime in Node.js, you need to provide a WebSocket implementation:\n\nOption 1: Use Node.js 22+ which has native WebSocket support\nOption 2: Install and provide the \"ws\" package:\n\n  npm install ws\n\n  import ws from \"ws\"\n  const client = new RealtimeClient(url, {\n    ...options,\n    transport: ws\n  })`):new Error(`WebSocket not available: ${t}`)}this._handleNodeJsRaceCondition()}}endpointURL(){return this.socketAdapter.endPointURL()}async disconnect(e,t){return this.isDisconnecting()?\"ok\":await this.socketAdapter.disconnect(()=>{clearInterval(this._workerHeartbeatTimer),this._terminateWorker()},e,t)}getChannels(){return this.channels}async removeChannel(e){const t=await e.unsubscribe();return t===\"ok\"&&e.teardown(),this.channels.length===0&&this.disconnect(),t}async removeAllChannels(){const e=this.channels.map(async n=>{const s=await n.unsubscribe();return n.teardown(),s}),t=await Promise.all(e);return this.disconnect(),t}log(e,t,n){this.socketAdapter.log(e,t,n)}connectionState(){return this.socketAdapter.connectionState()||S.closed}isConnected(){return this.socketAdapter.isConnected()}isConnecting(){return this.socketAdapter.isConnecting()}isDisconnecting(){return this.socketAdapter.isDisconnecting()}channel(e,t={config:{}}){const n=`realtime:${e}`,s=this.getChannels().find(i=>i.topic===n);if(s)return s;{const i=new y(`realtime:${e}`,t,this);return this.channels.push(i),i}}push(e){this.socketAdapter.push(e)}async setAuth(e=null){this._authPromise=this._performAuth(e);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){this.socketAdapter.sendHeartbeat()}onHeartbeat(e){this.socketAdapter.heartbeatCallback=this._wrapHeartbeatCallback(e)}_makeRef(){return this.socketAdapter.makeRef()}_remove(e){this.channels=this.channels.filter(t=>t.topic!==e.topic)}async _performAuth(e=null){let t,n=!1;if(e)t=e,n=!0;else if(this.accessToken)try{t=await this.accessToken()}catch(s){this.log(\"error\",\"Error fetching access token from callback\",s),t=this.accessTokenValue}else t=this.accessTokenValue;n?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=t&&(this.accessTokenValue=t,this.channels.forEach(s=>{const i={access_token:t,version:M};t&&s.updateJoinPayload(i),s.joinedOnce&&s.channelAdapter.isJoined()&&s.channelAdapter.push(U.access_token,{access_token:t})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e=\"general\"){this._isManualToken()||this.setAuth().catch(t=>{this.log(\"error\",`Error setting auth in ${e}`,t)})}_setupConnectionHandlers(){this.socketAdapter.onOpen(()=>{(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).catch(t=>{this.log(\"error\",\"error waiting for auth on connect\",t)}),this.worker&&!this.workerRef&&this._startWorkerHeartbeat()}),this.socketAdapter.onClose(()=>{this.worker&&this.workerRef&&this._terminateWorker()}),this.socketAdapter.onMessage(e=>{e.ref&&e.ref===this._pendingWorkerHeartbeatRef&&(this._pendingWorkerHeartbeatRef=null)})}_handleNodeJsRaceCondition(){this.socketAdapter.isConnected()&&this.socketAdapter.getSocket().onConnOpen()}_wrapHeartbeatCallback(e){return(t,n)=>{t==\"sent\"&&this._setAuthSafely(),e&&e(t,n)}}_startWorkerHeartbeat(){this.workerUrl?this.log(\"worker\",`starting worker for from ${this.workerUrl}`):this.log(\"worker\",\"starting default worker\");const e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=t=>{this.log(\"worker\",\"worker error\",t.message),this._terminateWorker(),this.disconnect()},this.workerRef.onmessage=t=>{t.data.event===\"keepAlive\"&&this.sendHeartbeat()},this.workerRef.postMessage({event:\"start\",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log(\"worker\",\"terminating worker\"),this.workerRef.terminate(),this.workerRef=void 0)}_workerObjectUrl(e){let t;if(e)t=e;else{const n=new Blob([ce],{type:\"application/javascript\"});t=URL.createObjectURL(n)}return t}_initializeOptions(e){var t,n,s,i,o,a,c,l,v;this.worker=(t=e?.worker)!==null&&t!==void 0?t:!1,this.accessToken=(n=e?.accessToken)!==null&&n!==void 0?n:null;const d={};d.timeout=(s=e?.timeout)!==null&&s!==void 0?s:V,d.heartbeatIntervalMs=(i=e?.heartbeatIntervalMs)!==null&&i!==void 0?i:ie.HEARTBEAT_INTERVAL,d.transport=(o=e?.transport)!==null&&o!==void 0?o:R.getWebSocketConstructor(),d.params=e?.params,d.logger=e?.logger,d.heartbeatCallback=this._wrapHeartbeatCallback(e?.heartbeatCallback),d.reconnectAfterMs=(a=e?.reconnectAfterMs)!==null&&a!==void 0?a:(g=>oe[g-1]||ae);let p,h;const f=(c=e?.vsn)!==null&&c!==void 0?c:$;switch(f){case x:p=(g,_)=>_(JSON.stringify(g)),h=(g,_)=>_(JSON.parse(g));break;case j:p=this.serializer.encode.bind(this.serializer),h=this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${d.vsn}`)}if(d.vsn=f,d.encode=(l=e?.encode)!==null&&l!==void 0?l:p,d.decode=(v=e?.decode)!==null&&v!==void 0?v:h,d.beforeReconnect=this._reconnectAuth.bind(this),(e?.logLevel||e?.log_level)&&(this.logLevel=e.logLevel||e.log_level,d.params=Object.assign(Object.assign({},d.params),{log_level:this.logLevel})),this.worker){if(typeof window<\"u\"&&!window.Worker)throw new Error(\"Web Worker is not supported\");this.workerUrl=e?.workerUrl,d.autoSendHeartbeat=!this.worker}return d}async _reconnectAuth(){await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()}}export{re as REALTIME_CHANNEL_STATES,w as REALTIME_LISTEN_TYPES,N as REALTIME_POSTGRES_CHANGES_LISTEN_EVENT,O as REALTIME_PRESENCE_LISTEN_EVENTS,k as REALTIME_SUBSCRIBE_STATES,y as RealtimeChannel,le as RealtimeClient,W as RealtimePresence,R as WebSocketFactory};\n\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTAzLjIvc3JjL2xpYi93ZWJzb2NrZXQtZmFjdG9yeS50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTAzLjIvc3JjL2xpYi92ZXJzaW9uLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMDMuMi9zcmMvbGliL2NvbnN0YW50cy50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTAzLjIvc3JjL2xpYi9zZXJpYWxpemVyLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMDMuMi9zcmMvbGliL3RyYW5zZm9ybWVycy50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTAzLjIvc3JjL3Bob2VuaXgvcHJlc2VuY2VBZGFwdGVyLnRzIiwiL25wbS9Ac3VwYWJhc2UvcmVhbHRpbWUtanNAMi4xMDMuMi9zcmMvUmVhbHRpbWVQcmVzZW5jZS50cyIsIi9ucG0vQHN1cGFiYXNlL3JlYWx0aW1lLWpzQDIuMTAzLjIvc3JjL3Bob2VuaXgvY2hhbm5lbEFkYXB0ZXIudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjEwMy4yL3NyYy9SZWFsdGltZUNoYW5uZWwudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjEwMy4yL3NyYy9waG9lbml4L3NvY2tldEFkYXB0ZXIudHMiLCIvbnBtL0BzdXBhYmFzZS9yZWFsdGltZS1qc0AyLjEwMy4yL3NyYy9SZWFsdGltZUNsaWVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6W251bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbCxudWxsLG51bGwsbnVsbF0sIm1hcHBpbmdzIjoiK0pBaURhQSxDQUFnQixDQUkzQixhQUFBLENBQXVCLENBQ2YsT0FBTyxtQkFBaUIsT0FDOUIsR0FBSSxPQUFPLFVBQWMsSUFDdkIsTUFBTyxDQUFFLEtBQU0sU0FBVSxZQUFhLFNBQVMsRUFH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LGtCQUFvQixDQUFDLEtBQUssTUFDbkMsQ0FFQSxPQUFPQSxDQUNULENBR1EsTUFBTSxnQkFBYyxDQUMxQixNQUFNLEtBQUsscUJBQW9CLEVBQzFCLEtBQUssWUFBVyxHQUNuQixLQUFLLFFBQU8sQ0FFaEIsQ0FDRCIsIm5hbWVzIjpbIldlYlNvY2tldEZhY3RvcnkiLCJnbG9iYWwiLCJfYSIsIl9wcm9jZXNzIiwicHJvY2Vzc1ZlcnNpb25zIiwidmVyc2lvblN0cmluZyIsIm5vZGVWZXJzaW9uIiwiZW52IiwiZXJyb3JNZXNzYWdlIiwidmVyc2lvbiIsIkRFRkFVTFRfVkVSU0lPTiIsIlZTTl8xXzBfMCIsIlZTTl8yXzBfMCIsIkRFRkFVTFRfVlNOIiwiREVGQVVMVF9USU1FT1VUIiwiTUFYX1BVU0hfQlVGRkVSX1NJWkUiLCJDSEFOTkVMX1NUQVRFUyIsIkNIQU5ORUxfRVZFTlRTIiwiQ09OTkVDVElPTl9TVEFURSIsIlNlcmlhbGl6ZXIiLCJhbGxvd2VkTWV0YWRhdGFLZXlzIiwibXNnIiwiY2FsbGJhY2siLCJwYXlsb2FkIiwibWVzc2FnZSIsInVzZXJQYXlsb2FkIiwiX2IiLCJlbmNvZGVkVXNlclBheWxvYWQiLCJlbmNvZGluZ1R5cGUiLCJlbmNvZGVkUGF5bG9hZCIsInRvcGljIiwicmVmIiwiam9pblJlZiIsInVzZXJFdmVudCIsInJlc3QiLCJtZXRhZGF0YSIsIm1ldGFMZW5ndGgiLCJoZWFkZXIiLCJ2aWV3Iiwib2Zmc2V0IiwiY2hhciIsImNvbWJpbmVkIiwicmF3UGF5bG9hZCIsInJlc3VsdCIsImpzb25QYXlsb2FkIiwiam9pbl9yZWYiLCJldmVudCIsImJ1ZmZlciIsImtpbmQiLCJkZWNvZGVyIiwidG9waWNTaXplIiwidXNlckV2ZW50U2l6ZSIsIm1ldGFkYXRhU2l6ZSIsInBheWxvYWRFbmNvZGluZyIsInBhcnNlZFBheWxvYWQiLCJkYXRhIiwib2JqIiwia2V5cyIsImtleSIsIlBvc3RncmVzVHlwZXMiLCJjb252ZXJ0Q2hhbmdlRGF0YSIsImNvbHVtbnMiLCJyZWNvcmQiLCJvcHRpb25zIiwic2tpcFR5cGVzIiwiYWNjIiwicmVjX2tleSIsImNvbnZlcnRDb2x1bW4iLCJjb2x1bW5OYW1lIiwiY29sdW1uIiwieCIsImNvbFR5cGUiLCJ2YWx1ZSIsImNvbnZlcnRDZWxsIiwibm9vcCIsInR5cGUiLCJkYXRhVHlwZSIsInRvQXJyYXkiLCJ0b0Jvb2xlYW4iLCJ0b051bWJlciIsInRvSnNvbiIsInRvVGltZXN0YW1wU3RyaW5nIiwicGFyc2VkVmFsdWUiLCJsYXN0SWR4IiwiY2xvc2VCcmFjZSIsImFyciIsInZhbFRyaW0iLCJ2YWwiLCJodHRwRW5kcG9pbnRVUkwiLCJzb2NrZXRVcmwiLCJ3c1VybCIsIlByZXNlbmNlQWRhcHRlciIsImNoYW5uZWwiLCJvcHRzIiwicGhvZW5peE9wdGlvbnMiLCJwaG9lbml4UHJlc2VuY2VPcHRpb25zIiwiUHJlc2VuY2UiLCJjdXJyZW50UHJlc2VuY2UiLCJuZXdQcmVzZW5jZSIsIm9uSm9pblBheWxvYWQiLCJsZWZ0UHJlc2VuY2UiLCJvbkxlYXZlUGF5bG9hZCIsInN0YXRlIiwiY2xvbmVTdGF0ZSIsIm5ld1N0YXRlIiwicHJlc2VuY2VzIiwidHJhbnNmb3JtU3RhdGUiLCJjdXJyZW50UHJlc2VuY2VzIiwicGFyc2VDdXJyZW50UHJlc2VuY2VzIiwibmV3UHJlc2VuY2VzIiwibGVmdFByZXNlbmNlcyIsInByZXNlbmNlIiwiUkVBTFRJTUVfUFJFU0VOQ0VfTElTVEVOX0VWRU5UUyIsIlJlYWx0aW1lUHJlc2VuY2UiLCJDaGFubmVsQWRhcHRlciIsInNvY2tldCIsInBhcmFtcyIsInBob2VuaXhQYXJhbXMiLCJwaG9lbml4Q2hhbm5lbFBhcmFtcyIsInJlZk51bWJlciIsInRpbWVvdXQiLCJwdXNoIiwicmVtb3ZlZFB1c2giLCJvbGRQYXlsb2FkIiwiZmlsdGVyQmluZGluZ3MiLCJSRUFMVElNRV9QT1NUR1JFU19DSEFOR0VTX0xJU1RFTl9FVkVOVCIsIlJFQUxUSU1FX0xJU1RFTl9UWVBFUyIsIlJFQUxUSU1FX1NVQlNDUklCRV9TVEFURVMiLCJSRUFMVElNRV9DSEFOTkVMX1NUQVRFUyIsIlJlYWx0aW1lQ2hhbm5lbCIsImJyb2FkY2FzdCIsImlzUHJpdmF0ZSIsInBvc3RncmVzX2NoYW5nZXMiLCJyIiwicHJlc2VuY2VfZW5hYmxlZCIsIl9jIiwiYWNjZXNzVG9rZW5QYXlsb2FkIiwiY29uZmlnIiwicmVhc29uIiwiZXJyb3IiLCJjbGllbnRQb3N0Z3Jlc0JpbmRpbmdzIiwiYmluZGluZ3NMZW4iLCJuZXdQb3N0Z3Jlc0JpbmRpbmdzIiwiaSIsImNsaWVudFBvc3RncmVzQmluZGluZyIsInNjaGVtYSIsInRhYmxlIiwiZmlsdGVyIiwic2VydmVyUG9zdGdyZXNGaWx0ZXIiLCJzdGF0ZUNoZWNrIiwidHlwZUNoZWNrIiwiaGVhZGVycyIsInJlc3BvbnNlIiwiZXJyb3JCb2R5IiwiYXJncyIsImVuZHBvaW50X3BheWxvYWQiLCJyZXNvbHZlIiwidXJsIiwiY29udHJvbGxlciIsImlkIiwidHlwZUxvd2VyIiwiYmluZGluZyIsImJpbmQiLCJiaW5kSWQiLCJiaW5kRXZlbnQiLCJfZCIsIl9mIiwiX2UiLCJfZyIsImNsb3NlIiwibGVhdmUiLCJqb2luIiwicG9zdGdyZXNDaGFuZ2VzIiwiY29tbWl0X3RpbWVzdGFtcCIsImVycm9ycyIsIm90aGVyIiwic2VydmVyVmFsdWUiLCJjbGllbnRWYWx1ZSIsInJlY29yZHMiLCJUcmFuc2Zvcm1lcnMuY29udmVydENoYW5nZURhdGEiLCJTb2NrZXRBZGFwdGVyIiwiZW5kUG9pbnQiLCJTb2NrZXQiLCJjb2RlIiwiQ09OTkVDVElPTl9USU1FT1VUUyIsIlJFQ09OTkVDVF9JTlRFUlZBTFMiLCJERUZBVUxUX1JFQ09OTkVDVF9GQUxMQkFDSyIsIldPUktFUl9TQ1JJUFQiLCJSZWFsdGltZUNsaWVudCIsImN1c3RvbUZldGNoIiwic29ja2V0QWRhcHRlck9wdGlvbnMiLCJzdGF0dXMiLCJwcm9taXNlcyIsInJlYWx0aW1lVG9waWMiLCJleGlzdHMiLCJjIiwiY2hhbiIsInRva2VuIiwidG9rZW5Ub1NlbmQiLCJpc01hbnVhbFRva2VuIiwiZSIsImNvbnRleHQiLCJoZWFydGJlYXRDYWxsYmFjayIsImxhdGVuY3kiLCJvYmplY3RVcmwiLCJyZXN1bHRfdXJsIiwiYmxvYiIsInRyaWVzIiwiZGVmYXVsdEVuY29kZSIsImRlZmF1bHREZWNvZGUiLCJ2c24iLCJfaCIsIl9qIl19"]}