@sinequa/atomic 2.11.0 → 2.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +75 -93
  2. package/dist/atomic.cjs +1 -1
  3. package/dist/atomic.js +1 -1
  4. package/dist/authentication/constants.d.ts +1 -1
  5. package/dist/authentication/events/auth-events.d.ts +2 -2
  6. package/dist/authentication/events/emit-authenticated-event.d.ts +1 -1
  7. package/dist/authentication/events/index.d.ts +2 -2
  8. package/dist/authentication/index.d.ts +4 -4
  9. package/dist/authentication/providers/index.d.ts +2 -2
  10. package/dist/authentication/providers/oauth-authentication.d.ts +1 -1
  11. package/dist/authentication/providers/redirect-to-identity-provider.d.ts +1 -1
  12. package/dist/authentication/providers/redirect-to-identity-provider.d.ts.map +1 -1
  13. package/dist/authentication/providers/saml-authentication.d.ts +1 -1
  14. package/dist/authentication/session/auth-mode-marker.d.ts +1 -1
  15. package/dist/authentication/session/auth-state.d.ts +1 -1
  16. package/dist/authentication/session/detect-auth-mode.d.ts +2 -2
  17. package/dist/authentication/session/has-session.d.ts +1 -1
  18. package/dist/authentication/session/index.d.ts +7 -7
  19. package/dist/authentication/session/login.d.ts +2 -2
  20. package/dist/authentication/session/logout.d.ts +4 -3
  21. package/dist/authentication/session/logout.d.ts.map +1 -1
  22. package/dist/authentication/session/redirect-guard.d.ts +1 -1
  23. package/dist/authentication/session/session-lost-latch.d.ts +1 -1
  24. package/dist/authentication/session/signed-out-guard.d.ts +1 -1
  25. package/dist/authentication/session/try-auto-authentication.d.ts +1 -1
  26. package/dist/authentication/session/try-auto-authentication.d.ts.map +1 -1
  27. package/dist/authentication/session/user-authentication.d.ts +1 -1
  28. package/dist/authentication/tokens/delete-web-token-cookie.d.ts +1 -1
  29. package/dist/authentication/tokens/delete-web-token-cookie.d.ts.map +1 -1
  30. package/dist/authentication/tokens/get-csrf-token.d.ts +1 -1
  31. package/dist/authentication/tokens/get-csrf-token.d.ts.map +1 -1
  32. package/dist/authentication/tokens/get-jwt-token.d.ts +2 -2
  33. package/dist/authentication/tokens/get-token.d.ts +1 -1
  34. package/dist/authentication/tokens/index.d.ts +5 -5
  35. package/dist/authentication/tokens/set-token.d.ts +1 -1
  36. package/dist/client/atomic-context.d.ts +4 -4
  37. package/dist/client/create-api.d.ts +49 -48
  38. package/dist/client/create-api.d.ts.map +1 -1
  39. package/dist/client/create-atomic-client.d.ts +8 -8
  40. package/dist/client/http-adapter.d.ts +1 -1
  41. package/dist/client/index.d.ts +4 -4
  42. package/dist/configurations/auth-options.d.ts +1 -1
  43. package/dist/configurations/global.config.d.ts +4 -4
  44. package/dist/configurations/index.d.ts +3 -3
  45. package/dist/helpers/aggregation-count.d.ts +3 -2
  46. package/dist/helpers/aggregation-count.d.ts.map +1 -1
  47. package/dist/helpers/column-resolver.d.ts +11 -3
  48. package/dist/helpers/column-resolver.d.ts.map +1 -1
  49. package/dist/helpers/columns.d.ts +1 -1
  50. package/dist/helpers/filters.d.ts +1 -1
  51. package/dist/helpers/index.d.ts +8 -8
  52. package/dist/helpers/metadata.d.ts +2 -2
  53. package/dist/helpers/pagination.d.ts +1 -1
  54. package/dist/helpers/to-aggregation-count.d.ts +11 -0
  55. package/dist/helpers/to-aggregation-count.d.ts.map +1 -0
  56. package/dist/index.d.ts +7 -7
  57. package/dist/polyfills/storage.d.ts +1 -1
  58. package/dist/spfx/index.cjs +1 -1
  59. package/dist/spfx/index.d.ts +3 -3
  60. package/dist/spfx/index.js +1 -1
  61. package/dist/src-CCjB0b1J.cjs +1 -0
  62. package/dist/{src-bQIJ_J2j.js → src-CK3j-Qz_.js} +819 -757
  63. package/dist/types/agent-workspace/index.d.ts +3 -3
  64. package/dist/types/aggregations/Aggregation.d.ts +2 -2
  65. package/dist/types/aggregations/ListAggregation.d.ts +1 -1
  66. package/dist/types/aggregations/TreeAggregation.d.ts +2 -2
  67. package/dist/types/aggregations/TreeAggregationNode.d.ts +1 -1
  68. package/dist/types/aggregations/index.d.ts +6 -6
  69. package/dist/types/audit/AuditEvent.d.ts +2 -2
  70. package/dist/types/audit/AuditRecord.d.ts +1 -1
  71. package/dist/types/audit/index.d.ts +4 -4
  72. package/dist/types/chunks/index.d.ts +2 -2
  73. package/dist/types/config/CCAggregation.d.ts +7 -1
  74. package/dist/types/config/CCAggregation.d.ts.map +1 -1
  75. package/dist/types/config/CCApp.d.ts +11 -7
  76. package/dist/types/config/CCApp.d.ts.map +1 -1
  77. package/dist/types/config/CCAppRefresh.d.ts +1 -1
  78. package/dist/types/config/CCAutocomplete.d.ts +1 -1
  79. package/dist/types/config/CCColumn.d.ts +3 -3
  80. package/dist/types/config/CCColumnsInfo.d.ts +1 -1
  81. package/dist/types/config/CCIndex.d.ts +2 -2
  82. package/dist/types/config/CCLabels.d.ts +1 -1
  83. package/dist/types/config/CCList.d.ts +2 -2
  84. package/dist/types/config/CCQuery.d.ts +9 -9
  85. package/dist/types/config/CCRFM.d.ts +1 -1
  86. package/dist/types/config/CCTab.d.ts +1 -1
  87. package/dist/types/config/CCTabSearch.d.ts +1 -1
  88. package/dist/types/config/CCWebService.d.ts +13 -1
  89. package/dist/types/config/CCWebService.d.ts.map +1 -1
  90. package/dist/types/config/index.d.ts +26 -26
  91. package/dist/types/filters/BetweenFilter.d.ts +1 -1
  92. package/dist/types/filters/ExprFilter.d.ts +1 -1
  93. package/dist/types/filters/InFilter.d.ts +1 -1
  94. package/dist/types/filters/NotNullFilter.d.ts +1 -1
  95. package/dist/types/filters/NullFilter.d.ts +1 -1
  96. package/dist/types/filters/SimpleFilter.d.ts +1 -1
  97. package/dist/types/filters/index.d.ts +8 -8
  98. package/dist/types/filters/legacy-filters.d.ts +1 -1
  99. package/dist/types/index.d.ts +19 -19
  100. package/dist/types/interfaces/Query.d.ts +5 -5
  101. package/dist/types/interfaces/index.d.ts +3 -3
  102. package/dist/types/link-results/index.d.ts +2 -2
  103. package/dist/types/link-results/links-results.d.ts +1 -1
  104. package/dist/types/preview/CategoryHighlightData.d.ts +1 -1
  105. package/dist/types/preview/HighlightDataPerCategory.d.ts +1 -1
  106. package/dist/types/preview/HighlightValue.d.ts +1 -1
  107. package/dist/types/preview/PreviewData.d.ts +4 -4
  108. package/dist/types/preview/index.d.ts +8 -8
  109. package/dist/types/principal/PrincipalChangedEvent.d.ts +1 -1
  110. package/dist/types/principal/index.d.ts +6 -6
  111. package/dist/types/search/AccessLists.d.ts +1 -1
  112. package/dist/types/search/Answer.d.ts +1 -1
  113. package/dist/types/search/Article.d.ts +5 -5
  114. package/dist/types/search/DidYouMean.d.ts +2 -2
  115. package/dist/types/search/DocumentAccessLists.d.ts +1 -1
  116. package/dist/types/search/MatchLocationsPerPartname.d.ts +1 -1
  117. package/dist/types/search/MatchingPassage.d.ts +1 -1
  118. package/dist/types/search/QueryAnalysis.d.ts +1 -1
  119. package/dist/types/search/QueryIntent.d.ts +4 -4
  120. package/dist/types/search/QueryIntentData.d.ts +2 -2
  121. package/dist/types/search/QueryIntentMatch.d.ts +1 -1
  122. package/dist/types/search/QueryIntentResponse.d.ts +1 -1
  123. package/dist/types/search/RFMActionDisplay.d.ts +1 -1
  124. package/dist/types/search/RFMData.d.ts +1 -1
  125. package/dist/types/search/Result.d.ts +17 -16
  126. package/dist/types/search/Result.d.ts.map +1 -1
  127. package/dist/types/search/TopPassage.d.ts +1 -1
  128. package/dist/types/search/index.d.ts +32 -32
  129. package/dist/types/security-principal/index.d.ts +1 -1
  130. package/dist/types/user-profile/user-profile.d.ts +5 -0
  131. package/dist/types/user-profile/user-profile.d.ts.map +1 -1
  132. package/dist/utils/aggregations.d.ts +3 -3
  133. package/dist/utils/index.d.ts +11 -11
  134. package/dist/utils/query-params.d.ts +1 -1
  135. package/dist/utils/to-sql.d.ts +1 -1
  136. package/dist/web-api/helpers/create-headers.d.ts +1 -1
  137. package/dist/web-api/helpers/errors/server-error.d.ts +1 -1
  138. package/dist/web-api/helpers/errors/timeout-error.d.ts +1 -1
  139. package/dist/web-api/helpers/errors/unauthorized-error.d.ts +1 -1
  140. package/dist/web-api/helpers/handle-response.d.ts +2 -2
  141. package/dist/web-api/helpers/handle-response.d.ts.map +1 -1
  142. package/dist/web-api/helpers/index.d.ts +16 -16
  143. package/dist/web-api/helpers/methods/del.d.ts +3 -3
  144. package/dist/web-api/helpers/methods/get.d.ts +3 -3
  145. package/dist/web-api/helpers/methods/patch-raw.d.ts +3 -3
  146. package/dist/web-api/helpers/methods/patch.d.ts +3 -3
  147. package/dist/web-api/helpers/methods/post.d.ts +3 -3
  148. package/dist/web-api/helpers/methods/put.d.ts +3 -3
  149. package/dist/web-api/helpers/methods/send-patch.d.ts +3 -3
  150. package/dist/web-api/helpers/methods/send-request.d.ts +2 -2
  151. package/dist/web-api/helpers/utils/build-request-url.d.ts +2 -2
  152. package/dist/web-api/helpers/utils/create-timeout-controller.d.ts +6 -1
  153. package/dist/web-api/helpers/utils/create-timeout-controller.d.ts.map +1 -1
  154. package/dist/web-api/helpers/utils/resolve-no-auto-authentication.d.ts +1 -1
  155. package/dist/web-api/index.d.ts +23 -23
  156. package/dist/web-api/v1/fetch-aggregation.d.ts +2 -2
  157. package/dist/web-api/v1/fetch-aggregation.d.ts.map +1 -1
  158. package/dist/web-api/v1/fetch-app.d.ts +2 -2
  159. package/dist/web-api/v1/fetch-audit.d.ts +2 -2
  160. package/dist/web-api/v1/fetch-dataset.d.ts +2 -2
  161. package/dist/web-api/v1/fetch-labels.d.ts +2 -2
  162. package/dist/web-api/v1/fetch-preview.d.ts +2 -2
  163. package/dist/web-api/v1/fetch-principal.d.ts +3 -3
  164. package/dist/web-api/v1/fetch-query-export.d.ts +9 -4
  165. package/dist/web-api/v1/fetch-query-export.d.ts.map +1 -1
  166. package/dist/web-api/v1/fetch-query-intent.d.ts +2 -2
  167. package/dist/web-api/v1/fetch-query.d.ts +3 -3
  168. package/dist/web-api/v1/fetch-security-principal.d.ts +2 -2
  169. package/dist/web-api/v1/fetch-similar-documents.d.ts +2 -2
  170. package/dist/web-api/v1/fetch-sponsored-links.d.ts +2 -2
  171. package/dist/web-api/v1/fetch-suggest.d.ts +2 -2
  172. package/dist/web-api/v1/fetch-text-chunk.d.ts +2 -2
  173. package/dist/web-api/v1/fetch-user-settings.d.ts +2 -2
  174. package/dist/web-api/v1/fetch-user-settings.d.ts.map +1 -1
  175. package/dist/web-api/v2/fetch-agent-workspace-status.d.ts +3 -3
  176. package/dist/web-api/v2/fetch-agent-workspace.d.ts +3 -3
  177. package/dist/web-api/v2/fetch-change-password.d.ts +1 -1
  178. package/dist/web-api/v2/fetch-forgot-password.d.ts +1 -1
  179. package/dist/web-api/v2/fetch-user-profile.d.ts +24 -6
  180. package/dist/web-api/v2/fetch-user-profile.d.ts.map +1 -1
  181. package/dist/web-api/v2/fetch-version.d.ts +1 -1
  182. package/package.json +2 -2
  183. package/dist/src-DwKhKgxj.cjs +0 -1
