@opencxh/domain 1.142.0 → 1.145.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/entities/kb/help-center.d.ts +7 -0
- package/dist/entities/kb/index.d.ts +1 -0
- package/dist/entities/kb/tree.d.ts +34 -0
- package/dist/entities/kb/tree.test.d.ts +1 -0
- package/dist/index.cjs +8 -8
- package/dist/index.js +389 -344
- package/dist/platform/routing.d.ts +27 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const Tt = 10, It = 10, St = 10, Mt = 5, se = /* @__PURE__ */ new Set([
|
|
2
2
|
"header",
|
|
3
3
|
"section",
|
|
4
4
|
"context",
|
|
@@ -14,7 +14,7 @@ function T(e) {
|
|
|
14
14
|
const t = e;
|
|
15
15
|
return typeof t.key == "string" || typeof t.value == "string";
|
|
16
16
|
}
|
|
17
|
-
function
|
|
17
|
+
function Ct(e, t = () => {
|
|
18
18
|
}) {
|
|
19
19
|
if (!Array.isArray(e)) return [];
|
|
20
20
|
const n = [];
|
|
@@ -25,7 +25,7 @@ function Tt(e, t = () => {
|
|
|
25
25
|
}
|
|
26
26
|
if (!a || typeof a != "object") continue;
|
|
27
27
|
const i = a;
|
|
28
|
-
if (!
|
|
28
|
+
if (!se.has(i.type)) {
|
|
29
29
|
t("unknown block type " + String(i.type));
|
|
30
30
|
continue;
|
|
31
31
|
}
|
|
@@ -69,7 +69,7 @@ function Tt(e, t = () => {
|
|
|
69
69
|
}
|
|
70
70
|
return n;
|
|
71
71
|
}
|
|
72
|
-
function
|
|
72
|
+
function le(e) {
|
|
73
73
|
return e.replace(/<style[\s\S]*?<\/style>/gi, " ").replace(/<script[\s\S]*?<\/script>/gi, " ").replace(/<[^>]+>/g, " ").replace(/ /g, " ").replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, '"').replace(/'/g, "'").replace(/\s+/g, " ").trim();
|
|
74
74
|
}
|
|
75
75
|
function y(e) {
|
|
@@ -405,43 +405,43 @@ const m = {
|
|
|
405
405
|
}
|
|
406
406
|
};
|
|
407
407
|
function L(e) {
|
|
408
|
-
const t = e.payload, n = t.bodySnippet?.trim() ||
|
|
408
|
+
const t = e.payload, n = t.bodySnippet?.trim() || le(t.body ?? "");
|
|
409
409
|
return t.subject ? `${t.subject} — ${n}` : n;
|
|
410
410
|
}
|
|
411
411
|
function f(e) {
|
|
412
412
|
return m[e];
|
|
413
413
|
}
|
|
414
|
-
function
|
|
414
|
+
function Nt(e) {
|
|
415
415
|
return f(e)?.icon ?? "circle";
|
|
416
416
|
}
|
|
417
|
-
function
|
|
417
|
+
function vt(e) {
|
|
418
418
|
return f(e)?.channelKind;
|
|
419
419
|
}
|
|
420
|
-
function
|
|
420
|
+
function xt(e) {
|
|
421
421
|
const t = f(e)?.shape;
|
|
422
422
|
return t === "message" || t === "note";
|
|
423
423
|
}
|
|
424
|
-
function
|
|
424
|
+
function kt(e) {
|
|
425
425
|
return f(e)?.replyable === !0;
|
|
426
426
|
}
|
|
427
|
-
function
|
|
427
|
+
function Lt(e) {
|
|
428
428
|
return f(e)?.carriesText === !0;
|
|
429
429
|
}
|
|
430
|
-
function
|
|
430
|
+
function Ot(e) {
|
|
431
431
|
return f(e)?.countsAs;
|
|
432
432
|
}
|
|
433
|
-
function
|
|
433
|
+
function $t(e) {
|
|
434
434
|
return f(e)?.playbookAuthored === !0;
|
|
435
435
|
}
|
|
436
|
-
function
|
|
436
|
+
function ce(e) {
|
|
437
437
|
const t = f(e.type)?.snippet;
|
|
438
438
|
return t ? t(e) : "";
|
|
439
439
|
}
|
|
440
|
-
function
|
|
440
|
+
function Rt(e, t) {
|
|
441
441
|
const n = f(e.type)?.timeline;
|
|
442
442
|
return n ? n(e, t) : e.type.replace(/_/g, " ").toLowerCase();
|
|
443
443
|
}
|
|
444
|
-
function
|
|
444
|
+
function wt(e) {
|
|
445
445
|
const t = f(e.type)?.joinUrl;
|
|
446
446
|
return t ? t(e) : void 0;
|
|
447
447
|
}
|
|
@@ -464,15 +464,15 @@ function N(e, t, n) {
|
|
|
464
464
|
const i = n(e.key, a);
|
|
465
465
|
return i === e.key ? null : i;
|
|
466
466
|
}
|
|
467
|
-
function
|
|
467
|
+
function ue(e, t) {
|
|
468
468
|
if (!e || typeof e == "string" || "value" in e) return null;
|
|
469
469
|
const n = {};
|
|
470
470
|
for (const [a, i] of Object.entries(e.params ?? {}))
|
|
471
471
|
n[a] = C(t, i);
|
|
472
472
|
return { key: e.key, params: n };
|
|
473
473
|
}
|
|
474
|
-
const
|
|
475
|
-
function
|
|
474
|
+
const pe = (e) => e;
|
|
475
|
+
function O(e) {
|
|
476
476
|
const t = m[e];
|
|
477
477
|
return {
|
|
478
478
|
type: e,
|
|
@@ -488,7 +488,7 @@ function $(e) {
|
|
|
488
488
|
displayNameKey: t.displayNameKey
|
|
489
489
|
};
|
|
490
490
|
}
|
|
491
|
-
function
|
|
491
|
+
function $(e) {
|
|
492
492
|
return {
|
|
493
493
|
type: e.type,
|
|
494
494
|
shape: e.shape,
|
|
@@ -503,21 +503,21 @@ function O(e) {
|
|
|
503
503
|
displayNameKey: e.displayNameKey
|
|
504
504
|
};
|
|
505
505
|
}
|
|
506
|
-
class
|
|
507
|
-
constructor(t = [], n =
|
|
506
|
+
class de {
|
|
507
|
+
constructor(t = [], n = pe) {
|
|
508
508
|
this.translate = n;
|
|
509
509
|
for (const a of t)
|
|
510
510
|
a?.type && (a.type in m || this.declared.has(a.type) || this.declared.set(a.type, a));
|
|
511
511
|
}
|
|
512
512
|
declared = /* @__PURE__ */ new Map();
|
|
513
513
|
get(t) {
|
|
514
|
-
if (t in m) return
|
|
514
|
+
if (t in m) return O(t);
|
|
515
515
|
const n = this.declared.get(t);
|
|
516
|
-
return n ?
|
|
516
|
+
return n ? $(n) : void 0;
|
|
517
517
|
}
|
|
518
518
|
/** Alles wat als trigger aangeboden mag worden, ingebouwd en gedeclareerd. */
|
|
519
519
|
triggerable() {
|
|
520
|
-
const t = Object.keys(m).filter((a) => m[a].triggerable).map(
|
|
520
|
+
const t = Object.keys(m).filter((a) => m[a].triggerable).map(O), n = [...this.declared.values()].map($).filter((a) => a.triggerable);
|
|
521
521
|
return [...t, ...n];
|
|
522
522
|
}
|
|
523
523
|
/**
|
|
@@ -552,33 +552,33 @@ class ue {
|
|
|
552
552
|
return this.translate;
|
|
553
553
|
}
|
|
554
554
|
}
|
|
555
|
-
const
|
|
556
|
-
function
|
|
555
|
+
const Dt = new de(), R = 140;
|
|
556
|
+
function fe(e) {
|
|
557
557
|
const t = e.trim();
|
|
558
558
|
return t.length <= R ? t : t.slice(0, R - 1).trimEnd() + "…";
|
|
559
559
|
}
|
|
560
|
-
function
|
|
561
|
-
const n =
|
|
560
|
+
function Pt(e, t) {
|
|
561
|
+
const n = ue(t?.text, e), a = t ? N(t.text, e, (i) => i) : null;
|
|
562
562
|
return {
|
|
563
563
|
activityId: e.id,
|
|
564
564
|
type: e.type,
|
|
565
|
-
snippet:
|
|
565
|
+
snippet: fe(a ?? ce(e)),
|
|
566
566
|
authorName: e.author?.name ?? "",
|
|
567
567
|
direction: e.direction,
|
|
568
568
|
createdAt: e.createdAt ?? Date.now(),
|
|
569
569
|
...n ? { snippetKey: n.key, snippetParams: n.params } : {}
|
|
570
570
|
};
|
|
571
571
|
}
|
|
572
|
-
function
|
|
572
|
+
function Ut(e, t, n = []) {
|
|
573
573
|
const a = e.createdAt;
|
|
574
574
|
if (!a) return [];
|
|
575
575
|
const i = new Set(n);
|
|
576
576
|
return e.author.type === "user" && e.author.id && i.add(e.author.id), Object.entries(t).filter(([r, o]) => o >= a && !i.has(r)).map(([r]) => r);
|
|
577
577
|
}
|
|
578
|
-
function
|
|
578
|
+
function Kt(e) {
|
|
579
579
|
return e.createdAt ?? 0;
|
|
580
580
|
}
|
|
581
|
-
const
|
|
581
|
+
const Gt = [
|
|
582
582
|
{ id: "agent", label: "Agent", labelSource: "user" },
|
|
583
583
|
{ id: "team", label: "Team", labelSource: "team" },
|
|
584
584
|
{ id: "inbox", label: "Inbox", labelSource: "inbox" },
|
|
@@ -588,7 +588,7 @@ const Dt = [
|
|
|
588
588
|
{ id: "handledBy", label: "Afhandelaar", labelSource: "raw" },
|
|
589
589
|
{ id: "time", label: "Tijd", labelSource: "raw" }
|
|
590
590
|
];
|
|
591
|
-
function
|
|
591
|
+
function Bt(e) {
|
|
592
592
|
const t = [];
|
|
593
593
|
for (const n of Object.keys(e))
|
|
594
594
|
for (const a of Object.keys(e[n]))
|
|
@@ -598,44 +598,44 @@ function Ut(e) {
|
|
|
598
598
|
function S(e) {
|
|
599
599
|
return e < 10 ? `0${e}` : `${e}`;
|
|
600
600
|
}
|
|
601
|
-
function
|
|
601
|
+
function me(e, t) {
|
|
602
602
|
const n = new Date(e), a = `${n.getUTCFullYear()}-${S(n.getUTCMonth() + 1)}-${S(n.getUTCDate())}`;
|
|
603
603
|
return t === "day" ? a : `${a}T${S(n.getUTCHours())}`;
|
|
604
604
|
}
|
|
605
|
-
function
|
|
605
|
+
function ge(e, t) {
|
|
606
606
|
const n = new Date(e);
|
|
607
607
|
return n.setUTCMinutes(0, 0, 0), t === "day" && n.setUTCHours(0), n.getTime();
|
|
608
608
|
}
|
|
609
|
-
const
|
|
610
|
-
function
|
|
611
|
-
const a = n === "hour" ?
|
|
612
|
-
for (let r =
|
|
613
|
-
i.push(
|
|
609
|
+
const he = 36e5, ye = 864e5;
|
|
610
|
+
function Ht(e, t, n) {
|
|
611
|
+
const a = n === "hour" ? he : ye, i = [];
|
|
612
|
+
for (let r = ge(e, n); r <= t; r += a)
|
|
613
|
+
i.push(me(r, n));
|
|
614
614
|
return i;
|
|
615
615
|
}
|
|
616
|
-
const
|
|
616
|
+
const be = [
|
|
617
617
|
{ id: "resource", label: "Resource", labelSource: "raw" },
|
|
618
618
|
{ id: "origin", label: "Herkomst", labelSource: "raw" }
|
|
619
|
-
],
|
|
620
|
-
function
|
|
619
|
+
], Ae = be.map((e) => e.id);
|
|
620
|
+
function Ee(e, t) {
|
|
621
621
|
return `${e}.usage.${t}`;
|
|
622
622
|
}
|
|
623
|
-
function
|
|
623
|
+
function jt(e, t) {
|
|
624
624
|
return t.map((n) => ({
|
|
625
|
-
id:
|
|
625
|
+
id: Ee(e, n.unit),
|
|
626
626
|
label: n.label,
|
|
627
627
|
category: "Verbruik",
|
|
628
628
|
valueType: n.valueType ?? "count",
|
|
629
629
|
aggregation: "sum",
|
|
630
630
|
supportedDimensions: [
|
|
631
631
|
"provider",
|
|
632
|
-
...
|
|
632
|
+
...Ae,
|
|
633
633
|
...n.extraDimensions ?? [],
|
|
634
634
|
"time"
|
|
635
635
|
]
|
|
636
636
|
}));
|
|
637
637
|
}
|
|
638
|
-
const J = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), w = 200, D = 100,
|
|
638
|
+
const J = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"]), w = 200, D = 100, P = 200, U = 12, K = 4, Q = 4e3, M = 500, Vt = 256 * 1024, _e = /* @__PURE__ */ new Set([
|
|
639
639
|
"heading",
|
|
640
640
|
"paragraph",
|
|
641
641
|
"list",
|
|
@@ -645,15 +645,15 @@ const J = /* @__PURE__ */ new Set(["info", "success", "warning", "destructive"])
|
|
|
645
645
|
"table",
|
|
646
646
|
"kpi",
|
|
647
647
|
"callout"
|
|
648
|
-
]),
|
|
648
|
+
]), Te = ["http:", "https:", "mailto:", "tel:"], Ie = /^[a-z][a-z0-9+.-]*:/i;
|
|
649
649
|
function Z(e) {
|
|
650
650
|
const t = e.trim().replace(/^<|>$/g, "");
|
|
651
651
|
if (!t) return !1;
|
|
652
|
-
const n =
|
|
653
|
-
return n ?
|
|
652
|
+
const n = Ie.exec(t)?.[0];
|
|
653
|
+
return n ? Te.includes(n.toLowerCase()) : !t.startsWith("//");
|
|
654
654
|
}
|
|
655
|
-
const
|
|
656
|
-
function
|
|
655
|
+
const Se = /^[ \t]{0,3}\[([^\]]+)\]:[ \t]*(\S+).*$/gm;
|
|
656
|
+
function Me(e) {
|
|
657
657
|
let t = "", n = 0;
|
|
658
658
|
for (; n < e.length; ) {
|
|
659
659
|
const a = e[n] === "!" && e[n + 1] === "[";
|
|
@@ -689,22 +689,22 @@ function G(e, t, n, a) {
|
|
|
689
689
|
}
|
|
690
690
|
return -1;
|
|
691
691
|
}
|
|
692
|
-
function
|
|
693
|
-
return
|
|
694
|
-
|
|
692
|
+
function Ce(e) {
|
|
693
|
+
return Me(e).replace(
|
|
694
|
+
Se,
|
|
695
695
|
(t, n, a) => Z(a) ? t : ""
|
|
696
696
|
);
|
|
697
697
|
}
|
|
698
698
|
function u(e, t = Q) {
|
|
699
|
-
return typeof e == "string" ?
|
|
699
|
+
return typeof e == "string" ? Ce(e).slice(0, t) : "";
|
|
700
700
|
}
|
|
701
|
-
function
|
|
701
|
+
function Ne(e, t = Q) {
|
|
702
702
|
return typeof e == "string" ? e.slice(0, t) : "";
|
|
703
703
|
}
|
|
704
|
-
function
|
|
704
|
+
function ve(e, t = "info") {
|
|
705
705
|
return typeof e == "string" && J.has(e) ? e : t;
|
|
706
706
|
}
|
|
707
|
-
function
|
|
707
|
+
function Ft(e, t = () => {
|
|
708
708
|
}) {
|
|
709
709
|
if (!Array.isArray(e)) return [];
|
|
710
710
|
const n = [];
|
|
@@ -715,7 +715,7 @@ function Bt(e, t = () => {
|
|
|
715
715
|
}
|
|
716
716
|
if (!a || typeof a != "object") continue;
|
|
717
717
|
const i = a;
|
|
718
|
-
if (!
|
|
718
|
+
if (!_e.has(i.type)) {
|
|
719
719
|
t("unknown block type " + String(i.type));
|
|
720
720
|
continue;
|
|
721
721
|
}
|
|
@@ -750,7 +750,7 @@ function Bt(e, t = () => {
|
|
|
750
750
|
break;
|
|
751
751
|
}
|
|
752
752
|
case "code": {
|
|
753
|
-
const o =
|
|
753
|
+
const o = Ne(i.text);
|
|
754
754
|
if (!o) {
|
|
755
755
|
t("a code block without text");
|
|
756
756
|
continue;
|
|
@@ -785,8 +785,8 @@ function Bt(e, t = () => {
|
|
|
785
785
|
case "table": {
|
|
786
786
|
const o = Array.isArray(i.columns) ? i.columns : [], s = [];
|
|
787
787
|
for (const c of o) {
|
|
788
|
-
if (s.length >=
|
|
789
|
-
t("more than " +
|
|
788
|
+
if (s.length >= U) {
|
|
789
|
+
t("more than " + U + " table columns");
|
|
790
790
|
break;
|
|
791
791
|
}
|
|
792
792
|
const h = u(c?.label, M), _ = c?.align === "right" ? "right" : void 0;
|
|
@@ -798,13 +798,13 @@ function Bt(e, t = () => {
|
|
|
798
798
|
}
|
|
799
799
|
const l = Array.isArray(i.rows) ? i.rows : [], p = [];
|
|
800
800
|
for (const c of l) {
|
|
801
|
-
if (p.length >=
|
|
802
|
-
t("more than " +
|
|
801
|
+
if (p.length >= P) {
|
|
802
|
+
t("more than " + P + " table rows");
|
|
803
803
|
break;
|
|
804
804
|
}
|
|
805
805
|
const h = Array.isArray(c) ? c : [];
|
|
806
806
|
p.push(
|
|
807
|
-
s.map((_,
|
|
807
|
+
s.map((_, oe) => u(h[oe], M))
|
|
808
808
|
);
|
|
809
809
|
}
|
|
810
810
|
const d = u(i.caption, M);
|
|
@@ -848,7 +848,7 @@ function Bt(e, t = () => {
|
|
|
848
848
|
n.push({
|
|
849
849
|
...r,
|
|
850
850
|
type: "callout",
|
|
851
|
-
tone:
|
|
851
|
+
tone: ve(i.tone),
|
|
852
852
|
...s ? { title: s } : {},
|
|
853
853
|
text: o
|
|
854
854
|
});
|
|
@@ -858,10 +858,10 @@ function Bt(e, t = () => {
|
|
|
858
858
|
}
|
|
859
859
|
return n;
|
|
860
860
|
}
|
|
861
|
-
function
|
|
861
|
+
function Xt(e) {
|
|
862
862
|
return JSON.stringify(e).length;
|
|
863
863
|
}
|
|
864
|
-
function
|
|
864
|
+
function Wt(e) {
|
|
865
865
|
return {
|
|
866
866
|
blocks: e.length,
|
|
867
867
|
types: e.map((t) => t.type),
|
|
@@ -871,7 +871,7 @@ function Vt(e) {
|
|
|
871
871
|
function B(e) {
|
|
872
872
|
return e.replace(/\|/g, "\\|").replace(/\r?\n/g, " ").trim();
|
|
873
873
|
}
|
|
874
|
-
function
|
|
874
|
+
function H(e, t, n) {
|
|
875
875
|
const a = e.map((i, r) => n?.[r] === "right" ? "---:" : "---");
|
|
876
876
|
return [
|
|
877
877
|
`| ${e.map(B).join(" | ")} |`,
|
|
@@ -879,7 +879,7 @@ function j(e, t, n) {
|
|
|
879
879
|
...t.map((i) => `| ${i.map(B).join(" | ")} |`)
|
|
880
880
|
];
|
|
881
881
|
}
|
|
882
|
-
function
|
|
882
|
+
function xe(e) {
|
|
883
883
|
switch (e.type) {
|
|
884
884
|
case "heading":
|
|
885
885
|
return [`${"#".repeat(e.level)} ${e.text}`];
|
|
@@ -897,7 +897,7 @@ function Ne(e) {
|
|
|
897
897
|
return t.lead ? `${a} **${t.lead}** ${t.text}` : `${a} ${t.text}`;
|
|
898
898
|
});
|
|
899
899
|
case "table": {
|
|
900
|
-
const t =
|
|
900
|
+
const t = H(
|
|
901
901
|
e.columns.map((n) => n.label),
|
|
902
902
|
e.rows,
|
|
903
903
|
e.columns.map((n) => n.align ?? "left")
|
|
@@ -905,7 +905,7 @@ function Ne(e) {
|
|
|
905
905
|
return e.caption ? [...t, "", `*${e.caption}*`] : t;
|
|
906
906
|
}
|
|
907
907
|
case "kpi":
|
|
908
|
-
return
|
|
908
|
+
return H(
|
|
909
909
|
e.items.map((t) => t.value),
|
|
910
910
|
[e.items.map((t) => t.label)]
|
|
911
911
|
);
|
|
@@ -913,11 +913,11 @@ function Ne(e) {
|
|
|
913
913
|
return (e.title ? `**${e.title}** ${e.text}` : e.text).split(/\r?\n/).map((n) => `> ${n}`);
|
|
914
914
|
}
|
|
915
915
|
}
|
|
916
|
-
function
|
|
916
|
+
function zt(e, t) {
|
|
917
917
|
const n = [], a = e.some((i) => i.type === "heading" && i.level === 1);
|
|
918
918
|
t && !a && n.push(`# ${t}`);
|
|
919
919
|
for (const i of e) {
|
|
920
|
-
const r =
|
|
920
|
+
const r = xe(i);
|
|
921
921
|
r.length > 0 && n.push(r.join(`
|
|
922
922
|
`));
|
|
923
923
|
}
|
|
@@ -927,25 +927,25 @@ function Ht(e, t) {
|
|
|
927
927
|
`;
|
|
928
928
|
}
|
|
929
929
|
const ee = (e) => `user:${e}`, te = (e) => `team:${e}`;
|
|
930
|
-
function
|
|
930
|
+
function Yt(e) {
|
|
931
931
|
const t = /* @__PURE__ */ new Set();
|
|
932
932
|
for (const n of e ?? [])
|
|
933
933
|
n?.id && (n.kind === "user" && t.add(ee(n.id)), n.kind === "team" && t.add(te(n.id)));
|
|
934
934
|
return [...t].sort();
|
|
935
935
|
}
|
|
936
|
-
function
|
|
936
|
+
function qt(e, t) {
|
|
937
937
|
return [ee(e), ...t.map(te)];
|
|
938
938
|
}
|
|
939
|
-
function
|
|
939
|
+
function Jt(e) {
|
|
940
940
|
const t = /* @__PURE__ */ new Set();
|
|
941
941
|
for (const n of e ?? [])
|
|
942
942
|
n?.kind && t.add(n.kind);
|
|
943
943
|
return [...t];
|
|
944
944
|
}
|
|
945
|
-
function
|
|
945
|
+
function Qt(e) {
|
|
946
946
|
return (e.startsWith("tool:") ? e.slice(5) : e).replace(/__/g, " · ").replace(/\./g, " · ").replace(/_/g, " ");
|
|
947
947
|
}
|
|
948
|
-
const
|
|
948
|
+
const Zt = [
|
|
949
949
|
{ name: "text", type: "string" },
|
|
950
950
|
{ name: "subject", type: "string" },
|
|
951
951
|
{ name: "from", type: "string" },
|
|
@@ -968,7 +968,7 @@ const Yt = [
|
|
|
968
968
|
// een nieuw adres) — een stap die hierop leunt hoort dus een `condition` te hebben.
|
|
969
969
|
{ name: "contactId", type: "string" },
|
|
970
970
|
{ name: "companyId", type: "string" }
|
|
971
|
-
],
|
|
971
|
+
], en = {
|
|
972
972
|
topics: [
|
|
973
973
|
{ name: "topic", type: "string" },
|
|
974
974
|
{ name: "confidence", type: "number" }
|
|
@@ -979,7 +979,7 @@ const Yt = [
|
|
|
979
979
|
],
|
|
980
980
|
extract: []
|
|
981
981
|
};
|
|
982
|
-
function
|
|
982
|
+
function ke(e) {
|
|
983
983
|
switch (e.kind) {
|
|
984
984
|
case "user":
|
|
985
985
|
return `user:${e.userId}`;
|
|
@@ -989,7 +989,7 @@ function ve(e) {
|
|
|
989
989
|
return "org";
|
|
990
990
|
}
|
|
991
991
|
}
|
|
992
|
-
function
|
|
992
|
+
function tn(e) {
|
|
993
993
|
if (typeof e != "string") return;
|
|
994
994
|
const t = e.trim();
|
|
995
995
|
if (t === "org") return { kind: "org" };
|
|
@@ -1001,10 +1001,10 @@ function Jt(e) {
|
|
|
1001
1001
|
if (a === "team") return { kind: "team", teamId: i };
|
|
1002
1002
|
}
|
|
1003
1003
|
}
|
|
1004
|
-
function
|
|
1005
|
-
return
|
|
1004
|
+
function Le(e) {
|
|
1005
|
+
return ke(e);
|
|
1006
1006
|
}
|
|
1007
|
-
function
|
|
1007
|
+
function nn(e) {
|
|
1008
1008
|
switch (e.kind) {
|
|
1009
1009
|
case "personal":
|
|
1010
1010
|
return { kind: "user", userId: e.userId };
|
|
@@ -1014,42 +1014,76 @@ function Qt(e) {
|
|
|
1014
1014
|
return { kind: "org" };
|
|
1015
1015
|
}
|
|
1016
1016
|
}
|
|
1017
|
-
function
|
|
1018
|
-
return
|
|
1017
|
+
function an(e) {
|
|
1018
|
+
return Le(e);
|
|
1019
1019
|
}
|
|
1020
|
-
const
|
|
1021
|
-
function
|
|
1022
|
-
return
|
|
1020
|
+
const Oe = ["done", "escalated", "failed", "timed_out", "stopped"], $e = ["awaiting_approval", "awaiting_reply"];
|
|
1021
|
+
function Re(e) {
|
|
1022
|
+
return Oe.includes(e);
|
|
1023
1023
|
}
|
|
1024
|
-
function
|
|
1025
|
-
return
|
|
1024
|
+
function rn(e) {
|
|
1025
|
+
return Re(e);
|
|
1026
1026
|
}
|
|
1027
|
-
function
|
|
1028
|
-
return
|
|
1027
|
+
function on(e) {
|
|
1028
|
+
return $e.includes(e);
|
|
1029
1029
|
}
|
|
1030
|
-
function
|
|
1030
|
+
function sn(e, t) {
|
|
1031
1031
|
const n = e.labels ?? [];
|
|
1032
1032
|
return n.find((a) => a.locale === t)?.label ?? n[0]?.label ?? e.url;
|
|
1033
1033
|
}
|
|
1034
|
-
function
|
|
1034
|
+
function ln(e, t, n) {
|
|
1035
1035
|
const a = e.translations ?? [];
|
|
1036
1036
|
return a.find((i) => i.locale === t) ?? (n ? a.find((i) => i.locale === n) : void 0) ?? { locale: t };
|
|
1037
1037
|
}
|
|
1038
|
-
const
|
|
1039
|
-
function
|
|
1040
|
-
|
|
1038
|
+
const ne = 3;
|
|
1039
|
+
function we(e, t) {
|
|
1040
|
+
const n = /* @__PURE__ */ new Set();
|
|
1041
|
+
let a = 1, i = t.get(e)?.parentId;
|
|
1042
|
+
for (; i; ) {
|
|
1043
|
+
if (n.has(i) || (n.add(i), a++, a > ne + 1)) return 1 / 0;
|
|
1044
|
+
i = t.get(i)?.parentId;
|
|
1045
|
+
}
|
|
1046
|
+
return a;
|
|
1041
1047
|
}
|
|
1042
|
-
function
|
|
1048
|
+
function cn(e, t, n) {
|
|
1049
|
+
if (!e) return !0;
|
|
1050
|
+
if (e === t) return !1;
|
|
1051
|
+
const a = new Map(n.map((o) => [o.id, o]));
|
|
1052
|
+
if (!a.has(e) || t && De(e, t, a)) return !1;
|
|
1053
|
+
const i = we(e, a), r = t ? ie(t, n) : 1;
|
|
1054
|
+
return i + r <= ne;
|
|
1055
|
+
}
|
|
1056
|
+
function De(e, t, n) {
|
|
1057
|
+
const a = /* @__PURE__ */ new Set();
|
|
1058
|
+
let i = n.get(e)?.parentId;
|
|
1059
|
+
for (; i; ) {
|
|
1060
|
+
if (i === t) return !0;
|
|
1061
|
+
if (a.has(i)) return !1;
|
|
1062
|
+
a.add(i), i = n.get(i)?.parentId;
|
|
1063
|
+
}
|
|
1064
|
+
return !1;
|
|
1065
|
+
}
|
|
1066
|
+
function ie(e, t, n = /* @__PURE__ */ new Set()) {
|
|
1067
|
+
if (n.has(e)) return 1;
|
|
1068
|
+
n.add(e);
|
|
1069
|
+
const a = t.filter((i) => i.parentId === e);
|
|
1070
|
+
return a.length ? 1 + Math.max(...a.map((i) => ie(i.id, t, n))) : 1;
|
|
1071
|
+
}
|
|
1072
|
+
const Pe = "en";
|
|
1073
|
+
function Ue(e) {
|
|
1074
|
+
return e.defaultLocale || e.locale || Pe;
|
|
1075
|
+
}
|
|
1076
|
+
function un(e) {
|
|
1043
1077
|
const t = /* @__PURE__ */ new Set(), n = [];
|
|
1044
|
-
for (const a of [
|
|
1078
|
+
for (const a of [Ue(e), ...e.locales ?? []])
|
|
1045
1079
|
!a || t.has(a) || (t.add(a), n.push(a));
|
|
1046
1080
|
return n;
|
|
1047
1081
|
}
|
|
1048
|
-
function
|
|
1082
|
+
function pn(e, t, n) {
|
|
1049
1083
|
const a = e.translations ?? [];
|
|
1050
1084
|
return a.find((i) => i.locale === t)?.name ?? (n ? a.find((i) => i.locale === n)?.name : void 0) ?? e.name;
|
|
1051
1085
|
}
|
|
1052
|
-
const
|
|
1086
|
+
const ae = [
|
|
1053
1087
|
{
|
|
1054
1088
|
id: "openai",
|
|
1055
1089
|
attachmentKinds: ["image", "pdf"],
|
|
@@ -1141,53 +1175,53 @@ const ne = [
|
|
|
1141
1175
|
}
|
|
1142
1176
|
];
|
|
1143
1177
|
function E(e) {
|
|
1144
|
-
return
|
|
1178
|
+
return ae.find((t) => t.id === e);
|
|
1145
1179
|
}
|
|
1146
|
-
function
|
|
1180
|
+
function dn(e) {
|
|
1147
1181
|
return E(e)?.label ?? e;
|
|
1148
1182
|
}
|
|
1149
|
-
function
|
|
1183
|
+
function fn(e, t = "gpt-5-mini") {
|
|
1150
1184
|
return E(e)?.defaultModel ?? t;
|
|
1151
1185
|
}
|
|
1152
|
-
function
|
|
1153
|
-
return
|
|
1186
|
+
function mn(e) {
|
|
1187
|
+
return ae.filter((t) => t.capabilities.includes(e));
|
|
1154
1188
|
}
|
|
1155
|
-
function
|
|
1189
|
+
function gn(e) {
|
|
1156
1190
|
const t = E(e);
|
|
1157
1191
|
return !!t && !t.baseUrl;
|
|
1158
1192
|
}
|
|
1159
|
-
function
|
|
1193
|
+
function hn(e, t) {
|
|
1160
1194
|
return t === "text" ? !0 : E(e)?.attachmentKinds?.includes(t) === !0;
|
|
1161
1195
|
}
|
|
1162
|
-
const
|
|
1163
|
-
function
|
|
1196
|
+
const yn = /* @__PURE__ */ new Set(["mail", "message"]);
|
|
1197
|
+
function Ke(e, t) {
|
|
1164
1198
|
const n = e.settings?.signatures?.[t];
|
|
1165
1199
|
return !n || !n.enabled || !n.body || n.body.trim() === "" ? null : n;
|
|
1166
1200
|
}
|
|
1167
|
-
function
|
|
1201
|
+
function bn(e, t, n, a = "html") {
|
|
1168
1202
|
if (!e) return n;
|
|
1169
|
-
const i =
|
|
1203
|
+
const i = Ke(e, t);
|
|
1170
1204
|
return i ? `${n}${a === "text" ? `
|
|
1171
1205
|
|
|
1172
1206
|
` : t === "mail" ? "<br><br>-- <br>" : "<br><br>"}${i.body}` : n;
|
|
1173
1207
|
}
|
|
1174
|
-
function
|
|
1208
|
+
function An(e) {
|
|
1175
1209
|
return e.endpoints ?? [];
|
|
1176
1210
|
}
|
|
1177
|
-
const
|
|
1211
|
+
const En = (e) => !!e.assignedUserId || !!e.assignedInboxId, _n = (e) => e.status === "closed", Tn = (e) => ({
|
|
1178
1212
|
urgent: 10,
|
|
1179
1213
|
high: 5,
|
|
1180
1214
|
normal: 2,
|
|
1181
1215
|
low: 1
|
|
1182
|
-
})[e.priority] || 0,
|
|
1183
|
-
function
|
|
1216
|
+
})[e.priority] || 0, In = (e, t = 30) => e.title?.length <= t ? e.title : `${e.title.substring(0, t)}...`;
|
|
1217
|
+
function Sn(e, t) {
|
|
1184
1218
|
return e.lastActivityAt ? !(e.seenBy ?? []).includes(t) : !1;
|
|
1185
1219
|
}
|
|
1186
|
-
const
|
|
1187
|
-
function
|
|
1220
|
+
const Mn = 2e3, Cn = 500, Nn = 12e3, vn = 4e3, Ge = ["contact", "company"];
|
|
1221
|
+
function xn(e) {
|
|
1188
1222
|
if (!e) return !1;
|
|
1189
1223
|
const t = e.slice(0, e.indexOf(":"));
|
|
1190
|
-
return
|
|
1224
|
+
return Ge.includes(t);
|
|
1191
1225
|
}
|
|
1192
1226
|
const v = {
|
|
1193
1227
|
// The lower bounds are deliberately generous: service ranges (0800/0900) are
|
|
@@ -1212,19 +1246,19 @@ const v = {
|
|
|
1212
1246
|
PL: { callingCode: "48", nsnMin: 9, nsnMax: 9 },
|
|
1213
1247
|
US: { callingCode: "1", nsnMin: 10, nsnMax: 10 },
|
|
1214
1248
|
CA: { callingCode: "1", nsnMin: 10, nsnMax: 10 }
|
|
1215
|
-
},
|
|
1249
|
+
}, Be = "NL", He = 15, je = 8, Ve = Array.from(
|
|
1216
1250
|
new Set(Object.values(v).map((e) => e.callingCode))
|
|
1217
1251
|
).sort((e, t) => t.length - e.length);
|
|
1218
|
-
function
|
|
1252
|
+
function j(e) {
|
|
1219
1253
|
if (e)
|
|
1220
1254
|
return v[e.trim().toUpperCase()];
|
|
1221
1255
|
}
|
|
1222
1256
|
function A(e, t) {
|
|
1223
1257
|
return e.length >= t.nsnMin && e.length <= t.nsnMax;
|
|
1224
1258
|
}
|
|
1225
|
-
function
|
|
1226
|
-
if (e.length >
|
|
1227
|
-
for (const t of
|
|
1259
|
+
function V(e) {
|
|
1260
|
+
if (e.length > He) return null;
|
|
1261
|
+
for (const t of Ve) {
|
|
1228
1262
|
if (!e.startsWith(t)) continue;
|
|
1229
1263
|
const n = e.slice(t.length);
|
|
1230
1264
|
for (const a of Object.values(v)) {
|
|
@@ -1234,16 +1268,16 @@ function H(e) {
|
|
|
1234
1268
|
}
|
|
1235
1269
|
return null;
|
|
1236
1270
|
}
|
|
1237
|
-
return e.length <
|
|
1271
|
+
return e.length < je ? null : `+${e}`;
|
|
1238
1272
|
}
|
|
1239
|
-
function
|
|
1273
|
+
function Fe(e) {
|
|
1240
1274
|
let t = e.trim();
|
|
1241
1275
|
const n = t.match(/^(sips?|tel|whatsapp):/i);
|
|
1242
1276
|
n && (t = t.slice(n[0].length));
|
|
1243
1277
|
const a = t.indexOf("@");
|
|
1244
1278
|
return a >= 0 && (t = t.slice(0, a)), t.trim();
|
|
1245
1279
|
}
|
|
1246
|
-
function
|
|
1280
|
+
function kn(e) {
|
|
1247
1281
|
if (!e) return !1;
|
|
1248
1282
|
const t = e.indexOf("@");
|
|
1249
1283
|
if (t <= 0) return !1;
|
|
@@ -1252,13 +1286,13 @@ function Mn(e) {
|
|
|
1252
1286
|
}
|
|
1253
1287
|
function F(e, t) {
|
|
1254
1288
|
if (!e) return null;
|
|
1255
|
-
const n =
|
|
1289
|
+
const n = Fe(e);
|
|
1256
1290
|
if (!n) return null;
|
|
1257
1291
|
const a = n.startsWith("+"), i = n.replace(/\D/g, "");
|
|
1258
1292
|
if (!i) return null;
|
|
1259
|
-
if (a) return
|
|
1260
|
-
if (i.startsWith("00")) return
|
|
1261
|
-
const r =
|
|
1293
|
+
if (a) return V(i);
|
|
1294
|
+
if (i.startsWith("00")) return V(i.slice(2));
|
|
1295
|
+
const r = j(t) ?? j(Be);
|
|
1262
1296
|
if (!r) return null;
|
|
1263
1297
|
const o = r.trunkPrefix;
|
|
1264
1298
|
if (o && i.startsWith(o)) {
|
|
@@ -1271,22 +1305,22 @@ function F(e, t) {
|
|
|
1271
1305
|
}
|
|
1272
1306
|
return !o && A(i, r) ? `+${r.callingCode}${i}` : null;
|
|
1273
1307
|
}
|
|
1274
|
-
function
|
|
1308
|
+
function Ln(e, t = 9) {
|
|
1275
1309
|
const n = (e ?? "").replace(/\D/g, "");
|
|
1276
1310
|
return n.length < t ? null : n.slice(-t);
|
|
1277
1311
|
}
|
|
1278
|
-
function
|
|
1312
|
+
function re(e) {
|
|
1279
1313
|
if (!e) return null;
|
|
1280
1314
|
const t = e.trim().toLowerCase(), n = t.lastIndexOf("@");
|
|
1281
1315
|
if (n <= 0 || n === t.length - 1) return null;
|
|
1282
1316
|
const a = t.slice(0, n).split("+")[0], i = t.slice(n + 1);
|
|
1283
1317
|
return !a || !i.includes(".") ? null : `${a}@${i}`;
|
|
1284
1318
|
}
|
|
1285
|
-
function
|
|
1286
|
-
const t =
|
|
1319
|
+
function On(e) {
|
|
1320
|
+
const t = re(e);
|
|
1287
1321
|
return t ? t.slice(t.lastIndexOf("@") + 1) : null;
|
|
1288
1322
|
}
|
|
1289
|
-
const
|
|
1323
|
+
const Xe = /* @__PURE__ */ new Set([
|
|
1290
1324
|
"co.uk",
|
|
1291
1325
|
"org.uk",
|
|
1292
1326
|
"gov.uk",
|
|
@@ -1296,14 +1330,14 @@ const je = /* @__PURE__ */ new Set([
|
|
|
1296
1330
|
"com.br",
|
|
1297
1331
|
"co.za"
|
|
1298
1332
|
]);
|
|
1299
|
-
function
|
|
1333
|
+
function We(e) {
|
|
1300
1334
|
if (!e) return null;
|
|
1301
1335
|
const t = e.trim().toLowerCase().replace(/\.$/, "").split(".").filter(Boolean);
|
|
1302
1336
|
if (t.length < 2) return null;
|
|
1303
1337
|
const n = t.slice(-2).join(".");
|
|
1304
|
-
return
|
|
1338
|
+
return Xe.has(n) && t.length >= 3 ? t.slice(-3).join(".") : n;
|
|
1305
1339
|
}
|
|
1306
|
-
const
|
|
1340
|
+
const ze = /* @__PURE__ */ new Set([
|
|
1307
1341
|
"gmail.com",
|
|
1308
1342
|
"googlemail.com",
|
|
1309
1343
|
"outlook.com",
|
|
@@ -1348,16 +1382,16 @@ const He = /* @__PURE__ */ new Set([
|
|
|
1348
1382
|
"proximus.be",
|
|
1349
1383
|
"scarlet.be"
|
|
1350
1384
|
]);
|
|
1351
|
-
function
|
|
1352
|
-
const t =
|
|
1353
|
-
return t ?
|
|
1385
|
+
function $n(e) {
|
|
1386
|
+
const t = We(e);
|
|
1387
|
+
return t ? ze.has(t) : !1;
|
|
1354
1388
|
}
|
|
1355
|
-
function
|
|
1389
|
+
function Rn(e) {
|
|
1356
1390
|
if (!e) return !1;
|
|
1357
1391
|
const t = e.trim().toLowerCase();
|
|
1358
1392
|
return t === "tel" || t === "sms" || t === "whatsapp" || t === "fax";
|
|
1359
1393
|
}
|
|
1360
|
-
function
|
|
1394
|
+
function wn(e, t, n) {
|
|
1361
1395
|
if (!e || !t) return null;
|
|
1362
1396
|
const a = e.trim().toLowerCase();
|
|
1363
1397
|
if (a === "tel" || a === "sms" || a === "whatsapp") {
|
|
@@ -1369,23 +1403,23 @@ function kn(e, t, n) {
|
|
|
1369
1403
|
return r ? `fax:${r}` : null;
|
|
1370
1404
|
}
|
|
1371
1405
|
if (a === "mailto" || a === "email") {
|
|
1372
|
-
const r =
|
|
1406
|
+
const r = re(t);
|
|
1373
1407
|
return r ? `mailto:${r}` : null;
|
|
1374
1408
|
}
|
|
1375
1409
|
const i = t.trim().toLowerCase();
|
|
1376
1410
|
return i ? `${a}:${i}` : null;
|
|
1377
1411
|
}
|
|
1378
|
-
const
|
|
1379
|
-
function
|
|
1412
|
+
const Ye = /(\*\*|__)(?=\S)([\s\S]*?\S)\1/g, qe = /(\*|_)(?=\S)([^*_\n]*?\S)\1/g;
|
|
1413
|
+
function Dn(e) {
|
|
1380
1414
|
if (typeof e != "string" || !e) return "";
|
|
1381
1415
|
let t = e;
|
|
1382
1416
|
return t = t.replace(/```[a-z]*\n?/gi, "").replace(/~~~[a-z]*\n?/gi, ""), t = t.replace(/!\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1"), t = t.replace(/\[([^\]]*)\]\[[^\]]*\]/g, "$1"), t = t.replace(/<((?:https?|mailto):[^>\s]+)>/gi, "$1"), t = t.split(`
|
|
1383
1417
|
`).map(
|
|
1384
1418
|
(n) => n.replace(/^\s{0,3}#{1,6}\s+/, "").replace(/^\s{0,3}>\s?/, "").replace(/^\s*[-*+]\s+/, "").replace(/^\s*\d+[.)]\s+/, "").replace(/^\s*(?:[-*_]\s*){3,}$/, "")
|
|
1385
1419
|
).join(`
|
|
1386
|
-
`), t = t.replace(
|
|
1420
|
+
`), t = t.replace(Ye, "$2"), t = t.replace(qe, "$2"), t = t.replace(/~~(?=\S)([\s\S]*?\S)~~/g, "$1"), t = t.replace(/`([^`\n]+)`/g, "$1"), t.replace(/\s+/g, " ").trim();
|
|
1387
1421
|
}
|
|
1388
|
-
const
|
|
1422
|
+
const Je = [
|
|
1389
1423
|
/<blockquote/i,
|
|
1390
1424
|
/class="?gmail_quote/i,
|
|
1391
1425
|
// Gmail quote container
|
|
@@ -1398,17 +1432,17 @@ const Xe = [
|
|
|
1398
1432
|
// Outlook underscore separator before "From:"
|
|
1399
1433
|
/\bOn\b[\s\S]{0,200}?\bwrote:/i
|
|
1400
1434
|
// Gmail "On <date> <name> wrote:"
|
|
1401
|
-
],
|
|
1402
|
-
function
|
|
1435
|
+
], X = /^\s*(?:>+\s*)?(?:from|van|sent|verzonden|to|aan|cc|subject|onderwerp|date|datum)\s*:/i, Qe = /^\s*(?:on|op)\b.{0,200}?\b(?:wrote|schreef|geschreven)\s*:?\s*$/i;
|
|
1436
|
+
function Ze(e) {
|
|
1403
1437
|
const t = e.split(`
|
|
1404
1438
|
`);
|
|
1405
1439
|
for (let n = 0; n < t.length; n++)
|
|
1406
|
-
if (
|
|
1440
|
+
if (Qe.test(t[n]) || X.test(t[n]) && t.slice(n + 1, n + 4).some((a) => X.test(a)))
|
|
1407
1441
|
return t.slice(0, n).join(`
|
|
1408
1442
|
`).trim();
|
|
1409
1443
|
return e;
|
|
1410
1444
|
}
|
|
1411
|
-
function
|
|
1445
|
+
function W(e) {
|
|
1412
1446
|
let t = e;
|
|
1413
1447
|
return t = t.replace(/<(script|style)[\s\S]*?<\/\1>/gi, ""), t = t.replace(/<br\s*\/?>/gi, `
|
|
1414
1448
|
`), t = t.replace(/<\/(p|h[1-6]|ul|ol|table|blockquote)>/gi, `
|
|
@@ -1428,26 +1462,26 @@ function q(e) {
|
|
|
1428
1462
|
|
|
1429
1463
|
`).trim();
|
|
1430
1464
|
}
|
|
1431
|
-
function
|
|
1465
|
+
function Pn(e) {
|
|
1432
1466
|
if (typeof e != "string" || !e) return "";
|
|
1433
1467
|
let t = e.length;
|
|
1434
|
-
for (const r of
|
|
1468
|
+
for (const r of Je) {
|
|
1435
1469
|
const o = e.search(r);
|
|
1436
1470
|
o >= 0 && o < t && (t = o);
|
|
1437
1471
|
}
|
|
1438
1472
|
const n = e.slice(0, t);
|
|
1439
|
-
let a = q(Y(
|
|
1440
|
-
return a || (a = q(Y(
|
|
1473
|
+
let a = q(Y(W(n)));
|
|
1474
|
+
return a || (a = q(Y(W(e)))), Ze(a) || a;
|
|
1441
1475
|
}
|
|
1442
|
-
const
|
|
1443
|
-
function
|
|
1444
|
-
return !!(e &&
|
|
1476
|
+
const et = /(^|[._+-])(no-?reply|noreply|donotreply|do-not-reply|newsletter|nieuwsbrief|mailer|mailing|notifications?|bounce|postmaster|marketing)@/i, tt = /\b(unsubscribe|afmelden|uitschrijven|opt[\s-]?out|manage (your )?preferences|geen (e-?mails?|nieuwsbrief|berichten) meer)\b/i;
|
|
1477
|
+
function Un(e, t) {
|
|
1478
|
+
return !!(e && et.test(e) || t && tt.test(t));
|
|
1445
1479
|
}
|
|
1446
|
-
const
|
|
1447
|
-
function
|
|
1448
|
-
return e >=
|
|
1480
|
+
const nt = 3, it = 600;
|
|
1481
|
+
function Kn(e, t) {
|
|
1482
|
+
return e >= nt || t >= it;
|
|
1449
1483
|
}
|
|
1450
|
-
const
|
|
1484
|
+
const at = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "image/gif", "image/webp"]), rt = /* @__PURE__ */ new Set([
|
|
1451
1485
|
"text/plain",
|
|
1452
1486
|
"text/markdown",
|
|
1453
1487
|
"text/csv",
|
|
@@ -1456,29 +1490,29 @@ const et = /* @__PURE__ */ new Set(["image/png", "image/jpeg", "image/jpg", "ima
|
|
|
1456
1490
|
"application/xml",
|
|
1457
1491
|
"text/xml"
|
|
1458
1492
|
]);
|
|
1459
|
-
function
|
|
1493
|
+
function ot(e) {
|
|
1460
1494
|
const t = (e ?? "").trim().toLowerCase().split(";")[0];
|
|
1461
|
-
return t ?
|
|
1495
|
+
return t ? at.has(t) ? "image" : t === "application/pdf" ? "pdf" : rt.has(t) ? "text" : t.startsWith("audio/") ? "audio" : "unsupported" : "unsupported";
|
|
1462
1496
|
}
|
|
1463
|
-
const g = 1024 * 1024,
|
|
1497
|
+
const g = 1024 * 1024, st = {
|
|
1464
1498
|
image: 5 * g,
|
|
1465
1499
|
pdf: 20 * g,
|
|
1466
1500
|
text: 1 * g,
|
|
1467
1501
|
audio: 20 * g
|
|
1468
|
-
},
|
|
1469
|
-
function
|
|
1470
|
-
const n =
|
|
1471
|
-
return n === "unsupported" ? "unsupported" : t >
|
|
1502
|
+
}, Gn = 25 * g, Bn = 5;
|
|
1503
|
+
function Hn(e, t) {
|
|
1504
|
+
const n = ot(e);
|
|
1505
|
+
return n === "unsupported" ? "unsupported" : t > st[n] ? "too-large" : null;
|
|
1472
1506
|
}
|
|
1473
|
-
function
|
|
1474
|
-
const n = new Set(e.disabledIntents ?? []), a = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) =>
|
|
1507
|
+
function lt(e, t) {
|
|
1508
|
+
const n = new Set(e.disabledIntents ?? []), a = e.intentOverrides ?? {}, i = t.intents.filter((o) => !n.has(o.intent)).map((o) => ut(o, a[o.intent]));
|
|
1475
1509
|
if (!e.extraIntents || e.extraIntents.length === 0) return i;
|
|
1476
1510
|
const r = new Set(i.map((o) => o.intent));
|
|
1477
1511
|
for (const o of e.extraIntents)
|
|
1478
1512
|
r.has(o.intent) || (i.push(o), r.add(o.intent));
|
|
1479
1513
|
return i;
|
|
1480
1514
|
}
|
|
1481
|
-
function
|
|
1515
|
+
function ct(e, t) {
|
|
1482
1516
|
const n = {};
|
|
1483
1517
|
for (const a of e.intents) {
|
|
1484
1518
|
if (!a.togglable) continue;
|
|
@@ -1487,46 +1521,46 @@ function rt(e, t) {
|
|
|
1487
1521
|
}
|
|
1488
1522
|
return n;
|
|
1489
1523
|
}
|
|
1490
|
-
function
|
|
1491
|
-
const n =
|
|
1524
|
+
function jn(e, t) {
|
|
1525
|
+
const n = ct(e, t);
|
|
1492
1526
|
return Object.entries(n).filter(([, a]) => !a).map(([a]) => a);
|
|
1493
1527
|
}
|
|
1494
|
-
function
|
|
1528
|
+
function ut(e, t) {
|
|
1495
1529
|
return t ? {
|
|
1496
1530
|
intent: t.intent ?? e.intent,
|
|
1497
1531
|
targetSchemes: t.targetSchemes ?? e.targetSchemes,
|
|
1498
1532
|
transport: t.transport ?? e.transport
|
|
1499
1533
|
} : e;
|
|
1500
1534
|
}
|
|
1501
|
-
function
|
|
1535
|
+
function Vn(e, t) {
|
|
1502
1536
|
const n = [];
|
|
1503
1537
|
for (const a of e) {
|
|
1504
1538
|
if (!a.enabled) continue;
|
|
1505
1539
|
const i = t[a.providerId];
|
|
1506
1540
|
if (i)
|
|
1507
|
-
for (const r of
|
|
1541
|
+
for (const r of lt(a, i))
|
|
1508
1542
|
n.push({ channel: a, description: i, capability: r });
|
|
1509
1543
|
}
|
|
1510
1544
|
return n;
|
|
1511
1545
|
}
|
|
1512
|
-
function
|
|
1546
|
+
function Fn(e, t) {
|
|
1513
1547
|
return t.filter((n) => n.capability.intent === e);
|
|
1514
1548
|
}
|
|
1515
|
-
function
|
|
1549
|
+
function pt(e, t) {
|
|
1516
1550
|
return t.filter((n) => n.capability.targetSchemes.includes(e));
|
|
1517
1551
|
}
|
|
1518
|
-
function
|
|
1519
|
-
return
|
|
1552
|
+
function Xn(e, t) {
|
|
1553
|
+
return pt(e.scheme, t);
|
|
1520
1554
|
}
|
|
1521
|
-
function
|
|
1555
|
+
function Wn(e, t, n) {
|
|
1522
1556
|
const a = [];
|
|
1523
1557
|
for (const i of e)
|
|
1524
1558
|
for (const r of n)
|
|
1525
1559
|
r.capability.intent === t && r.capability.targetSchemes.includes(i.scheme) && a.push({ channelIntent: r, endpoint: i });
|
|
1526
1560
|
return a;
|
|
1527
1561
|
}
|
|
1528
|
-
var
|
|
1529
|
-
const
|
|
1562
|
+
var dt = /* @__PURE__ */ ((e) => (e.MAILTO = "mailto", e.SIP = "sip", e.TEL = "tel", e.WEBHOOK = "webhook", e.USERNAME = "username", e.ID = "id", e.CUSTOM = "custom", e.URL = "url", e.TELEGRAM = "telegram", e.WHATSAPP = "whatsapp", e.MESSENGER = "messenger", e.INSTAGRAM = "instagram", e.VIBER = "viber", e.SMS = "sms", e.FAX = "fax", e.TEAMS = "teams", e.CALENDAR = "calendar", e))(dt || {});
|
|
1563
|
+
const ft = {
|
|
1530
1564
|
mailto: "mail",
|
|
1531
1565
|
sip: "tel",
|
|
1532
1566
|
tel: "tel",
|
|
@@ -1548,10 +1582,10 @@ const ct = {
|
|
|
1548
1582
|
id: "note",
|
|
1549
1583
|
custom: "note"
|
|
1550
1584
|
};
|
|
1551
|
-
function
|
|
1552
|
-
return e ?
|
|
1585
|
+
function zn(e) {
|
|
1586
|
+
return e ? ft[e] ?? "note" : "note";
|
|
1553
1587
|
}
|
|
1554
|
-
const
|
|
1588
|
+
const Yn = "message_window", qn = "message_templates", Jn = {
|
|
1555
1589
|
// E-mail
|
|
1556
1590
|
FROM: "from",
|
|
1557
1591
|
TO: "to",
|
|
@@ -1568,23 +1602,23 @@ const Hn = "message_window", Fn = "message_templates", Wn = {
|
|
|
1568
1602
|
// Voice/conference
|
|
1569
1603
|
HOST: "host",
|
|
1570
1604
|
PARTICIPANT: "participant"
|
|
1571
|
-
},
|
|
1572
|
-
function
|
|
1605
|
+
}, Qn = (e, t) => ({ intent: e, ...t }), Zn = "folder_management", ei = "remote_search", ti = { ok: !1, code: "UNSUPPORTED", message: "Provider does not support this op" }, mt = "auth";
|
|
1606
|
+
function gt(e) {
|
|
1573
1607
|
const t = typeof e == "string" ? e.match(/apps\/([^/?#]+)/) : null;
|
|
1574
1608
|
return t ? t[1] : null;
|
|
1575
1609
|
}
|
|
1576
|
-
function
|
|
1577
|
-
const t =
|
|
1578
|
-
return t ? t !==
|
|
1610
|
+
function ni(e) {
|
|
1611
|
+
const t = gt(e);
|
|
1612
|
+
return t ? t !== mt : typeof e == "string" && e.startsWith("/wake");
|
|
1579
1613
|
}
|
|
1580
|
-
function
|
|
1614
|
+
function ht(e) {
|
|
1581
1615
|
return e.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
1582
1616
|
}
|
|
1583
|
-
function
|
|
1584
|
-
const n = e.split("/").filter(Boolean).map((a) => a.startsWith(":") ? a.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" +
|
|
1617
|
+
function yt(e) {
|
|
1618
|
+
const n = e.split("/").filter(Boolean).map((a) => a.startsWith(":") ? a.endsWith("?") ? "(?:/[^/]+)?" : "/[^/]+" : "/" + ht(a)).join("");
|
|
1585
1619
|
return new RegExp(`^${n}\\/?$`);
|
|
1586
1620
|
}
|
|
1587
|
-
function
|
|
1621
|
+
function bt(e, t) {
|
|
1588
1622
|
const n = e.split("/").filter(Boolean), a = t.split("/").filter(Boolean), i = {};
|
|
1589
1623
|
return n.forEach((r, o) => {
|
|
1590
1624
|
if (r.startsWith(":")) {
|
|
@@ -1593,23 +1627,28 @@ function mt(e, t) {
|
|
|
1593
1627
|
}
|
|
1594
1628
|
}), i;
|
|
1595
1629
|
}
|
|
1596
|
-
function
|
|
1630
|
+
function At(e) {
|
|
1597
1631
|
return e.publicBasePath ?? `/apps/${e.name}`;
|
|
1598
1632
|
}
|
|
1599
|
-
function
|
|
1633
|
+
function ii(e) {
|
|
1600
1634
|
const t = [];
|
|
1601
1635
|
for (const n of e) {
|
|
1602
1636
|
if (!n?.name) continue;
|
|
1603
|
-
const a =
|
|
1637
|
+
const a = At(n);
|
|
1604
1638
|
for (const i of n.routes ?? []) {
|
|
1605
1639
|
if (!i.public) continue;
|
|
1606
1640
|
const r = i.path === "/" ? "" : i.path;
|
|
1607
|
-
t.push({
|
|
1641
|
+
t.push({
|
|
1642
|
+
appName: n.name,
|
|
1643
|
+
resource: i.resource,
|
|
1644
|
+
pattern: `${a}${r}`,
|
|
1645
|
+
props: i.props
|
|
1646
|
+
});
|
|
1608
1647
|
}
|
|
1609
1648
|
}
|
|
1610
1649
|
return t;
|
|
1611
1650
|
}
|
|
1612
|
-
function
|
|
1651
|
+
function Et(e, t) {
|
|
1613
1652
|
const n = e.split("/").filter(Boolean), a = t.split("/").filter(Boolean);
|
|
1614
1653
|
for (let i = 0; i < Math.min(n.length, a.length); i++) {
|
|
1615
1654
|
const r = n[i].startsWith(":"), o = a[i].startsWith(":");
|
|
@@ -1617,162 +1656,168 @@ function ht(e, t) {
|
|
|
1617
1656
|
}
|
|
1618
1657
|
return n.length > a.length;
|
|
1619
1658
|
}
|
|
1620
|
-
function
|
|
1659
|
+
function _t(e, t) {
|
|
1621
1660
|
if (typeof e != "string") return null;
|
|
1622
1661
|
let n = null;
|
|
1623
1662
|
for (const a of t)
|
|
1624
|
-
|
|
1625
|
-
return n ? { ...n, params:
|
|
1663
|
+
yt(a.pattern).test(e) && (!n || Et(a.pattern, n.pattern)) && (n = a);
|
|
1664
|
+
return n ? { ...n, params: { ...n.props, ...bt(n.pattern, e) } } : null;
|
|
1626
1665
|
}
|
|
1627
|
-
function
|
|
1628
|
-
return
|
|
1666
|
+
function ai(e, t) {
|
|
1667
|
+
return _t(e, t) !== null;
|
|
1629
1668
|
}
|
|
1630
|
-
const
|
|
1669
|
+
const ri = 9e4, oi = "installation-id";
|
|
1631
1670
|
export {
|
|
1632
1671
|
m as ACTIVITY_CATALOG,
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1672
|
+
st as AI_ATTACHMENT_LIMITS,
|
|
1673
|
+
Bn as AI_ATTACHMENT_MAX_PER_TURN,
|
|
1674
|
+
Gn as AI_ATTACHMENT_TURN_BUDGET,
|
|
1675
|
+
ae as AI_VENDORS,
|
|
1676
|
+
Te as ALLOWED_LINK_SCHEMES,
|
|
1638
1677
|
w as ARTIFACT_MAX_BLOCKS,
|
|
1639
|
-
|
|
1678
|
+
Vt as ARTIFACT_MAX_BODY_BYTES,
|
|
1640
1679
|
M as ARTIFACT_MAX_CELL_LEN,
|
|
1641
1680
|
K as ARTIFACT_MAX_KPI_ITEMS,
|
|
1642
1681
|
D as ARTIFACT_MAX_LIST_ITEMS,
|
|
1643
|
-
|
|
1644
|
-
|
|
1682
|
+
U as ARTIFACT_MAX_TABLE_COLUMNS,
|
|
1683
|
+
P as ARTIFACT_MAX_TABLE_ROWS,
|
|
1645
1684
|
Q as ARTIFACT_MAX_TEXT_LEN,
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
|
|
1660
|
-
|
|
1661
|
-
|
|
1662
|
-
|
|
1663
|
-
|
|
1664
|
-
|
|
1665
|
-
|
|
1666
|
-
|
|
1685
|
+
mt as AUTH_APP_NAME,
|
|
1686
|
+
de as ActivityTypeRegistry,
|
|
1687
|
+
Dt as BUILT_IN_ONLY,
|
|
1688
|
+
en as CLASSIFY_VARS,
|
|
1689
|
+
Gt as CORE_DIMENSIONS,
|
|
1690
|
+
dt as CommunicationScheme,
|
|
1691
|
+
vn as DEFAULT_MEMORY_BUDGET,
|
|
1692
|
+
Be as DEFAULT_PHONE_REGION,
|
|
1693
|
+
Zn as FEATURE_FOLDER_MANAGEMENT,
|
|
1694
|
+
ei as FEATURE_REMOTE_SEARCH,
|
|
1695
|
+
oi as INSTALLATION_HEADER,
|
|
1696
|
+
Jn as InteractionParticipantRole,
|
|
1697
|
+
Pe as KB_FALLBACK_LOCALE,
|
|
1698
|
+
Mt as MAX_ACTIONS,
|
|
1699
|
+
Tt as MAX_BLOCKS,
|
|
1700
|
+
ne as MAX_COLLECTION_DEPTH,
|
|
1701
|
+
It as MAX_FIELDS,
|
|
1702
|
+
St as MAX_LIST_ITEMS,
|
|
1703
|
+
Nn as MAX_MEMORY_BUDGET,
|
|
1704
|
+
Mn as MAX_MEMORY_CHARS,
|
|
1705
|
+
Cn as MIN_MEMORY_BUDGET,
|
|
1706
|
+
$e as PAUSED_RUN_STATUSES,
|
|
1667
1707
|
v as PHONE_REGIONS,
|
|
1668
|
-
|
|
1669
|
-
|
|
1670
|
-
|
|
1671
|
-
|
|
1672
|
-
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
|
|
1680
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
1683
|
-
|
|
1684
|
-
|
|
1685
|
-
|
|
1686
|
-
|
|
1687
|
-
|
|
1708
|
+
ri as PRESENCE_ONLINE_WINDOW_MS,
|
|
1709
|
+
qn as PROVIDER_FEATURE_MESSAGE_TEMPLATES,
|
|
1710
|
+
Yn as PROVIDER_FEATURE_MESSAGE_WINDOW,
|
|
1711
|
+
ze as PUBLIC_EMAIL_DOMAINS,
|
|
1712
|
+
Ge as RELATED_SUBJECT_KINDS,
|
|
1713
|
+
yn as SIGNATURE_INTENTS,
|
|
1714
|
+
it as SUMMARY_MIN_LAST_CHARS,
|
|
1715
|
+
nt as SUMMARY_MIN_MESSAGES,
|
|
1716
|
+
Oe as TERMINAL_RUN_STATUSES,
|
|
1717
|
+
Zt as TRIGGER_VARS,
|
|
1718
|
+
ti as UNSUPPORTED,
|
|
1719
|
+
be as USAGE_DIMENSIONS,
|
|
1720
|
+
Ae as USAGE_DIMENSION_IDS,
|
|
1721
|
+
Le as actingIdentityKey,
|
|
1722
|
+
Nt as activityIconOf,
|
|
1723
|
+
wt as activityJoinUrl,
|
|
1724
|
+
ce as activitySnippet,
|
|
1725
|
+
ue as activityTextParams,
|
|
1726
|
+
Rt as activityTimelineText,
|
|
1727
|
+
Kt as activityTimestamp,
|
|
1688
1728
|
f as activityTypeInfo,
|
|
1689
|
-
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1694
|
-
|
|
1695
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1729
|
+
an as actorKey,
|
|
1730
|
+
ot as aiAttachmentKind,
|
|
1731
|
+
Hn as aiAttachmentRejection,
|
|
1732
|
+
hn as aiVendorAcceptsAttachment,
|
|
1733
|
+
fn as aiVendorDefaultModel,
|
|
1734
|
+
dn as aiVendorLabel,
|
|
1735
|
+
gn as aiVendorNeedsBaseUrl,
|
|
1736
|
+
mn as aiVendorsWith,
|
|
1737
|
+
gt as appNameFromPath,
|
|
1738
|
+
bn as applySignature,
|
|
1739
|
+
Xt as artifactBodyBytes,
|
|
1740
|
+
Wt as artifactOutline,
|
|
1741
|
+
zt as artifactToMarkdown,
|
|
1742
|
+
Pt as buildActivityPreview,
|
|
1743
|
+
Vn as buildChannelIntents,
|
|
1744
|
+
Yt as buildShareKeys,
|
|
1745
|
+
cn as canNestUnder,
|
|
1746
|
+
Lt as carriesText,
|
|
1747
|
+
pn as categoryLabel,
|
|
1748
|
+
zn as channelKindForScheme,
|
|
1749
|
+
vt as channelKindOf,
|
|
1750
|
+
Pn as cleanMessageText,
|
|
1751
|
+
Ue as defaultLocaleOf,
|
|
1752
|
+
Qn as defineIntent,
|
|
1753
|
+
we as depthOf,
|
|
1754
|
+
jn as disabledIntentsFromCapabilities,
|
|
1755
|
+
On as emailDomain,
|
|
1756
|
+
wn as endpointKey,
|
|
1757
|
+
bt as extractParams,
|
|
1758
|
+
Xn as filterByEndpoint,
|
|
1759
|
+
Fn as filterByIntent,
|
|
1760
|
+
pt as filterByTargetScheme,
|
|
1719
1761
|
E as findAiVendor,
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
xt as
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1755
|
-
|
|
1756
|
-
|
|
1757
|
-
|
|
1758
|
-
|
|
1759
|
-
|
|
1760
|
-
|
|
1761
|
-
|
|
1762
|
+
Bt as flattenLocales,
|
|
1763
|
+
ge as floorToPeriod,
|
|
1764
|
+
ke as formatActingIdentity,
|
|
1765
|
+
me as formatPeriod,
|
|
1766
|
+
Ut as getActivitySeenUserIds,
|
|
1767
|
+
An as getContactEndpoints,
|
|
1768
|
+
In as getShortTitle,
|
|
1769
|
+
Tn as getUrgencyScore,
|
|
1770
|
+
ie as heightOf,
|
|
1771
|
+
ln as helpCenterText,
|
|
1772
|
+
Qt as humanizeAction,
|
|
1773
|
+
En as isAssigned,
|
|
1774
|
+
_n as isClosed,
|
|
1775
|
+
ni as isDeepLink,
|
|
1776
|
+
De as isDescendant,
|
|
1777
|
+
Sn as isInteractionUnseen,
|
|
1778
|
+
Un as isLikelyBulk,
|
|
1779
|
+
xt as isMessageType,
|
|
1780
|
+
Et as isMoreSpecificPattern,
|
|
1781
|
+
on as isPaused,
|
|
1782
|
+
$t as isPlaybookAuthoredType,
|
|
1783
|
+
$n as isPublicEmailDomain,
|
|
1784
|
+
ai as isPublicPath,
|
|
1785
|
+
kt as isReplyableType,
|
|
1786
|
+
rn as isRetryable,
|
|
1787
|
+
Re as isTerminal,
|
|
1788
|
+
Kn as isThreadLongEnough,
|
|
1789
|
+
sn as linkLabel,
|
|
1790
|
+
un as localesOf,
|
|
1791
|
+
kn as looksLikeEmail,
|
|
1792
|
+
Wn as matchContactToIntents,
|
|
1793
|
+
_t as matchPublicRoute,
|
|
1794
|
+
Ot as messageCountsAs,
|
|
1795
|
+
Rn as needsPhoneRegion,
|
|
1796
|
+
Ft as normalizeArtifactBlocks,
|
|
1797
|
+
Ct as normalizeBlocks,
|
|
1798
|
+
re as normalizeEmail,
|
|
1799
|
+
tn as parseActingIdentity,
|
|
1800
|
+
yt as pathToRegex,
|
|
1801
|
+
Ht as periodsInRange,
|
|
1802
|
+
Ln as phoneSuffix,
|
|
1803
|
+
Dn as plainTextFromMarkdown,
|
|
1804
|
+
nn as playbookActor,
|
|
1805
|
+
At as publicBasePathFor,
|
|
1806
|
+
ii as publicRoutePatterns,
|
|
1762
1807
|
C as readPath,
|
|
1763
|
-
|
|
1764
|
-
|
|
1765
|
-
|
|
1808
|
+
We as registrableDomain,
|
|
1809
|
+
xn as relatedByDefault,
|
|
1810
|
+
ct as resolveAccountCapabilities,
|
|
1766
1811
|
N as resolveActivityText,
|
|
1767
|
-
|
|
1768
|
-
|
|
1769
|
-
|
|
1812
|
+
lt as resolveChannelIntents,
|
|
1813
|
+
Ke as resolveSignature,
|
|
1814
|
+
Ce as sanitizeInline,
|
|
1770
1815
|
te as shareKeyForTeam,
|
|
1771
1816
|
ee as shareKeyForUser,
|
|
1772
|
-
|
|
1773
|
-
|
|
1817
|
+
qt as shareKeysForViewer,
|
|
1818
|
+
le as stripHtml,
|
|
1774
1819
|
F as toE164,
|
|
1775
|
-
|
|
1776
|
-
|
|
1777
|
-
|
|
1820
|
+
Jt as toolSourceKinds,
|
|
1821
|
+
Ee as usageMetricId,
|
|
1822
|
+
jt as usageMetrics
|
|
1778
1823
|
};
|