@fluid-topics/public-api 1.0.141 → 1.0.142-alpha1

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/dist/mjs/index.js CHANGED
@@ -34,7 +34,7 @@ async function handleError(method, endpoint, response) {
34
34
  endpoint,
35
35
  status: response.status,
36
36
  statusText: response.statusText,
37
- body: await response.text()
37
+ body: await response.text(),
38
38
  };
39
39
  if (typeof wnd.dispatchEvent === "function") {
40
40
  wnd.dispatchEvent(new HttpErrorEvent(details));
@@ -57,9 +57,9 @@ export class FluidTopicsApi {
57
57
  stickyFilters: {
58
58
  endpoint: "api/admin/sticky-filters",
59
59
  id: (id) => ({
60
- endpoint: `api/admin/sticky-filters/${id}`
61
- })
62
- }
60
+ endpoint: `api/admin/sticky-filters/${id}`,
61
+ }),
62
+ },
63
63
  },
64
64
  authentication: {
65
65
  login: `api/authentication/login`,
@@ -79,14 +79,14 @@ export class FluidTopicsApi {
79
79
  attachmentId: (attachmentId) => ({
80
80
  info: `api/khub/maps/${mapId}/attachments/${attachmentId}`,
81
81
  content: `api/khub/maps/${mapId}/attachments/${attachmentId}/content`,
82
- })
82
+ }),
83
83
  },
84
84
  resources: {
85
85
  list: `api/khub/maps/${mapId}/resources`,
86
86
  resourceId: (resourceId) => ({
87
87
  info: `api/khub/maps/${mapId}/resources/${resourceId}`,
88
88
  content: `api/khub/maps/${mapId}/resources/${resourceId}/content`,
89
- })
89
+ }),
90
90
  },
91
91
  topics: {
92
92
  contentId: (contentId) => ({
@@ -97,9 +97,9 @@ export class FluidTopicsApi {
97
97
  tocId: (tocId) => ({
98
98
  feedback: `api/khub/maps/${mapId}/topics/${tocId}/feedback`,
99
99
  rating: `api/khub/maps/${mapId}/topics/${tocId}/rating`,
100
- })
100
+ }),
101
101
  },
102
- })
102
+ }),
103
103
  },
104
104
  documents: {
105
105
  documentId: (documentId) => ({
@@ -113,9 +113,9 @@ export class FluidTopicsApi {
113
113
  attachmentId: (attachmentId) => ({
114
114
  info: `api/khub/documents/${documentId}/attachments/${attachmentId}`,
115
115
  content: `api/khub/documents/${documentId}/attachments/${attachmentId}/content`,
116
- })
116
+ }),
117
117
  },
118
- })
118
+ }),
119
119
  },
120
120
  semantic: {
121
121
  search: `api/khub/semantic/search`,
@@ -128,14 +128,14 @@ export class FluidTopicsApi {
128
128
  user: {
129
129
  locales: {
130
130
  ui: `api/user/locales/ui`,
131
- }
131
+ },
132
132
  },
133
133
  users: {
134
134
  userId: (userId) => ({
135
135
  collections: {
136
136
  collectionId: (collectionId) => ({
137
137
  documents: `api/users/${userId}/collections/${collectionId}/documents`,
138
- })
138
+ }),
139
139
  },
140
140
  searches: {
141
141
  list: `api/users/${userId}/searches`,
@@ -143,11 +143,11 @@ export class FluidTopicsApi {
143
143
  mySearchId: (mySearchId) => ({
144
144
  delete: `api/users/${userId}/searches/${mySearchId}`,
145
145
  update: `api/users/${userId}/searches/${mySearchId}`,
146
- })
146
+ }),
147
147
  },
148
148
  bookmarks: {
149
149
  list: `api/users/${userId}/bookmarks`,
150
- }
150
+ },
151
151
  }),
152
152
  },
