@sinequa/atomic 2.0.1 → 2.0.4

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.
Files changed (30) hide show
  1. package/README.md +38 -3
  2. package/dist/atomic.cjs +1 -0
  3. package/dist/atomic.js +2 -1927
  4. package/dist/authentication/index.d.ts +1 -1
  5. package/dist/authentication/index.d.ts.map +1 -1
  6. package/dist/authentication/session/index.d.ts +1 -0
  7. package/dist/authentication/session/index.d.ts.map +1 -1
  8. package/dist/authentication/session/login.d.ts.map +1 -1
  9. package/dist/authentication/session/try-auto-authentication.d.ts +19 -0
  10. package/dist/authentication/session/try-auto-authentication.d.ts.map +1 -0
  11. package/dist/authentication/tokens/get-csrf-token.d.ts +12 -6
  12. package/dist/authentication/tokens/get-csrf-token.d.ts.map +1 -1
  13. package/dist/spfx/index.cjs +1 -0
  14. package/dist/spfx/index.d.ts +3 -0
  15. package/dist/spfx/index.d.ts.map +1 -0
  16. package/dist/spfx/index.js +2 -0
  17. package/dist/src-BW4JX9K-.js +1814 -0
  18. package/dist/src-U6mXZKpZ.cjs +1 -0
  19. package/dist/web-api/helpers/aad-http-client-manager.d.ts +53 -0
  20. package/dist/web-api/helpers/aad-http-client-manager.d.ts.map +1 -0
  21. package/dist/web-api/helpers/handle-response.d.ts +5 -2
  22. package/dist/web-api/helpers/handle-response.d.ts.map +1 -1
  23. package/dist/web-api/helpers/methods/del.d.ts.map +1 -1
  24. package/dist/web-api/helpers/methods/get.d.ts +4 -0
  25. package/dist/web-api/helpers/methods/get.d.ts.map +1 -1
  26. package/dist/web-api/helpers/methods/patch.d.ts.map +1 -1
  27. package/dist/web-api/helpers/methods/post.d.ts.map +1 -1
  28. package/dist/web-api/helpers/methods/put.d.ts.map +1 -1
  29. package/package.json +17 -4
  30. package/dist/atomic.umd.cjs +0 -1
