@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.
- package/README.md +10 -1
- package/dist/talkSession.cjs +1 -1
- package/dist/talkSession.d.ts +117 -13
- package/dist/talkSession.js +366 -298
- package/package.json +2 -2
package/dist/talkSession.js
CHANGED
|
@@ -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
|
|
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 !!
|
|
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
|
|
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 (
|
|
580
|
+
if (I.isCorrectBatchTypeFor(e2, t2)) {
|
|
581
581
|
const e3 = t2[1];
|
|
582
|
-
return new
|
|
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
|
|
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
|
|
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
|
|
659
|
+
class R {
|
|
660
660
|
constructor(e2, t2, s2) {
|
|
661
|
-
this.handlers = s2, this.targetSubscriptions = new
|
|
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
|
|
695
|
+
function _(e2, t2) {
|
|
696
696
|
return void 0 === t2 ? e2 : t2;
|
|
697
697
|
}
|
|
698
|
-
function
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
848
|
-
yield this.emit(
|
|
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(
|
|
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:
|
|
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 =
|
|
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:
|
|
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 =
|
|
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(
|
|
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
|
|
1294
|
-
n2[
|
|
1295
|
-
const
|
|
1296
|
-
let
|
|
1297
|
-
null ===
|
|
1298
|
-
const
|
|
1299
|
-
r2.push(
|
|
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
|
|
1344
|
-
const
|
|
1345
|
-
a2[
|
|
1346
|
-
}
|
|
1347
|
-
for (const
|
|
1348
|
-
const
|
|
1349
|
-
if (
|
|
1350
|
-
const
|
|
1351
|
-
a2[
|
|
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
|
|
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(
|
|
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(
|
|
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 =
|
|
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:
|
|
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(
|
|
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
|
|
1640
|
-
const
|
|
1641
|
-
a2[
|
|
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(
|
|
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(
|
|
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:
|
|
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
|
|
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
|
|
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[
|
|
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),
|
|
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 ((
|
|
1920
|
+
return void ((_d = this.storeMap[`/users/${t2.userId}`]) == null ? void 0 : _d.userEdited(e2, t2));
|
|
1871
1921
|
case "side.created":
|
|
1872
|
-
return (
|
|
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 (
|
|
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 (
|
|
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 ((
|
|
1928
|
+
return void ((_p = this.convDataStores[t2.conversationId]) == null ? void 0 : _p.conversationEdited(e2, t2));
|
|
1879
1929
|
case "message.created":
|
|
1880
|
-
return void ((
|
|
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 ((
|
|
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 ((
|
|
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 ((
|
|
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 ((
|
|
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 ((
|
|
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 (
|
|
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 ((
|
|
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 ((
|
|
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 =
|
|
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 =
|
|
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
|
|
2057
|
+
function Ee(e2) {
|
|
2005
2058
|
return `/${e2.join("/")}`;
|
|
2006
2059
|
}
|
|
2007
|
-
class
|
|
2060
|
+
class ke {
|
|
2008
2061
|
constructor(e2, t2, s2) {
|
|
2009
|
-
this.userId = t2, this.alive = true, this.connection = new
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2138
|
+
function xe(e2, t2) {
|
|
2086
2139
|
return "server" === e2.where ? h(__spreadProps(__spreadValues({}, e2.value), { operation: t2 })) : e2;
|
|
2087
2140
|
}
|
|
2088
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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
|
|
2235
|
-
var
|
|
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
|
-
}),
|
|
2295
|
+
}), _e = { _: 1, "*": 4, "~": 2 };
|
|
2240
2296
|
function Pe(e2) {
|
|
2241
|
-
return
|
|
2297
|
+
return Oe(e2, 0);
|
|
2242
2298
|
}
|
|
2243
|
-
function
|
|
2299
|
+
function Oe(e2, t2 = 0) {
|
|
2244
2300
|
const s2 = Re[t2], n2 = s2 ? function(e3) {
|
|
2245
|
-
const t3 =
|
|
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:
|
|
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
|
|
2310
|
+
return Me(n2(e2), (e3, s3) => "bold" === s3 || "italic" === s3 || "strikethrough" === s3 ? Oe(e3, t2 | Ne[s3]) : [e3]);
|
|
2255
2311
|
}
|
|
2256
|
-
const
|
|
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
|
|
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
|
|
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
|
|
2336
|
+
function We(e2) {
|
|
2281
2337
|
throw new Error("Unhandled case for value: '" + e2 + "'");
|
|
2282
2338
|
}
|
|
2283
|
-
var
|
|
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 ===
|
|
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 =
|
|
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
|
|
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
|
|
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
|
-
}(),
|
|
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
|
-
}(),
|
|
2423
|
-
return
|
|
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
|
-
},
|
|
2483
|
+
}, Le(e2, t2);
|
|
2428
2484
|
};
|
|
2429
|
-
function
|
|
2485
|
+
function ze(e2, t2) {
|
|
2430
2486
|
function s2() {
|
|
2431
2487
|
this.constructor = e2;
|
|
2432
2488
|
}
|
|
2433
|
-
|
|
2489
|
+
Le(e2, t2), e2.prototype = null === t2 ? Object.create(t2) : (s2.prototype = t2.prototype, new s2());
|
|
2434
2490
|
}
|
|
2435
|
-
var
|
|
2436
|
-
return
|
|
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
|
-
},
|
|
2440
|
-
},
|
|
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
|
|
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
|
-
}(
|
|
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
|
|
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
|
-
}(
|
|
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
|
|
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
|
-
}(
|
|
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
|
|
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
|
-
}(
|
|
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
|
|
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
|
-
}(
|
|
2613
|
+
}(Ge), et = function(e2) {
|
|
2558
2614
|
this.__jsduckDummyDocProp = null, this.tagBuilder = e2.tagBuilder;
|
|
2559
|
-
},
|
|
2560
|
-
return "(?=(" +
|
|
2561
|
-
},
|
|
2562
|
-
return "(?:" +
|
|
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 =
|
|
2622
|
+
return t3.localPartCharRegex = wt, t3.strictTldRegex = bt, t3;
|
|
2567
2623
|
}
|
|
2568
|
-
return
|
|
2569
|
-
for (var t3 = this.tagBuilder, s2 = this.localPartCharRegex, n2 = this.strictTldRegex, r2 = [], i2 = e3.length, a2 = new
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
2671
|
+
gt.test(e4) ? c2 = 5 : C2();
|
|
2616
2672
|
}
|
|
2617
2673
|
function v2(e4) {
|
|
2618
|
-
"." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 :
|
|
2674
|
+
"." === e4 ? c2 = 7 : "-" === e4 ? c2 = 6 : gt.test(e4) || A2();
|
|
2619
2675
|
}
|
|
2620
2676
|
function w2(e4) {
|
|
2621
|
-
"-" === e4 || "." === e4 ? A2() :
|
|
2677
|
+
"-" === e4 || "." === e4 ? A2() : gt.test(e4) ? c2 = 5 : A2();
|
|
2622
2678
|
}
|
|
2623
2679
|
function b2(e4) {
|
|
2624
|
-
"." === e4 || "-" === e4 ? 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
|
|
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
|
|
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
|
-
}(
|
|
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
|
-
},
|
|
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]*?[" +
|
|
2666
|
-
}(),
|
|
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 =
|
|
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
|
|
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 (!
|
|
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
|
|
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("^((.?//)?[-." +
|
|
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
|
-
}(
|
|
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 =
|
|
2772
|
+
return s2.serviceName = "twitter", s2.matcherRegex = Tt, s2.nonWordCharRegex = It, s2.serviceName = t3.serviceName, s2;
|
|
2717
2773
|
}
|
|
2718
|
-
return
|
|
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
|
|
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
|
-
}(
|
|
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 =
|
|
2787
|
+
return t3.matcherRegex = Dt, t3;
|
|
2732
2788
|
}
|
|
2733
|
-
return
|
|
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
|
|
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
|
|
2796
|
+
return nt.test(e3);
|
|
2741
2797
|
}, t2;
|
|
2742
|
-
}(
|
|
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:
|
|
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
|
|
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
|
|
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
|
-
}(
|
|
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
|
|
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
|
-
|
|
2857
|
+
I2(f2);
|
|
2802
2858
|
break;
|
|
2803
2859
|
case 13:
|
|
2804
|
-
|
|
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
|
-
|
|
2875
|
+
N2(f2);
|
|
2820
2876
|
break;
|
|
2821
2877
|
case 19:
|
|
2822
|
-
|
|
2878
|
+
R2(f2);
|
|
2823
2879
|
break;
|
|
2824
2880
|
case 20:
|
|
2825
|
-
|
|
2881
|
+
_2(f2);
|
|
2826
2882
|
break;
|
|
2827
2883
|
default:
|
|
2828
|
-
|
|
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
|
|
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
|
-
|
|
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 ?
|
|
2898
|
+
">" === e3 ? P2() : tt.test(e3) ? h2 = 3 : P2();
|
|
2843
2899
|
}
|
|
2844
2900
|
function b2(e3) {
|
|
2845
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
2919
|
+
rt.test(e3) ? h2 = 4 : ">" === e3 ? U2() : "<" === e3 && O2();
|
|
2864
2920
|
}
|
|
2865
2921
|
function T2(e3) {
|
|
2866
|
-
|
|
2922
|
+
rt.test(e3) ? h2 = 4 : "/" === e3 ? h2 = 12 : ">" === e3 ? U2() : "<" === e3 ? O2() : (h2 = 4, c2--);
|
|
2867
2923
|
}
|
|
2868
|
-
function
|
|
2869
|
-
">" === e3 ? (p2 = new
|
|
2924
|
+
function I2(e3) {
|
|
2925
|
+
">" === e3 ? (p2 = new Ot(Ye(Ye({}, p2), { isClosing: true })), U2()) : h2 = 4;
|
|
2870
2926
|
}
|
|
2871
|
-
function
|
|
2872
|
-
"--" === e2.substr(c2, 2) ? (c2 += 2, p2 = new
|
|
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 ?
|
|
2931
|
+
"-" === e3 ? h2 = 15 : ">" === e3 ? P2() : h2 = 16;
|
|
2876
2932
|
}
|
|
2877
2933
|
function M2(e3) {
|
|
2878
|
-
"-" === e3 ? h2 = 18 : ">" === e3 ?
|
|
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
|
|
2942
|
+
function N2(e3) {
|
|
2887
2943
|
">" === e3 ? U2() : "!" === e3 ? h2 = 19 : "-" === e3 || (h2 = 16);
|
|
2888
2944
|
}
|
|
2889
|
-
function
|
|
2945
|
+
function R2(e3) {
|
|
2890
2946
|
"-" === e3 ? h2 = 17 : ">" === e3 ? U2() : h2 = 16;
|
|
2891
2947
|
}
|
|
2892
|
-
function
|
|
2948
|
+
function _2(e3) {
|
|
2893
2949
|
">" === e3 ? U2() : "<" === e3 && O2();
|
|
2894
2950
|
}
|
|
2895
|
-
function
|
|
2951
|
+
function P2() {
|
|
2896
2952
|
h2 = 0, p2 = u2;
|
|
2897
2953
|
}
|
|
2898
2954
|
function O2() {
|
|
2899
|
-
h2 = 1, p2 = new
|
|
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)),
|
|
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
|
|
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
|
-
},
|
|
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 ||
|
|
3032
|
+
return this.hashtag || $e(e3, function(e4) {
|
|
2977
3033
|
return "hashtag" === e4.getType();
|
|
2978
|
-
}), this.email ||
|
|
3034
|
+
}), this.email || $e(e3, function(e4) {
|
|
2979
3035
|
return "email" === e4.getType();
|
|
2980
|
-
}), this.phone ||
|
|
3036
|
+
}), this.phone || $e(e3, function(e4) {
|
|
2981
3037
|
return "phone" === e4.getType();
|
|
2982
|
-
}), this.mention ||
|
|
3038
|
+
}), this.mention || $e(e3, function(e4) {
|
|
2983
3039
|
return "mention" === e4.getType();
|
|
2984
|
-
}), this.urls.schemeMatches ||
|
|
3040
|
+
}), this.urls.schemeMatches || $e(e3, function(e4) {
|
|
2985
3041
|
return "url" === e4.getType() && "scheme" === e4.getUrlMatchType();
|
|
2986
|
-
}), this.urls.wwwMatches ||
|
|
3042
|
+
}), this.urls.wwwMatches || $e(e3, function(e4) {
|
|
2987
3043
|
return "url" === e4.getType() && "www" === e4.getUrlMatchType();
|
|
2988
|
-
}), this.urls.tldMatches ||
|
|
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
|
|
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
|
|
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
|
|
3016
|
-
}, e2.version = "3.14.3", e2.AnchorTagBuilder =
|
|
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
|
|
3074
|
+
function jt(e2, t2 = e2) {
|
|
3019
3075
|
return { type: "autolink", url: e2, text: t2 };
|
|
3020
3076
|
}
|
|
3021
|
-
const
|
|
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)),
|
|
3079
|
+
}(decodeURIComponent(t2), s2)), Wt = Fe(/<!!customemoji:(.*?)>/gm, ([e2, t2]) => /* @__PURE__ */ function(e3) {
|
|
3024
3080
|
return { type: "customemoji", text: e3 };
|
|
3025
|
-
}(t2)),
|
|
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])),
|
|
3028
|
-
const { action: n2, params: r2 } =
|
|
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
|
-
}),
|
|
3033
|
-
const { action: n2, params: r2 } =
|
|
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
|
|
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
|
|
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])),
|
|
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 =
|
|
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
|
-
},
|
|
3057
|
-
const t2 =
|
|
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
|
|
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
|
-
},
|
|
3066
|
-
function
|
|
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 :
|
|
3069
|
-
return s2.includes("BulletPoint") || t2.multilineSteps.push(
|
|
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
|
|
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
|
|
3131
|
+
function es(e2, t2 = { except: [] }) {
|
|
3076
3132
|
let s2 = function(e3, t3) {
|
|
3077
3133
|
let s3 = [e3];
|
|
3078
|
-
return s3 =
|
|
3079
|
-
}(e2,
|
|
3080
|
-
return 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
|
|
3083
|
-
return t2.reduce((e3, t3) =>
|
|
3138
|
+
function ts(e2, t2) {
|
|
3139
|
+
return t2.reduce((e3, t3) => Me(e3, t3), e2);
|
|
3084
3140
|
}
|
|
3085
|
-
function
|
|
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:
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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:
|
|
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
|
|
3188
|
+
function is(e2) {
|
|
3133
3189
|
if ("string" == typeof e2) {
|
|
3134
|
-
return [{ type: "text", children:
|
|
3190
|
+
return [{ type: "text", children: es(e2) }];
|
|
3135
3191
|
}
|
|
3136
3192
|
if ("text" in e2 && e2.text) {
|
|
3137
|
-
return [{ type: "text", children:
|
|
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
|
|
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
|
|
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 =
|
|
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:
|
|
3205
|
-
return new
|
|
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
|
|
3283
|
+
function os(e2) {
|
|
3228
3284
|
if ("string" == typeof e2) {
|
|
3229
|
-
return [{ type: "text", children:
|
|
3285
|
+
return [{ type: "text", children: es(e2) }];
|
|
3230
3286
|
}
|
|
3231
3287
|
if ("text" in e2) {
|
|
3232
|
-
return [{ type: "text", children:
|
|
3288
|
+
return [{ type: "text", children: es(e2.text) }];
|
|
3233
3289
|
}
|
|
3234
3290
|
return e2.content;
|
|
3235
3291
|
}
|
|
3236
|
-
function
|
|
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
|
|
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
|
|
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-
|
|
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 ? (
|
|
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) =>
|
|
3274
|
-
} else
|
|
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:
|
|
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
|
|
3306
|
-
const
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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:
|
|
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)
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
3665
|
+
return new Ie(e2, this._realtimeClient);
|
|
3598
3666
|
}
|
|
3599
3667
|
conversation(e2) {
|
|
3600
|
-
return new
|
|
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()),
|
|
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);
|