@sinequa/atomic 2.10.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.
- package/README.md +181 -80
- package/dist/atomic.cjs +1 -1
- package/dist/atomic.js +1 -1
- package/dist/authentication/constants.d.ts +1 -1
- package/dist/authentication/events/auth-events.d.ts +2 -2
- package/dist/authentication/events/emit-authenticated-event.d.ts +1 -1
- package/dist/authentication/events/index.d.ts +2 -2
- package/dist/authentication/index.d.ts +4 -4
- package/dist/authentication/providers/index.d.ts +2 -2
- package/dist/authentication/providers/oauth-authentication.d.ts +1 -1
- package/dist/authentication/providers/redirect-to-identity-provider.d.ts +1 -1
- package/dist/authentication/providers/redirect-to-identity-provider.d.ts.map +1 -1
- package/dist/authentication/providers/saml-authentication.d.ts +1 -1
- package/dist/authentication/session/auth-mode-marker.d.ts +1 -1
- package/dist/authentication/session/auth-state.d.ts +1 -1
- package/dist/authentication/session/detect-auth-mode.d.ts +2 -2
- package/dist/authentication/session/has-session.d.ts +1 -1
- package/dist/authentication/session/index.d.ts +7 -7
- package/dist/authentication/session/login.d.ts +2 -2
- package/dist/authentication/session/logout.d.ts +4 -3
- package/dist/authentication/session/logout.d.ts.map +1 -1
- package/dist/authentication/session/redirect-guard.d.ts +1 -1
- package/dist/authentication/session/session-lost-latch.d.ts +1 -1
- package/dist/authentication/session/signed-out-guard.d.ts +1 -1
- package/dist/authentication/session/try-auto-authentication.d.ts +1 -1
- package/dist/authentication/session/try-auto-authentication.d.ts.map +1 -1
- package/dist/authentication/session/user-authentication.d.ts +1 -1
- package/dist/authentication/tokens/delete-web-token-cookie.d.ts +1 -1
- package/dist/authentication/tokens/delete-web-token-cookie.d.ts.map +1 -1
- package/dist/authentication/tokens/get-csrf-token.d.ts +1 -1
- package/dist/authentication/tokens/get-csrf-token.d.ts.map +1 -1
- package/dist/authentication/tokens/get-jwt-token.d.ts +2 -2
- package/dist/authentication/tokens/get-token.d.ts +1 -1
- package/dist/authentication/tokens/index.d.ts +5 -5
- package/dist/authentication/tokens/set-token.d.ts +1 -1
- package/dist/client/atomic-context.d.ts +4 -4
- package/dist/client/create-api.d.ts +49 -48
- package/dist/client/create-api.d.ts.map +1 -1
- package/dist/client/create-atomic-client.d.ts +8 -8
- package/dist/client/http-adapter.d.ts +1 -1
- package/dist/client/index.d.ts +4 -4
- package/dist/configurations/auth-options.d.ts +1 -1
- package/dist/configurations/global.config.d.ts +4 -4
- package/dist/configurations/index.d.ts +3 -3
- package/dist/helpers/aggregation-count.d.ts +3 -2
- package/dist/helpers/aggregation-count.d.ts.map +1 -1
- package/dist/helpers/column-resolver.d.ts +11 -3
- package/dist/helpers/column-resolver.d.ts.map +1 -1
- package/dist/helpers/columns.d.ts +1 -1
- package/dist/helpers/filters.d.ts +1 -1
- package/dist/helpers/index.d.ts +8 -8
- package/dist/helpers/metadata.d.ts +2 -2
- package/dist/helpers/pagination.d.ts +1 -1
- package/dist/helpers/to-aggregation-count.d.ts +11 -0
- package/dist/helpers/to-aggregation-count.d.ts.map +1 -0
- package/dist/index.d.ts +7 -7
- package/dist/polyfills/storage.d.ts +1 -1
- package/dist/spfx/index.cjs +1 -1
- package/dist/spfx/index.d.ts +3 -3
- package/dist/spfx/index.js +1 -1
- package/dist/src-CCjB0b1J.cjs +1 -0
- package/dist/{src-s3KlD6YE.js → src-CK3j-Qz_.js} +837 -760
- package/dist/types/agent-workspace/index.d.ts +3 -3
- package/dist/types/aggregations/Aggregation.d.ts +2 -2
- package/dist/types/aggregations/ListAggregation.d.ts +1 -1
- package/dist/types/aggregations/TreeAggregation.d.ts +2 -2
- package/dist/types/aggregations/TreeAggregationNode.d.ts +1 -1
- package/dist/types/aggregations/index.d.ts +6 -6
- package/dist/types/audit/AuditEvent.d.ts +2 -2
- package/dist/types/audit/AuditRecord.d.ts +1 -1
- package/dist/types/audit/index.d.ts +4 -4
- package/dist/types/chunks/index.d.ts +2 -2
- package/dist/types/config/CCAggregation.d.ts +7 -1
- package/dist/types/config/CCAggregation.d.ts.map +1 -1
- package/dist/types/config/CCApp.d.ts +11 -7
- package/dist/types/config/CCApp.d.ts.map +1 -1
- package/dist/types/config/CCAppRefresh.d.ts +1 -1
- package/dist/types/config/CCAutocomplete.d.ts +1 -1
- package/dist/types/config/CCColumn.d.ts +3 -3
- package/dist/types/config/CCColumnsInfo.d.ts +1 -1
- package/dist/types/config/CCIndex.d.ts +2 -2
- package/dist/types/config/CCLabels.d.ts +1 -1
- package/dist/types/config/CCList.d.ts +2 -2
- package/dist/types/config/CCQuery.d.ts +9 -9
- package/dist/types/config/CCRFM.d.ts +1 -1
- package/dist/types/config/CCTab.d.ts +1 -1
- package/dist/types/config/CCTabSearch.d.ts +1 -1
- package/dist/types/config/CCWebService.d.ts +13 -1
- package/dist/types/config/CCWebService.d.ts.map +1 -1
- package/dist/types/config/index.d.ts +26 -26
- package/dist/types/filters/BetweenFilter.d.ts +1 -1
- package/dist/types/filters/ExprFilter.d.ts +1 -1
- package/dist/types/filters/InFilter.d.ts +1 -1
- package/dist/types/filters/NotNullFilter.d.ts +1 -1
- package/dist/types/filters/NullFilter.d.ts +1 -1
- package/dist/types/filters/SimpleFilter.d.ts +1 -1
- package/dist/types/filters/index.d.ts +8 -8
- package/dist/types/filters/legacy-filters.d.ts +1 -1
- package/dist/types/index.d.ts +19 -19
- package/dist/types/interfaces/Query.d.ts +5 -5
- package/dist/types/interfaces/index.d.ts +3 -3
- package/dist/types/link-results/index.d.ts +2 -2
- package/dist/types/link-results/links-results.d.ts +1 -1
- package/dist/types/preview/CategoryHighlightData.d.ts +1 -1
- package/dist/types/preview/HighlightDataPerCategory.d.ts +1 -1
- package/dist/types/preview/HighlightValue.d.ts +1 -1
- package/dist/types/preview/PreviewData.d.ts +4 -4
- package/dist/types/preview/index.d.ts +8 -8
- package/dist/types/principal/PrincipalChangedEvent.d.ts +1 -1
- package/dist/types/principal/index.d.ts +6 -6
- package/dist/types/search/AccessLists.d.ts +1 -1
- package/dist/types/search/Answer.d.ts +1 -1
- package/dist/types/search/Article.d.ts +5 -5
- package/dist/types/search/DidYouMean.d.ts +2 -2
- package/dist/types/search/DocumentAccessLists.d.ts +1 -1
- package/dist/types/search/MatchLocationsPerPartname.d.ts +1 -1
- package/dist/types/search/MatchingPassage.d.ts +1 -1
- package/dist/types/search/QueryAnalysis.d.ts +1 -1
- package/dist/types/search/QueryIntent.d.ts +4 -4
- package/dist/types/search/QueryIntentData.d.ts +2 -2
- package/dist/types/search/QueryIntentMatch.d.ts +1 -1
- package/dist/types/search/QueryIntentResponse.d.ts +1 -1
- package/dist/types/search/RFMActionDisplay.d.ts +1 -1
- package/dist/types/search/RFMData.d.ts +1 -1
- package/dist/types/search/Result.d.ts +17 -16
- package/dist/types/search/Result.d.ts.map +1 -1
- package/dist/types/search/TopPassage.d.ts +1 -1
- package/dist/types/search/index.d.ts +32 -32
- package/dist/types/security-principal/index.d.ts +1 -1
- package/dist/types/user-profile/user-profile.d.ts +5 -0
- package/dist/types/user-profile/user-profile.d.ts.map +1 -1
- package/dist/utils/aggregations.d.ts +3 -3
- package/dist/utils/index.d.ts +11 -11
- package/dist/utils/query-params.d.ts +1 -1
- package/dist/utils/to-sql.d.ts +1 -1
- package/dist/web-api/helpers/create-headers.d.ts +1 -1
- package/dist/web-api/helpers/errors/server-error.d.ts +1 -1
- package/dist/web-api/helpers/errors/timeout-error.d.ts +1 -1
- package/dist/web-api/helpers/errors/unauthorized-error.d.ts +1 -1
- package/dist/web-api/helpers/handle-response.d.ts +2 -2
- package/dist/web-api/helpers/handle-response.d.ts.map +1 -1
- package/dist/web-api/helpers/index.d.ts +16 -16
- package/dist/web-api/helpers/methods/del.d.ts +3 -3
- package/dist/web-api/helpers/methods/get.d.ts +3 -3
- package/dist/web-api/helpers/methods/patch-raw.d.ts +14 -0
- package/dist/web-api/helpers/methods/patch-raw.d.ts.map +1 -0
- package/dist/web-api/helpers/methods/patch.d.ts +3 -3
- package/dist/web-api/helpers/methods/patch.d.ts.map +1 -1
- package/dist/web-api/helpers/methods/post.d.ts +3 -3
- package/dist/web-api/helpers/methods/put.d.ts +3 -3
- package/dist/web-api/helpers/methods/send-patch.d.ts +11 -0
- package/dist/web-api/helpers/methods/send-patch.d.ts.map +1 -0
- package/dist/web-api/helpers/methods/send-request.d.ts +2 -2
- package/dist/web-api/helpers/utils/build-request-url.d.ts +2 -2
- package/dist/web-api/helpers/utils/create-timeout-controller.d.ts +6 -1
- package/dist/web-api/helpers/utils/create-timeout-controller.d.ts.map +1 -1
- package/dist/web-api/helpers/utils/resolve-no-auto-authentication.d.ts +1 -1
- package/dist/web-api/index.d.ts +23 -23
- package/dist/web-api/v1/fetch-aggregation.d.ts +2 -2
- package/dist/web-api/v1/fetch-aggregation.d.ts.map +1 -1
- package/dist/web-api/v1/fetch-app.d.ts +2 -2
- package/dist/web-api/v1/fetch-audit.d.ts +2 -2
- package/dist/web-api/v1/fetch-dataset.d.ts +2 -2
- package/dist/web-api/v1/fetch-labels.d.ts +2 -2
- package/dist/web-api/v1/fetch-preview.d.ts +2 -2
- package/dist/web-api/v1/fetch-principal.d.ts +3 -3
- package/dist/web-api/v1/fetch-query-export.d.ts +9 -4
- package/dist/web-api/v1/fetch-query-export.d.ts.map +1 -1
- package/dist/web-api/v1/fetch-query-intent.d.ts +2 -2
- package/dist/web-api/v1/fetch-query.d.ts +3 -3
- package/dist/web-api/v1/fetch-security-principal.d.ts +2 -2
- package/dist/web-api/v1/fetch-similar-documents.d.ts +2 -2
- package/dist/web-api/v1/fetch-sponsored-links.d.ts +2 -2
- package/dist/web-api/v1/fetch-suggest.d.ts +2 -2
- package/dist/web-api/v1/fetch-text-chunk.d.ts +2 -2
- package/dist/web-api/v1/fetch-user-settings.d.ts +2 -2
- package/dist/web-api/v1/fetch-user-settings.d.ts.map +1 -1
- package/dist/web-api/v2/fetch-agent-workspace-status.d.ts +3 -3
- package/dist/web-api/v2/fetch-agent-workspace.d.ts +3 -3
- package/dist/web-api/v2/fetch-change-password.d.ts +1 -1
- package/dist/web-api/v2/fetch-forgot-password.d.ts +1 -1
- package/dist/web-api/v2/fetch-user-profile.d.ts +29 -6
- package/dist/web-api/v2/fetch-user-profile.d.ts.map +1 -1
- package/dist/web-api/v2/fetch-version.d.ts +1 -1
- package/package.json +2 -2
- package/dist/src-CPlI3qi5.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
|
-
|
|
58
|
-
|
|
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.
|
|
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.
|
|
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
|
|
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.
|
|
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
|
-
|
|
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`.
|
|
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"`.
|
|
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 })
|
|
303
|
-
>
|
|
304
|
-
>
|
|
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,60 +370,154 @@ 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
|
-
|
|
367
|
-
with `
|
|
368
|
-
|
|
369
|
-
|
|
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.
|
|
370
378
|
|
|
371
379
|
---
|
|
372
380
|
|
|
373
|
-
##
|
|
381
|
+
## AI agent skill
|
|
374
382
|
|
|
375
|
-
|
|
376
|
-
npm test # vitest, watch mode
|
|
377
|
-
npm test -- --watch=false # single run (what CI does)
|
|
378
|
-
```
|
|
379
|
-
|
|
380
|
-
`--ui` is not available out of the box: `@vitest/ui` is an optional peer of vitest and is not
|
|
381
|
-
installed here — `npm i -D @vitest/ui` first.
|
|
382
|
-
|
|
383
|
-
Coverage is deepest on authentication (`AuthMode` detection, OAuth, SAML, credentials, tokens,
|
|
384
|
-
401 recovery) and on the HTTP helpers. On the endpoints it is targeted rather than exhaustive —
|
|
385
|
-
`fetchQuery`, `fetchAggregation`, `fetchPrincipal`, `searchPrincipals`, `fetchApp` and the
|
|
386
|
-
agent-workspace workspaces. Also covered: the filter builder, metadata parsing, column resolution,
|
|
387
|
-
pagination, date utilities and the SQL value helper.
|
|
388
|
-
|
|
389
|
-
Injecting `fetch`, `storage` and `logger` through the configuration is what lets a test avoid module
|
|
390
|
-
mocks — see [Testing](./docs/integration/testing.mdx).
|
|
391
|
-
|
|
392
|
-
---
|
|
393
|
-
|
|
394
|
-
## Development
|
|
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`):
|
|
395
384
|
|
|
396
385
|
```bash
|
|
397
|
-
|
|
398
|
-
npm run watch # rebuild on change
|
|
399
|
-
npm run dev:pack # build + pack locally
|
|
386
|
+
npx skills add sinequa/sba-mint --skill atomic
|
|
400
387
|
```
|
|
401
388
|
|
|
402
|
-
|
|
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`).
|
|
403
390
|
|
|
404
|
-
|
|
391
|
+
---
|
|
405
392
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
393
|
+
## Releases
|
|
394
|
+
|
|
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.
|
|
405
|
+
|
|
406
|
+
### 2.10
|
|
407
|
+
|
|
408
|
+
- **Masked dates** (`YYYY`, `YYYY-MM`) in date aggregations: `translateAggregationToDateOptions`
|
|
409
|
+
falls back to the item `value` when there is no `display`, and the filter now covers the real
|
|
410
|
+
period (`>= first day AND < first day of the next period`) instead of an `eq` on a partial date.
|
|
411
|
+
New `getDateMask` / `getMaskedDateBounds` helpers, and `Query.aggregation_overrides` to have the
|
|
412
|
+
engine aggregate a date column at a given granularity.
|
|
413
|
+
- `parseValueAndOperatorFromItem` now reads all four comparison operators (`>` and `<=` were both
|
|
414
|
+
read as `lt`) and produces a readable label for distribution items without `display`.
|
|
415
|
+
|
|
416
|
+
### 2.9 — Agent Workspace rename ⚠️
|
|
417
|
+
|
|
418
|
+
The document-upload "containers" are now **workspaces**, following the backend. The old `container*`
|
|
419
|
+
names are removed without aliases:
|
|
420
|
+
|
|
421
|
+
- Functions: `listWorkspaces`, `getWorkspace`, `createWorkspace`, `updateWorkspace`,
|
|
422
|
+
`deleteWorkspaces`, `listWorkspaceDocuments`, `addWorkspaceDocuments`, `deleteWorkspaceDocuments`.
|
|
423
|
+
- Client: `api.containers` → `api.workspaces`.
|
|
424
|
+
- Payload fields: `containerId` → `workspaceId`, `containerIds` → `workspaceIds`, `containers[]` →
|
|
425
|
+
`workspaces[]`. Code still reading `res.containers` silently gets `undefined`.
|
|
426
|
+
|
|
427
|
+
### 2.8
|
|
428
|
+
|
|
429
|
+
- New **`sessionLost`** auth event (`client.auth.on("sessionLost", …)` / `onAuthEvent`): fires once
|
|
430
|
+
when a 401 could not be recovered, i.e. the session is really gone. Use it — rather than
|
|
431
|
+
`unauthorized`, which fires before any recovery — to show a "session expired" message.
|
|
432
|
+
- A `recoverFromUnauthorized` hook that throws synchronously now counts as a refusal, like one that
|
|
433
|
+
rejects.
|
|
434
|
+
|
|
435
|
+
### 2.7
|
|
436
|
+
|
|
437
|
+
- `fetchUploadStatus()` to poll document-upload jobs, and `addWorkspaceDocuments()` (initially
|
|
438
|
+
`addContainerDocuments()`) to attach existing documents without a file transfer.
|
|
439
|
+
- **Fix** `searchPrincipals()`, which returned nothing; new `fetchPrincipalsByIds()` to resolve
|
|
440
|
+
`domain|id` identities.
|
|
441
|
+
- **Fix** workspace list / document list pagination.
|
|
442
|
+
|
|
443
|
+
### 2.6
|
|
444
|
+
|
|
445
|
+
- `flattenLegacyFilterValues()` flattens a legacy filter tree into its leaf values and displays, to
|
|
446
|
+
match an applied filter back against aggregation items or distribution buckets.
|
|
447
|
+
|
|
448
|
+
### 2.5
|
|
449
|
+
|
|
450
|
+
- `getOffsetFromDates()` / `getRelativeDate()` report the largest fitting unit (`year`, `month`,
|
|
451
|
+
`week`, `day`): "last year" instead of "400 days ago".
|
|
452
|
+
- `DidYouMeanItem.appliedChanges`: per-term correction action reported by the engine (≥ 11.14).
|
|
453
|
+
- More accurate types: `fetchQuery` / `fetchBulkQuery` return `Result & ResultPages`,
|
|
454
|
+
`QueryIntent.datasets` is no longer self-referential, `getIdFromUrl()` returns
|
|
455
|
+
`string | undefined`.
|
|
456
|
+
- **Fixes**: `fetchSendPasswordResetEmail()` no longer throws outside a browser (new optional
|
|
457
|
+
`changePasswordRedirectUrl` argument — a positionally-passed context must move); the label mutations
|
|
458
|
+
are now audited; `fetchPreviewUrl()` actually returns the rendition; `resolveToColumnName()` no
|
|
459
|
+
longer throws on a configuration without the merged schema.
|
|
460
|
+
|
|
461
|
+
### 2.4
|
|
462
|
+
|
|
463
|
+
- `setGlobalConfig({ logLevel })` now applies the level. `loginPath` and `createRoutes` are
|
|
464
|
+
`@deprecated` (nothing reads them).
|
|
465
|
+
- `toSqlValue()` is exported.
|
|
466
|
+
- **Fixes**: requests with a body no longer throw on Node 18/20 (`navigator` missing);
|
|
467
|
+
`$hasMore` works on aggregations whose `count` is not 10 — declare real page sizes with the new
|
|
468
|
+
`aggregationCounts` key (`resolveAggregationCount()` / `aggregationHasMore()` helpers); the
|
|
469
|
+
two-argument `fetchAggregation()` now actually works and takes an optional `count`.
|
|
470
|
+
- ⚠️ `sha512()` now **throws** without the Web Crypto API (plain-HTTP pages) instead of returning a
|
|
471
|
+
weak 32-bit hash. Use the new `hashString()` for cache keys and identifiers; serve over HTTPS for
|
|
472
|
+
real hashing.
|
|
473
|
+
|
|
474
|
+
### 2.3 — Client, auth events, 401 recovery
|
|
475
|
+
|
|
476
|
+
- **`createAtomicClient()` / `getDefaultClient()`** (experimental): isolated clients, each with its
|
|
477
|
+
own configuration, session and subscribers — several backends on one page, no module mocks in
|
|
478
|
+
tests. The whole API layer is context-aware and exposed as `client.api.*`. The free functions keep
|
|
479
|
+
working unchanged.
|
|
480
|
+
- **Auth lifecycle**: `onAuthEvent()` (`authenticated`, `unauthorized`, `requestFailed`,
|
|
481
|
+
`tokenRefreshed`, `loggedOut`), `auth.recoverFromUnauthorized` (silent re-authentication, the
|
|
482
|
+
request is replayed once), `hasSession()` (redirect-free probe), `isRedirectPending()`,
|
|
483
|
+
`isExternalAuthMode()`, `requestWebTokenSession()` (replaces the misleadingly named
|
|
484
|
+
`getJWToken`, kept as a deprecated alias) and `AuthOptions` (timeout, storage, logger, fetch,
|
|
485
|
+
credentials mode).
|
|
486
|
+
- `filter.distribution()` for date/size distribution buckets; `AggregateResult` for aggregate
|
|
487
|
+
responses; `uiLanguage` key (also drives the request `locale`); unified `RequestOptions` on every
|
|
488
|
+
HTTP helper, including `signal` and `noRecovery`.
|
|
489
|
+
- **Fixes**: an explicit `authMode` is honoured (and `AuthMode.bearer(token)` actually sends its
|
|
490
|
+
token); `bearer` mode works with access tokens that forbid `webtoken`; `sso` mode can re-establish
|
|
491
|
+
a lost session; the OAuth/SAML redirect-loop guard really stops the loop; a 401 trailing behind a
|
|
492
|
+
`logout()` no longer signs the user back in; created clients use the SPFx `AadHttpClient`; clear
|
|
493
|
+
errors and complete HTTP error bodies.
|
|
494
|
+
|
|
495
|
+
### 2.2
|
|
496
|
+
|
|
497
|
+
- Document-upload container management endpoints (API v2) — renamed to workspaces in 2.9.
|
|
498
|
+
- `searchPrincipals()` for search-as-you-type principal lookup.
|
|
499
|
+
|
|
500
|
+
### 2.0.1 – 2.1.0
|
|
501
|
+
|
|
502
|
+
- **2.1** — `del()` accepts a JSON body; any 2xx status is now treated as success; `put()` sends the
|
|
503
|
+
right `Content-Type`; the JWT request no longer sets explicit headers; a user-profile property
|
|
504
|
+
deletion failure now surfaces an error.
|
|
505
|
+
- **2.0.8** — A credentials session is no longer mistaken for SSO.
|
|
506
|
+
- **2.0.6** — `legacyFilterToFilter()` converts legacy filters to the new `Filter` format.
|
|
507
|
+
- **2.0.5** — Token-less **Windows/IIS SSO** support.
|
|
508
|
+
- **2.0.4** — **SPFx support** through the `@sinequa/atomic/spfx` subpath export.
|
|
509
|
+
- **2.0.3** — OIDC server-side auto-authentication is trusted; CSRF refresh is best-effort and
|
|
510
|
+
`getCsrfToken()` returns `null` on a token-less 200 instead of throwing; the static index fetch
|
|
511
|
+
honours `basePath`.
|
|
512
|
+
- **2.0.2** — OIDC server-side auto-authentication in the `unknown` login branch; new `important`
|
|
513
|
+
option on notification events.
|
|
514
|
+
- **2.0.1** — OAuth/SAML redirect loop is broken when the provider never authenticates; `userOverride`
|
|
515
|
+
typo fixed in credentials login.
|
|
415
516
|
|
|
416
517
|
---
|
|
417
518
|
|
|
418
519
|
<div align="center">
|
|
419
520
|
|
|
420
|
-
Built for the [Sinequa](https://www.sinequa.com/) ecosystem
|
|
521
|
+
Built for the [Sinequa](https://www.sinequa.com/) ecosystem
|
|
421
522
|
|
|
422
523
|
</div>
|
package/dist/atomic.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-
|
|
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 {
|
|
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,
|
|
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,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
|
|
6
|
-
*
|
|
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
|
|
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"}
|