@talkjs/core 1.3.0 → 1.4.1

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.
@@ -529,12 +529,12 @@ class T extends x {
529
529
  this.connection.call("SUBSCRIBE", ["users"], { ids: e2 }).then((e3) => this.subscribeCalls.forEach((t2) => t2.deferred.resolve(e3)));
530
530
  }
531
531
  }
532
- class S extends x {
532
+ class I extends x {
533
533
  constructor(e2, t2, s2) {
534
534
  super(s2, () => this.sendMutate()), this.conversationId = e2, this.connection = t2, this.calls = [];
535
535
  }
536
536
  canPush(e2, t2) {
537
- return !!S.isCorrectBatchTypeFor(e2, t2) && t2[1] === this.conversationId;
537
+ return !!I.isCorrectBatchTypeFor(e2, t2) && t2[1] === this.conversationId;
538
538
  }
539
539
  static isCorrectBatchTypeFor(e2, t2) {
540
540
  return s(t2, ["conversations", "*", "participants", "*"]) && ("PUT" === e2 || "POST" === e2 || "PATCH" === e2);
@@ -555,7 +555,7 @@ class S extends x {
555
555
  });
556
556
  }
557
557
  }
558
- class I {
558
+ class S {
559
559
  constructor(e2, t2, s2) {
560
560
  this.pendingBatch = null, this.connection = new E(e2, t2, s2);
561
561
  }
@@ -577,9 +577,9 @@ class I {
577
577
  }
578
578
  createEmptyBatchFor(e2, t2) {
579
579
  if (T.isCorrectBatchTypeFor(e2, t2)) return new T(this.connection, () => this.pendingBatch = null);
580
- if (S.isCorrectBatchTypeFor(e2, t2)) {
580
+ if (I.isCorrectBatchTypeFor(e2, t2)) {
581
581
  const e3 = t2[1];
582
- return new S(e3, this.connection, () => this.pendingBatch = null);
582
+ return new I(e3, this.connection, () => this.pendingBatch = null);
583
583
  }
584
584
  return null;
585
585
  }
@@ -587,7 +587,7 @@ class I {
587
587
  const D = { 200: "RESOLVE", 400: "RESOLVE", 401: "RETRY", 402: "RESOLVE", 403: "RESOLVE", 404: "RESOLVE", 405: "RESOLVE", 409: "RESOLVE", 429: "DELAY", 500: "DELAY" };
588
588
  class M {
589
589
  constructor(e2, t2, s2) {
590
- this.throttler = new F(), this.alive = true, this.connection = new I(e2, t2, s2);
590
+ this.throttler = new F(), this.alive = true, this.connection = new S(e2, t2, s2);
591
591
  }
592
592
  call(e2, t2, s2) {
593
593
  return __async(this, null, function* () {
@@ -636,7 +636,7 @@ class F {
636
636
  function B(e2) {
637
637
  return e2.map((e3) => encodeURIComponent(e3)).join();
638
638
  }
639
- class R {
639
+ class N {
640
640
  constructor() {
641
641
  this.paths = {};
642
642
  }
@@ -656,9 +656,9 @@ class R {
656
656
  Object.values(this.paths).forEach((t2) => e2(t2));
657
657
  }
658
658
  }
659
- class N {
659
+ class R {
660
660
  constructor(e2, t2, s2) {
661
- this.handlers = s2, this.targetSubscriptions = new R(), this.connection = new M(e2, t2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onSubscriptionsLost: () => {
661
+ this.handlers = s2, this.targetSubscriptions = new N(), this.connection = new M(e2, t2, { onUpstreamRestarting: () => this.handlers.onUpstreamRestarting(), onSubscriptionsLost: () => {
662
662
  this.targetSubscriptions.forEach((e3) => {
663
663
  this.resubscribe(e3);
664
664
  }), this.handlers.onResubscribeSent();
@@ -692,10 +692,10 @@ class N {
692
692
  return this.connection.isConnected();
693
693
  }
694
694
  }
695
- function P(e2, t2) {
695
+ function _(e2, t2) {
696
696
  return void 0 === t2 ? e2 : t2;
697
697
  }
698
- function _(e2, t2) {
698
+ function P(e2, t2) {
699
699
  if (void 0 === t2) return e2;
700
700
  if (null === t2) return {};
701
701
  const s2 = __spreadValues({}, e2);
@@ -763,8 +763,7 @@ class j {
763
763
  this.pendingStates.push({ seq: e2, resultPromise: s2 });
764
764
  }
765
765
  get(e2) {
766
- if (void 0 !== this.getPointer && e2 < this.getPointer.seq) throw `Trying to load state ${e2} when we have previously loaded ${this.getPointer.seq}`;
767
- for (; this.pendingStates.length > 0 && this.pendingStates[0].seq <= e2; ) this.getPointer = this.pendingStates.shift();
766
+ for (; this.pendingStates.length > 0 && (void 0 === this.getPointer || this.pendingStates[0].seq <= e2); ) this.getPointer = this.pendingStates.shift();
768
767
  return this.getPointer;
769
768
  }
770
769
  }
@@ -798,8 +797,9 @@ class $ extends j {
798
797
  }
799
798
  }
800
799
  class W extends $ {
801
- constructor(e2) {
802
- super({ seq: 0, resultPromise: new Promise((e3) => setTimeout(e3)).then(() => this.fetchInitial(0)) }, e2), this.getDeepMutex = new U(), this.lastDeep = void 0;
800
+ constructor(e2, t2) {
801
+ const s2 = new Promise((e3) => setTimeout(e3)).then(() => this.fetchInitial(e2));
802
+ super({ seq: e2, resultPromise: s2 }, t2), this.initialSeq = e2, this.getDeepMutex = new U(), this.lastDeep = void 0;
803
803
  }
804
804
  refetchInitial(e2) {
805
805
  return __async(this, null, function* () {
@@ -819,7 +819,7 @@ class W extends $ {
819
819
  if (e2 >= t2) return false;
820
820
  const s2 = this.get(t2), n2 = yield s2.resultPromise;
821
821
  if (!n2.ok) return false;
822
- if (n2.value.lastChanged > e2) return true;
822
+ if (n2.value.lastChanged > Math.max(this.initialSeq, e2) && n2.value.lastChanged <= t2) return true;
823
823
  return yield this.anyChildChanged(e2, t2, n2.value);
824
824
  });
825
825
  }
@@ -843,9 +843,9 @@ class W extends $ {
843
843
  }
844
844
  }
845
845
  class q extends W {
846
- constructor(e2, t2) {
847
- super(t2), this.emitMutex = e2, this.unsubscribeTimer = new H(), this.referencedByOtherStores = 0, this.listeners = [], this.lastEmitSeq = void 0, this.lastEmitResult = void 0, e2.runExclusive(() => __async(this, null, function* () {
848
- yield this.emit(0);
846
+ constructor(e2, t2, s2) {
847
+ super(e2, s2), this.emitMutex = t2, this.unsubscribeTimer = new H(), this.referencedByOtherStores = 0, this.listeners = [], this.lastEmitSeq = void 0, this.lastEmitResult = void 0, t2.runExclusive(() => __async(this, null, function* () {
848
+ yield this.emit(e2);
849
849
  }));
850
850
  }
851
851
  registerInternalSubscription() {
@@ -897,8 +897,8 @@ class H {
897
897
  }
898
898
  }
899
899
  class G extends q {
900
- constructor(e2, t2, s2, n2) {
901
- super(s2, n2), this.userId = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 1e4;
900
+ constructor(e2, t2, s2, n2, r2) {
901
+ super(e2, n2, r2), this.userId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e4;
902
902
  }
903
903
  fetchInitial(e2) {
904
904
  return __async(this, null, function* () {
@@ -921,7 +921,7 @@ class G extends q {
921
921
  this.mutate(e2, (s2) => {
922
922
  const n2 = s2.value.snapshot;
923
923
  if (null === n2) return console.warn("[TalkJS] Received a 'used edited' event for a user that we thought didn't exist."), s2;
924
- return c({ snapshot: { id: n2.id, name: P(n2.name, t2.diff.name), custom: _(n2.custom, t2.diff.custom), locale: P(n2.locale, t2.diff.locale), photoUrl: P(n2.photoUrl, t2.diff.photoUrl), role: P(n2.role, t2.diff.role), welcomeMessage: P(n2.welcomeMessage, t2.diff.welcomeMessage) }, lastChanged: e2 });
924
+ return c({ snapshot: { id: n2.id, name: _(n2.name, t2.diff.name), custom: P(n2.custom, t2.diff.custom), locale: _(n2.locale, t2.diff.locale), photoUrl: _(n2.photoUrl, t2.diff.photoUrl), role: _(n2.role, t2.diff.role), welcomeMessage: _(n2.welcomeMessage, t2.diff.welcomeMessage) }, lastChanged: e2 });
925
925
  });
926
926
  }
927
927
  getFromCache() {
@@ -1081,8 +1081,8 @@ function se(e2, t2) {
1081
1081
  }).join("");
1082
1082
  }
1083
1083
  class ne extends W {
1084
- constructor(e2, t2, s2) {
1085
- super(), this.conversationId = e2, this.message = t2, this.realtimeClient = s2;
1084
+ constructor(e2, t2, s2, n2) {
1085
+ super(e2), this.conversationId = t2, this.message = s2, this.realtimeClient = n2;
1086
1086
  }
1087
1087
  get messageId() {
1088
1088
  return "string" == typeof this.message ? this.message : this.message.id;
@@ -1129,7 +1129,7 @@ class ne extends W {
1129
1129
  messageEdited(e2, t2) {
1130
1130
  this.mutate(e2, (s2) => {
1131
1131
  if (null === s2.value.data) return s2;
1132
- return c({ 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: P(s2.value.data.editedAt, t2.diff.editedAt), custom: _(s2.value.data.custom, t2.diff.custom), content: P(s2.value.data.content, t2.diff.content) } });
1132
+ return c({ 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: _(s2.value.data.editedAt, t2.diff.editedAt), custom: P(s2.value.data.custom, t2.diff.custom), content: _(s2.value.data.content, t2.diff.content) } });
1133
1133
  });
1134
1134
  }
1135
1135
  messageDeleted(e2, t2) {
@@ -1149,8 +1149,8 @@ class ne extends W {
1149
1149
  }
1150
1150
  }
1151
1151
  class re extends W {
1152
- constructor(e2, t2, s2) {
1153
- super(), this.createdAt = e2, this.dataStore = t2, this.referencedDataStore = s2;
1152
+ constructor(e2, t2, s2, n2) {
1153
+ super(e2), this.createdAt = t2, this.dataStore = s2, this.referencedDataStore = n2;
1154
1154
  }
1155
1155
  get messageId() {
1156
1156
  return this.dataStore.messageId;
@@ -1189,8 +1189,8 @@ class re extends W {
1189
1189
  }
1190
1190
  }
1191
1191
  class ie extends q {
1192
- constructor(e2, t2, s2, n2) {
1193
- super(s2, n2), this.conversationId = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 1e3, this.pendingLoadMore = void 0;
1192
+ constructor(e2, t2, s2, n2, r2) {
1193
+ super(e2, n2, r2), this.conversationId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e3, this.pendingLoadMore = void 0;
1194
1194
  }
1195
1195
  listen(e2) {
1196
1196
  return this.onlyUsedInternally && this.mostRecentState.resultPromise.then((e3) => {
@@ -1265,12 +1265,12 @@ class ie extends q {
1265
1265
  if (null === s2.value.stores) return console.warn("[TalkJS] Received a 'message.created' event for a nonexistent conversation."), s2;
1266
1266
  if (s2.value.windowEnd && t2.state.createdAt < s2.value.windowEnd.oldestMessageTs) return s2;
1267
1267
  if (Object.hasOwnProperty.call(s2.value.stores, t2.state.id)) return s2;
1268
- const n2 = __spreadValues({}, s2.value.stores), r2 = new ne(this.conversationId, t2.state, this.realtimeClient);
1268
+ const n2 = __spreadValues({}, s2.value.stores), r2 = new ne(e2, this.conversationId, t2.state, this.realtimeClient);
1269
1269
  n2[t2.state.id] = r2;
1270
1270
  const i2 = t2.state.referencedMessageId;
1271
1271
  let a2;
1272
- null === i2 ? a2 = null : i2 in n2 ? a2 = n2[i2] : (a2 = new ne(this.conversationId, i2, this.realtimeClient), n2[i2] = a2);
1273
- const o2 = new re(t2.state.createdAt, r2, a2), u2 = [...s2.value.inWindow, o2];
1272
+ null === i2 ? a2 = null : i2 in n2 ? a2 = n2[i2] : (a2 = new ne(e2, this.conversationId, i2, this.realtimeClient), n2[i2] = a2);
1273
+ const o2 = new re(e2, t2.state.createdAt, r2, a2), u2 = [...s2.value.inWindow, o2];
1274
1274
  u2.sort((e3, t3) => t3.createdAt - e3.createdAt);
1275
1275
  const l2 = u2[0].messageId === t2.messageId ? e2 : s2.value.lastMessageChanged;
1276
1276
  return c({ lastChanged: e2, lastMessageChanged: l2, stores: n2, inWindow: u2, windowEnd: s2.value.windowEnd });
@@ -1290,13 +1290,13 @@ class ie extends q {
1290
1290
  delete n2[t2.messageId];
1291
1291
  const r2 = s2.value.inWindow.filter((e3) => e3.messageId !== t2.messageId);
1292
1292
  if (t2.newLastMessage && 0 === r2.length) {
1293
- const e3 = new ne(this.conversationId, t2.newLastMessage, this.realtimeClient);
1294
- n2[e3.messageId] = e3;
1295
- const s3 = t2.newLastMessage.referencedMessageId;
1296
- let i3;
1297
- null === s3 ? i3 = null : s3 in n2 ? i3 = n2[s3] : (i3 = new ne(this.conversationId, s3, this.realtimeClient), n2[s3] = i3);
1298
- const a2 = new re(t2.newLastMessage.createdAt, e3, i3);
1299
- r2.push(a2);
1293
+ const s3 = new ne(e2, this.conversationId, t2.newLastMessage, this.realtimeClient);
1294
+ n2[s3.messageId] = s3;
1295
+ const i3 = t2.newLastMessage.referencedMessageId;
1296
+ let a2;
1297
+ null === i3 ? a2 = null : i3 in n2 ? a2 = n2[i3] : (a2 = new ne(e2, this.conversationId, i3, this.realtimeClient), n2[i3] = a2);
1298
+ const o2 = new re(e2, t2.newLastMessage.createdAt, s3, a2);
1299
+ r2.push(o2);
1300
1300
  }
1301
1301
  const i2 = void 0 !== t2.newLastMessage ? e2 : s2.value.lastMessageChanged;
1302
1302
  return c({ lastChanged: e2, lastMessageChanged: i2, stores: n2, inWindow: r2, windowEnd: s2.value.windowEnd });
@@ -1340,27 +1340,27 @@ function ae(_0) {
1340
1340
  function oe({ seq: e2, prevState: t2, messages: s2, cursor: n2, conversationId: r2, realtimeClient: i2 }) {
1341
1341
  var _a2, _b, _c, _d;
1342
1342
  const a2 = t2 ? __spreadValues({}, t2.stores) : {};
1343
- for (const e3 of s2) if (void 0 === a2[e3.id]) {
1344
- const t3 = new ne(r2, e3, i2);
1345
- a2[t3.messageId] = t3;
1346
- }
1347
- for (const e3 of s2) {
1348
- const t3 = e3.referencedMessageId;
1349
- if (t3 && void 0 === a2[t3]) {
1350
- const e4 = new ne(r2, t3, i2);
1351
- a2[e4.messageId] = e4;
1343
+ for (const t3 of s2) if (void 0 === a2[t3.id]) {
1344
+ const s3 = new ne(e2, r2, t3, i2);
1345
+ a2[s3.messageId] = s3;
1346
+ }
1347
+ for (const t3 of s2) {
1348
+ const s3 = t3.referencedMessageId;
1349
+ if (s3 && void 0 === a2[s3]) {
1350
+ const t4 = new ne(e2, r2, s3, i2);
1351
+ a2[t4.messageId] = t4;
1352
1352
  }
1353
1353
  }
1354
1354
  const o2 = t2 ? [...t2.inWindow] : [];
1355
- for (const e3 of s2) o2.push(new re(e3.createdAt, a2[e3.id], e3.referencedMessageId ? a2[e3.referencedMessageId] : null));
1355
+ for (const t3 of s2) o2.push(new re(e2, t3.createdAt, a2[t3.id], t3.referencedMessageId ? a2[t3.referencedMessageId] : null));
1356
1356
  o2.sort((e3, t3) => t3.createdAt - e3.createdAt);
1357
1357
  const u2 = (_b = (_a2 = t2 == null ? void 0 : t2.inWindow) == null ? void 0 : _a2[0]) == null ? void 0 : _b.messageId, l2 = (_c = o2 == null ? void 0 : o2[0]) == null ? void 0 : _c.messageId, h2 = u2 === l2 ? (_d = t2 == null ? void 0 : t2.lastMessageChanged) != null ? _d : e2 : e2;
1358
1358
  if (null === n2) return c({ lastChanged: e2, lastMessageChanged: h2, stores: a2, inWindow: o2, windowEnd: null });
1359
1359
  return c({ lastChanged: e2, lastMessageChanged: h2, stores: a2, inWindow: o2, windowEnd: { cursor: n2, oldestMessageTs: s2[s2.length - 1].createdAt } });
1360
1360
  }
1361
1361
  class ue extends q {
1362
- constructor(e2, t2, s2, n2) {
1363
- super(s2, n2), this.convDataStore = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 0;
1362
+ constructor(e2, t2, s2, n2, r2) {
1363
+ super(e2, n2, r2), this.convDataStore = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 0;
1364
1364
  }
1365
1365
  fetchInitial(e2) {
1366
1366
  return __async(this, null, function* () {
@@ -1402,8 +1402,8 @@ function le(e2, t2) {
1402
1402
  }(e2, ([e3, s2]) => [e3, t2(s2, e3)]);
1403
1403
  }
1404
1404
  class he extends q {
1405
- constructor(e2, t2, s2, n2) {
1406
- super(s2, n2), this.conversationId = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 1e4;
1405
+ constructor(e2, t2, s2, n2, r2) {
1406
+ super(e2, n2, r2), this.conversationId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e4;
1407
1407
  }
1408
1408
  fetchInitial(e2) {
1409
1409
  return __async(this, null, function* () {
@@ -1471,8 +1471,8 @@ class he extends q {
1471
1471
  }
1472
1472
  }
1473
1473
  class de extends W {
1474
- constructor(e2, t2, s2) {
1475
- super(), this.conversationId = e2, this.participantData = t2, this.realtimeClient = s2;
1474
+ constructor(e2, t2, s2, n2) {
1475
+ super(e2), this.conversationId = t2, this.participantData = s2, this.realtimeClient = n2;
1476
1476
  }
1477
1477
  fetchInitial(e2) {
1478
1478
  return __async(this, null, function* () {
@@ -1509,7 +1509,7 @@ class de extends W {
1509
1509
  participantEdited(e2, t2) {
1510
1510
  this.mutate(e2, (s2) => {
1511
1511
  if (null === s2.value.data) return s2;
1512
- return c({ lastChanged: e2, user: s2.value.user, data: { id: s2.value.data.id, access: P(s2.value.data.access, t2.diff.access), notify: P(s2.value.data.notify, t2.diff.notify), joinedAt: s2.value.data.joinedAt } });
1512
+ return c({ lastChanged: e2, user: s2.value.user, data: { id: s2.value.data.id, access: _(s2.value.data.access, t2.diff.access), notify: _(s2.value.data.notify, t2.diff.notify), joinedAt: s2.value.data.joinedAt } });
1513
1513
  });
1514
1514
  }
1515
1515
  participantDeleted(e2, t2) {
@@ -1527,8 +1527,8 @@ class de extends W {
1527
1527
  }
1528
1528
  }
1529
1529
  class pe extends q {
1530
- constructor(e2, t2, s2, n2) {
1531
- super(s2, n2), this.conversationId = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 1e3, this.pendingLoadMore = void 0;
1530
+ constructor(e2, t2, s2, n2, r2) {
1531
+ super(e2, n2, r2), this.conversationId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e3, this.pendingLoadMore = void 0;
1532
1532
  }
1533
1533
  fetchInitial(e2) {
1534
1534
  return __async(this, null, function* () {
@@ -1584,7 +1584,7 @@ class pe extends q {
1584
1584
  if (null === s2.value.stores) return console.warn("[TalkJS] Received a 'participant.created' event for a nonexistent conversation."), s2;
1585
1585
  if (s2.value.windowEnd && t2.state.joinedAt < s2.value.windowEnd.oldestParticipantTs) return s2;
1586
1586
  if (Object.hasOwnProperty.call(s2.value.stores, t2.state.id)) return s2;
1587
- const n2 = __spreadValues({}, s2.value.stores), r2 = new de(this.conversationId, t2.state, this.realtimeClient);
1587
+ const n2 = __spreadValues({}, s2.value.stores), r2 = new de(e2, this.conversationId, t2.state, this.realtimeClient);
1588
1588
  n2[t2.state.id] = r2;
1589
1589
  return c({ lastChanged: e2, stores: n2, windowEnd: s2.value.windowEnd });
1590
1590
  });
@@ -1636,16 +1636,16 @@ function fe(_0) {
1636
1636
  }
1637
1637
  function me({ seq: e2, prevStores: t2, participants: s2, cursor: n2, conversationId: r2, realtimeClient: i2 }) {
1638
1638
  const a2 = t2 ? __spreadValues({}, t2) : {};
1639
- for (const e3 of s2) if (void 0 === a2[e3.id]) {
1640
- const t3 = new de(r2, e3, i2);
1641
- a2[e3.id] = t3;
1639
+ for (const t3 of s2) if (void 0 === a2[t3.id]) {
1640
+ const s3 = new de(e2, r2, t3, i2);
1641
+ a2[t3.id] = s3;
1642
1642
  }
1643
1643
  if (null === n2) return c({ lastChanged: e2, stores: a2, windowEnd: null });
1644
1644
  return c({ lastChanged: e2, stores: a2, windowEnd: { cursor: n2, oldestParticipantTs: s2[s2.length - 1].joinedAt } });
1645
1645
  }
1646
1646
  class ge extends q {
1647
- constructor(e2, t2, s2, n2) {
1648
- super(s2, n2), this.getConvDataStore = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 1e3, this.pendingLoadMore = void 0;
1647
+ constructor(e2, t2, s2, n2, r2) {
1648
+ super(e2, n2, r2), this.getConvDataStore = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e3, this.pendingLoadMore = void 0;
1649
1649
  }
1650
1650
  fetchInitial(e2) {
1651
1651
  return __async(this, null, function* () {
@@ -1758,8 +1758,8 @@ function we({ seq: e2, prevStores: t2, conversations: s2, cursor: n2, getConvDat
1758
1758
  return c({ lastChanged: e2, stores: i2, windowEnd: { cursor: n2, oldestMessageTs: Math.min(...s2.map((e3) => e3.lastMessageAt)) } });
1759
1759
  }
1760
1760
  class be extends q {
1761
- constructor(e2, t2, s2, n2) {
1762
- super(s2, n2), this.conversation = e2, this.realtimeClient = t2, this.unsubscribeDebounceMs = 5e3;
1761
+ constructor(e2, t2, s2, n2, r2) {
1762
+ super(e2, n2, r2), this.conversation = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 5e3;
1763
1763
  }
1764
1764
  get conversationId() {
1765
1765
  return "string" == typeof this.conversation ? this.conversation : this.conversation.id;
@@ -1825,11 +1825,61 @@ class be extends q {
1825
1825
  }
1826
1826
  function ye(e2, t2) {
1827
1827
  const s2 = t2;
1828
- return { id: e2.id, createdAt: e2.createdAt, subject: P(e2.subject, s2.subject), photoUrl: P(e2.photoUrl, s2.photoUrl), welcomeMessages: P(e2.welcomeMessages, s2.welcomeMessages), custom: _(e2.custom, s2.custom), lastMessageAt: P(e2.lastMessageAt, s2.lastMessageAt), unreadMessageCount: P(e2.unreadMessageCount, s2.unreadMessageCount), isUnread: P(e2.isUnread, s2.isUnread), access: P(e2.access, s2.access), notify: P(e2.notify, s2.notify), readUntil: P(e2.readUntil, s2.readUntil), everyoneReadUntil: P(e2.everyoneReadUntil, s2.everyoneReadUntil), joinedAt: e2.joinedAt };
1828
+ return { id: e2.id, createdAt: e2.createdAt, subject: _(e2.subject, s2.subject), photoUrl: _(e2.photoUrl, s2.photoUrl), welcomeMessages: _(e2.welcomeMessages, s2.welcomeMessages), custom: P(e2.custom, s2.custom), lastMessageAt: _(e2.lastMessageAt, s2.lastMessageAt), unreadMessageCount: _(e2.unreadMessageCount, s2.unreadMessageCount), isUnread: _(e2.isUnread, s2.isUnread), access: _(e2.access, s2.access), notify: _(e2.notify, s2.notify), readUntil: _(e2.readUntil, s2.readUntil), everyoneReadUntil: _(e2.everyoneReadUntil, s2.everyoneReadUntil), joinedAt: e2.joinedAt };
1829
+ }
1830
+ class Ce extends q {
1831
+ constructor(e2, t2, s2, n2, r2) {
1832
+ super(e2, n2, r2), this.userId = t2, this.realtimeClient = s2, this.unsubscribeDebounceMs = 1e3;
1833
+ }
1834
+ fetchInitial(e2) {
1835
+ return __async(this, null, function* () {
1836
+ const t2 = this.realtimeClient.internalSubscribe(["users", this.userId]), s2 = yield this.realtimeClient.call("GET", ["users", this.userId, "online"], {}, { bypassCache: true });
1837
+ return s2.ok || "server" !== s2.where || 404 !== s2.value.status || "USER_NOT_FOUND" !== s2.value.errorCode ? s2.ok ? c({ lastChanged: e2, user: t2, data: s2.value.data }) : s2 : c({ lastChanged: e2, user: t2, data: null });
1838
+ });
1839
+ }
1840
+ equal(e2, t2) {
1841
+ return O(e2.data, t2.data);
1842
+ }
1843
+ teardownNested(e2) {
1844
+ e2.user.unsubscribe();
1845
+ }
1846
+ anyChildChanged(e2, t2, s2) {
1847
+ return __async(this, null, function* () {
1848
+ return s2.user.store.changedBetween(e2, t2);
1849
+ });
1850
+ }
1851
+ loadNested(e2, t2) {
1852
+ return __async(this, null, function* () {
1853
+ const s2 = yield t2.user.store.getDeep(e2);
1854
+ if (!s2.ok) return s2;
1855
+ const n2 = s2.value.snapshot;
1856
+ return null === t2.data || null === n2 ? c({ snapshot: null }) : c({ snapshot: __spreadValues({ user: n2 }, t2.data) });
1857
+ });
1858
+ }
1859
+ userCreated(e2, t2) {
1860
+ const s2 = this.fetchInitial(e2);
1861
+ this.mutate(e2, (e3) => null !== e3.value.data ? (s2.then((e4) => {
1862
+ e4.ok && this.teardownNested(e4.value);
1863
+ }), e3) : s2);
1864
+ }
1865
+ userOnlineChanged(e2, t2) {
1866
+ this.mutate(e2, (s2) => null === s2.value.data ? s2 : c({ lastChanged: e2, user: s2.value.user, data: t2.diff }));
1867
+ }
1868
+ getFromCache() {
1869
+ return __async(this, null, function* () {
1870
+ const e2 = yield this.mostRecentState.resultPromise;
1871
+ if (!e2.ok) return l("NOT_IN_CACHE");
1872
+ if (null === e2.value.data) {
1873
+ return h({ status: 404, errorCode: "USER_NOT_FOUND", reasons: ["No user with that ID exists"] });
1874
+ }
1875
+ const _a2 = e2.value, { user: t2 } = _a2, s2 = __objRest(_a2, ["user"]);
1876
+ return c({ status: 200, data: __spreadValues({}, s2.data) });
1877
+ });
1878
+ }
1829
1879
  }
1830
- class Ce {
1880
+ class Ae {
1831
1881
  constructor(e2, t2, s2) {
1832
- this.realtimeClient = s2, this.convDataStores = {}, this.storeMap = {}, this.emitMutex = new U(), this.seqOffset = 0, this.seqInThisConnection = 0, this.refetchOnNextNetworkLoss = true, this.connection = new N(e2, t2, { onUpstreamRestarting: () => {
1882
+ this.realtimeClient = s2, this.convDataStores = {}, this.storeMap = {}, this.emitMutex = new U(), this.seqOffset = 0, this.seqInThisConnection = 0, this.refetchOnNextNetworkLoss = true, this.connection = new R(e2, t2, { onUpstreamRestarting: () => {
1833
1883
  this.refetchOnNextNetworkLoss = false;
1834
1884
  }, onReady: () => {
1835
1885
  this.refetchOnNextNetworkLoss = true;
@@ -1841,7 +1891,7 @@ class Ce {
1841
1891
  }
1842
1892
  }, onResubscribeError: (e3, t3) => {
1843
1893
  var _a2;
1844
- (_a2 = this.storeMap[Ae(e3)]) == null ? void 0 : _a2.setError(t3);
1894
+ (_a2 = this.storeMap[Ee(e3)]) == null ? void 0 : _a2.setError(t3);
1845
1895
  }, onPublish: (e3, t3) => {
1846
1896
  this.seqInThisConnection = e3;
1847
1897
  const s3 = this.seq;
@@ -1862,44 +1912,46 @@ class Ce {
1862
1912
  }));
1863
1913
  }
1864
1914
  handlePublish(e2, t2) {
1865
- var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t2, _u, _v, _w, _x, _y;
1915
+ var _a2, _b, _c, _d, _e2, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t2, _u, _v, _w, _x, _y, _z, _A;
1866
1916
  switch (t2.type) {
1867
1917
  case "user.created":
1868
- return (_a2 = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _a2.userCreated(e2, t2), void ((_b = this.storeMap["/me/conversations"]) == null ? void 0 : _b.userCreated(e2, t2));
1918
+ return (_a2 = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _a2.userCreated(e2, t2), (_b = this.storeMap["/me/conversations"]) == null ? void 0 : _b.userCreated(e2, t2), void ((_c = this.storeMap[`/users/${t2.userId}/online`]) == null ? void 0 : _c.userCreated(e2, t2));
1869
1919
  case "user.edited":
1870
- return void ((_c = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _c.userEdited(e2, t2));
1920
+ return void ((_d = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _d.userEdited(e2, t2));
1871
1921
  case "side.created":
1872
- return (_d = this.convDataStores[t2.conversationId]) == null ? void 0 : _d.sideCreated(e2, t2), (_e2 = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _e2.sideCreated(e2, t2), (_f = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _f.sideCreated(e2, t2), void ((_g = this.storeMap["/me/conversations"]) == null ? void 0 : _g.sideCreated(e2, t2));
1922
+ return (_e2 = this.convDataStores[t2.conversationId]) == null ? void 0 : _e2.sideCreated(e2, t2), (_f = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _f.sideCreated(e2, t2), (_g = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _g.sideCreated(e2, t2), void ((_h = this.storeMap["/me/conversations"]) == null ? void 0 : _h.sideCreated(e2, t2));
1873
1923
  case "side.edited":
1874
- return (_h = this.convDataStores[t2.conversationId]) == null ? void 0 : _h.sideEdited(e2, t2), void ((_i = this.storeMap["/me/conversations"]) == null ? void 0 : _i.sideEdited(e2, t2));
1924
+ 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));
1875
1925
  case "side.deleted":
1876
- return (_j = this.convDataStores[t2.conversationId]) == null ? void 0 : _j.sideDeleted(e2, t2), (_k = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _k.sideDeleted(e2, t2), (_l = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _l.sideDeleted(e2, t2), (_m = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _m.sideDeleted(e2, t2), void ((_n = this.storeMap["/me/conversations"]) == null ? void 0 : _n.sideDeleted(e2, t2));
1926
+ 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));
1877
1927
  case "conversation.edited":
1878
- return void ((_o = this.convDataStores[t2.conversationId]) == null ? void 0 : _o.conversationEdited(e2, t2));
1928
+ return void ((_p = this.convDataStores[t2.conversationId]) == null ? void 0 : _p.conversationEdited(e2, t2));
1879
1929
  case "message.created":
1880
- return void ((_p = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _p.messageCreated(e2, t2));
1930
+ return void ((_q = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _q.messageCreated(e2, t2));
1881
1931
  case "message.edited":
1882
- return void ((_q = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _q.messageEdited(e2, t2));
1932
+ return void ((_r = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _r.messageEdited(e2, t2));
1883
1933
  case "message.deleted":
1884
- return void ((_r = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _r.messageDeleted(e2, t2));
1934
+ return void ((_s = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _s.messageDeleted(e2, t2));
1885
1935
  case "typing.available":
1886
- return void ((_s = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _s.typingAvailable(e2, t2));
1936
+ return void ((_t2 = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _t2.typingAvailable(e2, t2));
1887
1937
  case "typing.changed":
1888
- return void ((_t2 = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _t2.typingChanged(e2, t2));
1938
+ return void ((_u = this.storeMap[`/me/conversations/${t2.conversationId}/typing`]) == null ? void 0 : _u.typingChanged(e2, t2));
1889
1939
  case "conversation.cleared":
1890
- return void ((_u = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _u.conversationCleared(e2, t2));
1940
+ return void ((_v = this.storeMap[`/me/conversations/${t2.conversationId}/messages`]) == null ? void 0 : _v.conversationCleared(e2, t2));
1891
1941
  case "participant.edited":
1892
- return (_v = this.convDataStores[t2.conversationId]) == null ? void 0 : _v.participantEdited(e2, t2), void ((_w = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _w.participantEdited(e2, t2));
1942
+ return (_w = this.convDataStores[t2.conversationId]) == null ? void 0 : _w.participantEdited(e2, t2), void ((_x = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _x.participantEdited(e2, t2));
1893
1943
  case "participant.created":
1894
- return void ((_x = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _x.participantCreated(e2, t2));
1944
+ return void ((_y = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _y.participantCreated(e2, t2));
1895
1945
  case "participant.deleted":
1896
- return void ((_y = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _y.participantDeleted(e2, t2));
1946
+ return void ((_z = this.storeMap[`/me/conversations/${t2.conversationId}/participants`]) == null ? void 0 : _z.participantDeleted(e2, t2));
1947
+ case "user.online.changed":
1948
+ return void ((_A = this.storeMap[`/users/${t2.userId}/online`]) == null ? void 0 : _A.userOnlineChanged(e2, t2));
1897
1949
  }
1898
1950
  }
1899
1951
  call(e2, t2, n2, r2) {
1900
1952
  return __async(this, null, function* () {
1901
1953
  if (!r2.bypassCache && "GET" === e2) {
1902
- const e3 = Ae(t2);
1954
+ const e3 = Ee(t2);
1903
1955
  if (e3 in this.storeMap) {
1904
1956
  const t3 = e3, s2 = this.storeMap[t3];
1905
1957
  if (s2 && "getFromCache" in s2) {
@@ -1964,7 +2016,7 @@ class Ce {
1964
2016
  }, a2;
1965
2017
  }
1966
2018
  getOrCreateStore(e2) {
1967
- const t2 = Ae(e2);
2019
+ const t2 = Ee(e2);
1968
2020
  if (t2 in this.storeMap) return this.storeMap[t2];
1969
2021
  this.connection.subscribe(e2).then((e3) => {
1970
2022
  e3.ok || s2.setError(e3);
@@ -1981,12 +2033,13 @@ class Ce {
1981
2033
  return this.connection.isConnected();
1982
2034
  }
1983
2035
  instantiateStore(e2, t2) {
1984
- if (s(e2, ["users", "*"])) return new G(e2[1], this.realtimeClient, this.emitMutex, t2);
1985
- if (s(e2, ["me", "conversations", "*"])) return new ue(this.subscribeConvData(e2[2]), this.realtimeClient, this.emitMutex, t2);
1986
- if (s(e2, ["me", "conversations", "*", "messages"])) return new ie(e2[2], this.realtimeClient, this.emitMutex, t2);
1987
- if (s(e2, ["me", "conversations", "*", "participants"])) return new pe(e2[2], this.realtimeClient, this.emitMutex, t2);
1988
- if (s(e2, ["me", "conversations", "*", "typing"])) return new he(e2[2], this.realtimeClient, this.emitMutex, t2);
1989
- if (s(e2, ["me", "conversations"])) return new ge((e3) => this.subscribeConvData(e3), this.realtimeClient, this.emitMutex, t2);
2036
+ if (s(e2, ["users", "*"])) return new G(this.seq, e2[1], this.realtimeClient, this.emitMutex, t2);
2037
+ if (s(e2, ["me", "conversations", "*"])) return new ue(this.seq, this.subscribeConvData(e2[2]), this.realtimeClient, this.emitMutex, t2);
2038
+ if (s(e2, ["me", "conversations", "*", "messages"])) return new ie(this.seq, e2[2], this.realtimeClient, this.emitMutex, t2);
2039
+ if (s(e2, ["me", "conversations", "*", "participants"])) return new pe(this.seq, e2[2], this.realtimeClient, this.emitMutex, t2);
2040
+ if (s(e2, ["me", "conversations", "*", "typing"])) return new he(this.seq, e2[2], this.realtimeClient, this.emitMutex, t2);
2041
+ if (s(e2, ["me", "conversations"])) return new ge(this.seq, (e3) => this.subscribeConvData(e3), this.realtimeClient, this.emitMutex, t2);
2042
+ if (s(e2, ["users", "*", "online"])) return new Ce(this.seq, e2[1], this.realtimeClient, this.emitMutex, t2);
1990
2043
  throw "Unreachable";
1991
2044
  }
1992
2045
  subscribeConvData(e2) {
@@ -1995,18 +2048,18 @@ class Ce {
1995
2048
  const e3 = this.convDataStores[t2];
1996
2049
  return { store: e3, unsubscribe: e3.registerInternalSubscription() };
1997
2050
  }
1998
- const s2 = new be(e2, this.realtimeClient, this.emitMutex, () => {
2051
+ const s2 = new be(this.seq, e2, this.realtimeClient, this.emitMutex, () => {
1999
2052
  delete this.convDataStores[t2];
2000
2053
  });
2001
2054
  return this.convDataStores[t2] = s2, { store: s2, unsubscribe: s2.registerInternalSubscription() };
2002
2055
  }
2003
2056
  }
2004
- function Ae(e2) {
2057
+ function Ee(e2) {
2005
2058
  return `/${e2.join("/")}`;
2006
2059
  }
2007
- class Ee {
2060
+ class ke {
2008
2061
  constructor(e2, t2, s2) {
2009
- this.userId = t2, this.alive = true, this.connection = new Ce(e2, s2, this), s2.onTokenRefreshFailed(() => {
2062
+ this.userId = t2, this.alive = true, this.connection = new Ae(e2, s2, this), s2.onTokenRefreshFailed(() => {
2010
2063
  this.destroy();
2011
2064
  });
2012
2065
  }
@@ -2031,7 +2084,7 @@ class Ee {
2031
2084
  listMessages(e2, t2) {
2032
2085
  return __async(this, null, function* () {
2033
2086
  const s2 = yield this.call("GET", ["me", "conversations", e2, "messages"], t2);
2034
- if (!s2.ok) return ke(s2, "Listing messages in " + e2);
2087
+ if (!s2.ok) return xe(s2, "Listing messages in " + e2);
2035
2088
  const n2 = s2.value.data.data, r2 = yield Promise.all(n2.map((t3) => this.createMessageSnapshot(t3, e2))), i2 = r2.find((e3) => !e3.ok);
2036
2089
  if (void 0 !== i2 && !i2.ok) return i2;
2037
2090
  return c(r2.map(({ value: e3 }) => e3));
@@ -2060,7 +2113,7 @@ class Ee {
2060
2113
  const s2 = yield this.call("GET", ["me", "conversations", e2, "messages", t2], {});
2061
2114
  if (!s2.ok && "server" === s2.where && 404 === s2.value.status) return c(null);
2062
2115
  if (!s2.ok && "server" === s2.where && 403 === s2.value.status && "NOT_A_PARTICIPANT" === s2.value.errorCode) return c(null);
2063
- if (!s2.ok) return ke(s2, `Fetching referenced message ${t2} in conversation ${e2}`);
2116
+ if (!s2.ok) return xe(s2, `Fetching referenced message ${t2} in conversation ${e2}`);
2064
2117
  const n2 = s2.value.data, r2 = yield this.getUser(n2.senderId);
2065
2118
  if (!r2.ok) return r2;
2066
2119
  const i2 = r2.value;
@@ -2071,7 +2124,7 @@ class Ee {
2071
2124
  return __async(this, null, function* () {
2072
2125
  const t2 = yield this.call("GET", ["users", e2], { includePrivateFields: false });
2073
2126
  if (!t2.ok && "server" === t2.where && 404 === t2.value.status) return c(null);
2074
- if (!t2.ok) return ke(t2, "Get user " + e2);
2127
+ if (!t2.ok) return xe(t2, "Get user " + e2);
2075
2128
  return c(this.createUserSnapshot(t2.value.data));
2076
2129
  });
2077
2130
  }
@@ -2082,15 +2135,15 @@ class Ee {
2082
2135
  return { id: e2.id, type: e2.type, sender: t2, referencedMessageId: e2.referencedMessageId, custom: e2.custom, createdAt: e2.createdAt, editedAt: e2.editedAt, origin: e2.origin, content: e2.content, plaintext: te(e2.content, {}) };
2083
2136
  }
2084
2137
  }
2085
- function ke(e2, t2) {
2138
+ function xe(e2, t2) {
2086
2139
  return "server" === e2.where ? h(__spreadProps(__spreadValues({}, e2.value), { operation: t2 })) : e2;
2087
2140
  }
2088
- function xe(e2, s2) {
2141
+ function Te(e2, s2) {
2089
2142
  var _a2;
2090
2143
  if (s2.ok) return s2.value;
2091
2144
  throw "SESSION_DESTROYED" === s2.value ? new Error(`${e2} failed because the session was destroyed`) : new Error(t((_a2 = s2.value.operation) != null ? _a2 : e2, s2.value));
2092
2145
  }
2093
- class Te {
2146
+ class Ie {
2094
2147
  constructor(e2, t2) {
2095
2148
  this.id = e2, this._realtimeClient = t2;
2096
2149
  }
@@ -2100,7 +2153,7 @@ class Te {
2100
2153
  get() {
2101
2154
  return __async(this, null, function* () {
2102
2155
  const e2 = yield this._realtimeClient.getUser(this.brandedId);
2103
- return xe("Get user " + this.id, e2);
2156
+ return Te("Get user " + this.id, e2);
2104
2157
  });
2105
2158
  }
2106
2159
  set(t2) {
@@ -2120,6 +2173,9 @@ class Te {
2120
2173
  subscribe(e2) {
2121
2174
  return this._realtimeClient.subscribe(["users", this.brandedId], e2);
2122
2175
  }
2176
+ subscribeOnline(e2) {
2177
+ return this._realtimeClient.subscribe(["users", this.brandedId, "online"], e2);
2178
+ }
2123
2179
  }
2124
2180
  class Se {
2125
2181
  constructor(e2, t2, s2) {
@@ -2165,7 +2221,7 @@ class Se {
2165
2221
  });
2166
2222
  }
2167
2223
  }
2168
- function Ie(e2) {
2224
+ function De(e2) {
2169
2225
  const t2 = "-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";
2170
2226
  let s2 = 0;
2171
2227
  const n2 = [], r2 = e2 === s2;
@@ -2183,7 +2239,7 @@ function Ie(e2) {
2183
2239
  if (20 != a2.length) throw new Error("Length should be 20.");
2184
2240
  return a2;
2185
2241
  }
2186
- const De = (e2, t2, s2 = void 0) => function(e3, t3) {
2242
+ const Me = (e2, t2, s2 = void 0) => function(e3, t3) {
2187
2243
  return e3.reduce((e4, s3, n2) => e4.concat(t3(s3, n2)), []);
2188
2244
  }(e2, (e3) => {
2189
2245
  if ("string" == typeof e3) return t2(e3, s2);
@@ -2196,14 +2252,14 @@ const De = (e2, t2, s2 = void 0) => function(e3, t3) {
2196
2252
  case "bulletList":
2197
2253
  case "bulletpoint":
2198
2254
  case "bulletPoint":
2199
- return [{ type: e3.type, children: De(e3.children, t2, e3.type) }];
2255
+ return [{ type: e3.type, children: Me(e3.children, t2, e3.type) }];
2200
2256
  case "link":
2201
- return [{ type: e3.type, url: e3.url, children: De(e3.children, t2, e3.type) }];
2257
+ return [{ type: e3.type, url: e3.url, children: Me(e3.children, t2, e3.type) }];
2202
2258
  case "actionlink":
2203
2259
  case "actionLink":
2204
2260
  case "actionbutton":
2205
2261
  case "actionButton":
2206
- return [{ type: e3.type, action: e3.action, params: e3.params, children: De(e3.children, t2, e3.type) }];
2262
+ return [{ type: e3.type, action: e3.action, params: e3.params, children: Me(e3.children, t2, e3.type) }];
2207
2263
  case "mention":
2208
2264
  case "autolink":
2209
2265
  case "autoLink":
@@ -2218,7 +2274,7 @@ const De = (e2, t2, s2 = void 0) => function(e3, t3) {
2218
2274
  return [e3];
2219
2275
  }
2220
2276
  });
2221
- function Me(e2, t2) {
2277
+ function Fe(e2, t2) {
2222
2278
  return (s2) => {
2223
2279
  const n2 = s2;
2224
2280
  let r2 = 0;
@@ -2231,29 +2287,29 @@ function Me(e2, t2) {
2231
2287
  return r2 < s2.length && i2.push(s2.substring(r2)), i2;
2232
2288
  };
2233
2289
  }
2234
- const Fe = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
2235
- var Be = ((e2) => (e2[e2.italic = 1] = "italic", e2[e2.strikethrough = 2] = "strikethrough", e2[e2.bold = 4] = "bold", e2))(Be || {});
2290
+ const Be = "’'()[]{}<>:,‒–—―…!.«»-‐?‘’“”;/⁄␠·&@*\\•^¤¢$€£¥₩₪†‡°¡¿¬#№%‰‱¶′§~¨_|¦⁂☞∴‽※".replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
2291
+ var Ne = ((e2) => (e2[e2.italic = 1] = "italic", e2[e2.strikethrough = 2] = "strikethrough", e2[e2.bold = 4] = "bold", e2))(Ne || {});
2236
2292
  const Re = [0, 1, 2, 3, 4, 5, 6].map((e2) => {
2237
2293
  const t2 = [];
2238
2294
  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");
2239
- }), Ne = { _: 1, "*": 4, "~": 2 };
2295
+ }), _e = { _: 1, "*": 4, "~": 2 };
2240
2296
  function Pe(e2) {
2241
- return _e(e2, 0);
2297
+ return Oe(e2, 0);
2242
2298
  }
2243
- function _e(e2, t2 = 0) {
2299
+ function Oe(e2, t2 = 0) {
2244
2300
  const s2 = Re[t2], n2 = s2 ? function(e3) {
2245
- const t3 = Oe.getOrCompute(e3, () => new RegExp(`(?:^|[\\s${Fe}])(?:${e3.source})(?=[\\s${Fe}]|$)`, "g")), s3 = Me(t3, (e4) => {
2301
+ const t3 = Ue.getOrCompute(e3, () => new RegExp(`(?:^|[\\s${Be}])(?:${e3.source})(?=[\\s${Be}]|$)`, "g")), s3 = Fe(t3, (e4) => {
2246
2302
  const t4 = e4[0][1], s4 = e4[1] || e4[2] || e4[3] || e4[4] || e4[5] || e4[6];
2247
- return [" ", { type: Be[Ne[t4]], children: [s4] }];
2303
+ return [" ", { type: Ne[_e[t4]], children: [s4] }];
2248
2304
  });
2249
2305
  return (e4) => {
2250
2306
  const [t4, ...n3] = s3(" " + e4);
2251
2307
  return t4.length > 1 && n3.unshift(t4.substring(1)), n3;
2252
2308
  };
2253
2309
  }(s2) : () => [e2];
2254
- return De(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? _e(e3, t2 | Be[s3]) : [e3]);
2310
+ return Me(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? Oe(e3, t2 | Ne[s3]) : [e3]);
2255
2311
  }
2256
- const Oe = function() {
2312
+ const Ue = function() {
2257
2313
  const e2 = function() {
2258
2314
  try {
2259
2315
  return /* @__PURE__ */ new WeakMap();
@@ -2269,18 +2325,18 @@ const Oe = function() {
2269
2325
  return e2.set(t2, n2), n2;
2270
2326
  } };
2271
2327
  }();
2272
- function Ue(e2, t2) {
2328
+ function je(e2, t2) {
2273
2329
  if (Array.prototype.indexOf) return e2.indexOf(t2);
2274
2330
  for (var s2 = 0, n2 = e2.length; s2 < n2; s2++) if (e2[s2] === t2) return s2;
2275
2331
  return -1;
2276
2332
  }
2277
- function je(e2, t2) {
2333
+ function $e(e2, t2) {
2278
2334
  for (var s2 = e2.length - 1; s2 >= 0; s2--) true === t2(e2[s2]) && e2.splice(s2, 1);
2279
2335
  }
2280
- function $e(e2) {
2336
+ function We(e2) {
2281
2337
  throw new Error("Unhandled case for value: '" + e2 + "'");
2282
2338
  }
2283
- var We = function() {
2339
+ var qe = function() {
2284
2340
  function e2(e3) {
2285
2341
  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 || "";
2286
2342
  }
@@ -2299,11 +2355,11 @@ var We = function() {
2299
2355
  }, e2.prototype.setClass = function(e3) {
2300
2356
  return this.setAttr("class", e3);
2301
2357
  }, e2.prototype.addClass = function(e3) {
2302
- for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], i2 = e3.split(n2); t2 = i2.shift(); ) -1 === Ue(r2, t2) && r2.push(t2);
2358
+ for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], i2 = e3.split(n2); t2 = i2.shift(); ) -1 === je(r2, t2) && r2.push(t2);
2303
2359
  return this.getAttrs().class = r2.join(" "), this;
2304
2360
  }, e2.prototype.removeClass = function(e3) {
2305
2361
  for (var t2, s2 = this.getClass(), n2 = this.whitespaceRegex, r2 = s2 ? s2.split(n2) : [], i2 = e3.split(n2); r2.length && (t2 = i2.shift()); ) {
2306
- var a2 = Ue(r2, t2);
2362
+ var a2 = je(r2, t2);
2307
2363
  -1 !== a2 && r2.splice(a2, 1);
2308
2364
  }
2309
2365
  return this.getAttrs().class = r2.join(" "), this;
@@ -2329,12 +2385,12 @@ var We = function() {
2329
2385
  return t2.join(" ");
2330
2386
  }, e2;
2331
2387
  }();
2332
- var qe = function() {
2388
+ var He = function() {
2333
2389
  function e2(e3) {
2334
2390
  void 0 === e3 && (e3 = {}), this.newWindow = false, this.truncate = {}, this.className = "", this.newWindow = e3.newWindow || false, this.truncate = e3.truncate || {}, this.className = e3.className || "";
2335
2391
  }
2336
2392
  return e2.prototype.build = function(e3) {
2337
- return new We({ tagName: "a", attrs: this.createAttrs(e3), innerHtml: this.processAnchorText(e3.getAnchorText()) });
2393
+ return new qe({ tagName: "a", attrs: this.createAttrs(e3), innerHtml: this.processAnchorText(e3.getAnchorText()) });
2338
2394
  }, e2.prototype.createAttrs = function(e3) {
2339
2395
  var t2 = { href: e3.getAnchorHref() }, s2 = this.createCssClass(e3);
2340
2396
  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;
@@ -2404,7 +2460,7 @@ var qe = function() {
2404
2460
  }(e4, t3, s3);
2405
2461
  }(e3, s2);
2406
2462
  }, e2;
2407
- }(), He = function() {
2463
+ }(), Ge = function() {
2408
2464
  function e2(e3) {
2409
2465
  this.__jsduckDummyDocProp = null, this.matchedText = "", this.offset = 0, this.tagBuilder = e3.tagBuilder, this.matchedText = e3.matchedText, this.offset = e3.offset;
2410
2466
  }
@@ -2419,30 +2475,30 @@ var qe = function() {
2419
2475
  }, e2.prototype.buildTag = function() {
2420
2476
  return this.tagBuilder.build(this);
2421
2477
  }, e2;
2422
- }(), Ge = function(e2, t2) {
2423
- return Ge = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e3, t3) {
2478
+ }(), Le = function(e2, t2) {
2479
+ return Le = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(e3, t3) {
2424
2480
  e3.__proto__ = t3;
2425
2481
  } || function(e3, t3) {
2426
2482
  for (var s2 in t3) t3.hasOwnProperty(s2) && (e3[s2] = t3[s2]);
2427
- }, Ge(e2, t2);
2483
+ }, Le(e2, t2);
2428
2484
  };
2429
- function Le(e2, t2) {
2485
+ function ze(e2, t2) {
2430
2486
  function s2() {
2431
2487
  this.constructor = e2;
2432
2488
  }
2433
- Ge(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
2489
+ Le(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
2434
2490
  }
2435
- var ze, Je = function() {
2436
- return Je = Object.assign || function(e2) {
2491
+ var Je, Ye = function() {
2492
+ return Ye = Object.assign || function(e2) {
2437
2493
  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]);
2438
2494
  return e2;
2439
- }, Je.apply(this, arguments);
2440
- }, Ye = function(e2) {
2495
+ }, Ye.apply(this, arguments);
2496
+ }, Qe = function(e2) {
2441
2497
  function t2(t3) {
2442
2498
  var s2 = e2.call(this, t3) || this;
2443
2499
  return s2.email = "", s2.email = t3.email, s2;
2444
2500
  }
2445
- return Le(t2, e2), t2.prototype.getType = function() {
2501
+ return ze(t2, e2), t2.prototype.getType = function() {
2446
2502
  return "email";
2447
2503
  }, t2.prototype.getEmail = function() {
2448
2504
  return this.email;
@@ -2451,12 +2507,12 @@ var ze, Je = function() {
2451
2507
  }, t2.prototype.getAnchorText = function() {
2452
2508
  return this.email;
2453
2509
  }, t2;
2454
- }(He), Qe = function(e2) {
2510
+ }(Ge), Ve = function(e2) {
2455
2511
  function t2(t3) {
2456
2512
  var s2 = e2.call(this, t3) || this;
2457
2513
  return s2.serviceName = "", s2.hashtag = "", s2.serviceName = t3.serviceName, s2.hashtag = t3.hashtag, s2;
2458
2514
  }
2459
- return Le(t2, e2), t2.prototype.getType = function() {
2515
+ return ze(t2, e2), t2.prototype.getType = function() {
2460
2516
  return "hashtag";
2461
2517
  }, t2.prototype.getServiceName = function() {
2462
2518
  return this.serviceName;
@@ -2477,12 +2533,12 @@ var ze, Je = function() {
2477
2533
  }, t2.prototype.getAnchorText = function() {
2478
2534
  return "#" + this.hashtag;
2479
2535
  }, t2;
2480
- }(He), Ve = function(e2) {
2536
+ }(Ge), Ze = function(e2) {
2481
2537
  function t2(t3) {
2482
2538
  var s2 = e2.call(this, t3) || this;
2483
2539
  return s2.serviceName = "twitter", s2.mention = "", s2.mention = t3.mention, s2.serviceName = t3.serviceName, s2;
2484
2540
  }
2485
- return Le(t2, e2), t2.prototype.getType = function() {
2541
+ return ze(t2, e2), t2.prototype.getType = function() {
2486
2542
  return "mention";
2487
2543
  }, t2.prototype.getMention = function() {
2488
2544
  return this.mention;
@@ -2505,12 +2561,12 @@ var ze, Je = function() {
2505
2561
  var t3 = e2.prototype.getCssClassSuffixes.call(this), s2 = this.getServiceName();
2506
2562
  return s2 && t3.push(s2), t3;
2507
2563
  }, t2;
2508
- }(He), Ze = function(e2) {
2564
+ }(Ge), Ke = function(e2) {
2509
2565
  function t2(t3) {
2510
2566
  var s2 = e2.call(this, t3) || this;
2511
2567
  return s2.number = "", s2.plusSign = false, s2.number = t3.number, s2.plusSign = t3.plusSign, s2;
2512
2568
  }
2513
- return Le(t2, e2), t2.prototype.getType = function() {
2569
+ return ze(t2, e2), t2.prototype.getType = function() {
2514
2570
  return "phone";
2515
2571
  }, t2.prototype.getPhoneNumber = function() {
2516
2572
  return this.number;
@@ -2521,12 +2577,12 @@ var ze, Je = function() {
2521
2577
  }, t2.prototype.getAnchorText = function() {
2522
2578
  return this.matchedText;
2523
2579
  }, t2;
2524
- }(He), Ke = function(e2) {
2580
+ }(Ge), Xe = function(e2) {
2525
2581
  function t2(t3) {
2526
2582
  var s2 = e2.call(this, t3) || this;
2527
2583
  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;
2528
2584
  }
2529
- return Le(t2, e2), t2.prototype.getType = function() {
2585
+ return ze(t2, e2), t2.prototype.getType = function() {
2530
2586
  return "url";
2531
2587
  }, t2.prototype.getUrlMatchType = function() {
2532
2588
  return this.urlMatchType;
@@ -2554,19 +2610,19 @@ var ze, Je = function() {
2554
2610
  return t3;
2555
2611
  }
2556
2612
  }, t2;
2557
- }(He), Xe = function(e2) {
2613
+ }(Ge), et = function(e2) {
2558
2614
  this.__jsduckDummyDocProp = null, this.tagBuilder = e2.tagBuilder;
2559
- }, et = /[A-Za-z]/, tt = /[\d]/, st = /[\D]/, nt = /\s/, rt = /['"]/, it = /[\x00-\x1F\x7F]/, at = /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, ot = at + /\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, ut = /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, ct = ot + ut, lt = ot + ut, ht = "(?:[" + ut + "]{1,3}\\.){3}[" + ut + "]{1,3}", dt = "[" + lt + "](?:[" + lt + "\\-]{0,61}[" + lt + "])?", pt = function(e2) {
2560
- return "(?=(" + dt + "))\\" + e2;
2561
- }, ft = function(e2) {
2562
- return "(?:" + pt(e2) + "(?:\\." + pt(e2 + 1) + "){0,126}|" + ht + ")";
2563
- }, mt = new RegExp("[" + lt + "]"), gt = /(?: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|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/, vt = new RegExp("[" + lt + "!#$%&'*+/=?^_`{|}~-]"), wt = new RegExp("^" + gt.source + "$"), bt = function(e2) {
2615
+ }, tt = /[A-Za-z]/, st = /[\d]/, nt = /[\D]/, rt = /\s/, it = /['"]/, at = /[\x00-\x1F\x7F]/, ot = /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, ut = ot + /\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, ct = /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, lt = ut + ct, ht = ut + ct, dt = "(?:[" + ct + "]{1,3}\\.){3}[" + ct + "]{1,3}", pt = "[" + ht + "](?:[" + ht + "\\-]{0,61}[" + ht + "])?", ft = function(e2) {
2616
+ return "(?=(" + pt + "))\\" + e2;
2617
+ }, mt = function(e2) {
2618
+ return "(?:" + ft(e2) + "(?:\\." + ft(e2 + 1) + "){0,126}|" + dt + ")";
2619
+ }, gt = new RegExp("[" + ht + "]"), vt = /(?: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|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/, wt = new RegExp("[" + ht + "!#$%&'*+/=?^_`{|}~-]"), bt = new RegExp("^" + vt.source + "$"), yt = function(e2) {
2564
2620
  function t2() {
2565
2621
  var t3 = null !== e2 && e2.apply(this, arguments) || this;
2566
- return t3.localPartCharRegex = vt, t3.strictTldRegex = wt, t3;
2622
+ return t3.localPartCharRegex = wt, t3.strictTldRegex = bt, t3;
2567
2623
  }
2568
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2569
- for (var t3 = this.tagBuilder, s2 = this.localPartCharRegex, n2 = this.strictTldRegex, r2 = [], i2 = e3.length, a2 = new yt(), o2 = { m: "a", a: "i", i: "l", l: "t", t: "o", o: ":" }, u2 = 0, c2 = 0, l2 = a2; u2 < i2; ) {
2624
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2625
+ for (var t3 = this.tagBuilder, s2 = this.localPartCharRegex, n2 = this.strictTldRegex, r2 = [], i2 = e3.length, a2 = new Ct(), o2 = { m: "a", a: "i", i: "l", l: "t", t: "o", o: ":" }, u2 = 0, c2 = 0, l2 = a2; u2 < i2; ) {
2570
2626
  var h2 = e3.charAt(u2);
2571
2627
  switch (c2) {
2572
2628
  case 0:
@@ -2594,7 +2650,7 @@ var ze, Je = function() {
2594
2650
  b2(h2);
2595
2651
  break;
2596
2652
  default:
2597
- $e(c2);
2653
+ We(c2);
2598
2654
  }
2599
2655
  u2++;
2600
2656
  }
@@ -2603,7 +2659,7 @@ var ze, Je = function() {
2603
2659
  "m" === e4 ? y2(1) : s2.test(e4) && y2();
2604
2660
  }
2605
2661
  function p2(e4, t4) {
2606
- ":" === e4 ? s2.test(t4) ? (c2 = 2, l2 = new yt(Je(Je({}, l2), { hasMailtoPrefix: true }))) : C2() : o2[e4] === t4 || (s2.test(t4) ? c2 = 2 : "." === t4 ? c2 = 3 : "@" === t4 ? c2 = 4 : C2());
2662
+ ":" === e4 ? s2.test(t4) ? (c2 = 2, l2 = new Ct(Ye(Ye({}, l2), { hasMailtoPrefix: true }))) : C2() : o2[e4] === t4 || (s2.test(t4) ? c2 = 2 : "." === t4 ? c2 = 3 : "@" === t4 ? c2 = 4 : C2());
2607
2663
  }
2608
2664
  function f2(e4) {
2609
2665
  "." === e4 ? c2 = 3 : "@" === e4 ? c2 = 4 : s2.test(e4) || C2();
@@ -2612,19 +2668,19 @@ var ze, Je = function() {
2612
2668
  "." === e4 || "@" === e4 ? C2() : s2.test(e4) ? c2 = 2 : C2();
2613
2669
  }
2614
2670
  function g2(e4) {
2615
- mt.test(e4) ? c2 = 5 : C2();
2671
+ gt.test(e4) ? c2 = 5 : C2();
2616
2672
  }
2617
2673
  function v2(e4) {
2618
- "." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 : mt.test(e4) || A2();
2674
+ "." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 : gt.test(e4) || A2();
2619
2675
  }
2620
2676
  function w2(e4) {
2621
- "-" === e4 || "." === e4 ? A2() : mt.test(e4) ? c2 = 5 : A2();
2677
+ "-" === e4 || "." === e4 ? A2() : gt.test(e4) ? c2 = 5 : A2();
2622
2678
  }
2623
2679
  function b2(e4) {
2624
- "." === e4 || "-" === e4 ? A2() : mt.test(e4) ? (c2 = 5, l2 = new yt(Je(Je({}, l2), { hasDomainDot: true }))) : A2();
2680
+ "." === e4 || "-" === e4 ? A2() : gt.test(e4) ? (c2 = 5, l2 = new Ct(Ye(Ye({}, l2), { hasDomainDot: true }))) : A2();
2625
2681
  }
2626
2682
  function y2(e4) {
2627
- void 0 === e4 && (e4 = 2), c2 = e4, l2 = new yt({ idx: u2 });
2683
+ void 0 === e4 && (e4 = 2), c2 = e4, l2 = new Ct({ idx: u2 });
2628
2684
  }
2629
2685
  function C2() {
2630
2686
  c2 = 0, l2 = a2;
@@ -2637,14 +2693,14 @@ var ze, Je = function() {
2637
2693
  (function(e4) {
2638
2694
  var t4 = e4.split(".").pop() || "", s4 = t4.toLowerCase();
2639
2695
  return n2.test(s4);
2640
- })(i3) && r2.push(new Ye({ tagBuilder: t3, matchedText: s3, offset: l2.idx, email: i3 }));
2696
+ })(i3) && r2.push(new Qe({ tagBuilder: t3, matchedText: s3, offset: l2.idx, email: i3 }));
2641
2697
  }
2642
2698
  C2();
2643
2699
  }
2644
2700
  }, t2;
2645
- }(Xe), yt = function(e2) {
2701
+ }(et), Ct = function(e2) {
2646
2702
  void 0 === e2 && (e2 = {}), this.idx = void 0 !== e2.idx ? e2.idx : -1, this.hasMailtoPrefix = !!e2.hasMailtoPrefix, this.hasDomainDot = !!e2.hasDomainDot;
2647
- }, Ct = function() {
2703
+ }, At = function() {
2648
2704
  function e2() {
2649
2705
  }
2650
2706
  return e2.isValid = function(e3, t2) {
@@ -2662,16 +2718,16 @@ var ze, Je = function() {
2662
2718
  return !(!e3 || t2 && this.hasFullProtocolRegex.test(t2) || -1 !== e3.indexOf("."));
2663
2719
  }, e2.urlMatchDoesNotHaveAtLeastOneWordChar = function(e3, t2) {
2664
2720
  return !(!e3 || !t2) && (!this.hasFullProtocolRegex.test(t2) && !this.hasWordCharAfterProtocolRegex.test(e3));
2665
- }, e2.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//, e2.uriSchemeRegex = /^[A-Za-z][-.+A-Za-z0-9]*:/, e2.hasWordCharAfterProtocolRegex = new RegExp(":[^\\s]*?[" + at + "]"), 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;
2666
- }(), At = (ze = new RegExp("[/?#](?:[" + lt + "\\-+&@#/%=~_()|'$*\\[\\]{}?!:,.;^✓]*[" + lt + "\\-+&@#/%=~_()|'$*\\[\\]{}✓])?"), new RegExp(["(?:", "(", /(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\/\/)(?!\d+\/?)(?:\/\/)?)/.source, ft(2), ")", "|", "(", "(//)?", /(?:www\.)/.source, ft(6), ")", "|", "(", "(//)?", ft(10) + "\\.", gt.source, "(?![-" + ct + "])", ")", ")", "(?::[0-9]+)?", "(?:" + ze.source + ")?"].join(""), "gi")), Et = new RegExp("[" + lt + "]"), kt = function(e2) {
2721
+ }, e2.hasFullProtocolRegex = /^[A-Za-z][-.+A-Za-z0-9]*:\/\//, e2.uriSchemeRegex = /^[A-Za-z][-.+A-Za-z0-9]*:/, e2.hasWordCharAfterProtocolRegex = new RegExp(":[^\\s]*?[" + ot + "]"), 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;
2722
+ }(), Et = (Je = new RegExp("[/?#](?:[" + ht + "\\-+&@#/%=~_()|'$*\\[\\]{}?!:,.;^✓]*[" + ht + "\\-+&@#/%=~_()|'$*\\[\\]{}✓])?"), new RegExp(["(?:", "(", /(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\/\/)(?!\d+\/?)(?:\/\/)?)/.source, mt(2), ")", "|", "(", "(//)?", /(?:www\.)/.source, mt(6), ")", "|", "(", "(//)?", mt(10) + "\\.", vt.source, "(?![-" + lt + "])", ")", ")", "(?::[0-9]+)?", "(?:" + Je.source + ")?"].join(""), "gi")), kt = new RegExp("[" + ht + "]"), xt = function(e2) {
2667
2723
  function t2(t3) {
2668
2724
  var s2 = e2.call(this, t3) || this;
2669
- return s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.matcherRegex = At, s2.wordCharRegExp = Et, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2725
+ return s2.stripPrefix = { scheme: true, www: true }, s2.stripTrailingSlash = true, s2.decodePercentEncoding = true, s2.matcherRegex = Et, s2.wordCharRegExp = kt, s2.stripPrefix = t3.stripPrefix, s2.stripTrailingSlash = t3.stripTrailingSlash, s2.decodePercentEncoding = t3.decodePercentEncoding, s2;
2670
2726
  }
2671
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2727
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2672
2728
  for (var t3, s2 = this.matcherRegex, n2 = this.stripPrefix, r2 = this.stripTrailingSlash, i2 = this.decodePercentEncoding, a2 = this.tagBuilder, o2 = [], u2 = function() {
2673
2729
  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);
2674
- if (!Ct.isValid(s3, u3)) return "continue";
2730
+ if (!At.isValid(s3, u3)) return "continue";
2675
2731
  if (p2 > 0 && "@" === m2) return "continue";
2676
2732
  if (p2 > 0 && f2 && c2.wordCharRegExp.test(m2)) return "continue";
2677
2733
  if (/\?$/.test(s3) && (s3 = s3.substr(0, s3.length - 1)), c2.matchHasUnbalancedClosingParen(s3)) s3 = s3.substr(0, s3.length - 1);
@@ -2687,7 +2743,7 @@ var ze, Je = function() {
2687
2743
  s3 = s3.substr(w2), u3 = u3.substr(w2), p2 += w2;
2688
2744
  }
2689
2745
  var b2 = u3 ? "scheme" : l2 ? "www" : "tld", y2 = !!u3;
2690
- o2.push(new Ke({ tagBuilder: a2, matchedText: s3, offset: p2, urlMatchType: b2, url: s3, protocolUrlMatch: y2, protocolRelativeMatch: !!f2, stripPrefix: n2, stripTrailingSlash: r2, decodePercentEncoding: i2 }));
2746
+ o2.push(new Xe({ tagBuilder: a2, matchedText: s3, offset: p2, urlMatchType: b2, url: s3, protocolUrlMatch: y2, protocolRelativeMatch: !!f2, stripPrefix: n2, stripTrailingSlash: r2, decodePercentEncoding: i2 }));
2691
2747
  }, c2 = this; null !== (t3 = s2.exec(e3)); ) u2();
2692
2748
  return o2;
2693
2749
  }, t2.prototype.matchHasUnbalancedClosingParen = function(e3) {
@@ -2707,58 +2763,58 @@ var ze, Je = function() {
2707
2763
  if (!e3) return -1;
2708
2764
  var s2 = 0;
2709
2765
  t3 && (s2 = e3.indexOf(":"), e3 = e3.slice(s2));
2710
- var n2 = new RegExp("^((.?//)?[-." + lt + "]*[-" + lt + "]\\.[-" + lt + "]+)").exec(e3);
2766
+ var n2 = new RegExp("^((.?//)?[-." + ht + "]*[-" + ht + "]\\.[-" + ht + "]+)").exec(e3);
2711
2767
  return null === n2 ? -1 : (s2 += n2[1].length, e3 = e3.slice(n2[1].length), /^[^-.A-Za-z0-9:\/?#]/.test(e3) ? s2 : -1);
2712
2768
  }, t2;
2713
- }(Xe), xt = new RegExp("#[_" + lt + "]{1,139}(?![_" + lt + "])", "g"), Tt = new RegExp("[^" + lt + "]"), St = function(e2) {
2769
+ }(et), Tt = new RegExp("#[_" + ht + "]{1,139}(?![_" + ht + "])", "g"), It = new RegExp("[^" + ht + "]"), St = function(e2) {
2714
2770
  function t2(t3) {
2715
2771
  var s2 = e2.call(this, t3) || this;
2716
- return s2.serviceName = "twitter", s2.matcherRegex = xt, s2.nonWordCharRegex = Tt, s2.serviceName = t3.serviceName, s2;
2772
+ return s2.serviceName = "twitter", s2.matcherRegex = Tt, s2.nonWordCharRegex = It, s2.serviceName = t3.serviceName, s2;
2717
2773
  }
2718
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2774
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2719
2775
  for (var t3, s2 = this.matcherRegex, n2 = this.nonWordCharRegex, r2 = this.serviceName, i2 = this.tagBuilder, a2 = []; null !== (t3 = s2.exec(e3)); ) {
2720
2776
  var o2 = t3.index, u2 = e3.charAt(o2 - 1);
2721
2777
  if (0 === o2 || n2.test(u2)) {
2722
2778
  var c2 = t3[0], l2 = t3[0].slice(1);
2723
- a2.push(new Qe({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: r2, hashtag: l2 }));
2779
+ a2.push(new Ve({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: r2, hashtag: l2 }));
2724
2780
  }
2725
2781
  }
2726
2782
  return a2;
2727
2783
  }, t2;
2728
- }(Xe), It = 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"), Dt = function(e2) {
2784
+ }(et), Dt = 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"), Mt = function(e2) {
2729
2785
  function t2() {
2730
2786
  var t3 = null !== e2 && e2.apply(this, arguments) || this;
2731
- return t3.matcherRegex = It, t3;
2787
+ return t3.matcherRegex = Dt, t3;
2732
2788
  }
2733
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2789
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2734
2790
  for (var t3, s2 = this.matcherRegex, n2 = this.tagBuilder, r2 = []; null !== (t3 = s2.exec(e3)); ) {
2735
2791
  var i2 = t3[0], a2 = i2.replace(/[^0-9,;#]/g, ""), o2 = !(!t3[1] && !t3[2]), u2 = 0 == t3.index ? "" : e3.substr(t3.index - 1, 1), c2 = e3.substr(t3.index + i2.length, 1), l2 = !u2.match(/\d/) && !c2.match(/\d/);
2736
- this.testMatch(t3[3]) && this.testMatch(i2) && l2 && r2.push(new Ze({ tagBuilder: n2, matchedText: i2, offset: t3.index, number: a2, plusSign: o2 }));
2792
+ this.testMatch(t3[3]) && this.testMatch(i2) && l2 && r2.push(new Ke({ tagBuilder: n2, matchedText: i2, offset: t3.index, number: a2, plusSign: o2 }));
2737
2793
  }
2738
2794
  return r2;
2739
2795
  }, t2.prototype.testMatch = function(e3) {
2740
- return st.test(e3);
2796
+ return nt.test(e3);
2741
2797
  }, t2;
2742
- }(Xe), Mt = new RegExp("@[_" + lt + "]{1,50}(?![_" + lt + "])", "g"), Ft = new RegExp("@[_." + lt + "]{1,30}(?![_" + lt + "])", "g"), Bt = new RegExp("@[-_." + lt + "]{1,50}(?![-_" + lt + "])", "g"), Rt = new RegExp("[^" + lt + "]"), Nt = function(e2) {
2798
+ }(et), Ft = new RegExp("@[_" + ht + "]{1,50}(?![_" + ht + "])", "g"), Bt = new RegExp("@[_." + ht + "]{1,30}(?![_" + ht + "])", "g"), Nt = new RegExp("@[-_." + ht + "]{1,50}(?![-_" + ht + "])", "g"), Rt = new RegExp("[^" + ht + "]"), _t = function(e2) {
2743
2799
  function t2(t3) {
2744
2800
  var s2 = e2.call(this, t3) || this;
2745
- return s2.serviceName = "twitter", s2.matcherRegexes = { twitter: Mt, instagram: Ft, soundcloud: Bt }, s2.nonWordCharRegex = Rt, s2.serviceName = t3.serviceName, s2;
2801
+ return s2.serviceName = "twitter", s2.matcherRegexes = { twitter: Ft, instagram: Bt, soundcloud: Nt }, s2.nonWordCharRegex = Rt, s2.serviceName = t3.serviceName, s2;
2746
2802
  }
2747
- return Le(t2, e2), t2.prototype.parseMatches = function(e3) {
2803
+ return ze(t2, e2), t2.prototype.parseMatches = function(e3) {
2748
2804
  var t3, s2 = this.serviceName, n2 = this.matcherRegexes[this.serviceName], r2 = this.nonWordCharRegex, i2 = this.tagBuilder, a2 = [];
2749
2805
  if (!n2) return a2;
2750
2806
  for (; null !== (t3 = n2.exec(e3)); ) {
2751
2807
  var o2 = t3.index, u2 = e3.charAt(o2 - 1);
2752
2808
  if (0 === o2 || r2.test(u2)) {
2753
2809
  var c2 = t3[0].replace(/\.+$/g, ""), l2 = c2.slice(1);
2754
- a2.push(new Ve({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: s2, mention: l2 }));
2810
+ a2.push(new Ze({ tagBuilder: i2, matchedText: c2, offset: o2, serviceName: s2, mention: l2 }));
2755
2811
  }
2756
2812
  }
2757
2813
  return a2;
2758
2814
  }, t2;
2759
- }(Xe);
2815
+ }(et);
2760
2816
  function Pt(e2, t2) {
2761
- for (var s2, n2 = t2.onOpenTag, r2 = t2.onCloseTag, i2 = t2.onText, a2 = t2.onComment, o2 = t2.onDoctype, u2 = new _t(), c2 = 0, l2 = e2.length, h2 = 0, d2 = 0, p2 = u2; c2 < l2; ) {
2817
+ for (var s2, n2 = t2.onOpenTag, r2 = t2.onCloseTag, i2 = t2.onText, a2 = t2.onComment, o2 = t2.onDoctype, u2 = new Ot(), c2 = 0, l2 = e2.length, h2 = 0, d2 = 0, p2 = u2; c2 < l2; ) {
2762
2818
  var f2 = e2.charAt(c2);
2763
2819
  switch (h2) {
2764
2820
  case 0:
@@ -2798,10 +2854,10 @@ function Pt(e2, t2) {
2798
2854
  T2(f2);
2799
2855
  break;
2800
2856
  case 12:
2801
- S2(f2);
2857
+ I2(f2);
2802
2858
  break;
2803
2859
  case 13:
2804
- I2();
2860
+ S2();
2805
2861
  break;
2806
2862
  case 14:
2807
2863
  D2(f2);
@@ -2816,16 +2872,16 @@ function Pt(e2, t2) {
2816
2872
  B2(f2);
2817
2873
  break;
2818
2874
  case 18:
2819
- R2(f2);
2875
+ N2(f2);
2820
2876
  break;
2821
2877
  case 19:
2822
- N2(f2);
2878
+ R2(f2);
2823
2879
  break;
2824
2880
  case 20:
2825
- P2(f2);
2881
+ _2(f2);
2826
2882
  break;
2827
2883
  default:
2828
- $e(h2);
2884
+ We(h2);
2829
2885
  }
2830
2886
  c2++;
2831
2887
  }
@@ -2833,25 +2889,25 @@ function Pt(e2, t2) {
2833
2889
  "<" === e3 && O2();
2834
2890
  }
2835
2891
  function g2(e3) {
2836
- "!" === e3 ? h2 = 13 : "/" === e3 ? (h2 = 2, p2 = new _t(Je(Je({}, p2), { isClosing: true }))) : "<" === e3 ? O2() : et.test(e3) ? (h2 = 3, p2 = new _t(Je(Je({}, p2), { isOpening: true }))) : (h2 = 0, p2 = u2);
2892
+ "!" === e3 ? h2 = 13 : "/" === e3 ? (h2 = 2, p2 = new Ot(Ye(Ye({}, p2), { isClosing: true }))) : "<" === e3 ? O2() : tt.test(e3) ? (h2 = 3, p2 = new Ot(Ye(Ye({}, p2), { isOpening: true }))) : (h2 = 0, p2 = u2);
2837
2893
  }
2838
2894
  function v2(e3) {
2839
- nt.test(e3) ? (p2 = new _t(Je(Je({}, p2), { name: j2() })), h2 = 4) : "<" === e3 ? O2() : "/" === e3 ? (p2 = new _t(Je(Je({}, p2), { name: j2() })), h2 = 12) : ">" === e3 ? (p2 = new _t(Je(Je({}, p2), { name: j2() })), U2()) : et.test(e3) || tt.test(e3) || ":" === e3 || _2();
2895
+ rt.test(e3) ? (p2 = new Ot(Ye(Ye({}, p2), { name: j2() })), h2 = 4) : "<" === e3 ? O2() : "/" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { name: j2() })), h2 = 12) : ">" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { name: j2() })), U2()) : tt.test(e3) || st.test(e3) || ":" === e3 || P2();
2840
2896
  }
2841
2897
  function w2(e3) {
2842
- ">" === e3 ? _2() : et.test(e3) ? h2 = 3 : _2();
2898
+ ">" === e3 ? P2() : tt.test(e3) ? h2 = 3 : P2();
2843
2899
  }
2844
2900
  function b2(e3) {
2845
- nt.test(e3) || ("/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : "=" === e3 || rt.test(e3) || it.test(e3) ? _2() : h2 = 5);
2901
+ rt.test(e3) || ("/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : "=" === e3 || it.test(e3) || at.test(e3) ? P2() : h2 = 5);
2846
2902
  }
2847
2903
  function y2(e3) {
2848
- nt.test(e3) ? h2 = 6 : "/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : rt.test(e3) && _2();
2904
+ rt.test(e3) ? h2 = 6 : "/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : it.test(e3) && P2();
2849
2905
  }
2850
2906
  function C2(e3) {
2851
- nt.test(e3) || ("/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : rt.test(e3) ? _2() : h2 = 5);
2907
+ rt.test(e3) || ("/" === e3 ? h2 = 12 : "=" === e3 ? h2 = 7 : ">" === e3 ? U2() : "<" === e3 ? O2() : it.test(e3) ? P2() : h2 = 5);
2852
2908
  }
2853
2909
  function A2(e3) {
2854
- nt.test(e3) || ('"' === e3 ? h2 = 8 : "'" === e3 ? h2 = 9 : /[>=`]/.test(e3) ? _2() : "<" === e3 ? O2() : h2 = 10);
2910
+ rt.test(e3) || ('"' === e3 ? h2 = 8 : "'" === e3 ? h2 = 9 : /[>=`]/.test(e3) ? P2() : "<" === e3 ? O2() : h2 = 10);
2855
2911
  }
2856
2912
  function E2(e3) {
2857
2913
  '"' === e3 && (h2 = 11);
@@ -2860,22 +2916,22 @@ function Pt(e2, t2) {
2860
2916
  "'" === e3 && (h2 = 11);
2861
2917
  }
2862
2918
  function x2(e3) {
2863
- nt.test(e3) ? h2 = 4 : ">" === e3 ? U2() : "<" === e3 && O2();
2919
+ rt.test(e3) ? h2 = 4 : ">" === e3 ? U2() : "<" === e3 && O2();
2864
2920
  }
2865
2921
  function T2(e3) {
2866
- nt.test(e3) ? h2 = 4 : "/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : (h2 = 4, c2--);
2922
+ rt.test(e3) ? h2 = 4 : "/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : (h2 = 4, c2--);
2867
2923
  }
2868
- function S2(e3) {
2869
- ">" === e3 ? (p2 = new _t(Je(Je({}, p2), { isClosing: true })), U2()) : h2 = 4;
2924
+ function I2(e3) {
2925
+ ">" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { isClosing: true })), U2()) : h2 = 4;
2870
2926
  }
2871
- function I2(t3) {
2872
- "--" === e2.substr(c2, 2) ? (c2 += 2, p2 = new _t(Je(Je({}, p2), { type: "comment" })), h2 = 14) : "DOCTYPE" === e2.substr(c2, 7).toUpperCase() ? (c2 += 7, p2 = new _t(Je(Je({}, p2), { type: "doctype" })), h2 = 20) : _2();
2927
+ function S2(t3) {
2928
+ "--" === e2.substr(c2, 2) ? (c2 += 2, p2 = new Ot(Ye(Ye({}, p2), { type: "comment" })), h2 = 14) : "DOCTYPE" === e2.substr(c2, 7).toUpperCase() ? (c2 += 7, p2 = new Ot(Ye(Ye({}, p2), { type: "doctype" })), h2 = 20) : P2();
2873
2929
  }
2874
2930
  function D2(e3) {
2875
- "-" === e3 ? h2 = 15 : ">" === e3 ? _2() : h2 = 16;
2931
+ "-" === e3 ? h2 = 15 : ">" === e3 ? P2() : h2 = 16;
2876
2932
  }
2877
2933
  function M2(e3) {
2878
- "-" === e3 ? h2 = 18 : ">" === e3 ? _2() : h2 = 16;
2934
+ "-" === e3 ? h2 = 18 : ">" === e3 ? P2() : h2 = 16;
2879
2935
  }
2880
2936
  function F2(e3) {
2881
2937
  "-" === e3 && (h2 = 17);
@@ -2883,24 +2939,24 @@ function Pt(e2, t2) {
2883
2939
  function B2(e3) {
2884
2940
  h2 = "-" === e3 ? 18 : 16;
2885
2941
  }
2886
- function R2(e3) {
2942
+ function N2(e3) {
2887
2943
  ">" === e3 ? U2() : "!" === e3 ? h2 = 19 : "-" === e3 || (h2 = 16);
2888
2944
  }
2889
- function N2(e3) {
2945
+ function R2(e3) {
2890
2946
  "-" === e3 ? h2 = 17 : ">" === e3 ? U2() : h2 = 16;
2891
2947
  }
2892
- function P2(e3) {
2948
+ function _2(e3) {
2893
2949
  ">" === e3 ? U2() : "<" === e3 && O2();
2894
2950
  }
2895
- function _2() {
2951
+ function P2() {
2896
2952
  h2 = 0, p2 = u2;
2897
2953
  }
2898
2954
  function O2() {
2899
- h2 = 1, p2 = new _t({ idx: c2 });
2955
+ h2 = 1, p2 = new Ot({ idx: c2 });
2900
2956
  }
2901
2957
  function U2() {
2902
2958
  var t3 = e2.slice(d2, p2.idx);
2903
- t3 && i2(t3, d2), "comment" === p2.type ? a2(p2.idx) : "doctype" === p2.type ? o2(p2.idx) : (p2.isOpening && n2(p2.name, p2.idx), p2.isClosing && r2(p2.name, p2.idx)), _2(), d2 = c2 + 1;
2959
+ t3 && i2(t3, d2), "comment" === p2.type ? a2(p2.idx) : "doctype" === p2.type ? o2(p2.idx) : (p2.isOpening && n2(p2.name, p2.idx), p2.isClosing && r2(p2.name, p2.idx)), P2(), d2 = c2 + 1;
2904
2960
  }
2905
2961
  function j2() {
2906
2962
  var t3 = p2.idx + (p2.isClosing ? 2 : 1);
@@ -2908,9 +2964,9 @@ function Pt(e2, t2) {
2908
2964
  }
2909
2965
  d2 < c2 && (s2 = e2.slice(d2, c2), i2(s2, d2), d2 = c2 + 1);
2910
2966
  }
2911
- var _t = function(e2) {
2967
+ var Ot = function(e2) {
2912
2968
  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;
2913
- }, Ot = function() {
2969
+ }, Ut = function() {
2914
2970
  function e2(t2) {
2915
2971
  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;
2916
2972
  var s2 = this.mention;
@@ -2973,19 +3029,19 @@ var _t = function(e2) {
2973
3029
  }
2974
3030
  return e3;
2975
3031
  }, e2.prototype.removeUnwantedMatches = function(e3) {
2976
- return this.hashtag || je(e3, function(e4) {
3032
+ return this.hashtag || $e(e3, function(e4) {
2977
3033
  return "hashtag" === e4.getType();
2978
- }), this.email || je(e3, function(e4) {
3034
+ }), this.email || $e(e3, function(e4) {
2979
3035
  return "email" === e4.getType();
2980
- }), this.phone || je(e3, function(e4) {
3036
+ }), this.phone || $e(e3, function(e4) {
2981
3037
  return "phone" === e4.getType();
2982
- }), this.mention || je(e3, function(e4) {
3038
+ }), this.mention || $e(e3, function(e4) {
2983
3039
  return "mention" === e4.getType();
2984
- }), this.urls.schemeMatches || je(e3, function(e4) {
3040
+ }), this.urls.schemeMatches || $e(e3, function(e4) {
2985
3041
  return "url" === e4.getType() && "scheme" === e4.getUrlMatchType();
2986
- }), this.urls.wwwMatches || je(e3, function(e4) {
3042
+ }), this.urls.wwwMatches || $e(e3, function(e4) {
2987
3043
  return "url" === e4.getType() && "www" === e4.getUrlMatchType();
2988
- }), this.urls.tldMatches || je(e3, function(e4) {
3044
+ }), this.urls.tldMatches || $e(e3, function(e4) {
2989
3045
  return "url" === e4.getType() && "tld" === e4.getUrlMatchType();
2990
3046
  }), e3;
2991
3047
  }, e2.prototype.parseText = function(e3, t2) {
@@ -3005,99 +3061,99 @@ var _t = function(e2) {
3005
3061
  return s2.push(e3.substring(n2)), s2.join("");
3006
3062
  }, e2.prototype.createMatchReturnVal = function(e3) {
3007
3063
  var t2;
3008
- return this.replaceFn && (t2 = this.replaceFn.call(this.context, e3)), "string" == typeof t2 ? t2 : false === t2 ? e3.getMatchedText() : t2 instanceof We ? t2.toAnchorString() : e3.buildTag().toAnchorString();
3064
+ return this.replaceFn && (t2 = this.replaceFn.call(this.context, e3)), "string" == typeof t2 ? t2 : false === t2 ? e3.getMatchedText() : t2 instanceof qe ? t2.toAnchorString() : e3.buildTag().toAnchorString();
3009
3065
  }, e2.prototype.getMatchers = function() {
3010
3066
  if (this.matchers) return this.matchers;
3011
- var e3 = this.getTagBuilder(), t2 = [new St({ tagBuilder: e3, serviceName: this.hashtag }), new bt({ tagBuilder: e3 }), new Dt({ tagBuilder: e3 }), new Nt({ tagBuilder: e3, serviceName: this.mention }), new kt({ tagBuilder: e3, stripPrefix: this.stripPrefix, stripTrailingSlash: this.stripTrailingSlash, decodePercentEncoding: this.decodePercentEncoding })];
3067
+ var e3 = this.getTagBuilder(), t2 = [new St({ tagBuilder: e3, serviceName: this.hashtag }), new yt({ tagBuilder: e3 }), new Mt({ tagBuilder: e3 }), new _t({ tagBuilder: e3, serviceName: this.mention }), new xt({ tagBuilder: e3, stripPrefix: this.stripPrefix, stripTrailingSlash: this.stripTrailingSlash, decodePercentEncoding: this.decodePercentEncoding })];
3012
3068
  return this.matchers = t2;
3013
3069
  }, e2.prototype.getTagBuilder = function() {
3014
3070
  var e3 = this.tagBuilder;
3015
- return e3 || (e3 = this.tagBuilder = new qe({ newWindow: this.newWindow, truncate: this.truncate, className: this.className })), e3;
3016
- }, e2.version = "3.14.3", e2.AnchorTagBuilder = qe, e2.HtmlTag = We, e2.matcher = { Email: bt, Hashtag: St, Matcher: Xe, Mention: Nt, Phone: Dt, Url: kt }, e2.match = { Email: Ye, Hashtag: Qe, Match: He, Mention: Ve, Phone: Ze, Url: Ke }, e2;
3071
+ return e3 || (e3 = this.tagBuilder = new He({ newWindow: this.newWindow, truncate: this.truncate, className: this.className })), e3;
3072
+ }, e2.version = "3.14.3", e2.AnchorTagBuilder = He, e2.HtmlTag = qe, e2.matcher = { Email: yt, Hashtag: St, Matcher: et, Mention: _t, Phone: Mt, Url: xt }, e2.match = { Email: Qe, Hashtag: Ve, Match: Ge, Mention: Ze, Phone: Ke, Url: Xe }, e2;
3017
3073
  }();
3018
- function Ut(e2, t2 = e2) {
3074
+ function jt(e2, t2 = e2) {
3019
3075
  return { type: "autolink", url: e2, text: t2 };
3020
3076
  }
3021
- const jt = Me(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3) {
3077
+ const $t = Fe(/<!!mention:([^>\s]*?)\|(.*?)>/gm, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3) {
3022
3078
  return { type: "mention", id: e3, text: t3 };
3023
- }(decodeURIComponent(t2), s2)), $t = Me(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ function(e3) {
3079
+ }(decodeURIComponent(t2), s2)), Wt = Fe(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ function(e3) {
3024
3080
  return { type: "customemoji", text: e3 };
3025
- }(t2)), Wt = Me(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3 = []) {
3081
+ }(t2)), qt = Fe(/<((?:https?|mailto):.*?)\|(.*?)>/gi, ([e2, t2, s2]) => /* @__PURE__ */ function(e3, t3 = []) {
3026
3082
  return { type: "link", url: e3, children: t3 };
3027
- }(t2, [s2])), qt = Me(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3028
- const { action: n2, params: r2 } = Gt(t2);
3083
+ }(t2, [s2])), Ht = Fe(/<actionlink:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3084
+ const { action: n2, params: r2 } = Lt(t2);
3029
3085
  return /* @__PURE__ */ function(e3, t3, s3 = []) {
3030
3086
  return { type: "actionlink", action: e3, params: t3, children: s3 };
3031
3087
  }(n2, r2, [s2]);
3032
- }), Ht = Me(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3033
- const { action: n2, params: r2 } = Gt(t2);
3088
+ }), Gt = Fe(/<actionbutton:([^|]+)[|]([^>]*)>/gi, ([e2, t2, s2]) => {
3089
+ const { action: n2, params: r2 } = Lt(t2);
3034
3090
  return /* @__PURE__ */ function(e3, t3, s3 = []) {
3035
3091
  return { type: "actionbutton", action: e3, params: t3, children: s3 };
3036
3092
  }(n2, r2, [s2]);
3037
3093
  });
3038
- function Gt(e2) {
3094
+ function Lt(e2) {
3039
3095
  const t2 = e2.indexOf("?");
3040
3096
  if (-1 === t2) return { action: e2, params: {} };
3041
3097
  return { action: e2.slice(0, t2), params: Object.fromEntries(new URLSearchParams(e2.slice(t2))) };
3042
3098
  }
3043
- const Lt = Me(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e2]) => /* @__PURE__ */ function(e3 = []) {
3099
+ const zt = Fe(/(?:^|\n)(?:\s*[-*+]\s+[^\n]+(?:\n|$))+/g, ([e2]) => /* @__PURE__ */ function(e3 = []) {
3044
3100
  return { type: "bulletlist", children: e3 };
3045
- }([e2.startsWith("\n") ? e2.slice(1) : e2])), zt = Me(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e2, t2]) => ({ type: "bulletpoint", children: [t2] })), Jt = (e2) => {
3101
+ }([e2.startsWith("\n") ? e2.slice(1) : e2])), Jt = Fe(/^\s*[-*+]\s+([^\n]+)(?:\n|$)/gm, ([e2, t2]) => ({ type: "bulletpoint", children: [t2] })), Yt = (e2) => {
3046
3102
  const t2 = /(?:^|[^-:/\w])([(+]?[0-9](?:[-_+ ().]?[0-9]){5,11}[0-9])(?:[^-:/\w]|$)/g;
3047
3103
  let s2 = 0;
3048
3104
  const n2 = [];
3049
3105
  for (const r2 of J(e2, t2)) {
3050
3106
  const t3 = r2[0], i2 = r2[1], a2 = t3.startsWith(i2) ? r2.index : r2.index + 1;
3051
3107
  a2 - s2 > 0 && n2.push(e2.substring(s2, a2));
3052
- const o2 = Ut("tel:" + i2.replace(/[^0-9+]/g, ""), i2);
3108
+ const o2 = jt("tel:" + i2.replace(/[^0-9+]/g, ""), i2);
3053
3109
  n2.push(o2), s2 = a2 + i2.length;
3054
3110
  }
3055
3111
  return s2 < e2.length && n2.push(e2.substring(s2)), n2;
3056
- }, Yt = (e2) => Wt(e2).flatMap((e3) => "string" == typeof e3 ? Qt(e3) : ["<", ...Qt(e3.url), ...Qt("|" + e3.children[0] + ">")]), Qt = (e2) => {
3057
- const t2 = Ot.parse(e2, { urls: true, email: true, phone: false, hashtag: false, mention: false }), s2 = [];
3112
+ }, Qt = (e2) => qt(e2).flatMap((e3) => "string" == typeof e3 ? Vt(e3) : ["<", ...Vt(e3.url), ...Vt("|" + e3.children[0] + ">")]), Vt = (e2) => {
3113
+ const t2 = Ut.parse(e2, { urls: true, email: true, phone: false, hashtag: false, mention: false }), s2 = [];
3058
3114
  let n2 = 0;
3059
3115
  for (const r2 of t2) {
3060
3116
  const t3 = r2.getOffset(), i2 = r2.getMatchedText(), a2 = i2.length;
3061
3117
  let o2 = i2;
3062
- r2 instanceof Ye ? o2 = "mailto:" + r2.getEmail() : r2 instanceof Ke && (o2 = r2.getUrl()), t3 > n2 && s2.push(e2.substring(n2, t3)), s2.push(Ut(o2, i2)), n2 = t3 + a2;
3118
+ r2 instanceof Qe ? o2 = "mailto:" + r2.getEmail() : r2 instanceof Xe && (o2 = r2.getUrl()), t3 > n2 && s2.push(e2.substring(n2, t3)), s2.push(jt(o2, i2)), n2 = t3 + a2;
3063
3119
  }
3064
3120
  return n2 < e2.length && s2.push(e2.substring(n2)), s2;
3065
- }, Vt = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
3066
- function Zt(e2 = { except: [] }) {
3121
+ }, Zt = ["Codeblock", "Codespan", "FormattedLink", "Wikitext", "Autolink", "Actions", "Mention", "Mention", "BulletPoint", "CustomEmoji"];
3122
+ function Kt(e2 = { except: [] }) {
3067
3123
  var _a2;
3068
- const t2 = { multilineSteps: [], singlelineSteps: [] }, s2 = (_a2 = e2.except) != null ? _a2 : Vt.filter((t3) => !e2.only.includes(t3));
3069
- return s2.includes("BulletPoint") || t2.multilineSteps.push(Lt, zt), s2.includes("Mention") || t2.singlelineSteps.push(jt), s2.includes("CustomEmoji") || t2.singlelineSteps.push($t), s2.includes("Codespan") || t2.multilineSteps.push(Me(/```([^]+?)```/g, ([e3, t3]) => ({ type: "codespan", text: t3 }))), s2.includes("FormattedLink") || t2.singlelineSteps.push(Wt), s2.includes("Actions") || (t2.singlelineSteps.push(qt), t2.singlelineSteps.push(Ht)), s2.includes("Wikitext") || t2.singlelineSteps.push(Pe), s2.includes("Autolink") || t2.singlelineSteps.push(Yt, Jt), t2;
3124
+ const t2 = { multilineSteps: [], singlelineSteps: [] }, s2 = (_a2 = e2.except) != null ? _a2 : Zt.filter((t3) => !e2.only.includes(t3));
3125
+ return s2.includes("BulletPoint") || t2.multilineSteps.push(zt, Jt), s2.includes("Mention") || t2.singlelineSteps.push($t), s2.includes("CustomEmoji") || t2.singlelineSteps.push(Wt), s2.includes("Codespan") || t2.multilineSteps.push(Fe(/```([^]+?)```/g, ([e3, t3]) => ({ type: "codespan", text: t3 }))), s2.includes("FormattedLink") || t2.singlelineSteps.push(qt), s2.includes("Actions") || (t2.singlelineSteps.push(Ht), t2.singlelineSteps.push(Gt)), s2.includes("Wikitext") || t2.singlelineSteps.push(Pe), s2.includes("Autolink") || t2.singlelineSteps.push(Qt, Yt), t2;
3070
3126
  }
3071
- const Kt = function(e2) {
3127
+ const Xt = function(e2) {
3072
3128
  const t2 = RegExp(`[^${e2}]+${e2}?|${e2}`, "g");
3073
3129
  return (e3) => Array.from(e3.match(t2) || []);
3074
3130
  }("\n");
3075
- function Xt(e2, t2 = { except: [] }) {
3131
+ function es(e2, t2 = { except: [] }) {
3076
3132
  let s2 = function(e3, t3) {
3077
3133
  let s3 = [e3];
3078
- return s3 = es(s3, t3.multilineSteps), s3 = es(s3, [Kt]), s3 = es(s3, t3.singlelineSteps), s3 = ts(s3), s3;
3079
- }(e2, Zt(t2));
3080
- return s2 = ss(s2, false), s2;
3134
+ return s3 = ts(s3, t3.multilineSteps), s3 = ts(s3, [Xt]), s3 = ts(s3, t3.singlelineSteps), s3 = ss(s3), s3;
3135
+ }(e2, Kt(t2));
3136
+ return s2 = ns(s2, false), s2;
3081
3137
  }
3082
- function es(e2, t2) {
3083
- return t2.reduce((e3, t3) => De(e3, t3), e2);
3138
+ function ts(e2, t2) {
3139
+ return t2.reduce((e3, t3) => Me(e3, t3), e2);
3084
3140
  }
3085
- function ts(e2) {
3141
+ function ss(e2) {
3086
3142
  const t2 = [];
3087
3143
  let s2 = -1;
3088
- 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: ts(n2.children) }) : n2;
3144
+ 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: ss(n2.children) }) : n2;
3089
3145
  return t2;
3090
3146
  }
3091
- function ss(e2, t2) {
3147
+ function ns(e2, t2) {
3092
3148
  const s2 = [];
3093
3149
  let n2 = [];
3094
3150
  for (let r2 = 0; r2 < e2.length; r2++) {
3095
3151
  const i2 = e2[r2];
3096
- "string" == typeof i2 ? n2.push(i2) : "children" in i2 ? (n2.length > 0 && (s2.push(n2.join("")), n2 = []), i2.children = ss(i2.children, t2 || "link" === i2.type || "actionbutton" === i2.type || "actionlink" === i2.type), s2.push(i2)) : "autolink" === i2.type && t2 ? n2.push(i2.text) : (n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2.push(i2));
3152
+ "string" == typeof i2 ? n2.push(i2) : "children" in i2 ? (n2.length > 0 && (s2.push(n2.join("")), n2 = []), i2.children = ns(i2.children, t2 || "link" === i2.type || "actionbutton" === i2.type || "actionlink" === i2.type), s2.push(i2)) : "autolink" === i2.type && t2 ? n2.push(i2.text) : (n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2.push(i2));
3097
3153
  }
3098
3154
  return n2.length > 0 && (s2.push(n2.join("")), n2 = []), s2;
3099
3155
  }
3100
- class ns {
3156
+ class rs {
3101
3157
  constructor(e2, t2, s2) {
3102
3158
  this.id = e2, this.conversationId = t2, this._realtimeClient = s2;
3103
3159
  }
@@ -3113,12 +3169,12 @@ class ns {
3113
3169
  if (!t2.ok && "server" === t2.where && 404 === t2.value.status) return null;
3114
3170
  if (!t2.ok && "server" === t2.where && 403 === t2.value.status && "NOT_A_PARTICIPANT" === t2.value.errorCode) return null;
3115
3171
  const s2 = e("Get message " + this.id, t2), n2 = yield this._realtimeClient.createMessageSnapshot(s2, this.brandedConversationId);
3116
- return xe("Get message " + this.id, n2);
3172
+ return Te("Get message " + this.id, n2);
3117
3173
  });
3118
3174
  }
3119
3175
  edit(t2) {
3120
3176
  return __async(this, null, function* () {
3121
- const s2 = { content: rs(t2), custom: "string" == typeof t2 ? void 0 : t2.custom }, n2 = yield this._realtimeClient.call("PATCH", ["conversations", this.brandedConversationId, "messages", this.brandedId], s2);
3177
+ const s2 = { content: is(t2), custom: "string" == typeof t2 ? void 0 : t2.custom }, n2 = yield this._realtimeClient.call("PATCH", ["conversations", this.brandedConversationId, "messages", this.brandedId], s2);
3122
3178
  e(`Edit message ${this.id} in conversation ${this.conversationId}`, n2);
3123
3179
  });
3124
3180
  }
@@ -3129,16 +3185,16 @@ class ns {
3129
3185
  });
3130
3186
  }
3131
3187
  }
3132
- function rs(e2) {
3188
+ function is(e2) {
3133
3189
  if ("string" == typeof e2) {
3134
- return [{ type: "text", children: Xt(e2) }];
3190
+ return [{ type: "text", children: es(e2) }];
3135
3191
  }
3136
3192
  if ("text" in e2 && e2.text) {
3137
- return [{ type: "text", children: Xt(e2.text) }];
3193
+ return [{ type: "text", children: es(e2.text) }];
3138
3194
  }
3139
3195
  if ("content" in e2 && e2.content) return e2.content;
3140
3196
  }
3141
- class is {
3197
+ class as {
3142
3198
  constructor(e2, t2) {
3143
3199
  this.id = e2, this._realtimeClient = t2, this.uselessObjForTypeCheck = { subject: null, photoUrl: null, welcomeMessages: null, custom: null, access: null, notify: null };
3144
3200
  }
@@ -3152,13 +3208,13 @@ class is {
3152
3208
  return new Se("string" == typeof e2 ? e2 : e2.id, this.id, this._realtimeClient);
3153
3209
  }
3154
3210
  message(e2) {
3155
- return new ns(e2, this.brandedId, this._realtimeClient);
3211
+ return new rs(e2, this.brandedId, this._realtimeClient);
3156
3212
  }
3157
3213
  get() {
3158
3214
  return __async(this, null, function* () {
3159
3215
  const t2 = this._realtimeClient.listMessages(this.brandedId, { limit: 1 }), s2 = yield this._realtimeClient.call("GET", ["me", "conversations", this.brandedId], {});
3160
3216
  if (!s2.ok && "server" === s2.where && 404 === s2.value.status) return null;
3161
- const n2 = e("Get conversation " + this.id, s2), r2 = xe("Get last message in conversation " + this.id, yield t2), i2 = 0 === r2.length ? null : r2[0];
3217
+ const n2 = e("Get conversation " + this.id, s2), r2 = Te("Get last message in conversation " + this.id, yield t2), i2 = 0 === r2.length ? null : r2[0];
3162
3218
  return this._realtimeClient.createConversationSnapshotPreloaded(n2, i2);
3163
3219
  });
3164
3220
  }
@@ -3201,8 +3257,8 @@ class is {
3201
3257
  }
3202
3258
  send(t2) {
3203
3259
  return __async(this, null, function* () {
3204
- const s2 = { content: as(t2), referencedMessageId: os(t2), custom: "string" == typeof t2 ? void 0 : t2.custom, idempotencyKey: Ie((/* @__PURE__ */ new Date()).getTime()) }, n2 = yield this._realtimeClient.call("POST", ["conversations", this.brandedId, "messages"], s2), r2 = e("Send message to conversation " + this.id, n2);
3205
- return new ns(r2.id, this.brandedId, this._realtimeClient);
3260
+ const s2 = { content: os(t2), referencedMessageId: us(t2), custom: "string" == typeof t2 ? void 0 : t2.custom, idempotencyKey: De((/* @__PURE__ */ new Date()).getTime()) }, n2 = yield this._realtimeClient.call("POST", ["conversations", this.brandedId, "messages"], s2), r2 = e("Send message to conversation " + this.id, n2);
3261
+ return new rs(r2.id, this.brandedId, this._realtimeClient);
3206
3262
  });
3207
3263
  }
3208
3264
  subscribeMessages(e2) {
@@ -3224,21 +3280,21 @@ class is {
3224
3280
  });
3225
3281
  }
3226
3282
  }
3227
- function as(e2) {
3283
+ function os(e2) {
3228
3284
  if ("string" == typeof e2) {
3229
- return [{ type: "text", children: Xt(e2) }];
3285
+ return [{ type: "text", children: es(e2) }];
3230
3286
  }
3231
3287
  if ("text" in e2) {
3232
- return [{ type: "text", children: Xt(e2.text) }];
3288
+ return [{ type: "text", children: es(e2.text) }];
3233
3289
  }
3234
3290
  return e2.content;
3235
3291
  }
3236
- function os(e2) {
3292
+ function us(e2) {
3237
3293
  if ("string" == typeof e2) return;
3238
3294
  const t2 = e2.referencedMessage;
3239
3295
  return void 0 !== t2 ? "string" == typeof t2 ? t2 : t2.id : void 0;
3240
3296
  }
3241
- class us {
3297
+ class cs {
3242
3298
  constructor(e2, t2, s2) {
3243
3299
  this.realtimeWsApiUrl = e2, this.internalHttpApiUrl = t2, this.restApiHttpUrl = s2;
3244
3300
  }
@@ -3249,11 +3305,24 @@ class us {
3249
3305
  const i2 = encodeURIComponent(t2);
3250
3306
  return this.realtimeWsApiUrl + `/${e2}/realtime/${i2}?talkjs-client-build=${r2 != null ? r2 : "standalone"}&talkjs-core=${s2}&talkjs-client-id=${n2}`;
3251
3307
  }
3308
+ static fromHost(e2) {
3309
+ const t2 = new cs("wss://realtime.talkjs.com/v1", "https://app.talkjs.com/api/v0", "https://api.talkjs.com/v1");
3310
+ if (!e2) return t2;
3311
+ if (e2.endsWith("talkjs.com")) {
3312
+ const s2 = e2.match(/\w+-(\w+)\.talkjs\.com/);
3313
+ if (s2) {
3314
+ const e3 = s2[1];
3315
+ return new cs(`wss://realtime-${e3}.talkjs.com/v1`, `https://app-${e3}.talkjs.com/api/v0`, `https://api-${e3}.talkjs.com/v1`);
3316
+ }
3317
+ return t2;
3318
+ }
3319
+ return e2.includes("localhost") || e2.includes("localtest.me") || /^\d+\.\d+\.\d+\.\d+(:\d+)?$/.test(e2) ? new cs(`ws://${e2}/public_api/v1`, `http://${e2}/api/v0`, `http://${e2}/public_api/v1`) : new cs(`wss://${e2}/public_api/v1`, `https://${e2}/api/v0`, `https://${e2}/public_api/v1`);
3320
+ }
3252
3321
  }
3253
- function cs({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRetry: i2, authProvider: o2 }) {
3322
+ function ls({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRetry: i2, authProvider: o2 }) {
3254
3323
  var _a2;
3255
3324
  (!r2 || r2 <= 0) && (r2 = 1);
3256
- const u2 = { "x-talkjs-client-build": "jssdk-dev", "x-talkjs-client-date": "2025-06-17T08:01:14.864Z" };
3325
+ const u2 = { "x-talkjs-client-build": "jssdk-dev", "x-talkjs-client-date": "2025-07-21T13:57:20.169Z" };
3257
3326
  s2 instanceof FormData || (u2["Content-Type"] = (_a2 = n2 == null ? void 0 : n2.contentType) != null ? _a2 : "application/json");
3258
3327
  return a(r2, () => __async(this, null, function* () {
3259
3328
  if (o2) {
@@ -3265,19 +3334,19 @@ function cs({ method: e2, url: t2, data: s2, options: n2, attempts: r2, shouldRe
3265
3334
  throw e3;
3266
3335
  });
3267
3336
  }), { initialDelay: 0.2, log: void 0, shouldRetry: (s3) => __async(this, null, function* () {
3268
- return o2 && 401 === s3.status ? (vs.log(`401 error from ${e2} ${t2}, ${yield o2.getToken()}`), o2.refreshToken(), true) : i2 ? i2(s3) : !("status" in s3 && s3.status >= 400 && s3.status < 500);
3337
+ return o2 && 401 === s3.status ? (ws.log(`401 error from ${e2} ${t2}, ${yield o2.getToken()}`), o2.refreshToken(), true) : i2 ? i2(s3) : !("status" in s3 && s3.status >= 400 && s3.status < 500);
3269
3338
  }) }).catch((s3) => {
3270
3339
  if (Math.random() < 0.1 && !t2.toString().startsWith("https://capture.trackjs.com")) {
3271
3340
  const n3 = `Network Error for ${e2} ${t2}`;
3272
3341
  if ("undefined" != typeof window) if (s3 instanceof Response) {
3273
- s3.clone().text().then((e3) => vs.log(`${n3} ${s3.status} ${e3} (10% logged)`));
3274
- } else vs.log(`${n3} ${s3} (10% logged)`);
3342
+ s3.clone().text().then((e3) => ws.log(`${n3} ${s3.status} ${e3} (10% logged)`));
3343
+ } else ws.log(`${n3} ${s3} (10% logged)`);
3275
3344
  console.error("[TalkJS]", n3);
3276
3345
  }
3277
3346
  throw s3;
3278
3347
  });
3279
3348
  }
3280
- const { cdnHost: ls, appHost: hs, restHost: ds, realtimeHost: ps, appProtocol: fs, appWsProtocol: ms } = function() {
3349
+ const { cdnHost: hs, appHost: ds, restHost: ps, realtimeHost: fs, appProtocol: ms, appWsProtocol: gs } = function() {
3281
3350
  if ("undefined" == typeof window) return { cdnHost: "test-hostname", appHost: "test-hostname", appProtocol: "http:", appWsProtocol: "ws:" };
3282
3351
  const e2 = function() {
3283
3352
  if (document.currentScript) return document.currentScript.src;
@@ -3302,11 +3371,11 @@ const { cdnHost: ls, appHost: hs, restHost: ds, realtimeHost: ps, appProtocol: f
3302
3371
  }(n2), a2 = t2.protocol;
3303
3372
  return { cdnHost: s2, appHost: n2, restHost: r2, realtimeHost: i2, appProtocol: a2, appWsProtocol: "https:" === a2 ? "wss:" : "ws:" };
3304
3373
  }();
3305
- const gs = hs.startsWith("app.talkjs.com");
3306
- const vs = "undefined" == typeof window ? { log: (e2) => Promise.resolve(), setData: (e2) => {
3374
+ const vs = ds.startsWith("app.talkjs.com");
3375
+ const ws = "undefined" == typeof window ? { log: (e2) => Promise.resolve(), setData: (e2) => {
3307
3376
  } } : new class {
3308
3377
  constructor(e2) {
3309
- this._timeCreated = Date.now(), this._enabled = gs, this._trackJSData = { customer: { application: "", correlationId: "", sessionId: "", token: "", userId: "", version: "dev-2025-06-17T08:01:14.864Z" }, entry: "direct", environment: { age: Date.now() - this._timeCreated, dependencies: {}, originalUrl: window.location.href, referrer: document.referrer, userAgent: window.navigator.userAgent }, metadata: [], nav: [], network: [], url: window.location.href, stack: "", timestamp: (/* @__PURE__ */ new Date()).toISOString(), version: "dev-2025-06-17T08:01:14.864Z", throttled: 0 }, this._url = `https://capture.trackjs.com/capture?token=${e2}`, this._trackJSData.customer.token = e2;
3378
+ this._timeCreated = Date.now(), this._enabled = vs, this._trackJSData = { customer: { application: "", correlationId: "", sessionId: "", token: "", userId: "", version: "dev-2025-07-21T13:57:20.169Z" }, entry: "direct", environment: { age: Date.now() - this._timeCreated, dependencies: {}, originalUrl: window.location.href, referrer: document.referrer, userAgent: window.navigator.userAgent }, metadata: [], nav: [], network: [], url: window.location.href, stack: "", timestamp: (/* @__PURE__ */ new Date()).toISOString(), version: "dev-2025-07-21T13:57:20.169Z", throttled: 0 }, this._url = `https://capture.trackjs.com/capture?token=${e2}`, this._trackJSData.customer.token = e2;
3310
3379
  }
3311
3380
  setData({ appId: e2, meId: t2, sessionId: s2 }) {
3312
3381
  this._trackJSData.customer.userId = e2, this._trackJSData.customer.sessionId = `${e2}/${t2}`, this._trackJSData.customer.correlationId = s2;
@@ -3316,14 +3385,14 @@ const vs = "undefined" == typeof window ? { log: (e2) => Promise.resolve(), setD
3316
3385
  try {
3317
3386
  if (!this._enabled) return Promise.resolve();
3318
3387
  const t2 = __spreadProps(__spreadValues({}, this._trackJSData), { message: e2 });
3319
- yield cs({ method: "POST", url: this._url, data: JSON.stringify(t2), options: { contentType: "text/plain" } });
3388
+ yield ls({ method: "POST", url: this._url, data: JSON.stringify(t2), options: { contentType: "text/plain" } });
3320
3389
  } catch (e3) {
3321
3390
  console.error("[TalkJS] Failed when sending an error report. Error: ", e3);
3322
3391
  }
3323
3392
  });
3324
3393
  }
3325
3394
  }("970cd0be0fb74630b75c8451051299dc");
3326
- class ws {
3395
+ class bs {
3327
3396
  constructor(e2, t2 = {}) {
3328
3397
  this._onSubscription = t2, this._handlers = {};
3329
3398
  for (const t3 in e2) Object.hasOwnProperty.call(e2, t3) && (this._handlers[t3] = []);
@@ -3368,9 +3437,9 @@ class ws {
3368
3437
  return this.on(e2, t2), { unsubscribe: () => this.off(e2, t2) };
3369
3438
  }
3370
3439
  }
3371
- class bs {
3440
+ class ys {
3372
3441
  constructor(e2, t2, s2, n2, r2, i2) {
3373
- if (this.appId = t2, this.userId = s2, this.tokenFetcher = r2, this.usingBokens = false, this.requestInProgress = false, this.eventEmitter = new ws({ tokenChanged(e3) {
3442
+ if (this.appId = t2, this.userId = s2, this.tokenFetcher = r2, this.usingBokens = false, this.requestInProgress = false, this.eventEmitter = new bs({ tokenChanged(e3) {
3374
3443
  }, tokenRefreshFailed(e3) {
3375
3444
  }, tokenAccepted(e3) {
3376
3445
  } }), this.sessionExpiryWarningTimeoutId = void 0, i2 && (n2 || r2)) throw new Error("[TalkJS] If providing a signature for authentication, you must not provide a token or tokenFetcher.");
@@ -3462,7 +3531,7 @@ class bs {
3462
3531
  const e3 = function(e4) {
3463
3532
  const t3 = e4.split(".");
3464
3533
  if (3 !== t3.length) throw "Token does not contain exactly two `.`. Check that you generated your JWT correctly. It should be `<header>.<payload>.<signature>`.";
3465
- return { header: ys(t3[0]), payload: ys(t3[1]) };
3534
+ return { header: Cs(t3[0]), payload: Cs(t3[1]) };
3466
3535
  }(s2);
3467
3536
  n2 = e3.header, r2 = e3.payload;
3468
3537
  } catch (e3) {
@@ -3476,7 +3545,7 @@ class bs {
3476
3545
  const e3 = this.checkJwtPayload(r2);
3477
3546
  t2.push(...e3);
3478
3547
  }
3479
- if (t2.length) if (this.usingBokens) vs.log(`JWT Errors detected by AuthProvider when using bokens: ${t2.join("\n")}`);
3548
+ if (t2.length) if (this.usingBokens) ws.log(`JWT Errors detected by AuthProvider when using bokens: ${t2.join("\n")}`);
3480
3549
  else {
3481
3550
  console.warn("[TalkJS] Authentication token appears to be generated incorrectly. Will still attempt to authenticate, but TalkJS may not work as expected. See below for a description of any problems and how to fix them.");
3482
3551
  const s3 = t2.length > 1;
@@ -3505,7 +3574,7 @@ class bs {
3505
3574
  sendBokenRequest(e2, t2) {
3506
3575
  return __async(this, null, function* () {
3507
3576
  let s2 = 0;
3508
- const n2 = e2.getBokensUrl(this.appId, this.userId, t2), r2 = yield cs({ method: "GET", url: n2, attempts: 1e4, shouldRetry: (e3) => {
3577
+ const n2 = e2.getBokensUrl(this.appId, this.userId, t2), r2 = yield ls({ method: "GET", url: n2, attempts: 1e4, shouldRetry: (e3) => {
3509
3578
  if (e3 instanceof Error) return true;
3510
3579
  if (401 === e3.status) throw "Check that you provided a valid signature.";
3511
3580
  if (404 === e3.status) throw "Check that you specified the correct App ID.";
@@ -3518,7 +3587,7 @@ class bs {
3518
3587
  });
3519
3588
  }
3520
3589
  }
3521
- function ys(e2) {
3590
+ function Cs(e2) {
3522
3591
  try {
3523
3592
  const t2 = e2.replace(/-/g, "+").replace(/_/g, "/"), s2 = decodeURIComponent(atob(t2).split("").map((e3) => "%" + ("00" + e3.charCodeAt(0).toString(16)).slice(-2)).join(""));
3524
3593
  return JSON.parse(s2);
@@ -3526,7 +3595,6 @@ function ys(e2) {
3526
3595
  throw `Could not base64-decode and JSON-parse token section: ${e2}. Check that you base-64 encoded the section correctly.`;
3527
3596
  }
3528
3597
  }
3529
- const Cs = new us("wss://realtime.talkjs.com/v1", "https://app.talkjs.com/api/v0", "https://api.talkjs.com/v1");
3530
3598
  class As {
3531
3599
  constructor(e2) {
3532
3600
  this.target = e2;
@@ -3567,13 +3635,13 @@ class xs {
3567
3635
  void 0 !== e3.tokenFetcher && t3("function" == typeof e3.tokenFetcher, "The `tokenFetcher` property of TalkSession#constructor must be a function.");
3568
3636
  }(e2);
3569
3637
  const { appId: t2, userId: s2, token: n2, tokenFetcher: r2, signature: i2 } = e2;
3570
- this._appId = t2, this._apiUrls = e2.apiUrls ? new us(e2.apiUrls.realtimeWsApiUrl, e2.apiUrls.internalHttpApiUrl, e2.apiUrls.restApiHttpUrl) : Cs, this._authProvider = new bs(this._apiUrls, t2, s2, n2, r2, i2);
3638
+ this._appId = t2, this._apiUrls = e2.apiUrls ? new cs(e2.apiUrls.realtimeWsApiUrl, e2.apiUrls.internalHttpApiUrl, e2.apiUrls.restApiHttpUrl) : cs.fromHost(e2.host), this._authProvider = new ys(this._apiUrls, t2, s2, n2, r2, i2);
3571
3639
  const a2 = Math.random().toString().split(".")[1];
3572
- this._realtimeClient = new Ee(this._apiUrls.getRealtimeWsUrl(t2, s2, "1.2.0", a2, e2.clientBuild), s2, this._authProvider), this.currentUser = new Te(this._realtimeClient.userId, this._realtimeClient), this._terminationReason = o(), this._terminationReason.promise.then((e3) => {
3640
+ this._realtimeClient = new ke(this._apiUrls.getRealtimeWsUrl(t2, s2, "1.4.0", a2, e2.clientBuild), s2, this._authProvider), this.currentUser = new Ie(this._realtimeClient.userId, this._realtimeClient), this._terminationReason = o(), this._terminationReason.promise.then((e3) => {
3573
3641
  console.error(`[TalkSession] ${e3}`);
3574
3642
  }), function(e3, t3, s3) {
3575
3643
  return __async(this, null, function* () {
3576
- return cs({ method: "GET", url: `${t3}/${e3}/app`, authProvider: s3 }).then((e4) => 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)).catch((e4) => {
3644
+ return ls({ method: "GET", url: `${t3}/${e3}/app`, authProvider: s3 }).then((e4) => 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)).catch((e4) => {
3577
3645
  if ("string" != typeof e4 && "status" in e4) {
3578
3646
  const t4 = e4;
3579
3647
  return 200 === t4.status || 404 !== t4.status && (console.warn(`[TalkJS] Received unexpected ${t4.status} status code when validating app ID. Assuming that the app ID is valid.`), true);
@@ -3594,10 +3662,10 @@ class xs {
3594
3662
  }), { unsubscribe: () => t2.resolve("UNSUBSCRIBED") };
3595
3663
  }
3596
3664
  user(e2) {
3597
- return new Te(e2, this._realtimeClient);
3665
+ return new Ie(e2, this._realtimeClient);
3598
3666
  }
3599
3667
  conversation(e2) {
3600
- return new is(e2, this._realtimeClient);
3668
+ return new as(e2, this._realtimeClient);
3601
3669
  }
3602
3670
  subscribeConversations(e2) {
3603
3671
  return this._realtimeClient.subscribe(["me", "conversations"], e2);
@@ -3627,7 +3695,7 @@ class xs {
3627
3695
  function Ts(_0, _1, _2, _3) {
3628
3696
  return __async(this, arguments, function* (e2, t2, s2, { subtype: n2, filename: r2, width: i2, height: a2, duration: o2 }) {
3629
3697
  const u2 = new FormData();
3630
- return u2.set("file", s2, r2), void 0 !== n2 && u2.set("subtype", n2), void 0 !== i2 && u2.set("width", i2.toString()), void 0 !== a2 && u2.set("height", a2.toString()), void 0 !== o2 && u2.set("duration", o2.toString()), cs({ method: "POST", url: e2, data: u2, authProvider: t2 }).then((e3) => e3.json()).then((e3) => e3.attachmentToken).catch((e3) => __async(this, null, function* () {
3698
+ return u2.set("file", s2, r2), void 0 !== n2 && u2.set("subtype", n2), void 0 !== i2 && u2.set("width", i2.toString()), void 0 !== a2 && u2.set("height", a2.toString()), void 0 !== o2 && u2.set("duration", o2.toString()), ls({ method: "POST", url: e2, data: u2, authProvider: t2 }).then((e3) => e3.json()).then((e3) => e3.attachmentToken).catch((e3) => __async(this, null, function* () {
3631
3699
  if (e3 instanceof Response) {
3632
3700
  const t3 = yield e3.json(), s3 = `Unexpected response when uploading file, status code ${e3.status} ${t3.errorCode}, ${t3.reasons}`;
3633
3701
  throw new Error(s3);