@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.
- package/README.md +75 -93
- 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-bQIJ_J2j.js → src-CK3j-Qz_.js} +819 -757
- 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 +3 -3
- package/dist/web-api/helpers/methods/patch.d.ts +3 -3
- 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 +3 -3
- 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 +24 -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-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
|
-
|
|
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,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
|
-
|
|
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.
|
|
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.
|
|
376
|
-
|
|
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
|
|
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-
|
|
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"}
|
|
@@ -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 +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,
|
|
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 +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,
|
|
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 +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,
|
|
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.
|