153
153
  stylesheets: {
@@ -181,8 +181,8 @@ export class FluidTopicsApi {
181
181
  backups: `api/remote-portals/${remoteId}/backups`,
182
182
  backup: (backupId) => ({
183
183
  restore: `api/remote-portals/${remoteId}/backups/${backupId}/restore`,
184
- })
185
- })
184
+ }),
185
+ }),
186
186
  },
187
187
  locales: {
188
188
  ui: `api/locales/ui`,
@@ -193,14 +193,14 @@ export class FluidTopicsApi {
193
193
  fluidTopics: {
194
194
  contextName: (contextName) => ({
195
195
  endpoint: `api/messages/${locale}/fluid-topics/${contextName}`,
196
- })
196
+ }),
197
197
  },
198
198
  custom: {
199
199
  contextName: (contextName) => ({
200
200
  endpoint: `api/messages/${locale}/custom/${contextName}`,
201
- })
202
- }
203
- })
201
+ }),
202
+ },
203
+ }),
204
204
  },
205
205
  ai: {
206
206
  generate: `api/ai/generate`,
@@ -210,30 +210,30 @@ export class FluidTopicsApi {
210
210
  translate: `api/ai/translate`,
211
211
  destinationLanguages: (profileId) => ({
212
212
  endpoint: `api/ai/translate/${profileId}/languages`,
213
- })
213
+ }),
214
214
  },
215
215
  assets: {
216
216
  highlightjs: `assets/scripts/highlightjs`,
217
217
  customCode: (subPath) => ({
218
218
  endpoint: `portal/custom-code/${subPath}`,
219
- })
219
+ }),
220
220
  },
221
221
  analytics: {
222
222
  events: "api/analytics/events",
223
223
  },
224
224
  stickyFilters: {
225
225
  id: (id) => ({
226
- get: `api/sticky-filters/${id}`
226
+ get: `api/sticky-filters/${id}`,
227
227
  }),
228
228
  find: `api/sticky-filters/find`,
229
- suggest: `api/sticky-filters/suggest`
230
- }
229
+ suggest: `api/sticky-filters/suggest`,
230
+ },
231
231
  };
232
232
  get defaultHeaders() {
233
233
  return {
234
234
  ...this.authorization,
235
235
  ...this.searchLabel,
236
- "Ft-Calling-App": this.ftCallingApp
236
+ "Ft-Calling-App": this.ftCallingApp,
237
237
  };
238
238
  }
