"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // utils.ts var utils_exports = {}; __export(utils_exports, { MessageNode: () => MessageNode, MessageQueue: () => MessageQueue, insertEventIntoAscendingList: () => insertEventIntoAscendingList, insertEventIntoDescendingList: () => insertEventIntoDescendingList, normalizeURL: () => normalizeURL, utf8Decoder: () => utf8Decoder, utf8Encoder: () => utf8Encoder }); module.exports = __toCommonJS(utils_exports); var utf8Decoder = new TextDecoder("utf-8"); var utf8Encoder = new TextEncoder(); function normalizeURL(url) { let p = new URL(url); p.pathname = p.pathname.replace(/\/+/g, "/"); if (p.pathname.endsWith("/")) p.pathname = p.pathname.slice(0, -1); if (p.port === "80" && p.protocol === "ws:" || p.port === "443" && p.protocol === "wss:") p.port = ""; p.searchParams.sort(); p.hash = ""; return p.toString(); } function insertEventIntoDescendingList(sortedArray, event) { let start = 0; let end = sortedArray.length - 1; let midPoint; let position = start; if (end < 0) { position = 0; } else if (event.created_at < sortedArray[end].created_at) { position = end + 1; } else if (event.created_at >= sortedArray[start].created_at) { position = start; } else while (true) { if (end <= start + 1) { position = end; break; } midPoint = Math.floor(start + (end - start) / 2); if (sortedArray[midPoint].created_at > event.created_at) { start = midPoint; } else if (sortedArray[midPoint].created_at < event.created_at) { end = midPoint; } else { position = midPoint; break; } } if (sortedArray[position]?.id !== event.id) { return [...sortedArray.slice(0, position), event, ...sortedArray.slice(position)]; } return sortedArray; } function insertEventIntoAscendingList(sortedArray, event) { let start = 0; let end = sortedArray.length - 1; let midPoint; let position = start; if (end < 0) { position = 0; } else if (event.created_at > sortedArray[end].created_at) { position = end + 1; } else if (event.created_at <= sortedArray[start].created_at) { position = start; } else while (true) { if (end <= start + 1) { position = end; break; } midPoint = Math.floor(start + (end - start) / 2); if (sortedArray[midPoint].created_at < event.created_at) { start = midPoint; } else if (sortedArray[midPoint].created_at > event.created_at) { end = midPoint; } else { position = midPoint; break; } } if (sortedArray[position]?.id !== event.id) { return [...sortedArray.slice(0, position), event, ...sortedArray.slice(position)]; } return sortedArray; } var MessageNode = class { _value; _next; get value() { return this._value; } set value(message) { this._value = message; } get next() { return this._next; } set next(node) { this._next = node; } constructor(message) { this._value = message; this._next = null; } }; var MessageQueue = class { _first; _last; get first() { return this._first; } set first(messageNode) { this._first = messageNode; } get last() { return this._last; } set last(messageNode) { this._last = messageNode; } _size; get size() { return this._size; } set size(v) { this._size = v; } constructor() { this._first = null; this._last = null; this._size = 0; } enqueue(message) { const newNode = new MessageNode(message); if (this._size === 0 || !this._last) { this._first = newNode; this._last = newNode; } else { this._last.next = newNode; this._last = newNode; } this._size++; return true; } dequeue() { if (this._size === 0 || !this._first) return null; let prev = this._first; this._first = prev.next; prev.next = null; this._size--; return prev.value; } };