@sinequa/atomic 2.0.2 → 2.0.5

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 (32) hide show
  1. package/README.md +38 -3
  2. package/dist/atomic.cjs +1 -0
  3. package/dist/atomic.js +2 -1948
  4. package/dist/authentication/session/auth-state.d.ts +14 -0
  5. package/dist/authentication/session/auth-state.d.ts.map +1 -0
  6. package/dist/authentication/session/login.d.ts.map +1 -1
  7. package/dist/authentication/session/logout.d.ts.map +1 -1
  8. package/dist/authentication/session/user-authentication.d.ts +4 -0
  9. package/dist/authentication/session/user-authentication.d.ts.map +1 -1
  10. package/dist/authentication/tokens/get-csrf-token.d.ts +12 -6
  11. package/dist/authentication/tokens/get-csrf-token.d.ts.map +1 -1
  12. package/dist/spfx/index.cjs +1 -0
  13. package/dist/spfx/index.d.ts +3 -0
  14. package/dist/spfx/index.d.ts.map +1 -0
  15. package/dist/spfx/index.js +2 -0
  16. package/dist/src-B54_W-0n.cjs +1 -0
  17. package/dist/src-D4e623or.js +1821 -0
  18. package/dist/web-api/helpers/aad-http-client-manager.d.ts +53 -0
  19. package/dist/web-api/helpers/aad-http-client-manager.d.ts.map +1 -0
  20. package/dist/web-api/helpers/handle-response.d.ts +5 -2
  21. package/dist/web-api/helpers/handle-response.d.ts.map +1 -1
  22. package/dist/web-api/helpers/index.d.ts +1 -0
  23. package/dist/web-api/helpers/index.d.ts.map +1 -1
  24. package/dist/web-api/helpers/methods/del.d.ts.map +1 -1
  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/dist/web-api/helpers/utils/resolve-no-auto-authentication.d.ts +16 -0
  30. package/dist/web-api/helpers/utils/resolve-no-auto-authentication.d.ts.map +1 -0
  31. package/package.json +17 -4
  32. package/dist/atomic.umd.cjs +0 -1