package/README.md CHANGED
@@ -13,8 +13,6 @@
13
13
  Authentication, search, aggregations, datasets, preview — everything typed, tree-shakable, zero runtime dependencies.
14
14
  SPFx-ready via the `@sinequa/atomic/spfx` subpath export.
15
15
 
16
- [Docs](./docs/index.mdx) · [Get started](./docs/start/index.mdx) · [Reference](./docs/reference/index.mdx)
17
-
18
16
  </div>
19
17
 
20
18
  ---
@@ -54,13 +52,27 @@ const result = await fetchQuery({
54
52
  });
55
53
 
56
54
  // One round-trip: the documents are in `records`, the facet counts in `aggregations`.
57
- // Check `$error` before concluding anything from an empty `records`.
58
- const { records, aggregations, $error } = result;
55
+ const { records, aggregations } = result;
56
+ ```
57
+
58
+ A failed request **throws** (`UnauthorizedError` on 401, `ServerError` on 500, `ApiError` otherwise): an
59
+ empty `records` is a real "no match", never a swallowed failure. Wrap the call in `try/catch` to handle it.
60
+ `Result.$error` is only declared by this library — it is set by `@sinequa/atomic-angular`'s `QueryService`
61
+ (which catches the error and returns it), never by `fetchQuery`.
62
+
63
+ ```typescript
64
+ try {
65
+ const result = await fetchQuery({ name: "<your-query>", text: "knowledge management" });
66
+ render(result.records);
67
+ } catch (err) {
68
+ // ApiError | ServerError | UnauthorizedError | TimeoutError
69
+ showError(err);
70
+ }
59
71
  ```
60
72
 
61
73
  `fetchAggregation(aggregation, query)` is for **paging** an aggregation you already received — it
62
74
  takes the `Aggregation` object off `result.aggregations` and the same query, as two positional
63
- arguments. See [Aggregations](./docs/search/aggregations.mdx).
75
+ arguments.
64
76
 
65
77
  ---
66
78
 
@@ -91,7 +103,7 @@ Call `initializeAadHttpClient(null)` to detach the client (e.g. in `onDispose`).
91
103
  > and `AadHttpResponseLike`. `initializeAadHttpClient` registers the client globally for the free
92
104
  > functions; `createSpfxHttpAdapter(aadHttpClient)` is the same transport as an `httpAdapter` for
93
105
  > `createAtomicClient`. Standard (non-SPFx) consumers use `@sinequa/atomic` directly — no changes
94
- > needed. See [SPFx](./docs/integration/spfx.mdx).
106
+ > needed.
95
107
 
96
108
  ---
97
109
 
@@ -117,29 +129,28 @@ const results = await client.http.post("api/v1/search.query", { text: "hello" })
117
129
  The free functions below keep working unchanged: they run on a default client whose configuration
118
130
  **is** `globalConfig`, and `getDefaultClient()` hands back that very instance — useful from code
119
131
  that cannot receive one (a distributed web component, a plugin).
120
- See [The client](./docs/core/client.mdx) and [Multiple backends](./docs/integration/multiple-backends.mdx).
121
132
 
122
133
  ### Authentication
123
134
 
124
135
  Full auth lifecycle — from first handshake to logout.
125
136
 
126
- | Export | Description |
127
- | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
128
- | `isAuthenticated()` | Synchronous. `true` when a CSRF token is stored **or** a token-less session was recorded (ambient SSO issues no client token) |
129
- | `hasSession()` | Asks the server when nothing is stored, and never redirects — unlike `login()` |
130
- | `login(credentials?)` | Login — switches on the resolved `authMode` (credentials / SSO / OAuth / SAML / bearer / unknown) |
131
- | `logout()` | Clears session, returns the server's `redirectUrl` |
132
- | `clearSessionTokens()` | Drops the local session (tokens, token-less flag) and emits `authenticated: false`, without a server round-trip |
133
- | `detectAuthMode(config, preLogin?)` | Pure resolution of the `AuthMode` from config + server pre-login (no I/O) |
134
- | `getToken()` / `setToken(token)` | Read/write the stored CSRF token |
135
- | `requestWebTokenSession(credentials?)` | POSTs `security.webtoken`. The JWT lands in a cookie; the returned (and stored) value is the **CSRF token**. Omit the credentials to use the configured bearer token |
136
- | `getCsrfToken()` | CSRF token for mutating requests |
137
- | `deleteWebTokenCookie()` | Explicitly removes the web token cookie |
138
- | `onAuthEvent(event, handler)` | Typed subscription to the auth lifecycle (`authenticated`, `unauthorized`, `sessionLost`, `requestFailed`, `tokenRefreshed`, `loggedOut`) — returns the unsubscribe function |
139
- | `tryAutoAuthentication()` | Probes a protected endpoint for server-side auto-authentication (OIDC, IIS Negotiate) — used by `login()` in `sso`, `unknown` and `bearer` modes. Never throws |
140
- | `isRedirectPending()` | Whether an OAuth/SAML redirect is in flight and has not established a session yet |
141
- | `tryOAuthAuthentication()` / `trySAMLAuthentication()` | Redirect to the configured identity provider (with a one-shot redirect-loop guard) |
142
- | `emitAuthenticatedEvent(bool)` | Dispatches the DOM `'authenticated'` CustomEvent (on `document`, bubbles to `window`) |
137
+ | Export | Description |
138
+ | ------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
139
+ | `isAuthenticated()` | Synchronous. `true` when a CSRF token is stored **or** a token-less session was recorded (ambient SSO issues no client token) |
140
+ | `hasSession()` | Asks the server when nothing is stored, and never redirects — unlike `login()` |
141
+ | `login(credentials?)` | Login — switches on the resolved `authMode` (credentials / SSO / OAuth / SAML / bearer / unknown) |
142
+ | `logout()` | Clears the local session and deletes the cookie; resolves to the server's `logoutUrl` (`Promise<string \| undefined>`), `undefined` if the deletion failed or during impersonation |
143
+ | `clearSessionTokens()` | Drops the local session (tokens, token-less flag) and emits `authenticated: false`, without a server round-trip |
144
+ | `detectAuthMode(config, preLogin?)` | Pure resolution of the `AuthMode` from config + server pre-login (no I/O) |
145
+ | `getToken()` / `setToken(token)` | Read/write the stored CSRF token |
146
+ | `requestWebTokenSession(credentials?)` | POSTs `security.webtoken`. The JWT lands in a cookie; the returned (and stored) value is the **CSRF token**. Omit the credentials to use the configured bearer token |
147
+ | `getCsrfToken()` | CSRF token for mutating requests |
148
+ | `deleteWebTokenCookie()` | Explicitly removes the web token cookie |
149
+ | `onAuthEvent(event, handler)` | Typed subscription to the auth lifecycle (`authenticated`, `unauthorized`, `sessionLost`, `requestFailed`, `tokenRefreshed`, `loggedOut`) — returns the unsubscribe function |
150
+ | `tryAutoAuthentication()` | Probes a protected endpoint for server-side auto-authentication (OIDC, IIS Negotiate) — used by `login()` in `sso`, `unknown` and `bearer` modes. Never throws |
151
+ | `isRedirectPending()` | Whether an OAuth/SAML redirect is in flight and has not established a session yet |
152
+ | `tryOAuthAuthentication()` / `trySAMLAuthentication()` | Redirect to the configured identity provider (with a one-shot redirect-loop guard) |
153
+ | `emitAuthenticatedEvent(bool)` | Dispatches the DOM `'authenticated'` CustomEvent (on `document`, bubbles to `window`) |
143
154
 
144
155
  > `getJWToken` is **`@deprecated`**: it is an alias of `requestWebTokenSession`, renamed because the
145
156
  > old name suggested it returned the JWT. It will be removed in the next major.
@@ -147,8 +158,7 @@ Full auth lifecycle — from first handshake to logout.
147
158
  The authentication layer is configurable via `setGlobalConfig({ auth: { … } })` (`AuthOptions`):
148
159
  `timeoutMs`, `probeEndpoint`, injectable `storage`/`logger`/`fetch`, the requests' `credentials`
149
160
  mode, and `recoverFromUnauthorized` — the hook that re-establishes a session after a 401 and gets
150
- the request replayed once. See [Authentication](./docs/auth/index.mdx) and
151
- [Handling 401](./docs/auth/handling-401.mdx).
161
+ the request replayed once.
152
162
 
153
163
  ```typescript
