@sinequa/atomic 2.0.8 → 2.2.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/atomic.cjs +1 -1
- package/dist/atomic.js +2 -2
- package/dist/spfx/index.cjs +1 -1
- package/dist/spfx/index.js +2 -2
- package/dist/{src-Do-xy2G_.js → src-BCIlSfZp.js} +204 -157
- package/dist/src-Dg2926V9.cjs +1 -0
- package/dist/types/api-endpoints.d.ts +1 -1
- package/dist/types/api-endpoints.d.ts.map +1 -1
- package/dist/types/document-upload/container-document.d.ts +22 -0
- package/dist/types/document-upload/container-document.d.ts.map +1 -0
- package/dist/types/document-upload/container.d.ts +31 -0
- package/dist/types/document-upload/container.d.ts.map +1 -0
- package/dist/types/document-upload/index.d.ts +3 -0
- package/dist/types/document-upload/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/security-principal/index.d.ts +2 -0
- package/dist/types/security-principal/index.d.ts.map +1 -0
- package/dist/types/security-principal/security-principal.d.ts +25 -0
- package/dist/types/security-principal/security-principal.d.ts.map +1 -0
- package/dist/web-api/helpers/handle-response.d.ts.map +1 -1
- package/dist/web-api/helpers/methods/del.d.ts +4 -0
- package/dist/web-api/helpers/methods/del.d.ts.map +1 -1
- package/dist/web-api/helpers/methods/put.d.ts.map +1 -1
- package/dist/web-api/index.d.ts +2 -0
- package/dist/web-api/index.d.ts.map +1 -1
- package/dist/web-api/v1/fetch-security-principal.d.ts +22 -0
- package/dist/web-api/v1/fetch-security-principal.d.ts.map +1 -0
- package/dist/web-api/v2/fetch-document-upload-container.d.ts +82 -0
- package/dist/web-api/v2/fetch-document-upload-container.d.ts.map +1 -0
- package/package.json +10 -7
- package/dist/src-DymnAzA1.cjs +0 -1
|
@@ -477,28 +477,32 @@ var E = class extends Error {
|
|
|
477
477
|
constructor(e, t) {
|
|
478
478
|
super(e), this.name = "ApiError", this.status = t;
|
|
479
479
|
}
|
|
480
|
-
},
|
|
480
|
+
}, Re = class extends E {
|
|
481
481
|
constructor(e = "Server error") {
|
|
482
482
|
super(e, 500), this.name = "ServerError";
|
|
483
483
|
}
|
|
484
|
-
},
|
|
484
|
+
}, ze = class extends E {
|
|
485
485
|
constructor(e = "Request timed out") {
|
|
486
486
|
super(e, 408), this.name = "TimeoutError";
|
|
487
487
|
}
|
|
488
|
-
},
|
|
488
|
+
}, D = class extends E {
|
|
489
489
|
constructor(e = "Unauthorized access") {
|
|
490
490
|
super(e, 401), this.name = "UnauthorizedError";
|
|
491
491
|
}
|
|
492
492
|
};
|
|
493
493
|
//#endregion
|
|
494
494
|
//#region src/web-api/helpers/handle-response.ts
|
|
495
|
-
async function
|
|
495
|
+
async function O(e, t = "json") {
|
|
496
496
|
let n = e.headers.get("sinequa-jwt-refresh");
|
|
497
|
-
if (n !== null &&
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
|
|
497
|
+
if (n !== null && Z(n), e.status >= 200 && e.status < 300) {
|
|
498
|
+
let n = e.headers.get("content-length");
|
|
499
|
+
if (e.status === 204 || n === "0") return;
|
|
500
|
+
switch (t) {
|
|
501
|
+
case "arraybuffer": return await e.arrayBuffer();
|
|
502
|
+
case "blob": return await e.blob();
|
|
503
|
+
case "text": return await e.text();
|
|
504
|
+
default: return await e.json();
|
|
505
|
+
}
|
|
502
506
|
}
|
|
503
507
|
if (e.status === 401) {
|
|
504
508
|
if (r.userOverrideActive) {
|
|
@@ -509,29 +513,29 @@ async function k(e, t = "json") {
|
|
|
509
513
|
throw y("Unauthorized access attempt with user override", {
|
|
510
514
|
endpoint: e.url ?? "",
|
|
511
515
|
error: t
|
|
512
|
-
}), new
|
|
516
|
+
}), new D(t.errorMessage ?? t.message ?? "Unauthorized... User override failed.");
|
|
513
517
|
}
|
|
514
|
-
return await
|
|
518
|
+
return await k(e, 401);
|
|
515
519
|
}
|
|
516
|
-
return e.status === 500 ? (b("Server error occurred", { endpoint: e.url ?? "" }), await
|
|
520
|
+
return e.status === 500 ? (b("Server error occurred", { endpoint: e.url ?? "" }), await k(e, 500)) : (y(`Unexpected response status: ${e.status}`, { endpoint: e.url ?? "" }), await k(e, e.status));
|
|
517
521
|
}
|
|
518
|
-
async function
|
|
522
|
+
async function k(e, t) {
|
|
519
523
|
try {
|
|
520
524
|
let { done: n, value: r } = await e.body?.getReader().read() || {
|
|
521
525
|
done: !0,
|
|
522
526
|
value: void 0
|
|
523
527
|
};
|
|
524
|
-
if (n || !r) throw t === 401 ? new
|
|
528
|
+
if (n || !r) throw t === 401 ? new D() : t === 500 ? new Re() : new E(`Request failed with status ${t}`, t);
|
|
525
529
|
let i = JSON.parse(new TextDecoder().decode(r));
|
|
526
530
|
throw Error(i.errorMessage || i.message || `Request failed with status ${t}`, { cause: {
|
|
527
531
|
errorCode: i.errorCode,
|
|
528
532
|
errorCodeTest: i.errorCodeTest
|
|
529
533
|
} });
|
|
530
534
|
} catch (e) {
|
|
531
|
-
throw e instanceof E ? e : t === 401 ? new
|
|
535
|
+
throw e instanceof E ? e : t === 401 ? new D(e.message) : t === 500 ? new Re(e.message) : new E(e.message ?? `Request failed with status ${t}`, t);
|
|
532
536
|
}
|
|
533
537
|
}
|
|
534
|
-
var
|
|
538
|
+
var A = new class {
|
|
535
539
|
client = null;
|
|
536
540
|
initialize(e) {
|
|
537
541
|
this.client = e;
|
|
@@ -544,26 +548,44 @@ var j = new class {
|
|
|
544
548
|
return this.client !== null;
|
|
545
549
|
}
|
|
546
550
|
}();
|
|
547
|
-
function
|
|
548
|
-
|
|
551
|
+
function Be(e) {
|
|
552
|
+
A.initialize(e);
|
|
553
|
+
}
|
|
554
|
+
//#endregion
|
|
555
|
+
//#region src/web-api/helpers/utils/resolve-no-auto-authentication.ts
|
|
556
|
+
function j() {
|
|
557
|
+
return r.authMode?.kind !== "sso";
|
|
549
558
|
}
|
|
550
559
|
//#endregion
|
|
551
560
|
//#region src/web-api/helpers/methods/del.ts
|
|
552
|
-
async function
|
|
553
|
-
let i = T(n?.headers), {
|
|
554
|
-
|
|
561
|
+
async function M(e, t, n) {
|
|
562
|
+
let i = T(n?.headers), { app: a, backendUrl: o } = r, s = t ? `?${new URLSearchParams(t)}` : "", c = o ? `${o}/${e}${s}` : `${e}${s}`, l;
|
|
563
|
+
if (n?.body) {
|
|
564
|
+
i.has("Content-Type") || i.set("Content-Type", "application/json");
|
|
565
|
+
let e = {
|
|
566
|
+
app: a,
|
|
567
|
+
...n.body,
|
|
568
|
+
locale: n.body.locale || navigator.language,
|
|
569
|
+
noUserOverride: !0,
|
|
570
|
+
noAutoAuthentication: j()
|
|
571
|
+
};
|
|
572
|
+
l = JSON.stringify(e);
|
|
573
|
+
}
|
|
574
|
+
_(`Making DELETE request to: ${c}`);
|
|
555
575
|
try {
|
|
556
|
-
if (
|
|
557
|
-
let e =
|
|
558
|
-
return
|
|
576
|
+
if (A.isInitialized()) {
|
|
577
|
+
let e = A.getClient();
|
|
578
|
+
return O(await e.fetch(c, e.constructor.configurations.v1, {
|
|
559
579
|
method: "DELETE",
|
|
560
|
-
headers: i
|
|
580
|
+
headers: i,
|
|
581
|
+
body: l
|
|
561
582
|
}), n?.responseType);
|
|
562
583
|
}
|
|
563
|
-
return
|
|
584
|
+
return O(await fetch(c, {
|
|
564
585
|
method: "DELETE",
|
|
565
586
|
credentials: "include",
|
|
566
|
-
headers: i
|
|
587
|
+
headers: i,
|
|
588
|
+
body: l
|
|
567
589
|
}), n?.responseType);
|
|
568
590
|
} catch (e) {
|
|
569
591
|
throw b("Error making DELETE request:", e), e;
|
|
@@ -571,20 +593,20 @@ async function Be(e, t, n) {
|
|
|
571
593
|
}
|
|
572
594
|
//#endregion
|
|
573
595
|
//#region src/web-api/helpers/methods/get.ts
|
|
574
|
-
async function
|
|
596
|
+
async function N(e, t, n) {
|
|
575
597
|
let i = T(n?.headers), { backendUrl: a } = r, o = t ? `?${new URLSearchParams(t)}` : "";
|
|
576
598
|
e.startsWith("plugin") && (e = `api/v1/${e}`);
|
|
577
599
|
let s = a ? `${a}/${e}${o}` : `${e}${o}`;
|
|
578
600
|
_(`Making GET request to: ${s}`);
|
|
579
601
|
try {
|
|
580
|
-
if (
|
|
581
|
-
let e =
|
|
582
|
-
return
|
|
602
|
+
if (A.isInitialized()) {
|
|
603
|
+
let e = A.getClient();
|
|
604
|
+
return O(await e.get(s, e.constructor.configurations.v1, {
|
|
583
605
|
headers: i,
|
|
584
606
|
signal: n?.signal
|
|
585
607
|
}), n?.responseType);
|
|
586
608
|
}
|
|
587
|
-
return
|
|
609
|
+
return O(await fetch(s, {
|
|
588
610
|
method: "GET",
|
|
589
611
|
credentials: "include",
|
|
590
612
|
headers: i,
|
|
@@ -596,11 +618,6 @@ async function M(e, t, n) {
|
|
|
596
618
|
}
|
|
597
619
|
}
|
|
598
620
|
//#endregion
|
|
599
|
-
//#region src/web-api/helpers/utils/resolve-no-auto-authentication.ts
|
|
600
|
-
function N() {
|
|
601
|
-
return r.authMode?.kind !== "sso";
|
|
602
|
-
}
|
|
603
|
-
//#endregion
|
|
604
621
|
//#region src/web-api/helpers/methods/patch.ts
|
|
605
622
|
async function Ve(e, t, n) {
|
|
606
623
|
let i = T(n?.headers);
|
|
@@ -610,19 +627,19 @@ async function Ve(e, t, n) {
|
|
|
610
627
|
...t,
|
|
611
628
|
locale: t.locale || navigator.language,
|
|
612
629
|
noUserOverride: !0,
|
|
613
|
-
noAutoAuthentication:
|
|
630
|
+
noAutoAuthentication: j()
|
|
614
631
|
}, c = o ? `${o}/${e}` : `${e}`;
|
|
615
632
|
_(`Making PATCH request to: ${c}`);
|
|
616
633
|
try {
|
|
617
|
-
if (
|
|
618
|
-
let e =
|
|
619
|
-
return
|
|
634
|
+
if (A.isInitialized()) {
|
|
635
|
+
let e = A.getClient();
|
|
636
|
+
return O(await e.fetch(c, e.constructor.configurations.v1, {
|
|
620
637
|
method: "PATCH",
|
|
621
638
|
headers: i,
|
|
622
639
|
body: JSON.stringify(s)
|
|
623
640
|
}), n?.responseType);
|
|
624
641
|
}
|
|
625
|
-
return
|
|
642
|
+
return O(await fetch(c, {
|
|
626
643
|
method: "PATCH",
|
|
627
644
|
headers: i,
|
|
628
645
|
credentials: "include",
|
|
@@ -642,21 +659,21 @@ async function P(e, t, n) {
|
|
|
642
659
|
...t,
|
|
643
660
|
locale: t.locale || navigator.language,
|
|
644
661
|
noUserOverride: !0,
|
|
645
|
-
noAutoAuthentication:
|
|
662
|
+
noAutoAuthentication: j()
|
|
646
663
|
};
|
|
647
664
|
e.startsWith("plugin") && (e = `api/v1/${e}`);
|
|
648
665
|
let c = o ? `${o}/${e}` : `${e}`;
|
|
649
666
|
_(`Making POST request to: ${c}`);
|
|
650
667
|
try {
|
|
651
|
-
if (
|
|
652
|
-
let e =
|
|
653
|
-
return
|
|
668
|
+
if (A.isInitialized()) {
|
|
669
|
+
let e = A.getClient();
|
|
670
|
+
return O(await e.post(c, e.constructor.configurations.v1, {
|
|
654
671
|
headers: i,
|
|
655
672
|
body: JSON.stringify(s),
|
|
656
673
|
signal: n?.signal
|
|
657
674
|
}), n?.responseType);
|
|
658
675
|
}
|
|
659
|
-
return
|
|
676
|
+
return O(await fetch(c, {
|
|
660
677
|
method: "POST",
|
|
661
678
|
headers: i,
|
|
662
679
|
credentials: "include",
|
|
@@ -670,24 +687,26 @@ async function P(e, t, n) {
|
|
|
670
687
|
//#endregion
|
|
671
688
|
//#region src/web-api/helpers/methods/put.ts
|
|
672
689
|
async function He(e, t, n) {
|
|
673
|
-
let i = T(n?.headers), { app: a, backendUrl: o } = r
|
|
690
|
+
let i = T(n?.headers), { app: a, backendUrl: o } = r;
|
|
691
|
+
i.has("Content-Type") || i.set("Content-Type", "application/json");
|
|
692
|
+
let s = {
|
|
674
693
|
app: a,
|
|
675
694
|
...t,
|
|
676
695
|
locale: t.locale || navigator.language,
|
|
677
696
|
noUserOverride: !0,
|
|
678
|
-
noAutoAuthentication:
|
|
697
|
+
noAutoAuthentication: j()
|
|
679
698
|
}, c = `${o}/${e}`;
|
|
680
699
|
_(`Making PUT request to: ${c}`);
|
|
681
700
|
try {
|
|
682
|
-
if (
|
|
683
|
-
let e =
|
|
684
|
-
return
|
|
701
|
+
if (A.isInitialized()) {
|
|
702
|
+
let e = A.getClient();
|
|
703
|
+
return O(await e.fetch(c, e.constructor.configurations.v1, {
|
|
685
704
|
method: "PUT",
|
|
686
705
|
headers: i,
|
|
687
706
|
body: JSON.stringify(s)
|
|
688
707
|
}), n?.responseType);
|
|
689
708
|
}
|
|
690
|
-
return
|
|
709
|
+
return O(await fetch(c, {
|
|
691
710
|
method: "PUT",
|
|
692
711
|
headers: i,
|
|
693
712
|
credentials: "include",
|
|
@@ -702,7 +721,7 @@ async function He(e, t, n) {
|
|
|
702
721
|
function F(e) {
|
|
703
722
|
let t = new AbortController(), { signal: n } = t;
|
|
704
723
|
return e && setTimeout(() => {
|
|
705
|
-
n.aborted || t.abort(new
|
|
724
|
+
n.aborted || t.abort(new ze(`Request timed out after ${e}ms`));
|
|
706
725
|
}, e), {
|
|
707
726
|
controller: t,
|
|
708
727
|
signal: n
|
|
@@ -1094,7 +1113,7 @@ async function xt(e, t, n) {
|
|
|
1094
1113
|
$auditRecord: { auditEvents: [n] }
|
|
1095
1114
|
};
|
|
1096
1115
|
K(i);
|
|
1097
|
-
let { aggregations: a } = await
|
|
1116
|
+
let { aggregations: a } = await O(await P("api/v1/query", i)), o = a[0];
|
|
1098
1117
|
return o.$hasMore = o.items.length > 10, o.items = [...e.items, ...o.items], Promise.resolve(o);
|
|
1099
1118
|
}
|
|
1100
1119
|
//#endregion
|
|
@@ -1111,11 +1130,11 @@ function St(e, n) {
|
|
|
1111
1130
|
//#region src/web-api/v1/fetch-app.ts
|
|
1112
1131
|
async function Ct(e) {
|
|
1113
1132
|
let t = e || r.app;
|
|
1114
|
-
return
|
|
1133
|
+
return N("api/v1/app", new URLSearchParams({ app: t || "" }));
|
|
1115
1134
|
}
|
|
1116
1135
|
async function wt() {
|
|
1117
1136
|
let { app: e } = r;
|
|
1118
|
-
return
|
|
1137
|
+
return N("api/v1/app", new URLSearchParams({
|
|
1119
1138
|
app: e || "",
|
|
1120
1139
|
preLogin: "true"
|
|
1121
1140
|
}));
|
|
@@ -1161,7 +1180,7 @@ async function Ot(e, t) {
|
|
|
1161
1180
|
})).datasets;
|
|
1162
1181
|
}
|
|
1163
1182
|
async function kt(e) {
|
|
1164
|
-
return await
|
|
1183
|
+
return await N(`api/v1/search.dataset/${e}`);
|
|
1165
1184
|
}
|
|
1166
1185
|
//#endregion
|
|
1167
1186
|
//#region src/web-api/v1/fetch-labels.ts
|
|
@@ -1181,7 +1200,7 @@ async function At(e, t = !0, n) {
|
|
|
1181
1200
|
async function jt() {
|
|
1182
1201
|
try {
|
|
1183
1202
|
let { app: e = "" } = r;
|
|
1184
|
-
return
|
|
1203
|
+
return N("api/v1/labels", new URLSearchParams({
|
|
1185
1204
|
app: e,
|
|
1186
1205
|
action: "getUserRights"
|
|
1187
1206
|
}));
|
|
@@ -1349,7 +1368,7 @@ async function zt(e, t) {
|
|
|
1349
1368
|
}
|
|
1350
1369
|
async function Bt(e) {
|
|
1351
1370
|
let t = new Headers();
|
|
1352
|
-
t.append("content-type", "text"),
|
|
1371
|
+
t.append("content-type", "text"), O(await fetch(e, {
|
|
1353
1372
|
method: "GET",
|
|
1354
1373
|
headers: t
|
|
1355
1374
|
}));
|
|
@@ -1357,30 +1376,30 @@ async function Bt(e) {
|
|
|
1357
1376
|
//#endregion
|
|
1358
1377
|
//#region src/web-api/v1/fetch-principal.ts
|
|
1359
1378
|
async function Vt() {
|
|
1360
|
-
return
|
|
1379
|
+
return N("api/v1/principal", new URLSearchParams({
|
|
1361
1380
|
action: "get",
|
|
1362
|
-
noAutoAuthentication: String(
|
|
1381
|
+
noAutoAuthentication: String(j())
|
|
1363
1382
|
}));
|
|
1364
1383
|
}
|
|
1365
1384
|
async function Ht(e) {
|
|
1366
1385
|
let t = {
|
|
1367
|
-
noAutoAuthentication: String(
|
|
1386
|
+
noAutoAuthentication: String(j()),
|
|
1368
1387
|
...e
|
|
1369
1388
|
}, n = new URLSearchParams();
|
|
1370
1389
|
return Object.entries(t).forEach(([e, t]) => {
|
|
1371
1390
|
t !== void 0 && n.append(e, String(t));
|
|
1372
|
-
}),
|
|
1391
|
+
}), N("api/v1/principal/list", n);
|
|
1373
1392
|
}
|
|
1374
1393
|
async function Ut(e) {
|
|
1375
|
-
return e ?
|
|
1394
|
+
return e ? N("api/v1/principal", new URLSearchParams({
|
|
1376
1395
|
action: "userid",
|
|
1377
|
-
noAutoAuthentication: String(
|
|
1396
|
+
noAutoAuthentication: String(j()),
|
|
1378
1397
|
userid: e
|
|
1379
1398
|
})) : Promise.reject(/* @__PURE__ */ Error("userid is required"));
|
|
1380
1399
|
}
|
|
1381
1400
|
async function Wt(e) {
|
|
1382
|
-
return e.length === 0 ? Promise.reject(/* @__PURE__ */ Error("userids is required")) :
|
|
1383
|
-
noAutoAuthentication: String(
|
|
1401
|
+
return e.length === 0 ? Promise.reject(/* @__PURE__ */ Error("userids is required")) : N("api/v1/principal/userids", new URLSearchParams({
|
|
1402
|
+
noAutoAuthentication: String(j()),
|
|
1384
1403
|
userids: [...e].join(",")
|
|
1385
1404
|
}));
|
|
1386
1405
|
}
|
|
@@ -1473,8 +1492,13 @@ async function Xt(e) {
|
|
|
1473
1492
|
return (await P("api/v1/queryintent", { query: e }))?.intents;
|
|
1474
1493
|
}
|
|
1475
1494
|
//#endregion
|
|
1495
|
+
//#region src/web-api/v1/fetch-security-principal.ts
|
|
1496
|
+
function Zt(e, t) {
|
|
1497
|
+
return P("api/v1/security.principal", e, { signal: t });
|
|
1498
|
+
}
|
|
1499
|
+
//#endregion
|
|
1476
1500
|
//#region src/web-api/v1/fetch-similar-documents.ts
|
|
1477
|
-
async function
|
|
1501
|
+
async function Qt(e, t, n) {
|
|
1478
1502
|
return (await P("api/v1/similardocuments", {
|
|
1479
1503
|
sourceDocumentId: e,
|
|
1480
1504
|
query: { name: t }
|
|
@@ -1482,7 +1506,7 @@ async function Zt(e, t, n) {
|
|
|
1482
1506
|
}
|
|
1483
1507
|
//#endregion
|
|
1484
1508
|
//#region src/web-api/v1/fetch-sponsored-links.ts
|
|
1485
|
-
async function
|
|
1509
|
+
async function $t(e, t) {
|
|
1486
1510
|
return (await P("api/v1/query.links", {
|
|
1487
1511
|
webservice: e,
|
|
1488
1512
|
query: t
|
|
@@ -1493,9 +1517,9 @@ async function Qt(e, t) {
|
|
|
1493
1517
|
}
|
|
1494
1518
|
//#endregion
|
|
1495
1519
|
//#region src/utils/to-sql.ts
|
|
1496
|
-
function
|
|
1520
|
+
function en(e, t) {
|
|
1497
1521
|
if (typeof e == "number") return `${e}`;
|
|
1498
|
-
if (ot(e)) return t ? `'${
|
|
1522
|
+
if (ot(e)) return t ? `'${tn(e)}'` : tn(e);
|
|
1499
1523
|
if (typeof e == "boolean") return e ? "true" : "false";
|
|
1500
1524
|
if (e === null) return "null";
|
|
1501
1525
|
if (Array.isArray(e)) {
|
|
@@ -1506,7 +1530,7 @@ function $t(e, t) {
|
|
|
1506
1530
|
}
|
|
1507
1531
|
return t ? `'${e}'` : e;
|
|
1508
1532
|
}
|
|
1509
|
-
function
|
|
1533
|
+
function tn(e) {
|
|
1510
1534
|
if (!e) return "";
|
|
1511
1535
|
try {
|
|
1512
1536
|
return lt(e) === 0 ? new Intl.DateTimeFormat("en-CA", {
|
|
@@ -1525,7 +1549,7 @@ function en(e) {
|
|
|
1525
1549
|
}
|
|
1526
1550
|
//#endregion
|
|
1527
1551
|
//#region src/web-api/v1/fetch-suggest.ts
|
|
1528
|
-
async function
|
|
1552
|
+
async function nn(e, t, n, i, a) {
|
|
1529
1553
|
let { app: o } = r, s = {
|
|
1530
1554
|
app: o || "",
|
|
1531
1555
|
suggestQuery: e,
|
|
@@ -1540,7 +1564,7 @@ async function tn(e, t, n, i, a) {
|
|
|
1540
1564
|
throw console.error("Error fetching suggestions:", e), e;
|
|
1541
1565
|
}
|
|
1542
1566
|
}
|
|
1543
|
-
async function
|
|
1567
|
+
async function rn(e, t, n, i) {
|
|
1544
1568
|
let { app: a } = r;
|
|
1545
1569
|
return (await P("api/v1/suggestquery", {
|
|
1546
1570
|
app: a || "",
|
|
@@ -1550,7 +1574,7 @@ async function nn(e, t, n, i) {
|
|
|
1550
1574
|
kinds: i
|
|
1551
1575
|
})).suggests;
|
|
1552
1576
|
}
|
|
1553
|
-
async function
|
|
1577
|
+
async function an(e, t, n) {
|
|
1554
1578
|
if (!t) return Promise.resolve([]);
|
|
1555
1579
|
let { app: i } = r, a = await P("api/v1/suggestfield", {
|
|
1556
1580
|
app: i || "",
|
|
@@ -1559,12 +1583,12 @@ async function rn(e, t, n) {
|
|
|
1559
1583
|
query: n
|
|
1560
1584
|
});
|
|
1561
1585
|
return a.suggests.forEach((e) => {
|
|
1562
|
-
e.display =
|
|
1586
|
+
e.display = en(e.display);
|
|
1563
1587
|
}), a.suggests;
|
|
1564
1588
|
}
|
|
1565
1589
|
//#endregion
|
|
1566
1590
|
//#region src/web-api/v1/fetch-text-chunk.ts
|
|
1567
|
-
async function
|
|
1591
|
+
async function on(e, t, n, r, i, a) {
|
|
1568
1592
|
return P("api/v1/doc.textchunks", {
|
|
1569
1593
|
id: e,
|
|
1570
1594
|
textChunks: t,
|
|
@@ -1576,14 +1600,14 @@ async function an(e, t, n, r, i, a) {
|
|
|
1576
1600
|
}
|
|
1577
1601
|
//#endregion
|
|
1578
1602
|
//#region src/web-api/v1/fetch-user-settings.ts
|
|
1579
|
-
async function
|
|
1603
|
+
async function sn() {
|
|
1580
1604
|
let { app: e } = r;
|
|
1581
|
-
return
|
|
1605
|
+
return N("api/v1/usersettings", new URLSearchParams({
|
|
1582
1606
|
app: e || "",
|
|
1583
1607
|
action: "load"
|
|
1584
1608
|
}));
|
|
1585
1609
|
}
|
|
1586
|
-
async function
|
|
1610
|
+
async function cn(e, t) {
|
|
1587
1611
|
let n = {
|
|
1588
1612
|
action: "save",
|
|
1589
1613
|
userSettings: e,
|
|
@@ -1591,7 +1615,7 @@ async function sn(e, t) {
|
|
|
1591
1615
|
};
|
|
1592
1616
|
return K(n), P("api/v1/usersettings", n);
|
|
1593
1617
|
}
|
|
1594
|
-
async function
|
|
1618
|
+
async function ln(e, t) {
|
|
1595
1619
|
let n = {
|
|
1596
1620
|
action: "patch",
|
|
1597
1621
|
userSettings: e,
|
|
@@ -1599,20 +1623,52 @@ async function cn(e, t) {
|
|
|
1599
1623
|
};
|
|
1600
1624
|
return K(n), P("api/v1/usersettings", n);
|
|
1601
1625
|
}
|
|
1602
|
-
async function
|
|
1603
|
-
return
|
|
1626
|
+
async function un() {
|
|
1627
|
+
return cn({}, { type: "UserSettings_Reset" });
|
|
1604
1628
|
}
|
|
1605
1629
|
//#endregion
|
|
1606
1630
|
//#region src/web-api/v2/fetch-change-password.ts
|
|
1607
|
-
async function
|
|
1631
|
+
async function dn(e, t) {
|
|
1608
1632
|
return P("api/v2/security/password/change", {
|
|
1609
1633
|
newPassword: e,
|
|
1610
1634
|
currentPassword: t
|
|
1611
1635
|
});
|
|
1612
1636
|
}
|
|
1613
1637
|
//#endregion
|
|
1638
|
+
//#region src/web-api/v2/fetch-document-upload-container.ts
|
|
1639
|
+
var J = "api/v2/document-upload/container";
|
|
1640
|
+
function fn(e) {
|
|
1641
|
+
let t = new URLSearchParams();
|
|
1642
|
+
return e.page !== void 0 && t.set("page", String(e.page)), e.pageSize !== void 0 && t.set("pageSize", String(e.pageSize)), t;
|
|
1643
|
+
}
|
|
1644
|
+
function pn(e = {}) {
|
|
1645
|
+
return N(J, fn(e));
|
|
1646
|
+
}
|
|
1647
|
+
function mn(e) {
|
|
1648
|
+
return N(`${J}/${encodeURIComponent(e)}`);
|
|
1649
|
+
}
|
|
1650
|
+
function hn(e) {
|
|
1651
|
+
return P(J, e);
|
|
1652
|
+
}
|
|
1653
|
+
function gn(e, t) {
|
|
1654
|
+
return He(`${J}/${encodeURIComponent(e)}`, t);
|
|
1655
|
+
}
|
|
1656
|
+
async function _n(e) {
|
|
1657
|
+
let t = (await M("api/v2/document-upload/containers", void 0, { body: { containerIds: e } }))?.failed ?? [], n = new Set(t.map((e) => e.containerId));
|
|
1658
|
+
return {
|
|
1659
|
+
succeeded: e.filter((e) => !n.has(e)),
|
|
1660
|
+
failed: t
|
|
1661
|
+
};
|
|
1662
|
+
}
|
|
1663
|
+
function vn(e, t = {}) {
|
|
1664
|
+
return N(`${J}/${encodeURIComponent(e)}/documents`, fn(t));
|
|
1665
|
+
}
|
|
1666
|
+
function yn(e, t) {
|
|
1667
|
+
return M(`${J}/${encodeURIComponent(e)}/documents`, void 0, { body: { fileIds: t } });
|
|
1668
|
+
}
|
|
1669
|
+
//#endregion
|
|
1614
1670
|
//#region src/web-api/v2/fetch-forgot-password.ts
|
|
1615
|
-
async function
|
|
1671
|
+
async function bn(e) {
|
|
1616
1672
|
return P("api/v2/security/password/ask-reset-email", {
|
|
1617
1673
|
changePasswordRedirectUrl: `${window.location.origin}/login?mode=changepassword`,
|
|
1618
1674
|
userName: e
|
|
@@ -1620,34 +1676,30 @@ async function dn(e) {
|
|
|
1620
1676
|
}
|
|
1621
1677
|
//#endregion
|
|
1622
1678
|
//#region src/web-api/v2/fetch-user-profile.ts
|
|
1623
|
-
async function
|
|
1624
|
-
return await
|
|
1679
|
+
async function xn(e) {
|
|
1680
|
+
return await N(`api/v2/user-profile/${e}`);
|
|
1625
1681
|
}
|
|
1626
|
-
async function
|
|
1682
|
+
async function Sn(e) {
|
|
1627
1683
|
return await P("api/v2/user-profile", e);
|
|
1628
1684
|
}
|
|
1629
|
-
async function
|
|
1685
|
+
async function Cn(e, t, n) {
|
|
1630
1686
|
return await Ve(`api/v2/user-profile/${e.data?.id}/${t}/${n}`, e);
|
|
1631
1687
|
}
|
|
1632
|
-
async function
|
|
1633
|
-
|
|
1634
|
-
return (await Be(`api/v2/user-profile/${e.data?.id}/${t}/${n}`)).success === !0;
|
|
1635
|
-
} catch {
|
|
1636
|
-
return !1;
|
|
1637
|
-
}
|
|
1688
|
+
async function wn(e, t, n) {
|
|
1689
|
+
return (await M(`api/v2/user-profile/${e.data?.id}/${t}/${n}`)).success === !0;
|
|
1638
1690
|
}
|
|
1639
1691
|
//#endregion
|
|
1640
1692
|
//#region src/web-api/v2/fetch-version.ts
|
|
1641
|
-
async function
|
|
1642
|
-
return await
|
|
1693
|
+
async function Tn() {
|
|
1694
|
+
return await N("api/v2/version");
|
|
1643
1695
|
}
|
|
1644
1696
|
//#endregion
|
|
1645
1697
|
//#region src/authentication/constants.ts
|
|
1646
|
-
var
|
|
1698
|
+
var Y = 1e4, X = "sinequa-auth-redirect-attempt", En = async () => {
|
|
1647
1699
|
let { autoOAuthProvider: e } = r;
|
|
1648
1700
|
if (!e) throw Error("autoOAuthProvider is not configured in globalConfig");
|
|
1649
1701
|
if (typeof window > "u") try {
|
|
1650
|
-
let { signal: t } = F(
|
|
1702
|
+
let { signal: t } = F(Y);
|
|
1651
1703
|
return await P("security.oauth", {
|
|
1652
1704
|
action: "getcode",
|
|
1653
1705
|
provider: e,
|
|
@@ -1664,23 +1716,23 @@ var J = 1e4, Y = "sinequa-auth-redirect-attempt", _n = async () => {
|
|
|
1664
1716
|
originalUrl: window.location.href
|
|
1665
1717
|
};
|
|
1666
1718
|
try {
|
|
1667
|
-
let { signal: n } = F(
|
|
1719
|
+
let { signal: n } = F(Y), r = await P("api/v1/security.oauth", t, { signal: n });
|
|
1668
1720
|
if (r.redirectUrl) {
|
|
1669
1721
|
let t = new URL(r.redirectUrl, window.location.origin);
|
|
1670
1722
|
if (t.protocol === "https:" || t.protocol === "http:") {
|
|
1671
|
-
if (u("sinequa-auth-redirect-attempt")) throw f(
|
|
1672
|
-
d(
|
|
1723
|
+
if (u("sinequa-auth-redirect-attempt")) throw f(X), Error(`OAuth sign-in with provider "${e}" did not establish a session — its callback is likely not authorized for this application.`);
|
|
1724
|
+
d(X, "1"), window.location.href = t.href;
|
|
1673
1725
|
}
|
|
1674
1726
|
}
|
|
1675
1727
|
return r;
|
|
1676
1728
|
} catch (e) {
|
|
1677
1729
|
throw b("Failed to authenticate with OAuth", e), e;
|
|
1678
1730
|
}
|
|
1679
|
-
},
|
|
1731
|
+
}, Dn = async () => {
|
|
1680
1732
|
let { autoSAMLProvider: e } = r;
|
|
1681
1733
|
if (!e) throw Error("autoSAMLProvider is not configured in globalConfig");
|
|
1682
1734
|
if (typeof window > "u") try {
|
|
1683
|
-
let { signal: t } = F(
|
|
1735
|
+
let { signal: t } = F(Y);
|
|
1684
1736
|
return await P("security.saml", {
|
|
1685
1737
|
action: "getresponse",
|
|
1686
1738
|
provider: e,
|
|
@@ -1697,31 +1749,31 @@ var J = 1e4, Y = "sinequa-auth-redirect-attempt", _n = async () => {
|
|
|
1697
1749
|
originalUrl: window.location.href
|
|
1698
1750
|
};
|
|
1699
1751
|
try {
|
|
1700
|
-
let { signal: n } = F(
|
|
1752
|
+
let { signal: n } = F(Y), r = await P("api/v1/security.saml", t, { signal: n });
|
|
1701
1753
|
if (r.redirectUrl) {
|
|
1702
1754
|
let t = new URL(r.redirectUrl, window.location.origin);
|
|
1703
1755
|
if (t.protocol === "https:" || t.protocol === "http:") {
|
|
1704
|
-
if (u("sinequa-auth-redirect-attempt")) throw f(
|
|
1705
|
-
d(
|
|
1756
|
+
if (u("sinequa-auth-redirect-attempt")) throw f(X), Error(`SAML sign-in with provider "${e}" did not establish a session — its callback is likely not authorized for this application.`);
|
|
1757
|
+
d(X, "1"), window.location.href = t.href;
|
|
1706
1758
|
}
|
|
1707
1759
|
}
|
|
1708
1760
|
return r;
|
|
1709
1761
|
} catch (e) {
|
|
1710
1762
|
throw b("Failed to authenticate with SAML", e), e;
|
|
1711
1763
|
}
|
|
1712
|
-
},
|
|
1764
|
+
}, Z = (e) => d("sinequa-credentials", JSON.stringify({ data: { csrfToken: e } })), Q = async () => {
|
|
1713
1765
|
let e;
|
|
1714
1766
|
try {
|
|
1715
|
-
let { signal: t } = F(
|
|
1716
|
-
e = await
|
|
1767
|
+
let { signal: t } = F(Y);
|
|
1768
|
+
e = await N("api/v1/challenge?action=getCsrfToken&suppressErrors=true", void 0, { signal: t });
|
|
1717
1769
|
} catch (e) {
|
|
1718
1770
|
throw y("CSRF token fetch failed", e), e;
|
|
1719
1771
|
}
|
|
1720
|
-
return e?.csrfToken ? (
|
|
1772
|
+
return e?.csrfToken ? (Z(e.csrfToken), e.csrfToken) : null;
|
|
1721
1773
|
};
|
|
1722
1774
|
//#endregion
|
|
1723
1775
|
//#region src/authentication/tokens/get-jwt-token.ts
|
|
1724
|
-
async function
|
|
1776
|
+
async function On(e) {
|
|
1725
1777
|
if (e) {
|
|
1726
1778
|
let { username: t, password: n } = e, r = {
|
|
1727
1779
|
action: "get",
|
|
@@ -1732,8 +1784,8 @@ async function Q(e) {
|
|
|
1732
1784
|
noAutoAuthentication: !0
|
|
1733
1785
|
};
|
|
1734
1786
|
try {
|
|
1735
|
-
let { signal: e } = F(
|
|
1736
|
-
return t?.csrfToken ? (
|
|
1787
|
+
let { signal: e } = F(Y), t = await P("api/v1/security.webtoken", r, { signal: e });
|
|
1788
|
+
return t?.csrfToken ? (Z(t.csrfToken), t.csrfToken) : null;
|
|
1737
1789
|
} catch (e) {
|
|
1738
1790
|
throw b("Failed to get JWT", e), e;
|
|
1739
1791
|
}
|
|
@@ -1745,14 +1797,9 @@ async function Q(e) {
|
|
|
1745
1797
|
noAutoAuthentication: !1
|
|
1746
1798
|
}, { bearerToken: t } = r;
|
|
1747
1799
|
if (!t) throw Error("Bearer token is required in globalConfig for credentialless JWT retrieval.");
|
|
1748
|
-
let n = new Headers();
|
|
1749
|
-
n.append("Sinequa-Force-Camel-Case", "true"), n.append("accept", "application/json"), n.append("Content-Type", "application/json"), n.append("Authorization", `Bearer ${t}`);
|
|
1750
1800
|
try {
|
|
1751
|
-
let { signal: t } = F(
|
|
1752
|
-
|
|
1753
|
-
signal: t
|
|
1754
|
-
});
|
|
1755
|
-
return r?.csrfToken ? (X(r.csrfToken), r.csrfToken) : null;
|
|
1801
|
+
let { signal: t } = F(Y), n = await P("api/v1/security.webtoken", e, { signal: t });
|
|
1802
|
+
return n?.csrfToken ? (Z(n.csrfToken), n.csrfToken) : null;
|
|
1756
1803
|
} catch (e) {
|
|
1757
1804
|
throw b("Failed to get JWT without credentials", e), e;
|
|
1758
1805
|
}
|
|
@@ -1769,65 +1816,65 @@ var $ = () => {
|
|
|
1769
1816
|
y("Failed to parse session storage credentials, falling back to local storage", e);
|
|
1770
1817
|
}
|
|
1771
1818
|
return s("csrfToken") || null;
|
|
1772
|
-
},
|
|
1773
|
-
c(
|
|
1774
|
-
},
|
|
1775
|
-
l(
|
|
1776
|
-
},
|
|
1777
|
-
e ? d(
|
|
1778
|
-
},
|
|
1819
|
+
}, kn = "sinequa-last-auth-mode", An = () => {
|
|
1820
|
+
c(kn, "credentials");
|
|
1821
|
+
}, jn = () => s(kn) === "credentials", Mn = () => {
|
|
1822
|
+
l(kn);
|
|
1823
|
+
}, Nn = "sinequa-authenticated", Pn = (e) => {
|
|
1824
|
+
e ? d(Nn, "true") : f(Nn);
|
|
1825
|
+
}, Fn = () => u(Nn) === "true", In = async () => {
|
|
1779
1826
|
try {
|
|
1780
|
-
let { signal: e } = F(
|
|
1781
|
-
return await
|
|
1827
|
+
let { signal: e } = F(Y);
|
|
1828
|
+
return await N("api/v1/principal", new URLSearchParams({ action: "get" }), {
|
|
1782
1829
|
signal: e,
|
|
1783
1830
|
redirect: "manual"
|
|
1784
1831
|
}), v("Server auto-authenticated the user (OIDC)"), !0;
|
|
1785
1832
|
} catch {
|
|
1786
1833
|
return !1;
|
|
1787
1834
|
}
|
|
1788
|
-
},
|
|
1835
|
+
}, Ln = () => jn() ? t.credentials() : t.sso(), Rn = async (n) => {
|
|
1789
1836
|
if (n) {
|
|
1790
1837
|
let { username: t, password: r } = n;
|
|
1791
|
-
return !t || !r ? (b("Credentials are required for authentication"), e(!1), !1) :
|
|
1838
|
+
return !t || !r ? (b("Credentials are required for authentication"), e(!1), !1) : zn({
|
|
1792
1839
|
username: t,
|
|
1793
1840
|
password: r
|
|
1794
1841
|
});
|
|
1795
1842
|
}
|
|
1796
1843
|
let a = r.authMode ?? t.unknown();
|
|
1797
1844
|
if (a.kind === "credentials") return e(!1), !1;
|
|
1798
|
-
if (a.kind === "bearer") return
|
|
1845
|
+
if (a.kind === "bearer") return Bn();
|
|
1799
1846
|
if ($()) {
|
|
1800
|
-
if (v("User already authenticated (existing token)"), i({ isRedirectUrl: !1 }), f(
|
|
1801
|
-
let e =
|
|
1847
|
+
if (v("User already authenticated (existing token)"), i({ isRedirectUrl: !1 }), f(X), a.kind === "unknown") {
|
|
1848
|
+
let e = Ln();
|
|
1802
1849
|
v(`Ambiguous auth mode resolved to "${e.kind}"`), i({ authMode: e });
|
|
1803
1850
|
}
|
|
1804
1851
|
return e(!0), !0;
|
|
1805
1852
|
}
|
|
1806
1853
|
try {
|
|
1807
|
-
if (v("Checking for an existing session via CSRF token retrieval"), await
|
|
1808
|
-
if (v("User already authenticated (existing session)"), f(
|
|
1809
|
-
let e =
|
|
1854
|
+
if (v("Checking for an existing session via CSRF token retrieval"), await Q()) {
|
|
1855
|
+
if (v("User already authenticated (existing session)"), f(X), a.kind === "unknown") {
|
|
1856
|
+
let e = Ln();
|
|
1810
1857
|
v(`Ambiguous auth mode resolved to "${e.kind}"`), i({ authMode: e });
|
|
1811
1858
|
}
|
|
1812
1859
|
return e(!0), !0;
|
|
1813
1860
|
}
|
|
1814
1861
|
} catch {}
|
|
1815
1862
|
switch (a.kind) {
|
|
1816
|
-
case "oauth": return v("Initiating OAuth authentication flow"), await
|
|
1817
|
-
case "saml": return v("Initiating SAML authentication flow"), await
|
|
1863
|
+
case "oauth": return v("Initiating OAuth authentication flow"), await En(), e(!1), !1;
|
|
1864
|
+
case "saml": return v("Initiating SAML authentication flow"), await Dn(), e(!1), !1;
|
|
1818
1865
|
case "sso": return e(!1), !1;
|
|
1819
|
-
default: return v("No provider declared — probing for server-side auto-authentication (OIDC)"), await
|
|
1866
|
+
default: return v("No provider declared — probing for server-side auto-authentication (OIDC)"), await In() ? (v("User auto-authenticated by the server (OIDC)"), f(X), i({ authMode: t.sso() }), await Q().catch(() => {}), Pn(!0), e(!0), !0) : (i({ authMode: t.credentials() }), e(!1), !1);
|
|
1820
1867
|
}
|
|
1821
1868
|
};
|
|
1822
|
-
async function
|
|
1823
|
-
v("Attempting authentication using credentials"), i({ authMode: t.credentials() }),
|
|
1869
|
+
async function zn(n) {
|
|
1870
|
+
v("Attempting authentication using credentials"), i({ authMode: t.credentials() }), An();
|
|
1824
1871
|
let { userOverrideActive: a, userOverride: o } = r;
|
|
1825
1872
|
i({
|
|
1826
1873
|
userOverrideActive: !1,
|
|
1827
1874
|
userOverride: void 0
|
|
1828
1875
|
});
|
|
1829
1876
|
try {
|
|
1830
|
-
await
|
|
1877
|
+
await On(n);
|
|
1831
1878
|
} catch (t) {
|
|
1832
1879
|
throw e(!1), t;
|
|
1833
1880
|
}
|
|
@@ -1836,9 +1883,9 @@ async function kn(n) {
|
|
|
1836
1883
|
userOverride: o
|
|
1837
1884
|
}), e(!0), !0;
|
|
1838
1885
|
}
|
|
1839
|
-
async function
|
|
1886
|
+
async function Bn() {
|
|
1840
1887
|
try {
|
|
1841
|
-
if (v("Attempting authentication using bearer token"), await
|
|
1888
|
+
if (v("Attempting authentication using bearer token"), await On()) return e(!0), !0;
|
|
1842
1889
|
} catch (t) {
|
|
1843
1890
|
throw b("Bearer authentication failed", t), e(!1), t;
|
|
1844
1891
|
}
|
|
@@ -1846,31 +1893,31 @@ async function An() {
|
|
|
1846
1893
|
}
|
|
1847
1894
|
//#endregion
|
|
1848
1895
|
//#region src/authentication/tokens/delete-web-token-cookie.ts
|
|
1849
|
-
var
|
|
1896
|
+
var Vn = async () => {
|
|
1850
1897
|
let e = new URLSearchParams({
|
|
1851
1898
|
action: "deleteWebTokenCookie",
|
|
1852
1899
|
noUserOverride: "true",
|
|
1853
1900
|
noAutoAuthentication: "true"
|
|
1854
|
-
}), { signal: t } = F(
|
|
1855
|
-
return
|
|
1901
|
+
}), { signal: t } = F(Y);
|
|
1902
|
+
return N("api/v1/challenge", e, { signal: t });
|
|
1856
1903
|
};
|
|
1857
1904
|
//#endregion
|
|
1858
1905
|
//#region src/authentication/session/logout.ts
|
|
1859
|
-
async function
|
|
1906
|
+
async function Hn() {
|
|
1860
1907
|
let { userOverrideActive: e } = r;
|
|
1861
|
-
if (
|
|
1862
|
-
let { methodresult: e, logoutUrl: t } = await
|
|
1908
|
+
if (Un(), Mn(), !e) try {
|
|
1909
|
+
let { methodresult: e, logoutUrl: t } = await Vn();
|
|
1863
1910
|
if (e === "ok") return t;
|
|
1864
1911
|
b("logout failed");
|
|
1865
1912
|
} catch (e) {
|
|
1866
1913
|
b("logout failed", e);
|
|
1867
1914
|
}
|
|
1868
1915
|
}
|
|
1869
|
-
function
|
|
1870
|
-
l("csrfToken"), f("sinequa-credentials"),
|
|
1916
|
+
function Un() {
|
|
1917
|
+
l("csrfToken"), f("sinequa-credentials"), Pn(!1), e(!1);
|
|
1871
1918
|
}
|
|
1872
1919
|
//#endregion
|
|
1873
1920
|
//#region src/authentication/session/user-authentication.ts
|
|
1874
|
-
var
|
|
1921
|
+
var Wn = () => !!$() || Fn();
|
|
1875
1922
|
//#endregion
|
|
1876
|
-
export {
|
|
1923
|
+
export { kt as $, Le as $t, cn as A, ne as An, z as At, q as B, P as Bt, vn as C, be as Cn, V as Ct, un as D, ee as Dn, Ye as Dt, dn as E, se as En, B as Et, $t as F, t as Fn, We as Ft, Ht as G, A as Gt, qt as H, N as Ht, Qt as I, n as In, Ue as It, zt as J, D as Jt, Ut as K, Be as Kt, Zt as L, e as Ln, I as Lt, nn as M, te as Mn, L as Mt, an as N, r as Nn, Ke as Nt, sn as O, re as On, Je as Ot, rn as P, i as Pn, Ge as Pt, Dt as Q, T as Qt, Xt as R, F as Rt, mn as S, p as Sn, rt as St, gn as T, m as Tn, $e as Tt, Gt as U, M as Ut, Jt as V, Ve as Vt, Vt as W, j as Wt, At as X, Re as Xt, Bt as Y, ze as Yt, Rt as Z, E as Zt, Cn as _, Te as _n, ct as _t, Rn as a, ke as an, St as at, yn as b, ye as bn, ft as bt, On as c, Ae as cn, K as ct, Dn as d, Ee as dn, dt, Ie as en, Ot as et, En as f, De as fn, lt as ft, xn as g, y as gn, ot as gt, wn as h, v as hn, at as ht, Vn as i, Pe as in, Tt as it, on as j, ae as jn, R as jt, ln as k, ie as kn, qe as kt, Q as l, C as ln, ht as lt, Sn as m, b as mn, it as mt, Un as n, je as nn, Ct as nt, In as o, Fe as on, xt as ot, Tn as p, _ as pn, ut as pt, Wt as q, O as qt, Hn as r, Ne as rn, wt as rt, $ as s, Me as sn, bt as st, Wn as t, S as tn, Et as tt, Z as u, Oe as un, gt as ut, bn as v, we as vn, U as vt, pn as w, xe as wn, H as wt, _n as x, Se as xn, nt as xt, hn as y, Ce as yn, st as yt, Yt as z, He as zt };
|