@sinequa/atomic 2.0.2 → 2.0.4

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 CHANGED
@@ -3,6 +3,7 @@
3
3
  <img src="https://img.shields.io/npm/v/@sinequa/atomic?style=for-the-badge&color=0ea5e9&label=@sinequa%2Fatomic" alt="npm version" />
4
4
  <img src="https://img.shields.io/badge/TypeScript-5.x-3178c6?style=for-the-badge&logo=typescript&logoColor=white" alt="TypeScript" />
5
5
  <img src="https://img.shields.io/badge/ESM-ready-f59e0b?style=for-the-badge" alt="ESM" />
6
+ <img src="https://img.shields.io/badge/SPFx-ready-0078d4?style=for-the-badge&logo=microsoftsharepoint&logoColor=white" alt="SPFx" />
6
7
  <img src="https://img.shields.io/npm/l/@sinequa/atomic?style=for-the-badge&color=22c55e" alt="MIT License" />
7
8
 
8
9
  <br /><br />
@@ -10,7 +11,8 @@
10
11
  # `@sinequa/atomic`
11
12
 
12
13
  **The TypeScript-first SDK for the Sinequa REST API.**
13
- Authentication, search, aggregations, datasets, preview — everything typed, tree-shakable, zero runtime dependencies.
14
+ Authentication, search, aggregations, datasets, preview — everything typed, tree-shakable, zero runtime dependencies.
15
+ SPFx-ready via the `@sinequa/atomic/spfx` subpath export.
14
16
 