154
164
  import { isAuthenticated, login, logout } from "@sinequa/atomic";
@@ -162,7 +172,10 @@ if (!isAuthenticated()) {
162
172
  const okWithCredentials = await login({ username: "alice", password: "s3cr3t" });
163
173
  }
164
174
 
165
- const redirectUrl = await logout();
175
+ // Resolves to the provider's `logoutUrl` (to navigate to), or `undefined` when there is none —
176
+ // the cookie deletion failed (logged, not thrown) or impersonation is active (cookie left alone).
177
+ const logoutUrl = await logout();
178
+ if (logoutUrl) window.location.assign(logoutUrl);
166
179
  ```
167
180
 
168
181
  #### Auth mode (`AuthMode`) — **2.0**
@@ -189,7 +202,6 @@ const kind = globalConfig.authMode?.kind; // 'credentials' | 'sso' | 'oauth' | '
189
202
  > **`@deprecated` read-only getters** derived from `authMode`. Reading them still works, and writing
190
203
  > them through `setGlobalConfig({ useSSO: true })` is translated into the matching `authMode` — so
191
204
  > existing code keeps working. Prefer `authMode.kind` (and the `AuthMode.*` constructors) in new code.
192
- > Full upgrade notes: [Migrating from 1.x](./docs/reference/migrating-from-1x.mdx).
193
205
 
194
206
  ---
195
207
 
@@ -220,7 +232,7 @@ import {
220
232
  ```
221
233
 
222
234
  Auditing is not a `fetch*` function: use `Audit.notify(...)`, plus the record decorators
223
- `addAuditAdditionalInfo`, `addSessionId` and `addUrl`. See [Audit](./docs/integration/audit.mdx).
235
+ `addAuditAdditionalInfo`, `addSessionId` and `addUrl`.
224
236
 
225
237
  ### Web API — v2
226
238
 
@@ -233,9 +245,6 @@ import {
233
245
  } from "@sinequa/atomic";
234
246
  ```
235
247
 
236
- The full endpoint list — with the `client.api` method and the free function for each — is in
237
- [Endpoints](./docs/reference/endpoints.mdx).
238
-
239
248
  ---
240
249
 
241
250
  ### Helpers
@@ -256,8 +265,6 @@ import {
256
265
  } from "@sinequa/atomic";
257
266
  ```
258
267
 
259
- More in [Helpers](./docs/reference/helpers.mdx).
260
-
261
268
  #### Filter builder
262
269
 
263
270
  Build structured `query.filters` without hand-writing filter objects. Combinators ignore falsy
@@ -281,7 +288,7 @@ Leaf operators: `eq` · `neq` · `gt` · `gte` · `lt` · `lte` · `like` · `co
281
288
  `filter.distribution(field, item.value)` handles the one case the leaf operators cannot: a
282
289
  **distribution** aggregation item (a date or size bucket), whose `value` is an expression the server
283
290
  built rather than a value. Passing it to `filter.eq` makes the backend answer
284
- `500 — "Field type error"`. See [Filters](./docs/search/filters.mdx).
291
+ `500 — "Field type error"`.
285
292
 
286
293
  ---
287
294
 
@@ -299,9 +306,11 @@ import {
299
306
  } from "@sinequa/atomic";
300
307
  ```
301
308
 
302
- > The library's verbosity is set with `configureLogger({ level: LogLevel.DEBUG })`, **not** through
303
- > a configuration key. See [Logging](./docs/integration/logging.mdx) and
304
- > [URL state](./docs/search/url-state.mdx).
309
+ > The library's verbosity is set with `configureLogger({ level: LogLevel.DEBUG })`. `LogLevel` is
310
+ > `DEBUG` (0), `INFO` (1), `WARN` (2), `ERROR` (3), `NONE` (4); the default is `INFO`.
311
+ > `setGlobalConfig({ logLevel })` applies it too (it forwards to `configureLogger({ level })`), but
312
+ > `createAtomicClient({ logLevel })` and `client.configure({ logLevel })` do **not**: the logger is
313
+ > process-wide, so a client scopes its logging through `auth.logger` instead.
305
314
 