@@ -0,0 +1,1814 @@
1
+ //#region src/authentication/events/emit-authenticated-event.ts
2
+ function e(e) {
3
+ if (typeof CustomEvent > "u" || typeof dispatchEvent > "u") return;
4
+ let t = new CustomEvent("authenticated", {
5
+ bubbles: !0,
6
+ cancelable: !1,
7
+ detail: { authenticated: e }
8
+ });
9
+ dispatchEvent(t);
10
+ }
11
+ //#endregion
12
+ //#region src/configurations/auth-mode.ts
13
+ var t = {
14
+ credentials: () => ({ kind: "credentials" }),
15
+ sso: () => ({ kind: "sso" }),
16
+ oauth: (e) => ({
17
+ kind: "oauth",
18
+ provider: e
19
+ }),
20
+ saml: (e) => ({
21
+ kind: "saml",
22
+ provider: e
23
+ }),
24
+ bearer: (e) => ({
25
+ kind: "bearer",
26
+ token: e
27
+ }),
28
+ unknown: () => ({ kind: "unknown" })
29
+ };
30
+ function n(e, n) {
31
+ let { useCredentials: r, useSSO: i, useSAML: a } = e;
32
+ return a && n.autoSAMLProvider ? t.saml(n.autoSAMLProvider) : r && i ? t.unknown() : r ? t.credentials() : i ? t.sso() : n.authMode ?? t.unknown();
33
+ }
34
+ //#endregion
35
+ //#region src/configurations/global.config.ts
36
+ var r = {
37
+ loginPath: "/login",
38
+ createRoutes: !1,
39
+ authMode: t.unknown()
40
+ };
41
+ Object.defineProperties(r, {
42
+ useCredentials: {
43
+ enumerable: !1,
44
+ configurable: !0,
45
+ get() {
46
+ let e = r.authMode?.kind;
47
+ return e === "credentials" || e === "unknown";
48
+ }
49
+ },
50
+ useSSO: {
51
+ enumerable: !1,
52
+ configurable: !0,
53
+ get() {
54
+ let e = r.authMode?.kind;
55
+ return e === "sso" || e === "unknown";
56
+ }
57
+ },
58
+ useSAML: {
59
+ enumerable: !1,
60
+ configurable: !0,
61
+ get() {
62
+ return r.authMode?.kind === "saml";
63
+ }
64
+ }
65
+ });
66
+ function i(e) {
67
+ let { useCredentials: t, useSSO: i, useSAML: a, authMode: o, ...s } = e;
68
+ if (Object.assign(r, s), o !== void 0) {
69
+ r.authMode = o;
70
+ return;
71
+ }
72
+ (t !== void 0 || i !== void 0 || a !== void 0) && (r.authMode = n({
73
+ useCredentials: t,
74
+ useSSO: i,
75
+ useSAML: a
76
+ }, r));
77
+ }
78
+ //#endregion
79
+ //#region src/polyfills/storage.ts
80
+ var a = {
81
+ store: {},
82
+ getItem(e) {
83
+ return this.store[e] ?? null;
84
+ },
85
+ setItem(e, t) {
86
+ this.store[e] = t.toString();
87
+ },
88
+ removeItem(e) {
89
+ delete this.store[e];
90
+ },
91
+ clear() {
92
+ this.store = {};
93
+ }
94
+ }, o = a;
95
+ function s(e) {
96
+ return typeof window > "u" || !window.localStorage ? a.getItem(e) : window.localStorage.getItem(e);
97
+ }
98
+ function c(e) {
99
+ typeof window > "u" || !window.localStorage ? a.removeItem(e) : window.localStorage.removeItem(e);
100
+ }
101
+ function l(e) {
102
+ return typeof window > "u" || !window.sessionStorage ? o.getItem(e) : window.sessionStorage.getItem(e);
103
+ }
104
+ function u(e, t) {
105
+ typeof window > "u" || !window.sessionStorage ? o.setItem(e, t) : window.sessionStorage.setItem(e, t);
106
+ }
107
+ function d(e) {
108
+ typeof window > "u" || !window.sessionStorage ? o.removeItem(e) : window.sessionStorage.removeItem(e);
109
+ }
110
+ //#endregion
111
+ //#region src/utils/aggregations.ts
112
+ var ee = /.*:\(?([><=\d\-.AND ]+)\)?/;
113
+ function te(e, t) {
114
+ return !e?.items || e?.items?.length === 0 ? [] : e.items.reduce((n, r) => {
115
+ if (!r.value || r.value === "") return n;
116
+ let i = ne(r, e.column);
117
+ return n.push({
118
+ operator: i.operator,
119
+ value: i.value,
120
+ display: r.display || i.display,
121
+ filters: i.filters,
122
+ disabled: r.count === 0,
123
+ hidden: r.count === 0 && e.isDistribution ? !t : !1
124
+ }), n;
125
+ }, []);
126
+ }
127
+ function ne(e, t) {
128
+ let n = t, r = e.value.match(ee);
129
+ if (r?.[1]) {
130
+ let t = (r?.[1].split(" AND ")).map((t) => ({
131
+ field: n,
132
+ operator: t.indexOf(">=") === -1 ? "lt" : "gte",
133
+ value: t.substring(t.indexOf(" ") + 1),
134
+ display: e.display || e.value
135
+ }));
136
+ if (t.length === 2) return {
137
+ field: n,
138
+ operator: "and",
139
+ filters: t,
140
+ value: e.value,
141
+ display: t[0].display || t[0].value
142
+ };
143
+ if (t.length === 1) return {
144
+ ...t[0],
145
+ field: n
146
+ };
147
+ throw Error("Failed to parse distribution expression");
148
+ }
149
+ return {
150
+ field: n,
151
+ operator: "eq",
152
+ value: e.value,
153
+ display: e.display
154
+ };
155
+ }
156
+ function re(e, t, n) {
157
+ return e.valuesAreExpressions ? t.display === n.display : t.value === n.value;
158
+ }
159
+ function f(e) {
160
+ return e.items &&= e.items.map((e) => f(e)), e.items && e.items.some((e) => e.$selected || e.$opened) && (e.$opened = !0), e;
161
+ }
162
+ function ie(e, t) {
163
+ let n = [];
164
+ if (e.length > 0) {
165
+ let r = /* @__PURE__ */ new Map(), i = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").normalize("NFD").replace(/[\u0300-\u036f]/g, ""), a = RegExp("\\b" + i, "i");
166
+ e.forEach((e) => {
167
+ if (e.display.length > 1) {
168
+ let i = e.display.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), o = a.exec(i);
169
+ ae(n, r, "/", e.display, +(e.frequency || 0), 1, (o?.index || 0) + t.length);
170
+ }
171
+ });
172
+ }
173
+ return n;
174
+ }
175
+ function ae(e, t, n, r, i, a, o) {
176
+ let s = r.indexOf("/", n.length), c = r.substring(0, s + 1), l = t.get(c);
177
+ if (!l) {
178
+ let u = c.replace(/^\/|\/$/g, "");
179
+ l = {
180
+ value: r.substring(n.length, s),
181
+ count: i,
182
+ items: [],
183
+ hasChildren: !1,
184
+ $level: a,
185
+ $opened: o >= c.length,
186
+ $path: u
187
+ }, t.set(c, l), e.push(l);
188
+ }
189
+ c.length < r.length && (l.hasChildren = !0, ae(l.items, t, c, r, i, a + 1, o));
190
+ }
191
+ //#endregion
192
+ //#region src/utils/bisect.ts
193
+ function oe(e, t) {
194
+ return e.reduce((e, n) => (t(n) ? e.true.push(n) : e.false.push(n), e), {
195
+ true: [],
196
+ false: []
197
+ });
198
+ }
199
+ //#endregion
200
+ //#region src/utils/concepts.ts
201
+ var se = /(([\+\-])?\(([^\)]+)\))|(([\+\-])?\[([^\]]+)\])|(([\+\-])?\"([^\"]+)\")|(([\+\-])?\/([^\/]+)\/)|(([\+\-])?(\S+))/g, ce = 2, le = 3, ue = 5, de = 6, fe = 8, p = 9, pe = 11, me = 12, he = 14, ge = 15;
202
+ function m(e) {
203
+ if (!e) return [];
204
+ let t = [], n = e.matchAll(se);
205
+ for (let e of n) e[le] ? t.push({
206
+ type: "group",
207
+ value: e[le],
208
+ op: e[ce]
209
+ }) : e[de] ? t.push({
210
+ type: "adjacent",
211
+ value: e[de],
212
+ op: e[ue]
213
+ }) : e[p] ? t.push({
214
+ type: "exact",
215
+ value: e[p],
216
+ op: e[fe]
217
+ }) : e[me] ? t.push({
218
+ type: "regex",
219
+ value: e[me],
220
+ op: e[pe]
221
+ }) : e[ge] && t.push({
222
+ type: "token",
223
+ value: e[ge],
224
+ op: e[he]
225
+ });
226
+ return t;
227
+ }
228
+ function h(e) {
229
+ return e.map((e) => {
230
+ let t = e.op || "";
231
+ switch (e.type) {
232
+ case "group": return `${t}(${e.value})`;
233
+ case "adjacent": return `${t}[${e.value}]`;
234
+ case "exact": return `${t}"${e.value}"`;
235
+ case "regex": return `${t}/${e.value}/`;
236
+ case "token": return `${t}${e.value}`;
237
+ }
238
+ }).join(" ");
239
+ }
240
+ function _e(e, t, n) {
241
+ let r = m(e);
242
+ for (let e of t) r.push({
243
+ type: "adjacent",
244
+ value: e,
245
+ op: n
246
+ });
247
+ return h(r);
248
+ }
249
+ function ve(e, t) {
250
+ let n = m(t), r = n.findIndex((t) => t.value === e);
251
+ return r === -1 ? t : (n.splice(r, 1), t = h(n));
252
+ }
253
+ function ye(e) {
254
+ return h(m(e).filter((e) => e.type !== "adjacent"));
255
+ }
256
+ function be(e) {
257
+ return m(e).filter((e) => e.type === "adjacent").map((e) => e.value);
258
+ }
259
+ //#endregion
260
+ //#region src/utils/date.ts
261
+ function xe(e, t, n) {
262
+ let r = new Intl.RelativeTimeFormat(e, { numeric: "auto" }), { offset: i, unit: a, isFuture: o } = Se(t, n);
263
+ return r.format(i * (o ? 1 : -1), a);
264
+ }
265
+ function Se(e, t) {
266
+ let n = new Date(e), r = t ? new Date(t) : /* @__PURE__ */ new Date(), i = Math.abs(r.getTime() - n.getTime());
267
+ return {
268
+ offset: Math.floor(i / (1e3 * 60 * 60 * 24)),
269
+ unit: "day",
270
+ isFuture: n > r
271
+ };
272
+ }
273
+ //#endregion
274
+ //#region src/utils/is-not-input-event.ts
275
+ function Ce(e) {
276
+ let t = e.target;
277
+ return t && t.nodeName !== "INPUT" && t.nodeName !== "TEXTAREA";
278
+ }
279
+ //#endregion
280
+ //#region src/utils/query-params.ts
281
+ function we(e) {
282
+ if (e === void 0) return;
283
+ let { q: t, f: n, p: r, s: i, t: a, n: o, b: s } = _(e), [c] = e.split("?");
284
+ return {
285
+ path: c,
286
+ text: t,
287
+ filters: n ? g(n) : void 0,
288
+ page: r ? parseInt(r, 10) : void 0,
289
+ sort: i,
290
+ tab: a,
291
+ name: o,
292
+ basket: s
293
+ };
294
+ }
295
+ function Te(e) {
296
+ if (!e) return "";
297
+ let { text: t, filters: n, page: r, sort: i, tab: a, name: o, basket: s } = e, c = {};
298
+ return t && (c.q = t), n && (c.f = JSON.stringify(n)), r && (c.p = r.toString()), i && (c.s = i), a && (c.t = a), o && (c.n = o), s && (c.b = s), new URLSearchParams(c).toString() || "";
299
+ }
300
+ function Ee(e) {
301
+ if (e === void 0) return [];
302
+ let { f: t } = _(e);
303
+ return g(t);
304
+ }
305
+ function g(e) {
306
+ let t = decodeURIComponent(e);
307
+ try {
308
+ return JSON.parse(t ?? "[]");
309
+ } catch {
310
+ return console.error(`Error parsing filters from URI: ${e}`), [];
311
+ }
312
+ }
313
+ function _(e) {
314
+ let t = e.split("?")[1];
315
+ if (t === void 0) return {};
316
+ let n = new URLSearchParams(t);
317
+ return Object.fromEntries(n);
318
+ }
319
+ function De(e) {
320
+ let { q: t = "" } = _(e);
321
+ return t;
322
+ }
323
+ function Oe(e) {
324
+ let { id: t } = _(e);
325
+ return decodeURIComponent(t);
326
+ }
327
+ function ke(e) {
328
+ let { p: t = "0" } = _(e);
329
+ return parseInt(t, 10);
330
+ }
331
+ function Ae(e) {
332
+ let { t } = _(e);
333
+ return t;
334
+ }
335
+ //#endregion
336
+ //#region src/utils/syslang.ts
337
+ function je(e, t) {
338
+ if (!e) return e;
339
+ let n = 0, r = e.length, i = 0;
340
+ if (e[i] === "[") {
341
+ for (; i < r && /[0-9]/.test(e[i]);) i++;
342
+ e[i] === "]" && (n = i + 1);
343
+ }
344
+ let a = v(e, n, !1);
345
+ if (!a) return e;
346
+ let o = t.charCodeAt(0), s = t.charCodeAt(1), c = a;
347
+ for (; c;) if (o === c.lang1 && s === c.lang2) {
348
+ let t = v(e, c.end + 4, !0);
349
+ return e.substring(t.start, t.end);
350
+ } else c = v(e, c.end + 4, !1);
351
+ return e.substring(a.start, a.end) || e;
352
+ }
353
+ function v(e, t, n) {
354
+ for (let n = t, r = e.length - 3; n < r; n++) if (e[n] === "[" && e[n + 3] === "]") return {
355
+ start: t,
356
+ end: n,
357
+ lang1: e.charCodeAt(n + 1),
358
+ lang2: e.charCodeAt(n + 2)
359
+ };
360
+ if (n) return {
361
+ start: t,
362
+ end: e.length,
363
+ lang1: -1,
364
+ lang2: -1
365
+ };
366
+ }
367
+ //#endregion
368
+ //#region src/utils/utilities.ts
369
+ function Me(e, t) {
370
+ let { useLocale: n, useLocaleAsPrefix: r, indexFile: i, path: a, folder: o } = t, s = n ? `${e}/` : null, c = r ? `${e}.${i}` : i ?? "";
371
+ return [
372
+ a,
373
+ o,
374
+ `${s || ""}${c}`
375
+ ].filter((e) => e !== void 0).join("/");
376
+ }
377
+ //#endregion
378
+ //#region src/utils/notification.ts
379
+ function y(e) {
380
+ let t = new CustomEvent("notification", {
381
+ bubbles: !0,
382
+ cancelable: !1,
383
+ detail: e
384
+ });
385
+ dispatchEvent(t);
386
+ }
387
+ var Ne = {
388
+ success: (e, t) => {
389
+ y({
390
+ type: "success",
391
+ message: e,
392
+ options: t
393
+ });
394
+ },
395
+ info: (e, t) => {
396
+ y({
397
+ type: "info",
398
+ message: e,
399
+ options: t
400
+ });
401
+ },
402
+ warning: (e, t) => {
403
+ y({
404
+ type: "warning",
405
+ message: e,
406
+ options: t
407
+ });
408
+ },
409
+ error: (e, t) => {
410
+ y({
411
+ type: "error",
412
+ message: e,
413
+ options: t
414
+ });
415
+ }
416
+ }, Pe = /* @__PURE__ */ function(e) {
417
+ return e[e.DEBUG = 0] = "DEBUG", e[e.INFO = 1] = "INFO", e[e.WARN = 2] = "WARN", e[e.ERROR = 3] = "ERROR", e[e.NONE = 4] = "NONE", e;
418
+ }({}), b = {
419
+ level: 1,
420
+ enableConsoleOutput: !0
421
+ };
422
+ function Fe(e) {
423
+ b = {
424
+ ...b,
425
+ ...e
426
+ };
427
+ }
428
+ function x(e, t, n) {
429
+ if (e < b.level) return;
430
+ let r = `${`[${Pe[e]}]`} ${t}`;
431
+ if (b.enableConsoleOutput) switch (e) {
432
+ case 0:
433
+ console.debug(r, n || "");
434
+ break;
435
+ case 1:
436
+ console.info(r, n || "");
437
+ break;
438
+ case 2:
439
+ console.warn(r, n || "");
440
+ break;
441
+ case 3:
442
+ console.error(r, n || "");
443
+ break;
444
+ }
445
+ }
446
+ function S(e, t) {
447
+ x(0, e, t);
448
+ }
449
+ function C(e, t) {
450
+ x(1, e, t);
451
+ }
452
+ function w(e, t) {
453
+ x(2, e, t);
454
+ }
455
+ function T(e, t) {
456
+ x(3, e, t);
457
+ }
458
+ //#endregion
459
+ //#region src/web-api/helpers/create-headers.ts
460
+ function E(e) {
461
+ let t = $(), n = new Headers(e);
462
+ n.append("Sinequa-Force-Camel-Case", "true"), n.append("accept", "application/json"), t && n.append("Sinequa-csrf-token", t);
463
+ let { userOverride: i, userOverrideActive: a, bearerToken: o } = r;
464
+ return o && n.append("Authorization", `Bearer ${o}`), i && a && (n.append("sinequa-override-user", i.username), n.append("sinequa-override-domain", i.domain)), n;
465
+ }
466
+ //#endregion
467
+ //#region src/web-api/helpers/errors/api-error.ts
468
+ var D = class extends Error {
469
+ status;
470
+ constructor(e, t) {
471
+ super(e), this.name = "ApiError", this.status = t;
472
+ }
473
+ }, O = class extends D {
474
+ constructor(e = "Server error") {
475
+ super(e, 500), this.name = "ServerError";
476
+ }
477
+ }, Ie = class extends D {
478
+ constructor(e = "Request timed out") {
479
+ super(e, 408), this.name = "TimeoutError";
480
+ }
481
+ }, k = class extends D {
482
+ constructor(e = "Unauthorized access") {
483
+ super(e, 401), this.name = "UnauthorizedError";
484
+ }
485
+ };
486
+ //#endregion
487
+ //#region src/web-api/helpers/handle-response.ts
488
+ async function A(e, t = "json") {
489
+ let n = e.headers.get("sinequa-jwt-refresh");
490
+ if (n !== null && X(n), e.status === 200) switch (t) {
491
+ case "arraybuffer": return await e.arrayBuffer();
492
+ case "blob": return await e.blob();
493
+ case "text": return await e.text();
494
+ default: return await e.json();
495
+ }
496
+ if (e.status === 401) {
497
+ if (r.userOverrideActive) {
498
+ let t = {};
499
+ try {
500
+ t = await (e.clone?.() ?? e).json();
501
+ } catch {}
502
+ throw w("Unauthorized access attempt with user override", {
503
+ endpoint: e.url ?? "",
504
+ error: t
505
+ }), new k(t.errorMessage ?? t.message ?? "Unauthorized... User override failed.");
506
+ }
507
+ return await j(e, 401);
508
+ }
509
+ return e.status === 500 ? (T("Server error occurred", { endpoint: e.url ?? "" }), await j(e, 500)) : (w(`Unexpected response status: ${e.status}`, { endpoint: e.url ?? "" }), await j(e, e.status));
510
+ }
511
+ async function j(e, t) {
512
+ try {
513
+ let { done: n, value: r } = await e.body?.getReader().read() || {
514
+ done: !0,
515
+ value: void 0
516
+ };
517
+ if (n || !r) throw t === 401 ? new k() : t === 500 ? new O() : new D(`Request failed with status ${t}`, t);
518
+ let i = JSON.parse(new TextDecoder().decode(r));
519
+ throw Error(i.errorMessage || i.message || `Request failed with status ${t}`, { cause: {
520
+ errorCode: i.errorCode,
521
+ errorCodeTest: i.errorCodeTest
522
+ } });
523
+ } catch (e) {
524
+ throw e instanceof D ? e : t === 401 ? new k(e.message) : t === 500 ? new O(e.message) : new D(e.message ?? `Request failed with status ${t}`, t);
525
+ }
526
+ }
527
+ var M = new class {
528
+ client = null;
529
+ initialize(e) {
530
+ this.client = e;
531
+ }
532
+ getClient() {
533
+ if (!this.client) throw Error("AadHttpClient not initialized. Call initializeAadHttpClient first.");
534
+ return this.client;
535
+ }
536
+ isInitialized() {
537
+ return this.client !== null;
538
+ }
539
+ }();
540
+ function Le(e) {
541
+ M.initialize(e);
542
+ }
543
+ //#endregion
544
+ //#region src/web-api/helpers/methods/del.ts
545
+ async function N(e, t, n) {
546
+ let i = E(n?.headers), { backendUrl: a } = r, o = t ? `?${new URLSearchParams(t)}` : "", s = a ? `${a}/${e}${o}` : `${e}${o}`;
547
+ S(`Making DELETE request to: ${s}`);
548
+ try {
549
+ if (M.isInitialized()) {
550
+ let e = M.getClient();
551
+ return A(await e.fetch(s, e.constructor.configurations.v1, {
552
+ method: "DELETE",
553
+ headers: i
554
+ }), n?.responseType);
555
+ }
556
+ return A(await fetch(s, {
557
+ method: "DELETE",
558
+ credentials: "include",
559
+ headers: i
560
+ }), n?.responseType);
561
+ } catch (e) {
562
+ throw T("Error making DELETE request:", e), e;
563
+ }
564
+ }
565
+ //#endregion
566
+ //#region src/web-api/helpers/methods/get.ts
567
+ async function P(e, t, n) {
568
+ let i = E(n?.headers), { backendUrl: a } = r, o = t ? `?${new URLSearchParams(t)}` : "";
569
+ e.startsWith("plugin") && (e = `api/v1/${e}`);
570
+ let s = a ? `${a}/${e}${o}` : `${e}${o}`;
571
+ S(`Making GET request to: ${s}`);
572
+ try {
573
+ if (M.isInitialized()) {
574
+ let e = M.getClient();
575
+ return A(await e.get(s, e.constructor.configurations.v1, {
576
+ headers: i,
577
+ signal: n?.signal
578
+ }), n?.responseType);
579
+ }
580
+ return A(await fetch(s, {
581
+ method: "GET",
582
+ credentials: "include",
583
+ headers: i,
584
+ signal: n?.signal,
585
+ redirect: n?.redirect
586
+ }), n?.responseType);
587
+ } catch (e) {
588
+ throw T("Error making GET request:", e), e;
589
+ }
590
+ }
591
+ //#endregion
592
+ //#region src/web-api/helpers/methods/patch.ts
593
+ async function Re(e, t, n) {
594
+ let i = E(n?.headers);
595
+ i.append("content-type", "application/json");
596
+ let { app: a, backendUrl: o } = r, s = {
597
+ app: a,
598
+ ...t,
599
+ locale: t.locale || navigator.language,
600
+ noUserOverride: !0,
601
+ noAutoAuthentication: !0
602
+ }, c = o ? `${o}/${e}` : `${e}`;
603
+ S(`Making PATCH request to: ${c}`);
604
+ try {
605
+ if (M.isInitialized()) {
606
+ let e = M.getClient();
607
+ return A(await e.fetch(c, e.constructor.configurations.v1, {
608
+ method: "PATCH",
609
+ headers: i,
610
+ body: JSON.stringify(s)
611
+ }), n?.responseType);
612
+ }
613
+ return A(await fetch(c, {
614
+ method: "PATCH",
615
+ headers: i,
616
+ credentials: "include",
617
+ body: JSON.stringify(s)
618
+ }), n?.responseType);
619
+ } catch (e) {
620
+ throw T("Error making PATCH request:", e), e;
621
+ }
622
+ }
623
+ //#endregion
624
+ //#region src/web-api/helpers/methods/post.ts
625
+ async function F(e, t, n) {
626
+ let i = E(n?.headers), { app: a, backendUrl: o } = r;
627
+ i.has("Content-Type") || i.set("Content-Type", "application/json");
628
+ let s = {
629
+ app: a,
630
+ ...t,
631
+ locale: t.locale || navigator.language,
632
+ noUserOverride: !0,
633
+ noAutoAuthentication: !0
634
+ };
635
+ e.startsWith("plugin") && (e = `api/v1/${e}`);
636
+ let c = o ? `${o}/${e}` : `${e}`;
637
+ S(`Making POST request to: ${c}`);
638
+ try {
639
+ if (M.isInitialized()) {
640
+ let e = M.getClient();
641
+ return A(await e.post(c, e.constructor.configurations.v1, {
642
+ headers: i,
643
+ body: JSON.stringify(s),
644
+ signal: n?.signal
645
+ }), n?.responseType);
646
+ }
647
+ return A(await fetch(c, {
648
+ method: "POST",
649
+ headers: i,
650
+ credentials: "include",
651
+ body: JSON.stringify(s),
652
+ signal: n?.signal
653
+ }), n?.responseType);
654
+ } catch (e) {
655
+ throw T("Error making POST request:", e), e;
656
+ }
657
+ }
658
+ //#endregion
659
+ //#region src/web-api/helpers/methods/put.ts
660
+ async function ze(e, t, n) {
661
+ let i = E(n?.headers), { app: a, backendUrl: o } = r, s = {
662
+ app: a,
663
+ ...t,
664
+ locale: t.locale || navigator.language,
665
+ noUserOverride: !0,
666
+ noAutoAuthentication: !0
667
+ }, c = `${o}/${e}`;
668
+ S(`Making PUT request to: ${c}`);
669
+ try {
670
+ if (M.isInitialized()) {
671
+ let e = M.getClient();
672
+ return A(await e.fetch(c, e.constructor.configurations.v1, {
673
+ method: "PUT",
674
+ headers: i,
675
+ body: JSON.stringify(s)
676
+ }), n?.responseType);
677
+ }
678
+ return A(await fetch(c, {
679
+ method: "PUT",
680
+ headers: i,
681
+ credentials: "include",
682
+ body: JSON.stringify(s)
683
+ }), n?.responseType);
684
+ } catch (e) {
685
+ throw T("Error making PUT request:", e), e;
686
+ }
687
+ }
688
+ //#endregion
689
+ //#region src/web-api/helpers/utils/create-timeout-controller.ts
690
+ function I(e) {
691
+ let t = new AbortController(), { signal: n } = t;
692
+ return e && setTimeout(() => {
693
+ n.aborted || t.abort(new Ie(`Request timed out after ${e}ms`));
694
+ }, e), {
695
+ controller: t,
696
+ signal: n
697
+ };
698
+ }
699
+ //#endregion
700
+ //#region src/web-api/helpers/utils/date-utils..ts
701
+ function L(e) {
702
+ if (!e) return;
703
+ let t = new Date(e);
704
+ return Number.isNaN(t.getTime()) ? void 0 : t;
705
+ }
706
+ function Be(e) {
707
+ let t = L(e);
708
+ return !!t && t.getTime() <= Date.now();
709
+ }
710
+ function Ve(e, t = 7) {
711
+ let n = L(e);
712
+ if (!n) return !1;
713
+ let r = Date.now(), i = r + t * 24 * 60 * 60 * 1e3, a = n.getTime();
714
+ return a > r && a <= i;
715
+ }
716
+ //#endregion
717
+ //#region src/web-api/helpers/utils/with-retry.ts
718
+ async function He(e, t = 0, n = 1e3) {
719
+ let r;
720
+ for (let i = 0; i <= t; i++) try {
721
+ return await e();
722
+ } catch (e) {
723
+ if (r = e, e instanceof D && e.status >= 400 && e.status < 500 && e.status !== 429 || e instanceof DOMException && e.name === "AbortError") throw e;
724
+ i < t && (w(`Retrying request (${i + 1}/${t})`, { error: e }), await new Promise((e) => setTimeout(e, n)));
725
+ }
726
+ throw r;
727
+ }
728
+ //#endregion
729
+ //#region src/helpers/column-resolver.ts
730
+ function Ue(e, t, n) {
731
+ if (!e || !t) return;
732
+ if (n) {
733
+ let r = Object.keys(t.queries).find((e) => e === n?.toLowerCase()), i;
734
+ r && (i = t.queries[r]);
735
+ let a = (i?.columnsInfo?.columns || [])?.find((t) => t.aliases?.split(",")?.includes(e));
736
+ if (a) return a.name;
737
+ }
738
+ let r = t.indexes?._?.columns, i = Object.entries(r).find((t) => t[1].aliases?.includes(e));
739
+ if (i) return i[0];
740
+ }
741
+ //#endregion
742
+ //#region src/types/audit/AuditEventType.ts
743
+ var R = /* @__PURE__ */ function(e) {
744
+ return e.None = "None", e.Search_FirstPage = "Search_FirstPage", e.Search_Text = "Search_Text", e.Search_Refine = "Search_Refine", e.Search_Select_Item = "Search_Select_Item", e.Search_Select_Custom = "Search_Select_Custom", e.Search_Select_Concept = "Search_Select_Concept", e.Search_Select_Correction = "Search_Select_Correction", e.Search_GotoPage = "Search_GotoPage", e.Search_GotoTab = "Search_GotoTab", e.Search_DisplayResult = "Search_DisplayResult", e.Search_RemoveResult = "Search_RemoveResult", e.Search_RemoveAdvanced = "Search_RemoveAdvanced", e.Search_SavedQuery = "Search_SavedQuery", e.Search_WebService = "Search_WebService", e.Search_DidYouMean_Original = "Search_DidYouMean_Original", e.Search_DidYouMean_Correction = "Search_DidYouMean_Correction", e.Search_ExportCSV = "Search_ExportCSV", e.Search_SavedQuery_ExportCSV = "Search_SavedQuery_ExportCSV", e.Search_Selection_ExportCSV = "Search_Selection_ExportCSV", e.Search_AlertQuery = "Search_AlertQuery", e.Search_Select_AnalyticsItem = "Search_Select_AnalyticsItem", e.Search_Sort = "Search_Sort", e.Search_Exit_Logout = "Search_Exit_Logout", e.Search_Timeline_Usage = "Search_Timeline_Usage", e.Search_AutoComplete = "Search_Autocomplete", e.Search_Login_Success = "Login_Success_Form", e.Search_QueryIntent_Detected = "Search_QueryIntent_Detected", e.SavedQuery_Add = "SavedQuery_Add", e.SavedQuery_Delete = "SavedQuery_Delete", e.SavedQuery_DeleteAll = "SavedQuery_DeleteAll", e.SavedQuery_Rename = "SavedQuery_Rename", e.Alert_Edit = "Alert_Edit", e.Alert_Delete = "Alert_Delete", e.Alert_DeleteAll = "Alert_DeleteAll", e.Link_Display = "Link_Display", e.Link_Click = "Link_Click", e.Basket_Add = "Basket_Add", e.Basket_Delete = "Basket_Delete", e.Basket_DeleteAll = "Basket_DeleteAll", e.Basket_Rename = "Basket_Rename", e.Basket_AddDoc = "Basket_AddDoc", e.Basket_RemoveDoc = "Basket_RemoveDoc", e.Basket_Open = "Basket_Open", e.Basket_ExportCSV = "Basket_ExportCSV", e.Label_Add = "Label_Add", e.Label_Delete = "Label_Delete", e.Label_Rename = "Label_Rename", e.Label_Open = "Label_Open", e.Label_AddDoc = "Label_AddDoc", e.Label_RemoveDoc = "Label_RemoveDoc", e.Label_ExportCSV = "Label_ExportCSV", e.Label_Menu_ExportCSV = "Label_Menu_ExportCSV", e.Rating_Set = "Rating_Set", e.Rating_Delete = "Rating_Delete", e.Doc_Preview = "Doc_Preview", e.Doc_CacheHtml = "Doc_CacheHtml", e.Doc_CachePdf = "Doc_CachePdf", e.Doc_CacheOriginal = "Doc_CacheOriginal", e.Doc_Url1 = "Doc_Url1", e.Doc_Url2 = "Doc_Url2", e.Preview_Close = "Preview_Close", e.Click_ResultLink = "Click_ResultLink", e.Click_ResultLink1 = "Click_ResultLink1", e.Click_ResultLink2 = "Click_ResultLink2", e.Click_ResultLink3 = "Click_ResultLink3", e.Click_ResultLink4 = "Click_ResultLink4", e.Click_ResultLink5 = "Click_ResultLink5", e.Click_ResultLink6 = "Click_ResultLink6", e.Click_ResultLink7 = "Click_ResultLink7", e.Click_ResultLink8 = "Click_ResultLink8", e.Click_ResultLink9 = "Click_ResultLink9", e.Click_ResultLink10 = "Click_ResultLink10", e.Click_PreviewLink1 = "Click_PreviewLink1", e.Click_PreviewLink2 = "Click_PreviewLink2", e.Click_PreviewLink3 = "Click_PreviewLink3", e.Click_PreviewLink4 = "Click_PreviewLink4", e.Click_PreviewLink5 = "Click_PreviewLink5", e.Click_PreviewLink6 = "Click_PreviewLink6", e.Click_PreviewLink7 = "Click_PreviewLink7", e.Click_PreviewLink8 = "Click_PreviewLink8", e.Click_PreviewLink9 = "Click_PreviewLink9", e.Click_PreviewLink10 = "Click_PreviewLink10", e.RFM_ClickSet = "RFM_ClickSet", e.RFM_ClickReset = "RFM_ClickReset", e.RFM_Like = "RFM_Like", e.RFM_LikeReset = "RFM_LikeReset", e.RFM_Dislike = "RFM_Dislike", e.RFM_Important = "RFM_Important", e.RFM_ImportantReset = "RFM_ImportantReset", e.RFM_Ban = "RFM_Ban", e.Navigation_Exit = "Navigation_Exit", e.Navigation_Return = "Navigation_Return", e.Navigation_Route = "Navigation_Route", e.Answer_Display = "Answer_Display", e.Answer_Click = "Answer_Click", e.Answer_Result = "Answer_Result", e.Answer_Liked = "Answer_Liked", e.Answer_Disliked = "Answer_Disliked", e.Answer_Liked_Cancelled = "Answer_Liked_Cancelled", e.Answer_Disliked_Cancelled = "Answer_Disliked_Cancelled", e.TopPassages_Display = "TopPassages_Display", e.TopPassages_Click = "TopPassages_Click", e.UserSettings_Reset = "UserSettings_Reset", e.Change_Password_Failed = "change.password.failed", e.Change_Password_Success_Form = "change.password.success.form", e.Forgot_Password_Request = "forgot.password.request", e.Login_Denied = "login.denied", e.Login_Success_Form = "login.success.form", e.Send_Reset_Password_Link = "send.reset.password.link", e.Xrest_ChangePassword = "xrest.changepassword", e;
745
+ }({}), z = /* @__PURE__ */ function(e) {
746
+ return e[e.none = 0] = "none", e[e.bool = 1] = "bool", e[e.date = 2] = "date", e[e.dateTime = 3] = "dateTime", e[e.time = 4] = "time", e[e.unsigned = 5] = "unsigned", e[e.integer = 6] = "integer", e[e.float = 7] = "float", e[e.double = 8] = "double", e[e.dates = 9] = "dates", e[e.dateTimes = 10] = "dateTimes", e[e.times = 11] = "times", e[e.varchar = 12] = "varchar", e[e.binary = 13] = "binary", e[e.string = 14] = "string", e[e.csv = 15] = "csv", e;
747
+ }({}), B = /* @__PURE__ */ function(e) {
748
+ return e[e.none = 0] = "none", e[e.a = 2053] = "a", e[e.c = 4] = "c", e[e.d = 8] = "d", e[e.e = 2068] = "e", e[e.i = 256] = "i", e[e.l = 2052] = "l", e[e.n = 8192] = "n", e[e.t = 524292] = "t", e[e.x = 8388608] = "x", e[e.z = 33554432] = "z", e[e.f_ordinal = 8192] = "f_ordinal", e[e.f_multidates = 8192] = "f_multidates", e[e.f_varchar = 33554432] = "f_varchar", e[e.f_binary = 33562624] = "f_binary", e[e.f_string = 33562888] = "f_string", e[e.f_csv = 42477853] = "f_csv", e[e.f_overridable = 33554696] = "f_overridable", e;
749
+ }({}), We = "1.0", Ge = /* @__PURE__ */ function(e) {
750
+ return e[e.Original = 0] = "Original", e[e.Corrected = 1] = "Corrected", e;
751
+ }({}), Ke = /* @__PURE__ */ function(e) {
752
+ return e[e.none = 0] = "none", e[e.positiveRate = 1] = "positiveRate", e[e.mainlyPosRate = 2] = "mainlyPosRate", e[e.unrate = 4] = "unrate", e[e.mainlyNegRate = 8] = "mainlyNegRate", e[e.negativeRate = 16] = "negativeRate", e[e.all = 31] = "all", e[e.positiveOnly = 7] = "positiveOnly", e[e.negativeOnly = 28] = "negativeOnly", e[e.personalAll = 21] = "personalAll", e[e.personalPosOnly = 5] = "personalPosOnly", e[e.personalNegOnly = 20] = "personalNegOnly", e;
753
+ }({});
754
+ //#endregion
755
+ //#region src/helpers/columns.ts
756
+ function qe(e) {
757
+ if (!e) return z.none;
758
+ switch (e.toLocaleLowerCase()) {
759
+ case "bool":
760
+ case "boolean": return z.bool;
761
+ case "date": return z.date;
762
+ case "datetime": return z.dateTime;
763
+ case "time": return z.time;
764
+ case "unsigned": return z.unsigned;
765
+ case "integer": return z.integer;
766
+ case "float": return z.float;
767
+ case "double": return z.double;
768
+ case "dates": return z.dates;
769
+ case "datetimes": return z.dateTimes;
770
+ case "times": return z.times;
771
+ case "varchar": return z.varchar;
772
+ case "binary": return z.binary;
773
+ case "string": return z.string;
774
+ case "csv": return z.csv;
775
+ default: return z.none;
776
+ }
777
+ }
778
+ function Je(e) {
779
+ switch (e) {
780
+ case "a": return B.a;
781
+ case "c": return B.c;
782
+ case "d": return B.d;
783
+ case "e": return B.e;
784
+ case "i": return B.i;
785
+ case "l": return B.l;
786
+ case "n": return B.n;
787
+ case "t": return B.t;
788
+ case "x": return B.x;
789
+ case "z": return B.z;
790
+ default: return B.none;
791
+ }
792
+ }
793
+ function Ye(e) {
794
+ let t = B.none;
795
+ if (e) for (let n of e) t |= Je(n);
796
+ return t;
797
+ }
798
+ function V(e, t, n, r) {
799
+ return {
800
+ name: e,
801
+ type: t,
802
+ typeModifier: n,
803
+ eType: qe(t),
804
+ eTypeModifier: Ye(n || ""),
805
+ aliases: r
806
+ };
807
+ }
808
+ var Xe = {
809
+ id: V("id", "string"),
810
+ text: V("text", "varchar"),
811
+ documentlanguages: V("documentlanguages", "csv", "ci", ["language"]),
812
+ databasealias: V("databasealias", "varchar"),
813
+ globalrelevance: V("globalrelevance", "double"),
814
+ matchingpartnames: V("matchingpartnames", "csv"),
815
+ matchlocations: V("matchlocations", "csv"),
816
+ matchlocationsperpartname: V("matchlocationsperpartname", "varchar"),
817
+ extracts: V("extracts", "csv"),
818
+ extractsperpartname: V("extractsperpartname", "varchar"),
819
+ extractslocations: V("extractslocations", "csv"),
820
+ documentweight: V("documentweight", "varchar"),
821
+ groupcount: V("groupcount", "integer"),
822
+ accesslists: V("accesslists", "varchar", void 0, ["accessLists"])
823
+ };
824
+ //#endregion
825
+ //#region src/helpers/filters.ts
826
+ function Ze(e) {
827
+ return e.filter((e) => !!e);
828
+ }
829
+ var Qe = {
830
+ eq: (e, t) => ({
831
+ field: e,
832
+ operator: "eq",
833
+ value: t
834
+ }),
835
+ neq: (e, t) => ({
836
+ field: e,
837
+ operator: "neq",
838
+ value: t
839
+ }),
840
+ gt: (e, t) => ({
841
+ field: e,
842
+ operator: "gt",
843
+ value: t
844
+ }),
845
+ gte: (e, t) => ({
846
+ field: e,
847
+ operator: "gte",
848
+ value: t
849
+ }),
850
+ lt: (e, t) => ({
851
+ field: e,
852
+ operator: "lt",
853
+ value: t
854
+ }),
855
+ lte: (e, t) => ({
856
+ field: e,
857
+ operator: "lte",
858
+ value: t
859
+ }),
860
+ like: (e, t) => ({
861
+ field: e,
862
+ operator: "like",
863
+ value: t
864
+ }),
865
+ contains: (e, t) => ({
866
+ field: e,
867
+ operator: "contains",
868
+ value: t
869
+ }),
870
+ regex: (e, t) => ({
871
+ field: e,
872
+ operator: "regex",
873
+ value: t
874
+ }),
875
+ isNull: (e) => ({
876
+ field: e,
877
+ operator: "null"
878
+ }),
879
+ isNotNull: (e) => ({
880
+ field: e,
881
+ operator: "notnull"
882
+ }),
883
+ in: (e, t) => ({
884
+ field: e,
885
+ operator: "in",
886
+ values: t
887
+ }),
888
+ between: (e, t, n) => ({
889
+ field: e,
890
+ operator: "between",
891
+ start: t,
892
+ end: n
893
+ }),
894
+ and: (...e) => $e("and", e),
895
+ or: (...e) => $e("or", e),
896
+ not: (...e) => {
897
+ let t = Ze(e);
898
+ return t.length ? {
899
+ operator: "not",
900
+ filters: t
901
+ } : void 0;
902
+ }
903
+ };
904
+ function $e(e, t) {
905
+ let n = Ze(t);
906
+ if (n.length !== 0) return n.length === 1 ? n[0] : {
907
+ operator: e,
908
+ filters: n
909
+ };
910
+ }
911
+ //#endregion
912
+ //#region src/helpers/metadata.ts
913
+ function et(e, t) {
914
+ let n = e[t];
915
+ return n === void 0 ? [] : (typeof n == "string" && (n = String(n).split(",")), Array.isArray(n) ? n.map((e) => {
916
+ if (typeof e == "string") return e.trim();
917
+ if (typeof e == "object" && e && "display" in e) return e.display.trim();
918
+ }).filter((e) => e !== void 0) : [String(n).trim()]);
919
+ }
920
+ function tt(e, t) {
921
+ let n = e[t];
922
+ if (n === void 0) return [];
923
+ if (typeof n == "string" && (n = String(n).split(",")), Array.isArray(n)) return n.map((e) => {
924
+ if (typeof e == "string") return {
925
+ display: e.trim(),
926
+ value: e.trim()
927
+ };
928
+ if (typeof e == "object" && e && "display" in e) {
929
+ let t = e.display.trim();
930
+ return {
931
+ display: t,
932
+ value: "value" in e ? String(e.value).trim() : t
933
+ };
934
+ }
935
+ }).filter((e) => e !== void 0);
936
+ let r = String(n).trim();
937
+ return [{
938
+ display: r,
939
+ value: r
940
+ }];
941
+ }
942
+ //#endregion
943
+ //#region src/helpers/utils.ts
944
+ function H(e) {
945
+ return typeof e == "object" && !!e;
946
+ }
947
+ function nt(e) {
948
+ return H(e) && Object.prototype.toString.call(e) === "[object ArrayBuffer]";
949
+ }
950
+ function rt(e) {
951
+ return H(e) && Object.prototype.toString.call(e) === "[object Blob]";
952
+ }
953
+ function it(e) {
954
+ return Object.prototype.toString.call(e) === "[object Date]";
955
+ }
956
+ function at(e) {
957
+ return typeof e == "string";
958
+ }
959
+ function ot(e) {
960
+ return (H(e) || Array.isArray(e)) && !nt(e) && !rt(e) && !at(e);
961
+ }
962
+ function st(e) {
963
+ return e ? (e.getHours() * 60 * 60 + e.getMinutes() * 60 + e.getSeconds()) * 1e3 + e.getMilliseconds() : 0;
964
+ }
965
+ function ct(e = !0) {
966
+ let t = Date.now();
967
+ return (e ? "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" : "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").replace(/[xy]/g, (e) => {
968
+ let n = (t + Math.random() * 16) % 16 | 0;
969
+ return t = Math.floor(t / 16), (e === "x" ? n : n & 3 | 8).toString(16);
970
+ });
971
+ }
972
+ function lt(e) {
973
+ if (!e) return "``";
974
+ if (e = String(e), e.search(/[\\`]/) === -1) return `\`${e}\``;
975
+ let t = ["`"];
976
+ for (let n = 0, r = e.length; n < r; n++) {
977
+ let r = e[n];
978
+ (r === "\\" || r === "`") && t.push("\\"), t.push(r);
979
+ }
980
+ return t.push("`"), t.join("");
981
+ }
982
+ function ut(e) {
983
+ if (typeof crypto < "u" && crypto.subtle && typeof crypto.subtle.digest == "function") try {
984
+ return crypto.subtle.digest("SHA-512", new TextEncoder().encode(e)).then((e) => Array.prototype.map.call(new Uint8Array(e), (e) => `00${e.toString(16)}`.slice(-2)).join("")).catch(() => Promise.resolve(U(e)));
985
+ } catch {
986
+ return Promise.resolve(U(e));
987
+ }
988
+ return Promise.resolve(U(e));
989
+ }
990
+ function U(e) {
991
+ let t = 2166136261;
992
+ for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = t * 16777619 >>> 0;
993
+ let n = t.toString(16).padStart(8, "0"), r = ((t ^ 2863311530) >>> 0).toString(16).padStart(8, "0"), i = ((t ^ 1431655765) >>> 0).toString(16).padStart(8, "0"), a = ((t ^ 3435973836) >>> 0).toString(16).padStart(8, "0"), o = n + r + i + a;
994
+ return (o + o + o + o).substring(0, 128);
995
+ }
996
+ //#endregion
997
+ //#region src/web-api/v1/fetch-audit.ts
998
+ var W, dt;
999
+ function G(e, t = !0) {
1000
+ let n = ft(e.$auditRecord);
1001
+ n && (pt(n), t && mt(n)), e.$auditRecord = n;
1002
+ }
1003
+ function ft(e) {
1004
+ if (!e) return;
1005
+ let t;
1006
+ if (Array.isArray(e)) t = e;
1007
+ else if (H(e)) {
1008
+ let n = e;
1009
+ if (n.auditEvents || n.mlAuditEvents) return n;
1010
+ t = [e];
1011
+ }
1012
+ return { auditEvents: t };
1013
+ }
1014
+ function pt(e) {
1015
+ let t = ht();
1016
+ return e.auditEvents?.forEach((e) => {
1017
+ e.detail ||= {}, e.detail.sessionid = t;
1018
+ }), e;
1019
+ }
1020
+ function mt(e) {
1021
+ let t = typeof window < "u" ? decodeURIComponent(window.location.href) : "http://localhost";
1022
+ return e?.auditEvents?.forEach((e) => {
1023
+ e.detail ||= {}, e.detail.url = t;
1024
+ }), e;
1025
+ }
1026
+ function ht() {
1027
+ return (!W || gt()) && (W = ct()), dt = /* @__PURE__ */ new Date(), W;
1028
+ }
1029
+ function gt() {
1030
+ return (/* @__PURE__ */ new Date()).getTime() - dt.getTime() > 600 * 1e3;
1031
+ }
1032
+ async function _t(e, t = !0) {
1033
+ let n = {
1034
+ event: R.None,
1035
+ $auditRecord: e
1036
+ };
1037
+ return G(n, t), F("api/v1/audit.notify", n);
1038
+ }
1039
+ var vt = { notify: _t };
1040
+ //#endregion
1041
+ //#region src/web-api/v1/fetch-aggregation.ts
1042
+ async function yt(e, t, n) {
1043
+ let r = e.items?.length || 0, i = {
1044
+ query: {
1045
+ ...t,
1046
+ action: "aggregate",
1047
+ aggregations: { [e.name]: {
1048
+ skip: r,
1049
+ count: 10
1050
+ } }
1051
+ },
1052
+ $auditRecord: { auditEvents: [n] }
1053
+ };
1054
+ G(i);
1055
+ let { aggregations: a } = await A(await F("api/v1/query", i)), o = a[0];
1056
+ return o.$hasMore = o.items.length > 10, o.items = [...e.items, ...o.items], Promise.resolve(o);
1057
+ }
1058
+ //#endregion
1059
+ //#region src/authentication/session/detect-auth-mode.ts
1060
+ function bt(e, n) {
1061
+ if (e.authMode?.kind === "credentials") return t.credentials();
1062
+ if (e.bearerToken) return t.bearer(e.bearerToken);
1063
+ let r = e.autoOAuthProvider || n?.autoOAuthProvider;
1064
+ if (r) return t.oauth(r);
1065
+ let i = e.autoSAMLProvider || n?.autoSAMLProvider;
1066
+ return i ? t.saml(i) : t.unknown();
1067
+ }
1068
+ //#endregion
1069
+ //#region src/web-api/v1/fetch-app.ts
1070
+ async function xt(e) {
1071
+ let t = e || r.app;
1072
+ return P("api/v1/app", new URLSearchParams({ app: t || "" }));
1073
+ }
1074
+ async function St() {
1075
+ let { app: e } = r;
1076
+ return P("api/v1/app", new URLSearchParams({
1077
+ app: e || "",
1078
+ preLogin: "true"
1079
+ }));
1080
+ }
1081
+ function Ct() {
1082
+ let { backendUrl: e, app: n } = r;
1083
+ if (typeof window < "u") {
1084
+ if (e ||= window.location.origin, !n) {
1085
+ let e = window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);
1086
+ e && (n = e[1]);
1087
+ }
1088
+ i({
1089
+ backendUrl: e,
1090
+ app: n
1091
+ });
1092
+ }
1093
+ return r.authMode?.kind === "credentials" ? (i({
1094
+ authMode: t.credentials(),
1095
+ autoOAuthProvider: void 0,
1096
+ autoSAMLProvider: void 0,
1097
+ bearerToken: void 0
1098
+ }), Promise.resolve({})) : St().then((e) => (i({
1099
+ authMode: bt(r, e),
1100
+ autoOAuthProvider: r.autoOAuthProvider || e.autoOAuthProvider,
1101
+ autoSAMLProvider: r.autoSAMLProvider || e.autoSAMLProvider
1102
+ }), e)).catch((e) => {
1103
+ throw T("atomic:fetchAppPreLogin error", e), e;
1104
+ });
1105
+ }
1106
+ var wt = Ct;
1107
+ //#endregion
1108
+ //#region src/web-api/v1/fetch-dataset.ts
1109
+ async function Tt(e, t, n = {}) {
1110
+ let r = await F(`api/v1/search.dataset/${e}/${t}`, { parameters: n }), i = t[0].toLowerCase() + t.slice(1), a = r.datasets[i];
1111
+ if ("errorCode" in a && "errorMessage" in a) throw Error(a.errorMessage);
1112
+ return a;
1113
+ }
1114
+ async function Et(e, t) {
1115
+ let n = `api/v1/search.dataset/${e}`, { parameters: r = {}, datasets: i = [] } = t;
1116
+ return (await F(n, {
1117
+ parameters: r,
1118
+ datasets: i
1119
+ })).datasets;
1120
+ }
1121
+ async function Dt(e) {
1122
+ return await P(`api/v1/search.dataset/${e}`);
1123
+ }
1124
+ //#endregion
1125
+ //#region src/web-api/v1/fetch-labels.ts
1126
+ async function Ot(e, t = !0, n) {
1127
+ try {
1128
+ return (await F("api/v1/labels", {
1129
+ action: "list",
1130
+ q: e,
1131
+ public: t,
1132
+ locale: n,
1133
+ localize: !1
1134
+ })).labels;
1135
+ } catch (e) {
1136
+ throw T("Error in fetchLabels", e), e;
1137
+ }
1138
+ }
1139
+ async function kt() {
1140
+ try {
1141
+ let { app: e = "" } = r;
1142
+ return P("api/v1/labels", new URLSearchParams({
1143
+ app: e,
1144
+ action: "getUserRights"
1145
+ }));
1146
+ } catch (e) {
1147
+ throw T("Error in getUserRights", e), e;
1148
+ }
1149
+ }
1150
+ async function At(e, t, n = !0) {
1151
+ try {
1152
+ return F("api/v1/labels", {
1153
+ action: "add",
1154
+ labels: e,
1155
+ ids: t,
1156
+ public: n,
1157
+ $auditRecord: {
1158
+ auditEvents: [{
1159
+ type: R.Label_AddDoc,
1160
+ detail: {
1161
+ public: n,
1162
+ label: e ? e.toString() : null,
1163
+ doccount: t ? t.length : 0
1164
+ }
1165
+ }],
1166
+ mlAuditEvents: [{
1167
+ actionType: "addToLabel",
1168
+ documentIds: t
1169
+ }]
1170
+ }
1171
+ });
1172
+ } catch (e) {
1173
+ throw T("Error in add", e), e;
1174
+ }
1175
+ }
1176
+ async function jt(e, t, n = !0) {
1177
+ try {
1178
+ return F("api/v1/labels", {
1179
+ action: "remove",
1180
+ labels: e,
1181
+ ids: t,
1182
+ public: n,
1183
+ $auditRecord: {
1184
+ auditEvents: [{
1185
+ type: R.Label_RemoveDoc,
1186
+ detail: {
1187
+ public: n,
1188
+ label: e ? e.toString() : null,
1189
+ doccount: t ? t.length : 0
1190
+ }
1191
+ }],
1192
+ mlAuditEvents: [{
1193
+ actionType: "removeFromLabel",
1194
+ documentIds: t
1195
+ }]
1196
+ }
1197
+ });
1198
+ } catch (e) {
1199
+ throw T("Error in remove", e), e;
1200
+ }
1201
+ }
1202
+ async function Mt(e, t, n = !0) {
1203
+ try {
1204
+ return F("api/v1/labels", {
1205
+ action: "rename",
1206
+ labels: e,
1207
+ newLabel: t,
1208
+ public: n,
1209
+ auditEvents: {
1210
+ type: R.Label_Rename,
1211
+ detail: {
1212
+ public: n,
1213
+ oldlabel: e ? e.toString() : null,
1214
+ label: t
1215
+ }
1216
+ }
1217
+ });
1218
+ } catch (e) {
1219
+ throw T("Error in rename", e), e;
1220
+ }
1221
+ }
1222
+ async function Nt(e, t = !0) {
1223
+ try {
1224
+ return F("api/v1/labels", {
1225
+ action: "delete",
1226
+ labels: e,
1227
+ public: t,
1228
+ auditEvents: {
1229
+ type: R.Label_Delete,
1230
+ detail: {
1231
+ public: t,
1232
+ label: e ? e.toString() : null
1233
+ }
1234
+ }
1235
+ });
1236
+ } catch (e) {
1237
+ throw T("Error in deleteLabels", e), e;
1238
+ }
1239
+ }
1240
+ async function Pt(e, t, n = !0) {
1241
+ try {
1242
+ return F("api/v1/labels", {
1243
+ action: "bulkAdd",
1244
+ labels: e,
1245
+ query: t,
1246
+ public: n,
1247
+ auditEvents: {
1248
+ type: R.Label_Add,
1249
+ detail: {
1250
+ public: n,
1251
+ label: e ? e.toString() : null,
1252
+ query: t === null ? null : t.name
1253
+ }
1254
+ }
1255
+ });
1256
+ } catch (e) {
1257
+ throw T("Error in bulkAdd", e), e;
1258
+ }
1259
+ }
1260
+ async function Ft(e, t, n = !0) {
1261
+ try {
1262
+ return F("api/v1/labels", {
1263
+ action: "bulkRemove",
1264
+ labels: e,
1265
+ query: t,
1266
+ public: n,
1267
+ auditEvents: {
1268
+ type: R.Label_Delete,
1269
+ detail: {
1270
+ public: n,
1271
+ label: e ? e.toString() : null,
1272
+ query: t === null ? null : t.name
1273
+ }
1274
+ }
1275
+ });
1276
+ } catch (e) {
1277
+ throw T("Error in bulkRemove", e), e;
1278
+ }
1279
+ }
1280
+ var It = {
1281
+ getUserRights: kt,
1282
+ add: At,
1283
+ remove: jt,
1284
+ rename: Mt,
1285
+ delete: Nt,
1286
+ bulkAdd: Pt,
1287
+ bulkRemove: Ft
1288
+ };
1289
+ //#endregion
1290
+ //#region src/web-api/v1/fetch-preview.ts
1291
+ async function Lt(e, t) {
1292
+ if (typeof window > "u") return F("api/v1/preview", {
1293
+ action: "get",
1294
+ id: e,
1295
+ query: t
1296
+ });
1297
+ let n = `${window.location.origin}${window.location.pathname}`;
1298
+ return F("api/v1/preview", {
1299
+ action: "get",
1300
+ id: e,
1301
+ query: {
1302
+ name: t?.name,
1303
+ text: t?.text
1304
+ },
1305
+ browserUrl: n
1306
+ });
1307
+ }
1308
+ async function Rt(e) {
1309
+ let t = new Headers();
1310
+ t.append("content-type", "text"), A(await fetch(e, {
1311
+ method: "GET",
1312
+ headers: t
1313
+ }));
1314
+ }
1315
+ //#endregion
1316
+ //#region src/web-api/v1/fetch-principal.ts
1317
+ async function zt() {
1318
+ return P("api/v1/principal", new URLSearchParams({
1319
+ action: "get",
1320
+ noAutoAuthentication: "true"
1321
+ }));
1322
+ }
1323
+ async function Bt(e) {
1324
+ let t = {
1325
+ noAutoAuthentication: "true",
1326
+ ...e
1327
+ }, n = new URLSearchParams();
1328
+ return Object.entries(t).forEach(([e, t]) => {
1329
+ t !== void 0 && n.append(e, String(t));
1330
+ }), P("api/v1/principal/list", n);
1331
+ }
1332
+ async function Vt(e) {
1333
+ return e ? P("api/v1/principal", new URLSearchParams({
1334
+ action: "userid",
1335
+ noAutoAuthentication: "true",
1336
+ userid: e
1337
+ })) : Promise.reject(/* @__PURE__ */ Error("userid is required"));
1338
+ }
1339
+ async function Ht(e) {
1340
+ return e.length === 0 ? Promise.reject(/* @__PURE__ */ Error("userids is required")) : P("api/v1/principal/userids", new URLSearchParams({
1341
+ noAutoAuthentication: "true",
1342
+ userids: [...e].join(",")
1343
+ }));
1344
+ }
1345
+ var Ut = { principal: {
1346
+ get: zt,
1347
+ list: Bt,
1348
+ userid: Vt,
1349
+ userids: Ht
1350
+ } }, Wt = 11;
1351
+ async function Gt(e, t, n) {
1352
+ let r = await F("api/v1/query", {
1353
+ query: e,
1354
+ $auditRecord: t,
1355
+ queryIntentData: n
1356
+ });
1357
+ r.aggregations.forEach((e) => {
1358
+ e.$hasMore = !1, !e.isDistribution && !e.isTree && e.items && (e.$hasMore = e.items.length === Wt), e.isTree && e.items && K(e);
1359
+ }), r.records?.map((e) => Object.assign(e, {
1360
+ value: e.title,
1361
+ type: "default"
1362
+ }));
1363
+ let i = {
1364
+ ...r,
1365
+ nextPage: r.page < Math.ceil(r.rowCount / r.pageSize) ? r.page + 1 : void 0,
1366
+ previousPage: r.page > 1 ? r.page - 1 : void 0
1367
+ };
1368
+ return Promise.resolve(i);
1369
+ }
1370
+ async function Kt(e, t, n) {
1371
+ let { app: i = "" } = r, a = {
1372
+ methods: [],
1373
+ mode: t,
1374
+ propagateErrors: !0,
1375
+ $auditRecord: { auditEvents: [n] }
1376
+ };
1377
+ for (let t of e) a.methods.push({
1378
+ method: "query",
1379
+ app: i,
1380
+ query: t
1381
+ });
1382
+ let o = await F("api/v1/multi", a);
1383
+ o.results.forEach((e) => {
1384
+ e.aggregations.forEach((e) => {
1385
+ e.$hasMore = !1, !e.isDistribution && !e.isTree && e.items && (e.$hasMore = e.items.length === Wt), e.isTree && K(e);
1386
+ });
1387
+ }), o.results.forEach((e) => e.records?.map((e) => Object.assign(e, {
1388
+ value: e.title,
1389
+ type: "default"
1390
+ })));
1391
+ let s = o.results.map((e) => ({
1392
+ ...e,
1393
+ nextPage: e.page < Math.ceil(e.rowCount / e.pageSize) ? e.page + 1 : void 0,
1394
+ previousPage: e.page > 1 ? e.page - 1 : void 0
1395
+ }));
1396
+ return Promise.resolve(s);
1397
+ }
1398
+ function K(e, t = "", n = 0) {
1399
+ let r = [];
1400
+ return e.items && e.items.forEach((e) => {
1401
+ let i = t ? `${t}/${e.value}` : e.value, a = n + 1;
1402
+ r.push({
1403
+ path: i,
1404
+ level: a
1405
+ }), e.$path = i, e.$level = a, e.hasChildren ? r = r.concat(K(e, i, a)) : e.hasChildren = !1;
1406
+ }), r;
1407
+ }
1408
+ //#endregion
1409
+ //#region src/web-api/v1/fetch-query-export.ts
1410
+ async function qt({ model: e, appName: t, query: n, article: r }) {
1411
+ let { webservice: i, format: a, maxcount: o, exportedColumns: s, export: c } = e, l = {
1412
+ app: t,
1413
+ webservice: i,
1414
+ query: n,
1415
+ type: c,
1416
+ format: a,
1417
+ maxcount: o,
1418
+ exportedColumns: s,
1419
+ $auditRecord: { auditEvents: [{
1420
+ type: "Search_ExportCSV",
1421
+ detail: { resultid: r ? r.id : void 0 }
1422
+ }] }
1423
+ };
1424
+ return G(l), await F("api/v1/search.queryexport", l, { responseType: "blob" });
1425
+ }
1426
+ //#endregion
1427
+ //#region src/web-api/v1/fetch-query-intent.ts
1428
+ async function Jt(e) {
1429
+ return (await F("api/v1/queryintent", { query: e }))?.intents;
1430
+ }
1431
+ //#endregion
1432
+ //#region src/web-api/v1/fetch-similar-documents.ts
1433
+ async function Yt(e, t, n) {
1434
+ return (await F("api/v1/similardocuments", {
1435
+ sourceDocumentId: e,
1436
+ query: { name: t }
1437
+ }, { signal: n })).data;
1438
+ }
1439
+ //#endregion
1440
+ //#region src/web-api/v1/fetch-sponsored-links.ts
1441
+ async function Xt(e, t) {
1442
+ return (await F("api/v1/query.links", {
1443
+ webservice: e,
1444
+ query: t
1445
+ }))?.links?.map((e) => ({
1446
+ ...e,
1447
+ query: t
1448
+ }));
1449
+ }
1450
+ //#endregion
1451
+ //#region src/utils/to-sql.ts
1452
+ function Zt(e, t) {
1453
+ if (typeof e == "number") return `${e}`;
1454
+ if (it(e)) return t ? `'${Qt(e)}'` : Qt(e);
1455
+ if (typeof e == "boolean") return e ? "true" : "false";
1456
+ if (e === null) return "null";
1457
+ if (Array.isArray(e)) {
1458
+ let t = [];
1459
+ return e.forEach((e) => {
1460
+ t.length > 0 && t.push(","), e ? typeof e == "string" ? t.push(e) : t.push(e.display || e.value || "") : t.push("null");
1461
+ }), t.splice(0, 0, "["), t.push("]"), t.join("");
1462
+ }
1463
+ return t ? `'${e}'` : e;
1464
+ }
1465
+ function Qt(e) {
1466
+ if (!e) return "";
1467
+ try {
1468
+ return st(e) === 0 ? new Intl.DateTimeFormat("en-CA", {
1469
+ year: "numeric",
1470
+ month: "2-digit",
1471
+ day: "2-digit"
1472
+ }).format(e) : `${new Intl.DateTimeFormat("en-CA").format(e)} ${new Intl.DateTimeFormat("en-CA", {
1473
+ hour: "2-digit",
1474
+ minute: "2-digit",
1475
+ second: "2-digit",
1476
+ hour12: !1
1477
+ }).format(e)}`;
1478
+ } catch {
1479
+ return "Invalid date";
1480
+ }
1481
+ }
1482
+ //#endregion
1483
+ //#region src/web-api/v1/fetch-suggest.ts
1484
+ async function $t(e, t, n, i, a) {
1485
+ let { app: o } = r, s = {
1486
+ app: o || "",
1487
+ suggestQuery: e,
1488
+ text: t,
1489
+ filter: n,
1490
+ kinds: i,
1491
+ showSource: a
1492
+ };
1493
+ try {
1494
+ return (await F("api/v1/search.suggest", s)).suggests;
1495
+ } catch (e) {
1496
+ throw console.error("Error fetching suggestions:", e), e;
1497
+ }
1498
+ }
1499
+ async function en(e, t, n, i) {
1500
+ let { app: a } = r;
1501
+ return (await F("api/v1/suggestquery", {
1502
+ app: a || "",
1503
+ suggestQuery: e,
1504
+ text: t,
1505
+ query: n,
1506
+ kinds: i
1507
+ })).suggests;
1508
+ }
1509
+ async function tn(e, t, n) {
1510
+ if (!t) return Promise.resolve([]);
1511
+ let { app: i } = r, a = await F("api/v1/suggestfield", {
1512
+ app: i || "",
1513
+ text: e,
1514
+ fields: t,
1515
+ query: n
1516
+ });
1517
+ return a.suggests.forEach((e) => {
1518
+ e.display = Zt(e.display);
1519
+ }), a.suggests;
1520
+ }
1521
+ //#endregion
1522
+ //#region src/web-api/v1/fetch-text-chunk.ts
1523
+ async function nn(e, t, n, r, i, a) {
1524
+ return F("api/v1/doc.textchunks", {
1525
+ id: e,
1526
+ textChunks: t,
1527
+ highlights: n,
1528
+ query: r,
1529
+ leftSentencesCount: i,
1530
+ rightSentencesCount: a
1531
+ });
1532
+ }
1533
+ //#endregion
1534
+ //#region src/web-api/v1/fetch-user-settings.ts
1535
+ async function rn() {
1536
+ let { app: e } = r;
1537
+ return P("api/v1/usersettings", new URLSearchParams({
1538
+ app: e || "",
1539
+ action: "load"
1540
+ }));
1541
+ }
1542
+ async function an(e, t) {
1543
+ let n = {
1544
+ action: "save",
1545
+ userSettings: e,
1546
+ $auditRecord: { auditEvents: [t] }
1547
+ };
1548
+ return G(n), F("api/v1/usersettings", n);
1549
+ }
1550
+ async function on(e, t) {
1551
+ let n = {
1552
+ action: "patch",
1553
+ userSettings: e,
1554
+ $auditRecord: t ? { auditEvents: [t] } : void 0
1555
+ };
1556
+ return G(n), F("api/v1/usersettings", n);
1557
+ }
1558
+ async function sn() {
1559
+ return an({}, { type: "UserSettings_Reset" });
1560
+ }
1561
+ //#endregion
1562
+ //#region src/web-api/v2/fetch-change-password.ts
1563
+ async function cn(e, t) {
1564
+ return F("api/v2/security/password/change", {
1565
+ newPassword: e,
1566
+ currentPassword: t
1567
+ });
1568
+ }
1569
+ //#endregion
1570
+ //#region src/web-api/v2/fetch-forgot-password.ts
1571
+ async function ln(e) {
1572
+ return F("api/v2/security/password/ask-reset-email", {
1573
+ changePasswordRedirectUrl: `${window.location.origin}/login?mode=changepassword`,
1574
+ userName: e
1575
+ });
1576
+ }
1577
+ //#endregion
1578
+ //#region src/web-api/v2/fetch-user-profile.ts
1579
+ async function un(e) {
1580
+ return await P(`api/v2/user-profile/${e}`);
1581
+ }
1582
+ async function dn(e) {
1583
+ return await F("api/v2/user-profile", e);
1584
+ }
1585
+ async function fn(e, t, n) {
1586
+ return await Re(`api/v2/user-profile/${e.data?.id}/${t}/${n}`, e);
1587
+ }
1588
+ async function pn(e, t, n) {
1589
+ try {
1590
+ return (await N(`api/v2/user-profile/${e.data?.id}/${t}/${n}`)).success === !0;
1591
+ } catch {
1592
+ return !1;
1593
+ }
1594
+ }
1595
+ //#endregion
1596
+ //#region src/web-api/v2/fetch-version.ts
1597
+ async function mn() {
1598
+ return await P("api/v2/version");
1599
+ }
1600
+ //#endregion
1601
+ //#region src/authentication/constants.ts
1602
+ var q = 1e4, J = "sinequa-auth-redirect-attempt", Y = async () => {
1603
+ let { autoOAuthProvider: e } = r;
1604
+ if (!e) throw Error("autoOAuthProvider is not configured in globalConfig");
1605
+ if (typeof window > "u") try {
1606
+ let { signal: t } = I(q);
1607
+ return await F("security.oauth", {
1608
+ action: "getcode",
1609
+ provider: e,
1610
+ tokenInCookie: !0,
1611
+ originalUrl: "http://localhost"
1612
+ }, { signal: t });
1613
+ } catch (e) {
1614
+ throw T("Failed to authenticate with OAuth", e), e;
1615
+ }
1616
+ let t = {
1617
+ action: "getcode",
1618
+ provider: e,
1619
+ tokenInCookie: !0,
1620
+ originalUrl: window.location.href
1621
+ };
1622
+ try {
1623
+ let { signal: n } = I(q), r = await F("api/v1/security.oauth", t, { signal: n });
1624
+ if (r.redirectUrl) {
1625
+ let t = new URL(r.redirectUrl, window.location.origin);
1626
+ if (t.protocol === "https:" || t.protocol === "http:") {
1627
+ if (l("sinequa-auth-redirect-attempt")) throw d(J), Error(`OAuth sign-in with provider "${e}" did not establish a session — its callback is likely not authorized for this application.`);
1628
+ u(J, "1"), window.location.href = t.href;
1629
+ }
1630
+ }
1631
+ return r;
1632
+ } catch (e) {
1633
+ throw T("Failed to authenticate with OAuth", e), e;
1634
+ }
1635
+ }, hn = async () => {
1636
+ let { autoSAMLProvider: e } = r;
1637
+ if (!e) throw Error("autoSAMLProvider is not configured in globalConfig");
1638
+ if (typeof window > "u") try {
1639
+ let { signal: t } = I(q);
1640
+ return await F("security.saml", {
1641
+ action: "getresponse",
1642
+ provider: e,
1643
+ tokenInCookie: !0,
1644
+ originalUrl: "http://localhost"
1645
+ }, { signal: t });
1646
+ } catch (e) {
1647
+ throw T("Failed to authenticate with SAML", e), e;
1648
+ }
1649
+ let t = {
1650
+ action: "getresponse",
1651
+ provider: e,
1652
+ tokenInCookie: !0,
1653
+ originalUrl: window.location.href
1654
+ };
1655
+ try {
1656
+ let { signal: n } = I(q), r = await F("api/v1/security.saml", t, { signal: n });
1657
+ if (r.redirectUrl) {
1658
+ let t = new URL(r.redirectUrl, window.location.origin);
1659
+ if (t.protocol === "https:" || t.protocol === "http:") {
1660
+ if (l("sinequa-auth-redirect-attempt")) throw d(J), Error(`SAML sign-in with provider "${e}" did not establish a session — its callback is likely not authorized for this application.`);
1661
+ u(J, "1"), window.location.href = t.href;
1662
+ }
1663
+ }
1664
+ return r;
1665
+ } catch (e) {
1666
+ throw T("Failed to authenticate with SAML", e), e;
1667
+ }
1668
+ }, X = (e) => u("sinequa-credentials", JSON.stringify({ data: { csrfToken: e } })), Z = async () => {
1669
+ let e;
1670
+ try {
1671
+ let { signal: t } = I(q);
1672
+ e = await P("api/v1/challenge?action=getCsrfToken&suppressErrors=true", void 0, { signal: t });
1673
+ } catch (e) {
1674
+ throw w("CSRF token fetch failed", e), e;
1675
+ }
1676
+ return e?.csrfToken ? (X(e.csrfToken), e.csrfToken) : null;
1677
+ };
1678
+ //#endregion
1679
+ //#region src/authentication/tokens/get-jwt-token.ts
1680
+ async function Q(e) {
1681
+ if (e) {
1682
+ let { username: t, password: n } = e, r = {
1683
+ action: "get",
1684
+ tokenInCookie: !0,
1685
+ user: t,
1686
+ password: n,
1687
+ noUserOverride: !0,
1688
+ noAutoAuthentication: !0
1689
+ };
1690
+ try {
1691
+ let { signal: e } = I(q), t = await F("api/v1/security.webtoken", r, { signal: e });
1692
+ return t?.csrfToken ? (X(t.csrfToken), t.csrfToken) : null;
1693
+ } catch (e) {
1694
+ throw T("Failed to get JWT", e), e;
1695
+ }
1696
+ } else {
1697
+ let e = {
1698
+ action: "get",
1699
+ tokenInCookie: !0,
1700
+ noUserOverride: !0,
1701
+ noAutoAuthentication: !1
1702
+ }, { bearerToken: t } = r;
1703
+ if (!t) throw Error("Bearer token is required in globalConfig for credentialless JWT retrieval.");
1704
+ let n = new Headers();
1705
+ n.append("Sinequa-Force-Camel-Case", "true"), n.append("accept", "application/json"), n.append("Content-Type", "application/json"), n.append("Authorization", `Bearer ${t}`);
1706
+ try {
1707
+ let { signal: t } = I(q), r = await F("api/v1/security.webtoken", e, {
1708
+ headers: n,
1709
+ signal: t
1710
+ });
1711
+ return r?.csrfToken ? (X(r.csrfToken), r.csrfToken) : null;
1712
+ } catch (e) {
1713
+ throw T("Failed to get JWT without credentials", e), e;
1714
+ }
1715
+ }
1716
+ }
1717
+ //#endregion
1718
+ //#region src/authentication/tokens/get-token.ts
1719
+ var $ = () => {
1720
+ let e = l("sinequa-credentials");
1721
+ if (e) try {
1722
+ let t = JSON.parse(e).data?.csrfToken;
1723
+ if (t) return t;
1724
+ } catch (e) {
1725
+ w("Failed to parse session storage credentials, falling back to local storage", e);
1726
+ }
1727
+ return s("csrfToken") || null;
1728
+ }, gn = async () => {
1729
+ try {
1730
+ let { signal: e } = I(q);
1731
+ return await P("api/v1/principal", new URLSearchParams({ action: "get" }), {
1732
+ signal: e,
1733
+ redirect: "manual"
1734
+ }), C("Server auto-authenticated the user (OIDC)"), !0;
1735
+ } catch {
1736
+ return !1;
1737
+ }
1738
+ }, _n = async (n) => {
1739
+ if (n) {
1740
+ let { username: t, password: r } = n;
1741
+ return !t || !r ? (T("Credentials are required for authentication"), e(!1), !1) : vn({
1742
+ username: t,
1743
+ password: r
1744
+ });
1745
+ }
1746
+ let a = r.authMode ?? t.unknown();
1747
+ if (a.kind === "credentials") return e(!1), !1;
1748
+ if (a.kind === "bearer") return yn();
1749
+ if ($()) return i({ isRedirectUrl: !1 }), d(J), e(!0), !0;
1750
+ try {
1751
+ if (C("Checking for an existing session via CSRF token retrieval"), await Z()) return C("User already authenticated (existing session / SSO)"), d(J), a.kind === "unknown" && i({ authMode: t.sso() }), e(!0), !0;
1752
+ } catch {}
1753
+ switch (a.kind) {
1754
+ case "oauth": return C("Initiating OAuth authentication flow"), await Y(), e(!1), !1;
1755
+ case "saml": return C("Initiating SAML authentication flow"), await hn(), e(!1), !1;
1756
+ case "sso": return e(!1), !1;
1757
+ default: return C("No provider declared — probing for server-side auto-authentication (OIDC)"), await gn() ? (C("User auto-authenticated by the server (OIDC)"), d(J), i({ authMode: t.sso() }), await Z().catch(() => {}), e(!0), !0) : (i({ authMode: t.credentials() }), e(!1), !1);
1758
+ }
1759
+ };
1760
+ async function vn(n) {
1761
+ C("Attempting authentication using credentials"), i({ authMode: t.credentials() });
1762
+ let { userOverrideActive: a, userOverride: o } = r;
1763
+ i({
1764
+ userOverrideActive: !1,
1765
+ userOverride: void 0
1766
+ });
1767
+ try {
1768
+ await Q(n);
1769
+ } catch (t) {
1770
+ throw e(!1), t;
1771
+ }
1772
+ return i({
1773
+ userOverrideActive: a,
1774
+ userOverride: o
1775
+ }), e(!0), !0;
1776
+ }
1777
+ async function yn() {
1778
+ try {
1779
+ if (C("Attempting authentication using bearer token"), await Q()) return e(!0), !0;
1780
+ } catch (t) {
1781
+ throw T("Bearer authentication failed", t), e(!1), t;
1782
+ }
1783
+ return e(!1), !1;
1784
+ }
1785
+ //#endregion
1786
+ //#region src/authentication/tokens/delete-web-token-cookie.ts
1787
+ var bn = async () => {
1788
+ let e = new URLSearchParams({
1789
+ action: "deleteWebTokenCookie",
1790
+ noUserOverride: "true",
1791
+ noAutoAuthentication: "true"
1792
+ }), { signal: t } = I(q);
1793
+ return P("api/v1/challenge", e, { signal: t });
1794
+ };
1795
+ //#endregion
1796
+ //#region src/authentication/session/logout.ts
1797
+ async function xn() {
1798
+ let { userOverrideActive: e } = r;
1799
+ if (Sn(), !e) try {
1800
+ let { methodresult: e, logoutUrl: t } = await bn();
1801
+ if (e === "ok") return t;
1802
+ T("logout failed");
1803
+ } catch (e) {
1804
+ T("logout failed", e);
1805
+ }
1806
+ }
1807
+ function Sn() {
1808
+ c("csrfToken"), d("sinequa-credentials"), e(!1);
1809
+ }
1810
+ //#endregion
1811
+ //#region src/authentication/session/user-authentication.ts
1812
+ var Cn = () => !!$();
1813
+ //#endregion
1814
+ export { vt as $, Ee as $t, Jt as A, ze as At, Lt as B, O as Bt, an as C, r as Cn, R as Ct, en as D, e as Dn, Be as Dt, tn as E, n as En, Ve as Et, Ut as F, M as Ft, Dt as G, S as Gt, Ot as H, E as Ht, zt as I, Le as It, xt as J, w as Jt, Et as K, T as Kt, Bt as L, A as Lt, K as M, Re as Mt, Kt as N, P as Nt, Xt as O, L as Ot, Gt as P, N as Pt, yt as Q, g as Qt, Vt as R, k as Rt, on as S, te as Sn, z as St, $t as T, t as Tn, He as Tt, It as U, Pe as Ut, Rt as V, D as Vt, Tt as W, Fe as Wt, Ct as X, Me as Xt, St as Y, Ne as Yt, bt as Z, je as Zt, fn as _, ee as _n, V as _t, _n as a, Te as an, ct as at, sn as b, ne as bn, We as bt, Q as c, Se as cn, it as ct, hn as d, be as dn, at as dt, Oe as en, G as et, Y as f, m as fn, ut as ft, un as g, oe as gn, Xe as gt, pn as h, h as hn, Qe as ht, bn as i, De as in, st as it, qt as j, F as jt, Yt as k, I as kt, Z as l, xe as ln, ot as lt, dn as m, ye as mn, tt as mt, Sn as n, we as nn, mt as nt, gn as o, _ as on, nt as ot, mn as p, ve as pn, et as pt, wt as q, C as qt, xn as r, Ae as rn, lt as rt, $ as s, Ce as sn, rt as st, Cn as t, ke as tn, pt as tt, X as u, _e as un, H as ut, ln as v, re as vn, Ke as vt, nn as w, i as wn, Ue as wt, rn as x, ie as xn, B as xt, cn as y, f as yn, Ge as yt, Ht as z, Ie as zt };