@talkjs/core 1.6.3 → 1.7.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.
@@ -69,17 +69,17 @@ function s(e2, t2) {
69
69
  return e2 * (1 - t2 + 2 * Math.random() * t2);
70
70
  }
71
71
  const n = () => true;
72
- function r(_0, _1, _2) {
73
- return __async(this, arguments, function* (e2, a2, { initialDelay: i2, maxDelay: o2, log: u2, shouldRetry: c2 = n }) {
74
- return a2().catch((n2) => __async(this, null, function* () {
72
+ function a(_0, _1, _2) {
73
+ return __async(this, arguments, function* (e2, r2, { initialDelay: i2, maxDelay: o2, log: c2, shouldRetry: l2 = n }) {
74
+ return r2().catch((n2) => __async(null, null, function* () {
75
75
  if (0 === e2) throw n2;
76
- if (!(yield c2(n2))) throw n2;
77
- const l2 = 1e3 * i2 * 1.2, h2 = s(o2 ? Math.min(1e3 * o2, l2) : l2, 0.05);
78
- return t(h2).then(() => r(e2 - 1, a2, { initialDelay: h2 / 1e3, maxDelay: o2, log: u2, shouldRetry: c2 }));
76
+ if (!(yield l2(n2))) throw n2;
77
+ const h2 = 1e3 * i2 * 1.2, u2 = s(o2 ? Math.min(1e3 * o2, h2) : h2, 0.05);
78
+ return t(u2).then(() => a(e2 - 1, r2, { initialDelay: u2 / 1e3, maxDelay: o2, log: c2, shouldRetry: l2 }));
79
79
  }));
80
80
  });
81
81
  }
82
- function a() {
82
+ function r() {
83
83
  const e2 = {}, t2 = new Promise(function(t3, s2) {
84
84
  e2.resolve = t3, e2.reject = s2;
85
85
  });
@@ -107,42 +107,45 @@ class i {
107
107
  function o(e2) {
108
108
  return { ok: true, value: e2 };
109
109
  }
110
- function u(e2) {
110
+ function c(e2) {
111
111
  return { ok: false, where: "client", value: e2 };
112
112
  }
113
- function c(e2) {
113
+ function l(e2) {
114
114
  return { ok: false, where: "server", value: e2 };
115
115
  }
116
- function l() {
116
+ function h() {
117
117
  const e2 = {}, t2 = new Promise((t3) => {
118
- e2.ok = (e3) => __async(this, null, function* () {
118
+ e2.ok = (e3) => __async(null, null, function* () {
119
119
  return t3(o(e3));
120
- }), e2.clientErr = (e3) => t3(u(e3)), e2.serverErr = (e3) => t3(c(e3)), e2.resolve = (e3) => t3(e3);
120
+ }), e2.clientErr = (e3) => t3(c(e3)), e2.serverErr = (e3) => t3(l(e3)), e2.resolve = (e3) => t3(e3);
121
121
  });
122
122
  return e2.promise = t2, e2;
123
123
  }
124
- function h(e2, t2) {
124
+ function u(e2) {
125
+ return e2.filter((e3) => e3.ok).map((e3) => e3.value);
126
+ }
127
+ function d(e2, t2) {
125
128
  if (t2.ok) return t2.value.data;
126
129
  if ("SESSION_DESTROYED" === t2.value) throw new Error(`${e2} failed because the session was destroyed`);
127
- if ("server" === t2.where) throw new Error(d(e2, t2.value));
130
+ if ("server" === t2.where) throw new Error(p(e2, t2.value));
128
131
  throw "unreachable";
129
132
  }
130
- function d(e2, t2) {
133
+ function p(e2, t2) {
131
134
  let s2;
132
135
  return s2 = Array.isArray(t2.reasons) ? t2.reasons.join() : JSON.stringify(t2.reasons), `${e2} failed, got status ${t2.status} ${t2.errorCode}, reasons: ${s2}`;
133
136
  }
134
- let p = null;
137
+ let m = null;
135
138
  function f({ WebSocket: e2 }) {
136
- p = e2;
139
+ m = e2;
137
140
  }
138
- class m {
141
+ class g {
139
142
  constructor(e2, t2) {
140
143
  this.realtimeUrl = e2, this.handlers = t2, this.socket = null, this.stateMachine = new i("ReconnectingSocket", ["STOPPED", "CONNECTING", "READY", "DISCONNECTED", "TERMINATED"], { startWs: { from: ["STOPPED", "DISCONNECTED"], to: "CONNECTING", afterTransition: () => {
141
- const e3 = new (function() {
142
- if (p) return p;
144
+ const e3 = new ((function() {
145
+ if (m) return m;
143
146
  if (globalThis.WebSocket) return globalThis.WebSocket;
144
147
  throw new Error("Missing WebSocket implementation");
145
- }())(this.realtimeUrl + "&talkjs-time=" + Date.now());
148
+ })())(this.realtimeUrl + "&talkjs-time=" + Date.now());
146
149
  this.socket = e3, e3.addEventListener("open", () => {
147
150
  this.socket === e3 && this.stateMachine.transition("onOpen");
148
151
  }), e3.addEventListener("close", () => {
@@ -174,7 +177,7 @@ class m {
174
177
  this.stateMachine.transition("startWs");
175
178
  }
176
179
  send(e2) {
177
- return "READY" === this.stateMachine.state ? (this.socket.send(e2), o(void 0)) : u("SOCKET_NOT_READY");
180
+ return "READY" === this.stateMachine.state ? (this.socket.send(e2), o(void 0)) : c("SOCKET_NOT_READY");
178
181
  }
179
182
  terminate() {
180
183
  const e2 = this.socket;
@@ -184,9 +187,9 @@ class m {
184
187
  this.stateMachine.transition("destroy");
185
188
  }
186
189
  }
187
- class g {
190
+ class v {
188
191
  constructor(e2, t2) {
189
- this.handlers = t2, this.socket = new m(e2, { onOpen: () => this.handlers.onOpen(), onClose: () => this.handlers.onClose(), onMessage: (e3) => this.onWebSocketMessage(e3) });
192
+ this.handlers = t2, this.socket = new g(e2, { onOpen: () => this.handlers.onOpen(), onClose: () => this.handlers.onClose(), onMessage: (e3) => this.onWebSocketMessage(e3) });
190
193
  }
191
194
  call(e2, t2) {
192
195
  const s2 = `/${t2.path.map((e3) => encodeURIComponent(e3)).join("/")}`, n2 = JSON.stringify([e2, t2.method, s2, t2.data, t2.headers]);
@@ -210,10 +213,10 @@ class g {
210
213
  if ("PUBLISH" === t2[1]) {
211
214
  const e3 = t2[0], s2 = JSON.stringify([e3, "ACK"]);
212
215
  this.socket.send(s2);
213
- const n2 = t2.slice(2), r2 = [];
216
+ const n2 = t2.slice(2), a2 = [];
214
217
  n2.forEach((e4) => {
215
- "session.expired" === e4.type ? this.handlers.onAuthExpired() : "upstream.restarting" === e4.type ? this.handlers.onUpstreamRestarting() : r2.push(e4);
216
- }), r2.length > 0 && this.handlers.onPublish(e3, r2);
218
+ "session.expired" === e4.type ? this.handlers.onAuthExpired() : "upstream.restarting" === e4.type ? this.handlers.onUpstreamRestarting() : a2.push(e4);
219
+ }), a2.length > 0 && this.handlers.onPublish(e3, a2);
217
220
  } else {
218
221
  const e3 = t2[0], s2 = t2[1], n2 = t2[2];
219
222
  this.handlers.onResponse(e3, s2, n2);
@@ -222,7 +225,7 @@ class g {
222
225
  }
223
226
  }
224
227
  }
225
- class v {
228
+ class b {
226
229
  constructor(e2) {
227
230
  this.delayMs = e2, this.timeout = void 0;
228
231
  }
@@ -235,8 +238,8 @@ class v {
235
238
  void 0 !== this.timeout && (clearTimeout(this.timeout), this.timeout = void 0);
236
239
  }
237
240
  }
238
- const w = "undefined" != typeof window ? (_a = window.queueMicrotask) != null ? _a : setTimeout : setTimeout;
239
- class b {
241
+ const y = "undefined" != typeof window ? (_a = window.queueMicrotask) != null ? _a : setTimeout : setTimeout;
242
+ class w {
240
243
  constructor() {
241
244
  this.i = -1;
242
245
  }
@@ -247,9 +250,9 @@ class b {
247
250
  this.i = -1;
248
251
  }
249
252
  }
250
- class y {
253
+ class k {
251
254
  constructor(e2, t2) {
252
- this.handlers = t2, this.seqCounter = new b(), this.responseHandlers = {}, this.heartbeats = new C(this), this.socket = new g(e2, { onUpstreamRestarting: () => {
255
+ this.handlers = t2, this.seqCounter = new w(), this.responseHandlers = {}, this.heartbeats = new C(this), this.socket = new v(e2, { onUpstreamRestarting: () => {
253
256
  this.heartbeats.serverActive(), this.handlers.onUpstreamRestarting();
254
257
  }, onOpen: () => {
255
258
  this.heartbeats.clientActive(), this.heartbeats.serverActive(), this.handlers.onReady();
@@ -267,14 +270,14 @@ class y {
267
270
  }
268
271
  sync() {
269
272
  return __async(this, null, function* () {
270
- yield new Promise((e3) => w(() => e3()));
273
+ yield new Promise((e3) => y(() => e3()));
271
274
  const e2 = Object.values(this.responseHandlers).map((e3) => e3.promise.catch(() => {
272
275
  }));
273
276
  return Promise.all(e2);
274
277
  });
275
278
  }
276
279
  call(e2) {
277
- const t2 = this.seqCounter.next(), s2 = l();
280
+ const t2 = this.seqCounter.next(), s2 = h();
278
281
  this.responseHandlers[t2] = s2;
279
282
  const n2 = this.socket.call(t2, e2);
280
283
  return n2.ok || (s2.resolve(n2), delete this.responseHandlers[t2]), this.heartbeats.clientActive(), s2.promise;
@@ -302,7 +305,7 @@ class y {
302
305
  }
303
306
  class C {
304
307
  constructor(e2) {
305
- this.connection = e2, this.clientInactivityTimer = new v(25e3), this.serverInactivityTimer = new v(1e4), this.serverTimeoutTimer = new v(5e3);
308
+ this.connection = e2, this.clientInactivityTimer = new b(25e3), this.serverInactivityTimer = new b(1e4), this.serverTimeoutTimer = new b(5e3);
306
309
  }
307
310
  clientActive() {
308
311
  this.clientInactivityTimer.schedule(() => {
@@ -324,7 +327,7 @@ class C {
324
327
  });
325
328
  }
326
329
  }
327
- class A {
330
+ class T {
328
331
  constructor(e2, t2, s2) {
329
332
  this.authProvider = t2, this.handlers = s2, this.stateMachine = new i("AuthenticatedConnection", ["WAITING_FOR_WS", "LOGGING_IN", "RENEWING_SESSION", "READY", "TERMINATED"], { logIn: { from: ["WAITING_FOR_WS"], to: "LOGGING_IN", afterTransition: () => __async(this, null, function* () {
330
333
  yield this.renewSession();
@@ -342,7 +345,7 @@ class A {
342
345
  "READY" !== e3 && "RENEWING_SESSION" !== e3 || this.handlers.onNotReady(), this.authProvider.clearScheduledRefresh();
343
346
  } }, destroy: { from: "ANY", to: "TERMINATED", afterTransition: () => {
344
347
  this.authProvider.clearScheduledRefresh(), this.connection.destroy();
345
- } } }), this.connection = new y(e2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onReady: () => this.stateMachine.transition("logIn"), onNotReady: () => {
348
+ } } }), this.connection = new k(e2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onReady: () => this.stateMachine.transition("logIn"), onNotReady: () => {
346
349
  this.stateMachine.transition("wsDisconnected");
347
350
  }, onAuthExpired: () => {
348
351
  this.stateMachine.transition("authExpired");
@@ -386,8 +389,8 @@ class A {
386
389
  return void (null !== t3 && t3 < 120 ? (console.warn(`[TalkJS] Authenticated with a token that expires in ${t3}s. Treating it as already expired and refreshing. Newly generated tokens should last at least 10 minutes.`), "LOGGING_IN" === this.stateMachine.state ? this.stateMachine.transition("logInFailed") : "RENEWING_SESSION" === this.stateMachine.state && this.stateMachine.transition("scheduledReauthFailed")) : (this.authProvider.scheduleRefresh(t3), this.authProvider.emitTokenAccepted(e2), this.stateMachine.canTransition("authenticated") && this.stateMachine.transition("authenticated")));
387
390
  }
388
391
  if (401 === s2.status) return void ("LOGGING_IN" === this.stateMachine.state ? this.stateMachine.transition("logInFailed") : "RENEWING_SESSION" === this.stateMachine.state && this.stateMachine.transition("scheduledReauthFailed"));
389
- if (400 === s2.status) return void this.authProvider.emitTokenRefreshFailed(d("Authentication", s2));
390
- if (402 === s2.status) return void this.authProvider.emitTokenRefreshFailed(d("Authentication", s2));
392
+ if (400 === s2.status) return void this.authProvider.emitTokenRefreshFailed(p("Authentication", s2));
393
+ if (402 === s2.status) return void this.authProvider.emitTokenRefreshFailed(p("Authentication", s2));
391
394
  const n2 = 5e3 * Math.random() + 5e3;
392
395
  setTimeout(() => {
393
396
  this.call({ method: "POST", path: ["session", "renew"], data: { token: e2 }, headers: {} }).catch(() => {
@@ -396,7 +399,7 @@ class A {
396
399
  });
397
400
  }
398
401
  }
399
- class E {
402
+ class I {
400
403
  constructor(e2, t2, s2) {
401
404
  this.handlers = s2, this.stateMachine = new i("StopStartConnection", ["STOPPED", "WAITING_FOR_WS", "READY", "TERMINATED"], { unexpectedDisconnect: { from: ["READY"], to: "WAITING_FOR_WS", afterTransition: () => {
402
405
  this.inactivityTimer.stop(), this.handlers.onNotReady();
@@ -410,7 +413,7 @@ class E {
410
413
  }), this.handlers.onReady();
411
414
  } }, destroy: { from: "ANY", to: "TERMINATED", afterTransition: () => {
412
415
  this.inactivityTimer.stop(), this.connection.destroy();
413
- } } }), this.pendingCalls = 0, this.activeSubscriptions = 0, this.inactivityTimer = new v(3e3), this.connection = new A(e2, t2, { onUpstreamRestarting: () => {
416
+ } } }), this.pendingCalls = 0, this.activeSubscriptions = 0, this.inactivityTimer = new b(3e3), this.connection = new T(e2, t2, { onUpstreamRestarting: () => {
414
417
  this.handlers.onUpstreamRestarting();
415
418
  }, onReady: () => {
416
419
  this.stateMachine.transition("ready");
@@ -449,7 +452,7 @@ class E {
449
452
  logTrace(e2, t2, s2) {
450
453
  }
451
454
  }
452
- class k {
455
+ class x {
453
456
  constructor(e2, t2, s2) {
454
457
  this.handlers = s2, this.stateMachine = new i("QueuedConnection", ["NOT_READY", "PROCESSING_QUEUE", "READY", "TERMINATED"], { processQueue: { from: ["NOT_READY"], to: "PROCESSING_QUEUE", afterTransition: () => {
455
458
  this.sendQueuedCalls();
@@ -464,7 +467,7 @@ class k {
464
467
  e3 == null ? void 0 : e3.clientErr("SESSION_DESTROYED");
465
468
  }
466
469
  this.connection.destroy();
467
- } } }), this.subscribeQueue = {}, this.callQueue = [], this.connection = new E(e2, t2, { onUpstreamRestarting: () => {
470
+ } } }), this.subscribeQueue = {}, this.callQueue = [], this.connection = new I(e2, t2, { onUpstreamRestarting: () => {
468
471
  this.handlers.onUpstreamRestarting();
469
472
  }, onReady: () => {
470
473
  this.stateMachine.transition("processQueue");
@@ -486,11 +489,11 @@ class k {
486
489
  const t2 = e2.path.join("/"), s2 = this.subscribeQueue[t2];
487
490
  if (s2 && s2.params.method === e2.method) return s2.deferred.promise;
488
491
  s2 && s2.params.method !== e2.method && (s2.deferred.ok({ status: 200, data: {} }), delete this.subscribeQueue[t2]);
489
- const n2 = { deferred: l(), params: e2 };
492
+ const n2 = { deferred: h(), params: e2 };
490
493
  return this.subscribeQueue[t2] = n2, n2.deferred.promise;
491
494
  }
492
495
  _call(e2) {
493
- const t2 = { deferred: l(), params: e2 };
496
+ const t2 = { deferred: h(), params: e2 };
494
497
  return this.callQueue.push(t2), t2.deferred.promise;
495
498
  }
496
499
  dequeue() {
@@ -520,22 +523,22 @@ class k {
520
523
  return "READY" === this.stateMachine.state || "PROCESSING_QUEUE" === this.stateMachine.state;
521
524
  }
522
525
  }
523
- function x(e2) {
526
+ function S(e2) {
524
527
  return Object.freeze(e2);
525
528
  }
526
- function T(e2) {
527
- return x(e2.map((e3) => function(e4) {
529
+ function E(e2) {
530
+ return S(e2.map((e3) => (function(e4) {
528
531
  switch (e4.type) {
529
532
  case "text":
530
- return Object.freeze({ type: "text", children: I(e4.children) });
533
+ return Object.freeze({ type: "text", children: M(e4.children) });
531
534
  case "file":
532
535
  case "location":
533
536
  return Object.freeze(e4);
534
537
  }
535
- }(e3)));
538
+ })(e3)));
536
539
  }
537
- function I(e2) {
538
- return x(e2.map((e3) => function(e4) {
540
+ function M(e2) {
541
+ return S(e2.map((e3) => (function(e4) {
539
542
  if ("string" == typeof e4) return e4;
540
543
  switch (e4.type) {
541
544
  case "bold":
@@ -546,53 +549,53 @@ function I(e2) {
546
549
  case "link":
547
550
  case "actionLink":
548
551
  case "actionButton":
549
- return Object.freeze(__spreadProps(__spreadValues({}, e4), { children: I(e4.children) }));
552
+ return Object.freeze(__spreadProps(__spreadValues({}, e4), { children: M(e4.children) }));
550
553
  case "mention":
551
554
  case "autoLink":
552
555
  case "codeSpan":
553
556
  case "customEmoji":
554
557
  return Object.freeze(e4);
555
558
  }
556
- }(e3)));
559
+ })(e3)));
557
560
  }
558
- function D(e2, t2) {
561
+ function A(e2, t2) {
559
562
  return void 0 === t2 ? e2 : t2;
560
563
  }
561
- function S(e2, t2) {
562
- return void 0 === t2 ? e2 : x(t2);
564
+ function N(e2, t2) {
565
+ return void 0 === t2 ? e2 : S(t2);
563
566
  }
564
- function M(e2, t2) {
567
+ function R(e2, t2) {
565
568
  if (void 0 === t2) return e2;
566
- if (null === t2) return x({});
569
+ if (null === t2) return S({});
567
570
  const s2 = __spreadValues({}, e2);
568
571
  for (const e3 in t2) {
569
572
  const n2 = t2[e3];
570
573
  null === n2 ? delete s2[e3] : s2[e3] = n2;
571
574
  }
572
- return x(s2);
575
+ return S(s2);
573
576
  }
574
- function F(e2, t2) {
577
+ function _(e2, t2) {
575
578
  if (e2 === t2) return true;
576
579
  if (!e2 || !t2) return false;
577
580
  if ("object" != typeof e2 || "object" != typeof t2) return false;
578
581
  if (e2.constructor !== t2.constructor) return false;
579
582
  if (Array.isArray(e2) && Array.isArray(t2)) {
580
583
  if (e2.length !== t2.length) return false;
581
- for (let s2 = 0; s2 < e2.length; s2++) if (!F(e2[s2], t2[s2])) return false;
584
+ for (let s2 = 0; s2 < e2.length; s2++) if (!_(e2[s2], t2[s2])) return false;
582
585
  } else {
583
586
  const s2 = Object.keys(e2);
584
587
  if (s2.length !== Object.keys(t2).length) return false;
585
588
  for (const n2 of s2) {
586
589
  if (!Object.hasOwnProperty.call(t2, n2)) return false;
587
- if (!F(e2[n2], t2[n2])) return false;
590
+ if (!_(e2[n2], t2[n2])) return false;
588
591
  }
589
592
  }
590
593
  return true;
591
594
  }
592
- const B = "undefined" != typeof window ? (_b = window.queueMicrotask) != null ? _b : setTimeout : setTimeout;
593
- class R {
595
+ const D = "undefined" != typeof window ? (_b = window.queueMicrotask) != null ? _b : setTimeout : setTimeout;
596
+ class O {
594
597
  constructor(e2, t2, s2) {
595
- this.headers = e2, this.clearPendingBatch = t2, this.sendCalls = s2, this.sent = false, B(() => this.send());
598
+ this.headers = e2, this.clearPendingBatch = t2, this.sendCalls = s2, this.sent = false, D(() => this.send());
596
599
  }
597
600
  send() {
598
601
  this.sent || (this.sent = true, this.clearPendingBatch(), this.sendCalls());
@@ -601,21 +604,21 @@ class R {
601
604
  this.sent = true;
602
605
  }
603
606
  }
604
- class N extends R {
607
+ class P extends O {
605
608
  constructor(e2, t2, s2) {
606
609
  super(t2, s2, () => {
607
610
  this.sendSubscribe(), this.sendGet();
608
611
  }), this.connection = e2, this.getCalls = [], this.subscribeCalls = [];
609
612
  }
610
613
  canPush(e2) {
611
- return N.isCorrectBatchTypeFor(e2) && F(this.headers, e2.headers);
614
+ return P.isCorrectBatchTypeFor(e2) && _(this.headers, e2.headers);
612
615
  }
613
616
  static isCorrectBatchTypeFor(t2) {
614
617
  const s2 = e(t2.path, ["users", "*"]), n2 = "GET" === t2.method || "SUBSCRIBE" === t2.method;
615
618
  return s2 && n2;
616
619
  }
617
620
  push(e2) {
618
- const t2 = e2.path[1], s2 = l();
621
+ const t2 = e2.path[1], s2 = h();
619
622
  return "GET" === e2.method ? this.getCalls.push({ userId: t2, deferred: s2 }) : this.subscribeCalls.push({ userId: t2, deferred: s2 }), 1e3 !== this.getCalls.length && 1e3 !== this.subscribeCalls.length || this.send(), s2.promise;
620
623
  }
621
624
  sendGet() {
@@ -635,12 +638,12 @@ class N extends R {
635
638
  this.connection.call({ method: "SUBSCRIBE", path: ["users"], data: { ids: e2 }, headers: this.headers }).then((e3) => this.subscribeCalls.forEach((t2) => t2.deferred.resolve(e3)));
636
639
  }
637
640
  }
638
- class _ extends R {
641
+ class $ extends O {
639
642
  constructor(e2, t2, s2, n2) {
640
643
  super(s2, n2, () => this.sendMutate()), this.conversationId = e2, this.connection = t2, this.calls = [];
641
644
  }
642
645
  canPush(e2) {
643
- return !(!_.isCorrectBatchTypeFor(e2) || e2.path[1] !== this.conversationId || !F(this.headers, e2.headers));
646
+ return !(!$.isCorrectBatchTypeFor(e2) || e2.path[1] !== this.conversationId || !_(this.headers, e2.headers));
644
647
  }
645
648
  static isCorrectBatchTypeFor(t2) {
646
649
  if (e(t2.path, ["conversations", "*", "participants", "*"])) {
@@ -649,7 +652,7 @@ class _ extends R {
649
652
  return false;
650
653
  }
651
654
  push(e2) {
652
- const t2 = e2.path[3], s2 = l();
655
+ const t2 = e2.path[3], s2 = h();
653
656
  return this.calls.push({ action: { id: t2, method: e2.method, params: e2.data }, deferred: s2 }), 100 === this.calls.length && this.send(), s2.promise;
654
657
  }
655
658
  sendMutate() {
@@ -664,9 +667,9 @@ class _ extends R {
664
667
  });
665
668
  }
666
669
  }
667
- class O {
670
+ class U {
668
671
  constructor(e2, t2, s2) {
669
- this.pendingBatch = null, this.connection = new k(e2, t2, s2);
672
+ this.pendingBatch = null, this.connection = new x(e2, t2, s2);
670
673
  }
671
674
  sync() {
672
675
  return __async(this, null, function* () {
@@ -691,18 +694,18 @@ class O {
691
694
  }
692
695
  createEmptyBatchFor(e2) {
693
696
  var _a2, _b2;
694
- if (N.isCorrectBatchTypeFor(e2)) return new N(this.connection, (_a2 = e2.headers) != null ? _a2 : {}, () => this.pendingBatch = null);
695
- if (_.isCorrectBatchTypeFor(e2)) {
697
+ if (P.isCorrectBatchTypeFor(e2)) return new P(this.connection, (_a2 = e2.headers) != null ? _a2 : {}, () => this.pendingBatch = null);
698
+ if ($.isCorrectBatchTypeFor(e2)) {
696
699
  const t2 = e2.path[1];
697
- return new _(t2, this.connection, (_b2 = e2.headers) != null ? _b2 : {}, () => this.pendingBatch = null);
700
+ return new $(t2, this.connection, (_b2 = e2.headers) != null ? _b2 : {}, () => this.pendingBatch = null);
698
701
  }
699
702
  return null;
700
703
  }
701
704
  }
702
- const P = { 200: "RESOLVE", 400: "RESOLVE", 401: "RETRY", 402: "RESOLVE", 403: "RESOLVE", 404: "RESOLVE", 405: "RESOLVE", 409: "RESOLVE", 429: "DELAY", 500: "DELAY" };
703
- class $ {
705
+ const j = { 200: "RESOLVE", 400: "RESOLVE", 401: "RETRY", 402: "RESOLVE", 403: "RESOLVE", 404: "RESOLVE", 405: "RESOLVE", 409: "RESOLVE", 429: "DELAY", 500: "DELAY" };
706
+ class W {
704
707
  constructor(e2, t2, s2) {
705
- this.throttler = new j(), this.alive = true, this.connection = new O(e2, t2, s2);
708
+ this.throttler = new q(), this.alive = true, this.connection = new U(e2, t2, s2);
706
709
  }
707
710
  sync() {
708
711
  return __async(this, null, function* () {
@@ -716,7 +719,7 @@ class $ {
716
719
  const s2 = yield this.connection.call(e2);
717
720
  if ((s2.ok || "client" !== s2.where || "SOCKET_NOT_READY" !== s2.value) && (s2.ok || "server" !== s2.where || 500 !== s2.value.status) || t2++, 10 === t2) return s2;
718
721
  if (s2.ok || "client" !== s2.where) {
719
- const e3 = s2.value, t3 = e3.status, n2 = P[t3];
722
+ const e3 = s2.value, t3 = e3.status, n2 = j[t3];
720
723
  if ("RESOLVE" === n2) return this.throttler.resetDelay(), s2;
721
724
  if ("RETRY" === n2) continue;
722
725
  if ("DELAY" === n2) {
@@ -725,10 +728,10 @@ class $ {
725
728
  }
726
729
  return console.warn("[TalkJS] Unexpected status code", t3), e3;
727
730
  }
728
- if ("SESSION_DESTROYED" === s2.value) return u("SESSION_DESTROYED");
731
+ if ("SESSION_DESTROYED" === s2.value) return c("SESSION_DESTROYED");
729
732
  "WEBSOCKET_DISCONNECTED" !== s2.value && ("SOCKET_NOT_READY" !== s2.value ? s2.value : yield this.throttler.wait());
730
733
  }
731
- return u("SESSION_DESTROYED");
734
+ return c("SESSION_DESTROYED");
732
735
  });
733
736
  }
734
737
  destroy() {
@@ -738,7 +741,7 @@ class $ {
738
741
  return this.connection.isConnected();
739
742
  }
740
743
  }
741
- class j {
744
+ class q {
742
745
  constructor() {
743
746
  this.initialDelayMs = 200, this.exponentialFactor = 1.2, this.maxDelayMs = 3e4, this.currentDelayMs = this.initialDelayMs, this.lastCall = 0;
744
747
  }
@@ -746,28 +749,28 @@ class j {
746
749
  return this.currentDelayMs;
747
750
  }
748
751
  wait() {
749
- const e2 = (/* @__PURE__ */ new Date()).getTime(), n2 = s(this.currentDelayMs, 0.05), r2 = this.lastCall + n2, a2 = Math.max(0, r2 - e2);
750
- return this.lastCall = e2 + a2, this.currentDelayMs = Math.min(n2 * this.exponentialFactor, this.maxDelayMs), t(a2);
752
+ const e2 = (/* @__PURE__ */ new Date()).getTime(), n2 = s(this.currentDelayMs, 0.05), a2 = this.lastCall + n2, r2 = Math.max(0, a2 - e2);
753
+ return this.lastCall = e2 + r2, this.currentDelayMs = Math.min(n2 * this.exponentialFactor, this.maxDelayMs), t(r2);
751
754
  }
752
755
  resetDelay() {
753
756
  this.currentDelayMs = this.initialDelayMs;
754
757
  }
755
758
  }
756
- function U(e2) {
759
+ function B(e2) {
757
760
  return e2.map((e3) => encodeURIComponent(e3)).join();
758
761
  }
759
- class W {
762
+ class L {
760
763
  constructor() {
761
764
  this.paths = {};
762
765
  }
763
766
  add(e2) {
764
- this.paths[U(e2)] = e2;
767
+ this.paths[B(e2)] = e2;
765
768
  }
766
769
  delete(e2) {
767
- delete this.paths[U(e2)];
770
+ delete this.paths[B(e2)];
768
771
  }
769
772
  has(e2) {
770
- return Object.hasOwnProperty.call(this.paths, U(e2));
773
+ return Object.hasOwnProperty.call(this.paths, B(e2));
771
774
  }
772
775
  clear() {
773
776
  this.paths = {};
@@ -776,9 +779,9 @@ class W {
776
779
  Object.values(this.paths).forEach((t2) => e2(t2));
777
780
  }
778
781
  }
779
- class q {
782
+ class G {
780
783
  constructor(e2, t2, s2) {
781
- this.handlers = s2, this.targetSubscriptions = new W(), this.connection = new $(e2, t2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onSubscriptionsLost: () => {
784
+ this.handlers = s2, this.targetSubscriptions = new L(), this.connection = new W(e2, t2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onSubscriptionsLost: () => {
782
785
  this.targetSubscriptions.forEach((e3) => {
783
786
  this.resubscribe(e3);
784
787
  }), this.handlers.onResubscribeSent();
@@ -817,7 +820,7 @@ class q {
817
820
  return this.connection.isConnected();
818
821
  }
819
822
  }
820
- class H {
823
+ class F {
821
824
  constructor() {
822
825
  this.prev = Promise.resolve();
823
826
  }
@@ -834,7 +837,7 @@ class H {
834
837
  });
835
838
  }
836
839
  }
837
- class L {
840
+ class H {
838
841
  constructor(e2) {
839
842
  this.initialised = false, this.getPointer = void 0, this.pendingStates = [e2], e2.resultPromise.then(() => this.initialised = true);
840
843
  }
@@ -867,7 +870,7 @@ class L {
867
870
  return this.getPointer;
868
871
  }
869
872
  }
870
- class G extends L {
873
+ class J extends H {
871
874
  constructor(e2, t2) {
872
875
  super(e2), this.onTeardown = t2, this._error = null, this._lastGoodState = Promise.resolve(void 0), this.registerNewState(e2.resultPromise);
873
876
  }
@@ -896,17 +899,17 @@ class G extends L {
896
899
  }));
897
900
  }
898
901
  }
899
- class z extends G {
902
+ class z extends J {
900
903
  constructor(e2, t2) {
901
904
  const s2 = new Promise((e3) => setTimeout(e3)).then(() => this.fetchInitial(e2));
902
- super({ seq: e2, resultPromise: s2 }, t2.onTeardown), this.initialSeq = e2, this.getDeepMutex = new H(), this.lastDeep = void 0;
905
+ super({ seq: e2, resultPromise: s2 }, t2.onTeardown), this.initialSeq = e2, this.getDeepMutex = new F(), this.lastDeep = void 0;
903
906
  }
904
907
  refetchInitial(e2) {
905
908
  return __async(this, null, function* () {
906
- const t2 = this.mostRecentState.resultPromise, s2 = this.fetchInitial(e2), [n2, r2] = yield Promise.all([t2, s2]);
907
- if (void 0 === n2 || !n2.ok) return r2;
908
- if (!r2.ok) return r2;
909
- return this.equal(n2.value, r2.value) ? n2 : r2;
909
+ const t2 = this.mostRecentState.resultPromise, s2 = this.fetchInitial(e2), [n2, a2] = yield Promise.all([t2, s2]);
910
+ if (void 0 === n2 || !n2.ok) return a2;
911
+ if (!a2.ok) return a2;
912
+ return this.equal(n2.value, a2.value) ? n2 : a2;
910
913
  });
911
914
  }
912
915
  refetch(e2) {
@@ -936,15 +939,15 @@ class z extends G {
936
939
  }
937
940
  const s2 = this.get(e2).resultPromise, n2 = s2.then((t3) => t3.ok ? this.loadNested(e2, t3.value) : t3);
938
941
  this.lastDeep = { seq: e2, shallow: s2, deep: n2 };
939
- const r2 = yield n2;
940
- return r2.ok || this.setError(r2), r2;
942
+ const a2 = yield n2;
943
+ return a2.ok || this.setError(a2), a2;
941
944
  }));
942
945
  });
943
946
  }
944
947
  }
945
- class J extends z {
948
+ class Y extends z {
946
949
  constructor(e2, t2, s2) {
947
- super(e2, s2), this.emitMutex = t2, this.externallyIdleTimer = new Y(), this.externallyIdle = true, this.internallyIdleTimer = new Y(), this.internallyIdle = true, this.referencedByOtherStores = 0, this.listeners = [], this.lastEmitSeq = void 0, this.lastEmitResult = void 0, t2.runExclusive(() => __async(this, null, function* () {
950
+ super(e2, s2), this.emitMutex = t2, this.externallyIdleTimer = new Q(), this.externallyIdle = true, this.internallyIdleTimer = new Q(), this.internallyIdle = true, this.referencedByOtherStores = 0, this.listeners = [], this.lastEmitSeq = void 0, this.lastEmitResult = void 0, t2.runExclusive(() => __async(this, null, function* () {
948
951
  yield this.emit(e2);
949
952
  }));
950
953
  }
@@ -970,7 +973,7 @@ class J extends z {
970
973
  };
971
974
  }
972
975
  tryFullyUnsubscribe() {
973
- this.externallyIdle && this.internallyIdle && this.setError(u("UNSUBSCRIBED"));
976
+ this.externallyIdle && this.internallyIdle && this.setError(c("UNSUBSCRIBED"));
974
977
  }
975
978
  emit(e2) {
976
979
  return __async(this, null, function* () {
@@ -983,7 +986,7 @@ class J extends z {
983
986
  });
984
987
  }
985
988
  }
986
- class Y {
989
+ class Q {
987
990
  constructor() {
988
991
  this.timerId = void 0;
989
992
  }
@@ -994,33 +997,33 @@ class Y {
994
997
  clearTimeout(this.timerId);
995
998
  }
996
999
  }
997
- var Q, V = {};
998
- !function() {
999
- if (Q) return V;
1000
+ var V, K = {};
1001
+ !(function() {
1002
+ if (V) return K;
1000
1003
  function e2(e3) {
1001
1004
  return String.fromCharCode(parseInt(e3.slice(1), 16));
1002
1005
  }
1003
1006
  function t2(e3) {
1004
1007
  return `%${`00${e3.charCodeAt(0).toString(16)}`.slice(-2)}`;
1005
1008
  }
1006
- Q = 1, Object.defineProperty(V, "__esModule", { value: true }), V.encode = function(t3) {
1009
+ V = 1, Object.defineProperty(K, "__esModule", { value: true }), K.encode = function(t3) {
1007
1010
  return btoa(encodeURIComponent(t3).replace(/%[0-9A-F]{2}/g, e2));
1008
- }, V.decode = function(e3) {
1011
+ }, K.decode = function(e3) {
1009
1012
  return decodeURIComponent(Array.from(atob(e3), t2).join(""));
1010
1013
  };
1011
- }();
1014
+ })();
1012
1015
  function Z(e2, t2) {
1013
1016
  const s2 = t2.lastIndex;
1014
1017
  let n2;
1015
- const r2 = [];
1016
- for (; null !== (n2 = t2.exec(e2)); ) r2.push(n2), "" === n2[0] && (t2.lastIndex += 1);
1017
- return t2.lastIndex = s2, r2;
1018
+ const a2 = [];
1019
+ for (; null !== (n2 = t2.exec(e2)); ) a2.push(n2), "" === n2[0] && (t2.lastIndex += 1);
1020
+ return t2.lastIndex = s2, a2;
1018
1021
  }
1019
- function K(e2) {
1022
+ function X(e2) {
1020
1023
  const t2 = e2.replace(/%2F/g, "/").replace(/^.*?\/([^/]+?)(?:\?.*)?$/, "$1");
1021
1024
  return decodeURIComponent(t2);
1022
1025
  }
1023
- function X(e2, t2) {
1026
+ function ee(e2, t2) {
1024
1027
  if (!e2() && !t2) {
1025
1028
  t2 = e2.toString().replace(/^function\s*\(\)\s*\{\s*return\s*(.*);\s*\}\s*$/, "`$1`") + " was not true";
1026
1029
  }
@@ -1056,55 +1059,55 @@ function X(e2, t2) {
1056
1059
  }, e2.falsy = function(e3) {
1057
1060
  }, e2.never = function(e3) {
1058
1061
  };
1059
- })(X || (X = {}));
1060
- const ee = X, te = /^\/.*[^\\]\/[im]*$/;
1061
- function se(e2) {
1062
- if (!te.test(e2)) return false;
1063
- return !ne(e2).test("");
1064
- }
1062
+ })(ee || (ee = {}));
1063
+ const te = ee, se = /^\/.*[^\\]\/[im]*$/;
1065
1064
  function ne(e2) {
1065
+ if (!se.test(e2)) return false;
1066
+ return !ae(e2).test("");
1067
+ }
1068
+ function ae(e2) {
1066
1069
  const t2 = e2.match(/^\/(.*[^\\])\/(.*)$/);
1067
1070
  if (!t2) throw new Error(`Expected ${e2} to be a (non-empty) regex`);
1068
1071
  let s2 = t2[2] || "";
1069
1072
  return s2 = s2.replace(/[^im]/g, "") + "g", new RegExp(t2[1], s2);
1070
1073
  }
1071
1074
  class re {
1072
- constructor({ mode: e2, allowedHostnames: t2, allowedPhoneNrs: s2, allowedMatches: n2, forbiddenMatches: r2, forbiddenWords: a2, suppressLinks: i2, suppressEmailAddresses: o2, suppressPhoneNumbers: u2, replacement: c2 }) {
1073
- if (ee.oneOf(e2, ["all", "otherOnly", "off"]), this.mode = e2, this.suppressLinks = false !== i2, this.suppressEmailAddresses = false !== o2, this.suppressPhoneNumbers = false !== u2, this.allowedHostnames = t2 || [], this.allowedPhoneNrs = (s2 || []).filter((e3) => e3).map((e3) => e3.replace(/[^0-9]/g, "")), this.allowedMatches = (n2 || []).filter(se).map((e3) => ne(e3)), this.forbiddenMatches = (r2 || []).filter(se).map((e3) => ne(e3)), a2) {
1074
- const e3 = a2.split("\n").map((e4) => e4.trim().toLowerCase()).filter((e4) => e4.length > 0 && !e4.startsWith("#")).map((e4) => e4.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"));
1075
+ constructor({ mode: e2, allowedHostnames: t2, allowedPhoneNrs: s2, allowedMatches: n2, forbiddenMatches: a2, forbiddenWords: r2, suppressLinks: i2, suppressEmailAddresses: o2, suppressPhoneNumbers: c2, replacement: l2 }) {
1076
+ if (te.oneOf(e2, ["all", "otherOnly", "off"]), this.mode = e2, this.suppressLinks = false !== i2, this.suppressEmailAddresses = false !== o2, this.suppressPhoneNumbers = false !== c2, this.allowedHostnames = t2 || [], this.allowedPhoneNrs = (s2 || []).filter((e3) => e3).map((e3) => e3.replace(/[^0-9]/g, "")), this.allowedMatches = (n2 || []).filter(ne).map((e3) => ae(e3)), this.forbiddenMatches = (a2 || []).filter(ne).map((e3) => ae(e3)), r2) {
1077
+ const e3 = r2.split("\n").map((e4) => e4.trim().toLowerCase()).filter((e4) => e4.length > 0 && !e4.startsWith("#")).map((e4) => e4.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1"));
1075
1078
  e3.length && this.forbiddenMatches.push(new RegExp(`\\b(${e3.join("|")})\\b`, "gi"));
1076
1079
  }
1077
- ee(() => this.allowedMatches.every((e3) => e3.flags.includes("g")), "All regexes in `suppressContactInfo.allowedMatches` must be global. Check `allowedMatches`!"), ee(() => this.forbiddenMatches.every((e3) => e3.flags.includes("g")), "All regexes in `suppressContactInfo.forbiddenMatches` must be global. Check `forbiddenMatches`!"), c2 = c2 == null ? void 0 : c2.trim(), this.replacement = c2 && c2.length > 0 ? c2 : void 0;
1080
+ te(() => this.allowedMatches.every((e3) => e3.flags.includes("g")), "All regexes in `suppressContactInfo.allowedMatches` must be global. Check `allowedMatches`!"), te(() => this.forbiddenMatches.every((e3) => e3.flags.includes("g")), "All regexes in `suppressContactInfo.forbiddenMatches` must be global. Check `forbiddenMatches`!"), l2 = l2 == null ? void 0 : l2.trim(), this.replacement = l2 && l2.length > 0 ? l2 : void 0;
1078
1081
  }
1079
1082
  shouldSuppress({ isContentBySender: e2 }) {
1080
1083
  return "all" === this.mode || "otherOnly" === this.mode && !e2;
1081
1084
  }
1082
1085
  }
1083
- function ae(e2, t2) {
1084
- const s2 = e2.map((e3) => function(e4, t3) {
1085
- if ("text" === e4.type) return function(e5, t4) {
1086
- const s3 = function(e6) {
1086
+ function ie(e2, t2) {
1087
+ const s2 = e2.map((e3) => (function(e4, t3) {
1088
+ if ("text" === e4.type) return (function(e5, t4) {
1089
+ const s3 = (function(e6) {
1087
1090
  var _a2, _b2, _c, _d, _e3, _f, _g, _h, _i, _j, _k, _l, _m;
1088
1091
  let t5 = "";
1089
1092
  return e6.t && (t5 = `(${e6.t("CONTACT_INFORMATION_HIDDEN")})`), { formattedLinks: (_a2 = e6.formattedLinks) != null ? _a2 : "plaintext", markup: (_b2 = e6.markup) != null ? _b2 : false, useFallbackMentions: (_c = e6.useFallbackMentions) != null ? _c : false, sameTabLinkRules: (_d = e6.sameTabLinkRules) != null ? _d : [], enableEmojiImageFallback: (_e3 = e6.enableEmojiImageFallback) != null ? _e3 : false, highlight: (_f = e6.highlight) != null ? _f : [], contactInfo: (_g = e6.contactInfo) != null ? _g : false, suppression: (_h = e6.suppression) != null ? _h : new re({ mode: "off" }), contactInfoHiddenText: (_k = (_j = e6.contactInfoHiddenText) != null ? _j : (_i = e6.suppression) == null ? void 0 : _i.replacement) != null ? _k : t5, customEmojiUrls: (_l = e6.customEmojiUrls) != null ? _l : {}, enableActions: (_m = e6.enableActions) != null ? _m : true };
1090
- }(t4);
1091
- return ie(e5, s3);
1092
- }(e4.children, t3);
1093
- if ("file" === e4.type && "video" === e4.subtype) return `🎥 ${K(e4.url)}`;
1094
- if ("file" === e4.type && "image" === e4.subtype) return `📷 ${K(e4.url)}`;
1095
- if ("file" === e4.type && "audio" === e4.subtype) return `🎧 ${K(e4.url)}`;
1093
+ })(t4);
1094
+ return oe(e5, s3);
1095
+ })(e4.children, t3);
1096
+ if ("file" === e4.type && "video" === e4.subtype) return `🎥 ${X(e4.url)}`;
1097
+ if ("file" === e4.type && "image" === e4.subtype) return `📷 ${X(e4.url)}`;
1098
+ if ("file" === e4.type && "audio" === e4.subtype) return `🎧 ${X(e4.url)}`;
1096
1099
  if ("file" === e4.type && "voice" === e4.subtype) {
1097
1100
  const t4 = e4.duration;
1098
1101
  if (void 0 === t4) return "🎙️";
1099
1102
  return `🎙️ (${Math.floor(t4 / 60)}:${Math.floor(t4 % 60).toString().padStart(2, "0")})`;
1100
1103
  }
1101
- if ("file" === e4.type) return e4.subtype, `📎 ${K(e4.url)}`;
1104
+ if ("file" === e4.type) return e4.subtype, `📎 ${X(e4.url)}`;
1102
1105
  if ("location" === e4.type) return "📍";
1103
1106
  return "";
1104
- }(e3, t2));
1107
+ })(e3, t2));
1105
1108
  return s2.join("\n\n");
1106
1109
  }
1107
- function ie(e2, t2) {
1110
+ function oe(e2, t2) {
1108
1111
  return e2.flatMap((e3) => {
1109
1112
  if ("string" == typeof e3) return e3;
1110
1113
  switch (e3.type) {
@@ -1117,13 +1120,13 @@ function ie(e2, t2) {
1117
1120
  case "actionLink":
1118
1121
  case "actionbutton":
1119
1122
  case "actionButton":
1120
- return ie(e3.children, t2);
1123
+ return oe(e3.children, t2);
1121
1124
  case "bulletlist":
1122
1125
  case "bulletList":
1123
- return "\n" + ie(e3.children, t2);
1126
+ return "\n" + oe(e3.children, t2);
1124
1127
  case "bulletpoint":
1125
1128
  case "bulletPoint":
1126
- return "- " + ie(e3.children, t2) + "\n";
1129
+ return "- " + oe(e3.children, t2) + "\n";
1127
1130
  case "autolink":
1128
1131
  case "autoLink":
1129
1132
  case "codeblock":
@@ -1141,28 +1144,28 @@ function ie(e2, t2) {
1141
1144
  }
1142
1145
  }).join("");
1143
1146
  }
1144
- function oe(e2) {
1145
- return x({ id: e2.id, name: e2.name, custom: x(e2.custom), locale: e2.locale, photoUrl: e2.photoUrl, role: e2.role, welcomeMessage: e2.welcomeMessage });
1147
+ function ce(e2) {
1148
+ return S({ id: e2.id, name: e2.name, custom: S(e2.custom), locale: e2.locale, photoUrl: e2.photoUrl, role: e2.role, welcomeMessage: e2.welcomeMessage });
1146
1149
  }
1147
- function ue(e2, t2) {
1148
- return x({ user: t2, access: e2.access, notify: e2.notify, joinedAt: e2.joinedAt });
1150
+ function le(e2, t2) {
1151
+ return S({ user: t2, access: e2.access, notify: e2.notify, joinedAt: e2.joinedAt });
1149
1152
  }
1150
- function ce(e2) {
1151
- const t2 = Object.entries(e2).map(([e3, t3]) => x({ emoji: e3, count: t3.count, currentUserReacted: t3.currentUserReacted }));
1152
- return t2.sort((e3, t3) => e3.emoji.localeCompare(t3.emoji)), x(t2);
1153
+ function he(e2) {
1154
+ const t2 = Object.entries(e2).map(([e3, t3]) => S({ emoji: e3, count: t3.count, currentUserReacted: t3.currentUserReacted }));
1155
+ return t2.sort((e3, t3) => e3.emoji.localeCompare(t3.emoji)), S(t2);
1153
1156
  }
1154
- class le extends J {
1155
- constructor(e2, t2, s2, n2, r2) {
1156
- super(e2, n2, r2), this.userId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 3e4;
1157
+ class ue extends Y {
1158
+ constructor(e2, t2, s2, n2, a2) {
1159
+ super(e2, n2, a2), this.userId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 3e4;
1157
1160
  }
1158
1161
  fetchInitial(e2) {
1159
1162
  return __async(this, null, function* () {
1160
1163
  const t2 = yield this.realtimeClient.call({ method: "GET", path: ["users", this.userId], data: { includePrivateFields: false }, flags: { bypassCache: true } });
1161
- return t2.ok ? o({ snapshot: oe(t2.value.data), lastChanged: e2 }) : "server" === t2.where && 404 === t2.value.status ? o({ snapshot: null, lastChanged: e2 }) : t2;
1164
+ return t2.ok ? o({ snapshot: ce(t2.value.data), lastChanged: e2 }) : "server" === t2.where && 404 === t2.value.status ? o({ snapshot: null, lastChanged: e2 }) : t2;
1162
1165
  });
1163
1166
  }
1164
1167
  equal(e2, t2) {
1165
- return F(e2.snapshot, t2.snapshot);
1168
+ return _(e2.snapshot, t2.snapshot);
1166
1169
  }
1167
1170
  loadNested(e2, t2) {
1168
1171
  return __async(this, null, function* () {
@@ -1170,19 +1173,19 @@ class le extends J {
1170
1173
  });
1171
1174
  }
1172
1175
  userCreated(e2, t2) {
1173
- this.mutate(e2, (s2) => null !== s2.value.snapshot ? s2 : o({ snapshot: oe(t2.state), lastChanged: e2 }));
1176
+ this.mutate(e2, (s2) => null !== s2.value.snapshot ? s2 : o({ snapshot: ce(t2.state), lastChanged: e2 }));
1174
1177
  }
1175
1178
  userEdited(e2, t2) {
1176
1179
  this.mutate(e2, (s2) => {
1177
1180
  const n2 = s2.value.snapshot;
1178
1181
  if (null === n2) return console.warn("[TalkJS] Received a 'used edited' event for a user that we thought didn't exist."), s2;
1179
- return o({ snapshot: { id: n2.id, name: D(n2.name, t2.diff.name), custom: M(n2.custom, t2.diff.custom), locale: D(n2.locale, t2.diff.locale), photoUrl: D(n2.photoUrl, t2.diff.photoUrl), role: D(n2.role, t2.diff.role), welcomeMessage: D(n2.welcomeMessage, t2.diff.welcomeMessage) }, lastChanged: e2 });
1182
+ return o({ snapshot: { id: n2.id, name: A(n2.name, t2.diff.name), custom: R(n2.custom, t2.diff.custom), locale: A(n2.locale, t2.diff.locale), photoUrl: A(n2.photoUrl, t2.diff.photoUrl), role: A(n2.role, t2.diff.role), welcomeMessage: A(n2.welcomeMessage, t2.diff.welcomeMessage) }, lastChanged: e2 });
1180
1183
  });
1181
1184
  }
1182
1185
  getFromCache() {
1183
1186
  return __async(this, null, function* () {
1184
1187
  const e2 = yield this.mostRecentState.resultPromise;
1185
- return e2.ok ? null === e2.value.snapshot ? c({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["That user does not exist yet"] }) : o({ status: 200, data: { id: e2.value.snapshot.id, name: e2.value.snapshot.name, custom: e2.value.snapshot.custom, locale: e2.value.snapshot.locale, photoUrl: e2.value.snapshot.photoUrl, role: e2.value.snapshot.role, welcomeMessage: e2.value.snapshot.welcomeMessage } }) : u("NOT_IN_CACHE");
1188
+ return e2.ok ? null === e2.value.snapshot ? l({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["That user does not exist yet"] }) : o({ status: 200, data: { id: e2.value.snapshot.id, name: e2.value.snapshot.name, custom: e2.value.snapshot.custom, locale: e2.value.snapshot.locale, photoUrl: e2.value.snapshot.photoUrl, role: e2.value.snapshot.role, welcomeMessage: e2.value.snapshot.welcomeMessage } }) : c("NOT_IN_CACHE");
1186
1189
  });
1187
1190
  }
1188
1191
  teardownNested(e2) {
@@ -1193,7 +1196,7 @@ class le extends J {
1193
1196
  });
1194
1197
  }
1195
1198
  }
1196
- class he extends z {
1199
+ class de extends z {
1197
1200
  constructor(e2, t2, s2, n2) {
1198
1201
  super(e2, {}), this.conversationId = t2, this.message = s2, this.realtimeClient = n2;
1199
1202
  }
@@ -1209,14 +1212,14 @@ class he extends z {
1209
1212
  if (!e3.ok) return e3;
1210
1213
  t2 = e3.value.data;
1211
1214
  }
1212
- return o({ lastChanged: e2, sender: null === t2.senderId ? null : this.realtimeClient.internalSubscribe(["users", t2.senderId]), data: { id: t2.id, type: t2.type, custom: x(t2.custom), createdAt: t2.createdAt, editedAt: t2.editedAt, referencedMessageId: t2.referencedMessageId, origin: t2.origin, plaintext: ae(t2.content, {}), content: T(t2.content), reactions: ce(t2.reactions) } });
1215
+ return o({ lastChanged: e2, sender: null === t2.senderId ? null : this.realtimeClient.internalSubscribe(["users", t2.senderId]), data: { id: t2.id, type: t2.type, custom: S(t2.custom), createdAt: t2.createdAt, editedAt: t2.editedAt, referencedMessageId: t2.referencedMessageId, origin: t2.origin, plaintext: ie(t2.content, {}), content: E(t2.content), reactions: he(t2.reactions) } });
1213
1216
  });
1214
1217
  }
1215
1218
  refetch(e2) {
1216
1219
  throw "Do not call refetch on message data stores, it can return outdated data. Destroy and remake them instead";
1217
1220
  }
1218
1221
  equal(e2, t2) {
1219
- return F(e2.data, t2.data);
1222
+ return _(e2.data, t2.data);
1220
1223
  }
1221
1224
  teardownNested(e2) {
1222
1225
  var _a2;
@@ -1236,16 +1239,16 @@ class he extends z {
1236
1239
  if (false === (s2 == null ? void 0 : s2.ok)) return s2;
1237
1240
  if (null === t2.data) return o({ snapshot: null });
1238
1241
  const n2 = s2 == null ? void 0 : s2.value;
1239
- return o({ snapshot: x({ sender: (_c = n2 == null ? void 0 : n2.snapshot) != null ? _c : null, id: t2.data.id, type: t2.data.type, custom: x(t2.data.custom), createdAt: t2.data.createdAt, editedAt: t2.data.editedAt, origin: t2.data.origin, plaintext: t2.data.plaintext, content: t2.data.content, referencedMessageId: t2.data.referencedMessageId, reactions: t2.data.reactions }) });
1242
+ return o({ snapshot: S({ sender: (_c = n2 == null ? void 0 : n2.snapshot) != null ? _c : null, id: t2.data.id, type: t2.data.type, custom: S(t2.data.custom), createdAt: t2.data.createdAt, editedAt: t2.data.editedAt, origin: t2.data.origin, plaintext: t2.data.plaintext, content: t2.data.content, referencedMessageId: t2.data.referencedMessageId, reactions: t2.data.reactions }) });
1240
1243
  });
1241
1244
  }
1242
1245
  messageEdited(e2, t2) {
1243
1246
  this.mutate(e2, (s2) => {
1244
1247
  if (null === s2.value.data) return s2;
1245
- const n2 = s2.value.data.content, r2 = (a2 = n2, void 0 === (i2 = t2.diff.content) ? a2 : T(i2));
1246
- var a2, i2;
1247
- const u2 = n2 === r2 ? s2.value.data.plaintext : ae(r2, {});
1248
- return o({ lastChanged: e2, sender: s2.value.sender, data: { id: s2.value.data.id, type: s2.value.data.type, createdAt: s2.value.data.createdAt, origin: s2.value.data.origin, referencedMessageId: s2.value.data.referencedMessageId, editedAt: D(s2.value.data.editedAt, t2.diff.editedAt), custom: M(s2.value.data.custom, t2.diff.custom), plaintext: u2, content: r2, reactions: de(s2.value.data.reactions, t2.diff.reactions) } });
1248
+ const n2 = s2.value.data.content, a2 = (r2 = n2, void 0 === (i2 = t2.diff.content) ? r2 : E(i2));
1249
+ var r2, i2;
1250
+ const c2 = n2 === a2 ? s2.value.data.plaintext : ie(a2, {});
1251
+ return o({ lastChanged: e2, sender: s2.value.sender, data: { id: s2.value.data.id, type: s2.value.data.type, createdAt: s2.value.data.createdAt, origin: s2.value.data.origin, referencedMessageId: s2.value.data.referencedMessageId, editedAt: A(s2.value.data.editedAt, t2.diff.editedAt), custom: R(s2.value.data.custom, t2.diff.custom), plaintext: c2, content: a2, reactions: pe(s2.value.data.reactions, t2.diff.reactions) } });
1249
1252
  });
1250
1253
  }
1251
1254
  messageDeleted(e2, t2) {
@@ -1255,9 +1258,9 @@ class he extends z {
1255
1258
  return __async(this, null, function* () {
1256
1259
  var _b2;
1257
1260
  const e2 = yield this.mostRecentState.resultPromise;
1258
- if (!e2.ok) return u("NOT_IN_CACHE");
1261
+ if (!e2.ok) return c("NOT_IN_CACHE");
1259
1262
  if (null === e2.value.data) {
1260
- return c({ status: 404, errorCode: "MESSAGE_NOT_FOUND", reasons: ["No message with that ID exists"] });
1263
+ return l({ status: 404, errorCode: "MESSAGE_NOT_FOUND", reasons: ["No message with that ID exists"] });
1261
1264
  }
1262
1265
  const _a2 = e2.value, { sender: t2 } = _a2, s2 = __objRest(_a2, ["sender"]), n2 = {};
1263
1266
  return s2.data.reactions.forEach((e3) => {
@@ -1266,19 +1269,19 @@ class he extends z {
1266
1269
  });
1267
1270
  }
1268
1271
  }
1269
- function de(e2, t2) {
1272
+ function pe(e2, t2) {
1270
1273
  if (void 0 === t2) return e2;
1271
1274
  const s2 = e2.map((e3) => {
1272
1275
  const s3 = t2[e3.emoji];
1273
- return void 0 === s3 ? e3 : x(null === s3 ? __spreadProps(__spreadValues({}, e3), { count: 0 }) : { emoji: e3.emoji, count: D(e3.count, s3.count), currentUserReacted: D(e3.currentUserReacted, s3.currentUserReacted) });
1276
+ return void 0 === s3 ? e3 : S(null === s3 ? __spreadProps(__spreadValues({}, e3), { count: 0 }) : { emoji: e3.emoji, count: A(e3.count, s3.count), currentUserReacted: A(e3.currentUserReacted, s3.currentUserReacted) });
1274
1277
  }).filter((e3) => e3.count > 0), n2 = new Set(s2.map((e3) => e3.emoji));
1275
1278
  for (const e3 in t2) {
1276
- const r2 = t2[e3];
1277
- r2 && !n2.has(e3) && s2.push(x({ emoji: e3, count: r2.count, currentUserReacted: r2.currentUserReacted }));
1279
+ const a2 = t2[e3];
1280
+ a2 && !n2.has(e3) && s2.push(S({ emoji: e3, count: a2.count, currentUserReacted: a2.currentUserReacted }));
1278
1281
  }
1279
- return s2.sort((e3, t3) => e3.emoji.localeCompare(t3.emoji)), x(s2);
1282
+ return s2.sort((e3, t3) => e3.emoji.localeCompare(t3.emoji)), S(s2);
1280
1283
  }
1281
- class pe extends z {
1284
+ class me extends z {
1282
1285
  constructor(e2, t2, s2, n2) {
1283
1286
  super(e2, {}), this.createdAt = t2, this.dataStore = s2, this.referencedDataStore = n2;
1284
1287
  }
@@ -1311,16 +1314,16 @@ class pe extends z {
1311
1314
  if (!s2.ok) return s2;
1312
1315
  const n2 = s2.value;
1313
1316
  if (null === n2.snapshot) return o({ snapshot: null });
1314
- const r2 = yield (_a2 = t2.referencedDataStore) == null ? void 0 : _a2.getDeep(e2);
1315
- if (r2 && !r2.ok) return r2;
1316
- const a2 = (_b2 = r2 == null ? void 0 : r2.value) != null ? _b2 : null, i2 = (_c = a2 == null ? void 0 : a2.snapshot) != null ? _c : null;
1317
- return o({ snapshot: x({ id: n2.snapshot.id, type: n2.snapshot.type, sender: n2.snapshot.sender, custom: x(n2.snapshot.custom), createdAt: n2.snapshot.createdAt, editedAt: n2.snapshot.editedAt, referencedMessage: i2, origin: n2.snapshot.origin, plaintext: n2.snapshot.plaintext, content: n2.snapshot.content, reactions: n2.snapshot.reactions }) });
1317
+ const a2 = yield (_a2 = t2.referencedDataStore) == null ? void 0 : _a2.getDeep(e2);
1318
+ if (a2 && !a2.ok) return a2;
1319
+ const r2 = (_b2 = a2 == null ? void 0 : a2.value) != null ? _b2 : null, i2 = (_c = r2 == null ? void 0 : r2.snapshot) != null ? _c : null;
1320
+ return o({ snapshot: S({ id: n2.snapshot.id, type: n2.snapshot.type, sender: n2.snapshot.sender, custom: S(n2.snapshot.custom), createdAt: n2.snapshot.createdAt, editedAt: n2.snapshot.editedAt, referencedMessage: i2, origin: n2.snapshot.origin, plaintext: n2.snapshot.plaintext, content: n2.snapshot.content, reactions: n2.snapshot.reactions }) });
1318
1321
  });
1319
1322
  }
1320
1323
  }
1321
- class fe extends J {
1322
- constructor(e2, t2, s2, n2, r2) {
1323
- super(e2, n2, r2), this.conversationId = t2, this.realtimeClient = s2, this.handlers = r2, this.unsubscribeDebounceMs = 1e4, this.pendingLoadMore = void 0;
1324
+ class fe extends Y {
1325
+ constructor(e2, t2, s2, n2, a2) {
1326
+ super(e2, n2, a2), this.conversationId = t2, this.realtimeClient = s2, this.handlers = a2, this.unsubscribeDebounceMs = 1e4, this.pendingLoadMore = void 0;
1324
1327
  }
1325
1328
  listen(e2) {
1326
1329
  return this.onlyUsedInternally && this.mostRecentState.resultPromise.then((e3) => {
@@ -1332,21 +1335,21 @@ class fe extends J {
1332
1335
  }
1333
1336
  fetchInitial(e2) {
1334
1337
  return __async(this, null, function* () {
1335
- const t2 = this.onlyUsedInternally ? 1 : 30, s2 = yield me({ realtimeClient: this.realtimeClient, conversationId: this.conversationId, count: t2 });
1336
- return s2.ok ? null === s2.value.messages ? o({ lastChanged: e2, lastMessageChanged: e2, stores: null, inWindow: null, windowEnd: null }) : ge({ seq: e2, messages: s2.value.messages, cursor: s2.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : s2;
1338
+ const t2 = this.onlyUsedInternally ? 1 : 30, s2 = yield ge({ realtimeClient: this.realtimeClient, conversationId: this.conversationId, count: t2 });
1339
+ return s2.ok ? null === s2.value.messages ? o({ lastChanged: e2, lastMessageChanged: e2, stores: null, inWindow: null, windowEnd: null }) : ve({ seq: e2, messages: s2.value.messages, cursor: s2.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : s2;
1337
1340
  });
1338
1341
  }
1339
1342
  teardownNested(e2) {
1340
1343
  if (e2.stores) {
1341
- const t2 = u("TERMINATED");
1344
+ const t2 = c("TERMINATED");
1342
1345
  Object.values(e2.stores).forEach((e3) => e3.setError(t2)), e2.inWindow.forEach((e3) => e3.setError(t2));
1343
1346
  }
1344
1347
  }
1345
1348
  anyChildChanged(e2, t2, s2) {
1346
1349
  return __async(this, null, function* () {
1347
1350
  for (const n2 in s2.stores) {
1348
- const r2 = s2.stores[n2];
1349
- if (true === (yield r2 == null ? void 0 : r2.changedBetween(e2, t2))) return true;
1351
+ const a2 = s2.stores[n2];
1352
+ if (true === (yield a2 == null ? void 0 : a2.changedBetween(e2, t2))) return true;
1350
1353
  }
1351
1354
  return false;
1352
1355
  });
@@ -1364,20 +1367,20 @@ class fe extends J {
1364
1367
  });
1365
1368
  }
1366
1369
  equal(e2, t2) {
1367
- return null === e2.stores && null === t2.stores || null !== e2.stores && null !== t2.stores && (!!F(Object.keys(e2.stores), Object.keys(t2.stores)) && (!!F(e2.inWindow.map((e3) => e3.messageId), t2.inWindow.map((e3) => e3.messageId)) && F(e2.windowEnd, t2.windowEnd)));
1370
+ return null === e2.stores && null === t2.stores || null !== e2.stores && null !== t2.stores && (!!_(Object.keys(e2.stores), Object.keys(t2.stores)) && (!!_(e2.inWindow.map((e3) => e3.messageId), t2.inWindow.map((e3) => e3.messageId)) && _(e2.windowEnd, t2.windowEnd)));
1368
1371
  }
1369
1372
  loadNested(e2, t2) {
1370
1373
  return __async(this, null, function* () {
1371
1374
  if (null === t2.stores) return o({ snapshot: null, loadedAll: true });
1372
1375
  const s2 = yield Promise.all(t2.inWindow.map((t3) => t3.getDeep(e2))), n2 = s2.find((e3) => !e3.ok);
1373
1376
  if (n2) return n2;
1374
- return o({ snapshot: x(s2.filter((e3) => null !== e3.value.snapshot).map((e3) => e3.value.snapshot)), loadedAll: null === t2.windowEnd });
1377
+ return o({ snapshot: S(s2.filter((e3) => null !== e3.value.snapshot).map((e3) => e3.value.snapshot)), loadedAll: null === t2.windowEnd });
1375
1378
  });
1376
1379
  }
1377
1380
  loadMore(e2) {
1378
1381
  return __async(this, null, function* () {
1379
1382
  if (this.pendingLoadMore) return this.pendingLoadMore;
1380
- const t2 = a();
1383
+ const t2 = r();
1381
1384
  this.pendingLoadMore = t2.promise, yield this._loadMoreMessages(e2), t2.resolve(), this.pendingLoadMore = void 0;
1382
1385
  });
1383
1386
  }
@@ -1386,27 +1389,27 @@ class fe extends J {
1386
1389
  const t2 = yield this.mostRecentState.resultPromise;
1387
1390
  if (!t2.ok) return;
1388
1391
  if (null === t2.value.windowEnd) return;
1389
- const s2 = t2.value.windowEnd.cursor, n2 = yield me({ count: e2, cursor: s2, conversationId: this.conversationId, realtimeClient: this.realtimeClient });
1392
+ const s2 = t2.value.windowEnd.cursor, n2 = yield ge({ count: e2, cursor: s2, conversationId: this.conversationId, realtimeClient: this.realtimeClient });
1390
1393
  yield this.handlers.onLoadedMore({ type: "virtual.messages.loadedmore", conversationId: this.conversationId, data: n2 });
1391
1394
  });
1392
1395
  }
1393
1396
  loadedMore(e2, t2) {
1394
- this.mutate(e2, (s2) => null === s2.value.windowEnd ? s2 : t2.data.ok ? null === t2.data.value.messages ? (console.warn("[TalkJS] When loading more messages, the conversation no longer existed. We should have been told about this."), s2) : ge({ seq: e2, prevState: s2.value, messages: t2.data.value.messages, cursor: t2.data.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : t2.data);
1397
+ this.mutate(e2, (s2) => null === s2.value.windowEnd ? s2 : t2.data.ok ? null === t2.data.value.messages ? (console.warn("[TalkJS] When loading more messages, the conversation no longer existed. We should have been told about this."), s2) : ve({ seq: e2, prevState: s2.value, messages: t2.data.value.messages, cursor: t2.data.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : t2.data);
1395
1398
  }
1396
1399
  messageCreated(e2, t2) {
1397
1400
  this.mutate(e2, (s2) => {
1398
1401
  if (null === s2.value.stores) return console.warn("[TalkJS] Received a 'message.created' event for a nonexistent conversation."), s2;
1399
1402
  if (s2.value.windowEnd && t2.state.createdAt < s2.value.windowEnd.oldestMessageTs) return s2;
1400
1403
  if (Object.hasOwnProperty.call(s2.value.stores, t2.state.id)) return s2;
1401
- const n2 = __spreadValues({}, s2.value.stores), r2 = new he(e2, this.conversationId, t2.state, this.realtimeClient);
1402
- n2[t2.state.id] = r2;
1403
- const a2 = t2.state.referencedMessageId;
1404
+ const n2 = __spreadValues({}, s2.value.stores), a2 = new de(e2, this.conversationId, t2.state, this.realtimeClient);
1405
+ n2[t2.state.id] = a2;
1406
+ const r2 = t2.state.referencedMessageId;
1404
1407
  let i2;
1405
- null === a2 ? i2 = null : a2 in n2 ? i2 = n2[a2] : (i2 = new he(e2, this.conversationId, a2, this.realtimeClient), n2[a2] = i2);
1406
- const u2 = new pe(e2, t2.state.createdAt, r2, i2), c2 = [...s2.value.inWindow, u2];
1407
- c2.sort((e3, t3) => t3.createdAt - e3.createdAt);
1408
- const l2 = c2[0].messageId === t2.messageId ? e2 : s2.value.lastMessageChanged;
1409
- return o({ lastChanged: e2, lastMessageChanged: l2, stores: n2, inWindow: c2, windowEnd: s2.value.windowEnd });
1408
+ null === r2 ? i2 = null : r2 in n2 ? i2 = n2[r2] : (i2 = new de(e2, this.conversationId, r2, this.realtimeClient), n2[r2] = i2);
1409
+ const c2 = new me(e2, t2.state.createdAt, a2, i2), l2 = [...s2.value.inWindow, c2];
1410
+ l2.sort((e3, t3) => t3.createdAt - e3.createdAt);
1411
+ const h2 = l2[0].messageId === t2.messageId ? e2 : s2.value.lastMessageChanged;
1412
+ return o({ lastChanged: e2, lastMessageChanged: h2, stores: n2, inWindow: l2, windowEnd: s2.value.windowEnd });
1410
1413
  });
1411
1414
  }
1412
1415
  messageEdited(e2, t2) {
@@ -1421,18 +1424,18 @@ class fe extends J {
1421
1424
  if (Object.values(s2.value.stores).forEach((s3) => s3.messageDeleted(e2, t2)), void 0 === s2.value.stores[t2.messageId]) return s2;
1422
1425
  const n2 = __spreadValues({}, s2.value.stores);
1423
1426
  delete n2[t2.messageId];
1424
- const r2 = s2.value.inWindow.filter((e3) => e3.messageId !== t2.messageId);
1425
- if (t2.newLastMessage && 0 === r2.length) {
1426
- const s3 = new he(e2, this.conversationId, t2.newLastMessage, this.realtimeClient);
1427
+ const a2 = s2.value.inWindow.filter((e3) => e3.messageId !== t2.messageId);
1428
+ if (t2.newLastMessage && 0 === a2.length) {
1429
+ const s3 = new de(e2, this.conversationId, t2.newLastMessage, this.realtimeClient);
1427
1430
  n2[s3.messageId] = s3;
1428
- const a3 = t2.newLastMessage.referencedMessageId;
1431
+ const r3 = t2.newLastMessage.referencedMessageId;
1429
1432
  let i2;
1430
- null === a3 ? i2 = null : a3 in n2 ? i2 = n2[a3] : (i2 = new he(e2, this.conversationId, a3, this.realtimeClient), n2[a3] = i2);
1431
- const o2 = new pe(e2, t2.newLastMessage.createdAt, s3, i2);
1432
- r2.push(o2);
1433
+ null === r3 ? i2 = null : r3 in n2 ? i2 = n2[r3] : (i2 = new de(e2, this.conversationId, r3, this.realtimeClient), n2[r3] = i2);
1434
+ const o2 = new me(e2, t2.newLastMessage.createdAt, s3, i2);
1435
+ a2.push(o2);
1433
1436
  }
1434
- const a2 = void 0 !== t2.newLastMessage ? e2 : s2.value.lastMessageChanged;
1435
- return o({ lastChanged: e2, lastMessageChanged: a2, stores: n2, inWindow: r2, windowEnd: s2.value.windowEnd });
1437
+ const r2 = void 0 !== t2.newLastMessage ? e2 : s2.value.lastMessageChanged;
1438
+ return o({ lastChanged: e2, lastMessageChanged: r2, stores: n2, inWindow: a2, windowEnd: s2.value.windowEnd });
1436
1439
  });
1437
1440
  }
1438
1441
  conversationCleared(e2, t2) {
@@ -1453,47 +1456,47 @@ class fe extends J {
1453
1456
  getMessageFromCache(e2) {
1454
1457
  return __async(this, null, function* () {
1455
1458
  const t2 = yield this.mostRecentState.resultPromise;
1456
- if (!t2.ok) return u("NOT_IN_CACHE");
1457
- if (null === t2.value.stores) return u("NOT_IN_CACHE");
1459
+ if (!t2.ok) return c("NOT_IN_CACHE");
1460
+ if (null === t2.value.stores) return c("NOT_IN_CACHE");
1458
1461
  const s2 = t2.value.stores[e2];
1459
- return void 0 === s2 ? u("NOT_IN_CACHE") : s2.getFromCache();
1462
+ return void 0 === s2 ? c("NOT_IN_CACHE") : s2.getFromCache();
1460
1463
  });
1461
1464
  }
1462
1465
  }
1463
- function me(_0) {
1466
+ function ge(_0) {
1464
1467
  return __async(this, arguments, function* ({ cursor: e2, realtimeClient: t2, conversationId: s2, count: n2 }) {
1465
- const r2 = { limit: n2, cursor: e2 }, a2 = yield t2.call({ method: "GET", path: ["me", "conversations", s2, "messages"], data: r2, flags: { bypassCache: true } });
1466
- if (a2.ok) {
1467
- const { data: e3, cursor: t3 } = a2.value.data;
1468
+ const a2 = { limit: n2, cursor: e2 }, r2 = yield t2.call({ method: "GET", path: ["me", "conversations", s2, "messages"], data: a2, flags: { bypassCache: true } });
1469
+ if (r2.ok) {
1470
+ const { data: e3, cursor: t3 } = r2.value.data;
1468
1471
  return o({ messages: e3, nextCursor: t3 });
1469
1472
  }
1470
- return (a2.ok || "server" !== a2.where || 404 !== a2.value.status) && (a2.ok || "server" !== a2.where || 403 !== a2.value.status || "NOT_A_PARTICIPANT" !== a2.value.errorCode) ? a2 : o({ messages: null, nextCursor: null });
1473
+ return (r2.ok || "server" !== r2.where || 404 !== r2.value.status) && (r2.ok || "server" !== r2.where || 403 !== r2.value.status || "NOT_A_PARTICIPANT" !== r2.value.errorCode) ? r2 : o({ messages: null, nextCursor: null });
1471
1474
  });
1472
1475
  }
1473
- function ge({ seq: e2, prevState: t2, messages: s2, cursor: n2, conversationId: r2, realtimeClient: a2 }) {
1476
+ function ve({ seq: e2, prevState: t2, messages: s2, cursor: n2, conversationId: a2, realtimeClient: r2 }) {
1474
1477
  var _a2, _b2, _c, _d;
1475
1478
  const i2 = t2 ? __spreadValues({}, t2.stores) : {};
1476
1479
  for (const t3 of s2) if (void 0 === i2[t3.id]) {
1477
- const s3 = new he(e2, r2, t3, a2);
1480
+ const s3 = new de(e2, a2, t3, r2);
1478
1481
  i2[s3.messageId] = s3;
1479
1482
  }
1480
1483
  for (const t3 of s2) {
1481
1484
  const s3 = t3.referencedMessageId;
1482
1485
  if (s3 && void 0 === i2[s3]) {
1483
- const t4 = new he(e2, r2, s3, a2);
1486
+ const t4 = new de(e2, a2, s3, r2);
1484
1487
  i2[t4.messageId] = t4;
1485
1488
  }
1486
1489
  }
1487
- const u2 = t2 ? [...t2.inWindow] : [];
1488
- for (const t3 of s2) u2.push(new pe(e2, t3.createdAt, i2[t3.id], t3.referencedMessageId ? i2[t3.referencedMessageId] : null));
1489
- u2.sort((e3, t3) => t3.createdAt - e3.createdAt);
1490
- const c2 = (_b2 = (_a2 = t2 == null ? void 0 : t2.inWindow) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.messageId, l2 = (_c = u2 == null ? void 0 : u2[0]) == null ? void 0 : _c.messageId, h2 = c2 === l2 ? (_d = t2 == null ? void 0 : t2.lastMessageChanged) != null ? _d : e2 : e2;
1491
- if (null === n2) return o({ lastChanged: e2, lastMessageChanged: h2, stores: i2, inWindow: u2, windowEnd: null });
1492
- return o({ lastChanged: e2, lastMessageChanged: h2, stores: i2, inWindow: u2, windowEnd: { cursor: n2, oldestMessageTs: s2[s2.length - 1].createdAt } });
1490
+ const c2 = t2 ? [...t2.inWindow] : [];
1491
+ for (const t3 of s2) c2.push(new me(e2, t3.createdAt, i2[t3.id], t3.referencedMessageId ? i2[t3.referencedMessageId] : null));
1492
+ c2.sort((e3, t3) => t3.createdAt - e3.createdAt);
1493
+ const l2 = (_b2 = (_a2 = t2 == null ? void 0 : t2.inWindow) == null ? void 0 : _a2[0]) == null ? void 0 : _b2.messageId, h2 = (_c = c2 == null ? void 0 : c2[0]) == null ? void 0 : _c.messageId, u2 = l2 === h2 ? (_d = t2 == null ? void 0 : t2.lastMessageChanged) != null ? _d : e2 : e2;
1494
+ if (null === n2) return o({ lastChanged: e2, lastMessageChanged: u2, stores: i2, inWindow: c2, windowEnd: null });
1495
+ return o({ lastChanged: e2, lastMessageChanged: u2, stores: i2, inWindow: c2, windowEnd: { cursor: n2, oldestMessageTs: s2[s2.length - 1].createdAt } });
1493
1496
  }
1494
- class ve extends J {
1495
- constructor(e2, t2, s2, n2, r2) {
1496
- super(e2, n2, r2), this.convData = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 3e4;
1497
+ class be extends Y {
1498
+ constructor(e2, t2, s2, n2, a2) {
1499
+ super(e2, n2, a2), this.convData = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 3e4;
1497
1500
  }
1498
1501
  fetchInitial(e2) {
1499
1502
  return __async(this, null, function* () {
@@ -1522,21 +1525,21 @@ class ve extends J {
1522
1525
  });
1523
1526
  }
1524
1527
  }
1525
- function we(e2, t2) {
1528
+ function ye(e2, t2) {
1526
1529
  for (let s2 in e2) Object.prototype.hasOwnProperty.call(e2, s2) && t2(e2[s2], s2);
1527
1530
  }
1528
- function be(e2, t2) {
1529
- return function(e3, t3) {
1531
+ function we(e2, t2) {
1532
+ return (function(e3, t3) {
1530
1533
  let s2 = {}, n2 = 0;
1531
- return we(e3, (e4, r2) => {
1532
- const [a2, i2] = t3([r2, e4], n2++);
1533
- s2[a2] = i2;
1534
+ return ye(e3, (e4, a2) => {
1535
+ const [r2, i2] = t3([a2, e4], n2++);
1536
+ s2[r2] = i2;
1534
1537
  }), s2;
1535
- }(e2, ([e3, s2]) => [e3, t2(s2, e3)]);
1538
+ })(e2, ([e3, s2]) => [e3, t2(s2, e3)]);
1536
1539
  }
1537
- class ye extends J {
1538
- constructor(e2, t2, s2, n2, r2) {
1539
- super(e2, n2, r2), this.conversationId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e4;
1540
+ class ke extends Y {
1541
+ constructor(e2, t2, s2, n2, a2) {
1542
+ super(e2, n2, a2), this.conversationId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e4;
1540
1543
  }
1541
1544
  fetchInitial(e2) {
1542
1545
  return __async(this, null, function* () {
@@ -1546,40 +1549,40 @@ class ye extends J {
1546
1549
  if (!t2.ok) return t2;
1547
1550
  const s2 = t2.value.data;
1548
1551
  if (s2.many) return o({ data: { usersTyping: null, many: true }, userSubscriptions: {}, lastChanged: e2 });
1549
- return o({ data: s2, userSubscriptions: be(s2.usersTyping, (e3, t3) => this.realtimeClient.internalSubscribe(["users", t3])), lastChanged: e2 });
1552
+ return o({ data: s2, userSubscriptions: we(s2.usersTyping, (e3, t3) => this.realtimeClient.internalSubscribe(["users", t3])), lastChanged: e2 });
1550
1553
  });
1551
1554
  }
1552
1555
  equal(e2, t2) {
1553
- return F(e2.data, t2.data);
1556
+ return _(e2.data, t2.data);
1554
1557
  }
1555
1558
  loadNested(e2, t2) {
1556
1559
  return __async(this, null, function* () {
1557
1560
  if (null === t2.data) return o({ snapshot: null, lastChanged: t2.lastChanged });
1558
- if (t2.data.many) return o({ snapshot: x({ many: true }), lastChanged: t2.lastChanged });
1559
- const s2 = Object.entries(t2.data.usersTyping).sort(([e3, t3], [s3, n3]) => t3 - n3).map(([e3, t3]) => e3).map((s3) => t2.userSubscriptions[s3].store.getDeep(e2)), n2 = yield Promise.all(s2), r2 = n2.find((e3) => !e3.ok);
1560
- if (r2) return r2;
1561
- const a2 = n2.map((e3) => e3.value), i2 = a2.map((e3) => e3.snapshot), u2 = a2.map((e3) => e3.lastChanged), c2 = Math.max(t2.lastChanged, ...u2);
1562
- return o({ snapshot: x({ users: x(i2), many: false }), lastChanged: c2 });
1561
+ if (t2.data.many) return o({ snapshot: S({ many: true }), lastChanged: t2.lastChanged });
1562
+ const s2 = Object.entries(t2.data.usersTyping).sort(([e3, t3], [s3, n3]) => t3 - n3).map(([e3, t3]) => e3).map((s3) => t2.userSubscriptions[s3].store.getDeep(e2)), n2 = yield Promise.all(s2), a2 = n2.find((e3) => !e3.ok);
1563
+ if (a2) return a2;
1564
+ const r2 = n2.map((e3) => e3.value), i2 = r2.map((e3) => e3.snapshot), c2 = r2.map((e3) => e3.lastChanged), l2 = Math.max(t2.lastChanged, ...c2);
1565
+ return o({ snapshot: S({ users: S(i2), many: false }), lastChanged: l2 });
1563
1566
  });
1564
1567
  }
1565
1568
  typingAvailable(e2, t2) {
1566
- this.mutate(e2, () => o({ data: t2.state, userSubscriptions: t2.state.many ? {} : be(t2.state.usersTyping, (e3, t3) => this.realtimeClient.internalSubscribe(["users", t3])), lastChanged: e2 }));
1569
+ this.mutate(e2, () => o({ data: t2.state, userSubscriptions: t2.state.many ? {} : we(t2.state.usersTyping, (e3, t3) => this.realtimeClient.internalSubscribe(["users", t3])), lastChanged: e2 }));
1567
1570
  }
1568
1571
  typingChanged(e2, t2) {
1569
1572
  this.mutate(e2, (s2) => {
1570
1573
  if (null === s2.value.data) return s2;
1571
1574
  if (void 0 === t2.diff.many) {
1572
1575
  if (true === s2.value.data.many) return s2;
1573
- const n2 = __spreadValues({}, s2.value.data.usersTyping), r2 = __spreadValues({}, s2.value.userSubscriptions);
1574
- return we(t2.diff.usersTyping, (e3, t3) => {
1576
+ const n2 = __spreadValues({}, s2.value.data.usersTyping), a2 = __spreadValues({}, s2.value.userSubscriptions);
1577
+ return ye(t2.diff.usersTyping, (e3, t3) => {
1575
1578
  var _a2;
1576
- "number" == typeof e3 ? (n2[t3] = e3, r2[t3] = this.realtimeClient.internalSubscribe(["users", t3])) : null === e3 && (delete n2[t3], (_a2 = r2[t3]) == null ? void 0 : _a2.unsubscribe(), delete r2[t3]);
1577
- }), o({ data: { usersTyping: n2, many: false }, userSubscriptions: r2, lastChanged: e2 });
1579
+ "number" == typeof e3 ? (n2[t3] = e3, a2[t3] = this.realtimeClient.internalSubscribe(["users", t3])) : null === e3 && (delete n2[t3], (_a2 = a2[t3]) == null ? void 0 : _a2.unsubscribe(), delete a2[t3]);
1580
+ }), o({ data: { usersTyping: n2, many: false }, userSubscriptions: a2, lastChanged: e2 });
1578
1581
  }
1579
1582
  if (true === t2.diff.many) return s2.value.data.many ? s2 : o({ data: { usersTyping: null, many: true }, userSubscriptions: {}, lastChanged: e2 });
1580
1583
  if (false === t2.diff.many) {
1581
1584
  if (false === s2.value.data.many) return s2;
1582
- const n2 = be(t2.diff.usersTyping, (e3, t3) => this.realtimeClient.internalSubscribe(["users", t3]));
1585
+ const n2 = we(t2.diff.usersTyping, (e3, t3) => this.realtimeClient.internalSubscribe(["users", t3]));
1583
1586
  return o({ data: t2.diff, userSubscriptions: n2, lastChanged: e2 });
1584
1587
  }
1585
1588
  throw t2.diff, "Unreachable";
@@ -1589,15 +1592,15 @@ class ye extends J {
1589
1592
  this.mutate(e2, (t3) => null === t3.value.data ? t3 : o({ data: null, lastChanged: e2 }));
1590
1593
  }
1591
1594
  teardownNested(e2) {
1592
- e2.data && we(e2.userSubscriptions, (e3) => e3.unsubscribe());
1595
+ e2.data && ye(e2.userSubscriptions, (e3) => e3.unsubscribe());
1593
1596
  }
1594
1597
  anyChildChanged(e2, t2, s2) {
1595
1598
  return __async(this, null, function* () {
1596
1599
  var _a2;
1597
1600
  if (null === s2.data) return false;
1598
1601
  for (const n2 in s2.userSubscriptions) {
1599
- const r2 = s2.userSubscriptions[n2];
1600
- if (true === (yield (_a2 = r2 == null ? void 0 : r2.store) == null ? void 0 : _a2.changedBetween(e2, t2))) return true;
1602
+ const a2 = s2.userSubscriptions[n2];
1603
+ if (true === (yield (_a2 = a2 == null ? void 0 : a2.store) == null ? void 0 : _a2.changedBetween(e2, t2))) return true;
1601
1604
  }
1602
1605
  return false;
1603
1606
  });
@@ -1617,7 +1620,7 @@ class Ce extends z {
1617
1620
  }
1618
1621
  equal(e2, t2) {
1619
1622
  var _a2, _b2, _c, _d;
1620
- return ((_b2 = (_a2 = e2.user) == null ? void 0 : _a2.store) == null ? void 0 : _b2.userId) === ((_d = (_c = t2.user) == null ? void 0 : _c.store) == null ? void 0 : _d.userId) && F(e2.data, t2.data);
1623
+ return ((_b2 = (_a2 = e2.user) == null ? void 0 : _a2.store) == null ? void 0 : _b2.userId) === ((_d = (_c = t2.user) == null ? void 0 : _c.store) == null ? void 0 : _d.userId) && _(e2.data, t2.data);
1621
1624
  }
1622
1625
  teardownNested(e2) {
1623
1626
  var _a2;
@@ -1636,13 +1639,13 @@ class Ce extends z {
1636
1639
  const s2 = yield t2.user.store.getDeep(e2);
1637
1640
  if (false === s2.ok) return s2;
1638
1641
  const n2 = s2.value.snapshot;
1639
- return o({ snapshot: ue(t2.data, n2) });
1642
+ return o({ snapshot: le(t2.data, n2) });
1640
1643
  });
1641
1644
  }
1642
1645
  participantEdited(e2, t2) {
1643
1646
  this.mutate(e2, (s2) => {
1644
1647
  if (null === s2.value.data) return s2;
1645
- return o({ lastChanged: e2, user: s2.value.user, data: { id: s2.value.data.id, access: D(s2.value.data.access, t2.diff.access), notify: D(s2.value.data.notify, t2.diff.notify), joinedAt: s2.value.data.joinedAt } });
1648
+ return o({ lastChanged: e2, user: s2.value.user, data: { id: s2.value.data.id, access: A(s2.value.data.access, t2.diff.access), notify: A(s2.value.data.notify, t2.diff.notify), joinedAt: s2.value.data.joinedAt } });
1646
1649
  });
1647
1650
  }
1648
1651
  participantDeleted(e2, t2) {
@@ -1651,55 +1654,55 @@ class Ce extends z {
1651
1654
  getFromCache() {
1652
1655
  return __async(this, null, function* () {
1653
1656
  const e2 = yield this.mostRecentState.resultPromise;
1654
- if (!e2.ok) return u("NOT_IN_CACHE");
1657
+ if (!e2.ok) return c("NOT_IN_CACHE");
1655
1658
  if (null === e2.value.data) {
1656
- return c({ status: 404, errorCode: "PARTICIPANT_NOT_FOUND", reasons: ["No participant with that ID exists"] });
1659
+ return l({ status: 404, errorCode: "PARTICIPANT_NOT_FOUND", reasons: ["No participant with that ID exists"] });
1657
1660
  }
1658
1661
  return o({ status: 200, data: e2.value.data });
1659
1662
  });
1660
1663
  }
1661
1664
  }
1662
- class Ae extends J {
1663
- constructor(e2, t2, s2, n2, r2) {
1664
- super(e2, n2, r2), this.conversationId = t2, this.realtimeClient = s2, this.handlers = r2, this.unsubscribeDebounceMs = 3e4, this.pendingLoadMore = void 0;
1665
+ class Te extends Y {
1666
+ constructor(e2, t2, s2, n2, a2) {
1667
+ super(e2, n2, a2), this.conversationId = t2, this.realtimeClient = s2, this.handlers = a2, this.unsubscribeDebounceMs = 3e4, this.pendingLoadMore = void 0;
1665
1668
  }
1666
1669
  fetchInitial(e2) {
1667
1670
  return __async(this, null, function* () {
1668
- const t2 = yield Ee({ realtimeClient: this.realtimeClient, conversationId: this.conversationId, count: 10 });
1669
- return t2.ok ? null === t2.value.participants ? o({ lastChanged: e2, stores: null, inWindow: null, windowEnd: null }) : ke({ seq: e2, participants: t2.value.participants, cursor: t2.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : t2;
1671
+ const t2 = yield Ie({ realtimeClient: this.realtimeClient, conversationId: this.conversationId, count: 10 });
1672
+ return t2.ok ? null === t2.value.participants ? o({ lastChanged: e2, stores: null, inWindow: null, windowEnd: null }) : xe({ seq: e2, participants: t2.value.participants, cursor: t2.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : t2;
1670
1673
  });
1671
1674
  }
1672
1675
  teardownNested(e2) {
1673
1676
  if (e2.stores) {
1674
- const t2 = u("TERMINATED");
1677
+ const t2 = c("TERMINATED");
1675
1678
  Object.values(e2.stores).forEach((e3) => e3.setError(t2));
1676
1679
  }
1677
1680
  }
1678
1681
  anyChildChanged(e2, t2, s2) {
1679
1682
  return __async(this, null, function* () {
1680
1683
  for (const n2 in s2.stores) {
1681
- const r2 = s2.stores[n2];
1682
- if (true === (yield r2 == null ? void 0 : r2.changedBetween(e2, t2))) return true;
1684
+ const a2 = s2.stores[n2];
1685
+ if (true === (yield a2 == null ? void 0 : a2.changedBetween(e2, t2))) return true;
1683
1686
  }
1684
1687
  return false;
1685
1688
  });
1686
1689
  }
1687
1690
  equal(e2, t2) {
1688
- return null === e2.stores && null === t2.stores || null !== e2.stores && null !== t2.stores && (!!F(Object.keys(e2.stores), Object.keys(t2.stores)) && F(e2.windowEnd, t2.windowEnd));
1691
+ return null === e2.stores && null === t2.stores || null !== e2.stores && null !== t2.stores && (!!_(Object.keys(e2.stores), Object.keys(t2.stores)) && _(e2.windowEnd, t2.windowEnd));
1689
1692
  }
1690
1693
  loadNested(e2, t2) {
1691
1694
  return __async(this, null, function* () {
1692
1695
  if (null === t2.stores) return o({ snapshot: null, loadedAll: true });
1693
1696
  const s2 = yield Promise.all(Object.values(t2.stores).map((t3) => t3.getDeep(e2))), n2 = s2.find((e3) => !e3.ok);
1694
1697
  if (n2) return n2;
1695
- const r2 = s2.filter((e3) => null !== e3.value.snapshot).map((e3) => e3.value.snapshot);
1696
- return r2.sort((e3, t3) => t3.joinedAt - e3.joinedAt), o({ snapshot: x(r2), loadedAll: null === t2.windowEnd });
1698
+ const a2 = s2.filter((e3) => null !== e3.value.snapshot).map((e3) => e3.value.snapshot);
1699
+ return a2.sort((e3, t3) => t3.joinedAt - e3.joinedAt), o({ snapshot: S(a2), loadedAll: null === t2.windowEnd });
1697
1700
  });
1698
1701
  }
1699
1702
  loadMore(e2) {
1700
1703
  return __async(this, null, function* () {
1701
1704
  if (this.pendingLoadMore) return this.pendingLoadMore;
1702
- const t2 = a();
1705
+ const t2 = r();
1703
1706
  this.pendingLoadMore = t2.promise, yield this._loadMoreParticipants(e2), t2.resolve(), this.pendingLoadMore = void 0;
1704
1707
  });
1705
1708
  }
@@ -1708,20 +1711,20 @@ class Ae extends J {
1708
1711
  const t2 = yield this.mostRecentState.resultPromise;
1709
1712
  if (!t2.ok) return;
1710
1713
  if (null === t2.value.windowEnd) return;
1711
- const s2 = t2.value.windowEnd.cursor, n2 = yield Ee({ count: e2, cursor: s2, conversationId: this.conversationId, realtimeClient: this.realtimeClient });
1714
+ const s2 = t2.value.windowEnd.cursor, n2 = yield Ie({ count: e2, cursor: s2, conversationId: this.conversationId, realtimeClient: this.realtimeClient });
1712
1715
  yield this.handlers.onLoadedMore({ type: "virtual.participants.loadedmore", conversationId: this.conversationId, data: n2 });
1713
1716
  });
1714
1717
  }
1715
1718
  loadedMore(e2, t2) {
1716
- this.mutate(e2, (s2) => null === s2.value.windowEnd ? s2 : t2.data.ok ? null === t2.data.value.participants ? (console.warn("[TalkJS] When loading more participants, the conversation no longer existed. We should have been told about this."), s2) : ke({ seq: e2, prevStores: s2.value.stores, participants: t2.data.value.participants, cursor: t2.data.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : t2.data);
1719
+ this.mutate(e2, (s2) => null === s2.value.windowEnd ? s2 : t2.data.ok ? null === t2.data.value.participants ? (console.warn("[TalkJS] When loading more participants, the conversation no longer existed. We should have been told about this."), s2) : xe({ seq: e2, prevStores: s2.value.stores, participants: t2.data.value.participants, cursor: t2.data.value.nextCursor, conversationId: this.conversationId, realtimeClient: this.realtimeClient }) : t2.data);
1717
1720
  }
1718
1721
  participantCreated(e2, t2) {
1719
1722
  this.mutate(e2, (s2) => {
1720
1723
  if (null === s2.value.stores) return console.warn("[TalkJS] Received a 'participant.created' event for a nonexistent conversation."), s2;
1721
1724
  if (s2.value.windowEnd && t2.state.joinedAt < s2.value.windowEnd.oldestParticipantTs) return s2;
1722
1725
  if (Object.hasOwnProperty.call(s2.value.stores, t2.state.id)) return s2;
1723
- const n2 = __spreadValues({}, s2.value.stores), r2 = new Ce(e2, this.conversationId, t2.state, this.realtimeClient);
1724
- n2[t2.state.id] = r2;
1726
+ const n2 = __spreadValues({}, s2.value.stores), a2 = new Ce(e2, this.conversationId, t2.state, this.realtimeClient);
1727
+ n2[t2.state.id] = a2;
1725
1728
  return o({ lastChanged: e2, stores: n2, windowEnd: s2.value.windowEnd });
1726
1729
  });
1727
1730
  }
@@ -1737,8 +1740,8 @@ class Ae extends J {
1737
1740
  const n2 = s2.value.stores[t2.userId];
1738
1741
  if (void 0 === n2) return s2;
1739
1742
  n2.participantDeleted(e2, t2);
1740
- const r2 = __spreadValues({}, s2.value.stores);
1741
- return delete r2[t2.userId], o({ lastChanged: e2, stores: r2, windowEnd: s2.value.windowEnd });
1743
+ const a2 = __spreadValues({}, s2.value.stores);
1744
+ return delete a2[t2.userId], o({ lastChanged: e2, stores: a2, windowEnd: s2.value.windowEnd });
1742
1745
  });
1743
1746
  }
1744
1747
  sideCreated(e2, t2) {
@@ -1753,40 +1756,40 @@ class Ae extends J {
1753
1756
  getParticipantFromCache(e2) {
1754
1757
  return __async(this, null, function* () {
1755
1758
  const t2 = yield this.mostRecentState.resultPromise;
1756
- if (!t2.ok) return u("NOT_IN_CACHE");
1757
- if (null === t2.value.stores) return u("NOT_IN_CACHE");
1759
+ if (!t2.ok) return c("NOT_IN_CACHE");
1760
+ if (null === t2.value.stores) return c("NOT_IN_CACHE");
1758
1761
  const s2 = t2.value.stores[e2];
1759
- return void 0 === s2 ? u("NOT_IN_CACHE") : s2.getFromCache();
1762
+ return void 0 === s2 ? c("NOT_IN_CACHE") : s2.getFromCache();
1760
1763
  });
1761
1764
  }
1762
1765
  }
1763
- function Ee(_0) {
1766
+ function Ie(_0) {
1764
1767
  return __async(this, arguments, function* ({ cursor: e2, realtimeClient: t2, conversationId: s2, count: n2 }) {
1765
- const r2 = { limit: n2, cursor: e2 }, a2 = yield t2.call({ method: "GET", path: ["me", "conversations", s2, "participants"], data: r2, flags: { bypassCache: true } });
1766
- if (a2.ok) {
1767
- const { data: e3, cursor: t3 } = a2.value.data;
1768
+ const a2 = { limit: n2, cursor: e2 }, r2 = yield t2.call({ method: "GET", path: ["me", "conversations", s2, "participants"], data: a2, flags: { bypassCache: true } });
1769
+ if (r2.ok) {
1770
+ const { data: e3, cursor: t3 } = r2.value.data;
1768
1771
  return o({ participants: e3, nextCursor: t3 });
1769
1772
  }
1770
- return (a2.ok || "server" !== a2.where || 404 !== a2.value.status) && (a2.ok || "server" !== a2.where || 403 !== a2.value.status || "NOT_A_PARTICIPANT" !== a2.value.errorCode) ? a2 : o({ participants: null, nextCursor: null });
1773
+ return (r2.ok || "server" !== r2.where || 404 !== r2.value.status) && (r2.ok || "server" !== r2.where || 403 !== r2.value.status || "NOT_A_PARTICIPANT" !== r2.value.errorCode) ? r2 : o({ participants: null, nextCursor: null });
1771
1774
  });
1772
1775
  }
1773
- function ke({ seq: e2, prevStores: t2, participants: s2, cursor: n2, conversationId: r2, realtimeClient: a2 }) {
1776
+ function xe({ seq: e2, prevStores: t2, participants: s2, cursor: n2, conversationId: a2, realtimeClient: r2 }) {
1774
1777
  const i2 = t2 ? __spreadValues({}, t2) : {};
1775
1778
  for (const t3 of s2) if (void 0 === i2[t3.id]) {
1776
- const s3 = new Ce(e2, r2, t3, a2);
1779
+ const s3 = new Ce(e2, a2, t3, r2);
1777
1780
  i2[t3.id] = s3;
1778
1781
  }
1779
1782
  if (null === n2) return o({ lastChanged: e2, stores: i2, windowEnd: null });
1780
1783
  return o({ lastChanged: e2, stores: i2, windowEnd: { cursor: n2, oldestParticipantTs: s2[s2.length - 1].joinedAt } });
1781
1784
  }
1782
- class xe extends J {
1783
- constructor(e2, t2, s2, n2, r2) {
1784
- super(e2, n2, r2), this.getConvDataStore = t2, this.realtimeClient = s2, this.handlers = r2, this.unsubscribeDebounceMs = 1e4, this.pendingLoadMore = void 0;
1785
+ class Se extends Y {
1786
+ constructor(e2, t2, s2, n2, a2) {
1787
+ super(e2, n2, a2), this.getConvDataStore = t2, this.realtimeClient = s2, this.handlers = a2, this.unsubscribeDebounceMs = 1e4, this.pendingLoadMore = void 0;
1785
1788
  }
1786
1789
  fetchInitial(e2) {
1787
1790
  return __async(this, null, function* () {
1788
- const t2 = yield Te({ realtimeClient: this.realtimeClient, count: 20 });
1789
- return t2.ok ? null === t2.value.conversations ? o({ lastChanged: e2, stores: null, windowEnd: null }) : Ie({ seq: e2, conversations: t2.value.conversations, cursor: t2.value.nextCursor, getConvDataStore: this.getConvDataStore }) : t2;
1791
+ const t2 = yield Ee({ realtimeClient: this.realtimeClient, count: 20 });
1792
+ return t2.ok ? null === t2.value.conversations ? o({ lastChanged: e2, stores: null, windowEnd: null }) : Me({ seq: e2, conversations: t2.value.conversations, cursor: t2.value.nextCursor, getConvDataStore: this.getConvDataStore }) : t2;
1790
1793
  });
1791
1794
  }
1792
1795
  teardownNested(e2) {
@@ -1796,32 +1799,32 @@ class xe extends J {
1796
1799
  return __async(this, null, function* () {
1797
1800
  var _a2;
1798
1801
  for (const n2 in s2.stores) {
1799
- const r2 = s2.stores[n2];
1800
- if (true === (yield (_a2 = r2 == null ? void 0 : r2.store) == null ? void 0 : _a2.changedBetween(e2, t2))) return true;
1802
+ const a2 = s2.stores[n2];
1803
+ if (true === (yield (_a2 = a2 == null ? void 0 : a2.store) == null ? void 0 : _a2.changedBetween(e2, t2))) return true;
1801
1804
  }
1802
1805
  return false;
1803
1806
  });
1804
1807
  }
1805
1808
  equal(e2, t2) {
1806
- return null === e2.stores && null === t2.stores || null !== e2.stores && null !== t2.stores && (!!F(Object.keys(e2.stores), Object.keys(t2.stores)) && F(e2.windowEnd, t2.windowEnd));
1809
+ return null === e2.stores && null === t2.stores || null !== e2.stores && null !== t2.stores && (!!_(Object.keys(e2.stores), Object.keys(t2.stores)) && _(e2.windowEnd, t2.windowEnd));
1807
1810
  }
1808
1811
  loadNested(e2, t2) {
1809
1812
  return __async(this, null, function* () {
1810
- if (null === t2.stores) return o({ snapshot: x([]), loadedAll: true });
1813
+ if (null === t2.stores) return o({ snapshot: S([]), loadedAll: true });
1811
1814
  const s2 = yield Promise.all(Object.values(t2.stores).map((t3) => t3.store.getDeep(e2))), n2 = s2.find((e3) => !e3.ok);
1812
1815
  if (n2) return n2;
1813
- const r2 = s2.filter((e3) => null !== e3.value.snapshot).map((e3) => e3.value.snapshot);
1814
- return r2.sort((e3, t3) => {
1816
+ const a2 = s2.filter((e3) => null !== e3.value.snapshot).map((e3) => e3.value.snapshot);
1817
+ return a2.sort((e3, t3) => {
1815
1818
  var _a2, _b2, _c, _d;
1816
1819
  const s3 = (_b2 = (_a2 = e3.lastMessage) == null ? void 0 : _a2.createdAt) != null ? _b2 : e3.joinedAt;
1817
1820
  return ((_d = (_c = t3.lastMessage) == null ? void 0 : _c.createdAt) != null ? _d : t3.joinedAt) - s3;
1818
- }), o({ snapshot: x(r2), loadedAll: null === t2.windowEnd });
1821
+ }), o({ snapshot: S(a2), loadedAll: null === t2.windowEnd });
1819
1822
  });
1820
1823
  }
1821
1824
  loadMore(e2) {
1822
1825
  return __async(this, null, function* () {
1823
1826
  if (this.pendingLoadMore) return this.pendingLoadMore;
1824
- const t2 = a();
1827
+ const t2 = r();
1825
1828
  this.pendingLoadMore = t2.promise, yield this._loadMoreConversations(e2), t2.resolve(), this.pendingLoadMore = void 0;
1826
1829
  });
1827
1830
  }
@@ -1830,21 +1833,21 @@ class xe extends J {
1830
1833
  const t2 = yield this.mostRecentState.resultPromise;
1831
1834
  if (!t2.ok) return;
1832
1835
  if (null === t2.value.windowEnd) return;
1833
- const s2 = t2.value.windowEnd.cursor, n2 = yield Te({ count: e2, cursor: s2, realtimeClient: this.realtimeClient });
1836
+ const s2 = t2.value.windowEnd.cursor, n2 = yield Ee({ count: e2, cursor: s2, realtimeClient: this.realtimeClient });
1834
1837
  yield this.handlers.onLoadedMore({ type: "virtual.conversations.loadedmore", data: n2 });
1835
1838
  });
1836
1839
  }
1837
1840
  getConvFromCache(e2) {
1838
1841
  return __async(this, null, function* () {
1839
1842
  const t2 = yield this.mostRecentState.resultPromise;
1840
- if (!t2.ok) return u("NOT_IN_CACHE");
1841
- if (null === t2.value.stores) return c({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["No user with that ID exists"] });
1843
+ if (!t2.ok) return c("NOT_IN_CACHE");
1844
+ if (null === t2.value.stores) return l({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["No user with that ID exists"] });
1842
1845
  const s2 = t2.value.stores[e2];
1843
- return void 0 === s2 ? u("NOT_IN_CACHE") : s2.store.getFromCache();
1846
+ return void 0 === s2 ? c("NOT_IN_CACHE") : s2.store.getFromCache();
1844
1847
  });
1845
1848
  }
1846
1849
  loadedMore(e2, t2) {
1847
- this.mutate(e2, (s2) => null === s2.value.windowEnd ? s2 : t2.data.ok ? null === t2.data.value.conversations ? (console.warn("[TalkJS] When loading more conversations, the user stopped existing, which should be impossible."), s2) : Ie({ seq: e2, prevStores: s2.value.stores, conversations: t2.data.value.conversations, cursor: t2.data.value.nextCursor, getConvDataStore: this.getConvDataStore }) : t2.data);
1850
+ this.mutate(e2, (s2) => null === s2.value.windowEnd ? s2 : t2.data.ok ? null === t2.data.value.conversations ? (console.warn("[TalkJS] When loading more conversations, the user stopped existing, which should be impossible."), s2) : Me({ seq: e2, prevStores: s2.value.stores, conversations: t2.data.value.conversations, cursor: t2.data.value.nextCursor, getConvDataStore: this.getConvDataStore }) : t2.data);
1848
1851
  }
1849
1852
  userCreated(e2, t2) {
1850
1853
  this.mutate(e2, (e3) => null !== e3.value.stores ? e3 : o({ lastChanged: e3.value.lastChanged, stores: {}, windowEnd: null }));
@@ -1852,8 +1855,8 @@ class xe extends J {
1852
1855
  sideCreated(e2, t2) {
1853
1856
  const s2 = this.getConvDataStore(t2.state);
1854
1857
  this.mutate(e2, (n2) => {
1855
- let r2 = n2.value.stores;
1856
- return null === r2 && (console.warn("[TalkJS] Received a 'side.created' event when we thought your user didn't exist."), r2 = {}), Object.hasOwnProperty.call(r2, t2.conversationId) ? (s2.unsubscribe(), n2) : o({ lastChanged: e2, stores: __spreadProps(__spreadValues({}, r2), { [t2.conversationId]: s2 }), windowEnd: n2.value.windowEnd });
1858
+ let a2 = n2.value.stores;
1859
+ return null === a2 && (console.warn("[TalkJS] Received a 'side.created' event when we thought your user didn't exist."), a2 = {}), Object.hasOwnProperty.call(a2, t2.conversationId) ? (s2.unsubscribe(), n2) : o({ lastChanged: e2, stores: __spreadProps(__spreadValues({}, a2), { [t2.conversationId]: s2 }), windowEnd: n2.value.windowEnd });
1857
1860
  });
1858
1861
  }
1859
1862
  sideDeleted(e2, t2) {
@@ -1870,12 +1873,12 @@ class xe extends J {
1870
1873
  var _a2;
1871
1874
  if (null === n2.value.stores) return console.warn("[TalkJS] Received a 'side.edited' event when we thought your user didn't exist."), n2;
1872
1875
  if (null === n2.value.windowEnd) return n2;
1873
- const r2 = Object.hasOwnProperty.call(n2.value.stores, t2.conversationId);
1874
- if (r2 && s2 < n2.value.windowEnd.oldestMessageTs) {
1876
+ const a2 = Object.hasOwnProperty.call(n2.value.stores, t2.conversationId);
1877
+ if (a2 && s2 < n2.value.windowEnd.oldestMessageTs) {
1875
1878
  const s3 = __spreadValues({}, n2.value.stores);
1876
1879
  return (_a2 = s3[t2.conversationId]) == null ? void 0 : _a2.unsubscribe(), delete s3[t2.conversationId], o({ lastChanged: e2, stores: s3, windowEnd: n2.value.windowEnd });
1877
1880
  }
1878
- if (!r2 && s2 >= n2.value.windowEnd.oldestMessageTs) {
1881
+ if (!a2 && s2 >= n2.value.windowEnd.oldestMessageTs) {
1879
1882
  const s3 = this.getConvDataStore(t2.conversationId);
1880
1883
  return o({ lastChanged: e2, stores: __spreadProps(__spreadValues({}, n2.value.stores), { [t2.conversationId]: s3 }), windowEnd: n2.value.windowEnd });
1881
1884
  }
@@ -1883,25 +1886,25 @@ class xe extends J {
1883
1886
  });
1884
1887
  }
1885
1888
  }
1886
- function Te(_0) {
1889
+ function Ee(_0) {
1887
1890
  return __async(this, arguments, function* ({ cursor: e2, realtimeClient: t2, count: s2 }) {
1888
- const n2 = { limit: s2, cursor: e2 }, r2 = yield t2.call({ method: "GET", path: ["me", "conversations"], data: n2, flags: { bypassCache: true } });
1889
- if (r2.ok) {
1890
- const { data: e3, cursor: t3 } = r2.value.data;
1891
+ const n2 = { limit: s2, cursor: e2 }, a2 = yield t2.call({ method: "GET", path: ["me", "conversations"], data: n2, flags: { bypassCache: true } });
1892
+ if (a2.ok) {
1893
+ const { data: e3, cursor: t3 } = a2.value.data;
1891
1894
  return o({ conversations: e3, nextCursor: t3 });
1892
1895
  }
1893
- return r2.ok || "server" !== r2.where || 404 !== r2.value.status || "USER_NOT_FOUND" !== r2.value.errorCode ? r2 : o({ conversations: null, nextCursor: null });
1896
+ return a2.ok || "server" !== a2.where || 404 !== a2.value.status || "USER_NOT_FOUND" !== a2.value.errorCode ? a2 : o({ conversations: null, nextCursor: null });
1894
1897
  });
1895
1898
  }
1896
- function Ie({ seq: e2, prevStores: t2, conversations: s2, cursor: n2, getConvDataStore: r2 }) {
1897
- const a2 = t2 ? __spreadValues({}, t2) : {};
1898
- for (const e3 of s2) void 0 === a2[e3.id] && (a2[e3.id] = r2(e3));
1899
- if (null === n2) return o({ lastChanged: e2, stores: a2, windowEnd: null });
1900
- return o({ lastChanged: e2, stores: a2, windowEnd: { cursor: n2, oldestMessageTs: Math.min(...s2.map((e3) => e3.lastMessageAt)) } });
1899
+ function Me({ seq: e2, prevStores: t2, conversations: s2, cursor: n2, getConvDataStore: a2 }) {
1900
+ const r2 = t2 ? __spreadValues({}, t2) : {};
1901
+ for (const e3 of s2) void 0 === r2[e3.id] && (r2[e3.id] = a2(e3));
1902
+ if (null === n2) return o({ lastChanged: e2, stores: r2, windowEnd: null });
1903
+ return o({ lastChanged: e2, stores: r2, windowEnd: { cursor: n2, oldestMessageTs: Math.min(...s2.map((e3) => e3.lastMessageAt)) } });
1901
1904
  }
1902
- class De extends J {
1903
- constructor(e2, t2, s2, n2, r2) {
1904
- super(e2, n2, r2), this.conversation = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 0;
1905
+ class Ae extends Y {
1906
+ constructor(e2, t2, s2, n2, a2) {
1907
+ super(e2, n2, a2), this.conversation = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 0;
1905
1908
  }
1906
1909
  get conversationId() {
1907
1910
  return "string" == typeof this.conversation ? this.conversation : this.conversation.id;
@@ -1931,7 +1934,7 @@ class De extends J {
1931
1934
  });
1932
1935
  }
1933
1936
  equal(e2, t2) {
1934
- return F(e2.snapshot, t2.snapshot);
1937
+ return _(e2.snapshot, t2.snapshot);
1935
1938
  }
1936
1939
  loadNested(e2, t2) {
1937
1940
  return __async(this, null, function* () {
@@ -1939,18 +1942,18 @@ class De extends J {
1939
1942
  if (!t2.snapshot) return o({ snapshot: null, loadedAll: true });
1940
1943
  const s2 = yield t2.messageWindow.store.getDeep(e2);
1941
1944
  if (!s2.ok) return s2;
1942
- const n2 = s2.value.snapshot, r2 = (_a2 = n2 == null ? void 0 : n2[0]) != null ? _a2 : null;
1943
- return o({ snapshot: x(__spreadProps(__spreadValues({}, t2.snapshot), { custom: x(t2.snapshot.custom), welcomeMessages: x(t2.snapshot.welcomeMessages), lastMessage: r2 })) });
1945
+ const n2 = s2.value.snapshot, a2 = (_a2 = n2 == null ? void 0 : n2[0]) != null ? _a2 : null;
1946
+ return o({ snapshot: S(__spreadProps(__spreadValues({}, t2.snapshot), { custom: S(t2.snapshot.custom), welcomeMessages: S(t2.snapshot.welcomeMessages), lastMessage: a2 })) });
1944
1947
  });
1945
1948
  }
1946
1949
  participantEdited(e2, t2) {
1947
- this.mutate(e2, (s2) => null === s2.value.snapshot ? (console.warn("[TalkJS] Received a 'participant.edited' event for a conversation that we thought didn't exist."), s2) : o({ lastChanged: e2, snapshot: Se(s2.value.snapshot, t2.diff), messageWindow: s2.value.messageWindow }));
1950
+ this.mutate(e2, (s2) => null === s2.value.snapshot ? (console.warn("[TalkJS] Received a 'participant.edited' event for a conversation that we thought didn't exist."), s2) : o({ lastChanged: e2, snapshot: Ne(s2.value.snapshot, t2.diff), messageWindow: s2.value.messageWindow }));
1948
1951
  }
1949
1952
  conversationEdited(e2, t2) {
1950
- this.mutate(e2, (s2) => null === s2.value.snapshot ? (console.warn("[TalkJS] Received a 'conversation.edited' event for a conversation that we thought didn't exist."), s2) : o({ lastChanged: e2, snapshot: Se(s2.value.snapshot, t2.diff), messageWindow: s2.value.messageWindow }));
1953
+ this.mutate(e2, (s2) => null === s2.value.snapshot ? (console.warn("[TalkJS] Received a 'conversation.edited' event for a conversation that we thought didn't exist."), s2) : o({ lastChanged: e2, snapshot: Ne(s2.value.snapshot, t2.diff), messageWindow: s2.value.messageWindow }));
1951
1954
  }
1952
1955
  sideEdited(e2, t2) {
1953
- this.mutate(e2, (s2) => null === s2.value.snapshot ? (console.warn("[TalkJS] Received a 'side.edited' event for a conversation that we thought didn't exist."), s2) : o({ lastChanged: e2, snapshot: Se(s2.value.snapshot, t2.diff), messageWindow: s2.value.messageWindow }));
1956
+ this.mutate(e2, (s2) => null === s2.value.snapshot ? (console.warn("[TalkJS] Received a 'side.edited' event for a conversation that we thought didn't exist."), s2) : o({ lastChanged: e2, snapshot: Ne(s2.value.snapshot, t2.diff), messageWindow: s2.value.messageWindow }));
1954
1957
  }
1955
1958
  sideCreated(e2, t2) {
1956
1959
  this.mutate(e2, (s2) => s2.value.snapshot ? s2 : o({ lastChanged: e2, snapshot: t2.state, messageWindow: s2.value.messageWindow }));
@@ -1961,17 +1964,17 @@ class De extends J {
1961
1964
  getFromCache() {
1962
1965
  return __async(this, null, function* () {
1963
1966
  const e2 = yield this.mostRecentState.resultPromise;
1964
- return e2.ok && e2.value.snapshot ? o({ status: 200, data: e2.value.snapshot }) : u("NOT_IN_CACHE");
1967
+ return e2.ok && e2.value.snapshot ? o({ status: 200, data: e2.value.snapshot }) : c("NOT_IN_CACHE");
1965
1968
  });
1966
1969
  }
1967
1970
  }
1968
- function Se(e2, t2) {
1971
+ function Ne(e2, t2) {
1969
1972
  const s2 = t2;
1970
- return { id: e2.id, createdAt: e2.createdAt, subject: D(e2.subject, s2.subject), photoUrl: D(e2.photoUrl, s2.photoUrl), welcomeMessages: S(e2.welcomeMessages, s2.welcomeMessages), custom: M(e2.custom, s2.custom), lastMessageAt: D(e2.lastMessageAt, s2.lastMessageAt), unreadMessageCount: D(e2.unreadMessageCount, s2.unreadMessageCount), isUnread: D(e2.isUnread, s2.isUnread), access: D(e2.access, s2.access), notify: D(e2.notify, s2.notify), readUntil: D(e2.readUntil, s2.readUntil), everyoneReadUntil: D(e2.everyoneReadUntil, s2.everyoneReadUntil), joinedAt: e2.joinedAt };
1973
+ return { id: e2.id, createdAt: e2.createdAt, subject: A(e2.subject, s2.subject), photoUrl: A(e2.photoUrl, s2.photoUrl), welcomeMessages: N(e2.welcomeMessages, s2.welcomeMessages), custom: R(e2.custom, s2.custom), lastMessageAt: A(e2.lastMessageAt, s2.lastMessageAt), unreadMessageCount: A(e2.unreadMessageCount, s2.unreadMessageCount), isUnread: A(e2.isUnread, s2.isUnread), access: A(e2.access, s2.access), notify: A(e2.notify, s2.notify), readUntil: A(e2.readUntil, s2.readUntil), everyoneReadUntil: A(e2.everyoneReadUntil, s2.everyoneReadUntil), joinedAt: e2.joinedAt };
1971
1974
  }
1972
- class Me extends J {
1973
- constructor(e2, t2, s2, n2, r2) {
1974
- super(e2, n2, r2), this.userId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 3e4;
1975
+ class Re extends Y {
1976
+ constructor(e2, t2, s2, n2, a2) {
1977
+ super(e2, n2, a2), this.userId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 3e4;
1975
1978
  }
1976
1979
  fetchInitial(e2) {
1977
1980
  return __async(this, null, function* () {
@@ -1980,7 +1983,7 @@ class Me extends J {
1980
1983
  });
1981
1984
  }
1982
1985
  equal(e2, t2) {
1983
- return F(e2.data, t2.data);
1986
+ return _(e2.data, t2.data);
1984
1987
  }
1985
1988
  teardownNested(e2) {
1986
1989
  e2.user.unsubscribe();
@@ -1995,7 +1998,7 @@ class Me extends J {
1995
1998
  const s2 = yield t2.user.store.getDeep(e2);
1996
1999
  if (!s2.ok) return s2;
1997
2000
  const n2 = s2.value.snapshot;
1998
- return null === t2.data || null === n2 ? o({ snapshot: null }) : o({ snapshot: x(__spreadProps(__spreadValues({}, t2.data), { user: n2 })) });
2001
+ return null === t2.data || null === n2 ? o({ snapshot: null }) : o({ snapshot: S(__spreadProps(__spreadValues({}, t2.data), { user: n2 })) });
1999
2002
  });
2000
2003
  }
2001
2004
  userCreated(e2, t2) {
@@ -2010,18 +2013,18 @@ class Me extends J {
2010
2013
  getFromCache() {
2011
2014
  return __async(this, null, function* () {
2012
2015
  const e2 = yield this.mostRecentState.resultPromise;
2013
- if (!e2.ok) return u("NOT_IN_CACHE");
2016
+ if (!e2.ok) return c("NOT_IN_CACHE");
2014
2017
  if (null === e2.value.data) {
2015
- return c({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["No user with that ID exists"] });
2018
+ return l({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["No user with that ID exists"] });
2016
2019
  }
2017
2020
  const _a2 = e2.value, { user: t2 } = _a2, s2 = __objRest(_a2, ["user"]);
2018
2021
  return o({ status: 200, data: __spreadValues({}, s2.data) });
2019
2022
  });
2020
2023
  }
2021
2024
  }
2022
- class Fe {
2025
+ class _e {
2023
2026
  constructor(e2, t2, s2) {
2024
- this.realtimeClient = s2, this.convDataStores = {}, this.storeMap = {}, this.emitMutex = new H(), this.virtualSeqOffset = 0, this.realPublishSeq = 0, this.refetchOnNextNetworkLoss = true, this.connection = new q(e2, t2, { onUpstreamRestarting: () => {
2027
+ this.realtimeClient = s2, this.convDataStores = {}, this.storeMap = {}, this.emitMutex = new F(), this.virtualSeqOffset = 0, this.realPublishSeq = 0, this.refetchOnNextNetworkLoss = true, this.connection = new G(e2, t2, { onUpstreamRestarting: () => {
2025
2028
  this.refetchOnNextNetworkLoss = false;
2026
2029
  }, onReady: () => {
2027
2030
  this.refetchOnNextNetworkLoss = true;
@@ -2033,7 +2036,7 @@ class Fe {
2033
2036
  }
2034
2037
  }, onResubscribeError: (e3, t3) => {
2035
2038
  var _a2;
2036
- (_a2 = this.storeMap[Be(e3)]) == null ? void 0 : _a2.setError(t3);
2039
+ (_a2 = this.storeMap[De(e3)]) == null ? void 0 : _a2.setError(t3);
2037
2040
  }, onPublish: (e3, t3) => {
2038
2041
  this.realPublishSeq = e3;
2039
2042
  const s3 = this.virtualSeq;
@@ -2059,7 +2062,7 @@ class Fe {
2059
2062
  }));
2060
2063
  }
2061
2064
  handlePublish(e2, t2) {
2062
- var _a2, _b2, _c, _d, _e3, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s2, _t3, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D;
2065
+ var _a2, _b2, _c, _d, _e3, _f, _g, _h, _i, _j, _k, _l, _m, _n2, _o, _p, _q, _r, _s2, _t3, _u, _v, _w, _x, _y, _z, _A, _B, _C, _D;
2063
2066
  switch (t2.type) {
2064
2067
  case "user.created":
2065
2068
  return (_a2 = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _a2.userCreated(e2, t2), (_b2 = this.storeMap["/me/conversations"]) == null ? void 0 : _b2.userCreated(e2, t2), void ((_c = this.storeMap[`/users/${t2.userId}/online`]) == null ? void 0 : _c.userCreated(e2, t2));
@@ -2070,7 +2073,7 @@ class Fe {
2070
2073
  case "side.edited":
2071
2074
  return (_i = this.convDataStores[t2.conversationId]) == null ? void 0 : _i.sideEdited(e2, t2), void ((_j = this.storeMap["/me/conversations"]) == null ? void 0 : _j.sideEdited(e2, t2));
2072
2075
  case "side.deleted":
2073
- return (_k = this.convDataStores[t2.conversationId]) == null ? void 0 : _k.sideDeleted(e2, t2), (_l = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _l.sideDeleted(e2, t2), (_m = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _m.sideDeleted(e2, t2), (_n = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _n.sideDeleted(e2, t2), void ((_o = this.storeMap["/me/conversations"]) == null ? void 0 : _o.sideDeleted(e2, t2));
2076
+ return (_k = this.convDataStores[t2.conversationId]) == null ? void 0 : _k.sideDeleted(e2, t2), (_l = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _l.sideDeleted(e2, t2), (_m = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _m.sideDeleted(e2, t2), (_n2 = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _n2.sideDeleted(e2, t2), void ((_o = this.storeMap["/me/conversations"]) == null ? void 0 : _o.sideDeleted(e2, t2));
2074
2077
  case "conversation.edited":
2075
2078
  return void ((_p = this.convDataStores[t2.conversationId]) == null ? void 0 : _p.conversationEdited(e2, t2));
2076
2079
  case "message.created":
@@ -2102,9 +2105,9 @@ class Fe {
2102
2105
  }
2103
2106
  }
2104
2107
  call(_0) {
2105
- return __async(this, arguments, function* ({ method: t2, path: s2, data: n2, headers: r2, flags: a2 }) {
2106
- if (true !== (a2 == null ? void 0 : a2.bypassCache) && "GET" === t2) {
2107
- const t3 = Be(s2);
2108
+ return __async(this, arguments, function* ({ method: t2, path: s2, data: n2, headers: a2, flags: r2 }) {
2109
+ if (true !== (r2 == null ? void 0 : r2.bypassCache) && "GET" === t2) {
2110
+ const t3 = De(s2);
2108
2111
  if (t3 in this.storeMap) {
2109
2112
  const e2 = t3, s3 = this.storeMap[e2];
2110
2113
  if (s3 && "getFromCache" in s3) {
@@ -2135,29 +2138,29 @@ class Fe {
2135
2138
  }
2136
2139
  }
2137
2140
  }
2138
- return this.connection.call({ method: t2, path: s2, data: n2, headers: r2 != null ? r2 : {} });
2141
+ return this.connection.call({ method: t2, path: s2, data: n2, headers: a2 != null ? a2 : {} });
2139
2142
  });
2140
2143
  }
2141
2144
  subscribe(e2, t2) {
2142
- const s2 = this.getOrCreateStore(e2), n2 = a(), r2 = a();
2145
+ const s2 = this.getOrCreateStore(e2), n2 = r(), a2 = r();
2143
2146
  n2.promise.catch(() => {
2144
- }), r2.promise.catch(() => {
2147
+ }), a2.promise.catch(() => {
2145
2148
  });
2146
- const i2 = { state: { type: "pending", latestSnapshot: void 0 }, connected: n2.promise, terminated: r2.promise, loadMore: (e3) => __async(this, null, function* () {
2149
+ const i2 = { state: { type: "pending", latestSnapshot: void 0 }, connected: n2.promise, terminated: a2.promise, loadMore: (e3) => __async(this, null, function* () {
2147
2150
  "loadMore" in s2 && (yield s2.loadMore(e3));
2148
2151
  }), unsubscribe: () => {
2149
2152
  } }, o2 = s2.listen((s3) => {
2150
2153
  if (s3.ok) {
2151
- const e3 = !("loadedAll" in s3.value) || s3.value.loadedAll, r3 = { type: "active", latestSnapshot: s3.value.snapshot, loadedAll: e3 };
2152
- i2.state = r3, t2 == null ? void 0 : t2(s3.value.snapshot, e3), n2.resolve(r3);
2154
+ const e3 = !("loadedAll" in s3.value) || s3.value.loadedAll, a3 = { type: "active", latestSnapshot: s3.value.snapshot, loadedAll: e3 };
2155
+ i2.state = a3, t2 == null ? void 0 : t2(s3.value.snapshot, e3), n2.resolve(a3);
2153
2156
  } else if ("pending" === i2.state.type || "active" === i2.state.type) {
2154
2157
  if ("server" === s3.where) {
2155
- const t3 = { type: "error", error: new Error(d(`Subscribe to ${e2.join("/")}`, s3.value)) };
2156
- return i2.state = t3, r2.resolve(t3), void n2.reject("Subscription encountered an error during initial connection");
2158
+ const t3 = { type: "error", error: new Error(p(`Subscribe to ${e2.join("/")}`, s3.value)) };
2159
+ return i2.state = t3, a2.resolve(t3), void n2.reject("Subscription encountered an error during initial connection");
2157
2160
  }
2158
2161
  if ("SESSION_DESTROYED" === s3.value) {
2159
2162
  const e3 = { type: "error", error: new Error("Session was destroyed causing all subscriptions to be terminated") };
2160
- return i2.state = e3, r2.resolve(e3), void n2.reject("Subscription encountered an error during initial connection");
2163
+ return i2.state = e3, a2.resolve(e3), void n2.reject("Subscription encountered an error during initial connection");
2161
2164
  }
2162
2165
  if ("UNSUBSCRIBED" === s3.value) return;
2163
2166
  if ("TERMINATED" === s3.value) return;
@@ -2168,7 +2171,7 @@ class Fe {
2168
2171
  if ("pending" === i2.state.type || "active" === i2.state.type) {
2169
2172
  o2();
2170
2173
  const e3 = { type: "unsubscribed" };
2171
- i2.state = e3, r2.resolve(e3), n2.reject("Subscription was unsubscribed before connecting");
2174
+ i2.state = e3, a2.resolve(e3), n2.reject("Subscription was unsubscribed before connecting");
2172
2175
  }
2173
2176
  }, i2;
2174
2177
  }
@@ -2180,7 +2183,7 @@ class Fe {
2180
2183
  });
2181
2184
  }
2182
2185
  getOrCreateStore(e2) {
2183
- const t2 = Be(e2);
2186
+ const t2 = De(e2);
2184
2187
  if (t2 in this.storeMap) return this.storeMap[t2];
2185
2188
  this.connection.subscribe(e2).then((e3) => {
2186
2189
  e3.ok || s2.setError(e3);
@@ -2197,13 +2200,13 @@ class Fe {
2197
2200
  return this.connection.isConnected();
2198
2201
  }
2199
2202
  instantiateStore(t2, s2) {
2200
- if (e(t2, ["users", "*"])) return new le(this.virtualSeq, t2[1], this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2201
- if (e(t2, ["me", "conversations", "*"])) return new ve(this.virtualSeq, this.subscribeConvData(t2[2]), this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2203
+ if (e(t2, ["users", "*"])) return new ue(this.virtualSeq, t2[1], this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2204
+ if (e(t2, ["me", "conversations", "*"])) return new be(this.virtualSeq, this.subscribeConvData(t2[2]), this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2202
2205
  if (e(t2, ["me", "conversations", "*", "messages"])) return new fe(this.virtualSeq, t2[2], this.realtimeClient, this.emitMutex, { onTeardown: s2, onLoadedMore: (e2) => this.onVirtualPublish(e2) });
2203
- if (e(t2, ["me", "conversations", "*", "participants"])) return new Ae(this.virtualSeq, t2[2], this.realtimeClient, this.emitMutex, { onTeardown: s2, onLoadedMore: (e2) => this.onVirtualPublish(e2) });
2204
- if (e(t2, ["me", "conversations", "*", "typing"])) return new ye(this.virtualSeq, t2[2], this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2205
- if (e(t2, ["me", "conversations"])) return new xe(this.virtualSeq, (e2) => this.subscribeConvData(e2), this.realtimeClient, this.emitMutex, { onTeardown: s2, onLoadedMore: (e2) => this.onVirtualPublish(e2) });
2206
- if (e(t2, ["users", "*", "online"])) return new Me(this.virtualSeq, t2[1], this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2206
+ if (e(t2, ["me", "conversations", "*", "participants"])) return new Te(this.virtualSeq, t2[2], this.realtimeClient, this.emitMutex, { onTeardown: s2, onLoadedMore: (e2) => this.onVirtualPublish(e2) });
2207
+ if (e(t2, ["me", "conversations", "*", "typing"])) return new ke(this.virtualSeq, t2[2], this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2208
+ if (e(t2, ["me", "conversations"])) return new Se(this.virtualSeq, (e2) => this.subscribeConvData(e2), this.realtimeClient, this.emitMutex, { onTeardown: s2, onLoadedMore: (e2) => this.onVirtualPublish(e2) });
2209
+ if (e(t2, ["users", "*", "online"])) return new Re(this.virtualSeq, t2[1], this.realtimeClient, this.emitMutex, { onTeardown: s2 });
2207
2210
  throw "Unreachable";
2208
2211
  }
2209
2212
  subscribeConvData(e2) {
@@ -2212,16 +2215,16 @@ class Fe {
2212
2215
  const e3 = this.convDataStores[t2];
2213
2216
  return { store: e3, unsubscribe: e3.registerInternalSubscription() };
2214
2217
  }
2215
- const s2 = new De(this.virtualSeq, e2, this.realtimeClient, this.emitMutex, { onTeardown: () => {
2218
+ const s2 = new Ae(this.virtualSeq, e2, this.realtimeClient, this.emitMutex, { onTeardown: () => {
2216
2219
  delete this.convDataStores[t2];
2217
2220
  } });
2218
2221
  return this.convDataStores[t2] = s2, { store: s2, unsubscribe: s2.registerInternalSubscription() };
2219
2222
  }
2220
2223
  }
2221
- function Be(e2) {
2224
+ function De(e2) {
2222
2225
  return `/${e2.join("/")}`;
2223
2226
  }
2224
- class Re {
2227
+ class Oe {
2225
2228
  constructor(e2, t2) {
2226
2229
  this.id = e2, this._realtimeClient = t2;
2227
2230
  }
@@ -2231,21 +2234,21 @@ class Re {
2231
2234
  get() {
2232
2235
  return __async(this, null, function* () {
2233
2236
  const e2 = yield this._realtimeClient.getUser(this.brandedId);
2234
- return Es("Get user " + this.id, e2);
2237
+ return Xn("Get user " + this.id, e2);
2235
2238
  });
2236
2239
  }
2237
2240
  set(e2) {
2238
2241
  return __async(this, null, function* () {
2239
2242
  null === e2.role && (e2.role = "default");
2240
2243
  const t2 = "string" == typeof e2.email ? [e2.email] : e2.email, s2 = "string" == typeof e2.phone ? [e2.phone] : e2.phone, n2 = yield this._realtimeClient.call({ method: "PUT", path: ["users", this.brandedId], data: __spreadProps(__spreadValues({}, e2), { email: t2, phone: s2 }) });
2241
- h("Set user " + this.id, n2);
2244
+ d("Set user " + this.id, n2);
2242
2245
  });
2243
2246
  }
2244
2247
  createIfNotExists(e2) {
2245
2248
  return __async(this, null, function* () {
2246
2249
  void 0 === e2.role && (e2.role = "default");
2247
2250
  const t2 = "string" == typeof e2.email ? [e2.email] : e2.email, s2 = "string" == typeof e2.phone ? [e2.phone] : e2.phone, n2 = yield this._realtimeClient.call({ method: "POST", path: ["users", this.brandedId], data: __spreadProps(__spreadValues({}, e2), { email: t2, phone: s2 }) });
2248
- (n2.ok || "server" !== n2.where || 409 != n2.value.status) && h(`Create user ${this.id} if not exists`, n2);
2251
+ (n2.ok || "server" !== n2.where || 409 != n2.value.status) && d(`Create user ${this.id} if not exists`, n2);
2249
2252
  });
2250
2253
  }
2251
2254
  subscribe(e2) {
@@ -2255,7 +2258,7 @@ class Re {
2255
2258
  return this._realtimeClient.subscribe(["users", this.brandedId, "online"], e2);
2256
2259
  }
2257
2260
  }
2258
- class Ne {
2261
+ class Pe {
2259
2262
  constructor(e2, t2, s2) {
2260
2263
  this.userId = e2, this.conversationId = t2, this._realtimeClient = s2;
2261
2264
  }
@@ -2270,44 +2273,44 @@ class Ne {
2270
2273
  const e2 = yield this._realtimeClient.call({ method: "GET", path: ["me", "conversations", this.brandedConversationId, "participants", this.brandedUserId], data: {} }), t2 = yield this._realtimeClient.call({ method: "GET", path: ["users", this.brandedUserId], data: { includePrivateFields: false } }), [s2, n2] = yield Promise.all([e2, t2]);
2271
2274
  if (!s2.ok && "server" === s2.where && 404 === s2.value.status) return null;
2272
2275
  if (!n2.ok && "server" === n2.where && 404 === n2.value.status) return null;
2273
- return ue(h(`Get participant ${this.userId} in conversation ${this.conversationId}`, s2), oe(h(`Get user ${this.userId}`, n2)));
2276
+ return le(d(`Get participant ${this.userId} in conversation ${this.conversationId}`, s2), ce(d(`Get user ${this.userId}`, n2)));
2274
2277
  });
2275
2278
  }
2276
2279
  set() {
2277
2280
  return __async(this, arguments, function* (e2 = {}) {
2278
2281
  const t2 = yield this._realtimeClient.call({ method: "PUT", path: ["conversations", this.brandedConversationId, "participants", this.brandedUserId], data: e2 });
2279
- h(`Set participant ${this.userId} in conversation ${this.conversationId}`, t2);
2282
+ d(`Set participant ${this.userId} in conversation ${this.conversationId}`, t2);
2280
2283
  });
2281
2284
  }
2282
2285
  edit() {
2283
2286
  return __async(this, arguments, function* (e2 = {}) {
2284
2287
  const t2 = yield this._realtimeClient.call({ method: "PATCH", path: ["conversations", this.brandedConversationId, "participants", this.brandedUserId], data: e2 });
2285
- h(`Edit participant ${this.userId} in conversation ${this.conversationId}`, t2);
2288
+ d(`Edit participant ${this.userId} in conversation ${this.conversationId}`, t2);
2286
2289
  });
2287
2290
  }
2288
2291
  createIfNotExists() {
2289
2292
  return __async(this, arguments, function* (e2 = {}) {
2290
2293
  const t2 = yield this._realtimeClient.call({ method: "POST", path: ["conversations", this.brandedConversationId, "participants", this.brandedUserId], data: e2 });
2291
- (t2.ok || "server" !== t2.where || 409 !== t2.value.status) && h(`Add participant ${this.userId} to conversation ${this.conversationId}`, t2);
2294
+ (t2.ok || "server" !== t2.where || 409 !== t2.value.status) && d(`Add participant ${this.userId} to conversation ${this.conversationId}`, t2);
2292
2295
  });
2293
2296
  }
2294
2297
  delete() {
2295
2298
  return __async(this, null, function* () {
2296
2299
  const e2 = yield this._realtimeClient.call({ method: "DELETE", path: ["conversations", this.brandedConversationId, "participants", this.brandedUserId], data: {} });
2297
- (e2.ok || "server" !== e2.where || 404 !== e2.value.status) && h(`Remove participant ${this.userId} from conversation ${this.conversationId}`, e2);
2300
+ (e2.ok || "server" !== e2.where || 404 !== e2.value.status) && d(`Remove participant ${this.userId} from conversation ${this.conversationId}`, e2);
2298
2301
  });
2299
2302
  }
2300
2303
  }
2301
- function _e(e2) {
2304
+ function $e(e2) {
2302
2305
  const t2 = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
2303
2306
  let s2 = 0;
2304
- const n2 = [], r2 = e2 === s2;
2307
+ const n2 = [], a2 = e2 === s2;
2305
2308
  s2 = e2;
2306
- const a2 = new Array(8);
2307
- for (let s3 = 7; s3 >= 0; s3--) a2[s3] = t2.charAt(e2 % 64), e2 = Math.floor(e2 / 64);
2309
+ const r2 = new Array(8);
2310
+ for (let s3 = 7; s3 >= 0; s3--) r2[s3] = t2.charAt(e2 % 64), e2 = Math.floor(e2 / 64);
2308
2311
  if (0 !== e2) throw new Error("We should have converted the entire timestamp.");
2309
- let i2 = a2.join("");
2310
- if (r2) {
2312
+ let i2 = r2.join("");
2313
+ if (a2) {
2311
2314
  let e3;
2312
2315
  for (e3 = 11; e3 >= 0 && 63 === n2[e3]; e3--) n2[e3] = 0;
2313
2316
  n2[e3]++;
@@ -2316,9 +2319,9 @@ function _e(e2) {
2316
2319
  if (20 != i2.length) throw new Error("Length should be 20.");
2317
2320
  return i2;
2318
2321
  }
2319
- const Oe = (e2, t2, s2 = void 0) => function(e3, t3) {
2322
+ const Ue = (e2, t2, s2 = void 0) => (function(e3, t3) {
2320
2323
  return e3.reduce((e4, s3, n2) => e4.concat(t3(s3, n2)), []);
2321
- }(e2, (e3) => {
2324
+ })(e2, (e3) => {
2322
2325
  if ("string" == typeof e3) return t2(e3, s2);
2323
2326
  switch (e3.type) {
2324
2327
  case "bold":
@@ -2329,14 +2332,14 @@ const Oe = (e2, t2, s2 = void 0) => function(e3, t3) {
2329
2332
  case "bulletList":
2330
2333
  case "bulletpoint":
2331
2334
  case "bulletPoint":
2332
- return [{ type: e3.type, children: Oe(e3.children, t2, e3.type) }];
2335
+ return [{ type: e3.type, children: Ue(e3.children, t2, e3.type) }];
2333
2336
  case "link":
2334
- return [{ type: e3.type, url: e3.url, children: Oe(e3.children, t2, e3.type) }];
2337
+ return [{ type: e3.type, url: e3.url, children: Ue(e3.children, t2, e3.type) }];
2335
2338
  case "actionlink":
2336
2339
  case "actionLink":
2337
2340
  case "actionbutton":
2338
2341
  case "actionButton":
2339
- return [{ type: e3.type, action: e3.action, params: e3.params, children: Oe(e3.children, t2, e3.type) }];
2342
+ return [{ type: e3.type, action: e3.action, params: e3.params, children: Ue(e3.children, t2, e3.type) }];
2340
2343
  case "mention":
2341
2344
  case "autolink":
2342
2345
  case "autoLink":
@@ -2351,43 +2354,43 @@ const Oe = (e2, t2, s2 = void 0) => function(e3, t3) {
2351
2354
  return [e3];
2352
2355
  }
2353
2356
  });
2354
- function Pe(e2, t2) {
2357
+ function je(e2, t2) {
2355
2358
  return (s2) => {
2356
2359
  const n2 = s2;
2357
- let r2 = 0;
2358
- const a2 = [];
2360
+ let a2 = 0;
2361
+ const r2 = [];
2359
2362
  for (const i2 of Z(s2, e2)) {
2360
- i2.index - r2 > 0 && a2.push(n2.substring(r2, i2.index));
2363
+ i2.index - a2 > 0 && r2.push(n2.substring(a2, i2.index));
2361
2364
  const e3 = t2(i2);
2362
- Array.isArray(e3) ? a2.push(...e3) : a2.push(e3), r2 = i2.index + i2[0].length;
2365
+ Array.isArray(e3) ? r2.push(...e3) : r2.push(e3), a2 = i2.index + i2[0].length;
2363
2366
  }
2364
- return r2 < s2.length && a2.push(s2.substring(r2)), a2;
2367
+ return a2 < s2.length && r2.push(s2.substring(a2)), r2;
2365
2368
  };
2366
2369
  }
2367
- const $e = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
2368
- var je = ((e2) => (e2[e2.italic = 1] = "italic", e2[e2.strikethrough = 2] = "strikethrough", e2[e2.bold = 4] = "bold", e2))(je || {});
2369
- const Ue = [0, 1, 2, 3, 4, 5, 6].map((e2) => {
2370
+ const We = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
2371
+ var qe = ((e2) => (e2[e2.italic = 1] = "italic", e2[e2.strikethrough = 2] = "strikethrough", e2[e2.bold = 4] = "bold", e2))(qe || {});
2372
+ const Be = [0, 1, 2, 3, 4, 5, 6].map((e2) => {
2370
2373
  const t2 = [];
2371
2374
  return 1 & e2 || t2.push(/_([^\s_].*?[^\s_])_|_([^\s_])_/), 2 & e2 || t2.push(/~([^\s~].*?[^\s~])~|~([^\s~])~/), 4 & e2 || t2.push(/\*([^\s*].*?[^\s*])\*|\*([^\s*])\*/), new RegExp(t2.map((e3) => e3.source).join("|"), "g");
2372
- }), We = { _: 1, "*": 4, "~": 2 };
2373
- function qe(e2) {
2374
- return He(e2, 0);
2375
+ }), Le = { _: 1, "*": 4, "~": 2 };
2376
+ function Ge(e2) {
2377
+ return Fe(e2, 0);
2375
2378
  }
2376
- function He(e2, t2 = 0) {
2377
- const s2 = Ue[t2], n2 = s2 ? function(e3) {
2378
- const t3 = Le.getOrCompute(e3, () => new RegExp(`(?:^|[\\s${$e}])(?:${e3.source})(?=[\\s${$e}]|$)`, "g")), s3 = Pe(t3, (e4) => {
2379
+ function Fe(e2, t2 = 0) {
2380
+ const s2 = Be[t2], n2 = s2 ? (function(e3) {
2381
+ const t3 = He.getOrCompute(e3, () => new RegExp(`(?:^|[\\s${We}])(?:${e3.source})(?=[\\s${We}]|$)`, "g")), s3 = je(t3, (e4) => {
2379
2382
  const t4 = e4[0][1], s4 = e4[1] || e4[2] || e4[3] || e4[4] || e4[5] || e4[6];
2380
- return [" ", { type: je[We[t4]], children: [s4] }];
2383
+ return [" ", { type: qe[Le[t4]], children: [s4] }];
2381
2384
  });
2382
2385
  return (e4) => {
2383
2386
  const [t4, ...n3] = s3(" " + e4);
2384
2387
  return t4.length > 1 && n3.unshift(t4.substring(1)), n3;
2385
2388
  };
2386
- }(s2) : () => [e2];
2387
- return Oe(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? He(e3, t2 | je[s3]) : [e3]);
2389
+ })(s2) : () => [e2];
2390
+ return Ue(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? Fe(e3, t2 | qe[s3]) : [e3]);
2388
2391
  }
2389
- const Le = function() {
2390
- const e2 = function() {
2392
+ const He = (function() {
2393
+ const e2 = (function() {
2391
2394
  try {
2392
2395
  return /* @__PURE__ */ new WeakMap();
2393
2396
  } catch (e3) {
@@ -2395,32 +2398,52 @@ const Le = function() {
2395
2398
  }, set: () => t2 };
2396
2399
  return t2;
2397
2400
  }
2398
- }();
2401
+ })();
2399
2402
  return { getOrCompute(t2, s2) {
2400
2403
  if (e2.has(t2)) return e2.get(t2);
2401
2404
  const n2 = s2();
2402
2405
  return e2.set(t2, n2), n2;
2403
2406
  } };
2404
- }();
2405
- function Ge(e2, t2) {
2406
- if (Array.prototype.indexOf) return e2.indexOf(t2);
2407
- for (var s2 = 0, n2 = e2.length; s2 < n2; s2++) if (e2[s2] === t2) return s2;
2408
- return -1;
2409
- }
2407
+ })();
2408
+ var Je = function(e2, t2) {
2409
+ return Je = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e3, t3) {
2410
+ e3.__proto__ = t3;
2411
+ } || function(e3, t3) {
2412
+ for (var s2 in t3) Object.prototype.hasOwnProperty.call(t3, s2) && (e3[s2] = t3[s2]);
2413
+ }, Je(e2, t2);
2414
+ };
2410
2415
  function ze(e2, t2) {
2416
+ if ("function" != typeof t2 && null !== t2) throw new TypeError("Class extends value " + String(t2) + " is not a constructor or null");
2417
+ function s2() {
2418
+ this.constructor = e2;
2419
+ }
2420
+ Je(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
2421
+ }
2422
+ var Ye = function() {
2423
+ return Ye = Object.assign || function(e2) {
2424
+ for (var t2, s2 = 1, n2 = arguments.length; s2 < n2; s2++) for (var a2 in t2 = arguments[s2]) Object.prototype.hasOwnProperty.call(t2, a2) && (e2[a2] = t2[a2]);
2425
+ return e2;
2426
+ }, Ye.apply(this, arguments);
2427
+ };
2428
+ "function" == typeof SuppressedError && SuppressedError;
2429
+ var Qe = Object.prototype.hasOwnProperty;
2430
+ function Ve(e2) {
2431
+ return "boolean" == typeof e2;
2432
+ }
2433
+ function Ke(e2, t2) {
2411
2434
  for (var s2 = e2.length - 1; s2 >= 0; s2--) true === t2(e2[s2]) && e2.splice(s2, 1);
2412
2435
  }
2413
- function Je(e2) {
2414
- throw new Error("Unhandled case for value: '" + e2 + "'");
2436
+ function Ze(e2) {
2437
+ throw new Error("Unhandled case for value: '".concat(e2, "'"));
2415
2438
  }
2416
- var Ye = function() {
2439
+ var Xe = /\s+/, et = (function() {
2417
2440
  function e2(e3) {
2418
- void 0 === e3 && (e3 = {}), this.tagName = "", this.attrs = {}, this.innerHTML = "", this.whitespaceRegex = /\s+/, this.tagName = e3.tagName || "", this.attrs = e3.attrs || {}, this.innerHTML = e3.innerHtml || e3.innerHTML || "";
2441
+ void 0 === e3 && (e3 = {}), this.tagName = "", this.attrs = {}, this.innerHTML = "", this.tagName = e3.tagName || "", this.attrs = e3.attrs || {}, this.innerHTML = e3.innerHtml || e3.innerHTML || "";
2419
2442
  }
2420
2443
  return e2.prototype.setTagName = function(e3) {
2421
2444
  return this.tagName = e3, this;
2422
2445
  }, e2.prototype.getTagName = function() {
2423
- return this.tagName || "";
2446
+ return this.tagName;
2424
2447
  }, e2.prototype.setAttr = function(e3, t2) {
2425
2448
  return this.getAttrs()[e3] = t2, this;
2426
2449
  }, e2.prototype.getAttr = function(e3) {
@@ -2428,18 +2451,18 @@ var Ye = function() {
2428
2451
  }, e2.prototype.setAttrs = function(e3) {
2429
2452
  return Object.assign(this.getAttrs(), e3), this;
2430
2453
  }, e2.prototype.getAttrs = function() {
2431
- return this.attrs || (this.attrs = {});
2454
+ return this.attrs;
2432
2455
  }, e2.prototype.setClass = function(e3) {
2433
2456
  return this.setAttr("class", e3);
2434
2457
  }, e2.prototype.addClass = function(e3) {
2435
- for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], a2 = e3.split(n2); t2 = a2.shift(); ) -1 === Ge(r2, t2) && r2.push(t2);
2436
- return this.getAttrs().class = r2.join(" "), this;
2458
+ for (var t2, s2 = this.getClass(), n2 = s2 ? s2.split(Xe) : [], a2 = e3.split(Xe); t2 = a2.shift(); ) -1 === n2.indexOf(t2) && n2.push(t2);
2459
+ return this.getAttrs().class = n2.join(" "), this;
2437
2460
  }, e2.prototype.removeClass = function(e3) {
2438
- for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], a2 = e3.split(n2); r2.length && (t2 = a2.shift()); ) {
2439
- var i2 = Ge(r2, t2);
2440
- -1 !== i2 && r2.splice(i2, 1);
2461
+ for (var t2, s2 = this.getClass(), n2 = s2 ? s2.split(Xe) : [], a2 = e3.split(Xe); n2.length && (t2 = a2.shift()); ) {
2462
+ var r2 = n2.indexOf(t2);
2463
+ -1 !== r2 && n2.splice(r2, 1);
2441
2464
  }
2442
- return this.getAttrs().class = r2.join(" "), this;
2465
+ return this.getAttrs().class = n2.join(" "), this;
2443
2466
  }, e2.prototype.getClass = function() {
2444
2467
  return this.getAttrs().class || "";
2445
2468
  }, e2.prototype.hasClass = function(e3) {
@@ -2456,25 +2479,32 @@ var Ye = function() {
2456
2479
  var e3 = this.getTagName(), t2 = this.buildAttrsStr();
2457
2480
  return ["<", e3, t2 = t2 ? " " + t2 : "", ">", this.getInnerHtml(), "</", e3, ">"].join("");
2458
2481
  }, e2.prototype.buildAttrsStr = function() {
2459
- if (!this.attrs) return "";
2460
2482
  var e3 = this.getAttrs(), t2 = [];
2461
- for (var s2 in e3) e3.hasOwnProperty(s2) && t2.push(s2 + '="' + e3[s2] + '"');
2483
+ for (var s2 in e3) Qe.call(e3, s2) && t2.push(s2 + '="' + e3[s2] + '"');
2462
2484
  return t2.join(" ");
2463
2485
  }, e2;
2464
- }();
2465
- var Qe = function() {
2486
+ })();
2487
+ function tt(e2) {
2488
+ var t2 = "";
2489
+ return e2.scheme && e2.host && (t2 += e2.scheme + "://"), e2.host && (t2 += e2.host), e2.path && (t2 += "/" + e2.path), e2.query && (t2 += "?" + e2.query), e2.fragment && (t2 += "#" + e2.fragment), t2;
2490
+ }
2491
+ function st(e2, t2, s2) {
2492
+ var n2 = t2 / 2, a2 = Math.ceil(n2), r2 = -1 * Math.floor(n2), i2 = "";
2493
+ return r2 < 0 && (i2 = e2.substr(r2)), e2.substr(0, a2) + s2 + i2;
2494
+ }
2495
+ var nt = (function() {
2466
2496
  function e2(e3) {
2467
2497
  void 0 === e3 && (e3 = {}), this.newWindow = false, this.truncate = {}, this.className = "", this.newWindow = e3.newWindow || false, this.truncate = e3.truncate || {}, this.className = e3.className || "";
2468
2498
  }
2469
2499
  return e2.prototype.build = function(e3) {
2470
- return new Ye({ tagName: "a", attrs: this.createAttrs(e3), innerHtml: this.processAnchorText(e3.getAnchorText()) });
2500
+ return new et({ tagName: "a", attrs: this.createAttrs(e3), innerHtml: this.processAnchorText(e3.getAnchorText()) });
2471
2501
  }, e2.prototype.createAttrs = function(e3) {
2472
2502
  var t2 = { href: e3.getAnchorHref() }, s2 = this.createCssClass(e3);
2473
- return s2 && (t2.class = s2), this.newWindow && (t2.target = "_blank", t2.rel = "noopener noreferrer"), this.truncate && this.truncate.length && this.truncate.length < e3.getAnchorText().length && (t2.title = e3.getAnchorHref()), t2;
2503
+ return s2 && (t2.class = s2), this.newWindow && (t2.target = "_blank", t2.rel = "noopener noreferrer"), this.truncate.length && this.truncate.length < e3.getAnchorText().length && (t2.title = e3.getAnchorHref()), t2;
2474
2504
  }, e2.prototype.createCssClass = function(e3) {
2475
2505
  var t2 = this.className;
2476
2506
  if (t2) {
2477
- for (var s2 = [t2], n2 = e3.getCssClassSuffixes(), r2 = 0, a2 = n2.length; r2 < a2; r2++) s2.push(t2 + "-" + n2[r2]);
2507
+ for (var s2 = [t2], n2 = e3.getCssClassSuffixes(), a2 = 0, r2 = n2.length; a2 < r2; a2++) s2.push(t2 + "-" + n2[a2]);
2478
2508
  return s2.join(" ");
2479
2509
  }
2480
2510
  return "";
@@ -2482,64 +2512,56 @@ var Qe = function() {
2482
2512
  return e3 = this.doTruncate(e3);
2483
2513
  }, e2.prototype.doTruncate = function(e3) {
2484
2514
  var t2 = this.truncate;
2485
- if (!t2 || !t2.length) return e3;
2515
+ if (!t2.length) return e3;
2486
2516
  var s2 = t2.length, n2 = t2.location;
2487
- return "smart" === n2 ? function(e4, t3, s3) {
2488
- var n3, r2;
2489
- null == s3 ? (s3 = "&hellip;", r2 = 3, n3 = 8) : (r2 = s3.length, n3 = s3.length);
2490
- var a2 = function(e5) {
2491
- var t4 = "";
2492
- return e5.scheme && e5.host && (t4 += e5.scheme + "://"), e5.host && (t4 += e5.host), e5.path && (t4 += "/" + e5.path), e5.query && (t4 += "?" + e5.query), e5.fragment && (t4 += "#" + e5.fragment), t4;
2493
- }, i2 = function(e5, t4) {
2494
- var n4 = t4 / 2, r3 = Math.ceil(n4), a3 = -1 * Math.floor(n4), i3 = "";
2495
- return a3 < 0 && (i3 = e5.substr(a3)), e5.substr(0, r3) + s3 + i3;
2496
- };
2497
- if (e4.length <= t3) return e4;
2498
- var o2 = t3 - r2, u2 = function(e5) {
2517
+ return "smart" === n2 ? (function(e4, t3, s3) {
2518
+ var n3, a2;
2519
+ if (null == s3 ? (s3 = "&hellip;", a2 = 3, n3 = 8) : (a2 = s3.length, n3 = s3.length), e4.length <= t3) return e4;
2520
+ var r2 = t3 - a2, i2 = (function(e5) {
2499
2521
  var t4 = {}, s4 = e5, n4 = s4.match(/^([a-z]+):\/\//i);
2500
- return n4 && (t4.scheme = n4[1], s4 = s4.substr(n4[0].length)), (n4 = s4.match(/^(.*?)(?=(\?|#|\/|$))/i)) && (t4.host = n4[1], s4 = s4.substr(n4[0].length)), (n4 = s4.match(/^\/(.*?)(?=(\?|#|$))/i)) && (t4.path = n4[1], s4 = s4.substr(n4[0].length)), (n4 = s4.match(/^\?(.*?)(?=(#|$))/i)) && (t4.query = n4[1], s4 = s4.substr(n4[0].length)), (n4 = s4.match(/^#(.*?)$/i)) && (t4.fragment = n4[1]), t4;
2501
- }(e4);
2502
- if (u2.query) {
2503
- var c2 = u2.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);
2504
- c2 && (u2.query = u2.query.substr(0, c2[1].length), e4 = a2(u2));
2522
+ return n4 && (t4.scheme = n4[1], s4 = s4.slice(n4[0].length)), (n4 = s4.match(/^(.*?)(?=(\?|#|\/|$))/i)) && (t4.host = n4[1], s4 = s4.slice(n4[0].length)), (n4 = s4.match(/^\/(.*?)(?=(\?|#|$))/i)) && (t4.path = n4[1], s4 = s4.slice(n4[0].length)), (n4 = s4.match(/^\?(.*?)(?=(#|$))/i)) && (t4.query = n4[1], s4 = s4.slice(n4[0].length)), (n4 = s4.match(/^#(.*?)$/i)) && (t4.fragment = n4[1]), t4;
2523
+ })(e4);
2524
+ if (i2.query) {
2525
+ var o2 = i2.query.match(/^(.*?)(?=(\?|#))(.*?)$/i);
2526
+ o2 && (i2.query = i2.query.substr(0, o2[1].length), e4 = tt(i2));
2505
2527
  }
2506
2528
  if (e4.length <= t3) return e4;
2507
- if (u2.host && (u2.host = u2.host.replace(/^www\./, ""), e4 = a2(u2)), e4.length <= t3) return e4;
2529
+ if (i2.host && (i2.host = i2.host.replace(/^www\./, ""), e4 = tt(i2)), e4.length <= t3) return e4;
2530
+ var c2 = "";
2531
+ if (i2.host && (c2 += i2.host), c2.length >= r2) return i2.host.length === t3 ? (i2.host.substr(0, t3 - a2) + s3).substr(0, r2 + n3) : st(c2, r2, s3).substr(0, r2 + n3);
2508
2532
  var l2 = "";
2509
- if (u2.host && (l2 += u2.host), l2.length >= o2) return u2.host.length == t3 ? (u2.host.substr(0, t3 - r2) + s3).substr(0, o2 + n3) : i2(l2, o2).substr(0, o2 + n3);
2510
- var h2 = "";
2511
- if (u2.path && (h2 += "/" + u2.path), u2.query && (h2 += "?" + u2.query), h2) {
2512
- if ((l2 + h2).length >= o2) return (l2 + h2).length == t3 ? (l2 + h2).substr(0, t3) : (l2 + i2(h2, o2 - l2.length)).substr(0, o2 + n3);
2513
- l2 += h2;
2533
+ if (i2.path && (l2 += "/" + i2.path), i2.query && (l2 += "?" + i2.query), l2) {
2534
+ if ((c2 + l2).length >= r2) return (c2 + l2).length == t3 ? (c2 + l2).substr(0, t3) : (c2 + st(l2, r2 - c2.length, s3)).substr(0, r2 + n3);
2535
+ c2 += l2;
2514
2536
  }
2515
- if (u2.fragment) {
2516
- var d2 = "#" + u2.fragment;
2517
- if ((l2 + d2).length >= o2) return (l2 + d2).length == t3 ? (l2 + d2).substr(0, t3) : (l2 + i2(d2, o2 - l2.length)).substr(0, o2 + n3);
2518
- l2 += d2;
2537
+ if (i2.fragment) {
2538
+ var h2 = "#" + i2.fragment;
2539
+ if ((c2 + h2).length >= r2) return (c2 + h2).length == t3 ? (c2 + h2).substr(0, t3) : (c2 + st(h2, r2 - c2.length, s3)).substr(0, r2 + n3);
2540
+ c2 += h2;
2519
2541
  }
2520
- if (u2.scheme && u2.host) {
2521
- var p2 = u2.scheme + "://";
2522
- if ((l2 + p2).length < o2) return (p2 + l2).substr(0, t3);
2542
+ if (i2.scheme && i2.host) {
2543
+ var u2 = i2.scheme + "://";
2544
+ if ((c2 + u2).length < r2) return (u2 + c2).substr(0, t3);
2523
2545
  }
2524
- if (l2.length <= t3) return l2;
2525
- var f2 = "";
2526
- return o2 > 0 && (f2 = l2.substr(-1 * Math.floor(o2 / 2))), (l2.substr(0, Math.ceil(o2 / 2)) + s3 + f2).substr(0, o2 + n3);
2527
- }(e3, s2) : "middle" === n2 ? function(e4, t3, s3) {
2546
+ if (c2.length <= t3) return c2;
2547
+ var d2 = "";
2548
+ return r2 > 0 && (d2 = c2.substr(-1 * Math.floor(r2 / 2))), (c2.substr(0, Math.ceil(r2 / 2)) + s3 + d2).substr(0, r2 + n3);
2549
+ })(e3, s2) : "middle" === n2 ? (function(e4, t3, s3) {
2528
2550
  if (e4.length <= t3) return e4;
2529
- var n3, r2;
2530
- null == s3 ? (s3 = "&hellip;", n3 = 8, r2 = 3) : (n3 = s3.length, r2 = s3.length);
2531
- var a2 = t3 - r2, i2 = "";
2532
- return a2 > 0 && (i2 = e4.substr(-1 * Math.floor(a2 / 2))), (e4.substr(0, Math.ceil(a2 / 2)) + s3 + i2).substr(0, a2 + n3);
2533
- }(e3, s2) : function(e4, t3, s3) {
2534
- return function(e5, t4, s4) {
2551
+ var n3, a2;
2552
+ null == s3 ? (s3 = "&hellip;", n3 = 8, a2 = 3) : (n3 = s3.length, a2 = s3.length);
2553
+ var r2 = t3 - a2, i2 = "";
2554
+ return r2 > 0 && (i2 = e4.substr(-1 * Math.floor(r2 / 2))), (e4.substr(0, Math.ceil(r2 / 2)) + s3 + i2).substr(0, r2 + n3);
2555
+ })(e3, s2) : (function(e4, t3, s3) {
2556
+ return (function(e5, t4, s4) {
2535
2557
  var n3;
2536
2558
  return e5.length > t4 && (null == s4 ? (s4 = "&hellip;", n3 = 3) : n3 = s4.length, e5 = e5.substring(0, t4 - n3) + s4), e5;
2537
- }(e4, t3, s3);
2538
- }(e3, s2);
2559
+ })(e4, t3, s3);
2560
+ })(e3, s2);
2539
2561
  }, e2;
2540
- }(), Ve = function() {
2562
+ })(), at = (function() {
2541
2563
  function e2(e3) {
2542
- this.__jsduckDummyDocProp = null, this.matchedText = "", this.offset = 0, this.tagBuilder = e3.tagBuilder, this.matchedText = e3.matchedText, this.offset = e3.offset;
2564
+ this._ = null, this.matchedText = "", this.offset = 0, this.tagBuilder = e3.tagBuilder, this.matchedText = e3.matchedText, this.offset = e3.offset;
2543
2565
  }
2544
2566
  return e2.prototype.getMatchedText = function() {
2545
2567
  return this.matchedText;
@@ -2548,34 +2570,98 @@ var Qe = function() {
2548
2570
  }, e2.prototype.getOffset = function() {
2549
2571
  return this.offset;
2550
2572
  }, e2.prototype.getCssClassSuffixes = function() {
2551
- return [this.getType()];
2573
+ return [this.type];
2552
2574
  }, e2.prototype.buildTag = function() {
2553
2575
  return this.tagBuilder.build(this);
2554
2576
  }, e2;
2555
- }(), Ze = function(e2, t2) {
2556
- return Ze = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e3, t3) {
2557
- e3.__proto__ = t3;
2558
- } || function(e3, t3) {
2559
- for (var s2 in t3) t3.hasOwnProperty(s2) && (e3[s2] = t3[s2]);
2560
- }, Ze(e2, t2);
2561
- };
2562
- function Ke(e2, t2) {
2563
- function s2() {
2564
- this.constructor = e2;
2577
+ })();
2578
+ function rt(e2) {
2579
+ return e2 >= 65 && e2 <= 90 || e2 >= 97 && e2 <= 122;
2580
+ }
2581
+ function it(e2) {
2582
+ return e2 >= 48 && e2 <= 57;
2583
+ }
2584
+ function ot(e2) {
2585
+ return 34 == e2 || 39 == e2;
2586
+ }
2587
+ function ct(e2) {
2588
+ return e2 < 8232 ? e2 < 160 ? e2 >= 9 && e2 <= 13 || 32 == e2 : e2 < 5760 ? 160 == e2 : 5760 == e2 || e2 >= 8192 && e2 <= 8202 : e2 < 8287 ? e2 >= 8232 && e2 <= 8233 || 8239 == e2 : e2 < 12288 ? 8287 == e2 : 12288 == e2 || 65279 == e2;
2589
+ }
2590
+ function lt(e2) {
2591
+ return e2 < 4800 ? e2 < 2949 ? e2 < 2451 ? e2 < 1425 ? e2 < 768 ? e2 < 192 ? e2 < 169 ? e2 < 65 ? e2 >= 48 && e2 <= 57 : e2 >= 65 && e2 <= 90 || e2 >= 97 && e2 <= 122 : e2 < 181 ? e2 >= 169 && e2 <= 170 || 174 == e2 : 181 == e2 || 186 == e2 : e2 < 710 ? e2 < 216 ? e2 >= 192 && e2 <= 214 : e2 >= 216 && e2 <= 246 || e2 >= 248 && e2 <= 705 : e2 < 748 ? e2 >= 710 && e2 <= 721 || e2 >= 736 && e2 <= 740 : 748 == e2 || 750 == e2 : e2 < 910 ? e2 < 895 ? e2 < 886 ? e2 >= 768 && e2 <= 884 : e2 >= 886 && e2 <= 887 || e2 >= 890 && e2 <= 893 : e2 < 904 ? 895 == e2 || 902 == e2 : e2 >= 904 && e2 <= 906 || 908 == e2 : e2 < 1155 ? e2 < 931 ? e2 >= 910 && e2 <= 929 : e2 >= 931 && e2 <= 1013 || e2 >= 1015 && e2 <= 1153 : e2 < 1369 ? e2 >= 1155 && e2 <= 1327 || e2 >= 1329 && e2 <= 1366 : 1369 == e2 || e2 >= 1377 && e2 <= 1415 : e2 < 1808 ? e2 < 1552 ? e2 < 1476 ? e2 < 1471 ? e2 >= 1425 && e2 <= 1469 : 1471 == e2 || e2 >= 1473 && e2 <= 1474 : e2 < 1488 ? e2 >= 1476 && e2 <= 1477 || 1479 == e2 : e2 >= 1488 && e2 <= 1514 || e2 >= 1520 && e2 <= 1522 : e2 < 1749 ? e2 < 1568 ? e2 >= 1552 && e2 <= 1562 : e2 >= 1568 && e2 <= 1641 || e2 >= 1646 && e2 <= 1747 : e2 < 1770 ? e2 >= 1749 && e2 <= 1756 || e2 >= 1759 && e2 <= 1768 : e2 >= 1770 && e2 <= 1788 || 1791 == e2 : e2 < 2230 ? e2 < 2042 ? e2 < 1869 ? e2 >= 1808 && e2 <= 1866 : e2 >= 1869 && e2 <= 1969 || e2 >= 1984 && e2 <= 2037 : e2 < 2112 ? 2042 == e2 || e2 >= 2048 && e2 <= 2093 : e2 >= 2112 && e2 <= 2139 || e2 >= 2208 && e2 <= 2228 : e2 < 2406 ? e2 < 2260 ? e2 >= 2230 && e2 <= 2237 : e2 >= 2260 && e2 <= 2273 || e2 >= 2275 && e2 <= 2403 : e2 < 2437 ? e2 >= 2406 && e2 <= 2415 || e2 >= 2417 && e2 <= 2435 : e2 >= 2437 && e2 <= 2444 || e2 >= 2447 && e2 <= 2448 : e2 < 2693 ? e2 < 2579 ? e2 < 2519 ? e2 < 2486 ? e2 < 2474 ? e2 >= 2451 && e2 <= 2472 : e2 >= 2474 && e2 <= 2480 || 2482 == e2 : e2 < 2503 ? e2 >= 2486 && e2 <= 2489 || e2 >= 2492 && e2 <= 2500 : e2 >= 2503 && e2 <= 2504 || e2 >= 2507 && e2 <= 2510 : e2 < 2534 ? e2 < 2524 ? 2519 == e2 : e2 >= 2524 && e2 <= 2525 || e2 >= 2527 && e2 <= 2531 : e2 < 2565 ? e2 >= 2534 && e2 <= 2545 || e2 >= 2561 && e2 <= 2563 : e2 >= 2565 && e2 <= 2570 || e2 >= 2575 && e2 <= 2576 : e2 < 2631 ? e2 < 2613 ? e2 < 2602 ? e2 >= 2579 && e2 <= 2600 : e2 >= 2602 && e2 <= 2608 || e2 >= 2610 && e2 <= 2611 : e2 < 2620 ? e2 >= 2613 && e2 <= 2614 || e2 >= 2616 && e2 <= 2617 : 2620 == e2 || e2 >= 2622 && e2 <= 2626 : e2 < 2649 ? e2 < 2635 ? e2 >= 2631 && e2 <= 2632 : e2 >= 2635 && e2 <= 2637 || 2641 == e2 : e2 < 2662 ? e2 >= 2649 && e2 <= 2652 || 2654 == e2 : e2 >= 2662 && e2 <= 2677 || e2 >= 2689 && e2 <= 2691 : e2 < 2821 ? e2 < 2759 ? e2 < 2730 ? e2 < 2703 ? e2 >= 2693 && e2 <= 2701 : e2 >= 2703 && e2 <= 2705 || e2 >= 2707 && e2 <= 2728 : e2 < 2741 ? e2 >= 2730 && e2 <= 2736 || e2 >= 2738 && e2 <= 2739 : e2 >= 2741 && e2 <= 2745 || e2 >= 2748 && e2 <= 2757 : e2 < 2784 ? e2 < 2763 ? e2 >= 2759 && e2 <= 2761 : e2 >= 2763 && e2 <= 2765 || 2768 == e2 : e2 < 2809 ? e2 >= 2784 && e2 <= 2787 || e2 >= 2790 && e2 <= 2799 : 2809 == e2 || e2 >= 2817 && e2 <= 2819 : e2 < 2887 ? e2 < 2858 ? e2 < 2831 ? e2 >= 2821 && e2 <= 2828 : e2 >= 2831 && e2 <= 2832 || e2 >= 2835 && e2 <= 2856 : e2 < 2869 ? e2 >= 2858 && e2 <= 2864 || e2 >= 2866 && e2 <= 2867 : e2 >= 2869 && e2 <= 2873 || e2 >= 2876 && e2 <= 2884 : e2 < 2911 ? e2 < 2902 ? e2 >= 2887 && e2 <= 2888 || e2 >= 2891 && e2 <= 2893 : e2 >= 2902 && e2 <= 2903 || e2 >= 2908 && e2 <= 2909 : e2 < 2929 ? e2 >= 2911 && e2 <= 2915 || e2 >= 2918 && e2 <= 2927 : 2929 == e2 || e2 >= 2946 && e2 <= 2947 : e2 < 3517 ? e2 < 3205 ? e2 < 3046 ? e2 < 2984 ? e2 < 2969 ? e2 < 2958 ? e2 >= 2949 && e2 <= 2954 : e2 >= 2958 && e2 <= 2960 || e2 >= 2962 && e2 <= 2965 : e2 < 2974 ? e2 >= 2969 && e2 <= 2970 || 2972 == e2 : e2 >= 2974 && e2 <= 2975 || e2 >= 2979 && e2 <= 2980 : e2 < 3014 ? e2 < 2990 ? e2 >= 2984 && e2 <= 2986 : e2 >= 2990 && e2 <= 3001 || e2 >= 3006 && e2 <= 3010 : e2 < 3024 ? e2 >= 3014 && e2 <= 3016 || e2 >= 3018 && e2 <= 3021 : 3024 == e2 || 3031 == e2 : e2 < 3142 ? e2 < 3086 ? e2 < 3072 ? e2 >= 3046 && e2 <= 3055 : e2 >= 3072 && e2 <= 3075 || e2 >= 3077 && e2 <= 3084 : e2 < 3114 ? e2 >= 3086 && e2 <= 3088 || e2 >= 3090 && e2 <= 3112 : e2 >= 3114 && e2 <= 3129 || e2 >= 3133 && e2 <= 3140 : e2 < 3160 ? e2 < 3146 ? e2 >= 3142 && e2 <= 3144 : e2 >= 3146 && e2 <= 3149 || e2 >= 3157 && e2 <= 3158 : e2 < 3174 ? e2 >= 3160 && e2 <= 3162 || e2 >= 3168 && e2 <= 3171 : e2 >= 3174 && e2 <= 3183 || e2 >= 3200 && e2 <= 3203 : e2 < 3333 ? e2 < 3274 ? e2 < 3242 ? e2 < 3214 ? e2 >= 3205 && e2 <= 3212 : e2 >= 3214 && e2 <= 3216 || e2 >= 3218 && e2 <= 3240 : e2 < 3260 ? e2 >= 3242 && e2 <= 3251 || e2 >= 3253 && e2 <= 3257 : e2 >= 3260 && e2 <= 3268 || e2 >= 3270 && e2 <= 3272 : e2 < 3296 ? e2 < 3285 ? e2 >= 3274 && e2 <= 3277 : e2 >= 3285 && e2 <= 3286 || 3294 == e2 : e2 < 3313 ? e2 >= 3296 && e2 <= 3299 || e2 >= 3302 && e2 <= 3311 : e2 >= 3313 && e2 <= 3314 || e2 >= 3329 && e2 <= 3331 : e2 < 3423 ? e2 < 3389 ? e2 < 3342 ? e2 >= 3333 && e2 <= 3340 : e2 >= 3342 && e2 <= 3344 || e2 >= 3346 && e2 <= 3386 : e2 < 3402 ? e2 >= 3389 && e2 <= 3396 || e2 >= 3398 && e2 <= 3400 : e2 >= 3402 && e2 <= 3406 || e2 >= 3412 && e2 <= 3415 : e2 < 3458 ? e2 < 3430 ? e2 >= 3423 && e2 <= 3427 : e2 >= 3430 && e2 <= 3439 || e2 >= 3450 && e2 <= 3455 : e2 < 3482 ? e2 >= 3458 && e2 <= 3459 || e2 >= 3461 && e2 <= 3478 : e2 >= 3482 && e2 <= 3505 || e2 >= 3507 && e2 <= 3515 : e2 < 3804 ? e2 < 3722 ? e2 < 3570 ? e2 < 3535 ? e2 < 3520 ? 3517 == e2 : e2 >= 3520 && e2 <= 3526 || 3530 == e2 : e2 < 3544 ? e2 >= 3535 && e2 <= 3540 || 3542 == e2 : e2 >= 3544 && e2 <= 3551 || e2 >= 3558 && e2 <= 3567 : e2 < 3664 ? e2 < 3585 ? e2 >= 3570 && e2 <= 3571 : e2 >= 3585 && e2 <= 3642 || e2 >= 3648 && e2 <= 3662 : e2 < 3716 ? e2 >= 3664 && e2 <= 3673 || e2 >= 3713 && e2 <= 3714 : 3716 == e2 || e2 >= 3719 && e2 <= 3720 : e2 < 3754 ? e2 < 3737 ? e2 < 3725 ? 3722 == e2 : 3725 == e2 || e2 >= 3732 && e2 <= 3735 : e2 < 3749 ? e2 >= 3737 && e2 <= 3743 || e2 >= 3745 && e2 <= 3747 : 3749 == e2 || 3751 == e2 : e2 < 3776 ? e2 < 3757 ? e2 >= 3754 && e2 <= 3755 : e2 >= 3757 && e2 <= 3769 || e2 >= 3771 && e2 <= 3773 : e2 < 3784 ? e2 >= 3776 && e2 <= 3780 || 3782 == e2 : e2 >= 3784 && e2 <= 3789 || e2 >= 3792 && e2 <= 3801 : e2 < 4176 ? e2 < 3902 ? e2 < 3872 ? e2 < 3840 ? e2 >= 3804 && e2 <= 3807 : 3840 == e2 || e2 >= 3864 && e2 <= 3865 : e2 < 3895 ? e2 >= 3872 && e2 <= 3881 || 3893 == e2 : 3895 == e2 || 3897 == e2 : e2 < 3974 ? e2 < 3913 ? e2 >= 3902 && e2 <= 3911 : e2 >= 3913 && e2 <= 3948 || e2 >= 3953 && e2 <= 3972 : e2 < 4038 ? e2 >= 3974 && e2 <= 3991 || e2 >= 3993 && e2 <= 4028 : 4038 == e2 || e2 >= 4096 && e2 <= 4169 : e2 < 4688 ? e2 < 4301 ? e2 < 4256 ? e2 >= 4176 && e2 <= 4253 : e2 >= 4256 && e2 <= 4293 || 4295 == e2 : e2 < 4348 ? 4301 == e2 || e2 >= 4304 && e2 <= 4346 : e2 >= 4348 && e2 <= 4680 || e2 >= 4682 && e2 <= 4685 : e2 < 4746 ? e2 < 4698 ? e2 >= 4688 && e2 <= 4694 || 4696 == e2 : e2 >= 4698 && e2 <= 4701 || e2 >= 4704 && e2 <= 4744 : e2 < 4786 ? e2 >= 4746 && e2 <= 4749 || e2 >= 4752 && e2 <= 4784 : e2 >= 4786 && e2 <= 4789 || e2 >= 4792 && e2 <= 4798 : e2 < 11035 ? e2 < 7416 ? e2 < 6176 ? e2 < 5873 ? e2 < 4992 ? e2 < 4824 ? e2 < 4802 ? 4800 == e2 : e2 >= 4802 && e2 <= 4805 || e2 >= 4808 && e2 <= 4822 : e2 < 4888 ? e2 >= 4824 && e2 <= 4880 || e2 >= 4882 && e2 <= 4885 : e2 >= 4888 && e2 <= 4954 || e2 >= 4957 && e2 <= 4959 : e2 < 5121 ? e2 < 5024 ? e2 >= 4992 && e2 <= 5007 : e2 >= 5024 && e2 <= 5109 || e2 >= 5112 && e2 <= 5117 : e2 < 5761 ? e2 >= 5121 && e2 <= 5740 || e2 >= 5743 && e2 <= 5759 : e2 >= 5761 && e2 <= 5786 || e2 >= 5792 && e2 <= 5866 : e2 < 6002 ? e2 < 5920 ? e2 < 5888 ? e2 >= 5873 && e2 <= 5880 : e2 >= 5888 && e2 <= 5900 || e2 >= 5902 && e2 <= 5908 : e2 < 5984 ? e2 >= 5920 && e2 <= 5940 || e2 >= 5952 && e2 <= 5971 : e2 >= 5984 && e2 <= 5996 || e2 >= 5998 && e2 <= 6e3 : e2 < 6108 ? e2 < 6016 ? e2 >= 6002 && e2 <= 6003 : e2 >= 6016 && e2 <= 6099 || 6103 == e2 : e2 < 6155 ? e2 >= 6108 && e2 <= 6109 || e2 >= 6112 && e2 <= 6121 : e2 >= 6155 && e2 <= 6157 || e2 >= 6160 && e2 <= 6169 : e2 < 6783 ? e2 < 6512 ? e2 < 6400 ? e2 < 6272 ? e2 >= 6176 && e2 <= 6263 : e2 >= 6272 && e2 <= 6314 || e2 >= 6320 && e2 <= 6389 : e2 < 6448 ? e2 >= 6400 && e2 <= 6430 || e2 >= 6432 && e2 <= 6443 : e2 >= 6448 && e2 <= 6459 || e2 >= 6470 && e2 <= 6509 : e2 < 6608 ? e2 < 6528 ? e2 >= 6512 && e2 <= 6516 : e2 >= 6528 && e2 <= 6571 || e2 >= 6576 && e2 <= 6601 : e2 < 6688 ? e2 >= 6608 && e2 <= 6617 || e2 >= 6656 && e2 <= 6683 : e2 >= 6688 && e2 <= 6750 || e2 >= 6752 && e2 <= 6780 : e2 < 7040 ? e2 < 6832 ? e2 < 6800 ? e2 >= 6783 && e2 <= 6793 : e2 >= 6800 && e2 <= 6809 || 6823 == e2 : e2 < 6992 ? e2 >= 6832 && e2 <= 6846 || e2 >= 6912 && e2 <= 6987 : e2 >= 6992 && e2 <= 7001 || e2 >= 7019 && e2 <= 7027 : e2 < 7245 ? e2 < 7168 ? e2 >= 7040 && e2 <= 7155 : e2 >= 7168 && e2 <= 7223 || e2 >= 7232 && e2 <= 7241 : e2 < 7376 ? e2 >= 7245 && e2 <= 7293 || e2 >= 7296 && e2 <= 7304 : e2 >= 7376 && e2 <= 7378 || e2 >= 7380 && e2 <= 7414 : e2 < 8450 ? e2 < 8130 ? e2 < 8025 ? e2 < 7960 ? e2 < 7424 ? e2 >= 7416 && e2 <= 7417 : e2 >= 7424 && e2 <= 7669 || e2 >= 7675 && e2 <= 7957 : e2 < 8008 ? e2 >= 7960 && e2 <= 7965 || e2 >= 7968 && e2 <= 8005 : e2 >= 8008 && e2 <= 8013 || e2 >= 8016 && e2 <= 8023 : e2 < 8031 ? e2 < 8027 ? 8025 == e2 : 8027 == e2 || 8029 == e2 : e2 < 8118 ? e2 >= 8031 && e2 <= 8061 || e2 >= 8064 && e2 <= 8116 : e2 >= 8118 && e2 <= 8124 || 8126 == e2 : e2 < 8205 ? e2 < 8150 ? e2 < 8134 ? e2 >= 8130 && e2 <= 8132 : e2 >= 8134 && e2 <= 8140 || e2 >= 8144 && e2 <= 8147 : e2 < 8178 ? e2 >= 8150 && e2 <= 8155 || e2 >= 8160 && e2 <= 8172 : e2 >= 8178 && e2 <= 8180 || e2 >= 8182 && e2 <= 8188 : e2 < 8305 ? e2 < 8252 ? 8205 == e2 : 8252 == e2 || 8265 == e2 : e2 < 8336 ? 8305 == e2 || 8319 == e2 : e2 >= 8336 && e2 <= 8348 || e2 >= 8400 && e2 <= 8432 : e2 < 8579 ? e2 < 8486 ? e2 < 8469 ? e2 < 8455 ? 8450 == e2 : 8455 == e2 || e2 >= 8458 && e2 <= 8467 : e2 < 8482 ? 8469 == e2 || e2 >= 8473 && e2 <= 8477 : 8482 == e2 || 8484 == e2 : e2 < 8495 ? e2 < 8488 ? 8486 == e2 : 8488 == e2 || e2 >= 8490 && e2 <= 8493 : e2 < 8517 ? e2 >= 8495 && e2 <= 8505 || e2 >= 8508 && e2 <= 8511 : e2 >= 8517 && e2 <= 8521 || 8526 == e2 : e2 < 9410 ? e2 < 9e3 ? e2 < 8592 ? e2 >= 8579 && e2 <= 8580 : e2 >= 8592 && e2 <= 8703 || e2 >= 8986 && e2 <= 8987 : e2 < 9193 ? 9e3 == e2 || 9167 == e2 : e2 >= 9193 && e2 <= 9203 || e2 >= 9208 && e2 <= 9210 : e2 < 9723 ? e2 < 9654 ? 9410 == e2 || e2 >= 9642 && e2 <= 9643 : 9654 == e2 || 9664 == e2 : e2 < 10548 ? e2 >= 9723 && e2 <= 9726 || e2 >= 9728 && e2 <= 10175 : e2 >= 10548 && e2 <= 10549 || e2 >= 11013 && e2 <= 11015 : e2 < 43259 ? e2 < 12445 ? e2 < 11688 ? e2 < 11520 ? e2 < 11264 ? e2 < 11088 ? e2 >= 11035 && e2 <= 11036 : 11088 == e2 || 11093 == e2 : e2 < 11360 ? e2 >= 11264 && e2 <= 11310 || e2 >= 11312 && e2 <= 11358 : e2 >= 11360 && e2 <= 11492 || e2 >= 11499 && e2 <= 11507 : e2 < 11568 ? e2 < 11559 ? e2 >= 11520 && e2 <= 11557 : 11559 == e2 || 11565 == e2 : e2 < 11647 ? e2 >= 11568 && e2 <= 11623 || 11631 == e2 : e2 >= 11647 && e2 <= 11670 || e2 >= 11680 && e2 <= 11686 : e2 < 11744 ? e2 < 11712 ? e2 < 11696 ? e2 >= 11688 && e2 <= 11694 : e2 >= 11696 && e2 <= 11702 || e2 >= 11704 && e2 <= 11710 : e2 < 11728 ? e2 >= 11712 && e2 <= 11718 || e2 >= 11720 && e2 <= 11726 : e2 >= 11728 && e2 <= 11734 || e2 >= 11736 && e2 <= 11742 : e2 < 12330 ? e2 < 11823 ? e2 >= 11744 && e2 <= 11775 : 11823 == e2 || e2 >= 12293 && e2 <= 12294 : e2 < 12353 ? e2 >= 12330 && e2 <= 12341 || e2 >= 12347 && e2 <= 12349 : e2 >= 12353 && e2 <= 12438 || e2 >= 12441 && e2 <= 12442 : e2 < 42512 ? e2 < 12951 ? e2 < 12549 ? e2 < 12449 ? e2 >= 12445 && e2 <= 12447 : e2 >= 12449 && e2 <= 12538 || e2 >= 12540 && e2 <= 12543 : e2 < 12704 ? e2 >= 12549 && e2 <= 12589 || e2 >= 12593 && e2 <= 12686 : e2 >= 12704 && e2 <= 12730 || e2 >= 12784 && e2 <= 12799 : e2 < 19968 ? e2 < 12953 ? 12951 == e2 : 12953 == e2 || e2 >= 13312 && e2 <= 19893 : e2 < 42192 ? e2 >= 19968 && e2 <= 40917 || e2 >= 40960 && e2 <= 42124 : e2 >= 42192 && e2 <= 42237 || e2 >= 42240 && e2 <= 42508 : e2 < 42891 ? e2 < 42623 ? e2 < 42560 ? e2 >= 42512 && e2 <= 42539 : e2 >= 42560 && e2 <= 42610 || e2 >= 42612 && e2 <= 42621 : e2 < 42775 ? e2 >= 42623 && e2 <= 42725 || e2 >= 42736 && e2 <= 42737 : e2 >= 42775 && e2 <= 42783 || e2 >= 42786 && e2 <= 42888 : e2 < 43072 ? e2 < 42928 ? e2 >= 42891 && e2 <= 42926 : e2 >= 42928 && e2 <= 42935 || e2 >= 42999 && e2 <= 43047 : e2 < 43216 ? e2 >= 43072 && e2 <= 43123 || e2 >= 43136 && e2 <= 43205 : e2 >= 43216 && e2 <= 43225 || e2 >= 43232 && e2 <= 43255 : e2 < 55243 ? e2 < 43744 ? e2 < 43488 ? e2 < 43312 ? e2 < 43261 ? 43259 == e2 : 43261 == e2 || e2 >= 43264 && e2 <= 43309 : e2 < 43392 ? e2 >= 43312 && e2 <= 43347 || e2 >= 43360 && e2 <= 43388 : e2 >= 43392 && e2 <= 43456 || e2 >= 43471 && e2 <= 43481 : e2 < 43600 ? e2 < 43520 ? e2 >= 43488 && e2 <= 43518 : e2 >= 43520 && e2 <= 43574 || e2 >= 43584 && e2 <= 43597 : e2 < 43642 ? e2 >= 43600 && e2 <= 43609 || e2 >= 43616 && e2 <= 43638 : e2 >= 43642 && e2 <= 43714 || e2 >= 43739 && e2 <= 43741 : e2 < 43824 ? e2 < 43785 ? e2 < 43762 ? e2 >= 43744 && e2 <= 43759 : e2 >= 43762 && e2 <= 43766 || e2 >= 43777 && e2 <= 43782 : e2 < 43808 ? e2 >= 43785 && e2 <= 43790 || e2 >= 43793 && e2 <= 43798 : e2 >= 43808 && e2 <= 43814 || e2 >= 43816 && e2 <= 43822 : e2 < 44012 ? e2 < 43868 ? e2 >= 43824 && e2 <= 43866 : e2 >= 43868 && e2 <= 43877 || e2 >= 43888 && e2 <= 44010 : e2 < 44032 ? e2 >= 44012 && e2 <= 44013 || e2 >= 44016 && e2 <= 44025 : e2 >= 44032 && e2 <= 55203 || e2 >= 55216 && e2 <= 55238 : e2 < 64848 ? e2 < 64298 ? e2 < 64112 ? e2 < 55296 ? e2 >= 55243 && e2 <= 55291 : e2 >= 55296 && e2 <= 57343 || e2 >= 63744 && e2 <= 64109 : e2 < 64275 ? e2 >= 64112 && e2 <= 64217 || e2 >= 64256 && e2 <= 64262 : e2 >= 64275 && e2 <= 64279 || e2 >= 64285 && e2 <= 64296 : e2 < 64320 ? e2 < 64312 ? e2 >= 64298 && e2 <= 64310 : e2 >= 64312 && e2 <= 64316 || 64318 == e2 : e2 < 64326 ? e2 >= 64320 && e2 <= 64321 || e2 >= 64323 && e2 <= 64324 : e2 >= 64326 && e2 <= 64433 || e2 >= 64467 && e2 <= 64829 : e2 < 65296 ? e2 < 65024 ? e2 < 64914 ? e2 >= 64848 && e2 <= 64911 : e2 >= 64914 && e2 <= 64967 || e2 >= 65008 && e2 <= 65019 : e2 < 65136 ? e2 >= 65024 && e2 <= 65039 || e2 >= 65056 && e2 <= 65071 : e2 >= 65136 && e2 <= 65140 || e2 >= 65142 && e2 <= 65276 : e2 < 65474 ? e2 < 65345 ? e2 >= 65296 && e2 <= 65305 || e2 >= 65313 && e2 <= 65338 : e2 >= 65345 && e2 <= 65370 || e2 >= 65382 && e2 <= 65470 : e2 < 65490 ? e2 >= 65474 && e2 <= 65479 || e2 >= 65482 && e2 <= 65487 : e2 >= 65490 && e2 <= 65495 || e2 >= 65498 && e2 <= 65500;
2592
+ }
2593
+ function ht(e2) {
2594
+ return e2 < 58 ? e2 < 44 ? 33 == e2 : 44 == e2 || 46 == e2 : e2 < 63 ? e2 >= 58 && e2 <= 59 : 63 == e2 || 94 == e2;
2595
+ }
2596
+ function ut(e2) {
2597
+ return e2 < 91 ? 40 == e2 : 91 == e2 || 123 == e2;
2598
+ }
2599
+ function dt(e2) {
2600
+ return e2 < 93 ? 41 == e2 : 93 == e2 || 125 == e2;
2601
+ }
2602
+ var pt = /^(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|travelersinsurance|vermögensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|موريتانيا|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|banamex|bauhaus|bestbuy|booking|brother|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|yamaxun|youtube|zuerich|католик|البحرين|الجزائر|العليان|پاکستان|كاثوليك|இந்தியா|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kindle|kosher|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|nagoya|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|walter|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|loans|locus|lotte|lotto|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|ישראל|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|アマゾン|グーグル|クラウド|ポイント|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|scb|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ລາວ|ストア|セール|みんな|中文网|亚马逊|天主教|我爱你|新加坡|淡马锡|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|ευ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|广东|微博|慈善|手机|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)$/, mt = /https?:\/\//i, ft = new RegExp("^" + mt.source, "i"), gt = /^(javascript|vbscript):/i, vt = /^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/, bt = /^(?:\/\/)?([^/#?:]+)/, yt = rt;
2603
+ function wt(e2) {
2604
+ return rt(e2) || it(e2) || 43 === e2 || 45 === e2 || 46 === e2;
2605
+ }
2606
+ var kt = lt;
2607
+ function Ct(e2) {
2608
+ return 95 === e2 || kt(e2);
2609
+ }
2610
+ function Tt(e2) {
2611
+ return lt(e2) || ((t2 = e2) < 91 ? t2 < 47 ? t2 >= 35 && t2 <= 43 || 45 == t2 : t2 < 61 ? 47 == t2 : 61 == t2 || 64 == t2 : t2 < 95 ? 91 == t2 || 93 == t2 : t2 < 123 ? 95 == t2 : t2 >= 123 && t2 <= 126 || 10003 == t2) || ht(e2);
2612
+ var t2;
2613
+ }
2614
+ function It(e2) {
2615
+ return 47 === e2 || 63 === e2 || 35 === e2;
2616
+ }
2617
+ function xt(e2) {
2618
+ return pt.test(e2.toLowerCase());
2619
+ }
2620
+ var St = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/, Et = /[:/?#]/;
2621
+ var Mt = /^(https?:\/\/)?(?:www\.)?/i, At = /^\/\//, Nt = (function(e2) {
2622
+ function t2(t3) {
2623
+ var s2 = e2.call(this, t3) || this;
2624
+ return s2.type = "url", s2.url = "", s2.urlMatchType = "scheme", s2.protocolRelativeMatch = false, s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.protocolPrepended = false, s2.urlMatchType = t3.urlMatchType, s2.url = t3.url, s2.protocolRelativeMatch = t3.protocolRelativeMatch, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2565
2625
  }
2566
- Ze(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
2626
+ return ze(t2, e2), t2.prototype.getType = function() {
2627
+ return "url";
2628
+ }, t2.prototype.getUrlMatchType = function() {
2629
+ return this.urlMatchType;
2630
+ }, t2.prototype.getUrl = function() {
2631
+ var e3 = this.url;
2632
+ return this.protocolRelativeMatch || "scheme" === this.urlMatchType || this.protocolPrepended || (e3 = this.url = "http://" + e3, this.protocolPrepended = true), e3;
2633
+ }, t2.prototype.getAnchorHref = function() {
2634
+ return this.getUrl().replace(/&amp;/g, "&");
2635
+ }, t2.prototype.getAnchorText = function() {
2636
+ var e3 = this.getMatchedText();
2637
+ return this.protocolRelativeMatch && (e3 = e3.replace(At, "")), this.stripPrefix.scheme && (e3 = e3.replace(ft, "")), this.stripPrefix.www && (e3 = (function(e4) {
2638
+ return e4.includes("www.") ? e4.replace(Mt, "$1") : e4;
2639
+ })(e3)), this.stripTrailingSlash && (e3 = (function(e4) {
2640
+ "/" === e4.charAt(e4.length - 1) && (e4 = e4.slice(0, -1));
2641
+ return e4;
2642
+ })(e3)), this.decodePercentEncoding && (e3 = (function(e4) {
2643
+ var t3 = e4.replace(/%(?:22|26|27|3C|3E)/gi, function(e5) {
2644
+ return "%22" === e5 ? "&quot;" : "%26" === e5 ? "&amp;" : "%27" === e5 ? "&#39;" : "%3C" === e5 || "%3c" === e5 ? "&lt;" : "&gt;";
2645
+ });
2646
+ if (t3.includes("%")) try {
2647
+ return decodeURIComponent(t3);
2648
+ } catch (e5) {
2649
+ }
2650
+ return t3;
2651
+ })(e3)), e3;
2652
+ }, t2;
2653
+ })(at);
2654
+ var Rt = /^mailto:/i, _t = lt;
2655
+ function Dt(e2) {
2656
+ return _t(e2) || ((t2 = e2) < 47 ? t2 < 42 ? 33 == t2 || t2 >= 35 && t2 <= 39 : t2 >= 42 && t2 <= 43 || 45 == t2 : t2 < 63 ? 47 == t2 || 61 == t2 : t2 < 94 ? 63 == t2 : t2 >= 94 && t2 <= 96 || t2 >= 123 && t2 <= 126);
2657
+ var t2;
2567
2658
  }
2568
- var Xe, et = function() {
2569
- return et = Object.assign || function(e2) {
2570
- for (var t2, s2 = 1, n2 = arguments.length; s2 < n2; s2++) for (var r2 in t2 = arguments[s2]) Object.prototype.hasOwnProperty.call(t2, r2) && (e2[r2] = t2[r2]);
2571
- return e2;
2572
- }, et.apply(this, arguments);
2573
- }, tt = function(e2) {
2659
+ var Ot = (function(e2) {
2574
2660
  function t2(t3) {
2575
2661
  var s2 = e2.call(this, t3) || this;
2576
- return s2.email = "", s2.email = t3.email, s2;
2662
+ return s2.type = "email", s2.email = "", s2.email = t3.email, s2;
2577
2663
  }
2578
- return Ke(t2, e2), t2.prototype.getType = function() {
2664
+ return ze(t2, e2), t2.prototype.getType = function() {
2579
2665
  return "email";
2580
2666
  }, t2.prototype.getEmail = function() {
2581
2667
  return this.email;
@@ -2584,12 +2670,16 @@ var Xe, et = function() {
2584
2670
  }, t2.prototype.getAnchorText = function() {
2585
2671
  return this.email;
2586
2672
  }, t2;
2587
- }(Ve), st = function(e2) {
2673
+ })(at);
2674
+ function Pt(e2) {
2675
+ return 95 === e2 || lt(e2);
2676
+ }
2677
+ var $t = ["twitter", "facebook", "instagram", "tiktok", "youtube"], Ut = (function(e2) {
2588
2678
  function t2(t3) {
2589
2679
  var s2 = e2.call(this, t3) || this;
2590
- return s2.serviceName = "", s2.hashtag = "", s2.serviceName = t3.serviceName, s2.hashtag = t3.hashtag, s2;
2680
+ return s2.type = "hashtag", s2.serviceName = "twitter", s2.hashtag = "", s2.serviceName = t3.serviceName, s2.hashtag = t3.hashtag, s2;
2591
2681
  }
2592
- return Ke(t2, e2), t2.prototype.getType = function() {
2682
+ return ze(t2, e2), t2.prototype.getType = function() {
2593
2683
  return "hashtag";
2594
2684
  }, t2.prototype.getServiceName = function() {
2595
2685
  return this.serviceName;
@@ -2604,18 +2694,29 @@ var Xe, et = function() {
2604
2694
  return "https://www.facebook.com/hashtag/" + t3;
2605
2695
  case "instagram":
2606
2696
  return "https://instagram.com/explore/tags/" + t3;
2697
+ case "tiktok":
2698
+ return "https://www.tiktok.com/tag/" + t3;
2699
+ case "youtube":
2700
+ return "https://youtube.com/hashtag/" + t3;
2607
2701
  default:
2608
- throw new Error("Unknown service name to point hashtag to: " + e3);
2702
+ Ze(e3);
2609
2703
  }
2610
2704
  }, t2.prototype.getAnchorText = function() {
2611
2705
  return "#" + this.hashtag;
2706
+ }, t2.prototype.getCssClassSuffixes = function() {
2707
+ var t3 = e2.prototype.getCssClassSuffixes.call(this), s2 = this.getServiceName();
2708
+ return s2 && t3.push(s2), t3;
2612
2709
  }, t2;
2613
- }(Ve), nt = function(e2) {
2710
+ })(at), jt = { twitter: /^@\w{1,15}$/, instagram: /^@[_\w]{1,30}$/, soundcloud: /^@[-a-z0-9_]{3,25}$/, tiktok: /^@[.\w]{1,23}[\w]$/, youtube: /^@[-.·\w]{3,30}$/ };
2711
+ function Wt(e2) {
2712
+ return 45 === e2 || 46 === e2 || 95 === e2 || rt(e2) || it(e2);
2713
+ }
2714
+ var qt = ["twitter", "instagram", "soundcloud", "tiktok", "youtube"], Bt = (function(e2) {
2614
2715
  function t2(t3) {
2615
2716
  var s2 = e2.call(this, t3) || this;
2616
- return s2.serviceName = "twitter", s2.mention = "", s2.mention = t3.mention, s2.serviceName = t3.serviceName, s2;
2717
+ return s2.type = "mention", s2.serviceName = "twitter", s2.mention = "", s2.mention = t3.mention, s2.serviceName = t3.serviceName, s2;
2617
2718
  }
2618
- return Ke(t2, e2), t2.prototype.getType = function() {
2719
+ return ze(t2, e2), t2.prototype.getType = function() {
2619
2720
  return "mention";
2620
2721
  }, t2.prototype.getMention = function() {
2621
2722
  return this.mention;
@@ -2629,8 +2730,12 @@ var Xe, et = function() {
2629
2730
  return "https://instagram.com/" + this.mention;
2630
2731
  case "soundcloud":
2631
2732
  return "https://soundcloud.com/" + this.mention;
2733
+ case "tiktok":
2734
+ return "https://www.tiktok.com/@" + this.mention;
2735
+ case "youtube":
2736
+ return "https://youtube.com/@" + this.mention;
2632
2737
  default:
2633
- throw new Error("Unknown service name to point mention to: " + this.serviceName);
2738
+ Ze(this.serviceName);
2634
2739
  }
2635
2740
  }, t2.prototype.getAnchorText = function() {
2636
2741
  return "@" + this.mention;
@@ -2638,12 +2743,19 @@ var Xe, et = function() {
2638
2743
  var t3 = e2.prototype.getCssClassSuffixes.call(this), s2 = this.getServiceName();
2639
2744
  return s2 && t3.push(s2), t3;
2640
2745
  }, t2;
2641
- }(Ve), rt = function(e2) {
2746
+ })(at), Lt = /[-. ()]/, Gt = new RegExp("^".concat(/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/.source, "|").concat(/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/.source, "$"));
2747
+ function Ft(e2) {
2748
+ return 45 === e2 || 46 === e2 || 32 === e2;
2749
+ }
2750
+ function Ht(e2) {
2751
+ return 44 === e2 || 59 === e2;
2752
+ }
2753
+ var Jt = (function(e2) {
2642
2754
  function t2(t3) {
2643
2755
  var s2 = e2.call(this, t3) || this;
2644
- return s2.number = "", s2.plusSign = false, s2.number = t3.number, s2.plusSign = t3.plusSign, s2;
2756
+ return s2.type = "phone", s2.number = "", s2.plusSign = false, s2.number = t3.number, s2.plusSign = t3.plusSign, s2;
2645
2757
  }
2646
- return Ke(t2, e2), t2.prototype.getType = function() {
2758
+ return ze(t2, e2), t2.prototype.getType = function() {
2647
2759
  return "phone";
2648
2760
  }, t2.prototype.getPhoneNumber = function() {
2649
2761
  return this.number;
@@ -2654,591 +2766,782 @@ var Xe, et = function() {
2654
2766
  }, t2.prototype.getAnchorText = function() {
2655
2767
  return this.matchedText;
2656
2768
  }, t2;
2657
- }(Ve), at = function(e2) {
2658
- function t2(t3) {
2659
- var s2 = e2.call(this, t3) || this;
2660
- return s2.url = "", s2.urlMatchType = "scheme", s2.protocolUrlMatch = false, s2.protocolRelativeMatch = false, s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.schemePrefixRegex = /^(https?:\/\/)?/i, s2.wwwPrefixRegex = /^(https?:\/\/)?(www\.)?/i, s2.protocolRelativeRegex = /^\/\//, s2.protocolPrepended = false, s2.urlMatchType = t3.urlMatchType, s2.url = t3.url, s2.protocolUrlMatch = t3.protocolUrlMatch, s2.protocolRelativeMatch = t3.protocolRelativeMatch, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2661
- }
2662
- return Ke(t2, e2), t2.prototype.getType = function() {
2663
- return "url";
2664
- }, t2.prototype.getUrlMatchType = function() {
2665
- return this.urlMatchType;
2666
- }, t2.prototype.getUrl = function() {
2667
- var e3 = this.url;
2668
- return this.protocolRelativeMatch || this.protocolUrlMatch || this.protocolPrepended || (e3 = this.url = "http://" + e3, this.protocolPrepended = true), e3;
2669
- }, t2.prototype.getAnchorHref = function() {
2670
- return this.getUrl().replace(/&amp;/g, "&");
2671
- }, t2.prototype.getAnchorText = function() {
2672
- var e3 = this.getMatchedText();
2673
- return this.protocolRelativeMatch && (e3 = this.stripProtocolRelativePrefix(e3)), this.stripPrefix.scheme && (e3 = this.stripSchemePrefix(e3)), this.stripPrefix.www && (e3 = this.stripWwwPrefix(e3)), this.stripTrailingSlash && (e3 = this.removeTrailingSlash(e3)), this.decodePercentEncoding && (e3 = this.removePercentEncoding(e3)), e3;
2674
- }, t2.prototype.stripSchemePrefix = function(e3) {
2675
- return e3.replace(this.schemePrefixRegex, "");
2676
- }, t2.prototype.stripWwwPrefix = function(e3) {
2677
- return e3.replace(this.wwwPrefixRegex, "$1");
2678
- }, t2.prototype.stripProtocolRelativePrefix = function(e3) {
2679
- return e3.replace(this.protocolRelativeRegex, "");
2680
- }, t2.prototype.removeTrailingSlash = function(e3) {
2681
- return "/" === e3.charAt(e3.length - 1) && (e3 = e3.slice(0, -1)), e3;
2682
- }, t2.prototype.removePercentEncoding = function(e3) {
2683
- var t3 = e3.replace(/%22/gi, "&quot;").replace(/%26/gi, "&amp;").replace(/%27/gi, "&#39;").replace(/%3C/gi, "&lt;").replace(/%3E/gi, "&gt;");
2684
- try {
2685
- return decodeURIComponent(t3);
2686
- } catch (e4) {
2687
- return t3;
2688
- }
2689
- }, t2;
2690
- }(Ve), it = function(e2) {
2691
- this.__jsduckDummyDocProp = null, this.tagBuilder = e2.tagBuilder;
2692
- }, ot = /[A-Za-z]/, ut = /[\d]/, ct = /[\D]/, lt = /\s/, ht = /['"]/, dt = /[\x00-\x1F\x7F]/, pt = /A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source, ft = pt + /\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source + /\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source, mt = /0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source, gt = ft + mt, vt = ft + mt, wt = "(?:[" + mt + "]{1,3}\\.){3}[" + mt + "]{1,3}", bt = "[" + vt + "](?:[" + vt + "\\-]{0,61}[" + vt + "])?", yt = function(e2) {
2693
- return "(?=(" + bt + "))\\" + e2;
2694
- }, Ct = function(e2) {
2695
- return "(?:" + yt(e2) + "(?:\\." + yt(e2 + 1) + "){0,126}|" + wt + ")";
2696
- }, At = new RegExp("[" + vt + "]"), Et = /(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/, kt = new RegExp("[" + vt + "!#$%&'*+/=?^_`{|}~-]"), xt = new RegExp("^" + Et.source + "$"), Tt = function(e2) {
2697
- function t2() {
2698
- var t3 = null !== e2 && e2.apply(this, arguments) || this;
2699
- return t3.localPartCharRegex = kt, t3.strictTldRegex = xt, t3;
2700
- }
2701
- return Ke(t2, e2), t2.prototype.parseMatches = function(e3) {
2702
- for (var t3 = this.tagBuilder, s2 = this.localPartCharRegex, n2 = this.strictTldRegex, r2 = [], a2 = e3.length, i2 = new It(), o2 = { m: "a", a: "i", i: "l", l: "t", t: "o", o: ":" }, u2 = 0, c2 = 0, l2 = i2; u2 < a2; ) {
2703
- var h2 = e3.charAt(u2);
2704
- switch (c2) {
2705
- case 0:
2706
- d2(h2);
2707
- break;
2708
- case 1:
2709
- p2(e3.charAt(u2 - 1), h2);
2710
- break;
2711
- case 2:
2712
- f2(h2);
2713
- break;
2714
- case 3:
2715
- m2(h2);
2716
- break;
2717
- case 4:
2718
- g2(h2);
2719
- break;
2720
- case 5:
2721
- v2(h2);
2722
- break;
2723
- case 6:
2724
- w2(h2);
2725
- break;
2726
- case 7:
2727
- b2(h2);
2728
- break;
2729
- default:
2730
- Je(c2);
2731
- }
2732
- u2++;
2733
- }
2734
- return A2(), r2;
2735
- function d2(e4) {
2736
- "m" === e4 ? y2(1) : s2.test(e4) && y2();
2737
- }
2738
- function p2(e4, t4) {
2739
- ":" === e4 ? s2.test(t4) ? (c2 = 2, l2 = new It(et(et({}, l2), { hasMailtoPrefix: true }))) : C2() : o2[e4] === t4 || (s2.test(t4) ? c2 = 2 : "." === t4 ? c2 = 3 : "@" === t4 ? c2 = 4 : C2());
2740
- }
2741
- function f2(e4) {
2742
- "." === e4 ? c2 = 3 : "@" === e4 ? c2 = 4 : s2.test(e4) || C2();
2743
- }
2744
- function m2(e4) {
2745
- "." === e4 || "@" === e4 ? C2() : s2.test(e4) ? c2 = 2 : C2();
2746
- }
2747
- function g2(e4) {
2748
- At.test(e4) ? c2 = 5 : C2();
2749
- }
2750
- function v2(e4) {
2751
- "." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 : At.test(e4) || A2();
2752
- }
2753
- function w2(e4) {
2754
- "-" === e4 || "." === e4 ? A2() : At.test(e4) ? c2 = 5 : A2();
2755
- }
2756
- function b2(e4) {
2757
- "." === e4 || "-" === e4 ? A2() : At.test(e4) ? (c2 = 5, l2 = new It(et(et({}, l2), { hasDomainDot: true }))) : A2();
2758
- }
2759
- function y2(e4) {
2760
- void 0 === e4 && (e4 = 2), c2 = e4, l2 = new It({ idx: u2 });
2761
- }
2762
- function C2() {
2763
- c2 = 0, l2 = i2;
2764
- }
2765
- function A2() {
2766
- if (l2.hasDomainDot) {
2767
- var s3 = e3.slice(l2.idx, u2);
2768
- /[-.]$/.test(s3) && (s3 = s3.slice(0, -1));
2769
- var a3 = l2.hasMailtoPrefix ? s3.slice(7) : s3;
2770
- (function(e4) {
2771
- var t4 = e4.split(".").pop() || "", s4 = t4.toLowerCase();
2772
- return n2.test(s4);
2773
- })(a3) && r2.push(new tt({ tagBuilder: t3, matchedText: s3, offset: l2.idx, email: a3 }));
2774
- }
2775
- C2();
2776
- }
2777
- }, t2;
2778
- }(it), It = function(e2) {
2779
- void 0 === e2 && (e2 = {}), this.idx = void 0 !== e2.idx ? e2.idx : -1, this.hasMailtoPrefix = !!e2.hasMailtoPrefix, this.hasDomainDot = !!e2.hasDomainDot;
2780
- }, Dt = function() {
2781
- function e2() {
2782
- }
2783
- return e2.isValid = function(e3, t2) {
2784
- return !(t2 && !this.isValidUriScheme(t2) || this.urlMatchDoesNotHaveProtocolOrDot(e3, t2) || this.urlMatchDoesNotHaveAtLeastOneWordChar(e3, t2) && !this.isValidIpAddress(e3) || this.containsMultipleDots(e3));
2785
- }, e2.isValidIpAddress = function(e3) {
2786
- var t2 = new RegExp(this.hasFullProtocolRegex.source + this.ipRegex.source);
2787
- return null !== e3.match(t2);
2788
- }, e2.containsMultipleDots = function(e3) {
2789
- var t2 = e3;
2790
- return this.hasFullProtocolRegex.test(e3) && (t2 = e3.split("://")[1]), t2.split("/")[0].indexOf("..") > -1;
2791
- }, e2.isValidUriScheme = function(e3) {
2792
- var t2 = e3.match(this.uriSchemeRegex), s2 = t2 && t2[0].toLowerCase();
2793
- return "javascript:" !== s2 && "vbscript:" !== s2;
2794
- }, e2.urlMatchDoesNotHaveProtocolOrDot = function(e3, t2) {
2795
- return !(!e3 || t2 && this.hasFullProtocolRegex.test(t2) || -1 !== e3.indexOf("."));
2796
- }, e2.urlMatchDoesNotHaveAtLeastOneWordChar = function(e3, t2) {
2797
- return !(!e3 || !t2) && (!this.hasFullProtocolRegex.test(t2) && !this.hasWordCharAfterProtocolRegex.test(e3));
2798
- }, e2.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//, e2.uriSchemeRegex = /^[A-Za-z][-.+A-Za-z0-9]*:/, e2.hasWordCharAfterProtocolRegex = new RegExp(":[^\\s]*?[" + pt + "]"), e2.ipRegex = /[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?\.[0-9][0-9]?[0-9]?(:[0-9]*)?\/?$/, e2;
2799
- }(), St = (Xe = new RegExp("[/?#](?:[" + vt + "\\-+&@#/%=~_()|'$*\\[\\]{}?!:,.;^✓]*[" + vt + "\\-+&@#/%=~_()|'$*\\[\\]{}✓])?"), new RegExp(["(?:", "(", /(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\/\/)(?!\d+\/?)(?:\/\/)?)/.source, Ct(2), ")", "|", "(", "(//)?", /(?:www\.)/.source, Ct(6), ")", "|", "(", "(//)?", Ct(10) + "\\.", Et.source, "(?![-" + gt + "])", ")", ")", "(?::[0-9]+)?", "(?:" + Xe.source + ")?"].join(""), "gi")), Mt = new RegExp("[" + vt + "]"), Ft = function(e2) {
2800
- function t2(t3) {
2801
- var s2 = e2.call(this, t3) || this;
2802
- return s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.matcherRegex = St, s2.wordCharRegExp = Mt, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2803
- }
2804
- return Ke(t2, e2), t2.prototype.parseMatches = function(e3) {
2805
- for (var t3, s2 = this.matcherRegex, n2 = this.stripPrefix, r2 = this.stripTrailingSlash, a2 = this.decodePercentEncoding, i2 = this.tagBuilder, o2 = [], u2 = function() {
2806
- var s3 = t3[0], u3 = t3[1], l2 = t3[4], h2 = t3[5], d2 = t3[9], p2 = t3.index, f2 = h2 || d2, m2 = e3.charAt(p2 - 1);
2807
- if (!Dt.isValid(s3, u3)) return "continue";
2808
- if (p2 > 0 && "@" === m2) return "continue";
2809
- if (p2 > 0 && f2 && c2.wordCharRegExp.test(m2)) return "continue";
2810
- if (/\?$/.test(s3) && (s3 = s3.substr(0, s3.length - 1)), c2.matchHasUnbalancedClosingParen(s3)) s3 = s3.substr(0, s3.length - 1);
2811
- else {
2812
- var g2 = c2.matchHasInvalidCharAfterTld(s3, u3);
2813
- g2 > -1 && (s3 = s3.substr(0, g2));
2814
- }
2815
- var v2 = ["http://", "https://"].find(function(e4) {
2816
- return !!u3 && -1 !== u3.indexOf(e4);
2817
- });
2818
- if (v2) {
2819
- var w2 = s3.indexOf(v2);
2820
- s3 = s3.substr(w2), u3 = u3.substr(w2), p2 += w2;
2821
- }
2822
- var b2 = u3 ? "scheme" : l2 ? "www" : "tld", y2 = !!u3;
2823
- o2.push(new at({ tagBuilder: i2, matchedText: s3, offset: p2, urlMatchType: b2, url: s3, protocolUrlMatch: y2, protocolRelativeMatch: !!f2, stripPrefix: n2, stripTrailingSlash: r2, decodePercentEncoding: a2 }));
2824
- }, c2 = this; null !== (t3 = s2.exec(e3)); ) u2();
2825
- return o2;
2826
- }, t2.prototype.matchHasUnbalancedClosingParen = function(e3) {
2827
- var t3, s2 = e3.charAt(e3.length - 1);
2828
- if (")" === s2) t3 = "(";
2829
- else if ("]" === s2) t3 = "[";
2830
- else {
2831
- if ("}" !== s2) return false;
2832
- t3 = "{";
2833
- }
2834
- for (var n2 = 0, r2 = 0, a2 = e3.length - 1; r2 < a2; r2++) {
2835
- var i2 = e3.charAt(r2);
2836
- i2 === t3 ? n2++ : i2 === s2 && (n2 = Math.max(n2 - 1, 0));
2769
+ })(at), zt = (function() {
2770
+ function e2(e3, t2) {
2771
+ this.charIdx = 0, this.matches = [], this._stateMachines = [], this.schemeUrlMachinesCount = 0, this.text = e3, this.tagBuilder = t2.tagBuilder, this.stripPrefix = t2.stripPrefix, this.stripTrailingSlash = t2.stripTrailingSlash, this.decodePercentEncoding = t2.decodePercentEncoding, this.hashtagServiceName = t2.hashtagServiceName, this.mentionServiceName = t2.mentionServiceName;
2772
+ }
2773
+ return Object.defineProperty(e2.prototype, "stateMachines", { get: function() {
2774
+ return this._stateMachines;
2775
+ }, enumerable: false, configurable: true }), e2.prototype.addMachine = function(e3) {
2776
+ this._stateMachines.push(e3), Gs(e3) && this.schemeUrlMachinesCount++;
2777
+ }, e2.prototype.removeMachine = function(e3) {
2778
+ this._stateMachines = this._stateMachines.filter(function(t2) {
2779
+ return t2 !== e3;
2780
+ }), Gs(e3) && this.schemeUrlMachinesCount--;
2781
+ }, e2.prototype.hasSchemeUrlMachine = function() {
2782
+ return this.schemeUrlMachinesCount > 0;
2783
+ }, e2;
2784
+ })();
2785
+ function Yt(e2, t2, s2) {
2786
+ var n2 = e2.charIdx;
2787
+ if (35 === s2) e2.addMachine({ type: 2, startIdx: n2, state: 28, acceptStateReached: false });
2788
+ else if (64 === s2) e2.addMachine(/* @__PURE__ */ (function(e3, t3) {
2789
+ return { type: 3, startIdx: e3, state: t3, acceptStateReached: false };
2790
+ })(n2, 30));
2791
+ else if (47 === s2) e2.addMachine(Bs(n2, 11));
2792
+ else if (43 === s2) e2.addMachine(Ls(n2, 37));
2793
+ else if (40 === s2) e2.addMachine(Ls(n2, 32));
2794
+ else {
2795
+ if (it(s2) && (e2.addMachine(Ls(n2, 38)), e2.addMachine(/* @__PURE__ */ (function(e3, t3) {
2796
+ return { type: 0, startIdx: e3, state: t3, acceptStateReached: false, matchType: 2, octetsEncountered: 1 };
2797
+ })(n2, 13))), _t(s2)) {
2798
+ var a2 = "m" === t2.toLowerCase() ? 15 : 22;
2799
+ e2.addMachine(/* @__PURE__ */ (function(e3, t3) {
2800
+ return { type: 1, startIdx: e3, state: t3, acceptStateReached: false };
2801
+ })(n2, a2));
2837
2802
  }
2838
- return 0 === n2;
2839
- }, t2.prototype.matchHasInvalidCharAfterTld = function(e3, t3) {
2840
- if (!e3) return -1;
2841
- var s2 = 0;
2842
- t3 && (s2 = e3.indexOf(":"), e3 = e3.slice(s2));
2843
- var n2 = new RegExp("^((.?//)?[-." + vt + "]*[-" + vt + "]\\.[-" + vt + "]+)").exec(e3);
2844
- return null === n2 ? -1 : (s2 += n2[1].length, e3 = e3.slice(n2[1].length), /^[^-.A-Za-z0-9:\/?#]/.test(e3) ? s2 : -1);
2845
- }, t2;
2846
- }(it), Bt = new RegExp("#[_" + vt + "]{1,139}(?![_" + vt + "])", "g"), Rt = new RegExp("[^" + vt + "]"), Nt = function(e2) {
2847
- function t2(t3) {
2848
- var s2 = e2.call(this, t3) || this;
2849
- return s2.serviceName = "twitter", s2.matcherRegex = Bt, s2.nonWordCharRegex = Rt, s2.serviceName = t3.serviceName, s2;
2850
- }
2851
- return Ke(t2, e2), t2.prototype.parseMatches = function(e3) {
2852
- for (var t3, s2 = this.matcherRegex, n2 = this.nonWordCharRegex, r2 = this.serviceName, a2 = this.tagBuilder, i2 = []; null !== (t3 = s2.exec(e3)); ) {
2853
- var o2 = t3.index, u2 = e3.charAt(o2 - 1);
2854
- if (0 === o2 || n2.test(u2)) {
2855
- var c2 = t3[0], l2 = t3[0].slice(1);
2856
- i2.push(new st({ tagBuilder: a2, matchedText: c2, offset: o2, serviceName: r2, hashtag: l2 }));
2803
+ yt(s2) && e2.addMachine(qs(n2, 0)), lt(s2) && e2.addMachine(Bs(n2, 5));
2804
+ }
2805
+ }
2806
+ function Qt(e2, t2, s2) {
2807
+ 58 === s2 ? t2.state = 2 : 45 === s2 ? t2.state = 1 : wt(s2) || e2.removeMachine(t2);
2808
+ }
2809
+ function Vt(e2, t2, s2) {
2810
+ var n2 = e2.charIdx;
2811
+ 45 === s2 || (47 === s2 ? (e2.removeMachine(t2), e2.addMachine(Bs(n2, 11))) : wt(s2) ? t2.state = 0 : e2.removeMachine(t2));
2812
+ }
2813
+ function Kt(e2, t2, s2) {
2814
+ var n2 = e2.charIdx;
2815
+ 47 === s2 ? t2.state = 3 : 46 === s2 ? e2.removeMachine(t2) : kt(s2) ? (t2.state = 5, yt(s2) && e2.addMachine(qs(n2, 0))) : e2.removeMachine(t2);
2816
+ }
2817
+ function Zt(e2, t2, s2) {
2818
+ 47 === s2 ? t2.state = 4 : Tt(s2) ? (t2.state = 10, t2.acceptStateReached = true) : Us(e2, t2);
2819
+ }
2820
+ function Xt(e2, t2, s2, n2) {
2821
+ 47 === n2 ? (t2.state = 10, t2.acceptStateReached = true) : kt(n2) ? (t2.state = 5, t2.acceptStateReached = true) : e2.removeMachine(t2);
2822
+ }
2823
+ function es(e2, t2, s2) {
2824
+ 47 === s2 ? t2.state = 12 : e2.removeMachine(t2);
2825
+ }
2826
+ function ts(e2, t2, s2) {
2827
+ kt(s2) ? t2.state = 5 : e2.removeMachine(t2);
2828
+ }
2829
+ function ss(e2, t2, s2) {
2830
+ 46 === s2 ? t2.state = 7 : 45 === s2 ? t2.state = 6 : 58 === s2 ? t2.state = 8 : It(s2) ? t2.state = 10 : Ct(s2) || Us(e2, t2);
2831
+ }
2832
+ function ns(e2, t2, s2, n2) {
2833
+ 45 === n2 || (46 === n2 ? Us(e2, t2) : kt(n2) ? t2.state = 5 : Us(e2, t2));
2834
+ }
2835
+ function as(e2, t2, s2, n2) {
2836
+ 46 === n2 ? Us(e2, t2) : kt(n2) ? (t2.state = 5, t2.acceptStateReached = true) : Us(e2, t2);
2837
+ }
2838
+ function rs(e2, t2, s2) {
2839
+ 46 === s2 ? t2.state = 14 : 58 === s2 ? t2.state = 8 : it(s2) || (It(s2) ? t2.state = 10 : lt(s2) ? e2.removeMachine(t2) : Us(e2, t2));
2840
+ }
2841
+ function is(e2, t2, s2) {
2842
+ it(s2) ? (t2.octetsEncountered++, 4 === t2.octetsEncountered && (t2.acceptStateReached = true), t2.state = 13) : Us(e2, t2);
2843
+ }
2844
+ function os(e2, t2, s2) {
2845
+ it(s2) ? t2.state = 9 : Us(e2, t2);
2846
+ }
2847
+ function cs(e2, t2, s2) {
2848
+ it(s2) || (It(s2) ? t2.state = 10 : Us(e2, t2));
2849
+ }
2850
+ function ls(e2, t2, s2) {
2851
+ Tt(s2) || Us(e2, t2);
2852
+ }
2853
+ function hs(e2, t2, s2, n2) {
2854
+ "a" === s2.toLowerCase() ? t2.state = 16 : vs(e2, t2, n2);
2855
+ }
2856
+ function us(e2, t2, s2, n2) {
2857
+ "i" === s2.toLowerCase() ? t2.state = 17 : vs(e2, t2, n2);
2858
+ }
2859
+ function ds(e2, t2, s2, n2) {
2860
+ "l" === s2.toLowerCase() ? t2.state = 18 : vs(e2, t2, n2);
2861
+ }
2862
+ function ps(e2, t2, s2, n2) {
2863
+ "t" === s2.toLowerCase() ? t2.state = 19 : vs(e2, t2, n2);
2864
+ }
2865
+ function ms(e2, t2, s2, n2) {
2866
+ "o" === s2.toLowerCase() ? t2.state = 20 : vs(e2, t2, n2);
2867
+ }
2868
+ function fs(e2, t2, s2) {
2869
+ 58 === s2 ? t2.state = 21 : vs(e2, t2, s2);
2870
+ }
2871
+ function gs(e2, t2, s2) {
2872
+ Dt(s2) ? t2.state = 22 : e2.removeMachine(t2);
2873
+ }
2874
+ function vs(e2, t2, s2) {
2875
+ 46 === s2 ? t2.state = 23 : 64 === s2 ? t2.state = 24 : Dt(s2) ? t2.state = 22 : e2.removeMachine(t2);
2876
+ }
2877
+ function bs(e2, t2, s2) {
2878
+ 46 === s2 || 64 === s2 ? e2.removeMachine(t2) : Dt(s2) ? t2.state = 22 : e2.removeMachine(t2);
2879
+ }
2880
+ function ys(e2, t2, s2) {
2881
+ kt(s2) ? t2.state = 25 : e2.removeMachine(t2);
2882
+ }
2883
+ function ws(e2, t2, s2) {
2884
+ 46 === s2 ? t2.state = 27 : 45 === s2 ? t2.state = 26 : Ct(s2) || Us(e2, t2);
2885
+ }
2886
+ function ks(e2, t2, s2) {
2887
+ 45 === s2 || 46 === s2 ? Us(e2, t2) : Ct(s2) ? t2.state = 25 : Us(e2, t2);
2888
+ }
2889
+ function Cs(e2, t2, s2) {
2890
+ 46 === s2 || 45 === s2 ? Us(e2, t2) : kt(s2) ? (t2.state = 25, t2.acceptStateReached = true) : Us(e2, t2);
2891
+ }
2892
+ function Ts(e2, t2, s2) {
2893
+ Pt(s2) ? (t2.state = 29, t2.acceptStateReached = true) : e2.removeMachine(t2);
2894
+ }
2895
+ function Is(e2, t2, s2) {
2896
+ Pt(s2) || Us(e2, t2);
2897
+ }
2898
+ function xs(e2, t2, s2) {
2899
+ Wt(s2) ? (t2.state = 31, t2.acceptStateReached = true) : e2.removeMachine(t2);
2900
+ }
2901
+ function Ss(e2, t2, s2) {
2902
+ Wt(s2) || (lt(s2) ? e2.removeMachine(t2) : Us(e2, t2));
2903
+ }
2904
+ function Es(e2, t2, s2, n2) {
2905
+ it(n2) ? t2.state = 38 : (e2.removeMachine(t2), Yt(e2, s2, n2));
2906
+ }
2907
+ function Ms(e2, t2, s2, n2) {
2908
+ it(n2) ? t2.state = 33 : e2.removeMachine(t2), Yt(e2, s2, n2);
2909
+ }
2910
+ function As(e2, t2, s2) {
2911
+ it(s2) ? t2.state = 34 : e2.removeMachine(t2);
2912
+ }
2913
+ function Ns(e2, t2, s2) {
2914
+ it(s2) ? t2.state = 35 : e2.removeMachine(t2);
2915
+ }
2916
+ function Rs(e2, t2, s2) {
2917
+ 41 === s2 ? t2.state = 36 : e2.removeMachine(t2);
2918
+ }
2919
+ function _s(e2, t2, s2, n2) {
2920
+ it(n2) ? t2.state = 38 : Ft(n2) ? t2.state = 39 : e2.removeMachine(t2);
2921
+ }
2922
+ function Ds(e2, t2, s2, n2) {
2923
+ var a2 = e2.charIdx;
2924
+ t2.acceptStateReached = true, Ht(n2) ? t2.state = 40 : 35 === n2 ? t2.state = 41 : it(n2) || (40 === n2 ? t2.state = 32 : Ft(n2) ? t2.state = 39 : (Us(e2, t2), yt(n2) && e2.addMachine(qs(a2, 0))));
2925
+ }
2926
+ function Os(e2, t2, s2, n2) {
2927
+ it(n2) ? t2.state = 38 : 40 === n2 ? t2.state = 32 : (Us(e2, t2), Yt(e2, s2, n2));
2928
+ }
2929
+ function Ps(e2, t2, s2) {
2930
+ Ht(s2) || (35 === s2 ? t2.state = 41 : it(s2) ? t2.state = 38 : Us(e2, t2));
2931
+ }
2932
+ function $s(e2, t2, s2) {
2933
+ Ht(s2) ? t2.state = 40 : it(s2) ? e2.removeMachine(t2) : Us(e2, t2);
2934
+ }
2935
+ function Us(e2, t2) {
2936
+ var s2 = e2.matches, n2 = e2.text, a2 = e2.charIdx, r2 = e2.tagBuilder, i2 = e2.stripPrefix, o2 = e2.stripTrailingSlash, c2 = e2.decodePercentEncoding, l2 = e2.hashtagServiceName, h2 = e2.mentionServiceName;
2937
+ if (e2.removeMachine(t2), t2.acceptStateReached) {
2938
+ var u2, d2, p2 = t2.startIdx, m2 = n2.slice(t2.startIdx, a2);
2939
+ switch (m2 = (function(e3) {
2940
+ for (var t3 = { "(": 0, "{": 0, "[": 0 }, s3 = 0; s3 < e3.length; s3++) {
2941
+ var n3 = e3.charAt(s3);
2942
+ ut(r3 = e3.charCodeAt(s3)) ? t3[n3]++ : dt(r3) && t3[Ws[n3]]--;
2857
2943
  }
2858
- }
2859
- return i2;
2860
- }, t2;
2861
- }(it), _t = new RegExp(/(?:(?:(?:(\+)?\d{1,3}[-\040.]?)?\(?\d{3}\)?[-\040.]?\d{3}[-\040.]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\040.]?(?:\d[-\040.]?){6,12}\d+))([,;]+[0-9]+#?)*/.source + "|" + /(0([1-9]{1}-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/.source, "g"), Ot = function(e2) {
2862
- function t2() {
2863
- var t3 = null !== e2 && e2.apply(this, arguments) || this;
2864
- return t3.matcherRegex = _t, t3;
2865
- }
2866
- return Ke(t2, e2), t2.prototype.parseMatches = function(e3) {
2867
- for (var t3, s2 = this.matcherRegex, n2 = this.tagBuilder, r2 = []; null !== (t3 = s2.exec(e3)); ) {
2868
- var a2 = t3[0], i2 = a2.replace(/[^0-9,;#]/g, ""), o2 = !(!t3[1] && !t3[2]), u2 = 0 == t3.index ? "" : e3.substr(t3.index - 1, 1), c2 = e3.substr(t3.index + a2.length, 1), l2 = !u2.match(/\d/) && !c2.match(/\d/);
2869
- this.testMatch(t3[3]) && this.testMatch(a2) && l2 && r2.push(new rt({ tagBuilder: n2, matchedText: a2, offset: t3.index, number: i2, plusSign: o2 }));
2870
- }
2871
- return r2;
2872
- }, t2.prototype.testMatch = function(e3) {
2873
- return ct.test(e3);
2874
- }, t2;
2875
- }(it), Pt = new RegExp("@[_" + vt + "]{1,50}(?![_" + vt + "])", "g"), $t = new RegExp("@[_." + vt + "]{1,30}(?![_" + vt + "])", "g"), jt = new RegExp("@[-_." + vt + "]{1,50}(?![-_" + vt + "])", "g"), Ut = new RegExp("[^" + vt + "]"), Wt = function(e2) {
2876
- function t2(t3) {
2877
- var s2 = e2.call(this, t3) || this;
2878
- return s2.serviceName = "twitter", s2.matcherRegexes = { twitter: Pt, instagram: $t, soundcloud: jt }, s2.nonWordCharRegex = Ut, s2.serviceName = t3.serviceName, s2;
2879
- }
2880
- return Ke(t2, e2), t2.prototype.parseMatches = function(e3) {
2881
- var t3, s2 = this.serviceName, n2 = this.matcherRegexes[this.serviceName], r2 = this.nonWordCharRegex, a2 = this.tagBuilder, i2 = [];
2882
- if (!n2) return i2;
2883
- for (; null !== (t3 = n2.exec(e3)); ) {
2884
- var o2 = t3.index, u2 = e3.charAt(o2 - 1);
2885
- if (0 === o2 || r2.test(u2)) {
2886
- var c2 = t3[0].replace(/\.+$/g, ""), l2 = c2.slice(1);
2887
- i2.push(new nt({ tagBuilder: a2, matchedText: c2, offset: o2, serviceName: s2, mention: l2 }));
2944
+ var a3 = e3.length - 1;
2945
+ for (; a3 >= 0; ) {
2946
+ var r3;
2947
+ n3 = e3.charAt(a3);
2948
+ if (dt(r3 = e3.charCodeAt(a3))) {
2949
+ var i3 = Ws[n3];
2950
+ if (!(t3[i3] < 0)) break;
2951
+ t3[i3]++, a3--;
2952
+ } else {
2953
+ if (!ht(r3)) break;
2954
+ a3--;
2955
+ }
2888
2956
  }
2889
- }
2890
- return i2;
2891
- }, t2;
2892
- }(it);
2893
- function qt(e2, t2) {
2894
- for (var s2, n2 = t2.onOpenTag, r2 = t2.onCloseTag, a2 = t2.onText, i2 = t2.onComment, o2 = t2.onDoctype, u2 = new Ht(), c2 = 0, l2 = e2.length, h2 = 0, d2 = 0, p2 = u2; c2 < l2; ) {
2895
- var f2 = e2.charAt(c2);
2896
- switch (h2) {
2957
+ return e3.slice(0, a3 + 1);
2958
+ })(m2), t2.type) {
2897
2959
  case 0:
2898
- m2(f2);
2960
+ if (64 === n2.charCodeAt(t2.startIdx - 1)) return;
2961
+ switch (t2.matchType) {
2962
+ case 0:
2963
+ var f2 = mt.exec(m2);
2964
+ if (f2 && (p2 += f2.index, m2 = m2.slice(f2.index)), !(function(e3) {
2965
+ if (gt.test(e3)) return false;
2966
+ var t3 = e3.match(vt);
2967
+ if (!t3) return false;
2968
+ var s3 = !!t3[1], n3 = t3[2];
2969
+ return !!s3 || !(-1 === n3.indexOf(".") || !/[A-Za-z]/.test(n3));
2970
+ })(m2)) return;
2971
+ break;
2972
+ case 1:
2973
+ if (!(function(e3) {
2974
+ var t3 = e3.match(bt);
2975
+ if (!t3) return false;
2976
+ var s3 = t3[0].split(".");
2977
+ return !(s3.length < 2 || !xt(s3[s3.length - 1]));
2978
+ })(m2)) return;
2979
+ break;
2980
+ case 2:
2981
+ if (d2 = m2.split(Et, 1)[0], !St.test(d2)) return;
2982
+ break;
2983
+ default:
2984
+ Ze(t2);
2985
+ }
2986
+ s2.push(new Nt({ tagBuilder: r2, matchedText: m2, offset: p2, urlMatchType: js(t2.matchType), url: m2, protocolRelativeMatch: "//" === m2.slice(0, 2), stripPrefix: i2, stripTrailingSlash: o2, decodePercentEncoding: c2 }));
2899
2987
  break;
2900
2988
  case 1:
2901
- g2(f2);
2989
+ xt(m2.split(".").pop()) && s2.push(new Ot({ tagBuilder: r2, matchedText: m2, offset: p2, email: m2.replace(Rt, "") }));
2902
2990
  break;
2903
2991
  case 2:
2904
- w2(f2);
2992
+ m2.length <= 140 && s2.push(new Ut({ tagBuilder: r2, matchedText: m2, offset: p2, serviceName: l2, hashtag: m2.slice(1) }));
2905
2993
  break;
2906
2994
  case 3:
2907
- v2(f2);
2995
+ (function(e3, t3) {
2996
+ return jt[t3].test(e3);
2997
+ })(m2, h2) && s2.push(new Bt({ tagBuilder: r2, matchedText: m2, offset: p2, serviceName: h2, mention: m2.slice(1) }));
2908
2998
  break;
2909
2999
  case 4:
2910
- b2(f2);
2911
- break;
2912
- case 5:
2913
- y2(f2);
2914
- break;
2915
- case 6:
2916
- C2(f2);
2917
- break;
2918
- case 7:
2919
- A2(f2);
2920
- break;
2921
- case 8:
2922
- E2(f2);
2923
- break;
2924
- case 9:
2925
- k2(f2);
2926
- break;
2927
- case 10:
2928
- x2(f2);
2929
- break;
2930
- case 11:
2931
- T2(f2);
2932
- break;
2933
- case 12:
2934
- I2(f2);
2935
- break;
2936
- case 13:
2937
- D2();
2938
- break;
2939
- case 14:
2940
- S2(f2);
2941
- break;
2942
- case 15:
2943
- M2(f2);
2944
- break;
2945
- case 16:
2946
- F2(f2);
2947
- break;
2948
- case 17:
2949
- B2(f2);
2950
- break;
2951
- case 18:
2952
- R2(f2);
2953
- break;
2954
- case 19:
2955
- N2(f2);
2956
- break;
2957
- case 20:
2958
- _2(f2);
3000
+ if (m2 = m2.replace(/ +$/g, ""), ("+" === (u2 = m2).charAt(0) || Lt.test(u2)) && Gt.test(u2)) {
3001
+ var g2 = m2.replace(/[^0-9,;#]/g, "");
3002
+ s2.push(new Jt({ tagBuilder: r2, matchedText: m2, offset: p2, number: g2, plusSign: "+" === m2.charAt(0) }));
3003
+ }
2959
3004
  break;
2960
3005
  default:
2961
- Je(h2);
3006
+ Ze(t2);
2962
3007
  }
2963
- c2++;
2964
- }
2965
- function m2(e3) {
2966
- "<" === e3 && P2();
2967
- }
2968
- function g2(e3) {
2969
- "!" === e3 ? h2 = 13 : "/" === e3 ? (h2 = 2, p2 = new Ht(et(et({}, p2), { isClosing: true }))) : "<" === e3 ? P2() : ot.test(e3) ? (h2 = 3, p2 = new Ht(et(et({}, p2), { isOpening: true }))) : (h2 = 0, p2 = u2);
2970
- }
2971
- function v2(e3) {
2972
- lt.test(e3) ? (p2 = new Ht(et(et({}, p2), { name: j2() })), h2 = 4) : "<" === e3 ? P2() : "/" === e3 ? (p2 = new Ht(et(et({}, p2), { name: j2() })), h2 = 12) : ">" === e3 ? (p2 = new Ht(et(et({}, p2), { name: j2() })), $2()) : ot.test(e3) || ut.test(e3) || ":" === e3 || O2();
2973
- }
2974
- function w2(e3) {
2975
- ">" === e3 ? O2() : ot.test(e3) ? h2 = 3 : O2();
2976
- }
2977
- function b2(e3) {
2978
- lt.test(e3) || ("/" === e3 ? h2 = 12 : ">" === e3 ? $2() : "<" === e3 ? P2() : "=" === e3 || ht.test(e3) || dt.test(e3) ? O2() : h2 = 5);
2979
- }
2980
- function y2(e3) {
2981
- lt.test(e3) ? h2 = 6 : "/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? $2() : "<" === e3 ? P2() : ht.test(e3) && O2();
2982
- }
2983
- function C2(e3) {
2984
- lt.test(e3) || ("/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? $2() : "<" === e3 ? P2() : ht.test(e3) ? O2() : h2 = 5);
2985
- }
2986
- function A2(e3) {
2987
- lt.test(e3) || ('"' === e3 ? h2 = 8 : "'" === e3 ? h2 = 9 : /[>=`]/.test(e3) ? O2() : "<" === e3 ? P2() : h2 = 10);
2988
- }
2989
- function E2(e3) {
2990
- '"' === e3 && (h2 = 11);
2991
- }
2992
- function k2(e3) {
2993
- "'" === e3 && (h2 = 11);
2994
- }
2995
- function x2(e3) {
2996
- lt.test(e3) ? h2 = 4 : ">" === e3 ? $2() : "<" === e3 && P2();
2997
- }
2998
- function T2(e3) {
2999
- lt.test(e3) ? h2 = 4 : "/" === e3 ? h2 = 12 : ">" === e3 ? $2() : "<" === e3 ? P2() : (h2 = 4, c2--);
3000
- }
3001
- function I2(e3) {
3002
- ">" === e3 ? (p2 = new Ht(et(et({}, p2), { isClosing: true })), $2()) : h2 = 4;
3003
- }
3004
- function D2(t3) {
3005
- "--" === e2.substr(c2, 2) ? (c2 += 2, p2 = new Ht(et(et({}, p2), { type: "comment" })), h2 = 14) : "DOCTYPE" === e2.substr(c2, 7).toUpperCase() ? (c2 += 7, p2 = new Ht(et(et({}, p2), { type: "doctype" })), h2 = 20) : O2();
3006
- }
3007
- function S2(e3) {
3008
- "-" === e3 ? h2 = 15 : ">" === e3 ? O2() : h2 = 16;
3009
- }
3010
- function M2(e3) {
3011
- "-" === e3 ? h2 = 18 : ">" === e3 ? O2() : h2 = 16;
3012
- }
3013
- function F2(e3) {
3014
- "-" === e3 && (h2 = 17);
3015
3008
  }
3016
- function B2(e3) {
3017
- h2 = "-" === e3 ? 18 : 16;
3018
- }
3019
- function R2(e3) {
3020
- ">" === e3 ? $2() : "!" === e3 ? h2 = 19 : "-" === e3 || (h2 = 16);
3021
- }
3022
- function N2(e3) {
3023
- "-" === e3 ? h2 = 17 : ">" === e3 ? $2() : h2 = 16;
3024
- }
3025
- function _2(e3) {
3026
- ">" === e3 ? $2() : "<" === e3 && P2();
3027
- }
3028
- function O2() {
3029
- h2 = 0, p2 = u2;
3030
- }
3031
- function P2() {
3032
- h2 = 1, p2 = new Ht({ idx: c2 });
3033
- }
3034
- function $2() {
3035
- var t3 = e2.slice(d2, p2.idx);
3036
- t3 && a2(t3, d2), "comment" === p2.type ? i2(p2.idx) : "doctype" === p2.type ? o2(p2.idx) : (p2.isOpening && n2(p2.name, p2.idx), p2.isClosing && r2(p2.name, p2.idx)), O2(), d2 = c2 + 1;
3037
- }
3038
- function j2() {
3039
- var t3 = p2.idx + (p2.isClosing ? 2 : 1);
3040
- return e2.slice(t3, c2).toLowerCase();
3009
+ }
3010
+ function js(e2) {
3011
+ switch (e2) {
3012
+ case 0:
3013
+ return "scheme";
3014
+ case 1:
3015
+ return "tld";
3016
+ case 2:
3017
+ return "ipV4";
3018
+ default:
3019
+ Ze(e2);
3041
3020
  }
3042
- d2 < c2 && (s2 = e2.slice(d2, c2), a2(s2, d2), d2 = c2 + 1);
3043
3021
  }
3044
- var Ht = function(e2) {
3022
+ var Ws = { ")": "(", "}": "{", "]": "[" };
3023
+ function qs(e2, t2) {
3024
+ return { type: 0, startIdx: e2, state: t2, acceptStateReached: false, matchType: 0 };
3025
+ }
3026
+ function Bs(e2, t2) {
3027
+ return { type: 0, startIdx: e2, state: t2, acceptStateReached: false, matchType: 1 };
3028
+ }
3029
+ function Ls(e2, t2) {
3030
+ return { type: 4, startIdx: e2, state: t2, acceptStateReached: false };
3031
+ }
3032
+ function Gs(e2) {
3033
+ return 0 === e2.type && 0 === e2.matchType;
3034
+ }
3035
+ var Fs = function(e2) {
3045
3036
  void 0 === e2 && (e2 = {}), this.idx = void 0 !== e2.idx ? e2.idx : -1, this.type = e2.type || "tag", this.name = e2.name || "", this.isOpening = !!e2.isOpening, this.isClosing = !!e2.isClosing;
3046
- }, Lt = function() {
3037
+ }, Hs = new Fs(), Js = function(e2, t2) {
3038
+ this.charIdx = 0, this.state = 0, this.currentDataIdx = 0, this.currentTag = Hs, this.html = e2, this.callbacks = t2;
3039
+ };
3040
+ function zs(e2, t2) {
3041
+ "<" === t2 && gn(e2);
3042
+ }
3043
+ function Ys(e2, t2, s2) {
3044
+ "!" === t2 ? e2.state = 13 : "/" === t2 ? (e2.state = 2, e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { isClosing: true }))) : "<" === t2 ? gn(e2) : rt(s2) ? (e2.state = 3, e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { isOpening: true }))) : (e2.state = 0, e2.currentTag = Hs);
3045
+ }
3046
+ function Qs(e2, t2, s2) {
3047
+ ct(s2) ? (e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { name: bn(e2) })), e2.state = 4) : "<" === t2 ? gn(e2) : "/" === t2 ? (e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { name: bn(e2) })), e2.state = 12) : ">" === t2 ? (e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { name: bn(e2) })), vn(e2)) : rt(s2) || it(s2) || ":" === t2 || fn(e2);
3048
+ }
3049
+ function Vs(e2, t2, s2) {
3050
+ ">" === t2 ? fn(e2) : rt(s2) ? e2.state = 3 : fn(e2);
3051
+ }
3052
+ function Ks(e2, t2, s2) {
3053
+ var n2;
3054
+ ct(s2) || ("/" === t2 ? e2.state = 12 : ">" === t2 ? vn(e2) : "<" === t2 ? gn(e2) : "=" === t2 || ot(s2) || ((n2 = s2) >= 0 && n2 <= 31 || 127 == n2) ? fn(e2) : e2.state = 5);
3055
+ }
3056
+ function Zs(e2, t2, s2) {
3057
+ ct(s2) ? e2.state = 6 : "/" === t2 ? e2.state = 12 : "=" === t2 ? e2.state = 7 : ">" === t2 ? vn(e2) : "<" === t2 ? gn(e2) : ot(s2) && fn(e2);
3058
+ }
3059
+ function Xs(e2, t2, s2) {
3060
+ ct(s2) || ("/" === t2 ? e2.state = 12 : "=" === t2 ? e2.state = 7 : ">" === t2 ? vn(e2) : "<" === t2 ? gn(e2) : ot(s2) ? fn(e2) : e2.state = 5);
3061
+ }
3062
+ function en(e2, t2, s2) {
3063
+ ct(s2) || ('"' === t2 ? e2.state = 8 : "'" === t2 ? e2.state = 9 : /[>=`]/.test(t2) ? fn(e2) : "<" === t2 ? gn(e2) : e2.state = 10);
3064
+ }
3065
+ function tn(e2, t2) {
3066
+ '"' === t2 && (e2.state = 11);
3067
+ }
3068
+ function sn(e2, t2) {
3069
+ "'" === t2 && (e2.state = 11);
3070
+ }
3071
+ function nn(e2, t2, s2) {
3072
+ ct(s2) ? e2.state = 4 : ">" === t2 ? vn(e2) : "<" === t2 && gn(e2);
3073
+ }
3074
+ function an(e2, t2, s2) {
3075
+ ct(s2) ? e2.state = 4 : "/" === t2 ? e2.state = 12 : ">" === t2 ? vn(e2) : "<" === t2 ? gn(e2) : (e2.state = 4, (function(e3) {
3076
+ e3.charIdx--;
3077
+ })(e2));
3078
+ }
3079
+ function rn(e2, t2) {
3080
+ ">" === t2 ? (e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { isClosing: true })), vn(e2)) : fn(e2);
3081
+ }
3082
+ function on(e2) {
3083
+ var t2 = e2.html, s2 = e2.charIdx;
3084
+ "--" === t2.slice(s2, s2 + 2) ? (e2.charIdx++, e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { type: "comment" })), e2.state = 14) : "DOCTYPE" === t2.slice(s2, s2 + 7).toUpperCase() ? (e2.charIdx += 6, e2.currentTag = new Fs(Ye(Ye({}, e2.currentTag), { type: "doctype" })), e2.state = 20) : fn(e2);
3085
+ }
3086
+ function cn(e2, t2) {
3087
+ "-" === t2 ? e2.state = 15 : ">" === t2 ? fn(e2) : e2.state = 16;
3088
+ }
3089
+ function ln(e2, t2) {
3090
+ "-" === t2 ? e2.state = 18 : ">" === t2 ? fn(e2) : e2.state = 16;
3091
+ }
3092
+ function hn(e2, t2) {
3093
+ "-" === t2 && (e2.state = 17);
3094
+ }
3095
+ function un(e2, t2) {
3096
+ e2.state = "-" === t2 ? 18 : 16;
3097
+ }
3098
+ function dn(e2, t2) {
3099
+ ">" === t2 ? vn(e2) : "!" === t2 ? e2.state = 19 : "-" === t2 || (e2.state = 16);
3100
+ }
3101
+ function pn(e2, t2) {
3102
+ "-" === t2 ? e2.state = 17 : ">" === t2 ? vn(e2) : e2.state = 16;
3103
+ }
3104
+ function mn(e2, t2) {
3105
+ ">" === t2 ? vn(e2) : "<" === t2 && gn(e2);
3106
+ }
3107
+ function fn(e2) {
3108
+ e2.state = 0, e2.currentTag = Hs;
3109
+ }
3110
+ function gn(e2) {
3111
+ e2.state = 1, e2.currentTag = new Fs({ idx: e2.charIdx });
3112
+ }
3113
+ function vn(e2) {
3114
+ var t2 = e2.html.slice(e2.currentDataIdx, e2.currentTag.idx);
3115
+ t2 && e2.callbacks.onText(t2, e2.currentDataIdx);
3116
+ var s2 = e2.currentTag;
3117
+ "comment" === s2.type ? e2.callbacks.onComment(s2.idx) : "doctype" === s2.type ? e2.callbacks.onDoctype(s2.idx) : (s2.isOpening && e2.callbacks.onOpenTag(s2.name, s2.idx), s2.isClosing && e2.callbacks.onCloseTag(s2.name, s2.idx)), fn(e2), e2.currentDataIdx = e2.charIdx + 1;
3118
+ }
3119
+ function bn(e2) {
3120
+ var t2 = e2.currentTag.idx + (e2.currentTag.isClosing ? 2 : 1);
3121
+ return e2.html.slice(t2, e2.charIdx).toLowerCase();
3122
+ }
3123
+ var yn = (function() {
3047
3124
  function e2(t2) {
3048
- void 0 === t2 && (t2 = {}), this.version = e2.version, this.urls = {}, this.email = true, this.phone = true, this.hashtag = false, this.mention = false, this.newWindow = true, this.stripPrefix = { scheme: true, www: true }, this.stripTrailingSlash = true, this.decodePercentEncoding = true, this.truncate = { length: 0, location: "end" }, this.className = "", this.replaceFn = null, this.context = void 0, this.sanitizeHtml = false, this.matchers = null, this.tagBuilder = null, this.urls = this.normalizeUrlsCfg(t2.urls), this.email = "boolean" == typeof t2.email ? t2.email : this.email, this.phone = "boolean" == typeof t2.phone ? t2.phone : this.phone, this.hashtag = t2.hashtag || this.hashtag, this.mention = t2.mention || this.mention, this.newWindow = "boolean" == typeof t2.newWindow ? t2.newWindow : this.newWindow, this.stripPrefix = this.normalizeStripPrefixCfg(t2.stripPrefix), this.stripTrailingSlash = "boolean" == typeof t2.stripTrailingSlash ? t2.stripTrailingSlash : this.stripTrailingSlash, this.decodePercentEncoding = "boolean" == typeof t2.decodePercentEncoding ? t2.decodePercentEncoding : this.decodePercentEncoding, this.sanitizeHtml = t2.sanitizeHtml || false;
3125
+ void 0 === t2 && (t2 = {}), this.version = e2.version, this.urls = {}, this.email = true, this.phone = true, this.hashtag = false, this.mention = false, this.newWindow = true, this.stripPrefix = { scheme: true, www: true }, this.stripTrailingSlash = true, this.decodePercentEncoding = true, this.truncate = { length: 0, location: "end" }, this.className = "", this.replaceFn = null, this.context = void 0, this.sanitizeHtml = false, this.tagBuilder = null, this.urls = (function(e3) {
3126
+ null == e3 && (e3 = true);
3127
+ return Ve(e3) ? { schemeMatches: e3, tldMatches: e3, ipV4Matches: e3 } : { schemeMatches: !Ve(e3.schemeMatches) || e3.schemeMatches, tldMatches: !Ve(e3.tldMatches) || e3.tldMatches, ipV4Matches: !Ve(e3.ipV4Matches) || e3.ipV4Matches };
3128
+ })(t2.urls), this.email = Ve(t2.email) ? t2.email : this.email, this.phone = Ve(t2.phone) ? t2.phone : this.phone, this.hashtag = t2.hashtag || this.hashtag, this.mention = t2.mention || this.mention, this.newWindow = Ve(t2.newWindow) ? t2.newWindow : this.newWindow, this.stripPrefix = (function(e3) {
3129
+ null == e3 && (e3 = true);
3130
+ return Ve(e3) ? { scheme: e3, www: e3 } : { scheme: !Ve(e3.scheme) || e3.scheme, www: !Ve(e3.www) || e3.www };
3131
+ })(t2.stripPrefix), this.stripTrailingSlash = Ve(t2.stripTrailingSlash) ? t2.stripTrailingSlash : this.stripTrailingSlash, this.decodePercentEncoding = Ve(t2.decodePercentEncoding) ? t2.decodePercentEncoding : this.decodePercentEncoding, this.sanitizeHtml = t2.sanitizeHtml || false;
3049
3132
  var s2 = this.mention;
3050
- if (false !== s2 && "twitter" !== s2 && "instagram" !== s2 && "soundcloud" !== s2) throw new Error("invalid `mention` cfg - see docs");
3051
- var n2 = this.hashtag;
3052
- if (false !== n2 && "twitter" !== n2 && "facebook" !== n2 && "instagram" !== n2) throw new Error("invalid `hashtag` cfg - see docs");
3053
- this.truncate = this.normalizeTruncateCfg(t2.truncate), this.className = t2.className || this.className, this.replaceFn = t2.replaceFn || this.replaceFn, this.context = t2.context || this;
3133
+ if (false !== s2 && -1 === qt.indexOf(s2)) throw new Error("invalid `mention` cfg '".concat(s2, "' - see docs"));
3134
+ var n2, a2 = this.hashtag;
3135
+ if (false !== a2 && -1 === $t.indexOf(a2)) throw new Error("invalid `hashtag` cfg '".concat(a2, "' - see docs"));
3136
+ this.truncate = "number" == typeof (n2 = t2.truncate) ? { length: n2, location: "end" } : Ye({ length: Number.POSITIVE_INFINITY, location: "end" }, n2), this.className = t2.className || this.className, this.replaceFn = t2.replaceFn || this.replaceFn, this.context = t2.context || this;
3054
3137
  }
3055
3138
  return e2.link = function(t2, s2) {
3056
3139
  return new e2(s2).link(t2);
3057
3140
  }, e2.parse = function(t2, s2) {
3058
3141
  return new e2(s2).parse(t2);
3059
- }, e2.prototype.normalizeUrlsCfg = function(e3) {
3060
- return null == e3 && (e3 = true), "boolean" == typeof e3 ? { schemeMatches: e3, wwwMatches: e3, tldMatches: e3 } : { schemeMatches: "boolean" != typeof e3.schemeMatches || e3.schemeMatches, wwwMatches: "boolean" != typeof e3.wwwMatches || e3.wwwMatches, tldMatches: "boolean" != typeof e3.tldMatches || e3.tldMatches };
3061
- }, e2.prototype.normalizeStripPrefixCfg = function(e3) {
3062
- return null == e3 && (e3 = true), "boolean" == typeof e3 ? { scheme: e3, www: e3 } : { scheme: "boolean" != typeof e3.scheme || e3.scheme, www: "boolean" != typeof e3.www || e3.www };
3063
- }, e2.prototype.normalizeTruncateCfg = function(e3) {
3064
- return "number" == typeof e3 ? { length: e3, location: "end" } : function(e4, t2) {
3065
- for (var s2 in t2) t2.hasOwnProperty(s2) && void 0 === e4[s2] && (e4[s2] = t2[s2]);
3066
- return e4;
3067
- }(e3 || {}, { length: Number.POSITIVE_INFINITY, location: "end" });
3068
3142
  }, e2.prototype.parse = function(e3) {
3069
- var t2 = this, s2 = ["a", "style", "script"], n2 = 0, r2 = [];
3070
- return qt(e3, { onOpenTag: function(e4) {
3143
+ var t2 = this, s2 = ["a", "style", "script"], n2 = 0, a2 = [];
3144
+ return (function(e4, t3) {
3145
+ for (var s3 = new Js(e4, t3), n3 = e4.length; s3.charIdx < n3; ) {
3146
+ var a3 = e4.charAt(s3.charIdx), r2 = e4.charCodeAt(s3.charIdx);
3147
+ switch (s3.state) {
3148
+ case 0:
3149
+ zs(s3, a3);
3150
+ break;
3151
+ case 1:
3152
+ Ys(s3, a3, r2);
3153
+ break;
3154
+ case 2:
3155
+ Vs(s3, a3, r2);
3156
+ break;
3157
+ case 3:
3158
+ Qs(s3, a3, r2);
3159
+ break;
3160
+ case 4:
3161
+ Ks(s3, a3, r2);
3162
+ break;
3163
+ case 5:
3164
+ Zs(s3, a3, r2);
3165
+ break;
3166
+ case 6:
3167
+ Xs(s3, a3, r2);
3168
+ break;
3169
+ case 7:
3170
+ en(s3, a3, r2);
3171
+ break;
3172
+ case 8:
3173
+ tn(s3, a3);
3174
+ break;
3175
+ case 9:
3176
+ sn(s3, a3);
3177
+ break;
3178
+ case 10:
3179
+ nn(s3, a3, r2);
3180
+ break;
3181
+ case 11:
3182
+ an(s3, a3, r2);
3183
+ break;
3184
+ case 12:
3185
+ rn(s3, a3);
3186
+ break;
3187
+ case 13:
3188
+ on(s3);
3189
+ break;
3190
+ case 14:
3191
+ cn(s3, a3);
3192
+ break;
3193
+ case 15:
3194
+ ln(s3, a3);
3195
+ break;
3196
+ case 16:
3197
+ hn(s3, a3);
3198
+ break;
3199
+ case 17:
3200
+ un(s3, a3);
3201
+ break;
3202
+ case 18:
3203
+ dn(s3, a3);
3204
+ break;
3205
+ case 19:
3206
+ pn(s3, a3);
3207
+ break;
3208
+ case 20:
3209
+ mn(s3, a3);
3210
+ break;
3211
+ default:
3212
+ Ze(s3.state);
3213
+ }
3214
+ s3.charIdx++;
3215
+ }
3216
+ s3.currentDataIdx < s3.charIdx && (function(e5) {
3217
+ var t4 = e5.html.slice(e5.currentDataIdx, e5.charIdx);
3218
+ e5.callbacks.onText(t4, e5.currentDataIdx), e5.currentDataIdx = e5.charIdx + 1;
3219
+ })(s3);
3220
+ })(e3, { onOpenTag: function(e4) {
3071
3221
  s2.indexOf(e4) >= 0 && n2++;
3072
3222
  }, onText: function(e4, s3) {
3073
3223
  if (0 === n2) {
3074
- var a2 = function(e5, t3) {
3075
- if (!t3.global) throw new Error("`splitRegex` must have the 'g' flag set");
3076
- for (var s4, n3 = [], r3 = 0; s4 = t3.exec(e5); ) n3.push(e5.substring(r3, s4.index)), n3.push(s4[0]), r3 = s4.index + s4[0].length;
3077
- return n3.push(e5.substring(r3)), n3;
3078
- }(e4, /(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi), i2 = s3;
3079
- a2.forEach(function(e5, s4) {
3224
+ var r2 = e4.split(/(&nbsp;|&#160;|&lt;|&#60;|&gt;|&#62;|&quot;|&#34;|&#39;)/gi), i2 = s3;
3225
+ r2.forEach(function(e5, s4) {
3080
3226
  if (s4 % 2 == 0) {
3081
3227
  var n3 = t2.parseText(e5, i2);
3082
- r2.push.apply(r2, n3);
3228
+ a2.push.apply(a2, (function(e6, t3, s5) {
3229
+ if (s5 || 2 === arguments.length) for (var n4, a3 = 0, r3 = t3.length; a3 < r3; a3++) !n4 && a3 in t3 || (n4 || (n4 = Array.prototype.slice.call(t3, 0, a3)), n4[a3] = t3[a3]);
3230
+ return e6.concat(n4 || Array.prototype.slice.call(t3));
3231
+ })([], (function(e6, t3) {
3232
+ var s5 = "function" == typeof Symbol && e6[Symbol.iterator];
3233
+ if (!s5) return e6;
3234
+ var n4, a3, r3 = s5.call(e6), i3 = [];
3235
+ try {
3236
+ for (; (void 0 === t3 || t3-- > 0) && !(n4 = r3.next()).done; ) i3.push(n4.value);
3237
+ } catch (e7) {
3238
+ a3 = { error: e7 };
3239
+ } finally {
3240
+ try {
3241
+ n4 && !n4.done && (s5 = r3.return) && s5.call(r3);
3242
+ } finally {
3243
+ if (a3) throw a3.error;
3244
+ }
3245
+ }
3246
+ return i3;
3247
+ })(n3), false));
3083
3248
  }
3084
3249
  i2 += e5.length;
3085
3250
  });
3086
3251
  }
3087
3252
  }, onCloseTag: function(e4) {
3088
3253
  s2.indexOf(e4) >= 0 && (n2 = Math.max(n2 - 1, 0));
3089
- }, onComment: function(e4) {
3090
- }, onDoctype: function(e4) {
3091
- } }), r2 = this.compactMatches(r2), r2 = this.removeUnwantedMatches(r2);
3254
+ }, onComment: function() {
3255
+ }, onDoctype: function() {
3256
+ } }), a2 = this.compactMatches(a2), a2 = this.removeUnwantedMatches(a2);
3092
3257
  }, e2.prototype.compactMatches = function(e3) {
3093
- e3.sort(function(e4, t3) {
3094
- return e4.getOffset() - t3.getOffset();
3095
- });
3096
- for (var t2 = 0; t2 < e3.length - 1; t2++) {
3097
- var s2 = e3[t2], n2 = s2.getOffset(), r2 = s2.getMatchedText().length, a2 = n2 + r2;
3098
- if (t2 + 1 < e3.length) {
3099
- if (e3[t2 + 1].getOffset() === n2) {
3100
- var i2 = e3[t2 + 1].getMatchedText().length > r2 ? t2 : t2 + 1;
3101
- e3.splice(i2, 1);
3102
- continue;
3103
- }
3104
- e3[t2 + 1].getOffset() < a2 && e3.splice(t2 + 1, 1);
3105
- }
3258
+ e3.sort(wn);
3259
+ for (var t2 = 0; t2 < e3.length - 1; ) {
3260
+ var s2 = e3[t2], n2 = s2.getOffset(), a2 = s2.getMatchedText().length;
3261
+ if (t2 + 1 < e3.length && e3[t2 + 1].getOffset() === n2) {
3262
+ var r2 = e3[t2 + 1].getMatchedText().length > a2 ? t2 : t2 + 1;
3263
+ e3.splice(r2, 1);
3264
+ } else t2++;
3106
3265
  }
3107
3266
  return e3;
3108
3267
  }, e2.prototype.removeUnwantedMatches = function(e3) {
3109
- return this.hashtag || ze(e3, function(e4) {
3268
+ return this.hashtag || Ke(e3, function(e4) {
3110
3269
  return "hashtag" === e4.getType();
3111
- }), this.email || ze(e3, function(e4) {
3270
+ }), this.email || Ke(e3, function(e4) {
3112
3271
  return "email" === e4.getType();
3113
- }), this.phone || ze(e3, function(e4) {
3272
+ }), this.phone || Ke(e3, function(e4) {
3114
3273
  return "phone" === e4.getType();
3115
- }), this.mention || ze(e3, function(e4) {
3274
+ }), this.mention || Ke(e3, function(e4) {
3116
3275
  return "mention" === e4.getType();
3117
- }), this.urls.schemeMatches || ze(e3, function(e4) {
3276
+ }), this.urls.schemeMatches || Ke(e3, function(e4) {
3118
3277
  return "url" === e4.getType() && "scheme" === e4.getUrlMatchType();
3119
- }), this.urls.wwwMatches || ze(e3, function(e4) {
3120
- return "url" === e4.getType() && "www" === e4.getUrlMatchType();
3121
- }), this.urls.tldMatches || ze(e3, function(e4) {
3278
+ }), this.urls.tldMatches || Ke(e3, function(e4) {
3122
3279
  return "url" === e4.getType() && "tld" === e4.getUrlMatchType();
3280
+ }), this.urls.ipV4Matches || Ke(e3, function(e4) {
3281
+ return "url" === e4.getType() && "ipV4" === e4.getUrlMatchType();
3123
3282
  }), e3;
3124
3283
  }, e2.prototype.parseText = function(e3, t2) {
3125
- void 0 === t2 && (t2 = 0), t2 = t2 || 0;
3126
- for (var s2 = this.getMatchers(), n2 = [], r2 = 0, a2 = s2.length; r2 < a2; r2++) {
3127
- for (var i2 = s2[r2].parseMatches(e3), o2 = 0, u2 = i2.length; o2 < u2; o2++) i2[o2].setOffset(t2 + i2[o2].getOffset());
3128
- n2.push.apply(n2, i2);
3129
- }
3130
- return n2;
3284
+ t2 = t2 || 0;
3285
+ for (var s2 = (function(e4, t3) {
3286
+ for (var s3 = new zt(e4, t3); s3.charIdx < s3.text.length; s3.charIdx++) {
3287
+ var n3 = e4.charAt(s3.charIdx), a3 = e4.charCodeAt(s3.charIdx);
3288
+ if (0 === s3.stateMachines.length) Yt(s3, n3, a3);
3289
+ else {
3290
+ for (var r2 = s3.stateMachines.length - 1; r2 >= 0; r2--) {
3291
+ var i2 = s3.stateMachines[r2];
3292
+ switch (i2.state) {
3293
+ case 11:
3294
+ es(s3, i2, a3);
3295
+ break;
3296
+ case 12:
3297
+ ts(s3, i2, a3);
3298
+ break;
3299
+ case 0:
3300
+ Qt(s3, i2, a3);
3301
+ break;
3302
+ case 1:
3303
+ Vt(s3, i2, a3);
3304
+ break;
3305
+ case 2:
3306
+ Kt(s3, i2, a3);
3307
+ break;
3308
+ case 3:
3309
+ Zt(s3, i2, a3);
3310
+ break;
3311
+ case 4:
3312
+ Xt(s3, i2, 0, a3);
3313
+ break;
3314
+ case 5:
3315
+ ss(s3, i2, a3);
3316
+ break;
3317
+ case 6:
3318
+ ns(s3, i2, 0, a3);
3319
+ break;
3320
+ case 7:
3321
+ as(s3, i2, 0, a3);
3322
+ break;
3323
+ case 13:
3324
+ rs(s3, i2, a3);
3325
+ break;
3326
+ case 14:
3327
+ is(s3, i2, a3);
3328
+ break;
3329
+ case 8:
3330
+ os(s3, i2, a3);
3331
+ break;
3332
+ case 9:
3333
+ cs(s3, i2, a3);
3334
+ break;
3335
+ case 10:
3336
+ ls(s3, i2, a3);
3337
+ break;
3338
+ case 15:
3339
+ hs(s3, i2, n3, a3);
3340
+ break;
3341
+ case 16:
3342
+ us(s3, i2, n3, a3);
3343
+ break;
3344
+ case 17:
3345
+ ds(s3, i2, n3, a3);
3346
+ break;
3347
+ case 18:
3348
+ ps(s3, i2, n3, a3);
3349
+ break;
3350
+ case 19:
3351
+ ms(s3, i2, n3, a3);
3352
+ break;
3353
+ case 20:
3354
+ fs(s3, i2, a3);
3355
+ break;
3356
+ case 21:
3357
+ gs(s3, i2, a3);
3358
+ break;
3359
+ case 22:
3360
+ vs(s3, i2, a3);
3361
+ break;
3362
+ case 23:
3363
+ bs(s3, i2, a3);
3364
+ break;
3365
+ case 24:
3366
+ ys(s3, i2, a3);
3367
+ break;
3368
+ case 25:
3369
+ ws(s3, i2, a3);
3370
+ break;
3371
+ case 26:
3372
+ ks(s3, i2, a3);
3373
+ break;
3374
+ case 27:
3375
+ Cs(s3, i2, a3);
3376
+ break;
3377
+ case 28:
3378
+ Ts(s3, i2, a3);
3379
+ break;
3380
+ case 29:
3381
+ Is(s3, i2, a3);
3382
+ break;
3383
+ case 30:
3384
+ xs(s3, i2, a3);
3385
+ break;
3386
+ case 31:
3387
+ Ss(s3, i2, a3);
3388
+ break;
3389
+ case 32:
3390
+ Ms(s3, i2, n3, a3);
3391
+ break;
3392
+ case 33:
3393
+ As(s3, i2, a3);
3394
+ break;
3395
+ case 34:
3396
+ Ns(s3, i2, a3);
3397
+ break;
3398
+ case 35:
3399
+ Rs(s3, i2, a3);
3400
+ break;
3401
+ case 36:
3402
+ _s(s3, i2, 0, a3);
3403
+ break;
3404
+ case 37:
3405
+ Es(s3, i2, n3, a3);
3406
+ break;
3407
+ case 38:
3408
+ Ds(s3, i2, 0, a3);
3409
+ break;
3410
+ case 39:
3411
+ Os(s3, i2, n3, a3);
3412
+ break;
3413
+ case 40:
3414
+ Ps(s3, i2, a3);
3415
+ break;
3416
+ case 41:
3417
+ $s(s3, i2, a3);
3418
+ break;
3419
+ default:
3420
+ Ze(i2.state);
3421
+ }
3422
+ }
3423
+ if (!s3.hasSchemeUrlMachine() && s3.charIdx > 0 && yt(a3)) {
3424
+ var o2 = s3.text.charCodeAt(s3.charIdx - 1);
3425
+ yt(o2) || s3.addMachine(qs(s3.charIdx, 0));
3426
+ }
3427
+ }
3428
+ }
3429
+ for (var c2 = s3.stateMachines.length - 1; c2 >= 0; c2--) s3.stateMachines.forEach(function(e5) {
3430
+ return Us(s3, e5);
3431
+ });
3432
+ return s3.matches;
3433
+ })(e3, { tagBuilder: this.getTagBuilder(), stripPrefix: this.stripPrefix, stripTrailingSlash: this.stripTrailingSlash, decodePercentEncoding: this.decodePercentEncoding, hashtagServiceName: this.hashtag, mentionServiceName: this.mention || "twitter" }), n2 = 0, a2 = s2.length; n2 < a2; n2++) s2[n2].setOffset(t2 + s2[n2].getOffset());
3434
+ return s2;
3131
3435
  }, e2.prototype.link = function(e3) {
3132
3436
  if (!e3) return "";
3133
3437
  this.sanitizeHtml && (e3 = e3.replace(/</g, "&lt;").replace(/>/g, "&gt;"));
3134
- for (var t2 = this.parse(e3), s2 = [], n2 = 0, r2 = 0, a2 = t2.length; r2 < a2; r2++) {
3135
- var i2 = t2[r2];
3438
+ for (var t2 = this.parse(e3), s2 = new Array(2 * t2.length + 1), n2 = 0, a2 = 0, r2 = t2.length; a2 < r2; a2++) {
3439
+ var i2 = t2[a2];
3136
3440
  s2.push(e3.substring(n2, i2.getOffset())), s2.push(this.createMatchReturnVal(i2)), n2 = i2.getOffset() + i2.getMatchedText().length;
3137
3441
  }
3138
3442
  return s2.push(e3.substring(n2)), s2.join("");
3139
3443
  }, e2.prototype.createMatchReturnVal = function(e3) {
3140
3444
  var t2;
3141
- return this.replaceFn && (t2 = this.replaceFn.call(this.context, e3)), "string" == typeof t2 ? t2 : false === t2 ? e3.getMatchedText() : t2 instanceof Ye ? t2.toAnchorString() : e3.buildTag().toAnchorString();
3142
- }, e2.prototype.getMatchers = function() {
3143
- if (this.matchers) return this.matchers;
3144
- var e3 = this.getTagBuilder(), t2 = [new Nt({ tagBuilder: e3, serviceName: this.hashtag }), new Tt({ tagBuilder: e3 }), new Ot({ tagBuilder: e3 }), new Wt({ tagBuilder: e3, serviceName: this.mention }), new Ft({ tagBuilder: e3, stripPrefix: this.stripPrefix, stripTrailingSlash: this.stripTrailingSlash, decodePercentEncoding: this.decodePercentEncoding })];
3145
- return this.matchers = t2;
3445
+ return this.replaceFn && (t2 = this.replaceFn.call(this.context, e3)), "string" == typeof t2 ? t2 : false === t2 ? e3.getMatchedText() : t2 instanceof et ? t2.toAnchorString() : e3.buildTag().toAnchorString();
3146
3446
  }, e2.prototype.getTagBuilder = function() {
3147
3447
  var e3 = this.tagBuilder;
3148
- return e3 || (e3 = this.tagBuilder = new Qe({ newWindow: this.newWindow, truncate: this.truncate, className: this.className })), e3;
3149
- }, e2.version = "3.14.3", e2.AnchorTagBuilder = Qe, e2.HtmlTag = Ye, e2.matcher = { Email: Tt, Hashtag: Nt, Matcher: it, Mention: Wt, Phone: Ot, Url: Ft }, e2.match = { Email: tt, Hashtag: st, Match: Ve, Mention: nt, Phone: rt, Url: at }, e2;
3150
- }();
3151
- function Gt(e2, t2 = e2) {
3448
+ return e3 || (e3 = this.tagBuilder = new nt({ newWindow: this.newWindow, truncate: this.truncate, className: this.className })), e3;
3449
+ }, e2.version = "4.1.5", e2;
3450
+ })();
3451
+ function wn(e2, t2) {
3452
+ return e2.getOffset() - t2.getOffset();
3453
+ }
3454
+ function kn(e2, t2 = e2) {
3152
3455
  return { type: "autolink", url: e2, text: t2 };
3153
3456
  }
3154
- const zt = Pe(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3) {
3457
+ const Cn = je(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e2, t2, s2]) => /* @__PURE__ */ (function(e3, t3) {
3155
3458
  return { type: "mention", id: e3, text: t3 };
3156
- }(decodeURIComponent(t2), s2)), Jt = Pe(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ function(e3) {
3459
+ })(decodeURIComponent(t2), s2)), Tn = je(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ (function(e3) {
3157
3460
  return { type: "customemoji", text: e3 };
3158
- }(t2)), Yt = Pe(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3 = []) {
3461
+ })(t2)), In = je(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e2, t2, s2]) => /* @__PURE__ */ (function(e3, t3 = []) {
3159
3462
  return { type: "link", url: e3, children: t3 };
3160
- }(t2, [s2])), Qt = Pe(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3161
- const { action: n2, params: r2 } = Zt(t2);
3162
- return /* @__PURE__ */ function(e3, t3, s3 = []) {
3463
+ })(t2, [s2])), xn = je(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3464
+ const { action: n2, params: a2 } = En(t2);
3465
+ return /* @__PURE__ */ (function(e3, t3, s3 = []) {
3163
3466
  return { type: "actionlink", action: e3, params: t3, children: s3 };
3164
- }(n2, r2, [s2]);
3165
- }), Vt = Pe(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3166
- const { action: n2, params: r2 } = Zt(t2);
3167
- return /* @__PURE__ */ function(e3, t3, s3 = []) {
3467
+ })(n2, a2, [s2]);
3468
+ }), Sn = je(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3469
+ const { action: n2, params: a2 } = En(t2);
3470
+ return /* @__PURE__ */ (function(e3, t3, s3 = []) {
3168
3471
  return { type: "actionbutton", action: e3, params: t3, children: s3 };
3169
- }(n2, r2, [s2]);
3472
+ })(n2, a2, [s2]);
3170
3473
  });
3171
- function Zt(e2) {
3474
+ function En(e2) {
3172
3475
  const t2 = e2.indexOf("?");
3173
3476
  if (-1 === t2) return { action: e2, params: {} };
3174
3477
  return { action: e2.slice(0, t2), params: Object.fromEntries(new URLSearchParams(e2.slice(t2))) };
3175
3478
  }
3176
- const Kt = Pe(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e2]) => /* @__PURE__ */ function(e3 = []) {
3479
+ const Mn = je(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e2]) => /* @__PURE__ */ (function(e3 = []) {
3177
3480
  return { type: "bulletlist", children: e3 };
3178
- }([e2.startsWith("\n") ? e2.slice(1) : e2])), Xt = Pe(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e2, t2]) => ({ type: "bulletpoint", children: [t2] })), es = (e2) => {
3481
+ })([e2.startsWith("\n") ? e2.slice(1) : e2])), An = je(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e2, t2]) => ({ type: "bulletpoint", children: [t2] })), Nn = (e2) => {
3179
3482
  const t2 = /(?:^|[^-:/\w])([(+]?[0-9](?:[-_+ ().]?[0-9]){5,11}[0-9])(?:[^-:/\w]|$)/g;
3180
3483
  let s2 = 0;
3181
3484
  const n2 = [];
3182
- for (const r2 of Z(e2, t2)) {
3183
- const t3 = r2[0], a2 = r2[1], i2 = t3.startsWith(a2) ? r2.index : r2.index + 1;
3485
+ for (const a2 of Z(e2, t2)) {
3486
+ const t3 = a2[0], r2 = a2[1], i2 = t3.startsWith(r2) ? a2.index : a2.index + 1;
3184
3487
  i2 - s2 > 0 && n2.push(e2.substring(s2, i2));
3185
- const o2 = Gt("tel:" + a2.replace(/[^0-9+]/g, ""), a2);
3186
- n2.push(o2), s2 = i2 + a2.length;
3488
+ const o2 = kn("tel:" + r2.replace(/[^0-9+]/g, ""), r2);
3489
+ n2.push(o2), s2 = i2 + r2.length;
3187
3490
  }
3188
3491
  return s2 < e2.length && n2.push(e2.substring(s2)), n2;
3189
- }, ts = (e2) => Yt(e2).flatMap((e3) => "string" == typeof e3 ? ss(e3) : ["<", ...ss(e3.url), ...ss("|" + e3.children[0] + ">")]), ss = (e2) => {
3190
- const t2 = Lt.parse(e2, { urls: true, email: true, phone: false, hashtag: false, mention: false }), s2 = [];
3492
+ }, Rn = (e2) => In(e2).flatMap((e3) => "string" == typeof e3 ? _n(e3) : ["<", ..._n(e3.url), ..._n("|" + e3.children[0] + ">")]), _n = (e2) => {
3493
+ const t2 = yn.parse(e2, { urls: true, email: true, phone: false, hashtag: false, mention: false }), s2 = [];
3191
3494
  let n2 = 0;
3192
- for (const r2 of t2) {
3193
- const t3 = r2.getOffset(), a2 = r2.getMatchedText(), i2 = a2.length;
3194
- let o2 = a2;
3195
- r2 instanceof tt ? o2 = "mailto:" + r2.getEmail() : r2 instanceof at && (o2 = r2.getUrl()), t3 > n2 && s2.push(e2.substring(n2, t3)), s2.push(Gt(o2, a2)), n2 = t3 + i2;
3495
+ for (const a2 of t2) {
3496
+ const t3 = a2.getOffset(), r2 = a2.getMatchedText(), i2 = r2.length;
3497
+ let o2 = r2;
3498
+ a2 instanceof Ot ? o2 = "mailto:" + a2.getEmail() : a2 instanceof Nt && (o2 = a2.getUrl()), t3 > n2 && s2.push(e2.substring(n2, t3)), s2.push(kn(o2, r2)), n2 = t3 + i2;
3196
3499
  }
3197
3500
  return n2 < e2.length && s2.push(e2.substring(n2)), s2;
3198
- }, ns = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
3199
- function rs(e2 = { except: [] }) {
3501
+ }, Dn = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
3502
+ function On(e2 = { except: [] }) {
3200
3503
  var _a2;
3201
- const t2 = { multilineSteps: [], singlelineSteps: [] }, s2 = (_a2 = e2.except) != null ? _a2 : ns.filter((t3) => !e2.only.includes(t3));
3202
- return s2.includes("BulletPoint") || t2.multilineSteps.push(Kt, Xt), s2.includes("Mention") || t2.singlelineSteps.push(zt), s2.includes("CustomEmoji") || t2.singlelineSteps.push(Jt), s2.includes("Codespan") || t2.multilineSteps.push(Pe(/```([^]+?)```/g, ([e3, t3]) => ({ type: "codespan", text: t3.replace(/<!!mention:.*?\|([^>]*)>/gim, "@$1").replace(/<!!customemoji:(.*?)>/gim, "$1") }))), s2.includes("FormattedLink") || t2.singlelineSteps.push(Yt), s2.includes("Actions") || (t2.singlelineSteps.push(Qt), t2.singlelineSteps.push(Vt)), s2.includes("Wikitext") || t2.singlelineSteps.push(qe), s2.includes("Autolink") || t2.singlelineSteps.push(ts, es), t2;
3504
+ const t2 = { multilineSteps: [], singlelineSteps: [] }, s2 = (_a2 = e2.except) != null ? _a2 : Dn.filter((t3) => !e2.only.includes(t3));
3505
+ return s2.includes("BulletPoint") || t2.multilineSteps.push(Mn, An), s2.includes("Mention") || t2.singlelineSteps.push(Cn), s2.includes("CustomEmoji") || t2.singlelineSteps.push(Tn), s2.includes("Codespan") || t2.multilineSteps.push(je(/```([^]+?)```/g, ([e3, t3]) => ({ type: "codespan", text: t3.replace(/<!!mention:.*?\|([^>]*)>/gim, "@$1").replace(/<!!customemoji:(.*?)>/gim, "$1") }))), s2.includes("FormattedLink") || t2.singlelineSteps.push(In), s2.includes("Actions") || (t2.singlelineSteps.push(xn), t2.singlelineSteps.push(Sn)), s2.includes("Wikitext") || t2.singlelineSteps.push(Ge), s2.includes("Autolink") || t2.singlelineSteps.push(Rn, Nn), t2;
3203
3506
  }
3204
- const as = function(e2) {
3507
+ const Pn = (function(e2) {
3205
3508
  const t2 = RegExp(`[^${e2}]+${e2}?|${e2}`, "g");
3206
3509
  return (e3) => Array.from(e3.match(t2) || []);
3207
- }("\n");
3208
- function is(e2, t2 = { except: [] }) {
3209
- let s2 = function(e3, t3) {
3510
+ })("\n");
3511
+ function $n(e2, t2 = { except: [] }) {
3512
+ let s2 = (function(e3, t3) {
3210
3513
  let s3 = [e3];
3211
- return s3 = us(s3, t3.multilineSteps), s3 = us(s3, [as]), s3 = us(s3, t3.singlelineSteps), s3 = cs(s3), s3;
3212
- }(e2, rs(t2));
3213
- return s2 = ls(s2, false), s2;
3514
+ return s3 = jn(s3, t3.multilineSteps), s3 = jn(s3, [Pn]), s3 = jn(s3, t3.singlelineSteps), s3 = Wn(s3), s3;
3515
+ })(e2, On(t2));
3516
+ return s2 = qn(s2, false), s2;
3214
3517
  }
3215
- function os(e2) {
3216
- return is(e2, { except: ["FormattedLink", "Actions"] });
3518
+ function Un(e2) {
3519
+ return $n(e2, { except: ["FormattedLink", "Actions"] });
3217
3520
  }
3218
- function us(e2, t2) {
3219
- return t2.reduce((e3, t3) => Oe(e3, t3), e2);
3521
+ function jn(e2, t2) {
3522
+ return t2.reduce((e3, t3) => Ue(e3, t3), e2);
3220
3523
  }
3221
- function cs(e2) {
3524
+ function Wn(e2) {
3222
3525
  const t2 = [];
3223
3526
  let s2 = -1;
3224
- for (const n2 of e2) "string" == typeof n2 ? "string" == typeof t2[s2] ? t2[s2] += n2 : t2[++s2] = n2 : t2[++s2] = "children" in n2 ? __spreadProps(__spreadValues({}, n2), { children: cs(n2.children) }) : n2;
3527
+ for (const n2 of e2) "string" == typeof n2 ? "string" == typeof t2[s2] ? t2[s2] += n2 : t2[++s2] = n2 : t2[++s2] = "children" in n2 ? __spreadProps(__spreadValues({}, n2), { children: Wn(n2.children) }) : n2;
3225
3528
  return t2;
3226
3529
  }
3227
- function ls(e2, t2) {
3530
+ function qn(e2, t2) {
3228
3531
  const s2 = [];
3229
3532
  let n2 = [];
3230
- for (let r2 = 0; r2 < e2.length; r2++) {
3231
- const a2 = e2[r2];
3232
- if ("string" == typeof a2) n2.push(a2);
3233
- else if ("children" in a2) {
3533
+ for (let a2 = 0; a2 < e2.length; a2++) {
3534
+ const r2 = e2[a2];
3535
+ if ("string" == typeof r2) n2.push(r2);
3536
+ else if ("children" in r2) {
3234
3537
  n2.length > 0 && (s2.push(n2.join("")), n2 = []);
3235
- const e3 = ls(a2.children, t2 || "link" === a2.type || "actionbutton" === a2.type || "actionlink" === a2.type);
3236
- s2.push(__spreadProps(__spreadValues({}, a2), { children: e3 }));
3237
- } else "autolink" === a2.type && t2 ? n2.push(a2.text) : (n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2.push(a2));
3538
+ const e3 = qn(r2.children, t2 || "link" === r2.type || "actionbutton" === r2.type || "actionlink" === r2.type);
3539
+ s2.push(__spreadProps(__spreadValues({}, r2), { children: e3 }));
3540
+ } else "autolink" === r2.type && t2 ? n2.push(r2.text) : (n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2.push(r2));
3238
3541
  }
3239
3542
  return n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2;
3240
3543
  }
3241
- class hs {
3544
+ class Bn {
3242
3545
  constructor(e2, t2, s2, n2) {
3243
3546
  this.emoji = e2, this.messageId = t2, this.conversationId = s2, this._realtimeClient = n2;
3244
3547
  }
@@ -3251,17 +3554,17 @@ class hs {
3251
3554
  add() {
3252
3555
  return __async(this, null, function* () {
3253
3556
  const e2 = yield this._realtimeClient.call({ method: "PUT", path: ["conversations", this.brandedConversationId, "messages", this.brandedMessageId, "reactions", this.emoji, this._realtimeClient.userId], data: {} });
3254
- h(`Add ${this.emoji} reaction on message ${this.messageId} in conversation ${this.conversationId}`, e2);
3557
+ d(`Add ${this.emoji} reaction on message ${this.messageId} in conversation ${this.conversationId}`, e2);
3255
3558
  });
3256
3559
  }
3257
3560
  remove() {
3258
3561
  return __async(this, null, function* () {
3259
3562
  const e2 = yield this._realtimeClient.call({ method: "DELETE", path: ["conversations", this.brandedConversationId, "messages", this.brandedMessageId, "reactions", this.emoji, this._realtimeClient.userId], data: {} });
3260
- (e2.ok || "server" !== e2.where || 404 !== e2.value.status) && h(`Remove ${this.emoji} reaction from message ${this.messageId} in conversation ${this.conversationId}`, e2);
3563
+ (e2.ok || "server" !== e2.where || 404 !== e2.value.status) && d(`Remove ${this.emoji} reaction from message ${this.messageId} in conversation ${this.conversationId}`, e2);
3261
3564
  });
3262
3565
  }
3263
3566
  }
3264
- class ds {
3567
+ class Ln {
3265
3568
  constructor(e2, t2, s2) {
3266
3569
  this.id = e2, this.conversationId = t2, this._realtimeClient = s2;
3267
3570
  }
@@ -3281,33 +3584,33 @@ class ds {
3281
3584
  const e2 = yield this._realtimeClient.call({ method: "GET", path: ["me", "conversations", this.brandedConversationId, "messages", this.brandedId], data: {} });
3282
3585
  if (!e2.ok && "server" === e2.where && 404 === e2.value.status) return null;
3283
3586
  if (!e2.ok && "server" === e2.where && 403 === e2.value.status && "NOT_A_PARTICIPANT" === e2.value.errorCode) return null;
3284
- const t2 = h("Get message " + this.id, e2), s2 = yield this._realtimeClient.hydrateMessageData(t2, this.brandedConversationId);
3285
- return Es("Get message " + this.id, s2);
3587
+ const t2 = d("Get message " + this.id, e2), s2 = yield this._realtimeClient.hydrateMessageData(t2, this.brandedConversationId);
3588
+ return Xn("Get message " + this.id, s2);
3286
3589
  });
3287
3590
  }
3288
3591
  edit(e2) {
3289
3592
  return __async(this, null, function* () {
3290
- const t2 = { content: ps(e2), custom: "string" == typeof e2 ? void 0 : e2.custom }, s2 = yield this._realtimeClient.call({ method: "PATCH", path: ["conversations", this.brandedConversationId, "messages", this.brandedId], data: t2 });
3291
- h(`Edit message ${this.id} in conversation ${this.conversationId}`, s2);
3593
+ const t2 = { content: Gn(e2), custom: "string" == typeof e2 ? void 0 : e2.custom }, s2 = yield this._realtimeClient.call({ method: "PATCH", path: ["conversations", this.brandedConversationId, "messages", this.brandedId], data: t2 });
3594
+ d(`Edit message ${this.id} in conversation ${this.conversationId}`, s2);
3292
3595
  });
3293
3596
  }
3294
3597
  delete() {
3295
3598
  return __async(this, null, function* () {
3296
3599
  const e2 = yield this._realtimeClient.call({ method: "DELETE", path: ["conversations", this.brandedConversationId, "messages", this.brandedId], data: {} });
3297
- (e2.ok || "server" !== e2.where || 404 !== e2.value.status) && h(`Delete message ${this.id} in conversation ${this.conversationId}`, e2);
3600
+ (e2.ok || "server" !== e2.where || 404 !== e2.value.status) && d(`Delete message ${this.id} in conversation ${this.conversationId}`, e2);
3298
3601
  });
3299
3602
  }
3300
3603
  }
3301
- function ps(e2) {
3604
+ function Gn(e2) {
3302
3605
  if ("string" == typeof e2) {
3303
- return [{ type: "text", children: is(e2) }];
3606
+ return [{ type: "text", children: $n(e2) }];
3304
3607
  }
3305
3608
  if ("text" in e2 && e2.text) {
3306
- return [{ type: "text", children: is(e2.text) }];
3609
+ return [{ type: "text", children: $n(e2.text) }];
3307
3610
  }
3308
3611
  if ("content" in e2 && e2.content) return e2.content;
3309
3612
  }
3310
- class fs {
3613
+ class Fn {
3311
3614
  constructor(e2, t2) {
3312
3615
  this.id = e2, this._realtimeClient = t2, this.uselessObjForTypeCheck = { subject: null, photoUrl: null, welcomeMessages: null, custom: null, access: null, notify: null };
3313
3616
  }
@@ -3346,43 +3649,43 @@ class fs {
3346
3649
  set(e2) {
3347
3650
  return __async(this, null, function* () {
3348
3651
  const t2 = this._realtimeClient.call({ method: "PUT", path: ["conversations", this.brandedId], data: e2 }), s2 = this._realtimeClient.call({ method: "PUT", path: ["conversations", this.brandedId, "participants", this.brandedUserId], data: e2 }), n2 = yield t2;
3349
- !n2.ok && "server" === n2.where && 403 === n2.value.status && "UNAUTHORIZED_TO_EDIT" === n2.value.errorCode && function(e3) {
3652
+ !n2.ok && "server" === n2.where && 403 === n2.value.status && "UNAUTHORIZED_TO_EDIT" === n2.value.errorCode && (function(e3) {
3350
3653
  if (void 0 !== e3.subject) return false;
3351
3654
  if (void 0 !== e3.photoUrl) return false;
3352
3655
  if (void 0 !== e3.welcomeMessages) return false;
3353
3656
  if (null === e3.custom) return false;
3354
3657
  if (void 0 !== e3.custom && Object.values(e3.custom).some((e4) => void 0 !== e4)) return false;
3355
3658
  return true;
3356
- }(e2) || h("Set conversation " + this.id, n2);
3357
- const r2 = yield s2;
3358
- !r2.ok && "server" === r2.where && 403 === r2.value.status && "UNAUTHORIZED_TO_EDIT_PARTICIPANT" === r2.value.errorCode && function(e3) {
3659
+ })(e2) || d("Set conversation " + this.id, n2);
3660
+ const a2 = yield s2;
3661
+ !a2.ok && "server" === a2.where && 403 === a2.value.status && "UNAUTHORIZED_TO_EDIT_PARTICIPANT" === a2.value.errorCode && (function(e3) {
3359
3662
  return void 0 === e3.access && void 0 === e3.notify;
3360
- }(e2) || h("Set your participation in conversation " + this.id, r2);
3663
+ })(e2) || d("Set your participation in conversation " + this.id, a2);
3361
3664
  });
3362
3665
  }
3363
3666
  createIfNotExists() {
3364
3667
  return __async(this, arguments, function* (e2 = {}) {
3365
3668
  const t2 = this._realtimeClient.call({ method: "POST", path: ["conversations", this.brandedId], data: e2 }), s2 = this._realtimeClient.call({ method: "POST", path: ["conversations", this.brandedId, "participants", this.brandedUserId], data: e2 }), n2 = yield t2;
3366
- (n2.ok || "server" !== n2.where || 409 !== n2.value.status) && h("Create conversation " + this.id, yield t2);
3367
- const r2 = yield s2;
3368
- (r2.ok || "server" !== r2.where || 409 !== r2.value.status) && h("Join conversation " + this.id, yield s2);
3669
+ (n2.ok || "server" !== n2.where || 409 !== n2.value.status) && d("Create conversation " + this.id, yield t2);
3670
+ const a2 = yield s2;
3671
+ (a2.ok || "server" !== a2.where || 409 !== a2.value.status) && d("Join conversation " + this.id, yield s2);
3369
3672
  });
3370
3673
  }
3371
3674
  markAsRead() {
3372
3675
  return __async(this, null, function* () {
3373
3676
  const e2 = yield this._realtimeClient.call({ method: "POST", path: ["me", "conversations", this.brandedId, "read"], data: {} });
3374
- h(`Mark ${this.id} as read`, e2);
3677
+ d(`Mark ${this.id} as read`, e2);
3375
3678
  });
3376
3679
  }
3377
3680
  markAsUnread() {
3378
3681
  return __async(this, null, function* () {
3379
3682
  const e2 = yield this._realtimeClient.call({ method: "POST", path: ["me", "conversations", this.brandedId, "unread"], data: {} });
3380
- h(`Mark ${this.id} as unread`, e2);
3683
+ d(`Mark ${this.id} as unread`, e2);
3381
3684
  });
3382
3685
  }
3383
3686
  send(e2) {
3384
3687
  return __async(this, null, function* () {
3385
- const t2 = { content: ms(e2), referencedMessageId: gs(e2), custom: "string" == typeof e2 ? void 0 : e2.custom, idempotencyKey: _e((/* @__PURE__ */ new Date()).getTime()) }, s2 = yield this._realtimeClient.call({ method: "POST", path: ["conversations", this.brandedId, "messages"], data: t2 }), n2 = h("Send message to conversation " + this.id, s2);
3688
+ const t2 = { content: Hn(e2), referencedMessageId: Jn(e2), custom: "string" == typeof e2 ? void 0 : e2.custom, idempotencyKey: $e((/* @__PURE__ */ new Date()).getTime()) }, s2 = yield this._realtimeClient.call({ method: "POST", path: ["conversations", this.brandedId, "messages"], data: t2 }), n2 = d("Send message to conversation " + this.id, s2);
3386
3689
  return this._realtimeClient.refs.message(this.brandedId, n2.id);
3387
3690
  });
3388
3691
  }
@@ -3401,32 +3704,32 @@ class fs {
3401
3704
  markAsTyping() {
3402
3705
  return __async(this, null, function* () {
3403
3706
  const e2 = yield this._realtimeClient.call({ method: "POST", path: ["me", "conversations", this.brandedId, "typing"], data: {} });
3404
- h(`Set user as typing in ${this.id}`, e2);
3707
+ d(`Set user as typing in ${this.id}`, e2);
3405
3708
  });
3406
3709
  }
3407
3710
  }
3408
- function ms(e2) {
3711
+ function Hn(e2) {
3409
3712
  if ("string" == typeof e2) {
3410
- return [{ type: "text", children: os(e2) }];
3713
+ return [{ type: "text", children: Un(e2) }];
3411
3714
  }
3412
3715
  if ("text" in e2) {
3413
- return [{ type: "text", children: os(e2.text) }];
3716
+ return [{ type: "text", children: Un(e2.text) }];
3414
3717
  }
3415
3718
  return e2.content;
3416
3719
  }
3417
- function gs(e2) {
3720
+ function Jn(e2) {
3418
3721
  if ("string" == typeof e2) return;
3419
3722
  const t2 = e2.referencedMessage;
3420
3723
  return void 0 !== t2 ? "string" == typeof t2 ? t2 : t2.id : void 0;
3421
3724
  }
3422
- const vs = "undefined" != typeof WeakRef ? WeakRef : class {
3725
+ const zn = "undefined" != typeof WeakRef ? WeakRef : class {
3423
3726
  constructor(e2) {
3424
3727
  this.value = e2;
3425
3728
  }
3426
3729
  deref() {
3427
3730
  return this.value;
3428
3731
  }
3429
- }, ws = globalThis.FinalizationRegistry, bs = void 0 !== ws ? ws : class {
3732
+ }, Yn = globalThis.FinalizationRegistry, Qn = void 0 !== Yn ? Yn : class {
3430
3733
  constructor(e2) {
3431
3734
  }
3432
3735
  register(e2, t2, s2) {
@@ -3434,9 +3737,9 @@ const vs = "undefined" != typeof WeakRef ? WeakRef : class {
3434
3737
  unregister(e2) {
3435
3738
  }
3436
3739
  };
3437
- class ys {
3740
+ class Vn {
3438
3741
  constructor(e2) {
3439
- this.client = e2, this.users = /* @__PURE__ */ new Map(), this.conversations = /* @__PURE__ */ new Map(), this.participants = /* @__PURE__ */ new Map(), this.messages = /* @__PURE__ */ new Map(), this.reactions = /* @__PURE__ */ new Map(), this.registry = new bs(({ map: e3, key: t2 }) => {
3742
+ this.client = e2, this.users = /* @__PURE__ */ new Map(), this.conversations = /* @__PURE__ */ new Map(), this.participants = /* @__PURE__ */ new Map(), this.messages = /* @__PURE__ */ new Map(), this.reactions = /* @__PURE__ */ new Map(), this.registry = new Qn(({ map: e3, key: t2 }) => {
3440
3743
  e3.delete(t2);
3441
3744
  });
3442
3745
  }
@@ -3444,47 +3747,47 @@ class ys {
3444
3747
  var _a2;
3445
3748
  const t2 = (_a2 = this.users.get(e2)) == null ? void 0 : _a2.deref();
3446
3749
  if (t2) return t2;
3447
- const s2 = x(new Re(e2, this.client));
3448
- return this.users.set(e2, new vs(s2)), this.registry.register(s2, { map: this.users, key: e2 }), s2;
3750
+ const s2 = S(new Oe(e2, this.client));
3751
+ return this.users.set(e2, new zn(s2)), this.registry.register(s2, { map: this.users, key: e2 }), s2;
3449
3752
  }
3450
3753
  conversation(e2) {
3451
3754
  var _a2;
3452
3755
  const t2 = (_a2 = this.conversations.get(e2)) == null ? void 0 : _a2.deref();
3453
3756
  if (t2) return t2;
3454
- const s2 = x(new fs(e2, this.client));
3455
- return this.conversations.set(e2, new vs(s2)), this.registry.register(s2, { map: this.conversations, key: e2 }), s2;
3757
+ const s2 = S(new Fn(e2, this.client));
3758
+ return this.conversations.set(e2, new zn(s2)), this.registry.register(s2, { map: this.conversations, key: e2 }), s2;
3456
3759
  }
3457
3760
  participant(e2, t2) {
3458
3761
  var _a2;
3459
3762
  const s2 = `[${e2}][${t2}]`, n2 = (_a2 = this.participants.get(s2)) == null ? void 0 : _a2.deref();
3460
3763
  if (n2) return n2;
3461
- const r2 = x(new Ne(t2, e2, this.client));
3462
- return this.participants.set(s2, new vs(r2)), this.registry.register(r2, { map: this.participants, key: s2 }), r2;
3764
+ const a2 = S(new Pe(t2, e2, this.client));
3765
+ return this.participants.set(s2, new zn(a2)), this.registry.register(a2, { map: this.participants, key: s2 }), a2;
3463
3766
  }
3464
3767
  message(e2, t2) {
3465
3768
  var _a2;
3466
3769
  const s2 = `[${e2}][${t2}]`, n2 = (_a2 = this.messages.get(s2)) == null ? void 0 : _a2.deref();
3467
3770
  if (n2) return n2;
3468
- const r2 = x(new ds(t2, e2, this.client));
3469
- return this.messages.set(s2, new vs(r2)), this.registry.register(r2, { map: this.messages, key: s2 }), r2;
3771
+ const a2 = S(new Ln(t2, e2, this.client));
3772
+ return this.messages.set(s2, new zn(a2)), this.registry.register(a2, { map: this.messages, key: s2 }), a2;
3470
3773
  }
3471
3774
  reaction(e2, t2, s2) {
3472
3775
  var _a2;
3473
- const n2 = `[${e2}][${t2}][${s2}]`, r2 = (_a2 = this.reactions.get(n2)) == null ? void 0 : _a2.deref();
3474
- if (r2) return r2;
3475
- const a2 = x(new hs(s2, t2, e2, this.client));
3476
- return this.reactions.set(n2, new vs(a2)), this.registry.register(a2, { map: this.reactions, key: n2 }), a2;
3776
+ const n2 = `[${e2}][${t2}][${s2}]`, a2 = (_a2 = this.reactions.get(n2)) == null ? void 0 : _a2.deref();
3777
+ if (a2) return a2;
3778
+ const r2 = S(new Bn(s2, t2, e2, this.client));
3779
+ return this.reactions.set(n2, new zn(r2)), this.registry.register(r2, { map: this.reactions, key: n2 }), r2;
3477
3780
  }
3478
3781
  }
3479
- class Cs {
3782
+ class Kn {
3480
3783
  constructor(e2, t2, s2) {
3481
- this.userId = t2, this.refs = new ys(this), this.alive = true, this.connection = new Fe(e2, s2, this), s2.onTokenRefreshFailed(() => {
3784
+ this.userId = t2, this.refs = new Vn(this), this.alive = true, this.connection = new _e(e2, s2, this), s2.onTokenRefreshFailed(() => {
3482
3785
  this.destroy();
3483
3786
  });
3484
3787
  }
3485
3788
  call(e2) {
3486
3789
  return __async(this, null, function* () {
3487
- return this.alive ? this.connection.call(e2) : u("SESSION_DESTROYED");
3790
+ return this.alive ? this.connection.call(e2) : c("SESSION_DESTROYED");
3488
3791
  });
3489
3792
  }
3490
3793
  subscribe(e2, t2) {
@@ -3507,61 +3810,80 @@ class Cs {
3507
3810
  }
3508
3811
  hydrateMessageData(e2, t2) {
3509
3812
  return __async(this, null, function* () {
3510
- const s2 = null === e2.senderId ? Promise.resolve(o(null)) : this.getUser(e2.senderId), n2 = null === e2.referencedMessageId ? Promise.resolve(o(null)) : this.getReferencedMessage(t2, e2.referencedMessageId), r2 = yield s2;
3511
- if (!r2.ok) return r2;
3512
- const a2 = yield n2;
3813
+ const s2 = null === e2.senderId ? Promise.resolve(o(null)) : this.getUser(e2.senderId), n2 = null === e2.referencedMessageId ? Promise.resolve(o(null)) : this.getReferencedMessage(t2, e2.referencedMessageId), a2 = yield s2;
3513
3814
  if (!a2.ok) return a2;
3514
- const i2 = function(e3, t3, s3) {
3515
- return x({ id: e3.id, type: e3.type, sender: t3, referencedMessage: s3, custom: x(e3.custom), createdAt: e3.createdAt, editedAt: e3.editedAt, origin: e3.origin, content: e3.content, reactions: ce(e3.reactions), plaintext: ae(e3.content, {}) });
3516
- }(e2, r2.value, a2.value);
3815
+ const r2 = yield n2;
3816
+ if (!r2.ok) return r2;
3817
+ const i2 = (function(e3, t3, s3) {
3818
+ return S({ id: e3.id, type: e3.type, sender: t3, referencedMessage: s3, custom: S(e3.custom), createdAt: e3.createdAt, editedAt: e3.editedAt, origin: e3.origin, content: e3.content, reactions: he(e3.reactions), plaintext: ie(e3.content, {}) });
3819
+ })(e2, a2.value, r2.value);
3820
+ return o(i2);
3821
+ });
3822
+ }
3823
+ hydrateConvData(e2, t2) {
3824
+ return __async(this, null, function* () {
3825
+ const s2 = this.listMessages(e2.id, { limit: 1 }, t2), n2 = yield this.call({ method: "GET", path: ["me", "conversations", e2.id], data: {}, headers: t2 });
3826
+ if (!n2.ok && "server" === n2.where && 404 === n2.value.status) return o(null);
3827
+ const a2 = d("Get conversation " + e2.id, n2), r2 = Xn("Get last message in conversation " + e2.id, yield s2), i2 = (function(e3, t3) {
3828
+ return S({ id: e3.id, subject: e3.subject, photoUrl: e3.photoUrl, welcomeMessages: S(e3.welcomeMessages), custom: S(e3.custom), createdAt: e3.createdAt, joinedAt: e3.joinedAt, lastMessageAt: e3.lastMessageAt, unreadMessageCount: e3.unreadMessageCount, isUnread: e3.isUnread, access: e3.access, notify: e3.notify, lastMessage: t3, readUntil: e3.readUntil, everyoneReadUntil: e3.everyoneReadUntil });
3829
+ })(a2, 0 === r2.length ? null : r2[0]);
3517
3830
  return o(i2);
3518
3831
  });
3519
3832
  }
3833
+ listMessages(e2, t2, s2) {
3834
+ return __async(this, null, function* () {
3835
+ const n2 = yield this.call({ method: "GET", path: ["me", "conversations", e2, "messages"], data: t2, headers: s2 });
3836
+ if (!n2.ok) return Zn(n2, "Listing messages in " + e2);
3837
+ const a2 = n2.value.data.data, r2 = yield Promise.all(a2.map((t3) => this.hydrateMessageData(t3, e2))), i2 = r2.find((e3) => !e3.ok);
3838
+ if (void 0 !== i2 && !i2.ok) return i2;
3839
+ return o(r2.map(({ value: e3 }) => e3));
3840
+ });
3841
+ }
3520
3842
  getReferencedMessage(e2, t2) {
3521
3843
  return __async(this, null, function* () {
3522
3844
  const s2 = yield this.call({ method: "GET", path: ["me", "conversations", e2, "messages", t2], data: {} });
3523
3845
  if (!s2.ok && "server" === s2.where && 404 === s2.value.status) return o(null);
3524
3846
  if (!s2.ok && "server" === s2.where && 403 === s2.value.status && "NOT_A_PARTICIPANT" === s2.value.errorCode) return o(null);
3525
- if (!s2.ok) return As(s2, `Fetching referenced message ${t2} in conversation ${e2}`);
3526
- const n2 = s2.value.data, r2 = yield this.getUser(n2.senderId);
3527
- if (!r2.ok) return r2;
3528
- const a2 = function(e3, t3) {
3529
- return x({ id: e3.id, type: e3.type, sender: t3, referencedMessageId: e3.referencedMessageId, custom: x(e3.custom), createdAt: e3.createdAt, editedAt: e3.editedAt, origin: e3.origin, content: e3.content, reactions: ce(e3.reactions), plaintext: ae(e3.content, {}) });
3530
- }(n2, r2.value);
3531
- return o(a2);
3847
+ if (!s2.ok) return Zn(s2, `Fetching referenced message ${t2} in conversation ${e2}`);
3848
+ const n2 = s2.value.data, a2 = yield this.getUser(n2.senderId);
3849
+ if (!a2.ok) return a2;
3850
+ const r2 = (function(e3, t3) {
3851
+ return S({ id: e3.id, type: e3.type, sender: t3, referencedMessageId: e3.referencedMessageId, custom: S(e3.custom), createdAt: e3.createdAt, editedAt: e3.editedAt, origin: e3.origin, content: e3.content, reactions: he(e3.reactions), plaintext: ie(e3.content, {}) });
3852
+ })(n2, a2.value);
3853
+ return o(r2);
3532
3854
  });
3533
3855
  }
3534
3856
  getUser(e2) {
3535
3857
  return __async(this, null, function* () {
3536
3858
  const t2 = yield this.call({ method: "GET", path: ["users", e2], data: { includePrivateFields: false } });
3537
3859
  if (!t2.ok && "server" === t2.where && 404 === t2.value.status) return o(null);
3538
- if (!t2.ok) return As(t2, "Get user " + e2);
3539
- return o(oe(t2.value.data));
3860
+ if (!t2.ok) return Zn(t2, "Get user " + e2);
3861
+ return o(ce(t2.value.data));
3540
3862
  });
3541
3863
  }
3542
3864
  }
3543
- function As(e2, t2) {
3544
- return "server" === e2.where ? c(__spreadProps(__spreadValues({}, e2.value), { operation: t2 })) : e2;
3865
+ function Zn(e2, t2) {
3866
+ return "server" === e2.where ? l(__spreadProps(__spreadValues({}, e2.value), { operation: t2 })) : e2;
3545
3867
  }
3546
- function Es(e2, t2) {
3868
+ function Xn(e2, t2) {
3547
3869
  var _a2;
3548
3870
  if (t2.ok) return t2.value;
3549
- throw "SESSION_DESTROYED" === t2.value ? new Error(`${e2} failed because the session was destroyed`) : new Error(d((_a2 = t2.value.operation) != null ? _a2 : e2, t2.value));
3871
+ throw "SESSION_DESTROYED" === t2.value ? new Error(`${e2} failed because the session was destroyed`) : new Error(p((_a2 = t2.value.operation) != null ? _a2 : e2, t2.value));
3550
3872
  }
3551
- class ks {
3873
+ class ea {
3552
3874
  constructor(e2, t2, s2) {
3553
3875
  this.realtimeWsApiUrl = e2, this.internalHttpApiUrl = t2, this.restApiHttpUrl = s2;
3554
3876
  }
3555
3877
  getBokensUrl(e2, t2, s2) {
3556
3878
  return this.internalHttpApiUrl + `/${e2}/bokens/${encodeURIComponent(t2)}?signature=${encodeURIComponent(s2 != null ? s2 : "")}`;
3557
3879
  }
3558
- getRealtimeWsUrl(e2, t2, s2, n2, r2) {
3559
- const a2 = encodeURIComponent(t2);
3560
- return this.realtimeWsApiUrl + `/${e2}/realtime/${a2}?talkjs-client-build=${r2 != null ? r2 : "standalone"}&talkjs-core=${s2}&talkjs-client-id=${n2}`;
3880
+ getRealtimeWsUrl(e2, t2, s2, n2, a2) {
3881
+ const r2 = encodeURIComponent(t2);
3882
+ return this.realtimeWsApiUrl + `/${e2}/realtime/${r2}?talkjs-client-build=${a2 != null ? a2 : "standalone"}&talkjs-core=${s2}&talkjs-client-id=${n2}`;
3561
3883
  }
3562
3884
  static fromHost(e2) {
3563
3885
  var _a2;
3564
- const t2 = new ks("wss://realtime.talkjs.com/v1", "https://app.talkjs.com/api/v0", "https://api.talkjs.com/v1");
3886
+ const t2 = new ea("wss://realtime.talkjs.com/v1", "https://app.talkjs.com/api/v0", "https://api.talkjs.com/v1");
3565
3887
  if (!e2) return t2;
3566
3888
  if ("@currentHost" === e2) {
3567
3889
  if ("undefined" == typeof location) throw new Error("You can only use @currentHost in a browser.");
@@ -3571,46 +3893,46 @@ class ks {
3571
3893
  const s2 = e2.match(/^(?:\w+-)?([^.]+)\.talkjs\.com$/);
3572
3894
  if (s2) {
3573
3895
  const e3 = s2[1];
3574
- return ["app", "cdn", "api", "realtime"].includes(e3) ? t2 : new ks(`wss://realtime-${e3}.talkjs.com/v1`, `https://app-${e3}.talkjs.com/api/v0`, `https://api-${e3}.talkjs.com/v1`);
3896
+ return ["app", "cdn", "api", "realtime"].includes(e3) ? t2 : new ea(`wss://realtime-${e3}.talkjs.com/v1`, `https://app-${e3}.talkjs.com/api/v0`, `https://api-${e3}.talkjs.com/v1`);
3575
3897
  }
3576
3898
  return t2;
3577
3899
  }
3578
- return e2.includes("localhost") || e2.includes("localtest.me") || /^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(e2) ? new ks(`ws://${e2}/public_api/v1`, `http://${e2}/api/v0`, `http://${e2}/public_api/v1`) : new ks(`wss://${e2}/public_api/v1`, `https://${e2}/api/v0`, `https://${e2}/public_api/v1`);
3900
+ return e2.includes("localhost") || e2.includes("localtest.me") || /^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(e2) ? new ea(`ws://${e2}/public_api/v1`, `http://${e2}/api/v0`, `http://${e2}/public_api/v1`) : new ea(`wss://${e2}/public_api/v1`, `https://${e2}/api/v0`, `https://${e2}/public_api/v1`);
3579
3901
  }
3580
3902
  }
3581
- function xs({ method: e2, url: t2, data: s2, options: n2, attempts: a2, shouldRetry: i2, authProvider: o2, errorTracker: u2 }) {
3903
+ function ta({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRetry: i2, authProvider: o2, errorTracker: c2, abortSignal: l2 }) {
3582
3904
  var _a2;
3583
- (!a2 || a2 <= 0) && (a2 = 1);
3584
- const c2 = { "x-talkjs-client-build": "jssdk-dev", "x-talkjs-client-date": "2026-01-19T10:53:42.725Z" };
3585
- s2 instanceof FormData || (c2["Content-Type"] = (_a2 = n2 == null ? void 0 : n2.contentType) != null ? _a2 : "application/json");
3586
- return r(a2, () => __async(this, null, function* () {
3905
+ (!r2 || r2 <= 0) && (r2 = 1);
3906
+ const h2 = { "x-talkjs-client-build": "jssdk-dev", "x-talkjs-client-date": "2026-01-27T09:14:45.741Z" };
3907
+ s2 instanceof FormData || (h2["Content-Type"] = (_a2 = n2 == null ? void 0 : n2.contentType) != null ? _a2 : "application/json");
3908
+ return a(r2, () => __async(null, null, function* () {
3587
3909
  if (o2) {
3588
3910
  const e3 = yield o2.getToken();
3589
- c2.Authorization = `Bearer ${e3}`;
3911
+ h2.Authorization = `Bearer ${e3}`;
3590
3912
  }
3591
- return fetch(t2, { method: e2, headers: c2, body: s2 }).then((e3) => {
3913
+ return fetch(t2, { method: e2, headers: h2, body: s2, signal: l2 }).then((e3) => {
3592
3914
  if (e3.ok) return e3;
3593
3915
  throw e3;
3594
3916
  });
3595
- }), { initialDelay: 0.2, log: void 0, shouldRetry: (s3) => __async(this, null, function* () {
3596
- return o2 && 401 === s3.status ? (u2 == null ? void 0 : u2.log(`401 error from ${e2} ${t2}, ${yield o2.getToken()}`), o2.invalidateAndRefresh(), true) : i2 ? i2(s3) : !("status" in s3 && s3.status >= 400 && s3.status < 500);
3917
+ }), { initialDelay: 0.2, log: void 0, shouldRetry: (s3) => __async(null, null, function* () {
3918
+ return o2 && 401 === s3.status ? (c2 == null ? void 0 : c2.log(`401 error from ${e2} ${t2}, ${yield o2.getToken()}`), o2.invalidateAndRefresh(), true) : i2 ? i2(s3) : !("object" == typeof s3 && "status" in s3 && s3.status >= 400 && s3.status < 500);
3597
3919
  }) }).catch((s3) => {
3598
3920
  if (Math.random() < 0.1 && !t2.toString().startsWith("https://capture.trackjs.com")) {
3599
3921
  const n3 = `Network Error for ${e2} ${t2}`;
3600
3922
  if ("undefined" != typeof window) if (s3 instanceof Response) {
3601
- s3.clone().text().then((e3) => u2 == null ? void 0 : u2.log(`${n3} ${s3.status} ${e3} (10% logged)`));
3602
- } else u2 == null ? void 0 : u2.log(`${n3} ${s3} (10% logged)`);
3923
+ s3.clone().text().then((e3) => c2 == null ? void 0 : c2.log(`${n3} ${s3.status} ${e3} (10% logged)`));
3924
+ } else c2 == null ? void 0 : c2.log(`${n3} ${s3} (10% logged)`);
3603
3925
  console.error("[TalkJS]", n3);
3604
3926
  }
3605
3927
  throw s3;
3606
3928
  });
3607
3929
  }
3608
- class Ts {
3930
+ class sa {
3609
3931
  constructor(e2) {
3610
3932
  __privateAdd(this, _e2);
3611
3933
  __privateAdd(this, _t2);
3612
3934
  var _a2, _b2, _c, _d;
3613
- this._timeCreated = Date.now(), __privateSet(this, _e2, (_b2 = (_a2 = globalThis.document) == null ? void 0 : _a2.referrer) != null ? _b2 : ""), __privateSet(this, _t2, ((_d = (_c = globalThis.location) == null ? void 0 : _c.href) != null ? _d : globalThis.HermesInternal) ? "React Native Hermes" : ""), this._trackJSData = { customer: { application: "", correlationId: "", sessionId: "", token: "", userId: "", version: "dev-2026-01-19T10:53:42.725Z" }, entry: "direct", environment: { age: Date.now() - this._timeCreated, dependencies: {}, originalUrl: __privateGet(this, _t2), referrer: __privateGet(this, _e2), userAgent: window.navigator.userAgent }, metadata: [], nav: [], network: [], url: __privateGet(this, _t2), stack: "", timestamp: (/* @__PURE__ */ new Date()).toISOString(), version: "dev-2026-01-19T10:53:42.725Z", throttled: 0 }, this._url = `https://capture.trackjs.com/capture?token=${e2}`, this._trackJSData.customer.token = e2;
3935
+ this._timeCreated = Date.now(), __privateSet(this, _e2, (_b2 = (_a2 = globalThis.document) == null ? void 0 : _a2.referrer) != null ? _b2 : ""), __privateSet(this, _t2, ((_d = (_c = globalThis.location) == null ? void 0 : _c.href) != null ? _d : globalThis.HermesInternal) ? "React Native Hermes" : ""), this._trackJSData = { customer: { application: "", correlationId: "", sessionId: "", token: "", userId: "", version: "dev-2026-01-27T09:14:45.741Z" }, entry: "direct", environment: { age: Date.now() - this._timeCreated, dependencies: {}, originalUrl: __privateGet(this, _t2), referrer: __privateGet(this, _e2), userAgent: window.navigator.userAgent }, metadata: [], nav: [], network: [], url: __privateGet(this, _t2), stack: "", timestamp: (/* @__PURE__ */ new Date()).toISOString(), version: "dev-2026-01-27T09:14:45.741Z", throttled: 0 }, this._url = `https://capture.trackjs.com/capture?token=${e2}`, this._trackJSData.customer.token = e2;
3614
3936
  }
3615
3937
  setData({ appId: e2, meId: t2, sessionId: s2 }) {
3616
3938
  this._trackJSData.customer.userId = e2, this._trackJSData.customer.sessionId = `${e2}/${t2}`, this._trackJSData.customer.correlationId = s2;
@@ -3620,7 +3942,7 @@ class Ts {
3620
3942
  try {
3621
3943
  0;
3622
3944
  const t2 = __spreadProps(__spreadValues({}, this._trackJSData), { message: e2 });
3623
- yield xs({ method: "POST", url: this._url, data: JSON.stringify(t2), options: { contentType: "text/plain" } });
3945
+ yield ta({ method: "POST", url: this._url, data: JSON.stringify(t2), options: { contentType: "text/plain" } });
3624
3946
  } catch (e3) {
3625
3947
  console.error("[TalkJS] Failed when sending an error report. Error: ", e3);
3626
3948
  }
@@ -3629,9 +3951,9 @@ class Ts {
3629
3951
  }
3630
3952
  _e2 = new WeakMap();
3631
3953
  _t2 = new WeakMap();
3632
- const Is = { log: (e2) => Promise.resolve(), setData: (e2) => {
3954
+ const na = { log: (e2) => Promise.resolve(), setData: (e2) => {
3633
3955
  } };
3634
- class Ds {
3956
+ class aa {
3635
3957
  constructor(e2, t2 = {}) {
3636
3958
  this._onSubscription = t2, this._handlers = {};
3637
3959
  for (const t3 in e2) Object.hasOwnProperty.call(e2, t3) && (this._handlers[t3] = []);
@@ -3676,7 +3998,7 @@ class Ds {
3676
3998
  return this.on(e2, t2), { unsubscribe: () => this.off(e2, t2) };
3677
3999
  }
3678
4000
  }
3679
- class Ss {
4001
+ class ra {
3680
4002
  constructor(e2) {
3681
4003
  this.handlers = e2, this.tokenResult = null, this.pendingToken = null;
3682
4004
  }
@@ -3684,7 +4006,7 @@ class Ss {
3684
4006
  return __async(this, null, function* () {
3685
4007
  if (this.tokenResult) return this.tokenResult;
3686
4008
  if (this.pendingToken) return this.pendingToken.promise;
3687
- const e2 = a();
4009
+ const e2 = r();
3688
4010
  return this.pendingToken = e2, this.handlers.onNeedToken(), e2.promise;
3689
4011
  });
3690
4012
  }
@@ -3692,29 +4014,29 @@ class Ss {
3692
4014
  this.pendingToken && (this.pendingToken.resolve(e2), this.pendingToken = null), this.tokenResult = e2, this.handlers.onChange(e2);
3693
4015
  }
3694
4016
  refreshToken() {
3695
- this.pendingToken || (this.pendingToken = a(), this.handlers.onNeedToken());
4017
+ this.pendingToken || (this.pendingToken = r(), this.handlers.onNeedToken());
3696
4018
  }
3697
4019
  invalidateAndRefresh() {
3698
4020
  this.tokenResult = null, this.refreshToken();
3699
4021
  }
3700
4022
  }
3701
- class Ms {
4023
+ class ia {
3702
4024
  constructor(e2, t2, s2, n2) {
3703
- this.apiUrls = e2, this.appId = t2, this.userId = s2, this.signature = n2, this.inner = new Ss({ onChange: (e3) => {
4025
+ this.apiUrls = e2, this.appId = t2, this.userId = s2, this.signature = n2, this.inner = new ra({ onChange: (e3) => {
3704
4026
  e3.ok ? this.eventEmitter.emit("tokenChanged", e3.value) : this.emitTokenRefreshFailed(e3.value);
3705
4027
  }, onNeedToken: () => __async(this, null, function* () {
3706
- if (this._usingBokens && !this.signature && !this._calledBokens && (yield new Promise((e3) => setTimeout(e3, 1))), this._usingBokens) yield this.sendBokenRequest().then((e3) => this.inner.setTokenResult(o(e3))).catch((e3) => this.inner.setTokenResult(c(e3)));
4028
+ if (this._usingBokens && !this.signature && !this._calledBokens && (yield new Promise((e3) => setTimeout(e3, 1))), this._usingBokens) yield this.sendBokenRequest().then((e3) => this.inner.setTokenResult(o(e3))).catch((e3) => this.inner.setTokenResult(l(e3)));
3707
4029
  else if (this.onNeedToken) this.onNeedToken();
3708
4030
  else {
3709
- const e3 = u("Cannot refresh token, no `onNeedToken` provided.");
4031
+ const e3 = c("Cannot refresh token, no `onNeedToken` provided.");
3710
4032
  this.inner.setTokenResult(e3);
3711
4033
  }
3712
- }) }), this._usingBokens = true, this._calledBokens = false, this.onNeedToken = void 0, this.eventEmitter = new Ds({ tokenChanged(e3) {
4034
+ }) }), this._usingBokens = true, this._calledBokens = false, this.onNeedToken = void 0, this.eventEmitter = new aa({ tokenChanged(e3) {
3713
4035
  }, tokenRefreshFailed(e3) {
3714
4036
  }, tokenAccepted(e3) {
3715
4037
  } }), this.sessionExpiryWarningTimeoutId = void 0;
3716
- const r2 = "undefined" != typeof window && e2.restApiHttpUrl.includes("api.talkjs.com");
3717
- this.errorTracker = r2 ? new Ts("970cd0be0fb74630b75c8451051299dc") : Is;
4038
+ const a2 = "undefined" != typeof window && e2.restApiHttpUrl.includes("api.talkjs.com");
4039
+ this.errorTracker = a2 ? new sa("970cd0be0fb74630b75c8451051299dc") : na;
3718
4040
  }
3719
4041
  get usingBokens() {
3720
4042
  return this._usingBokens;
@@ -3733,7 +4055,7 @@ class Ms {
3733
4055
  this.checkCanSetAuth(), setTimeout(() => this.checkJwt(e2), 200), this._usingBokens = false, this.inner.setTokenResult(o(e2));
3734
4056
  }
3735
4057
  setTokenError(e2) {
3736
- this._usingBokens = false, this.inner.setTokenResult(u(e2));
4058
+ this._usingBokens = false, this.inner.setTokenResult(c(e2));
3737
4059
  }
3738
4060
  refreshToken() {
3739
4061
  this.inner.refreshToken();
@@ -3778,20 +4100,20 @@ class Ms {
3778
4100
  }, n2);
3779
4101
  }
3780
4102
  checkJwt(e2) {
3781
- !function(e3) {
4103
+ !(function(e3) {
3782
4104
  if ("string" == typeof e3 || e3 instanceof String) return;
3783
4105
  if (void 0 === e3) throw "Token was undefined";
3784
4106
  throw "Token must be a string, got: " + e3;
3785
- }(e2);
4107
+ })(e2);
3786
4108
  const t2 = [];
3787
- let s2, n2, r2;
4109
+ let s2, n2, a2;
3788
4110
  if ("string" == typeof e2 ? s2 = e2 : t2.push(`Token type is ${typeof e2} instead of a string.`), s2) try {
3789
- const e3 = function(e4) {
4111
+ const e3 = (function(e4) {
3790
4112
  const t3 = e4.split(".");
3791
4113
  if (3 !== t3.length) throw "Token does not contain exactly two `.`. Check that you generated your JWT correctly. It should be `<header>.<payload>.<signature>`.";
3792
- return { header: Fs(t3[0]), payload: Fs(t3[1]) };
3793
- }(s2);
3794
- n2 = e3.header, r2 = e3.payload;
4114
+ return { header: oa(t3[0]), payload: oa(t3[1]) };
4115
+ })(s2);
4116
+ n2 = e3.header, a2 = e3.payload;
3795
4117
  } catch (e3) {
3796
4118
  t2.push(e3);
3797
4119
  }
@@ -3799,8 +4121,8 @@ class Ms {
3799
4121
  const e3 = this.checkJwtHeader(n2);
3800
4122
  t2.push(...e3);
3801
4123
  }
3802
- if (r2) {
3803
- const e3 = this.checkJwtPayload(r2);
4124
+ if (a2) {
4125
+ const e3 = this.checkJwtPayload(a2);
3804
4126
  t2.push(...e3);
3805
4127
  }
3806
4128
  if (t2.length) if (this.usingBokens) this.errorTracker.log(`JWT Errors detected by AuthProvider when using bokens: ${t2.join("\n")}`);
@@ -3822,18 +4144,18 @@ class Ms {
3822
4144
  void 0 === s2 ? t2.push(`Token payload must contain an \`iss\` claim set to your app ID (${this.appId}), but \`iss\` was missing.`) : "string" != typeof s2 ? t2.push(`Token payload must contain an \`iss\` claim set to your app ID (${this.appId}), but \`iss\` was ${typeof s2} instead of a string. Make sure you wrap the value in "".`) : s2 !== this.appId && t2.push(`Token payload must contain an \`iss\` claim set to your app ID (${this.appId}), but \`iss\` was set to "${s2}" instead.`);
3823
4145
  const n2 = e2.sub;
3824
4146
  void 0 === n2 ? t2.push(`Token payload must contain a \`sub\` claim set to your user ID (${this.userId}), but \`sub\` was missing.`) : "string" != typeof n2 ? t2.push(`Token payload must contain a \`sub\` claim set to your user ID (${this.userId}), but \`sub\` was ${typeof n2} instead of a string. Make sure you wrap the value in "".`) : n2 !== this.userId && t2.push(`Token payload must contain a \`sub\` claim set to your userId ID (${this.userId}), but \`sub\` was set to "${n2}" instead.`);
3825
- const r2 = e2.tokenType;
3826
- void 0 === r2 ? t2.push('Token payload must contain a `"tokenType": "user"` claim, but no `tokenType` was specified.') : "string" != typeof r2 ? t2.push(`Token payload must contain a \`"tokenType": "user"\` claim, but \`tokenType\` was ${typeof r2} instead of a string. Make sure you wrap the value in "".`) : "user" !== r2 && t2.push(`Token payload must contain a \`"tokenType": "user"\` claim, but \`tokenType\` was set to "${r2}" instead.`);
3827
- const a2 = e2.exp;
3828
- void 0 === a2 || ("number" != typeof a2 ? t2.push(`Token payload contains an \`exp\` claim, but \`exp\` was ${typeof r2} instead of a number. If set, \`exp\` should be the expiry date as a number of seconds since 1970-01-01. Don't wrap the value in "".`) : a2 < 1e9 ? t2.push(`Token payload contains an \`exp\` claim, but \`exp\` is very small (${a2}, representing ${new Date(1e3 * a2).toLocaleDateString()}). If set, \`exp\` should be the expiry date as a number of seconds since 1970-01-01.`) : a2 > 1e11 ? t2.push(`Token payload contains an \`exp\` claim, but \`exp\` is very small (${a2}, representing ${new Date(1e3 * a2).toLocaleDateString()}). If set, \`exp\` should be the expiry date as a number of seconds since 1970-01-01. Double-check that you are using seconds and not milliseconds or nanoseconds.`) : a2 < (/* @__PURE__ */ new Date()).getTime() / 1e3 && t2.push(`Token payload contains an \`exp\` claim, but \`exp\` (${a2}, representing ${new Date(1e3 * a2).toLocaleDateString()}) appears to be in the past, meaning the token will be rejected. This error can also happen if your device's clock is set incorrectly, in which case the token will still work.`));
4147
+ const a2 = e2.tokenType;
4148
+ void 0 === a2 ? t2.push('Token payload must contain a `"tokenType": "user"` claim, but no `tokenType` was specified.') : "string" != typeof a2 ? t2.push(`Token payload must contain a \`"tokenType": "user"\` claim, but \`tokenType\` was ${typeof a2} instead of a string. Make sure you wrap the value in "".`) : "user" !== a2 && t2.push(`Token payload must contain a \`"tokenType": "user"\` claim, but \`tokenType\` was set to "${a2}" instead.`);
4149
+ const r2 = e2.exp;
4150
+ void 0 === r2 || ("number" != typeof r2 ? t2.push(`Token payload contains an \`exp\` claim, but \`exp\` was ${typeof a2} instead of a number. If set, \`exp\` should be the expiry date as a number of seconds since 1970-01-01. Don't wrap the value in "".`) : r2 < 1e9 ? t2.push(`Token payload contains an \`exp\` claim, but \`exp\` is very small (${r2}, representing ${new Date(1e3 * r2).toLocaleDateString()}). If set, \`exp\` should be the expiry date as a number of seconds since 1970-01-01.`) : r2 > 1e11 ? t2.push(`Token payload contains an \`exp\` claim, but \`exp\` is very small (${r2}, representing ${new Date(1e3 * r2).toLocaleDateString()}). If set, \`exp\` should be the expiry date as a number of seconds since 1970-01-01. Double-check that you are using seconds and not milliseconds or nanoseconds.`) : r2 < (/* @__PURE__ */ new Date()).getTime() / 1e3 && t2.push(`Token payload contains an \`exp\` claim, but \`exp\` (${r2}, representing ${new Date(1e3 * r2).toLocaleDateString()}) appears to be in the past, meaning the token will be rejected. This error can also happen if your device's clock is set incorrectly, in which case the token will still work.`));
3829
4151
  const i2 = e2.nbf;
3830
- return void 0 === i2 || ("number" != typeof i2 ? t2.push(`Token payload contains a \`nbf\` (not-before) claim, but \`nbf\` was ${typeof r2} instead of a number. If set, \`nbf\` should be the date when the JWT becomes valid, as a number of seconds since 1970-01-01.`) : i2 > 1e11 && t2.push(`Token payload contains a \`nbf\` (not-before) claim, but \`nbf\` is very large (${i2}, representing ${new Date(1e3 * i2).toLocaleDateString()}). If set, \`nbf\` should be the date when the JWT becomes valid, as a number of seconds since 1970-01-01. Double-check that you are using seconds and not milliseconds or nanoseconds.`)), t2;
4152
+ return void 0 === i2 || ("number" != typeof i2 ? t2.push(`Token payload contains a \`nbf\` (not-before) claim, but \`nbf\` was ${typeof a2} instead of a number. If set, \`nbf\` should be the date when the JWT becomes valid, as a number of seconds since 1970-01-01.`) : i2 > 1e11 && t2.push(`Token payload contains a \`nbf\` (not-before) claim, but \`nbf\` is very large (${i2}, representing ${new Date(1e3 * i2).toLocaleDateString()}). If set, \`nbf\` should be the date when the JWT becomes valid, as a number of seconds since 1970-01-01. Double-check that you are using seconds and not milliseconds or nanoseconds.`)), t2;
3831
4153
  }
3832
4154
  sendBokenRequest() {
3833
4155
  return __async(this, null, function* () {
3834
4156
  this._calledBokens = true;
3835
4157
  let e2 = 0;
3836
- const t2 = this.apiUrls.getBokensUrl(this.appId, this.userId, this.signature), s2 = yield xs({ method: "GET", url: t2, attempts: 1e4, shouldRetry: (t3) => {
4158
+ const t2 = this.apiUrls.getBokensUrl(this.appId, this.userId, this.signature), s2 = yield ta({ method: "GET", url: t2, attempts: 1e4, shouldRetry: (t3) => {
3837
4159
  if (t3 instanceof Error) return true;
3838
4160
  if (401 === t3.status) throw "Check that you provided a valid signature.";
3839
4161
  if (404 === t3.status) throw "Check that you specified the correct App ID.";
@@ -3846,7 +4168,7 @@ class Ms {
3846
4168
  });
3847
4169
  }
3848
4170
  }
3849
- function Fs(e2) {
4171
+ function oa(e2) {
3850
4172
  try {
3851
4173
  const t2 = e2.replace(/-/g, "+").replace(/_/g, "/"), s2 = decodeURIComponent(atob(t2).split("").map((e3) => "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2)).join(""));
3852
4174
  return JSON.parse(s2);
@@ -3854,14 +4176,14 @@ function Fs(e2) {
3854
4176
  throw `Could not base64-decode and JSON-parse token section: ${e2}. Check that you base-64 encoded the section correctly.`;
3855
4177
  }
3856
4178
  }
3857
- const Bs = new class {
4179
+ const ca = new class {
3858
4180
  constructor() {
3859
4181
  this.registry = {};
3860
4182
  }
3861
4183
  getOrCreate(e2) {
3862
4184
  const t2 = this.key(e2), s2 = this.registry[t2];
3863
4185
  if (s2) return s2;
3864
- const n2 = new Ns(e2);
4186
+ const n2 = new ha(e2);
3865
4187
  return this.registry[t2] = n2, n2;
3866
4188
  }
3867
4189
  deregister(e2, t2) {
@@ -3872,34 +4194,34 @@ const Bs = new class {
3872
4194
  return `${e2}:${t2}`;
3873
4195
  }
3874
4196
  }();
3875
- function Rs(e2) {
4197
+ function la(e2) {
3876
4198
  if (!e2) throw new Error("[TalkJS] Must provide an options object to `getTalkSession`");
3877
- return e2.forceCreateNew ? new Ns(e2) : Bs.getOrCreate(e2);
4199
+ return e2.forceCreateNew ? new ha(e2) : ca.getOrCreate(e2);
3878
4200
  }
3879
- class Ns {
4201
+ class ha {
3880
4202
  constructor(e2) {
3881
- this._onNeedToken = void 0, function(e3) {
4203
+ this._onNeedToken = void 0, (function(e3) {
3882
4204
  function t3(e4, t4) {
3883
4205
  if (!e4) throw new Error("[TalkJS] TalkSession: " + t4);
3884
4206
  }
3885
4207
  t3(e3 && "object" == typeof e3, "Expected an object argument in `getTalkSession`."), t3(e3.appId && "string" == typeof e3.appId, "The `appId` property of the `getTalkSession` options is required and it must be a non-empty string."), t3("string" == typeof e3.userId, "The `userId` property of the `getTalkSession` options is required and it must be a string."), void 0 !== e3.token && t3(e3.token && "string" == typeof e3.token, "The `token` property of the `getTalkSession` options must be a non-empty string.");
3886
4208
  void 0 !== e3.tokenFetcher && t3("function" == typeof e3.tokenFetcher, "The `tokenFetcher` property of the `getTalkSession` options must be a function.");
3887
- }(e2);
3888
- const { appId: t2, userId: s2, token: n2, tokenFetcher: r2, signature: i2 } = e2;
3889
- this._appId = t2, this._apiUrls = e2.apiUrls ? new ks(e2.apiUrls.realtimeWsApiUrl, e2.apiUrls.internalHttpApiUrl, e2.apiUrls.restApiHttpUrl) : ks.fromHost(e2.host), this._authProvider = new Ms(this._apiUrls, t2, s2, i2), n2 && this._authProvider.setToken(n2), r2 && this._authProvider.setOnNeedToken(() => __async(this, null, function* () {
4209
+ })(e2);
4210
+ const { appId: t2, userId: s2, token: n2, tokenFetcher: a2, signature: i2 } = e2;
4211
+ this._appId = t2, this._apiUrls = e2.apiUrls ? new ea(e2.apiUrls.realtimeWsApiUrl, e2.apiUrls.internalHttpApiUrl, e2.apiUrls.restApiHttpUrl) : ea.fromHost(e2.host), this._authProvider = new ia(this._apiUrls, t2, s2, i2), n2 && this._authProvider.setToken(n2), a2 && this._authProvider.setOnNeedToken(() => __async(this, null, function* () {
3890
4212
  try {
3891
- const e3 = yield r2();
4213
+ const e3 = yield a2();
3892
4214
  this._authProvider.setToken(e3);
3893
4215
  } catch (e3) {
3894
4216
  this._authProvider.setTokenError(`${e3}`);
3895
4217
  }
3896
4218
  }));
3897
4219
  const o2 = Math.random().toString().split(".")[1];
3898
- this._realtimeClient = new Cs(this._apiUrls.getRealtimeWsUrl(t2, s2, "1.6.2", o2, e2.clientBuild), s2, this._authProvider), this.currentUser = this.user(s2), this._terminationReason = a(), this._terminationReason.promise.then((e3) => {
4220
+ this._realtimeClient = new Kn(this._apiUrls.getRealtimeWsUrl(t2, s2, "1.6.3", o2, e2.clientBuild), s2, this._authProvider), this.currentUser = this.user(s2), this._terminationReason = r(), this._terminationReason.promise.then((e3) => {
3899
4221
  console.error(`[TalkJS] ${e3}`);
3900
- }), function(e3, t3) {
4222
+ }), (function(e3, t3) {
3901
4223
  return __async(this, null, function* () {
3902
- return xs({ method: "GET", url: `${t3}/${e3}` }).then((e4) => __async(this, null, function* () {
4224
+ return ta({ method: "GET", url: `${t3}/${e3}` }).then((e4) => __async(null, null, function* () {
3903
4225
  return 200 === e4.status || 404 !== e4.status && (console.warn(`[TalkJS] Received unexpected ${e4.status} status code when validating app ID. Assuming that the app ID is valid.`), true);
3904
4226
  })).catch((e4) => {
3905
4227
  if ("string" != typeof e4 && "status" in e4) {
@@ -3909,7 +4231,7 @@ class Ns {
3909
4231
  return console.warn("[TalkJS] Encountered network issues when validating app ID. Assuming that the app ID is valid."), true;
3910
4232
  });
3911
4233
  });
3912
- }(this._appId, this._apiUrls.internalHttpApiUrl).then((e3) => {
4234
+ })(this._appId, this._apiUrls.internalHttpApiUrl).then((e3) => {
3913
4235
  e3 || this.terminate(new Error(`The app ID ${this._appId} does not exist. Make sure you are using the correct app ID as found on the TalkJS dashboard. App IDs are case-sensitive.`));
3914
4236
  }), this._authProvider.onTokenRefreshFailed((e3) => {
3915
4237
  this.terminate(new Error(`Could not authenticate, cannot recover automatically: ${e3}`));
@@ -3931,7 +4253,7 @@ class Ns {
3931
4253
  });
3932
4254
  }
3933
4255
  onError(e2) {
3934
- const t2 = a();
4256
+ const t2 = r();
3935
4257
  return Promise.race([t2.promise, this._terminationReason.promise]).then((t3) => {
3936
4258
  "UNSUBSCRIBED" !== t3 && e2(t3);
3937
4259
  }), { unsubscribe: () => t2.resolve("UNSUBSCRIBED") };
@@ -3949,32 +4271,48 @@ class Ns {
3949
4271
  subscribeConversations(e2) {
3950
4272
  return this._realtimeClient.subscribe(["me", "conversations"], e2);
3951
4273
  }
4274
+ searchMessages(e2) {
4275
+ let t2;
4276
+ return { setQuery: (s2) => t2 && t2.searchString === s2 ? t2.currentState : (t2 && t2.cancel(), s2 && "" !== s2 ? (t2 = new da(e2, s2, `${this._apiUrls.restApiHttpUrl}/${this._appId}/me/messages/search`, (e3) => __async(this, null, function* () {
4277
+ const [t3, s3] = yield Promise.all([this.conversation(e3.conversationId).get(), this._realtimeClient.hydrateMessageData(e3, e3.conversationId)]);
4278
+ return null === t3 ? c("Message belongs to nonexistent conversation") : s3.ok ? o({ conversation: t3, message: s3.value }) : s3;
4279
+ }), this._authProvider), t2.loadMore(3)) : (t2 = void 0, e2 == null ? void 0 : e2([], "loadedAll"), Promise.resolve({ results: [], loadedAll: true }))), loadMore: (e3) => t2 ? t2.loadMore(e3 != null ? e3 : 10) : Promise.resolve({ results: [], loadedAll: true }) };
4280
+ }
4281
+ searchConversations(e2) {
4282
+ let t2;
4283
+ return { setQuery: (s2) => t2 && t2.searchString === s2 ? t2.currentState : (t2 && t2.cancel(), s2 && "" !== s2 ? (t2 = new da(e2, s2, `${this._apiUrls.restApiHttpUrl}/${this._appId}/me/conversations/search`, (e3) => __async(this, null, function* () {
4284
+ const t3 = yield this._realtimeClient.hydrateConvData(e3);
4285
+ if (!t3.ok) return t3;
4286
+ const s3 = t3.value;
4287
+ return null === s3 ? l({ status: 404, errorCode: "CONVERSATION_NOT_FOUND", reasons: ["No conversation with that ID was found"] }) : o(s3);
4288
+ }), this._authProvider), t2.loadMore(3)) : (t2 = void 0, e2 == null ? void 0 : e2([], "loadedAll"), Promise.resolve({ results: [], loadedAll: true }))), loadMore: (e3) => t2 ? t2.loadMore(e3 != null ? e3 : 10) : Promise.resolve({ results: [], loadedAll: true }) };
4289
+ }
3952
4290
  terminate(e2) {
3953
- Bs.deregister(this._appId, this.currentUser.id), this._terminationReason.resolve(e2), this._realtimeClient.destroy();
4291
+ ca.deregister(this._appId, this.currentUser.id), this._terminationReason.resolve(e2), this._realtimeClient.destroy();
3954
4292
  }
3955
4293
  _isConnected() {
3956
4294
  return this._realtimeClient.isConnected();
3957
4295
  }
3958
4296
  uploadFile(e2, t2) {
3959
- return _s(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, t2);
4297
+ return ua(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, t2);
3960
4298
  }
3961
4299
  uploadImage(e2, t2) {
3962
- return _s(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "image" }, t2));
4300
+ return ua(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "image" }, t2));
3963
4301
  }
3964
4302
  uploadVideo(e2, t2) {
3965
- return _s(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "video" }, t2));
4303
+ return ua(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "video" }, t2));
3966
4304
  }
3967
4305
  uploadAudio(e2, t2) {
3968
- return _s(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "audio" }, t2));
4306
+ return ua(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "audio" }, t2));
3969
4307
  }
3970
4308
  uploadVoice(e2, t2) {
3971
- return _s(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "voice" }, t2));
4309
+ return ua(`${this._apiUrls.restApiHttpUrl}/${this._appId}/files`, this._authProvider, e2, __spreadValues({ subtype: "voice" }, t2));
3972
4310
  }
3973
4311
  }
3974
- function _s(_0, _1, _2, _3) {
3975
- return __async(this, arguments, function* (e2, t2, s2, { subtype: n2, filename: r2, width: a2, height: i2, duration: o2 }) {
3976
- const u2 = new FormData();
3977
- return u2.set("file", s2, r2), void 0 !== n2 && u2.set("subtype", n2), void 0 !== a2 && u2.set("width", a2.toString()), void 0 !== i2 && u2.set("height", i2.toString()), void 0 !== o2 && u2.set("duration", o2.toString()), xs({ method: "POST", url: e2, data: u2, authProvider: t2, errorTracker: t2.errorTracker }).then((e3) => e3.json()).then((e3) => e3.fileToken).catch((e3) => __async(this, null, function* () {
4312
+ function ua(_0, _1, _2, _3) {
4313
+ return __async(this, arguments, function* (e2, t2, s2, { subtype: n2, filename: a2, width: r2, height: i2, duration: o2 }) {
4314
+ const c2 = new FormData();
4315
+ return c2.set("file", s2, a2), void 0 !== n2 && c2.set("subtype", n2), void 0 !== r2 && c2.set("width", r2.toString()), void 0 !== i2 && c2.set("height", i2.toString()), void 0 !== o2 && c2.set("duration", o2.toString()), ta({ method: "POST", url: e2, data: c2, authProvider: t2, errorTracker: t2.errorTracker }).then((e3) => e3.json()).then((e3) => e3.fileToken).catch((e3) => __async(null, null, function* () {
3978
4316
  if (e3 instanceof Response) {
3979
4317
  const t3 = yield e3.json(), s3 = `Unexpected response when uploading file, status code ${e3.status} ${t3.errorCode}, ${t3.reasons}`;
3980
4318
  throw new Error(s3);
@@ -3983,8 +4321,95 @@ function _s(_0, _1, _2, _3) {
3983
4321
  }));
3984
4322
  });
3985
4323
  }
4324
+ class da {
4325
+ constructor(e2, t2, s2, n2, a2) {
4326
+ this.onResults = e2, this.searchString = t2, this.baseUrl = s2, this.hydrateData = n2, this.authProvider = a2, this.error = void 0, this.lastCompletedQueryState = { results: [], loadedAll: false }, this.currentCursor = void 0, this.cancelQuery = () => {
4327
+ }, e2 == null ? void 0 : e2([], "searching");
4328
+ }
4329
+ get currentState() {
4330
+ return this.loadingDeferred ? this.loadingDeferred.promise : Promise.resolve(this.lastCompletedQueryState);
4331
+ }
4332
+ cancel() {
4333
+ this.cancelQuery();
4334
+ }
4335
+ buildUrl(e2) {
4336
+ const t2 = new URL(this.baseUrl);
4337
+ return void 0 === this.currentCursor && t2.searchParams.append("searchString", encodeURIComponent(this.searchString)), void 0 !== this.currentCursor && t2.searchParams.append("cursor", this.currentCursor), t2.searchParams.append("limit", e2.toString()), t2.toString();
4338
+ }
4339
+ loadMore(e2) {
4340
+ return __async(this, null, function* () {
4341
+ var _a2, _b2;
4342
+ if (this.error) throw this.error;
4343
+ if (this.loadingDeferred) return this.loadingDeferred.promise;
4344
+ if (this.lastCompletedQueryState.loadedAll) return Promise.resolve(this.lastCompletedQueryState);
4345
+ this.loadingDeferred = r(), this.loadingDeferred.promise.catch(() => {
4346
+ });
4347
+ const t2 = new AbortController();
4348
+ this.cancelQuery = () => {
4349
+ t2.abort();
4350
+ };
4351
+ const s2 = this.buildUrl(e2), n2 = [], a2 = yield this._performSearch(s2, t2, (e3) => {
4352
+ const t3 = this.hydrateData(e3);
4353
+ n2.push(t3), void 0 !== this.onResults && Promise.all(n2).then((e4) => {
4354
+ const t4 = u(e4), s3 = S([...this.lastCompletedQueryState.results, ...t4]);
4355
+ this.onResults(s3, "searching");
4356
+ });
4357
+ }), i2 = a2.ok ? a2.value : void 0;
4358
+ if (yield Promise.all(n2).then((e3) => {
4359
+ var _a3;
4360
+ const t3 = u(e3), s3 = S([...this.lastCompletedQueryState.results, ...t3]), n3 = void 0 === i2;
4361
+ this.lastCompletedQueryState = S({ results: s3, loadedAll: n3 }), this.currentCursor = i2;
4362
+ const a3 = n3 ? "loadedAll" : "canLoadMore";
4363
+ (_a3 = this.onResults) == null ? void 0 : _a3.call(this, s3, a3);
4364
+ }), a2.ok) return (_a2 = this.loadingDeferred) == null ? void 0 : _a2.resolve(this.lastCompletedQueryState), this.loadingDeferred = void 0, this.lastCompletedQueryState;
4365
+ throw (_b2 = this.loadingDeferred) == null ? void 0 : _b2.reject(a2.value), this.loadingDeferred = void 0, this.error = a2.value, a2.value;
4366
+ });
4367
+ }
4368
+ _performSearch(e2, t2, s2) {
4369
+ return __async(this, null, function* () {
4370
+ let n2;
4371
+ return ta({ method: "GET", url: e2, authProvider: this.authProvider, errorTracker: this.authProvider.errorTracker, abortSignal: t2.signal }).then((e3) => __async(this, null, function* () {
4372
+ if (!e3.body) return l("Search response was missing body");
4373
+ const t3 = e3.body.getReader(), a2 = new TextDecoder();
4374
+ let r2 = "", i2 = true;
4375
+ const c2 = (e4, t4) => {
4376
+ if (i2) i2 = false;
4377
+ else try {
4378
+ if (e4.startsWith("]")) {
4379
+ const t5 = `{"data":[${e4}`, s4 = JSON.parse(t5);
4380
+ return void (n2 = s4.cursor);
4381
+ }
4382
+ let s3 = e4;
4383
+ s3.startsWith(",") && (s3 = s3.slice(1)), t4(JSON.parse(s3));
4384
+ } catch (e5) {
4385
+ console.warn("[TalkJS] Error during search, received unexpected data, ignoring. Some search results may be missing.");
4386
+ }
4387
+ };
4388
+ for (; ; ) {
4389
+ const { done: e4, value: n3 } = yield t3.read();
4390
+ if (e4) break;
4391
+ r2 += a2.decode(n3, { stream: true });
4392
+ const i3 = r2.split("\n");
4393
+ r2 = i3.pop() || "";
4394
+ for (const e5 of i3) c2(e5, s2);
4395
+ }
4396
+ r2 += a2.decode();
4397
+ const h2 = r2.split("\n");
4398
+ for (const e4 of h2) c2(e4, s2);
4399
+ return o(n2);
4400
+ })).catch((e3) => __async(this, null, function* () {
4401
+ if (e3 instanceof DOMException && "AbortError" === e3.name) return o(void 0);
4402
+ if (e3 instanceof Response) {
4403
+ const t3 = yield e3.clone().json();
4404
+ return l(p("Search", { status: e3.status, errorCode: t3.errorCode, reasons: t3.reasons }));
4405
+ }
4406
+ return l(e3);
4407
+ }));
4408
+ });
4409
+ }
4410
+ }
3986
4411
  export {
3987
- Rs as getTalkSession,
4412
+ la as getTalkSession,
3988
4413
  f as registerPolyfills
3989
4414
  };
3990
4415
  //# sourceMappingURL=talkSession.js.map