306
315
  ---
307
316
 
@@ -336,8 +345,6 @@ import type {
336
345
  } from "@sinequa/atomic";
337
346
  ```
338
347
 
339
- Which type comes back from which call: [Type map](./docs/reference/types-map.mdx).
340
-
341
348
  ---
342
349
 
343
350
  ## Configuration
@@ -363,17 +370,38 @@ when they were not provided, then resolves the `authMode` from the server's pre-
363
370
 
364
371
  > `appInitializerFn` is a **`@deprecated`** alias of `initializeAppConfig` — use the latter.
365
372
 
366
- Three declared keys are read by nothing, and setting them has no effect: `logLevel` (set the level
367
- with `configureLogger({ level })`), `loginPath` (routing is yours — use `recoverFromUnauthorized` or
368
- the `unauthorized` event) and `createRoutes`. Every key, with its default:
369
- [Configuration keys](./docs/reference/config-keys.mdx).
373
+ `logLevel` is applied by `setGlobalConfig({ logLevel })` only (see the logger note above: a client
374
+ created with `createAtomicClient` ignores it). Two declared keys are inert in `@sinequa/atomic` and
375
+ `@deprecated` there: `loginPath` (routing is yours — use `recoverFromUnauthorized` or the
376
+ `unauthorized` event) and `createRoutes`. They are still **read by `@sinequa/atomic-angular`**, so
377
+ leave them alone in an Angular application.
378
+
379
+ ---
380
+
381
+ ## AI agent skill
382
+
383
+ An [agent skill](https://skills.sh) teaches coding agents (Claude Code, Cursor, Copilot...) how to use `@sinequa/atomic` correctly: setup, authentication, search, SPFx, common pitfalls. Install it from the public Sinequa Mint repository (`sinequa/sba-mint`):
384
+
385
+ ```bash
386
+ npx skills add sinequa/sba-mint --skill atomic
387
+ ```
388
+
389
+ The skill is also versioned with the library in `skills/atomic` (internal GitLab: `npx skills add https://gitlab.chapsvision.in/sinequa/rnd/sba-atomic-js.git --skill atomic`).
370
390
 
371
391
  ---
372
392
 
373
393
  ## Releases
374
394
 
375
- What changed since **2.0.0**, newest first. The complete, per-change notes — with migration details —
376
- are in [`CHANGELOG.md`](./CHANGELOG.md).
395
+ What changed since **2.0.0**, newest first.
396
+
397
+ ### 2.11
398
+
399
+ - `patchUserProfile()` now sends the **bare value** of the property as the PATCH body (`null` when it
400
+ is missing) instead of the whole profile, as the endpoint expects. Its signature is unchanged, but
401
+ it needs a backend that supports this: an older one answers `400`. `patch()` and
402
+ `patchWithContext()` are unaffected.
403
+ - `patchUserProfile()` and `deleteUserProfileProperty()` throw before sending anything when
404
+ `userProfile.data.id` is missing, and percent-encode the user id, category and property name.
377
405
 
378
406
  ### 2.10
379
407
 
@@ -463,7 +491,6 @@ names are removed without aliases:
463
491
  a lost session; the OAuth/SAML redirect-loop guard really stops the loop; a 401 trailing behind a
464
492
  `logout()` no longer signs the user back in; created clients use the SPFx `AadHttpClient`; clear
465
493
  errors and complete HTTP error bodies.
466
- - Console logs now point at the calling code instead of `logger.ts`.
467
494
 
468
495
  ### 2.2
469
496
 
@@ -489,53 +516,8 @@ names are removed without aliases:
489
516
 
490
517
  ---
491
518
 
