@sinequa/atomic 2.2.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (170) hide show
  1. package/README.md +28 -1
  2. package/dist/atomic.cjs +1 -1
  3. package/dist/atomic.js +2 -2
  4. package/dist/authentication/constants.d.ts +20 -0
  5. package/dist/authentication/constants.d.ts.map +1 -1
  6. package/dist/authentication/events/auth-events.d.ts +71 -0
  7. package/dist/authentication/events/auth-events.d.ts.map +1 -0
  8. package/dist/authentication/events/emit-authenticated-event.d.ts +9 -0
  9. package/dist/authentication/events/emit-authenticated-event.d.ts.map +1 -1
  10. package/dist/authentication/events/index.d.ts +1 -0
  11. package/dist/authentication/events/index.d.ts.map +1 -1
  12. package/dist/authentication/index.d.ts +3 -3
  13. package/dist/authentication/index.d.ts.map +1 -1
  14. package/dist/authentication/providers/oauth-authentication.d.ts +10 -1
  15. package/dist/authentication/providers/oauth-authentication.d.ts.map +1 -1
  16. package/dist/authentication/providers/redirect-to-identity-provider.d.ts +34 -0
  17. package/dist/authentication/providers/redirect-to-identity-provider.d.ts.map +1 -0
  18. package/dist/authentication/providers/saml-authentication.d.ts +10 -1
  19. package/dist/authentication/providers/saml-authentication.d.ts.map +1 -1
  20. package/dist/authentication/session/auth-mode-marker.d.ts +7 -0
  21. package/dist/authentication/session/auth-mode-marker.d.ts.map +1 -1
  22. package/dist/authentication/session/auth-state.d.ts +6 -1
  23. package/dist/authentication/session/auth-state.d.ts.map +1 -1
  24. package/dist/authentication/session/detect-auth-mode.d.ts +2 -1
  25. package/dist/authentication/session/detect-auth-mode.d.ts.map +1 -1
  26. package/dist/authentication/session/has-session.d.ts +26 -0
  27. package/dist/authentication/session/has-session.d.ts.map +1 -0
  28. package/dist/authentication/session/index.d.ts +2 -0
  29. package/dist/authentication/session/index.d.ts.map +1 -1
  30. package/dist/authentication/session/login.d.ts +15 -8
  31. package/dist/authentication/session/login.d.ts.map +1 -1
  32. package/dist/authentication/session/logout.d.ts +13 -2
  33. package/dist/authentication/session/logout.d.ts.map +1 -1
  34. package/dist/authentication/session/redirect-guard.d.ts +18 -0
  35. package/dist/authentication/session/redirect-guard.d.ts.map +1 -0
  36. package/dist/authentication/session/try-auto-authentication.d.ts +14 -6
  37. package/dist/authentication/session/try-auto-authentication.d.ts.map +1 -1
  38. package/dist/authentication/session/user-authentication.d.ts +7 -2
  39. package/dist/authentication/session/user-authentication.d.ts.map +1 -1
  40. package/dist/authentication/tokens/delete-web-token-cookie.d.ts +10 -5
  41. package/dist/authentication/tokens/delete-web-token-cookie.d.ts.map +1 -1
  42. package/dist/authentication/tokens/get-csrf-token.d.ts +4 -1
  43. package/dist/authentication/tokens/get-csrf-token.d.ts.map +1 -1
  44. package/dist/authentication/tokens/get-jwt-token.d.ts +35 -5
  45. package/dist/authentication/tokens/get-jwt-token.d.ts.map +1 -1
  46. package/dist/authentication/tokens/get-token.d.ts +7 -1
  47. package/dist/authentication/tokens/get-token.d.ts.map +1 -1
  48. package/dist/authentication/tokens/index.d.ts +1 -1
  49. package/dist/authentication/tokens/index.d.ts.map +1 -1
  50. package/dist/authentication/tokens/set-token.d.ts +7 -1
  51. package/dist/authentication/tokens/set-token.d.ts.map +1 -1
  52. package/dist/client/atomic-context.d.ts +61 -0
  53. package/dist/client/atomic-context.d.ts.map +1 -0
  54. package/dist/client/create-api.d.ts +109 -0
  55. package/dist/client/create-api.d.ts.map +1 -0
  56. package/dist/client/create-atomic-client.d.ts +138 -0
  57. package/dist/client/create-atomic-client.d.ts.map +1 -0
  58. package/dist/client/http-adapter.d.ts +30 -0
  59. package/dist/client/http-adapter.d.ts.map +1 -0
  60. package/dist/client/index.d.ts +5 -0
  61. package/dist/client/index.d.ts.map +1 -0
  62. package/dist/configurations/auth-mode.d.ts +64 -3
  63. package/dist/configurations/auth-mode.d.ts.map +1 -1
  64. package/dist/configurations/auth-options.d.ts +78 -0
  65. package/dist/configurations/auth-options.d.ts.map +1 -0
  66. package/dist/configurations/global.config.d.ts +23 -3
  67. package/dist/configurations/global.config.d.ts.map +1 -1
  68. package/dist/configurations/index.d.ts +1 -0
  69. package/dist/configurations/index.d.ts.map +1 -1
  70. package/dist/helpers/filters.d.ts +24 -0
  71. package/dist/helpers/filters.d.ts.map +1 -1
  72. package/dist/helpers/index.d.ts +1 -0
  73. package/dist/helpers/index.d.ts.map +1 -1
  74. package/dist/helpers/pagination.d.ts +23 -0
  75. package/dist/helpers/pagination.d.ts.map +1 -0
  76. package/dist/helpers/ts-helper.d.ts +6 -0
  77. package/dist/helpers/ts-helper.d.ts.map +1 -1
  78. package/dist/index.d.ts +1 -0
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/polyfills/storage.d.ts +12 -3
  81. package/dist/polyfills/storage.d.ts.map +1 -1
  82. package/dist/spfx/index.cjs +1 -1
  83. package/dist/spfx/index.d.ts +1 -0
  84. package/dist/spfx/index.d.ts.map +1 -1
  85. package/dist/spfx/index.js +2 -2
  86. package/dist/src-BzPBKdDO.js +2201 -0
  87. package/dist/src-DeaVS0Tt.cjs +1 -0
  88. package/dist/types/search/Result.d.ts +36 -2
  89. package/dist/types/search/Result.d.ts.map +1 -1
  90. package/dist/types/search/index.d.ts +1 -1
  91. package/dist/types/search/index.d.ts.map +1 -1
  92. package/dist/utils/logger.d.ts +27 -16
  93. package/dist/utils/logger.d.ts.map +1 -1
  94. package/dist/web-api/helpers/aad-http-client-manager.d.ts +8 -0
  95. package/dist/web-api/helpers/aad-http-client-manager.d.ts.map +1 -1
  96. package/dist/web-api/helpers/create-headers.d.ts +9 -0
  97. package/dist/web-api/helpers/create-headers.d.ts.map +1 -1
  98. package/dist/web-api/helpers/errors/api-error.d.ts.map +1 -1
  99. package/dist/web-api/helpers/handle-response.d.ts +17 -1
  100. package/dist/web-api/helpers/handle-response.d.ts.map +1 -1
  101. package/dist/web-api/helpers/index.d.ts +1 -1
  102. package/dist/web-api/helpers/index.d.ts.map +1 -1
  103. package/dist/web-api/helpers/methods/del.d.ts +13 -11
  104. package/dist/web-api/helpers/methods/del.d.ts.map +1 -1
  105. package/dist/web-api/helpers/methods/get.d.ts +6 -12
  106. package/dist/web-api/helpers/methods/get.d.ts.map +1 -1
  107. package/dist/web-api/helpers/methods/patch.d.ts +6 -7
  108. package/dist/web-api/helpers/methods/patch.d.ts.map +1 -1
  109. package/dist/web-api/helpers/methods/post.d.ts +6 -8
  110. package/dist/web-api/helpers/methods/post.d.ts.map +1 -1
  111. package/dist/web-api/helpers/methods/put.d.ts +6 -7
  112. package/dist/web-api/helpers/methods/put.d.ts.map +1 -1
  113. package/dist/web-api/helpers/methods/send-request.d.ts +24 -0
  114. package/dist/web-api/helpers/methods/send-request.d.ts.map +1 -0
  115. package/dist/web-api/helpers/request-options.d.ts +35 -12
  116. package/dist/web-api/helpers/request-options.d.ts.map +1 -1
  117. package/dist/web-api/helpers/utils/build-request-url.d.ts +12 -0
  118. package/dist/web-api/helpers/utils/build-request-url.d.ts.map +1 -0
  119. package/dist/web-api/helpers/utils/{date-utils..d.ts → date-utils.d.ts} +1 -1
  120. package/dist/web-api/helpers/utils/date-utils.d.ts.map +1 -0
  121. package/dist/web-api/helpers/utils/resolve-no-auto-authentication.d.ts +9 -0
  122. package/dist/web-api/helpers/utils/resolve-no-auto-authentication.d.ts.map +1 -1
  123. package/dist/web-api/helpers/utils/with-retry.d.ts +10 -5
  124. package/dist/web-api/helpers/utils/with-retry.d.ts.map +1 -1
  125. package/dist/web-api/v1/fetch-aggregation.d.ts +2 -1
  126. package/dist/web-api/v1/fetch-aggregation.d.ts.map +1 -1
  127. package/dist/web-api/v1/fetch-app.d.ts +12 -5
  128. package/dist/web-api/v1/fetch-app.d.ts.map +1 -1
  129. package/dist/web-api/v1/fetch-audit.d.ts +2 -1
  130. package/dist/web-api/v1/fetch-audit.d.ts.map +1 -1
  131. package/dist/web-api/v1/fetch-dataset.d.ts +4 -3
  132. package/dist/web-api/v1/fetch-dataset.d.ts.map +1 -1
  133. package/dist/web-api/v1/fetch-labels.d.ts +9 -8
  134. package/dist/web-api/v1/fetch-labels.d.ts.map +1 -1
  135. package/dist/web-api/v1/fetch-preview.d.ts +2 -1
  136. package/dist/web-api/v1/fetch-preview.d.ts.map +1 -1
  137. package/dist/web-api/v1/fetch-principal.d.ts +8 -4
  138. package/dist/web-api/v1/fetch-principal.d.ts.map +1 -1
  139. package/dist/web-api/v1/fetch-query-export.d.ts +2 -1
  140. package/dist/web-api/v1/fetch-query-export.d.ts.map +1 -1
  141. package/dist/web-api/v1/fetch-query-intent.d.ts +2 -1
  142. package/dist/web-api/v1/fetch-query-intent.d.ts.map +1 -1
  143. package/dist/web-api/v1/fetch-query.d.ts +3 -2
  144. package/dist/web-api/v1/fetch-query.d.ts.map +1 -1
  145. package/dist/web-api/v1/fetch-security-principal.d.ts +2 -1
  146. package/dist/web-api/v1/fetch-security-principal.d.ts.map +1 -1
  147. package/dist/web-api/v1/fetch-similar-documents.d.ts +2 -1
  148. package/dist/web-api/v1/fetch-similar-documents.d.ts.map +1 -1
  149. package/dist/web-api/v1/fetch-sponsored-links.d.ts +2 -1
  150. package/dist/web-api/v1/fetch-sponsored-links.d.ts.map +1 -1
  151. package/dist/web-api/v1/fetch-suggest.d.ts +4 -3
  152. package/dist/web-api/v1/fetch-suggest.d.ts.map +1 -1
  153. package/dist/web-api/v1/fetch-text-chunk.d.ts +2 -1
  154. package/dist/web-api/v1/fetch-text-chunk.d.ts.map +1 -1
  155. package/dist/web-api/v1/fetch-user-settings.d.ts +5 -4
  156. package/dist/web-api/v1/fetch-user-settings.d.ts.map +1 -1
  157. package/dist/web-api/v2/fetch-change-password.d.ts +2 -1
  158. package/dist/web-api/v2/fetch-change-password.d.ts.map +1 -1
  159. package/dist/web-api/v2/fetch-document-upload-container.d.ts +8 -7
  160. package/dist/web-api/v2/fetch-document-upload-container.d.ts.map +1 -1
  161. package/dist/web-api/v2/fetch-forgot-password.d.ts +2 -1
  162. package/dist/web-api/v2/fetch-forgot-password.d.ts.map +1 -1
  163. package/dist/web-api/v2/fetch-user-profile.d.ts +5 -4
  164. package/dist/web-api/v2/fetch-user-profile.d.ts.map +1 -1
  165. package/dist/web-api/v2/fetch-version.d.ts +2 -1
  166. package/dist/web-api/v2/fetch-version.d.ts.map +1 -1
  167. package/package.json +1 -1
  168. package/dist/src-BCIlSfZp.js +0 -1923
  169. package/dist/src-Dg2926V9.cjs +0 -1
  170. package/dist/web-api/helpers/utils/date-utils..d.ts.map +0 -1