15
17
  [Docs](https://sinequa.github.io/sba-mint/atomic/intro) · [API Reference](https://sinequa.github.io/sba-mint/atomic/api/app)
16
18
 
@@ -24,7 +26,13 @@ Authentication, search, aggregations, datasets, preview — everything typed, tr
24
26
  npm install @sinequa/atomic
25
27
  ```
26
28
 
27
- > Requires **Node ≥ 18** or any modern browser. Ships as ESM (`atomic.js`) and CJS (`atomic.umd.cjs`) with full `.d.ts` declarations.
29
+ > Requires **Node ≥ 18** or any modern browser. Ships as ESM (`atomic.js`) and CJS (`atomic.cjs`) with full `.d.ts` declarations.
30
+
31
+ For **SharePoint Framework** web parts, `@microsoft/sp-http` is an optional peer dependency — install it only if you need it:
32
+
33
+ ```bash
34
+ npm install @microsoft/sp-http --save-peer
35
+ ```
28
36
 
29
37
  ---
30
38
 
@@ -43,6 +51,33 @@ const facets = await fetchAggregation({ aggregation: 'company', query: 'knowled
43
51
 
44
52
  ---
45
53
 
54
+ ## SharePoint Framework (SPFx)
55
+
56
+ In an SPFx web part, all HTTP requests must go through the `AadHttpClient` so the Azure AD bearer
57
+ token is attached automatically. Import from the `./spfx` subpath and call
58
+ `initializeAadHttpClient` once during web part initialization:
59
+
60
+ ```typescript
61
+ import { initializeAadHttpClient, fetchQuery } from '@sinequa/atomic/spfx';
62
+ import { AadHttpClient } from '@microsoft/sp-http';
63
+
64
+ // In your web part's onInit():
65
+ const client = await this.context.aadHttpClientFactory
66
+ .getClient('https://my-sinequa-server.example.com');
67
+ initializeAadHttpClient(client);
68
+
69
+ // All subsequent API calls route through AadHttpClient automatically:
70
+ const results = await fetchQuery({ name: '_query', text: 'knowledge management' });
71
+ ```
72
+
73
+ Call `initializeAadHttpClient(null)` to detach the client (e.g. in `onDispose`).
74
+
75
+ > The `./spfx` subpath re-exports everything from `@sinequa/atomic` and adds
76
+ > `initializeAadHttpClient`, `AadHttpClientLike`, and `AadHttpResponseLike`.
77
+ > Standard (non-SPFx) consumers use `@sinequa/atomic` directly — no changes needed.
78
+
79
+ ---
80
+
46
81
  ## Modules
47
82
 
48
83
  ### Authentication
@@ -241,7 +276,7 @@ console.log(globalConfig.backendUrl, globalConfig.authMode.kind);
241
276
  ## Testing
242
277
 
243
278
  ```bash
244
- npm test # run vitest (274 test cases across 24 files)
279
+ npm test # run vitest (287 test cases across 25 files)
245
280
  npm test -- --ui # interactive UI
246
281
  ```
247
282
 
@@ -0,0 +1 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./src-U6mXZKpZ.cjs");exports.API=e.F,exports.ApiError=e.Vt,exports.Audit=e.$,exports.AuditEventType=e.Ct,exports.AuthMode=e.Tn,exports.DidYouMeanKind=e.yt,exports.EngineType=e.St,exports.EngineTypeModifier=e.xt,exports.LogLevel=e.Ut,exports.MINIMUM_COMPATIBLE_SERVER_API_VERSION=e.bt,exports.RFMDisplay=e.vt,exports.ServerError=e.Bt,exports.TimeoutError=e.zt,exports.UnauthorizedError=e.Rt,exports.addAuditAdditionalInfo=e.et,exports.addConcepts=e.un,exports.addSessionId=e.tt,exports.addUrl=e.nt,exports.aggItemRegex=e._n,exports.aggregationItemStrictCompare=e.vn,exports.appInitializerFn=e.q,exports.bisect=e.gn,exports.buildPathsAndLevels=e.M,exports.clearSessionTokens=e.n,exports.configureLogger=e.Wt,exports.createHeaders=e.Ht,exports.createTimeoutController=e.kt,exports.createUserProfile=e.m,exports.debug=e.Gt,exports.del=e.Pt,exports.deleteUserProfileProperty=e.h,exports.deleteUserSettings=e.b,exports.deleteWebTokenCookie=e.i,exports.detectAuthMode=e.Z,exports.emitAuthenticatedEvent=e.Dn,exports.error=e.Kt,exports.escapeExpr=e.rt,exports.expiresSoon=e.Et,exports.extraColumns=e.gt,exports.fetchAggregation=e.Q,exports.fetchApp=e.J,exports.fetchAppPreLogin=e.Y,exports.fetchBulkQuery=e.N,exports.fetchChangePassword=e.y,exports.fetchDataset=e.W,exports.fetchDatasetList=e.G,exports.fetchDatasets=e.K,exports.fetchLabels=e.H,exports.fetchPreview=e.B,exports.fetchPreviewUrl=e.V,exports.fetchPrincipal=e.I,exports.fetchPrincipalList=e.L,exports.fetchPrincipalUserid=e.R,exports.fetchPrincipalUserids=e.z,exports.fetchQuery=e.P,exports.fetchQueryExport=e.j,exports.fetchQueryIntent=e.A,exports.fetchSendPasswordResetEmail=e.v,exports.fetchSimilarDocuments=e.k,exports.fetchSponsoredLinks=e.O,exports.fetchSuggest=e.T,exports.fetchSuggestField=e.E,exports.fetchSuggestQuery=e.D,exports.fetchTextChunks=e.w,exports.fetchUserProfile=e.g,exports.fetchUserSettings=e.x,exports.fetchVersion=e.p,exports.filter=e.ht,exports.get=e.Nt,exports.getConcepts=e.dn,exports.getCsrfToken=e.l,exports.getFiltersFromURI=e.Qt,exports.getFiltersFromUrl=e.$t,exports.getHelpIndexUrl=e.Xt,exports.getIdFromUrl=e.en,exports.getJWToken=e.c,exports.getMetadata=e.pt,exports.getMetadataWithValues=e.mt,exports.getOffsetFromDates=e.cn,exports.getQueryPageFromUrl=e.tn,exports.getQueryParamsFromUrl=e.nn,exports.getQueryTabFromUrl=e.rn,exports.getQueryTextFromUrl=e.in,exports.getRelativeDate=e.ln,exports.getTime=e.it,exports.getToken=e.s,exports.getUrlParamsFromQueryParams=e.an,exports.globalConfig=e.Cn,exports.guid=e.at,exports.handleResponse=e.Lt,exports.info=e.qt,exports.initializeAppConfig=e.X,exports.isArrayBuffer=e.ot,exports.isAuthenticated=e.t,exports.isBlob=e.st,exports.isDate=e.ct,exports.isExpired=e.Dt,exports.isJsonable=e.lt,exports.isNotInputEvent=e.sn,exports.isObject=e.ut,exports.isString=e.dt,exports.labels=e.U,exports.legacyBooleansToAuthMode=e.En,exports.login=e.a,exports.logout=e.r,exports.makeColumn=e._t,exports.notify=e.Yt,exports.openParentNodes=e.yn,exports.parseText=e.fn,exports.parseValueAndOperatorFromItem=e.bn,exports.patch=e.Mt,exports.patchUserProfile=e._,exports.patchUserSettings=e.S,exports.post=e.jt,exports.put=e.At,exports.queryParamsFromUrl=e.on,exports.removeConcept=e.pn,exports.removeConcepts=e.mn,exports.resolveToColumnName=e.wt,exports.rewriteText=e.hn,exports.saveUserSettings=e.C,exports.setGlobalConfig=e.wn,exports.setToken=e.u,exports.sha512=e.ft,exports.suggestionsToTreeAggregationNodes=e.xn,exports.sysLang=e.Zt,exports.toDate=e.Ot,exports.translateAggregationToDateOptions=e.Sn,exports.tryAutoAuthentication=e.o,exports.tryOAuthAuthentication=e.f,exports.trySAMLAuthentication=e.d,exports.warn=e.Jt,exports.withRetry=e.Tt;