239
239
  constructor(tenantBaseUrl, integrationIdentifier, overrideIdentifierIfOnTenant) {
@@ -267,7 +267,7 @@ export class FluidTopicsApi {
267
267
  let credentials = {
268
268
  login: login,
269
269
  password: password,
270
- rememberMe: true
270
+ rememberMe: true,
271
271
  };
272
272
  return this.post(this.endpoints.authentication.login, credentials)
273
273
  .then(result => {
@@ -278,7 +278,7 @@ export class FluidTopicsApi {
278
278
  logout() {
279
279
  return this.fetch(this.endpoints.authentication.logout, {
280
280
  method: "POST",
281
- credentials: this.authorization == null ? "include" : undefined
281
+ credentials: this.authorization == null ? "include" : undefined,
282
282
  })
283
283
  .then((response) => handleError("POST", this.endpoints.authentication.logout, response))
284
284
  .then(async (response) => {
@@ -313,6 +313,16 @@ export class FluidTopicsApi {
313
313
  const queryParams = { ...this.buildTranslationParameters(translationSettings), v };
314
314
  return this.get(this.buildUrlFromParams(endpoint, queryParams));
315
315
  }
316
+ getFilteredPages(mapId, translationSettings, metadataFilters) {
317
+ if (!metadataFilters || metadataFilters.length === 0) {
318
+ return this.getPages(mapId, undefined, translationSettings);
319
+ }
320
+ const tocRequest = {
321
+ metadataFilters: metadataFilters || [],
322
+ ...this.buildTranslationParameters(translationSettings),
323
+ };
324
+ return this.post(this.endpoints.khub.maps.mapId(mapId).pages, tocRequest);
325
+ }
316
326
  getTopic(mapId, topicContentId, v) {
317
327
  return this.get(this.endpoints.khub.maps.mapId(mapId).topics.contentId(topicContentId).info, v);
318
328
  }
@@ -395,7 +405,7 @@ export class FluidTopicsApi {
395
405
  }
396
406
  rateTopic(mapId, tocId, type, value) {
397
407
  return this.post(this.endpoints.khub.maps.mapId(mapId).topics.tocId(tocId).rating, {
398
- type, value
408
+ type, value,
399
409
  });
400
410
  }
401
411
  unrateTopic(mapId, tocId) {
@@ -513,7 +523,7 @@ export class FluidTopicsApi {
513
523
  "Content-Type": "application/json",
514
524
  },
515
525
  body: JSON.stringify({ profileId, parameters }),
516
- credentials: this.authorization == null ? "include" : undefined
526
+ credentials: this.authorization == null ? "include" : undefined,
517
527
  });
518
528
  await handleError("POST", this.endpoints.ai.generate, response);
519
529
  const reader = new AIChunkReader(response.body.getReader());
@@ -526,7 +536,7 @@ export class FluidTopicsApi {
526
536
  "Content-Type": "application/json",
527
537
  },
528
538
  body: JSON.stringify(input),
529
- credentials: this.authorization == null ? "include" : undefined
539
+ credentials: this.authorization == null ? "include" : undefined,
530
540
  });
531
541
  await handleError("POST", this.endpoints.ai.chat, response);
532
542
  const reader = new AIChunkReader(response.body.getReader());
@@ -540,7 +550,7 @@ export class FluidTopicsApi {
540
550
  "Content-Type": "application/json",
541
551
  },
542
552
  body: JSON.stringify(input),
543
- credentials: this.authorization == null ? "include" : undefined
553
+ credentials: this.authorization == null ? "include" : undefined,
544
554
  });
545
555
  await handleError("POST", endpoint, response);
546
556
  const reader = new AIChunkReader(response.body.getReader());
@@ -590,8 +600,8 @@ export class FluidTopicsApi {
590
600
  ...(requestInit ?? {}),
591
601
  headers: {
592
602
  ...this.defaultHeaders,
593
- ...(requestInit?.headers ?? {})
594
- }
603
+ ...(requestInit?.headers ?? {}),
604
+ },
595
605
  });
596
606
  }