@@ -0,0 +1,2201 @@
1
+ //#region src/authentication/events/auth-events.ts
2
+ function e() {
3
+ let e = /* @__PURE__ */ new Map();
4
+ return {
5
+ on(t, n) {
6
+ let r = e.get(t);
7
+ return r || (r = /* @__PURE__ */ new Set(), e.set(t, r)), r.add(n), () => {
8
+ r.delete(n);
9
+ };
10
+ },
11
+ emit(t, n) {
12
+ let r = e.get(t);
13
+ if (r) for (let e of r) try {
14
+ e(n);
15
+ } catch {}
16
+ }
17
+ };
18
+ }
19
+ var t = e();
20
+ function n(e, n) {
21
+ return t.on(e, n);
22
+ }
23
+ //#endregion
24
+ //#region src/utils/logger.ts
25
+ var r = /* @__PURE__ */ function(e) {
26
+ 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;
27
+ }({}), i = {
28
+ level: 1,
29
+ enableConsoleOutput: !0
30
+ }, a = () => {}, o = a, s = a, c = a, l = a;
31
+ function u() {
32
+ let e = (e) => i.enableConsoleOutput && e >= i.level;
33
+ o = e(0) ? console.debug.bind(console, "[DEBUG]") : a, s = e(1) ? console.info.bind(console, "[INFO]") : a, c = e(2) ? console.warn.bind(console, "[WARN]") : a, l = e(3) ? console.error.bind(console, "[ERROR]") : a;
34
+ }
35
+ u();
36
+ function d(e) {
37
+ i = {
38
+ ...i,
39
+ ...e
40
+ }, u();
41
+ }
42
+ //#endregion
43
+ //#region src/configurations/auth-mode.ts
44
+ var f = {
45
+ credentials: () => ({ kind: "credentials" }),
46
+ sso: () => ({ kind: "sso" }),
47
+ oauth: (e) => ({
48
+ kind: "oauth",
49
+ provider: e
50
+ }),
51
+ saml: (e) => ({
52
+ kind: "saml",
53
+ provider: e
54
+ }),
55
+ bearer: (e, t) => ({
56
+ kind: "bearer",
57
+ token: e,
58
+ ...t?.sessionCookie === void 0 ? {} : { sessionCookie: t.sessionCookie }
59
+ }),
60
+ unknown: () => ({ kind: "unknown" })
61
+ };
62
+ function p(e) {
63
+ return e.authMode?.kind === "bearer" ? e.authMode.token : e.bearerToken;
64
+ }
65
+ function ee(e) {
66
+ return e.authMode?.kind === "oauth" ? e.authMode.provider : e.autoOAuthProvider;
67
+ }
68
+ function te(e) {
69
+ return e.authMode?.kind === "saml" ? e.authMode.provider : e.autoSAMLProvider;
70
+ }
71
+ function ne(e) {
72
+ switch (e?.kind) {
73
+ case "sso":
74
+ case "oauth":
75
+ case "saml":
76
+ case "bearer": return !0;
77
+ default: return !1;
78
+ }
79
+ }
80
+ function re(e, t) {
81
+ let { useCredentials: n, useSSO: r, useSAML: i } = e;
82
+ return i && t.autoSAMLProvider ? f.saml(t.autoSAMLProvider) : n && r ? f.unknown() : n ? f.credentials() : r ? f.sso() : t.authMode ?? f.unknown();
83
+ }
84
+ //#endregion
85
+ //#region src/configurations/global.config.ts
86
+ var m = {
87
+ loginPath: "/login",
88
+ createRoutes: !1,
89
+ authMode: f.unknown()
90
+ };
91
+ Object.defineProperties(m, {
92
+ useCredentials: {
93
+ enumerable: !1,
94
+ configurable: !0,
95
+ get() {
96
+ let e = m.authMode?.kind;
97
+ return e === "credentials" || e === "unknown";
98
+ }
99
+ },
100
+ useSSO: {
101
+ enumerable: !1,
102
+ configurable: !0,
103
+ get() {
104
+ let e = m.authMode?.kind;
105
+ return e === "sso" || e === "unknown";
106
+ }
107
+ },
108
+ useSAML: {
109
+ enumerable: !1,
110
+ configurable: !0,
111
+ get() {
112
+ return m.authMode?.kind === "saml";
113
+ }
114
+ }
115
+ });
116
+ function ie(e) {
117
+ ae(m, e);
118
+ }
119
+ function ae(e, t) {
120
+ let { useCredentials: n, useSSO: r, useSAML: i, authMode: a, ...o } = t;
121
+ if (Object.assign(e, o), a !== void 0) {
122
+ e.authMode = a;
123
+ return;
124
+ }
125
+ (n !== void 0 || r !== void 0 || i !== void 0) && (e.authMode = re({
126
+ useCredentials: n,
127
+ useSSO: r,
128
+ useSAML: i
129
+ }, e));
130
+ }
131
+ //#endregion
132
+ //#region src/configurations/auth-options.ts
133
+ var oe = {
134
+ get debug() {
135
+ return o;
136
+ },
137
+ get info() {
138
+ return s;
139
+ },
140
+ get warn() {
141
+ return c;
142
+ },
143
+ get error() {
144
+ return l;
145
+ }
146
+ };
147
+ //#endregion
148
+ //#region src/polyfills/storage.ts
149
+ function se() {
150
+ let e = {};
151
+ return {
152
+ getItem: (t) => e[t] ?? null,
153
+ setItem: (t, n) => {
154
+ e[t] = String(n);
155
+ },
156
+ removeItem: (t) => {
157
+ delete e[t];
158
+ }
159
+ };
160
+ }
161
+ var ce = {
162
+ session: se(),
163
+ local: se()
164
+ };
165
+ function le(e, t) {
166
+ if (t) return t;
167
+ let n = (typeof window > "u" ? void 0 : e === "session" ? window.sessionStorage : window.localStorage) ?? ce[e];
168
+ return {
169
+ get: (e) => n.getItem(e),
170
+ set: (e, t) => n.setItem(e, t),
171
+ remove: (e) => n.removeItem(e)
172
+ };
173
+ }
174
+ var ue = new class {
175
+ client = null;
176
+ initialize(e) {
177
+ this.client = e;
178
+ }
179
+ getClient() {
180
+ if (!this.client) throw Error("AadHttpClient not initialized. Call initializeAadHttpClient first.");
181
+ return this.client;
182
+ }
183
+ getConfiguration() {
184
+ return this.getClient().constructor?.configurations?.v1;
185
+ }
186
+ isInitialized() {
187
+ return this.client !== null;
188
+ }
189
+ }();
190
+ function de(e) {
191
+ ue.initialize(e);
192
+ }
193
+ //#endregion
194
+ //#region src/client/http-adapter.ts
195
+ function fe(e) {
196
+ let t = e.constructor?.configurations?.v1;
197
+ return { fetch(n, r) {
198
+ let { method: i, headers: a, body: o, signal: s } = r;
199
+ return i === "GET" ? e.get(n, t, {
200
+ headers: a,
201
+ signal: s
202
+ }) : i === "POST" ? e.post(n, t, {
203
+ headers: a,
204
+ body: o,
205
+ signal: s
206
+ }) : e.fetch(n, t, {
207
+ method: i,
208
+ headers: a,
209
+ body: o,
210
+ signal: s
211
+ });
212
+ } };
213
+ }
214
+ //#endregion
215
+ //#region src/client/atomic-context.ts
216
+ function pe() {
217
+ return ue.isInitialized() ? fe(ue.getClient()) : void 0;
218
+ }
219
+ var h = {
220
+ config: m,
221
+ events: t,
222
+ storagePrefix: "",
223
+ resolveHttpAdapter: pe
224
+ };
225
+ function me(t) {
226
+ let { config: n, storagePrefix: r = "", httpAdapter: i } = t;
227
+ return {
228
+ config: n,
229
+ events: e(),
230
+ storagePrefix: r,
231
+ resolveHttpAdapter: i ? () => i : pe
232
+ };
233
+ }
234
+ function g(e) {
235
+ return e.config.auth?.logger ?? oe;
236
+ }
237
+ function he(e) {
238
+ return e.config.auth?.fetch ?? ((e, t) => fetch(e, t));
239
+ }
240
+ function ge(e) {
241
+ return e.config.auth?.credentials ?? "include";
242
+ }
243
+ function _(e, t) {
244
+ return le(t, e.config.auth?.storage?.[t]);
245
+ }
246
+ function v(e, t) {
247
+ return `${e.storagePrefix}${t}`;
248
+ }
249
+ function y(e, t) {
250
+ ae(e.config, t);
251
+ }
252
+ //#endregion
253
+ //#region src/authentication/events/emit-authenticated-event.ts
254
+ function b(e, t) {
255
+ if (e.events.emit("authenticated", { authenticated: t }), typeof CustomEvent > "u") return;
256
+ let n = new CustomEvent("authenticated", {
257
+ bubbles: !0,
258
+ cancelable: !1,
259
+ detail: { authenticated: t }
260
+ });
261
+ typeof document < "u" ? document.dispatchEvent(n) : typeof dispatchEvent < "u" && dispatchEvent(n);
262
+ }
263
+ function _e(e) {
264
+ b(h, e);
265
+ }
266
+ var x = (e) => e.config.auth?.timeoutMs ?? 1e4, S = {
267
+ credentials: "sinequa-credentials",
268
+ legacyCsrfToken: "csrfToken",
269
+ authenticated: "sinequa-authenticated",
270
+ lastAuthMode: "sinequa-last-auth-mode"
271
+ }, C = "sinequa-auth-redirect-attempt", w = (e) => {
272
+ let t = _(e, "session").get(v(e, S.credentials));
273
+ if (t) try {
274
+ let e = JSON.parse(t).data?.csrfToken;
275
+ if (typeof e == "string" && e) return e;
276
+ } catch (t) {
277
+ g(e).warn("Failed to parse session storage credentials, falling back to local storage", t);
278
+ }
279
+ return _(e, "local").get(v(e, S.legacyCsrfToken)) || null;
280
+ }, ve = () => w(h);
281
+ //#endregion
282
+ //#region src/web-api/helpers/create-headers.ts
283
+ function T(e, t) {
284
+ let n = w(e), r = new Headers(t);
285
+ r.append("Sinequa-Force-Camel-Case", "true"), r.append("accept", "application/json"), n && r.append("Sinequa-csrf-token", n);
286
+ let { userOverride: i, userOverrideActive: a } = e.config, o = p(e.config);
287
+ return o && !e.resolveHttpAdapter() && r.append("Authorization", `Bearer ${o}`), i && a && (r.append("sinequa-override-user", i.username), r.append("sinequa-override-domain", i.domain)), r;
288
+ }
289
+ function ye(e) {
290
+ return T(h, e);
291
+ }
292
+ //#endregion
293
+ //#region src/web-api/helpers/utils/build-request-url.ts
294
+ function E(e, t, n) {
295
+ let r = t.startsWith("plugin") ? `api/v1/${t}` : t, i = n ? `?${new URLSearchParams(n)}` : "", { backendUrl: a } = e.config;
296
+ return a ? `${a}/${r}${i}` : `${r}${i}`;
297
+ }
298
+ //#endregion
299
+ //#region src/web-api/helpers/errors/api-error.ts
300
+ var D = class extends Error {
301
+ status;
302
+ constructor(e, t) {
303
+ super(e), Object.setPrototypeOf(this, new.target.prototype), this.name = "ApiError", this.status = t;
304
+ }
305
+ }, O = class extends D {
306
+ constructor(e = "Unauthorized access") {
307
+ super(e, 401), this.name = "UnauthorizedError";
308
+ }
309
+ }, k = (e, t) => {
310
+ _(e, "session").set(v(e, S.credentials), JSON.stringify({ data: { csrfToken: t } })), e.events.emit("tokenRefreshed", { token: t });
311
+ }, be = (e) => k(h, e), xe = class extends D {
312
+ constructor(e = "Server error") {
313
+ super(e, 500), this.name = "ServerError";
314
+ }
315
+ };
316
+ //#endregion
317
+ //#region src/web-api/helpers/handle-response.ts
318
+ async function Se(e, t = "json") {
319
+ return A(h, e, t);
320
+ }
321
+ async function A(e, t, n = "json", r = t.url ?? "") {
322
+ let i = t.headers.get("sinequa-jwt-refresh");
323
+ if (i !== null && k(e, i), t.status >= 200 && t.status < 300) {
324
+ if (n === "response") return t;
325
+ let e = t.headers.get("content-length");
326
+ if (t.status === 204 || e === "0") return;
327
+ switch (n) {
328
+ case "arraybuffer": return await t.arrayBuffer();
329
+ case "blob": return await t.blob();
330
+ case "text": return await t.text();
331
+ default: return await t.json();
332
+ }
333
+ }
334
+ if (t.status === 401) {
335
+ if (e.config.userOverrideActive) {
336
+ let n = {};
337
+ try {
338
+ n = await (t.clone?.() ?? t).json();
339
+ } catch {}
340
+ throw g(e).warn("Unauthorized access attempt with user override", {
341
+ endpoint: t.url ?? "",
342
+ error: n
343
+ }), new O(n.errorMessage ?? n.message ?? "Unauthorized... User override failed.");
344
+ }
345
+ return await Ce(e, t, 401, r);
346
+ }
347
+ return t.status === 500 ? (g(e).error("Server error occurred", { endpoint: r }), await Ce(e, t, 500, r)) : (g(e).warn(`Unexpected response status: ${t.status}`, { endpoint: r }), await Ce(e, t, t.status, r));
348
+ }
349
+ async function Ce(e, t, n, r) {
350
+ let i = "";
351
+ try {
352
+ i = await t.text() ?? "";
353
+ } catch {}
354
+ let a, o;
355
+ if (i) try {
356
+ let e = JSON.parse(i);
357
+ a = e.errorMessage || e.message || void 0, o = {
358
+ errorCode: e.errorCode,
359
+ errorCodeText: e.errorCodeText
360
+ };
361
+ } catch {}
362
+ let s = n === 401 ? new O(a) : n === 500 ? new xe(a) : new D(a ?? `Request failed with status ${n}`, n);
363
+ throw o && (s.cause = o), e.events.emit("requestFailed", {
364
+ endpoint: r,
365
+ status: n,
366
+ error: s
367
+ }), s instanceof O && e.events.emit("unauthorized", {
368
+ endpoint: r,
369
+ error: s
370
+ }), s;
371
+ }
372
+ //#endregion
373
+ //#region src/web-api/helpers/utils/resolve-no-auto-authentication.ts
374
+ function j(e) {
375
+ return e.config.authMode?.kind !== "sso";
376
+ }
377
+ function we() {
378
+ return j(h);
379
+ }
380
+ //#endregion
381
+ //#region src/web-api/helpers/methods/send-request.ts
382
+ var Te = /* @__PURE__ */ new WeakMap();
383
+ function Ee(e, t, n) {
384
+ let r = Te.get(e);
385
+ if (r) return r;
386
+ let i = e.config.auth?.recoverFromUnauthorized;
387
+ if (!i) return Promise.resolve(!1);
388
+ let a = Promise.resolve(i({
389
+ endpoint: t,
390
+ error: n
391
+ })).catch((t) => (g(e).debug("Session recovery failed", t), !1)).finally(() => Te.delete(e));
392
+ return Te.set(e, a), a;
393
+ }
394
+ async function De(e, t, n, r) {
395
+ let i = e.resolveHttpAdapter();
396
+ return i ? A(e, await i.fetch(t, {
397
+ ...n,
398
+ signal: r?.signal
399
+ }), r?.responseType, t) : A(e, await he(e)(t, {
400
+ ...n,
401
+ credentials: ge(e),
402
+ signal: r?.signal,
403
+ redirect: r?.redirect
404
+ }), r?.responseType, t);
405
+ }
406
+ async function M(e, t, n, r) {
407
+ try {
408
+ return await De(e, t, n, r);
409
+ } catch (i) {
410
+ if (!(i instanceof O) || r?.noRecovery || !await Ee(e, t, i)) throw i;
411
+ g(e).debug("Session recovered — replaying the request once");
412
+ let a = new Headers(n.headers), o = w(e);
413
+ return o && a.set("Sinequa-csrf-token", o), De(e, t, {
414
+ ...n,
415
+ headers: a
416
+ }, r);
417
+ }
418
+ }
419
+ function N(e, t, n) {
420
+ let { uiLanguage: r } = e.config;
421
+ return JSON.stringify({
422
+ app: e.config.app,
423
+ ...t,
424
+ locale: t.locale || r || navigator.language,
425
+ ...r ? { "ui-language": r } : {},
426
+ noUserOverride: !e.config.userOverrideActive,
427
+ noAutoAuthentication: n?.noAutoAuthentication ?? j(e)
428
+ });
429
+ }
430
+ //#endregion
431
+ //#region src/web-api/helpers/methods/post.ts
432
+ async function P(e, t, n, r) {
433
+ let i = T(e, r?.headers);
434
+ i.has("Content-Type") || i.set("Content-Type", "application/json");
435
+ let a = E(e, t);
436
+ g(e).debug(`Making POST request to: ${a}`);
437
+ try {
438
+ return await M(e, a, {
439
+ method: "POST",
440
+ headers: i,
441
+ body: N(e, n, r)
442
+ }, r);
443
+ } catch (t) {
444
+ throw g(e).error("Error making POST request:", t), t;
445
+ }
446
+ }
447
+ async function Oe(e, t, n) {
448
+ return P(h, e, t, n);
449
+ }
450
+ //#endregion
451
+ //#region src/web-api/helpers/errors/timeout-error.ts
452
+ var ke = class extends D {
453
+ constructor(e = "Request timed out") {
454
+ super(e, 408), this.name = "TimeoutError";
455
+ }
456
+ };
457
+ //#endregion
458
+ //#region src/web-api/helpers/utils/create-timeout-controller.ts
459
+ function F(e) {
460
+ let t = new AbortController(), { signal: n } = t;
461
+ return e && setTimeout(() => {
462
+ n.aborted || t.abort(new ke(`Request timed out after ${e}ms`));
463
+ }, e), {
464
+ controller: t,
465
+ signal: n
466
+ };
467
+ }
468
+ //#endregion
469
+ //#region src/authentication/providers/redirect-to-identity-provider.ts
470
+ var Ae = {
471
+ oauth: {
472
+ label: "OAuth",
473
+ endpoint: "api/v1/security.oauth",
474
+ action: "getcode"
475
+ },
476
+ saml: {
477
+ label: "SAML",
478
+ endpoint: "api/v1/security.saml",
479
+ action: "getresponse"
480
+ }
481
+ };
482
+ async function je(e, { kind: t, provider: n }) {
483
+ let { label: r, endpoint: i, action: a } = Ae[t], o = typeof window < "u", s = _(e, "session"), c = v(e, C);
484
+ if (o && s.get(c)) throw Error(`${r} sign-in with provider "${n}" did not establish a session — its callback is likely not authorized for this application.`);
485
+ let l = {
486
+ action: a,
487
+ provider: n,
488
+ tokenInCookie: !0,
489
+ originalUrl: typeof window > "u" ? "http://localhost" : window.location.href
490
+ }, u;
491
+ try {
492
+ let { signal: t } = F(x(e));
493
+ u = await P(e, i, l, { signal: t });
494
+ } catch (t) {
495
+ throw g(e).error(`Failed to authenticate with ${r}`, t), t;
496
+ }
497
+ if (!o || !u.redirectUrl) return u;
498
+ let d = new URL(u.redirectUrl, window.location.origin);
499
+ return (d.protocol === "https:" || d.protocol === "http:") && (s.set(c, "1"), window.location.href = d.href), u;
500
+ }
501
+ //#endregion
502
+ //#region src/authentication/providers/oauth-authentication.ts
503
+ var Me = async (e) => {
504
+ let t = ee(e.config);
505
+ if (!t) throw Error("No OAuth provider configured: set `authMode: AuthMode.oauth(provider)`, or the `autoOAuthProvider` key.");
506
+ return je(e, {
507
+ kind: "oauth",
508
+ provider: t
509
+ });
510
+ }, Ne = () => Me(h), Pe = async (e) => {
511
+ let t = te(e.config);
512
+ if (!t) throw Error("No SAML provider configured: set `authMode: AuthMode.saml(provider)`, or the `autoSAMLProvider` key.");
513
+ return je(e, {
514
+ kind: "saml",
515
+ provider: t
516
+ });
517
+ }, Fe = () => Pe(h);
518
+ //#endregion
519
+ //#region src/authentication/session/detect-auth-mode.ts
520
+ function Ie(e, t) {
521
+ if (e.authMode && e.authMode.kind !== "unknown") return e.authMode;
522
+ if (e.bearerToken) return f.bearer(e.bearerToken);
523
+ let n = e.autoOAuthProvider || t?.autoOAuthProvider;
524
+ if (n) return f.oauth(n);
525
+ let r = e.autoSAMLProvider || t?.autoSAMLProvider;
526
+ return r ? f.saml(r) : f.unknown();
527
+ }
528
+ //#endregion
529
+ //#region src/web-api/helpers/methods/get.ts
530
+ async function I(e, t, n, r) {
531
+ let i = T(e, r?.headers), a = n;
532
+ r?.noAutoAuthentication !== void 0 && (a = new URLSearchParams(n), a.set("noAutoAuthentication", String(r.noAutoAuthentication)));
533
+ let o = E(e, t, a);
534
+ g(e).debug(`Making GET request to: ${o}`);
535
+ try {
536
+ return await M(e, o, {
537
+ method: "GET",
538
+ headers: i
539
+ }, r);
540
+ } catch (t) {
541
+ throw g(e).error("Error making GET request:", t), t;
542
+ }
543
+ }
544
+ async function Le(e, t, n) {
545
+ return I(h, e, t, n);
546
+ }
547
+ //#endregion
548
+ //#region src/authentication/tokens/get-csrf-token.ts
549
+ var Re = async (e) => {
550
+ let t;
551
+ try {
552
+ let { signal: n } = F(x(e));
553
+ t = await I(e, "api/v1/challenge?action=getCsrfToken&suppressErrors=true", void 0, {
554
+ signal: n,
555
+ noRecovery: !0
556
+ });
557
+ } catch (t) {
558
+ throw g(e).warn("CSRF token fetch failed", t), t;
559
+ }
560
+ return t?.csrfToken ? (k(e, t.csrfToken), t.csrfToken) : null;
561
+ }, ze = () => Re(h);
562
+ //#endregion
563
+ //#region src/authentication/session/has-session.ts
564
+ async function Be(e) {
565
+ if (w(e)) return g(e).info("Existing session (stored token)"), Ve(e), !0;
566
+ try {
567
+ return g(e).info("Checking for an existing session via CSRF token retrieval"), await Re(e) === null ? !1 : (Ve(e), !0);
568
+ } catch (t) {
569
+ return g(e).debug("CSRF session probe failed — treated as no existing session", t), !1;
570
+ }
571
+ }
572
+ function Ve(e) {
573
+ _(e, "session").remove(v(e, C));
574
+ }
575
+ var He = () => Be(h);
576
+ //#endregion
577
+ //#region src/helpers/ts-helper.ts
578
+ function Ue(e) {
579
+ throw Error(`Unexpected value: ${JSON.stringify(e)}`);
580
+ }
581
+ //#endregion
582
+ //#region src/authentication/tokens/get-jwt-token.ts
583
+ async function We(e, t, n) {
584
+ if (t) {
585
+ let { username: n, password: r } = t;
586
+ return qe(e, {
587
+ action: "get",
588
+ tokenInCookie: !0,
589
+ user: n,
590
+ password: r
591
+ }, !0, "Failed to get JWT");
592
+ }
593
+ if (!p(e.config)) throw Error("A bearer token is required for credential-less authentication: set `authMode: AuthMode.bearer(token)`, or the legacy `bearerToken` key.");
594
+ return qe(e, {
595
+ action: "get",
596
+ tokenInCookie: !0
597
+ }, !1, "Failed to get JWT without credentials", n?.recoverable);
598
+ }
599
+ async function Ge(e) {
600
+ return We(h, e);
601
+ }
602
+ var Ke = Ge;
603
+ async function qe(e, t, n, r, i = !1) {
604
+ try {
605
+ let { signal: r } = F(x(e)), i = await P(e, "api/v1/security.webtoken", t, {
606
+ signal: r,
607
+ noAutoAuthentication: n,
608
+ noRecovery: !0
609
+ });
610
+ return i?.csrfToken ? (k(e, i.csrfToken), i.csrfToken) : null;
611
+ } catch (t) {
612
+ throw g(e)[i ? "debug" : "error"](r, t), t;
613
+ }
614
+ }
615
+ //#endregion
616
+ //#region src/authentication/session/auth-mode-marker.ts
617
+ var Je = (e) => ({
618
+ storage: _(e, "local"),
619
+ key: v(e, S.lastAuthMode)
620
+ }), Ye = (e) => {
621
+ let { storage: t, key: n } = Je(e);
622
+ t.set(n, "credentials");
623
+ }, Xe = (e) => {
624
+ let { storage: t, key: n } = Je(e);
625
+ return t.get(n) === "credentials";
626
+ }, Ze = (e) => {
627
+ let { storage: t, key: n } = Je(e);
628
+ t.remove(n);
629
+ }, Qe = (e, t) => {
630
+ let n = _(e, "session"), r = v(e, S.authenticated);
631
+ t ? n.set(r, "true") : n.remove(r);
632
+ }, $e = (e) => _(e, "session").get(v(e, S.authenticated)) === "true", et = "api/v1/principal", tt = async (e) => {
633
+ try {
634
+ let { signal: t } = F(x(e));
635
+ return await I(e, e.config.auth?.probeEndpoint ?? et, new URLSearchParams({ action: "get" }), {
636
+ signal: t,
637
+ redirect: "manual",
638
+ noRecovery: !0
639
+ }), g(e).info("Protected endpoint accepted the request"), !0;
640
+ } catch (t) {
641
+ return g(e).debug("Protected-endpoint probe failed — not authenticated", t), !1;
642
+ }
643
+ }, nt = () => tt(h), rt = (e) => e.resolveHttpAdapter() ? f.sso() : Xe(e) ? f.credentials() : f.sso(), it = (e, t) => {
644
+ if (_(e, "session").remove(v(e, C)), t.kind === "unknown") {
645
+ let t = rt(e);
646
+ g(e).info(`Ambiguous auth mode resolved to "${t.kind}"`), y(e, { authMode: t });
647
+ }
648
+ return b(e, !0), !0;
649
+ }, at = async (e) => await tt(e) ? (g(e).info("User authenticated by the server (ambient SSO / OIDC)"), await Re(e).catch((t) => g(e).debug("Best-effort CSRF refresh after auto-authentication failed", t)), Qe(e, !0), !0) : !1, ot = async (e, t) => {
650
+ if (t) {
651
+ let { username: n, password: r } = t;
652
+ return !n || !r ? (g(e).error("Credentials are required for authentication"), b(e, !1), !1) : ct(e, {
653
+ username: n,
654
+ password: r
655
+ });
656
+ }
657
+ let n = e.config.authMode ?? f.unknown();
658
+ if (n.kind === "bearer") return lt(e, n);
659
+ if (await Be(e)) return g(e).info("User already authenticated (existing session)"), it(e, n);
660
+ switch (n.kind) {
661
+ case "credentials": return b(e, !1), !1;
662
+ case "oauth": return g(e).info("Initiating OAuth authentication flow"), await Me(e), b(e, !1), !1;
663
+ case "saml": return g(e).info("Initiating SAML authentication flow"), await Pe(e), b(e, !1), !1;
664
+ case "sso": return g(e).info("Letting the server authenticate the request (ambient SSO)"), await at(e) ? it(e, n) : (b(e, !1), !1);
665
+ case "unknown":
666
+ if (g(e).info("No provider declared — probing for server-side auto-authentication"), await at(e)) {
667
+ let t = f.sso();
668
+ return y(e, { authMode: t }), it(e, t);
669
+ }
670
+ return g(e).info("No provider, no session and no server-side authentication — falling back to the credentials form"), y(e, { authMode: f.credentials() }), b(e, !1), !1;
671
+ default: return Ue(n);
672
+ }
673
+ }, st = (e) => ot(h, e);
674
+ async function ct(e, t) {
675
+ g(e).info("Attempting authentication using credentials"), y(e, { authMode: f.credentials() }), Ye(e);
676
+ let { userOverrideActive: n, userOverride: r } = e.config;
677
+ y(e, {
678
+ userOverrideActive: !1,
679
+ userOverride: void 0
680
+ });
681
+ try {
682
+ await We(e, t);
683
+ } catch (t) {
684
+ throw b(e, !1), t;
685
+ } finally {
686
+ y(e, {
687
+ userOverrideActive: n,
688
+ userOverride: r
689
+ });
690
+ }
691
+ return b(e, !0), !0;
692
+ }
693
+ async function lt(e, t) {
694
+ if (g(e).info("Attempting authentication using bearer token"), !p(e.config)) throw b(e, !1), Error("Bearer mode requires a token: set `authMode: AuthMode.bearer(token)`, or the legacy `bearerToken` key.");
695
+ if (t.sessionCookie !== !1) try {
696
+ if (await We(e, void 0, { recoverable: !0 })) return g(e).info("Bearer token exchanged for a server session"), b(e, !0), !0;
697
+ } catch (t) {
698
+ g(e).info("The server refused to exchange the bearer token for a session — continuing with the token alone. Requests this library issues stay authenticated, but what the browser loads by itself (document previews and their sub-resources, thumbnails, /xdownload links) cannot be. Allow the `webtoken` JSON method for this access token to get a session cookie, or set `AuthMode.bearer(token, { sessionCookie: false })` to stop asking.", t);
699
+ }
700
+ if (!await tt(e)) throw b(e, !1), Error("The server refused the configured bearer token: it may be expired or revoked, or its JSON method rules may not allow the probe endpoint (see `auth.probeEndpoint`).");
701
+ return Qe(e, !0), b(e, !0), !0;
702
+ }
703
+ //#endregion
704
+ //#region src/authentication/tokens/delete-web-token-cookie.ts
705
+ var ut = async (e) => {
706
+ let t = new URLSearchParams({
707
+ action: "deleteWebTokenCookie",
708
+ noUserOverride: "true"
709
+ }), { signal: n } = F(x(e));
710
+ return I(e, "api/v1/challenge", t, {
711
+ signal: n,
712
+ noAutoAuthentication: !0,
713
+ noRecovery: !0
714
+ });
715
+ }, dt = () => ut(h);
716
+ //#endregion
717
+ //#region src/authentication/session/logout.ts
718
+ async function ft(e) {
719
+ let { userOverrideActive: t } = e.config;
720
+ if (mt(e), Ze(e), _(e, "session").remove(v(e, C)), e.events.emit("loggedOut", {}), !t) try {
721
+ let { methodresult: t, logoutUrl: n } = await ut(e);
722
+ if (t === "ok") return n;
723
+ g(e).error("logout failed");
724
+ } catch (t) {
725
+ g(e).error("logout failed", t);
726
+ }
727
+ }
728
+ async function pt() {
729
+ return ft(h);
730
+ }
731
+ function mt(e) {
732
+ _(e, "local").remove(v(e, S.legacyCsrfToken)), _(e, "session").remove(v(e, S.credentials)), Qe(e, !1), b(e, !1);
733
+ }
734
+ function ht() {
735
+ mt(h);
736
+ }
737
+ //#endregion
738
+ //#region src/authentication/session/redirect-guard.ts
739
+ function gt(e) {
740
+ return _(e, "session").get(v(e, C)) !== null;
741
+ }
742
+ var _t = () => gt(h), vt = (e) => !!w(e) || $e(e), yt = () => vt(h);
743
+ //#endregion
744
+ //#region src/web-api/helpers/methods/del.ts
745
+ async function L(e, t, n, r) {
746
+ let i = T(e, r?.headers), a = E(e, t, n), o;
747
+ r?.body && (i.has("Content-Type") || i.set("Content-Type", "application/json"), o = N(e, r.body, r)), g(e).debug(`Making DELETE request to: ${a}`);
748
+ try {
749
+ return await M(e, a, {
750
+ method: "DELETE",
751
+ headers: i,
752
+ body: o
753
+ }, r);
754
+ } catch (t) {
755
+ throw g(e).error("Error making DELETE request:", t), t;
756
+ }
757
+ }
758
+ async function bt(e, t, n) {
759
+ return L(h, e, t, n);
760
+ }
761
+ //#endregion
762
+ //#region src/web-api/helpers/methods/patch.ts
763
+ async function R(e, t, n, r) {
764
+ let i = T(e, r?.headers);
765
+ i.append("content-type", "application/json");
766
+ let a = E(e, t);
767
+ g(e).debug(`Making PATCH request to: ${a}`);
768
+ try {
769
+ return await M(e, a, {
770
+ method: "PATCH",
771
+ headers: i,
772
+ body: N(e, n, r)
773
+ }, r);
774
+ } catch (t) {
775
+ throw g(e).error("Error making PATCH request:", t), t;
776
+ }
777
+ }
778
+ async function xt(e, t, n) {
779
+ return R(h, e, t, n);
780
+ }
781
+ //#endregion
782
+ //#region src/web-api/helpers/methods/put.ts
783
+ async function z(e, t, n, r) {
784
+ let i = T(e, r?.headers);
785
+ i.has("Content-Type") || i.set("Content-Type", "application/json");
786
+ let a = E(e, t);
787
+ g(e).debug(`Making PUT request to: ${a}`);
788
+ try {
789
+ return await M(e, a, {
790
+ method: "PUT",
791
+ headers: i,
792
+ body: N(e, n, r)
793
+ }, r);
794
+ } catch (t) {
795
+ throw g(e).error("Error making PUT request:", t), t;
796
+ }
797
+ }
798
+ async function St(e, t, n) {
799
+ return z(h, e, t, n);
800
+ }
801
+ //#endregion
802
+ //#region src/web-api/v1/fetch-app.ts
803
+ async function Ct(e, t = h) {
804
+ let n = e || t.config.app;
805
+ return I(t, "api/v1/app", new URLSearchParams({ app: n || "" }));
806
+ }
807
+ async function wt(e = h) {
808
+ let { app: t } = e.config;
809
+ return I(e, "api/v1/app", new URLSearchParams({
810
+ app: t || "",
811
+ preLogin: "true"
812
+ }));
813
+ }
814
+ function Tt(e = h) {
815
+ let { backendUrl: t, app: n } = e.config;
816
+ if (typeof window < "u") {
817
+ if (t ||= window.location.origin, !n) {
818
+ let e = window.location.pathname.match(/\/app(?:-debug)?\/([^/#]+)/);
819
+ e && (n = e[1]);
820
+ }
821
+ y(e, {
822
+ backendUrl: t,
823
+ app: n
824
+ });
825
+ }
826
+ return e.config.authMode?.kind === "credentials" ? (y(e, {
827
+ authMode: f.credentials(),
828
+ autoOAuthProvider: void 0,
829
+ autoSAMLProvider: void 0,
830
+ bearerToken: void 0
831
+ }), Promise.resolve({})) : wt(e).then((t) => (y(e, {
832
+ authMode: Ie(e.config, t),
833
+ autoOAuthProvider: e.config.autoOAuthProvider || t.autoOAuthProvider,
834
+ autoSAMLProvider: e.config.autoSAMLProvider || t.autoSAMLProvider
835
+ }), t)).catch((t) => {
836
+ throw g(e).error("atomic:fetchAppPreLogin error", t), t;
837
+ });
838
+ }
839
+ var Et = Tt;
840
+ //#endregion
841
+ //#region src/web-api/helpers/utils/date-utils.ts
842
+ function Dt(e) {
843
+ if (!e) return;
844
+ let t = new Date(e);
845
+ return Number.isNaN(t.getTime()) ? void 0 : t;
846
+ }
847
+ function Ot(e) {
848
+ let t = Dt(e);
849
+ return !!t && t.getTime() <= Date.now();
850
+ }
851
+ function kt(e, t = 7) {
852
+ let n = Dt(e);
853
+ if (!n) return !1;
854
+ let r = Date.now(), i = r + t * 24 * 60 * 60 * 1e3, a = n.getTime();
855
+ return a > r && a <= i;
856
+ }
857
+ //#endregion
858
+ //#region src/web-api/helpers/utils/with-retry.ts
859
+ async function At(e, t = 0, n = 1e3) {
860
+ let r;
861
+ for (let i = 0; i <= t; i++) try {
862
+ return await e();
863
+ } catch (e) {
864
+ if (r = e, e instanceof D && e.status >= 400 && e.status < 500 && e.status !== 429 || e instanceof DOMException && e.name === "AbortError") throw e;
865
+ i < t && (c(`Retrying request (${i + 1}/${t})`, { error: e }), await new Promise((e) => setTimeout(e, n)));
866
+ }
867
+ throw r;
868
+ }
869
+ //#endregion
870
+ //#region src/helpers/column-resolver.ts
871
+ function jt(e, t, n) {
872
+ if (!e || !t) return;
873
+ if (n) {
874
+ let r = Object.keys(t.queries).find((e) => e === n?.toLowerCase()), i;
875
+ r && (i = t.queries[r]);
876
+ let a = (i?.columnsInfo?.columns || [])?.find((t) => t.aliases?.split(",")?.includes(e));
877
+ if (a) return a.name;
878
+ }
879
+ let r = t.indexes?._?.columns, i = Object.entries(r).find((t) => t[1].aliases?.includes(e));
880
+ if (i) return i[0];
881
+ }
882
+ //#endregion
883
+ //#region src/types/audit/AuditEventType.ts
884
+ var B = /* @__PURE__ */ function(e) {
885
+ 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;
886
+ }({}), V = /* @__PURE__ */ function(e) {
887
+ 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;
888
+ }({}), H = /* @__PURE__ */ function(e) {
889
+ 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;
890
+ }({}), Mt = "1.0", Nt = /* @__PURE__ */ function(e) {
891
+ return e[e.Original = 0] = "Original", e[e.Corrected = 1] = "Corrected", e;
892
+ }({}), Pt = /* @__PURE__ */ function(e) {
893
+ 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;
894
+ }({});
895
+ //#endregion
896
+ //#region src/helpers/columns.ts
897
+ function Ft(e) {
898
+ if (!e) return V.none;
899
+ switch (e.toLocaleLowerCase()) {
900
+ case "bool":
901
+ case "boolean": return V.bool;
902
+ case "date": return V.date;
903
+ case "datetime": return V.dateTime;
904
+ case "time": return V.time;
905
+ case "unsigned": return V.unsigned;
906
+ case "integer": return V.integer;
907
+ case "float": return V.float;
908
+ case "double": return V.double;
909
+ case "dates": return V.dates;
910
+ case "datetimes": return V.dateTimes;
911
+ case "times": return V.times;
912
+ case "varchar": return V.varchar;
913
+ case "binary": return V.binary;
914
+ case "string": return V.string;
915
+ case "csv": return V.csv;
916
+ default: return V.none;
917
+ }
918
+ }
919
+ function It(e) {
920
+ switch (e) {
921
+ case "a": return H.a;
922
+ case "c": return H.c;
923
+ case "d": return H.d;
924
+ case "e": return H.e;
925
+ case "i": return H.i;
926
+ case "l": return H.l;
927
+ case "n": return H.n;
928
+ case "t": return H.t;
929
+ case "x": return H.x;
930
+ case "z": return H.z;
931
+ default: return H.none;
932
+ }
933
+ }
934
+ function Lt(e) {
935
+ let t = H.none;
936
+ if (e) for (let n of e) t |= It(n);
937
+ return t;
938
+ }
939
+ function U(e, t, n, r) {
940
+ return {
941
+ name: e,
942
+ type: t,
943
+ typeModifier: n,
944
+ eType: Ft(t),
945
+ eTypeModifier: Lt(n || ""),
946
+ aliases: r
947
+ };
948
+ }
949
+ var Rt = {
950
+ id: U("id", "string"),
951
+ text: U("text", "varchar"),
952
+ documentlanguages: U("documentlanguages", "csv", "ci", ["language"]),
953
+ databasealias: U("databasealias", "varchar"),
954
+ globalrelevance: U("globalrelevance", "double"),
955
+ matchingpartnames: U("matchingpartnames", "csv"),
956
+ matchlocations: U("matchlocations", "csv"),
957
+ matchlocationsperpartname: U("matchlocationsperpartname", "varchar"),
958
+ extracts: U("extracts", "csv"),
959
+ extractsperpartname: U("extractsperpartname", "varchar"),
960
+ extractslocations: U("extractslocations", "csv"),
961
+ documentweight: U("documentweight", "varchar"),
962
+ groupcount: U("groupcount", "integer"),
963
+ accesslists: U("accesslists", "varchar", void 0, ["accessLists"])
964
+ };
965
+ //#endregion
966
+ //#region src/helpers/filters.ts
967
+ function zt(e) {
968
+ return e.filter((e) => !!e);
969
+ }
970
+ var W = {
971
+ eq: (e, t) => ({
972
+ field: e,
973
+ operator: "eq",
974
+ value: t
975
+ }),
976
+ neq: (e, t) => ({
977
+ field: e,
978
+ operator: "neq",
979
+ value: t
980
+ }),
981
+ gt: (e, t) => ({
982
+ field: e,
983
+ operator: "gt",
984
+ value: t
985
+ }),
986
+ gte: (e, t) => ({
987
+ field: e,
988
+ operator: "gte",
989
+ value: t
990
+ }),
991
+ lt: (e, t) => ({
992
+ field: e,
993
+ operator: "lt",
994
+ value: t
995
+ }),
996
+ lte: (e, t) => ({
997
+ field: e,
998
+ operator: "lte",
999
+ value: t
1000
+ }),
1001
+ like: (e, t) => ({
1002
+ field: e,
1003
+ operator: "like",
1004
+ value: t
1005
+ }),
1006
+ contains: (e, t) => ({
1007
+ field: e,
1008
+ operator: "contains",
1009
+ value: t
1010
+ }),
1011
+ regex: (e, t) => ({
1012
+ field: e,
1013
+ operator: "regex",
1014
+ value: t
1015
+ }),
1016
+ isNull: (e) => ({
1017
+ field: e,
1018
+ operator: "null"
1019
+ }),
1020
+ isNotNull: (e) => ({
1021
+ field: e,
1022
+ operator: "notnull"
1023
+ }),
1024
+ in: (e, t) => ({
1025
+ field: e,
1026
+ operator: "in",
1027
+ values: t
1028
+ }),
1029
+ between: (e, t, n) => ({
1030
+ field: e,
1031
+ operator: "between",
1032
+ start: t,
1033
+ end: n
1034
+ }),
1035
+ distribution: (e, t) => {
1036
+ if (typeof t != "string") return;
1037
+ let n = t.match(/.*:\(?([><=\d\-.AND\s]+)\)?/)?.[1];
1038
+ if (!n) return;
1039
+ let r = n.split(" AND ").map((e) => e.trim()).filter(Boolean).map((t) => {
1040
+ let n = t.substring(t.search(/\s/) + 1).trim();
1041
+ return t.startsWith(">=") ? W.gte(e, n) : t.startsWith(">") ? W.gt(e, n) : t.startsWith("<=") ? W.lte(e, n) : W.lt(e, n);
1042
+ });
1043
+ return W.and(...r);
1044
+ },
1045
+ and: (...e) => Bt("and", e),
1046
+ or: (...e) => Bt("or", e),
1047
+ not: (...e) => {
1048
+ let t = zt(e);
1049
+ return t.length ? {
1050
+ operator: "not",
1051
+ filters: t
1052
+ } : void 0;
1053
+ }
1054
+ };
1055
+ function Bt(e, t) {
1056
+ let n = zt(t);
1057
+ if (n.length !== 0) return n.length === 1 ? n[0] : {
1058
+ operator: e,
1059
+ filters: n
1060
+ };
1061
+ }
1062
+ function Vt(e) {
1063
+ if (!e) return;
1064
+ let { operator: t, field: n } = e;
1065
+ switch (t) {
1066
+ case "and":
1067
+ case "or": {
1068
+ let n = (e.filters ?? []).map((e) => Vt(e));
1069
+ return t === "and" ? W.and(...n) : W.or(...n);
1070
+ }
1071
+ case "not": {
1072
+ let t = (e.filters ?? []).map((e) => Vt(e));
1073
+ return W.not(...t);
1074
+ }
1075
+ case "in": return n && e.values?.length ? W.in(n, e.values) : void 0;
1076
+ case "between": return n && e.start !== void 0 && e.end !== void 0 ? W.between(n, e.start, e.end) : void 0;
1077
+ case "null": return n ? W.isNull(n) : void 0;
1078
+ case "notnull": return n ? W.isNotNull(n) : void 0;
1079
+ case "eq":
1080
+ case "neq":
1081
+ case "gt":
1082
+ case "gte":
1083
+ case "lt":
1084
+ case "lte":
1085
+ case "like":
1086
+ case "contains":
1087
+ case "regex": return n && e.value !== void 0 ? W[t](n, e.value) : void 0;
1088
+ case void 0: return n && e.value !== void 0 ? W.eq(n, e.value) : void 0;
1089
+ default: return;
1090
+ }
1091
+ }
1092
+ //#endregion
1093
+ //#region src/helpers/metadata.ts
1094
+ function Ht(e, t) {
1095
+ let n = e[t];
1096
+ return n === void 0 ? [] : (typeof n == "string" && (n = String(n).split(",")), Array.isArray(n) ? n.map((e) => {
1097
+ if (typeof e == "string") return e.trim();
1098
+ if (typeof e == "object" && e && "display" in e) return e.display.trim();
1099
+ }).filter((e) => e !== void 0) : [String(n).trim()]);
1100
+ }
1101
+ function Ut(e, t) {
1102
+ let n = e[t];
1103
+ if (n === void 0) return [];
1104
+ if (typeof n == "string" && (n = String(n).split(",")), Array.isArray(n)) return n.map((e) => {
1105
+ if (typeof e == "string") return {
1106
+ display: e.trim(),
1107
+ value: e.trim()
1108
+ };
1109
+ if (typeof e == "object" && e && "display" in e) {
1110
+ let t = e.display.trim();
1111
+ return {
1112
+ display: t,
1113
+ value: "value" in e ? String(e.value).trim() : t
1114
+ };
1115
+ }
1116
+ }).filter((e) => e !== void 0);
1117
+ let r = String(n).trim();
1118
+ return [{
1119
+ display: r,
1120
+ value: r
1121
+ }];
1122
+ }
1123
+ //#endregion
1124
+ //#region src/helpers/pagination.ts
1125
+ function Wt(e) {
1126
+ let { page: t, pageSize: n, rowCount: r } = e;
1127
+ return t === void 0 || !n || r === void 0 ? {
1128
+ nextPage: void 0,
1129
+ previousPage: void 0
1130
+ } : {
1131
+ nextPage: t < Math.ceil(r / n) ? t + 1 : void 0,
1132
+ previousPage: t > 1 ? t - 1 : void 0
1133
+ };
1134
+ }
1135
+ //#endregion
1136
+ //#region src/helpers/utils.ts
1137
+ function G(e) {
1138
+ return typeof e == "object" && !!e;
1139
+ }
1140
+ function Gt(e) {
1141
+ return G(e) && Object.prototype.toString.call(e) === "[object ArrayBuffer]";
1142
+ }
1143
+ function Kt(e) {
1144
+ return G(e) && Object.prototype.toString.call(e) === "[object Blob]";
1145
+ }
1146
+ function qt(e) {
1147
+ return Object.prototype.toString.call(e) === "[object Date]";
1148
+ }
1149
+ function Jt(e) {
1150
+ return typeof e == "string";
1151
+ }
1152
+ function Yt(e) {
1153
+ return (G(e) || Array.isArray(e)) && !Gt(e) && !Kt(e) && !Jt(e);
1154
+ }
1155
+ function Xt(e) {
1156
+ return e ? (e.getHours() * 60 * 60 + e.getMinutes() * 60 + e.getSeconds()) * 1e3 + e.getMilliseconds() : 0;
1157
+ }
1158
+ function Zt(e = !0) {
1159
+ let t = Date.now();
1160
+ return (e ? "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" : "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").replace(/[xy]/g, (e) => {
1161
+ let n = (t + Math.random() * 16) % 16 | 0;
1162
+ return t = Math.floor(t / 16), (e === "x" ? n : n & 3 | 8).toString(16);
1163
+ });
1164
+ }
1165
+ function Qt(e) {
1166
+ if (!e) return "``";
1167
+ if (e = String(e), e.search(/[\\`]/) === -1) return `\`${e}\``;
1168
+ let t = ["`"];
1169
+ for (let n = 0, r = e.length; n < r; n++) {
1170
+ let r = e[n];
1171
+ (r === "\\" || r === "`") && t.push("\\"), t.push(r);
1172
+ }
1173
+ return t.push("`"), t.join("");
1174
+ }
1175
+ function $t(e) {
1176
+ if (typeof crypto < "u" && crypto.subtle && typeof crypto.subtle.digest == "function") try {
1177
+ 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(en(e)));
1178
+ } catch {
1179
+ return Promise.resolve(en(e));
1180
+ }
1181
+ return Promise.resolve(en(e));
1182
+ }
1183
+ function en(e) {
1184
+ let t = 2166136261;
1185
+ for (let n = 0; n < e.length; n++) t ^= e.charCodeAt(n), t = t * 16777619 >>> 0;
1186
+ 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;
1187
+ return (o + o + o + o).substring(0, 128);
1188
+ }
1189
+ //#endregion
1190
+ //#region src/web-api/v1/fetch-audit.ts
1191
+ var tn, nn;
1192
+ function K(e, t = !0) {
1193
+ let n = rn(e.$auditRecord);
1194
+ n && (an(n), t && on(n)), e.$auditRecord = n;
1195
+ }
1196
+ function rn(e) {
1197
+ if (!e) return;
1198
+ let t;
1199
+ if (Array.isArray(e)) t = e;
1200
+ else if (G(e)) {
1201
+ let n = e;
1202
+ if (n.auditEvents || n.mlAuditEvents) return n;
1203
+ t = [e];
1204
+ }
1205
+ return { auditEvents: t };
1206
+ }
1207
+ function an(e) {
1208
+ let t = sn();
1209
+ return e.auditEvents?.forEach((e) => {
1210
+ e.detail ||= {}, e.detail.sessionid = t;
1211
+ }), e;
1212
+ }
1213
+ function on(e) {
1214
+ let t = typeof window < "u" ? decodeURIComponent(window.location.href) : "http://localhost";
1215
+ return e?.auditEvents?.forEach((e) => {
1216
+ e.detail ||= {}, e.detail.url = t;
1217
+ }), e;
1218
+ }
1219
+ function sn() {
1220
+ return (!tn || cn()) && (tn = Zt()), nn = /* @__PURE__ */ new Date(), tn;
1221
+ }
1222
+ function cn() {
1223
+ return Date.now() - nn.getTime() > 600 * 1e3;
1224
+ }
1225
+ async function ln(e, t = !0, n = h) {
1226
+ let r = {
1227
+ event: B.None,
1228
+ $auditRecord: e
1229
+ };
1230
+ return K(r, t), P(n, "api/v1/audit.notify", r);
1231
+ }
1232
+ var un = { notify: ln };
1233
+ //#endregion
1234
+ //#region src/web-api/v1/fetch-aggregation.ts
1235
+ async function dn(e, t, n, r = h) {
1236
+ let i = e.items?.length || 0, a = {
1237
+ query: {
1238
+ ...t,
1239
+ action: "aggregate",
1240
+ aggregations: { [e.name]: {
1241
+ skip: i,
1242
+ count: 10
1243
+ } }
1244
+ },
1245
+ $auditRecord: { auditEvents: [n] }
1246
+ };
1247
+ K(a);
1248
+ let { aggregations: o } = await Se(await P(r, "api/v1/query", a)), s = o[0];
1249
+ return s.$hasMore = s.items.length > 10, s.items = [...e.items, ...s.items], Promise.resolve(s);
1250
+ }
1251
+ //#endregion
1252
+ //#region src/web-api/v1/fetch-dataset.ts
1253
+ async function fn(e, t, n = {}, r = h) {
1254
+ let i = await P(r, `api/v1/search.dataset/${e}/${t}`, { parameters: n }), a = t[0].toLowerCase() + t.slice(1), o = i.datasets[a];
1255
+ if ("errorCode" in o && "errorMessage" in o) throw Error(o.errorMessage);
1256
+ return o;
1257
+ }
1258
+ async function pn(e, t, n = h) {
1259
+ let r = `api/v1/search.dataset/${e}`, { parameters: i = {}, datasets: a = [] } = t;
1260
+ return (await P(n, r, {
1261
+ parameters: i,
1262
+ datasets: a
1263
+ })).datasets;
1264
+ }
1265
+ async function mn(e, t = h) {
1266
+ return await I(t, `api/v1/search.dataset/${e}`);
1267
+ }
1268
+ //#endregion
1269
+ //#region src/web-api/v1/fetch-labels.ts
1270
+ async function hn(e, t = !0, n, r = h) {
1271
+ try {
1272
+ return (await P(r, "api/v1/labels", {
1273
+ action: "list",
1274
+ q: e,
1275
+ public: t,
1276
+ locale: n,
1277
+ localize: !1
1278
+ })).labels;
1279
+ } catch (e) {
1280
+ throw l("Error in fetchLabels", e), e;
1281
+ }
1282
+ }
1283
+ async function gn(e = h) {
1284
+ try {
1285
+ let { app: t = "" } = e.config;
1286
+ return I(e, "api/v1/labels", new URLSearchParams({
1287
+ app: t,
1288
+ action: "getUserRights"
1289
+ }));
1290
+ } catch (e) {
1291
+ throw l("Error in getUserRights", e), e;
1292
+ }
1293
+ }
1294
+ async function _n(e, t, n = !0, r = h) {
1295
+ try {
1296
+ return P(r, "api/v1/labels", {
1297
+ action: "add",
1298
+ labels: e,
1299
+ ids: t,
1300
+ public: n,
1301
+ $auditRecord: {
1302
+ auditEvents: [{
1303
+ type: B.Label_AddDoc,
1304
+ detail: {
1305
+ public: n,
1306
+ label: e ? e.toString() : null,
1307
+ doccount: t ? t.length : 0
1308
+ }
1309
+ }],
1310
+ mlAuditEvents: [{
1311
+ actionType: "addToLabel",
1312
+ documentIds: t
1313
+ }]
1314
+ }
1315
+ });
1316
+ } catch (e) {
1317
+ throw l("Error in add", e), e;
1318
+ }
1319
+ }
1320
+ async function vn(e, t, n = !0, r = h) {
1321
+ try {
1322
+ return P(r, "api/v1/labels", {
1323
+ action: "remove",
1324
+ labels: e,
1325
+ ids: t,
1326
+ public: n,
1327
+ $auditRecord: {
1328
+ auditEvents: [{
1329
+ type: B.Label_RemoveDoc,
1330
+ detail: {
1331
+ public: n,
1332
+ label: e ? e.toString() : null,
1333
+ doccount: t ? t.length : 0
1334
+ }
1335
+ }],
1336
+ mlAuditEvents: [{
1337
+ actionType: "removeFromLabel",
1338
+ documentIds: t
1339
+ }]
1340
+ }
1341
+ });
1342
+ } catch (e) {
1343
+ throw l("Error in remove", e), e;
1344
+ }
1345
+ }
1346
+ async function yn(e, t, n = !0, r = h) {
1347
+ try {
1348
+ return P(r, "api/v1/labels", {
1349
+ action: "rename",
1350
+ labels: e,
1351
+ newLabel: t,
1352
+ public: n,
1353
+ auditEvents: {
1354
+ type: B.Label_Rename,
1355
+ detail: {
1356
+ public: n,
1357
+ oldlabel: e ? e.toString() : null,
1358
+ label: t
1359
+ }
1360
+ }
1361
+ });
1362
+ } catch (e) {
1363
+ throw l("Error in rename", e), e;
1364
+ }
1365
+ }
1366
+ async function bn(e, t = !0, n = h) {
1367
+ try {
1368
+ return P(n, "api/v1/labels", {
1369
+ action: "delete",
1370
+ labels: e,
1371
+ public: t,
1372
+ auditEvents: {
1373
+ type: B.Label_Delete,
1374
+ detail: {
1375
+ public: t,
1376
+ label: e ? e.toString() : null
1377
+ }
1378
+ }
1379
+ });
1380
+ } catch (e) {
1381
+ throw l("Error in deleteLabels", e), e;
1382
+ }
1383
+ }
1384
+ async function xn(e, t, n = !0, r = h) {
1385
+ try {
1386
+ return P(r, "api/v1/labels", {
1387
+ action: "bulkAdd",
1388
+ labels: e,
1389
+ query: t,
1390
+ public: n,
1391
+ auditEvents: {
1392
+ type: B.Label_Add,
1393
+ detail: {
1394
+ public: n,
1395
+ label: e ? e.toString() : null,
1396
+ query: t === null ? null : t.name
1397
+ }
1398
+ }
1399
+ });
1400
+ } catch (e) {
1401
+ throw l("Error in bulkAdd", e), e;
1402
+ }
1403
+ }
1404
+ async function Sn(e, t, n = !0, r = h) {
1405
+ try {
1406
+ return P(r, "api/v1/labels", {
1407
+ action: "bulkRemove",
1408
+ labels: e,
1409
+ query: t,
1410
+ public: n,
1411
+ auditEvents: {
1412
+ type: B.Label_Delete,
1413
+ detail: {
1414
+ public: n,
1415
+ label: e ? e.toString() : null,
1416
+ query: t === null ? null : t.name
1417
+ }
1418
+ }
1419
+ });
1420
+ } catch (e) {
1421
+ throw l("Error in bulkRemove", e), e;
1422
+ }
1423
+ }
1424
+ var q = {
1425
+ getUserRights: gn,
1426
+ add: _n,
1427
+ remove: vn,
1428
+ rename: yn,
1429
+ delete: bn,
1430
+ bulkAdd: xn,
1431
+ bulkRemove: Sn
1432
+ };
1433
+ //#endregion
1434
+ //#region src/web-api/v1/fetch-preview.ts
1435
+ async function Cn(e, t, n = h) {
1436
+ if (typeof window > "u") return P(n, "api/v1/preview", {
1437
+ action: "get",
1438
+ id: e,
1439
+ query: t
1440
+ });
1441
+ let r = `${window.location.origin}${window.location.pathname}`;
1442
+ return P(n, "api/v1/preview", {
1443
+ action: "get",
1444
+ id: e,
1445
+ query: {
1446
+ name: t?.name,
1447
+ text: t?.text
1448
+ },
1449
+ browserUrl: r
1450
+ });
1451
+ }
1452
+ async function wn(e) {
1453
+ let t = new Headers();
1454
+ t.append("content-type", "text"), Se(await fetch(e, {
1455
+ method: "GET",
1456
+ headers: t
1457
+ }));
1458
+ }
1459
+ //#endregion
1460
+ //#region src/web-api/v1/fetch-principal.ts
1461
+ async function Tn(e, t = h) {
1462
+ return I(t, "api/v1/principal", new URLSearchParams({ action: "get" }), {
1463
+ noAutoAuthentication: j(t),
1464
+ ...e
1465
+ });
1466
+ }
1467
+ async function En(e, t = h) {
1468
+ let n = new URLSearchParams();
1469
+ return Object.entries(e).forEach(([e, t]) => {
1470
+ t !== void 0 && n.append(e, String(t));
1471
+ }), I(t, "api/v1/principal/list", n, { noAutoAuthentication: j(t) });
1472
+ }
1473
+ async function Dn(e, t = h) {
1474
+ return e ? I(t, "api/v1/principal", new URLSearchParams({
1475
+ action: "userid",
1476
+ userid: e
1477
+ }), { noAutoAuthentication: j(t) }) : Promise.reject(/* @__PURE__ */ Error("userid is required"));
1478
+ }
1479
+ async function On(e, t = h) {
1480
+ return e.length === 0 ? Promise.reject(/* @__PURE__ */ Error("userids is required")) : I(t, "api/v1/principal/userids", new URLSearchParams({ userids: [...e].join(",") }), { noAutoAuthentication: j(t) });
1481
+ }
1482
+ var kn = { principal: {
1483
+ get: Tn,
1484
+ list: En,
1485
+ userid: Dn,
1486
+ userids: On
1487
+ } }, An = 11;
1488
+ async function jn(e, t, n, r = h) {
1489
+ let i = await P(r, "api/v1/query", {
1490
+ query: e,
1491
+ $auditRecord: t,
1492
+ queryIntentData: n
1493
+ });
1494
+ i.aggregations.forEach((e) => {
1495
+ e.$hasMore = !1, !e.isDistribution && !e.isTree && e.items && (e.$hasMore = e.items.length === An), e.isTree && e.items && Nn(e);
1496
+ }), i.records?.map((e) => Object.assign(e, {
1497
+ value: e.title,
1498
+ type: "default"
1499
+ }));
1500
+ let a = {
1501
+ ...i,
1502
+ ...Wt(i)
1503
+ };
1504
+ return Promise.resolve(a);
1505
+ }
1506
+ async function Mn(e, t, n, r = h) {
1507
+ let { app: i = "" } = r.config, a = {
1508
+ methods: [],
1509
+ mode: t,
1510
+ propagateErrors: !0,
1511
+ $auditRecord: { auditEvents: [n] }
1512
+ };
1513
+ for (let t of e) a.methods.push({
1514
+ method: "query",
1515
+ app: i,
1516
+ query: t
1517
+ });
1518
+ let o = await P(r, "api/v1/multi", a);
1519
+ o.results.forEach((e) => {
1520
+ e.aggregations.forEach((e) => {
1521
+ e.$hasMore = !1, !e.isDistribution && !e.isTree && e.items && (e.$hasMore = e.items.length === An), e.isTree && Nn(e);
1522
+ });
1523
+ }), o.results.forEach((e) => {
1524
+ e.records?.map((e) => Object.assign(e, {
1525
+ value: e.title,
1526
+ type: "default"
1527
+ }));
1528
+ });
1529
+ let s = o.results.map((e) => ({
1530
+ ...e,
1531
+ ...Wt(e)
1532
+ }));
1533
+ return Promise.resolve(s);
1534
+ }
1535
+ function Nn(e, t = "", n = 0) {
1536
+ let r = [];
1537
+ return e.items && e.items.forEach((e) => {
1538
+ let i = t ? `${t}/${e.value}` : e.value, a = n + 1;
1539
+ r.push({
1540
+ path: i,
1541
+ level: a
1542
+ }), e.$path = i, e.$level = a, e.hasChildren ? r = r.concat(Nn(e, i, a)) : e.hasChildren = !1;
1543
+ }), r;
1544
+ }
1545
+ //#endregion
1546
+ //#region src/web-api/v1/fetch-query-export.ts
1547
+ async function Pn({ model: e, appName: t, query: n, article: r }, i = h) {
1548
+ let { webservice: a, format: o, maxcount: s, exportedColumns: c, export: l } = e, u = {
1549
+ app: t,
1550
+ webservice: a,
1551
+ query: n,
1552
+ type: l,
1553
+ format: o,
1554
+ maxcount: s,
1555
+ exportedColumns: c,
1556
+ $auditRecord: { auditEvents: [{
1557
+ type: "Search_ExportCSV",
1558
+ detail: { resultid: r ? r.id : void 0 }
1559
+ }] }
1560
+ };
1561
+ return K(u), await P(i, "api/v1/search.queryexport", u, { responseType: "blob" });
1562
+ }
1563
+ //#endregion
1564
+ //#region src/web-api/v1/fetch-query-intent.ts
1565
+ async function Fn(e, t = h) {
1566
+ return (await P(t, "api/v1/queryintent", { query: e }))?.intents;
1567
+ }
1568
+ //#endregion
1569
+ //#region src/web-api/v1/fetch-security-principal.ts
1570
+ function In(e, t, n = h) {
1571
+ return P(n, "api/v1/security.principal", e, { signal: t });
1572
+ }
1573
+ //#endregion
1574
+ //#region src/web-api/v1/fetch-similar-documents.ts
1575
+ async function Ln(e, t, n, r = h) {
1576
+ return (await P(r, "api/v1/similardocuments", {
1577
+ sourceDocumentId: e,
1578
+ query: { name: t }
1579
+ }, { signal: n })).data;
1580
+ }
1581
+ //#endregion
1582
+ //#region src/web-api/v1/fetch-sponsored-links.ts
1583
+ async function Rn(e, t, n = h) {
1584
+ return (await P(n, "api/v1/query.links", {
1585
+ webservice: e,
1586
+ query: t
1587
+ }))?.links?.map((e) => ({
1588
+ ...e,
1589
+ query: t
1590
+ }));
1591
+ }
1592
+ //#endregion
1593
+ //#region src/utils/to-sql.ts
1594
+ function zn(e, t) {
1595
+ if (typeof e == "number") return `${e}`;
1596
+ if (qt(e)) return t ? `'${Bn(e)}'` : Bn(e);
1597
+ if (typeof e == "boolean") return e ? "true" : "false";
1598
+ if (e === null) return "null";
1599
+ if (Array.isArray(e)) {
1600
+ let t = [];
1601
+ return e.forEach((e) => {
1602
+ t.length > 0 && t.push(","), e ? typeof e == "string" ? t.push(e) : t.push(e.display || e.value || "") : t.push("null");
1603
+ }), t.splice(0, 0, "["), t.push("]"), t.join("");
1604
+ }
1605
+ return t ? `'${e}'` : e;
1606
+ }
1607
+ function Bn(e) {
1608
+ if (!e) return "";
1609
+ try {
1610
+ return Xt(e) === 0 ? new Intl.DateTimeFormat("en-CA", {
1611
+ year: "numeric",
1612
+ month: "2-digit",
1613
+ day: "2-digit"
1614
+ }).format(e) : `${new Intl.DateTimeFormat("en-CA").format(e)} ${new Intl.DateTimeFormat("en-CA", {
1615
+ hour: "2-digit",
1616
+ minute: "2-digit",
1617
+ second: "2-digit",
1618
+ hour12: !1
1619
+ }).format(e)}`;
1620
+ } catch {
1621
+ return "Invalid date";
1622
+ }
1623
+ }
1624
+ //#endregion
1625
+ //#region src/web-api/v1/fetch-suggest.ts
1626
+ async function Vn(e, t, n, r, i, a = h) {
1627
+ let { app: o } = a.config, s = {
1628
+ app: o || "",
1629
+ suggestQuery: e,
1630
+ text: t,
1631
+ filter: n,
1632
+ kinds: r,
1633
+ showSource: i
1634
+ };
1635
+ try {
1636
+ return (await P(a, "api/v1/search.suggest", s)).suggests;
1637
+ } catch (e) {
1638
+ throw console.error("Error fetching suggestions:", e), e;
1639
+ }
1640
+ }
1641
+ async function Hn(e, t, n, r, i = h) {
1642
+ let { app: a } = i.config;
1643
+ return (await P(i, "api/v1/suggestquery", {
1644
+ app: a || "",
1645
+ suggestQuery: e,
1646
+ text: t,
1647
+ query: n,
1648
+ kinds: r
1649
+ })).suggests;
1650
+ }
1651
+ async function Un(e, t, n, r = h) {
1652
+ if (!t) return Promise.resolve([]);
1653
+ let { app: i } = r.config, a = await P(r, "api/v1/suggestfield", {
1654
+ app: i || "",
1655
+ text: e,
1656
+ fields: t,
1657
+ query: n
1658
+ });
1659
+ return a.suggests.forEach((e) => {
1660
+ e.display = zn(e.display);
1661
+ }), a.suggests;
1662
+ }
1663
+ //#endregion
1664
+ //#region src/web-api/v1/fetch-text-chunk.ts
1665
+ async function Wn(e, t, n, r, i, a, o = h) {
1666
+ return P(o, "api/v1/doc.textchunks", {
1667
+ id: e,
1668
+ textChunks: t,
1669
+ highlights: n,
1670
+ query: r,
1671
+ leftSentencesCount: i,
1672
+ rightSentencesCount: a
1673
+ });
1674
+ }
1675
+ //#endregion
1676
+ //#region src/web-api/v1/fetch-user-settings.ts
1677
+ async function Gn(e = h) {
1678
+ let { app: t } = e.config;
1679
+ return I(e, "api/v1/usersettings", new URLSearchParams({
1680
+ app: t || "",
1681
+ action: "load"
1682
+ }));
1683
+ }
1684
+ async function Kn(e, t, n = h) {
1685
+ let r = {
1686
+ action: "save",
1687
+ userSettings: e,
1688
+ $auditRecord: { auditEvents: [t] }
1689
+ };
1690
+ return K(r), P(n, "api/v1/usersettings", r);
1691
+ }
1692
+ async function qn(e, t, n = h) {
1693
+ let r = {
1694
+ action: "patch",
1695
+ userSettings: e,
1696
+ $auditRecord: t ? { auditEvents: [t] } : void 0
1697
+ };
1698
+ return K(r), P(n, "api/v1/usersettings", r);
1699
+ }
1700
+ async function Jn(e = h) {
1701
+ return Kn({}, { type: "UserSettings_Reset" }, e);
1702
+ }
1703
+ //#endregion
1704
+ //#region src/web-api/v2/fetch-change-password.ts
1705
+ async function Yn(e, t, n = h) {
1706
+ return P(n, "api/v2/security/password/change", {
1707
+ newPassword: e,
1708
+ currentPassword: t
1709
+ });
1710
+ }
1711
+ //#endregion
1712
+ //#region src/web-api/v2/fetch-document-upload-container.ts
1713
+ var J = "api/v2/document-upload/container";
1714
+ function Xn(e) {
1715
+ let t = new URLSearchParams();
1716
+ return e.page !== void 0 && t.set("page", String(e.page)), e.pageSize !== void 0 && t.set("pageSize", String(e.pageSize)), t;
1717
+ }
1718
+ function Zn(e = {}, t = h) {
1719
+ return I(t, J, Xn(e));
1720
+ }
1721
+ function Qn(e, t = h) {
1722
+ return I(t, `${J}/${encodeURIComponent(e)}`);
1723
+ }
1724
+ function $n(e, t = h) {
1725
+ return P(t, J, e);
1726
+ }
1727
+ function er(e, t, n = h) {
1728
+ return z(n, `${J}/${encodeURIComponent(e)}`, t);
1729
+ }
1730
+ async function tr(e, t = h) {
1731
+ let n = (await L(t, "api/v2/document-upload/containers", void 0, { body: { containerIds: e } }))?.failed ?? [], r = new Set(n.map((e) => e.containerId));
1732
+ return {
1733
+ succeeded: e.filter((e) => !r.has(e)),
1734
+ failed: n
1735
+ };
1736
+ }
1737
+ function nr(e, t = {}, n = h) {
1738
+ return I(n, `${J}/${encodeURIComponent(e)}/documents`, Xn(t));
1739
+ }
1740
+ function rr(e, t, n = h) {
1741
+ return L(n, `${J}/${encodeURIComponent(e)}/documents`, void 0, { body: { fileIds: t } });
1742
+ }
1743
+ //#endregion
1744
+ //#region src/web-api/v2/fetch-forgot-password.ts
1745
+ async function ir(e, t = h) {
1746
+ return P(t, "api/v2/security/password/ask-reset-email", {
1747
+ changePasswordRedirectUrl: `${window.location.origin}/login?mode=changepassword`,
1748
+ userName: e
1749
+ });
1750
+ }
1751
+ //#endregion
1752
+ //#region src/web-api/v2/fetch-user-profile.ts
1753
+ async function ar(e, t = h) {
1754
+ return await I(t, `api/v2/user-profile/${e}`);
1755
+ }
1756
+ async function or(e, t = h) {
1757
+ return await P(t, "api/v2/user-profile", e);
1758
+ }
1759
+ async function sr(e, t, n, r = h) {
1760
+ return await R(r, `api/v2/user-profile/${e.data?.id}/${t}/${n}`, e);
1761
+ }
1762
+ async function cr(e, t, n, r = h) {
1763
+ return (await L(r, `api/v2/user-profile/${e.data?.id}/${t}/${n}`)).success === !0;
1764
+ }
1765
+ //#endregion
1766
+ //#region src/web-api/v2/fetch-version.ts
1767
+ async function lr(e = h) {
1768
+ return await I(e, "api/v2/version");
1769
+ }
1770
+ //#endregion
1771
+ //#region src/client/create-api.ts
1772
+ var Y = (e, t) => (...n) => {
1773
+ let r = Array(Math.max(0, e.length - n.length)).fill(void 0);
1774
+ return e(...n, ...r, t);
1775
+ };
1776
+ function ur(e) {
1777
+ return {
1778
+ app: {
1779
+ get: Y(Ct, e),
1780
+ preLogin: Y(wt, e)
1781
+ },
1782
+ principal: {
1783
+ get: Y(Tn, e),
1784
+ list: Y(En, e),
1785
+ userid: Y(Dn, e),
1786
+ userids: Y(On, e),
1787
+ search: Y(In, e)
1788
+ },
1789
+ query: {
1790
+ search: Y(jn, e),
1791
+ bulk: Y(Mn, e),
1792
+ intent: Y(Fn, e),
1793
+ export: Y(Pn, e),
1794
+ aggregate: Y(dn, e),
1795
+ sponsoredLinks: Y(Rn, e),
1796
+ similarDocuments: Y(Ln, e)
1797
+ },
1798
+ suggest: {
1799
+ get: Y(Vn, e),
1800
+ query: Y(Hn, e),
1801
+ field: Y(Un, e)
1802
+ },
1803
+ preview: {
1804
+ get: Y(Cn, e),
1805
+ textChunks: Y(Wn, e)
1806
+ },
1807
+ labels: {
1808
+ get: Y(hn, e),
1809
+ rights: Y(q.getUserRights, e),
1810
+ add: Y(q.add, e),
1811
+ remove: Y(q.remove, e),
1812
+ rename: Y(q.rename, e),
1813
+ delete: Y(q.delete, e),
1814
+ bulkAdd: Y(q.bulkAdd, e),
1815
+ bulkRemove: Y(q.bulkRemove, e)
1816
+ },
1817
+ dataset: {
1818
+ get: Y(fn, e),
1819
+ getMany: Y(pn, e),
1820
+ list: Y(mn, e)
1821
+ },
1822
+ userSettings: {
1823
+ get: Y(Gn, e),
1824
+ save: Y(Kn, e),
1825
+ patch: Y(qn, e),
1826
+ reset: Y(Jn, e)
1827
+ },
1828
+ userProfile: {
1829
+ get: Y(ar, e),
1830
+ create: Y(or, e),
1831
+ patch: Y(sr, e),
1832
+ deleteProperty: Y(cr, e)
1833
+ },
1834
+ containers: {
1835
+ list: Y(Zn, e),
1836
+ get: Y(Qn, e),
1837
+ create: Y($n, e),
1838
+ update: Y(er, e),
1839
+ delete: Y(tr, e),
1840
+ listDocuments: Y(nr, e),
1841
+ deleteDocuments: Y(rr, e)
1842
+ },
1843
+ password: {
1844
+ change: Y(Yn, e),
1845
+ sendResetEmail: Y(ir, e)
1846
+ },
1847
+ version: Y(lr, e)
1848
+ };
1849
+ }
1850
+ //#endregion
1851
+ //#region src/client/create-atomic-client.ts
1852
+ function dr(e) {
1853
+ return {
1854
+ config: e.config,
1855
+ storagePrefix: e.storagePrefix,
1856
+ configure: (t) => y(e, t),
1857
+ initializeConfig: () => Tt(e),
1858
+ auth: {
1859
+ login: (t) => ot(e, t),
1860
+ logout: () => ft(e),
1861
+ isAuthenticated: () => vt(e),
1862
+ hasSession: () => Be(e),
1863
+ isRedirectPending: () => gt(e),
1864
+ clearSession: () => mt(e),
1865
+ getToken: () => w(e),
1866
+ setToken: (t) => k(e, t),
1867
+ on: (t, n) => e.events.on(t, n)
1868
+ },
1869
+ http: {
1870
+ get: (t, n, r) => I(e, t, n, r),
1871
+ post: (t, n, r) => P(e, t, n, r),
1872
+ put: (t, n, r) => z(e, t, n, r),
1873
+ patch: (t, n, r) => R(e, t, n, r),
1874
+ del: (t, n, r) => L(e, t, n, r)
1875
+ },
1876
+ api: ur(e),
1877
+ context: e
1878
+ };
1879
+ }
1880
+ function fr(e) {
1881
+ let { httpAdapter: t, storagePrefix: n, ...r } = e, i = me({
1882
+ config: {},
1883
+ storagePrefix: n,
1884
+ httpAdapter: t
1885
+ });
1886
+ return y(i, r), dr(i);
1887
+ }
1888
+ var pr = dr(h);
1889
+ function mr() {
1890
+ return pr;
1891
+ }
1892
+ //#endregion
1893
+ //#region src/utils/aggregations.ts
1894
+ var hr = /.*:\(?([><=\d\-.AND ]+)\)?/;
1895
+ function gr(e, t) {
1896
+ return !e?.items || e?.items?.length === 0 ? [] : e.items.reduce((n, r) => {
1897
+ if (!r.value || r.value === "") return n;
1898
+ let i = _r(r, e.column);
1899
+ return n.push({
1900
+ operator: i.operator,
1901
+ value: i.value,
1902
+ display: r.display || i.display,
1903
+ filters: i.filters,
1904
+ disabled: r.count === 0,
1905
+ hidden: r.count === 0 && e.isDistribution ? !t : !1
1906
+ }), n;
1907
+ }, []);
1908
+ }
1909
+ function _r(e, t) {
1910
+ let n = t, r = e.value.match(hr);
1911
+ if (r?.[1]) {
1912
+ let t = (r?.[1].split(" AND ")).map((t) => ({
1913
+ field: n,
1914
+ operator: t.indexOf(">=") === -1 ? "lt" : "gte",
1915
+ value: t.substring(t.indexOf(" ") + 1),
1916
+ display: e.display || e.value
1917
+ }));
1918
+ if (t.length === 2) return {
1919
+ field: n,
1920
+ operator: "and",
1921
+ filters: t,
1922
+ value: e.value,
1923
+ display: t[0].display || t[0].value
1924
+ };
1925
+ if (t.length === 1) return {
1926
+ ...t[0],
1927
+ field: n
1928
+ };
1929
+ throw Error("Failed to parse distribution expression");
1930
+ }
1931
+ return {
1932
+ field: n,
1933
+ operator: "eq",
1934
+ value: e.value,
1935
+ display: e.display
1936
+ };
1937
+ }
1938
+ function vr(e, t, n) {
1939
+ return e.valuesAreExpressions ? t.display === n.display : t.value === n.value;
1940
+ }
1941
+ function yr(e) {
1942
+ return e.items &&= e.items.map((e) => yr(e)), e.items?.some((e) => e.$selected || e.$opened) && (e.$opened = !0), e;
1943
+ }
1944
+ function br(e, t) {
1945
+ let n = [];
1946
+ if (e.length > 0) {
1947
+ let r = /* @__PURE__ */ new Map(), i = t.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").normalize("NFD").replace(/[\u0300-\u036f]/g, ""), a = RegExp(`\\b${i}`, "i");
1948
+ e.forEach((e) => {
1949
+ if (e.display.length > 1) {
1950
+ let i = e.display.normalize("NFD").replace(/[\u0300-\u036f]/g, ""), o = a.exec(i);
1951
+ xr(n, r, "/", e.display, +(e.frequency || 0), 1, (o?.index || 0) + t.length);
1952
+ }
1953
+ });
1954
+ }
1955
+ return n;
1956
+ }
1957
+ function xr(e, t, n, r, i, a, o) {
1958
+ let s = r.indexOf("/", n.length), c = r.substring(0, s + 1), l = t.get(c);
1959
+ if (!l) {
1960
+ let u = c.replace(/^\/|\/$/g, "");
1961
+ l = {
1962
+ value: r.substring(n.length, s),
1963
+ count: i,
1964
+ items: [],
1965
+ hasChildren: !1,
1966
+ $level: a,
1967
+ $opened: o >= c.length,
1968
+ $path: u
1969
+ }, t.set(c, l), e.push(l);
1970
+ }
1971
+ c.length < r.length && (l.hasChildren = !0, xr(l.items, t, c, r, i, a + 1, o));
1972
+ }
1973
+ //#endregion
1974
+ //#region src/utils/bisect.ts
1975
+ function Sr(e, t) {
1976
+ return e.reduce((e, n) => (t(n) ? e.true.push(n) : e.false.push(n), e), {
1977
+ true: [],
1978
+ false: []
1979
+ });
1980
+ }
1981
+ //#endregion
1982
+ //#region src/utils/concepts.ts
1983
+ var Cr = /(([+-])?\(([^)]+)\))|(([+-])?\[([^\]]+)\])|(([+-])?"([^"]+)")|(([+-])?\/([^/]+)\/)|(([+-])?(\S+))/g, wr = 2, Tr = 3, Er = 5, Dr = 6, Or = 8, kr = 9, Ar = 11, jr = 12, Mr = 14, Nr = 15;
1984
+ function X(e) {
1985
+ if (!e) return [];
1986
+ let t = [], n = e.matchAll(Cr);
1987
+ for (let e of n) e[Tr] ? t.push({
1988
+ type: "group",
1989
+ value: e[Tr],
1990
+ op: e[wr]
1991
+ }) : e[Dr] ? t.push({
1992
+ type: "adjacent",
1993
+ value: e[Dr],
1994
+ op: e[Er]
1995
+ }) : e[kr] ? t.push({
1996
+ type: "exact",
1997
+ value: e[kr],
1998
+ op: e[Or]
1999
+ }) : e[jr] ? t.push({
2000
+ type: "regex",
2001
+ value: e[jr],
2002
+ op: e[Ar]
2003
+ }) : e[Nr] && t.push({
2004
+ type: "token",
2005
+ value: e[Nr],
2006
+ op: e[Mr]
2007
+ });
2008
+ return t;
2009
+ }
2010
+ function Z(e) {
2011
+ return e.map((e) => {
2012
+ let t = e.op || "";
2013
+ switch (e.type) {
2014
+ case "group": return `${t}(${e.value})`;
2015
+ case "adjacent": return `${t}[${e.value}]`;
2016
+ case "exact": return `${t}"${e.value}"`;
2017
+ case "regex": return `${t}/${e.value}/`;
2018
+ case "token": return `${t}${e.value}`;
2019
+ default: return "";
2020
+ }
2021
+ }).join(" ");
2022
+ }
2023
+ function Pr(e, t, n) {
2024
+ let r = X(e);
2025
+ for (let e of t) r.push({
2026
+ type: "adjacent",
2027
+ value: e,
2028
+ op: n
2029
+ });
2030
+ return Z(r);
2031
+ }
2032
+ function Fr(e, t) {
2033
+ let n = X(t), r = n.findIndex((t) => t.value === e);
2034
+ return r === -1 ? t : (n.splice(r, 1), Z(n));
2035
+ }
2036
+ function Ir(e) {
2037
+ return Z(X(e).filter((e) => e.type !== "adjacent"));
2038
+ }
2039
+ function Lr(e) {
2040
+ return X(e).filter((e) => e.type === "adjacent").map((e) => e.value);
2041
+ }
2042
+ //#endregion
2043
+ //#region src/utils/date.ts
2044
+ function Rr(e, t, n) {
2045
+ let r = new Intl.RelativeTimeFormat(e, { numeric: "auto" }), { offset: i, unit: a, isFuture: o } = zr(t, n);
2046
+ return r.format(i * (o ? 1 : -1), a);
2047
+ }
2048
+ function zr(e, t) {
2049
+ let n = new Date(e), r = t ? new Date(t) : /* @__PURE__ */ new Date(), i = Math.abs(r.getTime() - n.getTime());
2050
+ return {
2051
+ offset: Math.floor(i / (1e3 * 60 * 60 * 24)),
2052
+ unit: "day",
2053
+ isFuture: n > r
2054
+ };
2055
+ }
2056
+ //#endregion
2057
+ //#region src/utils/is-not-input-event.ts
2058
+ function Br(e) {
2059
+ let t = e.target;
2060
+ return t && t.nodeName !== "INPUT" && t.nodeName !== "TEXTAREA";
2061
+ }
2062
+ //#endregion
2063
+ //#region src/utils/notification.ts
2064
+ function Q(e) {
2065
+ let t = new CustomEvent("notification", {
2066
+ bubbles: !0,
2067
+ cancelable: !1,
2068
+ detail: e
2069
+ });
2070
+ dispatchEvent(t);
2071
+ }
2072
+ var Vr = {
2073
+ success: (e, t) => {
2074
+ Q({
2075
+ type: "success",
2076
+ message: e,
2077
+ options: t
2078
+ });
2079
+ },
2080
+ info: (e, t) => {
2081
+ Q({
2082
+ type: "info",
2083
+ message: e,
2084
+ options: t
2085
+ });
2086
+ },
2087
+ warning: (e, t) => {
2088
+ Q({
2089
+ type: "warning",
2090
+ message: e,
2091
+ options: t
2092
+ });
2093
+ },
2094
+ error: (e, t) => {
2095
+ Q({
2096
+ type: "error",
2097
+ message: e,
2098
+ options: t
2099
+ });
2100
+ }
2101
+ };
2102
+ //#endregion
2103
+ //#region src/utils/query-params.ts
2104
+ function Hr(e) {
2105
+ if (e === void 0) return;
2106
+ let { q: t, f: n, p: r, s: i, t: a, n: o, b: s } = $(e), [c] = e.split("?");
2107
+ return {
2108
+ path: c,
2109
+ text: t,
2110
+ filters: n ? Gr(n) : void 0,
2111
+ page: r ? parseInt(r, 10) : void 0,
2112
+ sort: i,
2113
+ tab: a,
2114
+ name: o,
2115
+ basket: s
2116
+ };
2117
+ }
2118
+ function Ur(e) {
2119
+ if (!e) return "";
2120
+ let { text: t, filters: n, page: r, sort: i, tab: a, name: o, basket: s } = e, c = {};
2121
+ 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() || "";
2122
+ }
2123
+ function Wr(e) {
2124
+ if (e === void 0) return [];
2125
+ let { f: t } = $(e);
2126
+ return Gr(t);
2127
+ }
2128
+ function Gr(e) {
2129
+ let t = decodeURIComponent(e);
2130
+ try {
2131
+ return JSON.parse(t ?? "[]");
2132
+ } catch {
2133
+ return console.error(`Error parsing filters from URI: ${e}`), [];
2134
+ }
2135
+ }
2136
+ function $(e) {
2137
+ let t = e.split("?")[1];
2138
+ if (t === void 0) return {};
2139
+ let n = new URLSearchParams(t);
2140
+ return Object.fromEntries(n);
2141
+ }
2142
+ function Kr(e) {
2143
+ let { q: t = "" } = $(e);
2144
+ return t;
2145
+ }
2146
+ function qr(e) {
2147
+ let { id: t } = $(e);
2148
+ return decodeURIComponent(t);
2149
+ }
2150
+ function Jr(e) {
2151
+ let { p: t = "0" } = $(e);
2152
+ return parseInt(t, 10);
2153
+ }
2154
+ function Yr(e) {
2155
+ let { t } = $(e);
2156
+ return t;
2157
+ }
2158
+ //#endregion
2159
+ //#region src/utils/syslang.ts
2160
+ function Xr(e, t) {
2161
+ if (!e) return e;
2162
+ let n = 0, r = e.length, i = 0;
2163
+ if (e[i] === "[") {
2164
+ for (; i < r && /[0-9]/.test(e[i]);) i++;
2165
+ e[i] === "]" && (n = i + 1);
2166
+ }
2167
+ let a = Zr(e, n, !1);
2168
+ if (!a) return e;
2169
+ let o = t.charCodeAt(0), s = t.charCodeAt(1), c = a;
2170
+ for (; c;) if (o === c.lang1 && s === c.lang2) {
2171
+ let t = Zr(e, c.end + 4, !0);
2172
+ return e.substring(t.start, t.end);
2173
+ } else c = Zr(e, c.end + 4, !1);
2174
+ return e.substring(a.start, a.end) || e;
2175
+ }
2176
+ function Zr(e, t, n) {
2177
+ for (let n = t, r = e.length - 3; n < r; n++) if (e[n] === "[" && e[n + 3] === "]") return {
2178
+ start: t,
2179
+ end: n,
2180
+ lang1: e.charCodeAt(n + 1),
2181
+ lang2: e.charCodeAt(n + 2)
2182
+ };
2183
+ if (n) return {
2184
+ start: t,
2185
+ end: e.length,
2186
+ lang1: -1,
2187
+ lang2: -1
2188
+ };
2189
+ }
2190
+ //#endregion
2191
+ //#region src/utils/utilities.ts
2192
+ function Qr(e, t) {
2193
+ let { useLocale: n, useLocaleAsPrefix: r, indexFile: i, path: a, folder: o } = t, s = n ? `${e}/` : null, c = r ? `${e}.${i}` : i ?? "";
2194
+ return [
2195
+ a,
2196
+ o,
2197
+ `${s || ""}${c}`
2198
+ ].filter((e) => e !== void 0).join("/");
2199
+ }
2200
+ //#endregion
2201
+ export { Rn as $, r as $n, Ct as $t, mr as A, j as An, Yt as At, Qn as B, _e as Bn, U as Bt, hr as C, Fe as Cn, on as Ct, br as D, Oe as Dn, Gt as Dt, _r as E, ke as En, Zt as Et, sr as F, O as Fn, Ht as Ft, Jn as G, m as Gn, V as Gt, Zn as H, ue as Hn, Nt as Ht, ir as I, D as In, Ut as It, Kn as J, ne as Jn, At as Jt, Gn as K, ie as Kn, B as Kt, $n as L, ye as Ln, W as Lt, or as M, A as Mn, Jt as Mt, cr as N, xe as Nn, $t as Nt, gr as O, P as On, Kt as Ot, ar as P, be as Pn, Wt as Pt, Hn as Q, te as Qn, Et as Qt, rr as R, T as Rn, Vt as Rt, Sr as S, Ie as Sn, an as St, yr as T, F as Tn, Xt as Tt, er as U, de as Un, Mt as Ut, nr as V, fe as Vn, Pt as Vt, Yn as W, ae as Wn, H as Wt, Vn as X, p as Xn, Ot as Xt, Wn as Y, re as Yn, kt as Yt, Un as Z, ee as Zn, Dt as Zt, Lr as _, Ue as _n, mn as _t, qr as a, R as an, n as ar, Mn as at, Ir as b, Le as bn, un as bt, Yr as c, yt as cn, Tn as ct, $ as d, pt as dn, On as dt, wt as en, d as er, Ln as et, Vr as f, dt as fn, Cn as ft, Pr as g, Ge as gn, fn as gt, Rr as h, Ke as hn, q as ht, Wr as i, xt as in, c as ir, Nn as it, lr as j, Se as jn, G as jt, fr as k, we as kn, qt as kt, Kr as l, _t as ln, En as lt, zr as m, nt as mn, hn as mt, Xr as n, St as nn, l as nr, Fn as nt, Jr as o, bt as on, jn as ot, Br as p, st as pn, wn as pt, qn as q, f as qn, jt as qt, Gr as r, z as rn, s as rr, Pn as rt, Hr as s, L as sn, kn as st, Qr as t, Tt as tn, o as tr, In as tt, Ur as u, ht as un, Dn as ut, X as v, He as vn, pn as vt, vr as w, Ne as wn, Qt as wt, Z as x, I as xn, K as xt, Fr as y, ze as yn, dn as yt, tr as z, ve as zn, Rt as zt };