492
- ## Testing
493
-
494
- ```bash
495
- npm test # vitest, watch mode
496
- npm test -- --watch=false # single run (what CI does)
497
- ```
498
-
499
- `--ui` is not available out of the box: `@vitest/ui` is an optional peer of vitest and is not
500
- installed here — `npm i -D @vitest/ui` first.
501
-
502
- Coverage is deepest on authentication (`AuthMode` detection, OAuth, SAML, credentials, tokens,
503
- 401 recovery) and on the HTTP helpers. On the endpoints it is targeted rather than exhaustive —
504
- `fetchQuery`, `fetchAggregation`, `fetchPrincipal`, `searchPrincipals`, `fetchApp` and the
505
- agent-workspace workspaces. Also covered: the filter builder, metadata parsing, column resolution,
506
- pagination, date utilities and the SQL value helper.
507
-
508
- Injecting `fetch`, `storage` and `logger` through the configuration is what lets a test avoid module
509
- mocks — see [Testing](./docs/integration/testing.mdx).
510
-
511
- ---
512
-
513
- ## Development
514
-
515
- ```bash
516
- npm run build # production build (vite + tsc)
517
- npm run watch # rebuild on change
518
- npm run dev:pack # build + pack locally
519
- ```
520
-
521
- ---
522
-
523
- ## Contributing
524
-
525
- 1. All tests must pass.
526
- 2. Lint and format with Vite+ (Oxlint/Oxfmt) — `npx vp check --fix`
527
- 3. Follow [Conventional Commits](https://www.conventionalcommits.org/).
528
- 4. Any change touching `src/` needs a **changeset** in the same commit (`npm run changeset`, then
529
- `npm run changeset:status` to check) — the `changeset-check` CI job blocks the merge without one.
530
- Add `#skip-changeset` to the MR title for a change that does not touch the published library.
531
- Full guide, with examples: [`CONTRIBUTING-changesets.md`](./CONTRIBUTING-changesets.md).
532
- 5. New public API → add tests + JSDoc, and export it from `src/index.ts` (a helper that is written
533
- and tested but not re-exported from the barrel is not part of the public API).
534
-
535
- ---
536
-
537
519
  <div align="center">
538
520
 
539
- Built for the [Sinequa](https://www.sinequa.com/) ecosystem · [Report an issue](https://gitlab.chapsvision.in/sinequa/rnd/sba-atomic-js/-/issues)
521
+ Built for the [Sinequa](https://www.sinequa.com/) ecosystem
540
522
 
541
523
  </div>
package/dist/atomic.cjs CHANGED
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-DwKhKgxj.cjs");exports.API=e._t,exports.ApiError=e.qn,exports.Audit=e.At,exports.AuditEventType=e.in,exports.AuthMode=e.ir,exports.DEFAULT_AGGREGATION_COUNT=e.on,exports.DidYouMeanKind=e.en,exports.EngineType=e.rn,exports.EngineTypeModifier=e.nn,exports.LogLevel=e.ur,exports.MINIMUM_COMPATIBLE_SERVER_API_VERSION=e.tn,exports.RFMDisplay=e.$t,exports.ServerError=e.Wn,exports.TimeoutError=e.Ln,exports.UnauthorizedError=e.Kn,exports.addAuditAdditionalInfo=e.jt,exports.addConcepts=e.b,exports.addSessionId=e.Mt,exports.addUrl=e.Nt,exports.addWorkspaceDocuments=e.W,exports.aggItemRegex=e.D,exports.aggregationHasMore=e.sn,exports.aggregationItemStrictCompare=e.O,exports.appInitializerFn=e.ln,exports.applyConfig=e.tr,exports.assertNever=e.On,exports.bisect=e.E,exports.buildPathsAndLevels=e.mt,exports.clearSessionTokens=e.xn,exports.configureLogger=e.dr,exports.createAtomicClient=e.F,exports.createHeaders=e.Jn,exports.createHeadersWithContext=e.Yn,exports.createTimeoutController=e.In,exports.createUserProfile=e.R,exports.createWorkspace=e.G,Object.defineProperty(exports,"debug",{enumerable:!0,get:function(){return e.fr}}),exports.del=e._n,exports.delWithContext=e.vn,exports.deleteUserProfileProperty=e.z,exports.deleteUserSettings=e.$,exports.deleteWebTokenCookie=e.Cn,exports.deleteWorkspaceDocuments=e.K,exports.deleteWorkspaces=e.q,exports.detectAuthMode=e.Nn,exports.emitAuthenticatedEvent=e.Zn,Object.defineProperty(exports,"error",{enumerable:!0,get:function(){return e.pr}}),exports.escapeExpr=e.Pt,exports.expiresSoon=e.n,exports.extraColumns=e.Zt,exports.fetchAggregation=e.kt,exports.fetchApp=e.un,exports.fetchAppPreLogin=e.dn,exports.fetchBulkQuery=e.ht,exports.fetchChangePassword=e.Q,exports.fetchDataset=e.Et,exports.fetchDatasetList=e.Dt,exports.fetchDatasets=e.Ot,exports.fetchLabels=e.wt,exports.fetchPreview=e.St,exports.fetchPreviewUrl=e.Ct,exports.fetchPrincipal=e.vt,exports.fetchPrincipalList=e.yt,exports.fetchPrincipalUserid=e.bt,exports.fetchPrincipalUserids=e.xt,exports.fetchPrincipalsByIds=e.ut,exports.fetchQuery=e.gt,exports.fetchQueryExport=e.pt,exports.fetchQueryIntent=e.ft,exports.fetchSendPasswordResetEmail=e.H,exports.fetchSimilarDocuments=e.lt,exports.fetchSponsoredLinks=e.ct,exports.fetchSuggest=e.it,exports.fetchSuggestField=e.at,exports.fetchSuggestQuery=e.ot,exports.fetchTextChunks=e.rt,exports.fetchUploadStatus=e.U,exports.fetchUserProfile=e.B,exports.fetchUserSettings=e.et,exports.fetchVersion=e.L,exports.filter=e.Jt,exports.flattenLegacyFilterValues=e.Yt,exports.get=e.jn,exports.getConcepts=e.x,exports.getCsrfToken=e.An,exports.getDateMask=e.k,exports.getDefaultClient=e.I,exports.getFiltersFromURI=e.s,exports.getFiltersFromUrl=e.c,exports.getHelpIndexUrl=e.a,exports.getIdFromUrl=e.l,exports.getJWToken=e.En,exports.getMaskedDateBounds=e.A,exports.getMetadata=e.Kt,exports.getMetadataWithValues=e.qt,exports.getOffsetFromDates=e.v,exports.getQueryPageFromUrl=e.u,exports.getQueryParamsFromUrl=e.d,exports.getQueryTabFromUrl=e.f,exports.getQueryTextFromUrl=e.p,exports.getRelativeDate=e.y,exports.getTime=e.Ft,exports.getToken=e.Xn,exports.getUrlParamsFromQueryParams=e.m,exports.getWithContext=e.Mn,exports.getWorkspace=e.J,exports.globalConfig=e.nr,exports.guid=e.It,exports.handleResponse=e.Hn,exports.handleResponseWithContext=e.Un,exports.hasSession=e.kn,exports.hashString=e.Lt,Object.defineProperty(exports,"info",{enumerable:!0,get:function(){return e.mr}}),exports.initializeAppConfig=e.fn,exports.isArrayBuffer=e.Rt,exports.isAuthenticated=e.yn,exports.isBlob=e.zt,exports.isDate=e.Bt,exports.isExpired=e.r,exports.isExternalAuthMode=e.ar,exports.isJsonable=e.Vt,exports.isNotInputEvent=e._,exports.isObject=e.Ht,exports.isRedirectPending=e.bn,exports.isString=e.Ut,exports.labels=e.Tt,exports.legacyBooleansToAuthMode=e.or,exports.legacyFilterToFilter=e.Xt,exports.listWorkspaceDocuments=e.Y,exports.listWorkspaces=e.X,exports.login=e.wn,exports.logout=e.Sn,exports.makeColumn=e.Qt,exports.notify=e.g,exports.onAuthEvent=e.gr,exports.openParentNodes=e.j,exports.parseText=e.S,exports.parseValueAndOperatorFromItem=e.M,exports.patch=e.hn,exports.patchUserProfile=e.V,exports.patchUserSettings=e.tt,exports.patchWithContext=e.gn,exports.post=e.Rn,exports.postWithContext=e.zn,exports.put=e.pn,exports.putWithContext=e.mn,exports.queryParamsFromUrl=e.h,exports.removeConcept=e.C,exports.removeConcepts=e.w,exports.requestWebTokenSession=e.Dn,exports.resolveAggregationCount=e.cn,exports.resolveBearerToken=e.sr,exports.resolveNoAutoAuthentication=e.Bn,exports.resolveNoAutoAuthenticationWithContext=e.Vn,exports.resolveOAuthProvider=e.cr,exports.resolveSAMLProvider=e.lr,exports.resolveToColumnName=e.an,exports.resultPages=e.Gt,exports.rewriteText=e.T,exports.saveUserSettings=e.nt,exports.searchPrincipals=e.dt,exports.setGlobalConfig=e.rr,exports.setToken=e.Gn,exports.sha512=e.Wt,exports.suggestionsToTreeAggregationNodes=e.N,exports.sysLang=e.o,exports.toDate=e.i,exports.toSqlValue=e.st,exports.translateAggregationToDateOptions=e.P,exports.tryAutoAuthentication=e.Tn,exports.tryOAuthAuthentication=e.Fn,exports.trySAMLAuthentication=e.Pn,exports.updateWorkspace=e.Z,Object.defineProperty(exports,"warn",{enumerable:!0,get:function(){return e.hr}}),exports.withRetry=e.t;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-CCjB0b1J.cjs");exports.API=e.vt,exports.ApiError=e.Jn,exports.Audit=e.jt,exports.AuditEventType=e.an,exports.AuthMode=e.ar,exports.DEFAULT_AGGREGATION_COUNT=e.sn,exports.DidYouMeanKind=e.tn,exports.EngineType=e.in,exports.EngineTypeModifier=e.rn,exports.LogLevel=e.dr,exports.MINIMUM_COMPATIBLE_SERVER_API_VERSION=e.nn,exports.RFMDisplay=e.en,exports.ServerError=e.Gn,exports.TimeoutError=e.Rn,exports.UnauthorizedError=e.qn,exports.addAuditAdditionalInfo=e.Mt,exports.addConcepts=e.b,exports.addSessionId=e.Nt,exports.addUrl=e.Pt,exports.addWorkspaceDocuments=e.G,exports.aggItemRegex=e.D,exports.aggregationHasMore=e.cn,exports.aggregationItemStrictCompare=e.O,exports.appInitializerFn=e.un,exports.applyConfig=e.nr,exports.assertNever=e.kn,exports.bisect=e.E,exports.buildPathsAndLevels=e.ht,exports.clearSessionTokens=e.Sn,exports.configureLogger=e.fr,exports.createAtomicClient=e.F,exports.createHeaders=e.Yn,exports.createHeadersWithContext=e.Xn,exports.createTimeoutController=e.Ln,exports.createUserProfile=e.R,exports.createWorkspace=e.K,Object.defineProperty(exports,"debug",{enumerable:!0,get:function(){return e.pr}}),exports.del=e.vn,exports.delWithContext=e.yn,exports.deleteUserProfileProperty=e.z,exports.deleteUserSettings=e.et,exports.deleteWebTokenCookie=e.wn,exports.deleteWorkspaceDocuments=e.q,exports.deleteWorkspaces=e.J,exports.detectAuthMode=e.Pn,exports.emitAuthenticatedEvent=e.Qn,Object.defineProperty(exports,"error",{enumerable:!0,get:function(){return e.mr}}),exports.escapeExpr=e.Ft,exports.expiresSoon=e.n,exports.extraColumns=e.Qt,exports.fetchAggregation=e.At,exports.fetchApp=e.dn,exports.fetchAppPreLogin=e.fn,exports.fetchBulkQuery=e.gt,exports.fetchChangePassword=e.$,exports.fetchDataset=e.Dt,exports.fetchDatasetList=e.Ot,exports.fetchDatasets=e.kt,exports.fetchLabels=e.Tt,exports.fetchPreview=e.Ct,exports.fetchPreviewUrl=e.wt,exports.fetchPrincipal=e.yt,exports.fetchPrincipalList=e.bt,exports.fetchPrincipalUserid=e.xt,exports.fetchPrincipalUserids=e.St,exports.fetchPrincipalsByIds=e.dt,exports.fetchQuery=e._t,exports.fetchQueryExport=e.mt,exports.fetchQueryIntent=e.pt,exports.fetchSendPasswordResetEmail=e.U,exports.fetchSimilarDocuments=e.ut,exports.fetchSponsoredLinks=e.lt,exports.fetchSuggest=e.at,exports.fetchSuggestField=e.ot,exports.fetchSuggestQuery=e.st,exports.fetchTextChunks=e.it,exports.fetchUploadStatus=e.W,exports.fetchUserProfile=e.B,exports.fetchUserProfileCustomData=e.V,exports.fetchUserSettings=e.tt,exports.fetchVersion=e.L,exports.filter=e.Yt,exports.flattenLegacyFilterValues=e.Xt,exports.get=e.Mn,exports.getConcepts=e.x,exports.getCsrfToken=e.jn,exports.getDateMask=e.k,exports.getDefaultClient=e.I,exports.getFiltersFromURI=e.s,exports.getFiltersFromUrl=e.c,exports.getHelpIndexUrl=e.a,exports.getIdFromUrl=e.l,exports.getJWToken=e.Dn,exports.getMaskedDateBounds=e.A,exports.getMetadata=e.qt,exports.getMetadataWithValues=e.Jt,exports.getOffsetFromDates=e.v,exports.getQueryPageFromUrl=e.u,exports.getQueryParamsFromUrl=e.d,exports.getQueryTabFromUrl=e.f,exports.getQueryTextFromUrl=e.p,exports.getRelativeDate=e.y,exports.getTime=e.It,exports.getToken=e.Zn,exports.getUrlParamsFromQueryParams=e.m,exports.getWithContext=e.Nn,exports.getWorkspace=e.Y,exports.globalConfig=e.rr,exports.guid=e.Lt,exports.handleResponse=e.Un,exports.handleResponseWithContext=e.Wn,exports.hasSession=e.An,exports.hashString=e.Rt,Object.defineProperty(exports,"info",{enumerable:!0,get:function(){return e.hr}}),exports.initializeAppConfig=e.pn,exports.isArrayBuffer=e.zt,exports.isAuthenticated=e.bn,exports.isBlob=e.Bt,exports.isDate=e.Vt,exports.isExpired=e.r,exports.isExternalAuthMode=e.or,exports.isJsonable=e.Ht,exports.isNotInputEvent=e._,exports.isObject=e.Ut,exports.isRedirectPending=e.xn,exports.isString=e.Wt,exports.labels=e.Et,exports.legacyBooleansToAuthMode=e.sr,exports.legacyFilterToFilter=e.Zt,exports.listWorkspaceDocuments=e.X,exports.listWorkspaces=e.Z,exports.login=e.Tn,exports.logout=e.Cn,exports.makeColumn=e.$t,exports.notify=e.g,exports.onAuthEvent=e._r,exports.openParentNodes=e.j,exports.parseText=e.S,exports.parseValueAndOperatorFromItem=e.M,exports.patch=e.gn,exports.patchUserProfile=e.H,exports.patchUserSettings=e.nt,exports.patchWithContext=e._n,exports.post=e.zn,exports.postWithContext=e.Bn,exports.put=e.mn,exports.putWithContext=e.hn,exports.queryParamsFromUrl=e.h,exports.removeConcept=e.C,exports.removeConcepts=e.w,exports.requestWebTokenSession=e.On,exports.resolveAggregationCount=e.ln,exports.resolveBearerToken=e.cr,exports.resolveNoAutoAuthentication=e.Vn,exports.resolveNoAutoAuthenticationWithContext=e.Hn,exports.resolveOAuthProvider=e.lr,exports.resolveSAMLProvider=e.ur,exports.resolveToColumnName=e.on,exports.resultPages=e.Kt,exports.rewriteText=e.T,exports.saveUserSettings=e.rt,exports.searchPrincipals=e.ft,exports.setGlobalConfig=e.ir,exports.setToken=e.Kn,exports.sha512=e.Gt,exports.suggestionsToTreeAggregationNodes=e.N,exports.sysLang=e.o,exports.toDate=e.i,exports.toSqlValue=e.ct,exports.translateAggregationToDateOptions=e.P,exports.tryAutoAuthentication=e.En,exports.tryOAuthAuthentication=e.In,exports.trySAMLAuthentication=e.Fn,exports.updateWorkspace=e.Q,Object.defineProperty(exports,"warn",{enumerable:!0,get:function(){return e.gr}}),exports.withRetry=e.t;
package/dist/atomic.js CHANGED
@@ -1 +1 @@
1
- export { _t as API, qn as ApiError, At as Audit, in as AuditEventType, ir as AuthMode, on as DEFAULT_AGGREGATION_COUNT, en as DidYouMeanKind, rn as EngineType, nn as EngineTypeModifier, ur as LogLevel, tn as MINIMUM_COMPATIBLE_SERVER_API_VERSION, $t as RFMDisplay, Wn as ServerError, Ln as TimeoutError, Kn as UnauthorizedError, jt as addAuditAdditionalInfo, b as addConcepts, Mt as addSessionId, Nt as addUrl, W as addWorkspaceDocuments, D as aggItemRegex, sn as aggregationHasMore, O as aggregationItemStrictCompare, ln as appInitializerFn, tr as applyConfig, On as assertNever, E as bisect, mt as buildPathsAndLevels, xn as clearSessionTokens, dr as configureLogger, F as createAtomicClient, Jn as createHeaders, Yn as createHeadersWithContext, In as createTimeoutController, R as createUserProfile, G as createWorkspace, fr as debug, _n as del, vn as delWithContext, z as deleteUserProfileProperty, $ as deleteUserSettings, Cn as deleteWebTokenCookie, K as deleteWorkspaceDocuments, q as deleteWorkspaces, Nn as detectAuthMode, Zn as emitAuthenticatedEvent, pr as error, Pt as escapeExpr, n as expiresSoon, Zt as extraColumns, kt as fetchAggregation, un as fetchApp, dn as fetchAppPreLogin, ht as fetchBulkQuery, Q as fetchChangePassword, Et as fetchDataset, Dt as fetchDatasetList, Ot as fetchDatasets, wt as fetchLabels, St as fetchPreview, Ct as fetchPreviewUrl, vt as fetchPrincipal, yt as fetchPrincipalList, bt as fetchPrincipalUserid, xt as fetchPrincipalUserids, ut as fetchPrincipalsByIds, gt as fetchQuery, pt as fetchQueryExport, ft as fetchQueryIntent, H as fetchSendPasswordResetEmail, lt as fetchSimilarDocuments, ct as fetchSponsoredLinks, it as fetchSuggest, at as fetchSuggestField, ot as fetchSuggestQuery, rt as fetchTextChunks, U as fetchUploadStatus, B as fetchUserProfile, et as fetchUserSettings, L as fetchVersion, Jt as filter, Yt as flattenLegacyFilterValues, jn as get, x as getConcepts, An as getCsrfToken, k as getDateMask, I as getDefaultClient, s as getFiltersFromURI, c as getFiltersFromUrl, a as getHelpIndexUrl, l as getIdFromUrl, En as getJWToken, A as getMaskedDateBounds, Kt as getMetadata, qt as getMetadataWithValues, v as getOffsetFromDates, u as getQueryPageFromUrl, d as getQueryParamsFromUrl, f as getQueryTabFromUrl, p as getQueryTextFromUrl, y as getRelativeDate, Ft as getTime, Xn as getToken, m as getUrlParamsFromQueryParams, Mn as getWithContext, J as getWorkspace, nr as globalConfig, It as guid, Hn as handleResponse, Un as handleResponseWithContext, kn as hasSession, Lt as hashString, mr as info, fn as initializeAppConfig, Rt as isArrayBuffer, yn as isAuthenticated, zt as isBlob, Bt as isDate, r as isExpired, ar as isExternalAuthMode, Vt as isJsonable, _ as isNotInputEvent, Ht as isObject, bn as isRedirectPending, Ut as isString, Tt as labels, or as legacyBooleansToAuthMode, Xt as legacyFilterToFilter, Y as listWorkspaceDocuments, X as listWorkspaces, wn as login, Sn as logout, Qt as makeColumn, g as notify, gr as onAuthEvent, j as openParentNodes, S as parseText, M as parseValueAndOperatorFromItem, hn as patch, V as patchUserProfile, tt as patchUserSettings, gn as patchWithContext, Rn as post, zn as postWithContext, pn as put, mn as putWithContext, h as queryParamsFromUrl, C as removeConcept, w as removeConcepts, Dn as requestWebTokenSession, cn as resolveAggregationCount, sr as resolveBearerToken, Bn as resolveNoAutoAuthentication, Vn as resolveNoAutoAuthenticationWithContext, cr as resolveOAuthProvider, lr as resolveSAMLProvider, an as resolveToColumnName, Gt as resultPages, T as rewriteText, nt as saveUserSettings, dt as searchPrincipals, rr as setGlobalConfig, Gn as setToken, Wt as sha512, N as suggestionsToTreeAggregationNodes, o as sysLang, i as toDate, st as toSqlValue, P as translateAggregationToDateOptions, Tn as tryAutoAuthentication, Fn as tryOAuthAuthentication, Pn as trySAMLAuthentication, Z as updateWorkspace, hr as warn, t as withRetry } from "./src-bQIJ_J2j.js";
1
+ export { vt as API, Jn as ApiError, jt as Audit, an as AuditEventType, ar as AuthMode, sn as DEFAULT_AGGREGATION_COUNT, tn as DidYouMeanKind, in as EngineType, rn as EngineTypeModifier, dr as LogLevel, nn as MINIMUM_COMPATIBLE_SERVER_API_VERSION, en as RFMDisplay, Gn as ServerError, Rn as TimeoutError, qn as UnauthorizedError, Mt as addAuditAdditionalInfo, b as addConcepts, Nt as addSessionId, Pt as addUrl, G as addWorkspaceDocuments, D as aggItemRegex, cn as aggregationHasMore, O as aggregationItemStrictCompare, un as appInitializerFn, nr as applyConfig, kn as assertNever, E as bisect, ht as buildPathsAndLevels, Sn as clearSessionTokens, fr as configureLogger, F as createAtomicClient, Yn as createHeaders, Xn as createHeadersWithContext, Ln as createTimeoutController, R as createUserProfile, K as createWorkspace, pr as debug, vn as del, yn as delWithContext, z as deleteUserProfileProperty, et as deleteUserSettings, wn as deleteWebTokenCookie, q as deleteWorkspaceDocuments, J as deleteWorkspaces, Pn as detectAuthMode, Qn as emitAuthenticatedEvent, mr as error, Ft as escapeExpr, n as expiresSoon, Qt as extraColumns, At as fetchAggregation, dn as fetchApp, fn as fetchAppPreLogin, gt as fetchBulkQuery, $ as fetchChangePassword, Dt as fetchDataset, Ot as fetchDatasetList, kt as fetchDatasets, Tt as fetchLabels, Ct as fetchPreview, wt as fetchPreviewUrl, yt as fetchPrincipal, bt as fetchPrincipalList, xt as fetchPrincipalUserid, St as fetchPrincipalUserids, dt as fetchPrincipalsByIds, _t as fetchQuery, mt as fetchQueryExport, pt as fetchQueryIntent, U as fetchSendPasswordResetEmail, ut as fetchSimilarDocuments, lt as fetchSponsoredLinks, at as fetchSuggest, ot as fetchSuggestField, st as fetchSuggestQuery, it as fetchTextChunks, W as fetchUploadStatus, B as fetchUserProfile, V as fetchUserProfileCustomData, tt as fetchUserSettings, L as fetchVersion, Yt as filter, Xt as flattenLegacyFilterValues, Mn as get, x as getConcepts, jn as getCsrfToken, k as getDateMask, I as getDefaultClient, s as getFiltersFromURI, c as getFiltersFromUrl, a as getHelpIndexUrl, l as getIdFromUrl, Dn as getJWToken, A as getMaskedDateBounds, qt as getMetadata, Jt as getMetadataWithValues, v as getOffsetFromDates, u as getQueryPageFromUrl, d as getQueryParamsFromUrl, f as getQueryTabFromUrl, p as getQueryTextFromUrl, y as getRelativeDate, It as getTime, Zn as getToken, m as getUrlParamsFromQueryParams, Nn as getWithContext, Y as getWorkspace, rr as globalConfig, Lt as guid, Un as handleResponse, Wn as handleResponseWithContext, An as hasSession, Rt as hashString, hr as info, pn as initializeAppConfig, zt as isArrayBuffer, bn as isAuthenticated, Bt as isBlob, Vt as isDate, r as isExpired, or as isExternalAuthMode, Ht as isJsonable, _ as isNotInputEvent, Ut as isObject, xn as isRedirectPending, Wt as isString, Et as labels, sr as legacyBooleansToAuthMode, Zt as legacyFilterToFilter, X as listWorkspaceDocuments, Z as listWorkspaces, Tn as login, Cn as logout, $t as makeColumn, g as notify, _r as onAuthEvent, j as openParentNodes, S as parseText, M as parseValueAndOperatorFromItem, gn as patch, H as patchUserProfile, nt as patchUserSettings, _n as patchWithContext, zn as post, Bn as postWithContext, mn as put, hn as putWithContext, h as queryParamsFromUrl, C as removeConcept, w as removeConcepts, On as requestWebTokenSession, ln as resolveAggregationCount, cr as resolveBearerToken, Vn as resolveNoAutoAuthentication, Hn as resolveNoAutoAuthenticationWithContext, lr as resolveOAuthProvider, ur as resolveSAMLProvider, on as resolveToColumnName, Kt as resultPages, T as rewriteText, rt as saveUserSettings, ft as searchPrincipals, ir as setGlobalConfig, Kn as setToken, Gt as sha512, N as suggestionsToTreeAggregationNodes, o as sysLang, i as toDate, ct as toSqlValue, P as translateAggregationToDateOptions, En as tryAutoAuthentication, In as tryOAuthAuthentication, Fn as trySAMLAuthentication, Q as updateWorkspace, gr as warn, t as withRetry } from "./src-CK3j-Qz_.js";
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../client/atomic-context";
1
+ import { type AtomicContext } from "../client/atomic-context.js";
2
2
  /**
3
3
  * Default timeout in milliseconds for all authentication network requests.
4
4
  * Override it per application via `setGlobalConfig({ auth: { timeoutMs } })`.
@@ -1,5 +1,5 @@
1
- import type { ApiError } from "../../web-api/helpers/errors/api-error";
2
- import type { UnauthorizedError } from "../../web-api/helpers/errors/unauthorized-error";
1
+ import type { ApiError } from "../../web-api/helpers/errors/api-error.js";
2
+ import type { UnauthorizedError } from "../../web-api/helpers/errors/unauthorized-error.js";
3
3
  /**
4
4
  * Why a 401 was left to reach its caller (payload of the `sessionLost` event):
5
5
  *
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Notifies the subscribers of a context that the authentication state changed, and mirrors it as a
4
4
  * DOM `authenticated` CustomEvent.
@@ -1,3 +1,3 @@
1
- export { type AuthEventMap, type AuthEventName, onAuthEvent, type SessionLostReason, type Unsubscribe, } from "./auth-events";
2
- export { emitAuthenticatedEvent } from "./emit-authenticated-event";
1
+ export { type AuthEventMap, type AuthEventName, onAuthEvent, type SessionLostReason, type Unsubscribe, } from "./auth-events.js";
2
+ export { emitAuthenticatedEvent } from "./emit-authenticated-event.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
- export { type AuthEventMap, type AuthEventName, emitAuthenticatedEvent, onAuthEvent, type SessionLostReason, type Unsubscribe, } from "./events";
2
- export { tryOAuthAuthentication, trySAMLAuthentication } from "./providers";
3
- export { clearSessionTokens, detectAuthMode, hasSession, isAuthenticated, isRedirectPending, login, logout, tryAutoAuthentication, } from "./session";
4
- export { deleteWebTokenCookie, getCsrfToken, getJWToken, getToken, requestWebTokenSession, setToken, } from "./tokens";
1
+ export { type AuthEventMap, type AuthEventName, emitAuthenticatedEvent, onAuthEvent, type SessionLostReason, type Unsubscribe, } from "./events/index.js";
2
+ export { tryOAuthAuthentication, trySAMLAuthentication } from "./providers/index.js";
3
+ export { clearSessionTokens, detectAuthMode, hasSession, isAuthenticated, isRedirectPending, login, logout, tryAutoAuthentication, } from "./session/index.js";
4
+ export { deleteWebTokenCookie, getCsrfToken, getJWToken, getToken, requestWebTokenSession, setToken, } from "./tokens/index.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1,3 +1,3 @@
1
- export { tryOAuthAuthentication } from "./oauth-authentication";
2
- export { trySAMLAuthentication } from "./saml-authentication";
1
+ export { tryOAuthAuthentication } from "./oauth-authentication.js";
2
+ export { trySAMLAuthentication } from "./saml-authentication.js";
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /** @see tryOAuthAuthentication */
3
3
  export declare const tryOAuthAuthenticationWithContext: (ctx: AtomicContext) => Promise<{
4
4
  redirectUrl: string;
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /** What differs between the OAuth and the SAML flows — everything else is shared. */
3
3
  declare const PROVIDER_KINDS: {
4
4
  readonly oauth: {
@@ -1 +1 @@
1
- {"version":3,"file":"redirect-to-identity-provider.d.ts","sourceRoot":"","sources":["../../../src/authentication/providers/redirect-to-identity-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,6BAA6B,CAAC;AAKrC,qFAAqF;AACrF,QAAA,MAAM,cAAc;;;;;;;;;;;CAWV,CAAC;AAEX,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,OAAO,cAAc,CAAC;IAClC,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,aAAa,EAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,+BAA+B,GAClD,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAiDlC"}
1
+ {"version":3,"file":"redirect-to-identity-provider.d.ts","sourceRoot":"","sources":["../../../src/authentication/providers/redirect-to-identity-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAInB,MAAM,6BAA6B,CAAC;AAKrC,qFAAqF;AACrF,QAAA,MAAM,cAAc;;;;;;;;;;;CAWV,CAAC;AAEX,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,MAAM,OAAO,cAAc,CAAC;IAClC,gGAAgG;IAChG,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,GAAG,EAAE,aAAa,EAClB,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,+BAA+B,GAClD,OAAO,CAAC;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC,CAmDlC"}
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /** @see trySAMLAuthentication */
3
3
  export declare const trySAMLAuthenticationWithContext: (ctx: AtomicContext) => Promise<{
4
4
  redirectUrl: string;
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Persisted record — in `localStorage`, shared across tabs/windows unlike `sessionStorage` — of
4
4
  * whether the last successful authentication on this browser used `credentials`.
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Persisted "authenticated" flag for token-less ambient SSO — IIS Integrated Windows Authentication
4
4
  * or proxy SSO, where the server authenticates every request via the connection/cookie and issues
@@ -1,5 +1,5 @@
1
- import { AuthMode } from "../../configurations";
2
- import type { CCAppPreLogin } from "../../types";
1
+ import { AuthMode } from "../../configurations/index.js";
2
+ import type { CCAppPreLogin } from "../../types/index.js";
3
3
  /**
4
4
  * Pure resolution of the authentication mode from the current configuration inputs and
5
5
  * the server pre-login response. No I/O, no `globalConfig` mutation, no `window` access.
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Whether a session already exists for this context — **without ever redirecting**.
4
4
  *
@@ -1,8 +1,8 @@
1
- export { detectAuthMode } from "./detect-auth-mode";
2
- export { hasSession } from "./has-session";
3
- export { login } from "./login";
4
- export { clearSessionTokens, logout } from "./logout";
5
- export { isRedirectPending } from "./redirect-guard";
6
- export { tryAutoAuthentication } from "./try-auto-authentication";
7
- export { isAuthenticated } from "./user-authentication";
1
+ export { detectAuthMode } from "./detect-auth-mode.js";
2
+ export { hasSession } from "./has-session.js";
3
+ export { login } from "./login.js";
4
+ export { clearSessionTokens, logout } from "./logout.js";
5
+ export { isRedirectPending } from "./redirect-guard.js";
6
+ export { tryAutoAuthentication } from "./try-auto-authentication.js";
7
+ export { isAuthenticated } from "./user-authentication.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1,5 +1,5 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
2
- import type { Credentials } from "../../types";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
+ import type { Credentials } from "../../types/index.js";
3
3
  /**
4
4
  * Signs the user in on the given context.
5
5
  *
@@ -1,9 +1,10 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Logs out the user of a context and deletes its web token cookie.
4
4
  *
5
- * @returns the logout `redirectUrl` returned by the server, or `undefined` when there is none to
6
- * follow — either because an impersonation is active (the cookie is left untouched), because the
5
+ * @returns the `logoutUrl` returned by the server (where to send the user to finish signing out at
6
+ * the identity provider, when it gave one), or `undefined` when there is none to follow — either
7
+ * because an impersonation is active (`userOverrideActive`: the cookie is NOT deleted), because the
7
8
  * server did not answer `ok`, or because the request failed (the failure is logged, not thrown).
8
9
  * The local session is cleared in every case.
9
10
  */
@@ -1 +1 @@
1
- {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/authentication/session/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAC;AAQrC;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6BvF;AAED,6BAA6B;AAC7B,wBAAsB,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAStE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
1
+ {"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/authentication/session/logout.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAKnB,MAAM,6BAA6B,CAAC;AAQrC;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA6BvF;AAED,6BAA6B;AAC7B,wBAAsB,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAE1D;AAED;;GAEG;AACH,wBAAgB,6BAA6B,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI,CAStE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC"}
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Whether a provider redirect (oauth / saml) was started for this context and has not established a
4
4
  * session yet.
@@ -1,4 +1,4 @@
1
- import type { AtomicContext } from "../../client/atomic-context";
1
+ import type { AtomicContext } from "../../client/atomic-context.js";
2
2
  /** Taken when a request is sent, and handed back with its outcome. */
3
3
  export declare function sessionLostMarkWithContext(ctx: AtomicContext): number;
4
4
  /**
@@ -1,4 +1,4 @@
1
- import type { AtomicContext } from "../../client/atomic-context";
1
+ import type { AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Records that this context's user signed out on purpose. Called by `logout()`, and only by it —
4
4
  * `clearSessionTokens()` also runs as a pre-flight reset before a silent re-authentication, where
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Hits a protected endpoint and reports whether the server accepted the request.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"try-auto-authentication.d.ts","sourceRoot":"","sources":["../../../src/authentication/session/try-auto-authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,6BAA6B,CAAC;AAQhG;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gCAAgC,GAAU,KAAK,aAAa,KAAG,OAAO,CAAC,OAAO,CAwB1F,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,QAAO,OAAO,CAAC,OAAO,CACN,CAAC"}
1
+ {"version":3,"file":"try-auto-authentication.d.ts","sourceRoot":"","sources":["../../../src/authentication/session/try-auto-authentication.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,6BAA6B,CAAC;AAQhG;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,gCAAgC,GAAU,KAAK,aAAa,KAAG,OAAO,CAAC,OAAO,CA0B1F,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,qBAAqB,QAAO,OAAO,CAAC,OAAO,CACN,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Checks if the user is authenticated on the given context.
4
4
  *
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /** Response of the `deleteWebTokenCookie` challenge action. */
3
3
  export type DeleteWebTokenCookieResult = {
4
4
  methodresult: string;
@@ -1 +1 @@
1
- {"version":3,"file":"delete-web-token-cookie.d.ts","sourceRoot":"","sources":["../../../src/authentication/tokens/delete-web-token-cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAKjF,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GAC1C,KAAK,aAAa,KACjB,OAAO,CAAC,0BAA0B,CAcpC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,QAAO,OAAO,CAAC,0BAA0B,CACzB,CAAC"}
1
+ {"version":3,"file":"delete-web-token-cookie.d.ts","sourceRoot":"","sources":["../../../src/authentication/tokens/delete-web-token-cookie.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,6BAA6B,CAAC;AAKjF,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAAG;IACvC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,+BAA+B,GAC1C,KAAK,aAAa,KACjB,OAAO,CAAC,0BAA0B,CAkBpC,CAAC;AAEF,2CAA2C;AAC3C,eAAO,MAAM,oBAAoB,QAAO,OAAO,CAAC,0BAA0B,CACzB,CAAC"}
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Retrieves the CSRF token from the backend server, on the given context.
4
4
  *
@@ -1 +1 @@
1
- {"version":3,"file":"get-csrf-token.d.ts","sourceRoot":"","sources":["../../../src/authentication/tokens/get-csrf-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,6BAA6B,CAAC;AAMhG;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAAU,KAAK,aAAa,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAwBvF,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,YAAY,QAAO,OAAO,CAAC,MAAM,GAAG,IAAI,CAA4C,CAAC"}
1
+ {"version":3,"file":"get-csrf-token.d.ts","sourceRoot":"","sources":["../../../src/authentication/tokens/get-csrf-token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,aAAa,EAAiC,MAAM,6BAA6B,CAAC;AAMhG;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,uBAAuB,GAAU,KAAK,aAAa,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CA0BvF,CAAC;AAEF,mCAAmC;AACnC,eAAO,MAAM,YAAY,QAAO,OAAO,CAAC,MAAM,GAAG,IAAI,CAA4C,CAAC"}
@@ -1,5 +1,5 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
2
- import type { Credentials } from "../../types";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
+ import type { Credentials } from "../../types/index.js";
3
3
  /**
4
4
  * Authenticates against `security.webtoken` on the given context.
5
5
  *
@@ -1,4 +1,4 @@
1
- import { type AtomicContext } from "../../client/atomic-context";
1
+ import { type AtomicContext } from "../../client/atomic-context.js";
2
2
  /**
3
3
  * Retrieves the CSRF token of a context, first checking session storage then local storage.
4
4
  * @returns The CSRF token string if found, or `null` if not present in either storage.