597
607
  upload(method, endpoint, body, onProgress = () => undefined) {
@@ -627,10 +637,10 @@ export class FluidTopicsApi {
627
637
  return this.fetch(endpoint, {
628
638
  method: method,
629
639
  headers: {
630
- ...(data != null ? { "Content-Type": "application/json" } : {})
640
+ ...(data != null ? { "Content-Type": "application/json" } : {}),
631
641
  },
632
642
  body: data != null ? JSON.stringify(data) : undefined,
633
- credentials: this.authorization == null ? "include" : undefined
643
+ credentials: this.authorization == null ? "include" : undefined,
634
644
  })
635
645
  .then((r) => handleError(method, endpoint, r))
636
646
  .then(getBody);
@@ -638,7 +648,7 @@ export class FluidTopicsApi {
638
648
  fetchRawData(endpoint, v) {
639
649
  return fetch(this.withVersion(endpoint, v), {
640
650
  headers: this.defaultHeaders,
641
- credentials: this.authorization == null ? "include" : undefined
651
+ credentials: this.authorization == null ? "include" : undefined,
642
652
  })
643
653
  .then((r) => handleError("GET", endpoint, r))
644
654
  .then(response => response.arrayBuffer());
@@ -671,7 +681,7 @@ export class FluidTopicsApi {
671
681
  return {
672
682
  translationProfileId: translationSettings.profileId,
673
683
  translationDestinationLanguage: translationSettings.destinationLanguage,
674
- translationSourceLanguage: translationSettings.sourceLanguage?.slice(0, 2)
684
+ translationSourceLanguage: translationSettings.sourceLanguage?.slice(0, 2),
675
685
  };
676
686
  }
677
687
  }
@@ -512,6 +512,12 @@ export interface FtTocNode {
512
512
  title: string;
513
513
  }
514
514
  export declare const isFtTocNode: (o: any) => o is FtTocNode;
515
+ export declare enum FtTocNodeFilteredReason {
516
+ METADATA_FILTER = "METADATA_FILTER",
517
+ ACCESS_RIGHTS_FILTER = "ACCESS_RIGHTS_FILTER"
518
+ }
519
+ export type FtTocNodeFilteredReasonKeys = keyof typeof FtTocNodeFilteredReason;
520
+ export declare const isFtTocNodeFilteredReason: (o: any) => o is FtTocNodeFilteredReason;
515
521
  export interface FtTopic {
516
522
  metadata: Array<FtMetadata>;
517
523
  id: string;
@@ -760,6 +766,12 @@ export interface FtTopicsRatingSummary {
760
766
  type: FtRatingTypeKeys;
761
767
  }
762
768
  export declare const isFtTopicsRatingSummary: (o: any) => o is FtTopicsRatingSummary;
769
+ export interface FtTocRequest {
770
+ translationProfileId?: string;
771
+ translationDestinationLanguage?: string;
772
+ metadataFilters: Array<FtMetadataFilter>;
773
+ }
774
+ export declare const isFtTocRequest: (o: any) => o is FtTocRequest;
763
775
  export interface FtMapResourceSummary {
764
776
  contentUrl: string;
765
777
  filename: string;
@@ -542,6 +542,12 @@ export const isFtTocNode = (o) => {
542
542
  && (o.untranslatedTitle == null || isString(o.untranslatedTitle))
543
543
  && (isString(o.title));
544
544
  };
545
+ export var FtTocNodeFilteredReason;
546
+ (function (FtTocNodeFilteredReason) {
547
+ FtTocNodeFilteredReason["METADATA_FILTER"] = "METADATA_FILTER";
548
+ FtTocNodeFilteredReason["ACCESS_RIGHTS_FILTER"] = "ACCESS_RIGHTS_FILTER";
549
+ })(FtTocNodeFilteredReason || (FtTocNodeFilteredReason = {}));
550
+ export const isFtTocNodeFilteredReason = (o) => Object.keys(FtTocNodeFilteredReason).includes(o);
545
551
  export const isFtTopic = (o) => {
546
552
  return isObject(o)
547
553
  && ((Array.isArray(o.metadata)
@@ -809,6 +815,13 @@ export const isFtTopicsRatingSummary = (o) => {
809
815
  && o.ratings.every((v) => isFtTopicRating(v))))
810
816
  && (isFtRatingType(o.type));
811
817
  };
818
+ export const isFtTocRequest = (o) => {
819
+ return isObject(o)
820
+ && (o.translationProfileId == null || isString(o.translationProfileId))
821
+ && (o.translationDestinationLanguage == null || isString(o.translationDestinationLanguage))
822
+ && ((Array.isArray(o.metadataFilters)
823
+ && o.metadataFilters.every((v) => isFtMetadataFilter(v))));
824
+ };
812
825
  export const isFtMapResourceSummary = (o) => {
813
826
  return isObject(o)
814
827
  && (isString(o.contentUrl))
@@ -1,4 +1,4 @@
1
- import { FtTocNode, FtTopicOrigin, FtWatermark, FtMetadata } from "../ft-common/public";
1
+ import { FtTocNode, FtTopicOrigin, FtTocNodeFilteredReasonKeys, FtWatermark, FtMetadata } from "../ft-common/public";
2
2
  export interface FtRemotePortal {
3
3
  baseUrl: string;
4
4
  id: string;
@@ -51,8 +51,6 @@ export declare enum FtChatbotAdminRatingTag {
51
51
  INACCURATE = "INACCURATE",
52
52
  INCOMPLETE = "INCOMPLETE",
53
53
  OFF_TOPIC = "OFF_TOPIC",
54
- IRRELEVANT_SOURCES = "IRRELEVANT_SOURCES",
55
- SUMMARY = "SUMMARY",
56
54
  SEMANTIC_SEARCH = "SEMANTIC_SEARCH",
57
55
  CHATBOT_INSTRUCTIONS = "CHATBOT_INSTRUCTIONS",
58
56
  DOCUMENTATION = "DOCUMENTATION",
@@ -119,6 +117,7 @@ export interface FtAgentRagChatRequest {
119
117
  profileId: string;
120
118
  conversationId: unknown;
121
119
  query: string;
120
+ stickyFiltersId?: string;
122
121
  filters?: Array<FtSemanticSearchFilter>;
123
122
  }
124
123
  export declare const isFtAgentRagChatRequest: (o: any) => o is FtAgentRagChatRequest;
@@ -127,6 +126,7 @@ export interface FtAgentGenerateRequest {
127
126
  profileId: string;
128
127
  conversationId: unknown;
129
128
  query: string;
129
+ stickyFiltersId?: string;
130
130
  searchFilters?: Array<FtSemanticSearchFilter>;
131
131
  }
132
132
  export declare const isFtAgentGenerateRequest: (o: any) => o is FtAgentGenerateRequest;
@@ -147,6 +147,7 @@ export interface FtRagInput {
147
147
  query: string;
148
148
  messages?: Array<FtRagHistory>;
149
149
  responseFormat?: FtRagResponseFormatKeys;
150
+ stickyFiltersId?: string;
150
151
  filters?: Array<FtSemanticSearchFilter>;
151
152
  }
152
153
  export declare const isFtRagInput: (o: any) => o is FtRagInput;
@@ -182,6 +183,17 @@ export interface FtGenAIGenerationTraceOutput {
182
183
  response: string;
183
184
  }
184
185
  export declare const isFtGenAIGenerationTraceOutput: (o: any) => o is FtGenAIGenerationTraceOutput;
186
+ export interface FtRagChatResponseDocumentModel {
187
+ title: string;
188
+ url: string;
189
+ content: string;
190
+ }
191
+ export declare const isFtRagChatResponseDocumentModel: (o: any) => o is FtRagChatResponseDocumentModel;
192
+ export interface FtRagChatResponseModel {
193
+ answer: string;
194
+ documents?: Array<FtRagChatResponseDocumentModel>;
195
+ }
196
+ export declare const isFtRagChatResponseModel: (o: any) => o is FtRagChatResponseModel;
185
197
  export interface FtGenAIRagFetchTracesRequest {
186
198
  endDate?: string;
187
199
  conversationId?: string;
@@ -283,6 +295,7 @@ export interface FtPageConfiguration {
283
295
  export declare const isFtPageConfiguration: (o: any) => o is FtPageConfiguration;
284
296
  export interface FtPaginatedToc {
285
297
  configuration: FtPaginationConfiguration;
298
+ filteredTocNodes: Record<string, FtTocNodeFiltered>;
286
299
  paginatedToc: Array<FtPaginatedTocNode>;
287
300
  translationError: boolean;
288
301
  }
@@ -311,6 +324,12 @@ export interface FtPaginationConfiguration {
311
324
  splitCurrentPageToc: boolean;
312
325
  }
313
326
  export declare const isFtPaginationConfiguration: (o: any) => o is FtPaginationConfiguration;
327
+ export interface FtTocNodeFiltered {
328
+ reason: FtTocNodeFilteredReasonKeys;
329
+ tocId: string;
330
+ closestParent?: string;
331
+ }
332
+ export declare const isFtTocNodeFiltered: (o: any) => o is FtTocNodeFiltered;
314
333
  export declare enum FtTopicContentFormat {
315
334
  HTML = "HTML",
316
335
  MARKDOWN = "MARKDOWN"
@@ -357,6 +376,7 @@ export interface FtClusteredSemanticSearchRequest {
357
376
  cluster?: FtClusteredSemanticSearchCluster;
358
377
  outputMetadata?: Array<string>;
359
378
  query: string;
379
+ stickyFiltersId?: string;
360
380
  filters?: Array<FtSemanticSearchFilter>;
361
381
  nbResults?: number;
362
382
  }
@@ -395,6 +415,7 @@ export declare const isFtSemanticSearchOrFilter: (o: any) => o is FtSemanticSear
395
415
  export interface FtSemanticSearchRequest {
396
416
  outputMetadata?: Array<string>;
397
417
  query: string;
418
+ stickyFiltersId?: string;
398
419
  filters?: Array<FtSemanticSearchFilter>;
399
420
  nbResults?: number;
400
421
  }
@@ -58,8 +58,6 @@ export var FtChatbotAdminRatingTag;
58
58
  FtChatbotAdminRatingTag["INACCURATE"] = "INACCURATE";
59
59
  FtChatbotAdminRatingTag["INCOMPLETE"] = "INCOMPLETE";
60
60
  FtChatbotAdminRatingTag["OFF_TOPIC"] = "OFF_TOPIC";
61
- FtChatbotAdminRatingTag["IRRELEVANT_SOURCES"] = "IRRELEVANT_SOURCES";
62
- FtChatbotAdminRatingTag["SUMMARY"] = "SUMMARY";
63
61
  FtChatbotAdminRatingTag["SEMANTIC_SEARCH"] = "SEMANTIC_SEARCH";
64
62
  FtChatbotAdminRatingTag["CHATBOT_INSTRUCTIONS"] = "CHATBOT_INSTRUCTIONS";
65
63
  FtChatbotAdminRatingTag["DOCUMENTATION"] = "DOCUMENTATION";
@@ -129,6 +127,7 @@ export const isFtAgentRagChatRequest = (o) => {
129
127
  return isObject(o)
130
128
  && (isString(o.profileId))
131
129
  && (isString(o.query))
130
+ && (o.stickyFiltersId == null || isString(o.stickyFiltersId))
132
131
  && (o.filters == null || (Array.isArray(o.filters)
133
132
  && o.filters.every((v) => isFtSemanticSearchFilter(v))));
134
133
  };
@@ -137,6 +136,7 @@ export const isFtAgentGenerateRequest = (o) => {
137
136
  && (o.stream == null || isBoolean(o.stream))
138
137
  && (isString(o.profileId))
139
138
  && (isString(o.query))
139
+ && (o.stickyFiltersId == null || isString(o.stickyFiltersId))
140
140
  && (o.searchFilters == null || (Array.isArray(o.searchFilters)
141
141
  && o.searchFilters.every((v) => isFtSemanticSearchFilter(v))));
142
142
  };
@@ -159,6 +159,7 @@ export const isFtRagInput = (o) => {
159
159
  && (o.messages == null || (Array.isArray(o.messages)
160
160
  && o.messages.every((v) => isFtRagHistory(v))))
161
161
  && (o.responseFormat == null || isFtRagResponseFormat(o.responseFormat))
162
+ && (o.stickyFiltersId == null || isString(o.stickyFiltersId))
162
163
  && (o.filters == null || (Array.isArray(o.filters)
163
164
  && o.filters.every((v) => isFtSemanticSearchFilter(v))));
164
165
  };
@@ -195,6 +196,18 @@ export const isFtGenAIGenerationTraceOutput = (o) => {
195
196
  return isObject(o)
196
197
  && (isString(o.response));
197
198
  };
199
+ export const isFtRagChatResponseDocumentModel = (o) => {
200
+ return isObject(o)
201
+ && (isString(o.title))
202
+ && (isString(o.url))
203
+ && (isString(o.content));
204
+ };
205
+ export const isFtRagChatResponseModel = (o) => {
206
+ return isObject(o)
207
+ && (isString(o.answer))
208
+ && (o.documents == null || (Array.isArray(o.documents)
209
+ && o.documents.every((v) => isFtRagChatResponseDocumentModel(v))));
210
+ };
198
211
  export const isFtGenAIRagFetchTracesRequest = (o) => {
199
212
  return isObject(o)
200
213
  && (o.endDate == null || isString(o.endDate))
@@ -300,6 +313,9 @@ export const isFtPageConfiguration = (o) => {
300
313
  export const isFtPaginatedToc = (o) => {
301
314
  return isObject(o)
302
315
  && (isFtPaginationConfiguration(o.configuration))
316
+ && ((isObject(o.filteredTocNodes)
317
+ && Object.keys(o.filteredTocNodes).every((k) => isString(k))
318
+ && Object.values(o.filteredTocNodes).every((v) => isFtTocNodeFiltered(v))))
303
319
  && ((Array.isArray(o.paginatedToc)
304
320
  && o.paginatedToc.every((v) => isFtPaginatedTocNode(v))))
305
321
  && (isBoolean(o.translationError));
@@ -328,6 +344,11 @@ export const isFtPaginationConfiguration = (o) => {
328
344
  return isObject(o)
329
345
  && (isBoolean(o.splitCurrentPageToc));
330
346
  };
347
+ export const isFtTocNodeFiltered = (o) => {
348
+ return isObject(o)
349
+ && (isString(o.tocId))
350
+ && (o.closestParent == null || isString(o.closestParent));
351
+ };
331
352
  export var FtTopicContentFormat;
332
353
  (function (FtTopicContentFormat) {
333
354
  FtTopicContentFormat["HTML"] = "HTML";
@@ -377,6 +398,7 @@ export const isFtClusteredSemanticSearchRequest = (o) => {
377
398
  && (o.outputMetadata == null || (Array.isArray(o.outputMetadata)
378
399
  && o.outputMetadata.every((v) => isString(v))))
379
400
  && (isString(o.query))
401
+ && (o.stickyFiltersId == null || isString(o.stickyFiltersId))
380
402
  && (o.filters == null || (Array.isArray(o.filters)
381
403
  && o.filters.every((v) => isFtSemanticSearchFilter(v))))
382
404
  && (o.nbResults == null || isNumber(o.nbResults));
@@ -431,6 +453,7 @@ export const isFtSemanticSearchRequest = (o) => {
431
453
  && (o.outputMetadata == null || (Array.isArray(o.outputMetadata)
432
454
  && o.outputMetadata.every((v) => isString(v))))
433
455
  && (isString(o.query))
456
+ && (o.stickyFiltersId == null || isString(o.stickyFiltersId))
434
457
  && (o.filters == null || (Array.isArray(o.filters)
435
458
  && o.filters.every((v) => isFtSemanticSearchFilter(v))))
436
459
  && (o.nbResults == null || isNumber(o.nbResults));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/public-api",
3
- "version": "1.0.141",
3
+ "version": "1.0.142-alpha1",
4
4
  "description": "Fluid Topics Public API",
5
5
  "author": "Fluid Topics dev team <opensource@antidot.net>",
6
6
  "license": "LGPL-3.0-only",
@@ -29,19 +29,19 @@
29
29
  "@rollup/plugin-typescript": "12.3.0",
30
30
  "@types/chai": "5.2.3",
31
31
  "@types/mocha": "10.0.10",
32
- "@types/node": "25.9.5",
32
+ "@types/node": "25.9.8",
33
33
  "@web/test-runner": "1.0.0",
34
34
  "@web/test-runner-junit-reporter": "1.0.0",
35
35
  "@web/test-runner-playwright": "1.0.0",
36
36
  "chai": "6.2.2",
37
- "mocha": "12.0.0",
37
+ "mocha": "12.0.2",
38
38
  "playwright": "1.63.0",
39
- "rollup": "4.63.1",
39
+ "rollup": "4.63.3",
40
40
  "ts-node": "10.9.2",
41
41
  "tslib": "2.8.1",
42
42
  "tsx": "4.23.13",
43
43
  "typescript": "6.0.3",
44
- "vite": "8.2.2"
44
+ "vite": "8.3.0"
45
45
  },
46
46
  "packageManager": "yarn@4.18.0"
47
47
  }