@@ -0,0 +1,1821 @@
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 ie(e) {
160
+ return e.items &&= e.items.map((e) => ie(e)), e.items && e.items.some((e) => e.$selected || e.$opened) && (e.$opened = !0), e;
161
+ }
162
+ function ae(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
+ f(n, r, "/", e.display, +(e.frequency || 0), 1, (o?.index || 0) + t.length);
170
+ }
171
+ });
172
+ }
173
+ return n;
174
+ }
175
+ function f(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, f(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, pe = 9, me = 11, he = 12, ge = 14, _e = 15;
202
+ function p(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[pe] ? t.push({
214
+ type: "exact",
215
+ value: e[pe],
216
+ op: e[fe]
217
+ }) : e[he] ? t.push({
218
+ type: "regex",
219
+ value: e[he],
220
+ op: e[me]
221
+ }) : e[_e] && t.push({
222
+ type: "token",
223
+ value: e[_e],
224
+ op: e[ge]
225
+ });
226
+ return t;
227
+ }
228
+ function m(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 ve(e, t, n) {
241
+ let r = p(e);
242
+ for (let e of t) r.push({
243
+ type: "adjacent",
244
+ value: e,
245
+ op: n
246
+ });
247
+ return m(r);
248
+ }
249
+ function ye(e, t) {
250
+ let n = p(t), r = n.findIndex((t) => t.value === e);
251
+ return r === -1 ? t : (n.splice(r, 1), t = m(n));
252
+ }
253
+ function be(e) {
254
+ return m(p(e).filter((e) => e.type !== "adjacent"));
255
+ }
256
+ function xe(e) {
257
+ return p(e).filter((e) => e.type === "adjacent").map((e) => e.value);
258
+ }
259
+ //#endregion
260
+ //#region src/utils/date.ts
261
+ function Se(e, t, n) {
262
+ let r = new Intl.RelativeTimeFormat(e, { numeric: "auto" }), { offset: i, unit: a, isFuture: o } = Ce(t, n);
263
+ return r.format(i * (o ? 1 : -1), a);
264
+ }
265
+ function Ce(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 we(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 Te(e) {
282
+ if (e === void 0) return;
283
+ let { q: t, f: n, p: r, s: i, t: a, n: o, b: s } = g(e), [c] = e.split("?");
284
+ return {
285
+ path: c,
286
+ text: t,
287
+ filters: n ? h(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 Ee(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 De(e) {
301
+ if (e === void 0) return [];
302
+ let { f: t } = g(e);
303
+ return h(t);
304
+ }
305
+ function h(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 g(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 Oe(e) {
320
+ let { q: t = "" } = g(e);
321
+ return t;
322
+ }
323
+ function ke(e) {
324
+ let { id: t } = g(e);
325
+ return decodeURIComponent(t);
326
+ }
327
+ function Ae(e) {
328
+ let { p: t = "0" } = g(e);
329
+ return parseInt(t, 10);
330
+ }
331
+ function je(e) {
332
+ let { t } = g(e);
333
+ return t;
334
+ }
335
+ //#endregion
336
+ //#region src/utils/syslang.ts
337
+ function Me(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 = _(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 = _(e, c.end + 4, !0);
349
+ return e.substring(t.start, t.end);
350
+ } else c = _(e, c.end + 4, !1);
351
+ return e.substring(a.start, a.end) || e;
352
+ }
353
+ function _(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 Ne(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 v(e) {
380
+ let t = new CustomEvent("notification", {
381
+ bubbles: !0,
382
+ cancelable: !1,
383
+ detail: e
384
+ });
385
+ dispatchEvent(t);
386
+ }
387
+ var Pe = {
388
+ success: (e, t) => {
389
+ v({
390
+ type: "success",
391
+ message: e,
392
+ options: t
393
+ });
394
+ },
395
+ info: (e, t) => {
396
+ v({
397
+ type: "info",
398
+ message: e,
399
+ options: t
400
+ });
401
+ },
402
+ warning: (e, t) => {
403
+ v({
404
+ type: "warning",
405
+ message: e,
406
+ options: t
407
+ });
408
+ },
409
+ error: (e, t) => {
410
+ v({
411
+ type: "error",
412
+ message: e,
413
+ options: t
414
+ });
415
+ }
416
+ }, Fe = /* @__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
+ }({}), y = {
419
+ level: 1,
420
+ enableConsoleOutput: !0
421
+ };
422
+ function Ie(e) {
423
+ y = {
424
+ ...y,
425
+ ...e
426
+ };
427
+ }
428
+ function b(e, t, n) {
429
+ if (e < y.level) return;
430
+ let r = `${`[${Fe[e]}]`} ${t}`;
431
+ if (y.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 x(e, t) {
447
+ b(0, e, t);
448
+ }
449
+ function S(e, t) {
450
+ b(1, e, t);
451
+ }
452
+ function C(e, t) {
453
+ b(2, e, t);
454
+ }
455
+ function w(e, t) {
456
+ b(3, e, t);
457
+ }
458
+ //#endregion
459
+ //#region src/web-api/helpers/create-headers.ts
460
+ function T(e) {
461
+ let t = Q(), 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 E = class extends Error {
469
+ status;
470
+ constructor(e, t) {
471
+ super(e), this.name = "ApiError", this.status = t;
472
+ }
473
+ }, D = class extends E {
474
+ constructor(e = "Server error") {
475
+ super(e, 500), this.name = "ServerError";
476
+ }
477
+ }, Le = class extends E {
478
+ constructor(e = "Request timed out") {
479
+ super(e, 408), this.name = "TimeoutError";
480
+ }
481
+ }, O = class extends E {
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 k(e, t = "json") {
489
+ let n = e.headers.get("sinequa-jwt-refresh");
490
+ if (n !== null && Y(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 C("Unauthorized access attempt with user override", {
503
+ endpoint: e.url ?? "",
504
+ error: t
505
+ }), new O(t.errorMessage ?? t.message ?? "Unauthorized... User override failed.");
506
+ }
507
+ return await A(e, 401);
508
+ }
509
+ return e.status === 500 ? (w("Server error occurred", { endpoint: e.url ?? "" }), await A(e, 500)) : (C(`Unexpected response status: ${e.status}`, { endpoint: e.url ?? "" }), await A(e, e.status));
510
+ }
511
+ async function A(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 O() : t === 500 ? new D() : new E(`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 E ? e : t === 401 ? new O(e.message) : t === 500 ? new D(e.message) : new E(e.message ?? `Request failed with status ${t}`, t);
525
+ }
526
+ }
527
+ var j = 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 Re(e) {
541
+ j.initialize(e);
542
+ }
543
+ //#endregion
544
+ //#region src/web-api/helpers/methods/del.ts
545
+ async function ze(e, t, n) {
546
+ let i = T(n?.headers), { backendUrl: a } = r, o = t ? `?${new URLSearchParams(t)}` : "", s = a ? `${a}/${e}${o}` : `${e}${o}`;
547
+ x(`Making DELETE request to: ${s}`);
548
+ try {
549
+ if (j.isInitialized()) {
550
+ let e = j.getClient();
551
+ return k(await e.fetch(s, e.constructor.configurations.v1, {
552
+ method: "DELETE",
553
+ headers: i
554
+ }), n?.responseType);
555
+ }
556
+ return k(await fetch(s, {
557
+ method: "DELETE",
558
+ credentials: "include",
559
+ headers: i
560
+ }), n?.responseType);
561
+ } catch (e) {
562
+ throw w("Error making DELETE request:", e), e;
563
+ }
564
+ }
565
+ //#endregion
566
+ //#region src/web-api/helpers/methods/get.ts
567
+ async function M(e, t, n) {
568
+ let i = T(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
+ x(`Making GET request to: ${s}`);
572
+ try {
573
+ if (j.isInitialized()) {
574
+ let e = j.getClient();
575
+ return k(await e.get(s, e.constructor.configurations.v1, {
576
+ headers: i,
577
+ signal: n?.signal
578
+ }), n?.responseType);
579
+ }
580
+ return k(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 w("Error making GET request:", e), e;
589
+ }
590
+ }
591
+ //#endregion
592
+ //#region src/web-api/helpers/utils/resolve-no-auto-authentication.ts
593
+ function N() {
594
+ return r.authMode?.kind !== "sso";
595
+ }
596
+ //#endregion
597
+ //#region src/web-api/helpers/methods/patch.ts
598
+ async function Be(e, t, n) {
599
+ let i = T(n?.headers);
600
+ i.append("content-type", "application/json");
601
+ let { app: a, backendUrl: o } = r, s = {
602
+ app: a,
603
+ ...t,
604
+ locale: t.locale || navigator.language,
605
+ noUserOverride: !0,
606
+ noAutoAuthentication: N()
607
+ }, c = o ? `${o}/${e}` : `${e}`;
608
+ x(`Making PATCH request to: ${c}`);
609
+ try {
610
+ if (j.isInitialized()) {
611
+ let e = j.getClient();
612
+ return k(await e.fetch(c, e.constructor.configurations.v1, {
613
+ method: "PATCH",
614
+ headers: i,
615
+ body: JSON.stringify(s)
616
+ }), n?.responseType);
617
+ }
618
+ return k(await fetch(c, {
619
+ method: "PATCH",
620
+ headers: i,
621
+ credentials: "include",
622
+ body: JSON.stringify(s)
623
+ }), n?.responseType);
624
+ } catch (e) {
625
+ throw w("Error making PATCH request:", e), e;
626
+ }
627
+ }
628
+ //#endregion
629
+ //#region src/web-api/helpers/methods/post.ts
630
+ async function P(e, t, n) {
631
+ let i = T(n?.headers), { app: a, backendUrl: o } = r;
632
+ i.has("Content-Type") || i.set("Content-Type", "application/json");
633
+ let s = {
634
+ app: a,
635
+ ...t,
636
+ locale: t.locale || navigator.language,
637
+ noUserOverride: !0,
638
+ noAutoAuthentication: N()
639
+ };
640
+ e.startsWith("plugin") && (e = `api/v1/${e}`);
641
+ let c = o ? `${o}/${e}` : `${e}`;
642
+ x(`Making POST request to: ${c}`);
643
+ try {
644
+ if (j.isInitialized()) {
645
+ let e = j.getClient();
646
+ return k(await e.post(c, e.constructor.configurations.v1, {
647
+ headers: i,
648
+ body: JSON.stringify(s),
649
+ signal: n?.signal
650
+ }), n?.responseType);
651
+ }
652
+ return k(await fetch(c, {
653
+ method: "POST",
654
+ headers: i,
655
+ credentials: "include",
656
+ body: JSON.stringify(s),
657
+ signal: n?.signal
658
+ }), n?.responseType);
659
+ } catch (e) {
660
+ throw w("Error making POST request:", e), e;
661
+ }
662
+ }
663
+ //#endregion
664
+ //#region src/web-api/helpers/methods/put.ts
665
+ async function Ve(e, t, n) {
666
+ let i = T(n?.headers), { app: a, backendUrl: o } = r, s = {
667
+ app: a,
668
+ ...t,
669
+ locale: t.locale || navigator.language,
670
+ noUserOverride: !0,
671
+ noAutoAuthentication: N()
672
+ }, c = `${o}/${e}`;
673
+ x(`Making PUT request to: ${c}`);
674
+ try {
675
+ if (j.isInitialized()) {
676
+ let e = j.getClient();
677
+ return k(await e.fetch(c, e.constructor.configurations.v1, {
678
+ method: "PUT",
679
+ headers: i,
680
+ body: JSON.stringify(s)
681
+ }), n?.responseType);
682
+ }
683
+ return k(await fetch(c, {
684
+ method: "PUT",
685
+ headers: i,
686
+ credentials: "include",
687
+ body: JSON.stringify(s)
688
+ }), n?.responseType);
689
+ } catch (e) {
690
+ throw w("Error making PUT request:", e), e;
691
+ }
692
+ }
693
+ //#endregion
694
+ //#region src/web-api/helpers/utils/create-timeout-controller.ts
695
+ function F(e) {
696
+ let t = new AbortController(), { signal: n } = t;
697
+ return e && setTimeout(() => {
698
+ n.aborted || t.abort(new Le(`Request timed out after ${e}ms`));
699
+ }, e), {
700
+ controller: t,
701
+ signal: n
702
+ };
703
+ }
704
+ //#endregion
705
+ //#region src/web-api/helpers/utils/date-utils..ts
706
+ function I(e) {
707
+ if (!e) return;
708
+ let t = new Date(e);
709
+ return Number.isNaN(t.getTime()) ? void 0 : t;
710
+ }
711
+ function He(e) {
712
+ let t = I(e);
713
+ return !!t && t.getTime() <= Date.now();
714
+ }
715
+ function Ue(e, t = 7) {
716
+ let n = I(e);
717
+ if (!n) return !1;
718
+ let r = Date.now(), i = r + t * 24 * 60 * 60 * 1e3, a = n.getTime();
719
+ return a > r && a <= i;
720
+ }
721
+ //#endregion
722
+ //#region src/web-api/helpers/utils/with-retry.ts
723
+ async function We(e, t = 0, n = 1e3) {
724
+ let r;
725
+ for (let i = 0; i <= t; i++) try {
726
+ return await e();
727
+ } catch (e) {
728
+ if (r = e, e instanceof E && e.status >= 400 && e.status < 500 && e.status !== 429 || e instanceof DOMException && e.name === "AbortError") throw e;
729
+ i < t && (C(`Retrying request (${i + 1}/${t})`, { error: e }), await new Promise((e) => setTimeout(e, n)));
730
+ }
731
+ throw r;
732
+ }
733
+ //#endregion
734
+ //#region src/helpers/column-resolver.ts
735
+ function Ge(e, t, n) {
736
+ if (!e || !t) return;
737
+ if (n) {
738
+ let r = Object.keys(t.queries).find((e) => e === n?.toLowerCase()), i;
739
+ r && (i = t.queries[r]);
740
+ let a = (i?.columnsInfo?.columns || [])?.find((t) => t.aliases?.split(",")?.includes(e));
741
+ if (a) return a.name;
742
+ }
743
+ let r = t.indexes?._?.columns, i = Object.entries(r).find((t) => t[1].aliases?.includes(e));
744
+ if (i) return i[0];
745
+ }
746
+ //#endregion
747
+ //#region src/types/audit/AuditEventType.ts
748
+ var L = /* @__PURE__ */ function(e) {
749
+ 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;
750
+ }({}), R = /* @__PURE__ */ function(e) {
751
+ 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;
752
+ }({}), z = /* @__PURE__ */ function(e) {
753
+ 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;
754
+ }({}), Ke = "1.0", qe = /* @__PURE__ */ function(e) {
755
+ return e[e.Original = 0] = "Original", e[e.Corrected = 1] = "Corrected", e;
756
+ }({}), Je = /* @__PURE__ */ function(e) {
757
+ 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;
758
+ }({});
759
+ //#endregion
760
+ //#region src/helpers/columns.ts
761
+ function Ye(e) {
762
+ if (!e) return R.none;
763
+ switch (e.toLocaleLowerCase()) {
764
+ case "bool":
765
+ case "boolean": return R.bool;
766
+ case "date": return R.date;
767
+ case "datetime": return R.dateTime;
768
+ case "time": return R.time;
769
+ case "unsigned": return R.unsigned;
770
+ case "integer": return R.integer;
771
+ case "float": return R.float;
772
+ case "double": return R.double;
773
+ case "dates": return R.dates;
774
+ case "datetimes": return R.dateTimes;
775
+ case "times": return R.times;
776
+ case "varchar": return R.varchar;
777
+ case "binary": return R.binary;
778
+ case "string": return R.string;
779
+ case "csv": return R.csv;
780
+ default: return R.none;
781
+ }
782
+ }
783
+ function Xe(e) {
784
+ switch (e) {
785
+ case "a": return z.a;
786
+ case "c": return z.c;
787
+ case "d": return z.d;
788
+ case "e": return z.e;
789
+ case "i": return z.i;
790
+ case "l": return z.l;
791
+ case "n": return z.n;
792
+ case "t": return z.t;
793
+ case "x": return z.x;
794
+ case "z": return z.z;
795
+ default: return z.none;
796
+ }
797
+ }
798
+ function Ze(e) {
799
+ let t = z.none;
800
+ if (e) for (let n of e) t |= Xe(n);
801
+ return t;
802
+ }
803
+ function B(e, t, n, r) {
804
+ return {
805
+ name: e,
806
+ type: t,
807
+ typeModifier: n,
808
+ eType: Ye(t),
809
+ eTypeModifier: Ze(n || ""),
810
+ aliases: r
811
+ };
812
+ }
813
+ var Qe = {
814
+ id: B("id", "string"),
815
+ text: B("text", "varchar"),
816
+ documentlanguages: B("documentlanguages", "csv", "ci", ["language"]),
817
+ databasealias: B("databasealias", "varchar"),
818
+ globalrelevance: B("globalrelevance", "double"),
819
+ matchingpartnames: B("matchingpartnames", "csv"),
820
+ matchlocations: B("matchlocations", "csv"),
821
+ matchlocationsperpartname: B("matchlocationsperpartname", "varchar"),
822
+ extracts: B("extracts", "csv"),
823
+ extractsperpartname: B("extractsperpartname", "varchar"),
824
+ extractslocations: B("extractslocations", "csv"),
825
+ documentweight: B("documentweight", "varchar"),
826
+ groupcount: B("groupcount", "integer"),
827
+ accesslists: B("accesslists", "varchar", void 0, ["accessLists"])
828
+ };
829
+ //#endregion
830
+ //#region src/helpers/filters.ts
831
+ function $e(e) {
832
+ return e.filter((e) => !!e);
833
+ }
834
+ var et = {
835
+ eq: (e, t) => ({
836
+ field: e,
837
+ operator: "eq",
838
+ value: t
839
+ }),
840
+ neq: (e, t) => ({
841
+ field: e,
842
+ operator: "neq",
843
+ value: t
844
+ }),
845
+ gt: (e, t) => ({
846
+ field: e,
847
+ operator: "gt",
848
+ value: t
849
+ }),
850
+ gte: (e, t) => ({
851
+ field: e,
852
+ operator: "gte",
853
+ value: t
854
+ }),
855
+ lt: (e, t) => ({
856
+ field: e,
857
+ operator: "lt",
858
+ value: t
859
+ }),
860
+ lte: (e, t) => ({
861
+ field: e,
862
+ operator: "lte",
863
+ value: t
864
+ }),
865
+ like: (e, t) => ({
866
+ field: e,
867
+ operator: "like",
868
+ value: t
869
+ }),
870
+ contains: (e, t) => ({
871
+ field: e,
872
+ operator: "contains",
873
+ value: t
874
+ }),
875
+ regex: (e, t) => ({
876
+ field: e,
877
+ operator: "regex",
878
+ value: t
879
+ }),
880
+ isNull: (e) => ({
881
+ field: e,
882
+ operator: "null"
883
+ }),
884
+ isNotNull: (e) => ({
885
+ field: e,
886
+ operator: "notnull"
887
+ }),
888
+ in: (e, t) => ({
889
+ field: e,
890
+ operator: "in",
891
+ values: t
892
+ }),
893
+ between: (e, t, n) => ({
894
+ field: e,
895
+ operator: "between",
896
+ start: t,
897
+ end: n
898
+ }),
899
+ and: (...e) => tt("and", e),
900
+ or: (...e) => tt("or", e),
901
+ not: (...e) => {
902
+ let t = $e(e);
903
+ return t.length ? {
904
+ operator: "not",
905
+ filters: t
906
+ } : void 0;
907
+ }
908
+ };
909
+ function tt(e, t) {
910
+ let n = $e(t);
911
+ if (n.length !== 0) return n.length === 1 ? n[0] : {
912
+ operator: e,
913
+ filters: n
914
+ };
915
+ }
916
+ //#endregion
917
+ //#region src/helpers/metadata.ts
918
+ function nt(e, t) {
919
+ let n = e[t];
920
+ return n === void 0 ? [] : (typeof n == "string" && (n = String(n).split(",")), Array.isArray(n) ? n.map((e) => {
921
+ if (typeof e == "string") return e.trim();
922
+ if (typeof e == "object" && e && "display" in e) return e.display.trim();
923
+ }).filter((e) => e !== void 0) : [String(n).trim()]);
924
+ }
925
+ function rt(e, t) {
926
+ let n = e[t];
927
+ if (n === void 0) return [];
928
+ if (typeof n == "string" && (n = String(n).split(",")), Array.isArray(n)) return n.map((e) => {
929
+ if (typeof e == "string") return {
930
+ display: e.trim(),
931
+ value: e.trim()
932
+ };
933
+ if (typeof e == "object" && e && "display" in e) {
934
+ let t = e.display.trim();
935
+ return {
936
+ display: t,
937
+ value: "value" in e ? String(e.value).trim() : t
938
+ };
939
+ }
940
+ }).filter((e) => e !== void 0);
941
+ let r = String(n).trim();
942
+ return [{
943
+ display: r,
944
+ value: r
945
+ }];
946
+ }
947
+ //#endregion
948
+ //#region src/helpers/utils.ts
949
+ function V(e) {
950
+ return typeof e == "object" && !!e;
951
+ }
952
+ function it(e) {
953
+ return V(e) && Object.prototype.toString.call(e) === "[object ArrayBuffer]";
954
+ }
955
+ function at(e) {
956
+ return V(e) && Object.prototype.toString.call(e) === "[object Blob]";
957
+ }
958
+ function ot(e) {
959
+ return Object.prototype.toString.call(e) === "[object Date]";
960
+ }
961
+ function st(e) {
962
+ return typeof e == "string";
963
+ }
964
+ function ct(e) {
965
+ return (V(e) || Array.isArray(e)) && !it(e) && !at(e) && !st(e);
966
+ }
967
+ function lt(e) {
968
+ return e ? (e.getHours() * 60 * 60 + e.getMinutes() * 60 + e.getSeconds()) * 1e3 + e.getMilliseconds() : 0;
969
+ }
970
+ function H(e = !0) {
971
+ let t = Date.now();
972
+ return (e ? "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" : "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").replace(/[xy]/g, (e) => {
973
+ let n = (t + Math.random() * 16) % 16 | 0;
974
+ return t = Math.floor(t / 16), (e === "x" ? n : n & 3 | 8).toString(16);
975
+ });
976
+ }
977
+ function ut(e) {
978
+ if (!e) return "``";
979
+ if (e = String(e), e.search(/[\\`]/) === -1) return `\`${e}\``;
980
+ let t = ["`"];
981
+ for (let n = 0, r = e.length; n < r; n++) {
982
+ let r = e[n];
983
+ (r === "\\" || r === "`") && t.push("\\"), t.push(r);
984
+ }
985
+ return t.push("`"), t.join("");
986
+ }
987
+ function dt(e) {
988
+ if (typeof crypto < "u" && crypto.subtle && typeof crypto.subtle.digest == "function") try {
989
+ 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)));
990
+ } catch {
991
+ return Promise.resolve(U(e));
992
+ }
993
+ return Promise.resolve(U(e));
994
+ }
995
+ function U(e) {
996
+ let t = 2166136261;
997
+ for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = t * 16777619 >>> 0;
998
+ 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;
999
+ return (o + o + o + o).substring(0, 128);
1000
+ }
1001
+ //#endregion
1002
+ //#region src/web-api/v1/fetch-audit.ts
1003
+ var W, ft;
1004
+ function G(e, t = !0) {
1005
+ let n = pt(e.$auditRecord);
1006
+ n && (mt(n), t && ht(n)), e.$auditRecord = n;
1007
+ }
1008
+ function pt(e) {
1009
+ if (!e) return;
1010
+ let t;
1011
+ if (Array.isArray(e)) t = e;
1012
+ else if (V(e)) {
1013
+ let n = e;
1014
+ if (n.auditEvents || n.mlAuditEvents) return n;
1015
+ t = [e];
1016
+ }
1017
+ return { auditEvents: t };
1018
+ }
1019
+ function mt(e) {
1020
+ let t = gt();
1021
+ return e.auditEvents?.forEach((e) => {
1022
+ e.detail ||= {}, e.detail.sessionid = t;
1023
+ }), e;
1024
+ }
1025
+ function ht(e) {
1026
+ let t = typeof window < "u" ? decodeURIComponent(window.location.href) : "http://localhost";
1027
+ return e?.auditEvents?.forEach((e) => {
1028
+ e.detail ||= {}, e.detail.url = t;
1029
+ }), e;
1030
+ }
1031
+ function gt() {
1032
+ return (!W || _t()) && (W = H()), ft = /* @__PURE__ */ new Date(), W;
1033
+ }
1034
+ function _t() {
1035
+ return (/* @__PURE__ */ new Date()).getTime() - ft.getTime() > 600 * 1e3;
1036
+ }
1037
+ async function vt(e, t = !0) {
1038
+ let n = {
1039
+ event: L.None,
1040
+ $auditRecord: e
1041
+ };
1042
+ return G(n, t), P("api/v1/audit.notify", n);
1043
+ }
1044
+ var yt = { notify: vt };
1045
+ //#endregion
1046
+ //#region src/web-api/v1/fetch-aggregation.ts
1047
+ async function bt(e, t, n) {
1048
+ let r = e.items?.length || 0, i = {
1049
+ query: {
1050
+ ...t,
1051
+ action: "aggregate",
1052
+ aggregations: { [e.name]: {
1053
+ skip: r,
1054
+ count: 10
1055
+ } }
1056
+ },
1057
+ $auditRecord: { auditEvents: [n] }
1058
+ };
1059
+ G(i);
1060
+ let { aggregations: a } = await k(await P("api/v1/query", i)), o = a[0];
1061
+ return o.$hasMore = o.items.length > 10, o.items = [...e.items, ...o.items], Promise.resolve(o);
1062
+ }
1063
+ //#endregion
1064
+ //#region src/authentication/session/detect-auth-mode.ts
1065
+ function xt(e, n) {
1066
+ if (e.authMode?.kind === "credentials") return t.credentials();
1067
+ if (e.bearerToken) return t.bearer(e.bearerToken);
1068
+ let r = e.autoOAuthProvider || n?.autoOAuthProvider;
1069
+ if (r) return t.oauth(r);
1070
+ let i = e.autoSAMLProvider || n?.autoSAMLProvider;
1071
+ return i ? t.saml(i) : t.unknown();
1072
+ }
1073
+ //#endregion
1074
+ //#region src/web-api/v1/fetch-app.ts
1075
+ async function St(e) {
1076
+ let t = e || r.app;
1077
+ return M("api/v1/app", new URLSearchParams({ app: t || "" }));
1078
+ }
1079
+ async function Ct() {
1080
+ let { app: e } = r;
1081
+ return M("api/v1/app", new URLSearchParams({
1082
+ app: e || "",
1083
+ preLogin: "true"
1084
+ }));
1085
+ }
1086
+ function wt() {
1087
+ let { backendUrl: e, app: n } = r;
1088
+ if (typeof window < "u") {
1089
+ if (e ||= window.location.origin, !n) {
1090
+ let e = window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);
1091
+ e && (n = e[1]);
1092
+ }
1093
+ i({
1094
+ backendUrl: e,
1095
+ app: n
1096
+ });
1097
+ }
1098
+ return r.authMode?.kind === "credentials" ? (i({
1099
+ authMode: t.credentials(),
1100
+ autoOAuthProvider: void 0,
1101
+ autoSAMLProvider: void 0,
1102
+ bearerToken: void 0
1103
+ }), Promise.resolve({})) : Ct().then((e) => (i({
1104
+ authMode: xt(r, e),
1105
+ autoOAuthProvider: r.autoOAuthProvider || e.autoOAuthProvider,
1106
+ autoSAMLProvider: r.autoSAMLProvider || e.autoSAMLProvider
1107
+ }), e)).catch((e) => {
1108
+ throw w("atomic:fetchAppPreLogin error", e), e;
1109
+ });
1110
+ }
1111
+ var Tt = wt;
1112
+ //#endregion
1113
+ //#region src/web-api/v1/fetch-dataset.ts
1114
+ async function Et(e, t, n = {}) {
1115
+ let r = await P(`api/v1/search.dataset/${e}/${t}`, { parameters: n }), i = t[0].toLowerCase() + t.slice(1), a = r.datasets[i];
1116
+ if ("errorCode" in a && "errorMessage" in a) throw Error(a.errorMessage);
1117
+ return a;
1118
+ }
1119
+ async function Dt(e, t) {
1120
+ let n = `api/v1/search.dataset/${e}`, { parameters: r = {}, datasets: i = [] } = t;
1121
+ return (await P(n, {
1122
+ parameters: r,
1123
+ datasets: i
1124
+ })).datasets;
1125
+ }
1126
+ async function Ot(e) {
1127
+ return await M(`api/v1/search.dataset/${e}`);
1128
+ }
1129
+ //#endregion
1130
+ //#region src/web-api/v1/fetch-labels.ts
1131
+ async function kt(e, t = !0, n) {
1132
+ try {
1133
+ return (await P("api/v1/labels", {
1134
+ action: "list",
1135
+ q: e,
1136
+ public: t,
1137
+ locale: n,
1138
+ localize: !1
1139
+ })).labels;
1140
+ } catch (e) {
1141
+ throw w("Error in fetchLabels", e), e;
1142
+ }
1143
+ }
1144
+ async function At() {
1145
+ try {
1146
+ let { app: e = "" } = r;
1147
+ return M("api/v1/labels", new URLSearchParams({
1148
+ app: e,
1149
+ action: "getUserRights"
1150
+ }));
1151
+ } catch (e) {
1152
+ throw w("Error in getUserRights", e), e;
1153
+ }
1154
+ }
1155
+ async function jt(e, t, n = !0) {
1156
+ try {
1157
+ return P("api/v1/labels", {
1158
+ action: "add",
1159
+ labels: e,
1160
+ ids: t,
1161
+ public: n,
1162
+ $auditRecord: {
1163
+ auditEvents: [{
1164
+ type: L.Label_AddDoc,
1165
+ detail: {
1166
+ public: n,
1167
+ label: e ? e.toString() : null,
1168
+ doccount: t ? t.length : 0
1169
+ }
1170
+ }],
1171
+ mlAuditEvents: [{
1172
+ actionType: "addToLabel",
1173
+ documentIds: t
1174
+ }]
1175
+ }
1176
+ });
1177
+ } catch (e) {
1178
+ throw w("Error in add", e), e;
1179
+ }
1180
+ }
1181
+ async function Mt(e, t, n = !0) {
1182
+ try {
1183
+ return P("api/v1/labels", {
1184
+ action: "remove",
1185
+ labels: e,
1186
+ ids: t,
1187
+ public: n,
1188
+ $auditRecord: {
1189
+ auditEvents: [{
1190
+ type: L.Label_RemoveDoc,
1191
+ detail: {
1192
+ public: n,
1193
+ label: e ? e.toString() : null,
1194
+ doccount: t ? t.length : 0
1195
+ }
1196
+ }],
1197
+ mlAuditEvents: [{
1198
+ actionType: "removeFromLabel",
1199
+ documentIds: t
1200
+ }]
1201
+ }
1202
+ });
1203
+ } catch (e) {
1204
+ throw w("Error in remove", e), e;
1205
+ }
1206
+ }
1207
+ async function Nt(e, t, n = !0) {
1208
+ try {
1209
+ return P("api/v1/labels", {
1210
+ action: "rename",
1211
+ labels: e,
1212
+ newLabel: t,
1213
+ public: n,
1214
+ auditEvents: {
1215
+ type: L.Label_Rename,
1216
+ detail: {
1217
+ public: n,
1218
+ oldlabel: e ? e.toString() : null,
1219
+ label: t
1220
+ }
1221
+ }
1222
+ });
1223
+ } catch (e) {
1224
+ throw w("Error in rename", e), e;
1225
+ }
1226
+ }
1227
+ async function Pt(e, t = !0) {
1228
+ try {
1229
+ return P("api/v1/labels", {
1230
+ action: "delete",
1231
+ labels: e,
1232
+ public: t,
1233
+ auditEvents: {
1234
+ type: L.Label_Delete,
1235
+ detail: {
1236
+ public: t,
1237
+ label: e ? e.toString() : null
1238
+ }
1239
+ }
1240
+ });
1241
+ } catch (e) {
1242
+ throw w("Error in deleteLabels", e), e;
1243
+ }
1244
+ }
1245
+ async function Ft(e, t, n = !0) {
1246
+ try {
1247
+ return P("api/v1/labels", {
1248
+ action: "bulkAdd",
1249
+ labels: e,
1250
+ query: t,
1251
+ public: n,
1252
+ auditEvents: {
1253
+ type: L.Label_Add,
1254
+ detail: {
1255
+ public: n,
1256
+ label: e ? e.toString() : null,
1257
+ query: t === null ? null : t.name
1258
+ }
1259
+ }
1260
+ });
1261
+ } catch (e) {
1262
+ throw w("Error in bulkAdd", e), e;
1263
+ }
1264
+ }
1265
+ async function It(e, t, n = !0) {
1266
+ try {
1267
+ return P("api/v1/labels", {
1268
+ action: "bulkRemove",
1269
+ labels: e,
1270
+ query: t,
1271
+ public: n,
1272
+ auditEvents: {
1273
+ type: L.Label_Delete,
1274
+ detail: {
1275
+ public: n,
1276
+ label: e ? e.toString() : null,
1277
+ query: t === null ? null : t.name
1278
+ }
1279
+ }
1280
+ });
1281
+ } catch (e) {
1282
+ throw w("Error in bulkRemove", e), e;
1283
+ }
1284
+ }
1285
+ var Lt = {
1286
+ getUserRights: At,
1287
+ add: jt,
1288
+ remove: Mt,
1289
+ rename: Nt,
1290
+ delete: Pt,
1291
+ bulkAdd: Ft,
1292
+ bulkRemove: It
1293
+ };
1294
+ //#endregion
1295
+ //#region src/web-api/v1/fetch-preview.ts
1296
+ async function Rt(e, t) {
1297
+ if (typeof window > "u") return P("api/v1/preview", {
1298
+ action: "get",
1299
+ id: e,
1300
+ query: t
1301
+ });
1302
+ let n = `${window.location.origin}${window.location.pathname}`;
1303
+ return P("api/v1/preview", {
1304
+ action: "get",
1305
+ id: e,
1306
+ query: {
1307
+ name: t?.name,
1308
+ text: t?.text
1309
+ },
1310
+ browserUrl: n
1311
+ });
1312
+ }
1313
+ async function zt(e) {
1314
+ let t = new Headers();
1315
+ t.append("content-type", "text"), k(await fetch(e, {
1316
+ method: "GET",
1317
+ headers: t
1318
+ }));
1319
+ }
1320
+ //#endregion
1321
+ //#region src/web-api/v1/fetch-principal.ts
1322
+ async function Bt() {
1323
+ return M("api/v1/principal", new URLSearchParams({
1324
+ action: "get",
1325
+ noAutoAuthentication: String(N())
1326
+ }));
1327
+ }
1328
+ async function Vt(e) {
1329
+ let t = {
1330
+ noAutoAuthentication: String(N()),
1331
+ ...e
1332
+ }, n = new URLSearchParams();
1333
+ return Object.entries(t).forEach(([e, t]) => {
1334
+ t !== void 0 && n.append(e, String(t));
1335
+ }), M("api/v1/principal/list", n);
1336
+ }
1337
+ async function Ht(e) {
1338
+ return e ? M("api/v1/principal", new URLSearchParams({
1339
+ action: "userid",
1340
+ noAutoAuthentication: String(N()),
1341
+ userid: e
1342
+ })) : Promise.reject(/* @__PURE__ */ Error("userid is required"));
1343
+ }
1344
+ async function Ut(e) {
1345
+ return e.length === 0 ? Promise.reject(/* @__PURE__ */ Error("userids is required")) : M("api/v1/principal/userids", new URLSearchParams({
1346
+ noAutoAuthentication: String(N()),
1347
+ userids: [...e].join(",")
1348
+ }));
1349
+ }
1350
+ var Wt = { principal: {
1351
+ get: Bt,
1352
+ list: Vt,
1353
+ userid: Ht,
1354
+ userids: Ut
1355
+ } }, Gt = 11;
1356
+ async function Kt(e, t, n) {
1357
+ let r = await P("api/v1/query", {
1358
+ query: e,
1359
+ $auditRecord: t,
1360
+ queryIntentData: n
1361
+ });
1362
+ r.aggregations.forEach((e) => {
1363
+ e.$hasMore = !1, !e.isDistribution && !e.isTree && e.items && (e.$hasMore = e.items.length === Gt), e.isTree && e.items && K(e);
1364
+ }), r.records?.map((e) => Object.assign(e, {
1365
+ value: e.title,
1366
+ type: "default"
1367
+ }));
1368
+ let i = {
1369
+ ...r,
1370
+ nextPage: r.page < Math.ceil(r.rowCount / r.pageSize) ? r.page + 1 : void 0,
1371
+ previousPage: r.page > 1 ? r.page - 1 : void 0
1372
+ };
1373
+ return Promise.resolve(i);
1374
+ }
1375
+ async function qt(e, t, n) {
1376
+ let { app: i = "" } = r, a = {
1377
+ methods: [],
1378
+ mode: t,
1379
+ propagateErrors: !0,
1380
+ $auditRecord: { auditEvents: [n] }
1381
+ };
1382
+ for (let t of e) a.methods.push({
1383
+ method: "query",
1384
+ app: i,
1385
+ query: t
1386
+ });
1387
+ let o = await P("api/v1/multi", a);
1388
+ o.results.forEach((e) => {
1389
+ e.aggregations.forEach((e) => {
1390
+ e.$hasMore = !1, !e.isDistribution && !e.isTree && e.items && (e.$hasMore = e.items.length === Gt), e.isTree && K(e);
1391
+ });
1392
+ }), o.results.forEach((e) => e.records?.map((e) => Object.assign(e, {
1393
+ value: e.title,
1394
+ type: "default"
1395
+ })));
1396
+ let s = o.results.map((e) => ({
1397
+ ...e,
1398
+ nextPage: e.page < Math.ceil(e.rowCount / e.pageSize) ? e.page + 1 : void 0,
1399
+ previousPage: e.page > 1 ? e.page - 1 : void 0
1400
+ }));
1401
+ return Promise.resolve(s);
1402
+ }
1403
+ function K(e, t = "", n = 0) {
1404
+ let r = [];
1405
+ return e.items && e.items.forEach((e) => {
1406
+ let i = t ? `${t}/${e.value}` : e.value, a = n + 1;
1407
+ r.push({
1408
+ path: i,
1409
+ level: a
1410
+ }), e.$path = i, e.$level = a, e.hasChildren ? r = r.concat(K(e, i, a)) : e.hasChildren = !1;
1411
+ }), r;
1412
+ }
1413
+ //#endregion
1414
+ //#region src/web-api/v1/fetch-query-export.ts
1415
+ async function Jt({ model: e, appName: t, query: n, article: r }) {
1416
+ let { webservice: i, format: a, maxcount: o, exportedColumns: s, export: c } = e, l = {
1417
+ app: t,
1418
+ webservice: i,
1419
+ query: n,
1420
+ type: c,
1421
+ format: a,
1422
+ maxcount: o,
1423
+ exportedColumns: s,
1424
+ $auditRecord: { auditEvents: [{
1425
+ type: "Search_ExportCSV",
1426
+ detail: { resultid: r ? r.id : void 0 }
1427
+ }] }
1428
+ };
1429
+ return G(l), await P("api/v1/search.queryexport", l, { responseType: "blob" });
1430
+ }
1431
+ //#endregion
1432
+ //#region src/web-api/v1/fetch-query-intent.ts
1433
+ async function Yt(e) {
1434
+ return (await P("api/v1/queryintent", { query: e }))?.intents;
1435
+ }
1436
+ //#endregion
1437
+ //#region src/web-api/v1/fetch-similar-documents.ts
1438
+ async function Xt(e, t, n) {
1439
+ return (await P("api/v1/similardocuments", {
1440
+ sourceDocumentId: e,
1441
+ query: { name: t }
1442
+ }, { signal: n })).data;
1443
+ }
1444
+ //#endregion
1445
+ //#region src/web-api/v1/fetch-sponsored-links.ts
1446
+ async function Zt(e, t) {
1447
+ return (await P("api/v1/query.links", {
1448
+ webservice: e,
1449
+ query: t
1450
+ }))?.links?.map((e) => ({
1451
+ ...e,
1452
+ query: t
1453
+ }));
1454
+ }
1455
+ //#endregion
1456
+ //#region src/utils/to-sql.ts
1457
+ function Qt(e, t) {
1458
+ if (typeof e == "number") return `${e}`;
1459
+ if (ot(e)) return t ? `'${$t(e)}'` : $t(e);
1460
+ if (typeof e == "boolean") return e ? "true" : "false";
1461
+ if (e === null) return "null";
1462
+ if (Array.isArray(e)) {
1463
+ let t = [];
1464
+ return e.forEach((e) => {
1465
+ t.length > 0 && t.push(","), e ? typeof e == "string" ? t.push(e) : t.push(e.display || e.value || "") : t.push("null");
1466
+ }), t.splice(0, 0, "["), t.push("]"), t.join("");
1467
+ }
1468
+ return t ? `'${e}'` : e;
1469
+ }
1470
+ function $t(e) {
1471
+ if (!e) return "";
1472
+ try {
1473
+ return lt(e) === 0 ? new Intl.DateTimeFormat("en-CA", {
1474
+ year: "numeric",
1475
+ month: "2-digit",
1476
+ day: "2-digit"
1477
+ }).format(e) : `${new Intl.DateTimeFormat("en-CA").format(e)} ${new Intl.DateTimeFormat("en-CA", {
1478
+ hour: "2-digit",
1479
+ minute: "2-digit",
1480
+ second: "2-digit",
1481
+ hour12: !1
1482
+ }).format(e)}`;
1483
+ } catch {
1484
+ return "Invalid date";
1485
+ }
1486
+ }
1487
+ //#endregion
1488
+ //#region src/web-api/v1/fetch-suggest.ts
1489
+ async function en(e, t, n, i, a) {
1490
+ let { app: o } = r, s = {
1491
+ app: o || "",
1492
+ suggestQuery: e,
1493
+ text: t,
1494
+ filter: n,
1495
+ kinds: i,
1496
+ showSource: a
1497
+ };
1498
+ try {
1499
+ return (await P("api/v1/search.suggest", s)).suggests;
1500
+ } catch (e) {
1501
+ throw console.error("Error fetching suggestions:", e), e;
1502
+ }
1503
+ }
1504
+ async function tn(e, t, n, i) {
1505
+ let { app: a } = r;
1506
+ return (await P("api/v1/suggestquery", {
1507
+ app: a || "",
1508
+ suggestQuery: e,
1509
+ text: t,
1510
+ query: n,
1511
+ kinds: i
1512
+ })).suggests;
1513
+ }
1514
+ async function nn(e, t, n) {
1515
+ if (!t) return Promise.resolve([]);
1516
+ let { app: i } = r, a = await P("api/v1/suggestfield", {
1517
+ app: i || "",
1518
+ text: e,
1519
+ fields: t,
1520
+ query: n
1521
+ });
1522
+ return a.suggests.forEach((e) => {
1523
+ e.display = Qt(e.display);
1524
+ }), a.suggests;
1525
+ }
1526
+ //#endregion
1527
+ //#region src/web-api/v1/fetch-text-chunk.ts
1528
+ async function rn(e, t, n, r, i, a) {
1529
+ return P("api/v1/doc.textchunks", {
1530
+ id: e,
1531
+ textChunks: t,
1532
+ highlights: n,
1533
+ query: r,
1534
+ leftSentencesCount: i,
1535
+ rightSentencesCount: a
1536
+ });
1537
+ }
1538
+ //#endregion
1539
+ //#region src/web-api/v1/fetch-user-settings.ts
1540
+ async function an() {
1541
+ let { app: e } = r;
1542
+ return M("api/v1/usersettings", new URLSearchParams({
1543
+ app: e || "",
1544
+ action: "load"
1545
+ }));
1546
+ }
1547
+ async function on(e, t) {
1548
+ let n = {
1549
+ action: "save",
1550
+ userSettings: e,
1551
+ $auditRecord: { auditEvents: [t] }
1552
+ };
1553
+ return G(n), P("api/v1/usersettings", n);
1554
+ }
1555
+ async function sn(e, t) {
1556
+ let n = {
1557
+ action: "patch",
1558
+ userSettings: e,
1559
+ $auditRecord: t ? { auditEvents: [t] } : void 0
1560
+ };
1561
+ return G(n), P("api/v1/usersettings", n);
1562
+ }
1563
+ async function cn() {
1564
+ return on({}, { type: "UserSettings_Reset" });
1565
+ }
1566
+ //#endregion
1567
+ //#region src/web-api/v2/fetch-change-password.ts
1568
+ async function ln(e, t) {
1569
+ return P("api/v2/security/password/change", {
1570
+ newPassword: e,
1571
+ currentPassword: t
1572
+ });
1573
+ }
1574
+ //#endregion
1575
+ //#region src/web-api/v2/fetch-forgot-password.ts
1576
+ async function un(e) {
1577
+ return P("api/v2/security/password/ask-reset-email", {
1578
+ changePasswordRedirectUrl: `${window.location.origin}/login?mode=changepassword`,
1579
+ userName: e
1580
+ });
1581
+ }
1582
+ //#endregion
1583
+ //#region src/web-api/v2/fetch-user-profile.ts
1584
+ async function dn(e) {
1585
+ return await M(`api/v2/user-profile/${e}`);
1586
+ }
1587
+ async function fn(e) {
1588
+ return await P("api/v2/user-profile", e);
1589
+ }
1590
+ async function pn(e, t, n) {
1591
+ return await Be(`api/v2/user-profile/${e.data?.id}/${t}/${n}`, e);
1592
+ }
1593
+ async function mn(e, t, n) {
1594
+ try {
1595
+ return (await ze(`api/v2/user-profile/${e.data?.id}/${t}/${n}`)).success === !0;
1596
+ } catch {
1597
+ return !1;
1598
+ }
1599
+ }
1600
+ //#endregion
1601
+ //#region src/web-api/v2/fetch-version.ts
1602
+ async function hn() {
1603
+ return await M("api/v2/version");
1604
+ }
1605
+ //#endregion
1606
+ //#region src/authentication/constants.ts
1607
+ var q = 1e4, J = "sinequa-auth-redirect-attempt", gn = async () => {
1608
+ let { autoOAuthProvider: e } = r;
1609
+ if (!e) throw Error("autoOAuthProvider is not configured in globalConfig");
1610
+ if (typeof window > "u") try {
1611
+ let { signal: t } = F(q);
1612
+ return await P("security.oauth", {
1613
+ action: "getcode",
1614
+ provider: e,
1615
+ tokenInCookie: !0,
1616
+ originalUrl: "http://localhost"
1617
+ }, { signal: t });
1618
+ } catch (e) {
1619
+ throw w("Failed to authenticate with OAuth", e), e;
1620
+ }
1621
+ let t = {
1622
+ action: "getcode",
1623
+ provider: e,
1624
+ tokenInCookie: !0,
1625
+ originalUrl: window.location.href
1626
+ };
1627
+ try {
1628
+ let { signal: n } = F(q), r = await P("api/v1/security.oauth", t, { signal: n });
1629
+ if (r.redirectUrl) {
1630
+ let t = new URL(r.redirectUrl, window.location.origin);
1631
+ if (t.protocol === "https:" || t.protocol === "http:") {
1632
+ 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.`);
1633
+ u(J, "1"), window.location.href = t.href;
1634
+ }
1635
+ }
1636
+ return r;
1637
+ } catch (e) {
1638
+ throw w("Failed to authenticate with OAuth", e), e;
1639
+ }
1640
+ }, _n = async () => {
1641
+ let { autoSAMLProvider: e } = r;
1642
+ if (!e) throw Error("autoSAMLProvider is not configured in globalConfig");
1643
+ if (typeof window > "u") try {
1644
+ let { signal: t } = F(q);
1645
+ return await P("security.saml", {
1646
+ action: "getresponse",
1647
+ provider: e,
1648
+ tokenInCookie: !0,
1649
+ originalUrl: "http://localhost"
1650
+ }, { signal: t });
1651
+ } catch (e) {
1652
+ throw w("Failed to authenticate with SAML", e), e;
1653
+ }
1654
+ let t = {
1655
+ action: "getresponse",
1656
+ provider: e,
1657
+ tokenInCookie: !0,
1658
+ originalUrl: window.location.href
1659
+ };
1660
+ try {
1661
+ let { signal: n } = F(q), r = await P("api/v1/security.saml", t, { signal: n });
1662
+ if (r.redirectUrl) {
1663
+ let t = new URL(r.redirectUrl, window.location.origin);
1664
+ if (t.protocol === "https:" || t.protocol === "http:") {
1665
+ 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.`);
1666
+ u(J, "1"), window.location.href = t.href;
1667
+ }
1668
+ }
1669
+ return r;
1670
+ } catch (e) {
1671
+ throw w("Failed to authenticate with SAML", e), e;
1672
+ }
1673
+ }, Y = (e) => u("sinequa-credentials", JSON.stringify({ data: { csrfToken: e } })), X = async () => {
1674
+ let e;
1675
+ try {
1676
+ let { signal: t } = F(q);
1677
+ e = await M("api/v1/challenge?action=getCsrfToken&suppressErrors=true", void 0, { signal: t });
1678
+ } catch (e) {
1679
+ throw C("CSRF token fetch failed", e), e;
1680
+ }
1681
+ return e?.csrfToken ? (Y(e.csrfToken), e.csrfToken) : null;
1682
+ };
1683
+ //#endregion
1684
+ //#region src/authentication/tokens/get-jwt-token.ts
1685
+ async function Z(e) {
1686
+ if (e) {
1687
+ let { username: t, password: n } = e, r = {
1688
+ action: "get",
1689
+ tokenInCookie: !0,
1690
+ user: t,
1691
+ password: n,
1692
+ noUserOverride: !0,
1693
+ noAutoAuthentication: !0
1694
+ };
1695
+ try {
1696
+ let { signal: e } = F(q), t = await P("api/v1/security.webtoken", r, { signal: e });
1697
+ return t?.csrfToken ? (Y(t.csrfToken), t.csrfToken) : null;
1698
+ } catch (e) {
1699
+ throw w("Failed to get JWT", e), e;
1700
+ }
1701
+ } else {
1702
+ let e = {
1703
+ action: "get",
1704
+ tokenInCookie: !0,
1705
+ noUserOverride: !0,
1706
+ noAutoAuthentication: !1
1707
+ }, { bearerToken: t } = r;
1708
+ if (!t) throw Error("Bearer token is required in globalConfig for credentialless JWT retrieval.");
1709
+ let n = new Headers();
1710
+ n.append("Sinequa-Force-Camel-Case", "true"), n.append("accept", "application/json"), n.append("Content-Type", "application/json"), n.append("Authorization", `Bearer ${t}`);
1711
+ try {
1712
+ let { signal: t } = F(q), r = await P("api/v1/security.webtoken", e, {
1713
+ headers: n,
1714
+ signal: t
1715
+ });
1716
+ return r?.csrfToken ? (Y(r.csrfToken), r.csrfToken) : null;
1717
+ } catch (e) {
1718
+ throw w("Failed to get JWT without credentials", e), e;
1719
+ }
1720
+ }
1721
+ }
1722
+ //#endregion
1723
+ //#region src/authentication/tokens/get-token.ts
1724
+ var Q = () => {
1725
+ let e = l("sinequa-credentials");
1726
+ if (e) try {
1727
+ let t = JSON.parse(e).data?.csrfToken;
1728
+ if (t) return t;
1729
+ } catch (e) {
1730
+ C("Failed to parse session storage credentials, falling back to local storage", e);
1731
+ }
1732
+ return s("csrfToken") || null;
1733
+ }, $ = "sinequa-authenticated", vn = (e) => {
1734
+ e ? u($, "true") : d($);
1735
+ }, yn = () => l($) === "true", bn = async () => {
1736
+ try {
1737
+ let { signal: e } = F(q);
1738
+ return await M("api/v1/principal", new URLSearchParams({ action: "get" }), {
1739
+ signal: e,
1740
+ redirect: "manual"
1741
+ }), S("Server auto-authenticated the user (OIDC)"), !0;
1742
+ } catch {
1743
+ return !1;
1744
+ }
1745
+ }, xn = async (n) => {
1746
+ if (n) {
1747
+ let { username: t, password: r } = n;
1748
+ return !t || !r ? (w("Credentials are required for authentication"), e(!1), !1) : Sn({
1749
+ username: t,
1750
+ password: r
1751
+ });
1752
+ }
1753
+ let a = r.authMode ?? t.unknown();
1754
+ if (a.kind === "credentials") return e(!1), !1;
1755
+ if (a.kind === "bearer") return Cn();
1756
+ if (Q()) return i({ isRedirectUrl: !1 }), d(J), e(!0), !0;
1757
+ try {
1758
+ if (S("Checking for an existing session via CSRF token retrieval"), await X()) return S("User already authenticated (existing session / SSO)"), d(J), a.kind === "unknown" && i({ authMode: t.sso() }), e(!0), !0;
1759
+ } catch {}
1760
+ switch (a.kind) {
1761
+ case "oauth": return S("Initiating OAuth authentication flow"), await gn(), e(!1), !1;
1762
+ case "saml": return S("Initiating SAML authentication flow"), await _n(), e(!1), !1;
1763
+ case "sso": return e(!1), !1;
1764
+ default: return S("No provider declared — probing for server-side auto-authentication (OIDC)"), await bn() ? (S("User auto-authenticated by the server (OIDC)"), d(J), i({ authMode: t.sso() }), await X().catch(() => {}), vn(!0), e(!0), !0) : (i({ authMode: t.credentials() }), e(!1), !1);
1765
+ }
1766
+ };
1767
+ async function Sn(n) {
1768
+ S("Attempting authentication using credentials"), i({ authMode: t.credentials() });
1769
+ let { userOverrideActive: a, userOverride: o } = r;
1770
+ i({
1771
+ userOverrideActive: !1,
1772
+ userOverride: void 0
1773
+ });
1774
+ try {
1775
+ await Z(n);
1776
+ } catch (t) {
1777
+ throw e(!1), t;
1778
+ }
1779
+ return i({
1780
+ userOverrideActive: a,
1781
+ userOverride: o
1782
+ }), e(!0), !0;
1783
+ }
1784
+ async function Cn() {
1785
+ try {
1786
+ if (S("Attempting authentication using bearer token"), await Z()) return e(!0), !0;
1787
+ } catch (t) {
1788
+ throw w("Bearer authentication failed", t), e(!1), t;
1789
+ }
1790
+ return e(!1), !1;
1791
+ }
1792
+ //#endregion
1793
+ //#region src/authentication/tokens/delete-web-token-cookie.ts
1794
+ var wn = async () => {
1795
+ let e = new URLSearchParams({
1796
+ action: "deleteWebTokenCookie",
1797
+ noUserOverride: "true",
1798
+ noAutoAuthentication: "true"
1799
+ }), { signal: t } = F(q);
1800
+ return M("api/v1/challenge", e, { signal: t });
1801
+ };
1802
+ //#endregion
1803
+ //#region src/authentication/session/logout.ts
1804
+ async function Tn() {
1805
+ let { userOverrideActive: e } = r;
1806
+ if (En(), !e) try {
1807
+ let { methodresult: e, logoutUrl: t } = await wn();
1808
+ if (e === "ok") return t;
1809
+ w("logout failed");
1810
+ } catch (e) {
1811
+ w("logout failed", e);
1812
+ }
1813
+ }
1814
+ function En() {
1815
+ c("csrfToken"), d("sinequa-credentials"), vn(!1), e(!1);
1816
+ }
1817
+ //#endregion
1818
+ //#region src/authentication/session/user-authentication.ts
1819
+ var Dn = () => !!Q() || yn();
1820
+ //#endregion
1821
+ export { yt as $, h as $t, Yt as A, Ve as At, Rt as B, Le as Bt, on as C, te as Cn, L as Ct, tn as D, n as Dn, He as Dt, nn as E, t as En, Ue as Et, Wt as F, ze as Ft, Ot as G, Ie as Gt, kt as H, E as Ht, Bt as I, j as It, St as J, S as Jt, Dt as K, x as Kt, Vt as L, Re as Lt, K as M, Be as Mt, qt as N, N as Nt, Zt as O, e as On, I as Ot, Kt as P, M as Pt, bt as Q, Me as Qt, Ht as R, k as Rt, sn as S, ae as Sn, R as St, en as T, i as Tn, We as Tt, Lt as U, T as Ut, zt as V, D as Vt, Et as W, Fe as Wt, wt as X, Pe as Xt, Ct as Y, C as Yt, xt as Z, Ne as Zt, pn as _, oe as _n, B as _t, xn as a, Oe as an, H as at, cn as b, ie as bn, Ke as bt, Z as c, we as cn, ot as ct, _n as d, ve as dn, st as dt, De as en, G as et, gn as f, xe as fn, dt as ft, dn as g, m as gn, Qe as gt, mn as h, be as hn, et as ht, wn as i, je as in, lt as it, Jt as j, P as jt, Xt as k, F as kt, X as l, Ce as ln, ct as lt, fn as m, ye as mn, rt as mt, En as n, Ae as nn, ht as nt, bn as o, Ee as on, it as ot, hn as p, p as pn, nt as pt, Tt as q, w as qt, Tn as r, Te as rn, ut as rt, Q as s, g as sn, at as st, Dn as t, ke as tn, mt as tt, Y as u, Se as un, V as ut, un as v, ee as vn, Je as vt, rn as w, r as wn, Ge as wt, an as x, ne as xn, z as xt, ln as y, re as yn, qe as yt, Ut as z, O as zt };