@fluid-topics/public-api 1.0.12 → 1.0.15
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/cjs/index.js +18 -4
- package/dist/cjs/types/ft-common/public.js +33 -3
- package/dist/fluidtopics.min.js +1 -1
- package/dist/mjs/index.d.ts +7 -1
- package/dist/mjs/index.js +19 -3
- package/dist/mjs/types/ft-common/public.d.ts +24 -3
- package/dist/mjs/types/ft-common/public.js +29 -2
- package/package.json +1 -1
package/dist/cjs/index.js
CHANGED
|
@@ -19,17 +19,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
19
19
|
});
|
|
20
20
|
};
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.FluidTopicsApi = void 0;
|
|
22
|
+
exports.FluidTopicsApi = exports.HttpError = void 0;
|
|
23
23
|
require("cross-fetch/polyfill");
|
|
24
24
|
__exportStar(require("./types/ft-common/public"), exports);
|
|
25
25
|
__exportStar(require("./types/ft-server/public"), exports);
|
|
26
26
|
function toBase64(s) {
|
|
27
27
|
return typeof Buffer !== "undefined" ? Buffer.from(s).toString("base64") : btoa(s);
|
|
28
28
|
}
|
|
29
|
+
class HttpError extends Error {
|
|
30
|
+
constructor(status, statusText, body) {
|
|
31
|
+
super(`${status} - ${statusText}: ${body}`);
|
|
32
|
+
this.status = status;
|
|
33
|
+
this.statusText = statusText;
|
|
34
|
+
this.body = body;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
exports.HttpError = HttpError;
|
|
29
38
|
function handleError(response) {
|
|
30
39
|
return __awaiter(this, void 0, void 0, function* () {
|
|
31
40
|
if (!response.ok) {
|
|
32
|
-
throw new
|
|
41
|
+
throw new HttpError(response.status, response.statusText, yield response.text());
|
|
33
42
|
}
|
|
34
43
|
return response;
|
|
35
44
|
});
|
|
@@ -38,10 +47,15 @@ function getBody(response) {
|
|
|
38
47
|
return response.headers.get("Content-Type") === "application/json" ? response.json() : response.text();
|
|
39
48
|
}
|
|
40
49
|
class FluidTopicsApi {
|
|
41
|
-
constructor(tenantBaseUrl, integrationIdentifier) {
|
|
50
|
+
constructor(tenantBaseUrl, integrationIdentifier, overrideIdentifierIfOnTenant) {
|
|
42
51
|
this.authorization = {};
|
|
43
52
|
this.tenantBaseUrl = tenantBaseUrl.trim().replace(/\/$/, "");
|
|
44
|
-
|
|
53
|
+
if (overrideIdentifierIfOnTenant && typeof window !== "undefined" && window.location.href.startsWith(tenantBaseUrl)) {
|
|
54
|
+
this.ftCallingApp = integrationIdentifier;
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.ftCallingApp = `ft-public-api/${integrationIdentifier}`;
|
|
58
|
+
}
|
|
45
59
|
}
|
|
46
60
|
get defaultHeaders() {
|
|
47
61
|
return Object.assign(Object.assign({}, this.authorization), { "Ft-Calling-App": this.ftCallingApp });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.isFtAuthenticationIdentifier = exports.isFtSuggestResults = exports.isFtSuggestResult = exports.isFtSuggestRequest = exports.isFtTopicResource = exports.isFtSpellcheck = exports.isFtSearchSortCriterion = exports.isFtSearchFacetEntry = exports.isFtSearchFacetConf = exports.isFtSearchFacet = exports.isFtSearchResultType = exports.FtSearchResultType = exports.isFtSearchResultTopic = exports.isFtSearchResultMap = exports.isFtSearchResultUnstructuredDocument = exports.isFtSearchResultClusterEntry = exports.isFtSearchResultCluster = exports.isFtSearchRequest = exports.isFtSearchResults = exports.isFtPageRequest = exports.isFtOpenMode = exports.FtOpenMode = exports.isFtEditorialType = exports.FtEditorialType = exports.isFtSearchFilter = exports.isFtMapResource = exports.isFtMetadata = exports.isFtSearchLocales = exports.isFtSearchLocale = exports.isFtTopicContentTarget = exports.FtTopicContentTarget = exports.isFtUnstructuredDocument = exports.isFtTopic = exports.isFtTocNode = exports.isFtMap = exports.isFtCollectionDocument = exports.isFtCredentials = void 0;
|
|
3
|
+
exports.isFtAuthenticationIdentifier = exports.isFtSuggestResults = exports.isFtSuggestResult = exports.isFtSuggestRequest = exports.isFtTopicResource = exports.isFtSpellcheck = exports.isFtSearchSortCriterion = exports.isFtSearchFacetEntry = exports.isFtSearchFacetConf = exports.isFtSearchFacet = exports.isFtSearchResultType = exports.FtSearchResultType = exports.isFtSearchResultTopic = exports.isFtSearchResultMap = exports.isFtSearchResultUnstructuredDocument = exports.isFtSearchResultClusterEntry = exports.isFtSearchResultCluster = exports.isFtSearchRequest = exports.isFtSearchResults = exports.isFtCollectionDocumentType = exports.FtCollectionDocumentType = exports.isFtPageRequest = exports.isFtOpenMode = exports.FtOpenMode = exports.isFtEditorialType = exports.FtEditorialType = exports.isFtSearchResultsPageInfo = exports.isFtSearchPreset = exports.isFtSearchFilter = exports.isFtMapResource = exports.isFtMetadata = exports.isFtSearchLocales = exports.isFtSearchLocale = exports.isFtTopicContentTarget = exports.FtTopicContentTarget = exports.isFtUnstructuredDocument = exports.isFtTopic = exports.isFtTocNode = exports.isFtMap = exports.isFtCollectionDocument = exports.isFtCredentials = void 0;
|
|
4
4
|
const isObject = (o) => typeof o === "object" && o != null;
|
|
5
5
|
const isBoolean = (o) => typeof o === "boolean";
|
|
6
6
|
const isNumber = (o) => typeof o === "number";
|
|
@@ -20,7 +20,7 @@ const isFtCollectionDocument = (o) => {
|
|
|
20
20
|
&& (o.portalUrl == null || isString(o.portalUrl))
|
|
21
21
|
&& (isString(o.id))
|
|
22
22
|
&& (isString(o.title))
|
|
23
|
-
&& ((0, exports.
|
|
23
|
+
&& ((0, exports.isFtCollectionDocumentType)(o.type));
|
|
24
24
|
};
|
|
25
25
|
exports.isFtCollectionDocument = isFtCollectionDocument;
|
|
26
26
|
const isFtMap = (o) => {
|
|
@@ -103,7 +103,7 @@ const isFtSearchLocale = (o) => {
|
|
|
103
103
|
return isObject(o)
|
|
104
104
|
&& (isNumber(o.count))
|
|
105
105
|
&& (isString(o.label))
|
|
106
|
-
&& (isString(o.lang));
|
|
106
|
+
&& (o.lang == null || isString(o.lang));
|
|
107
107
|
};
|
|
108
108
|
exports.isFtSearchLocale = isFtSearchLocale;
|
|
109
109
|
const isFtSearchLocales = (o) => {
|
|
@@ -136,6 +136,22 @@ const isFtSearchFilter = (o) => {
|
|
|
136
136
|
&& (isString(o.key));
|
|
137
137
|
};
|
|
138
138
|
exports.isFtSearchFilter = isFtSearchFilter;
|
|
139
|
+
const isFtSearchPreset = (o) => {
|
|
140
|
+
return isObject(o)
|
|
141
|
+
&& (isString(o.name))
|
|
142
|
+
&& ((Array.isArray(o.filters)
|
|
143
|
+
&& o.filters.every((v) => (0, exports.isFtSearchFilter)(v))))
|
|
144
|
+
&& (o.contentLocale == null || isString(o.contentLocale));
|
|
145
|
+
};
|
|
146
|
+
exports.isFtSearchPreset = isFtSearchPreset;
|
|
147
|
+
const isFtSearchResultsPageInfo = (o) => {
|
|
148
|
+
return isObject(o)
|
|
149
|
+
&& (isNumber(o.totalResultsCount))
|
|
150
|
+
&& (isBoolean(o.lastPage))
|
|
151
|
+
&& (isNumber(o.currentPage))
|
|
152
|
+
&& (isNumber(o.totalClustersCount));
|
|
153
|
+
};
|
|
154
|
+
exports.isFtSearchResultsPageInfo = isFtSearchResultsPageInfo;
|
|
139
155
|
// From: WsEditorialType
|
|
140
156
|
var FtEditorialType;
|
|
141
157
|
(function (FtEditorialType) {
|
|
@@ -162,9 +178,23 @@ const isFtPageRequest = (o) => {
|
|
|
162
178
|
&& (isNumber(o.page));
|
|
163
179
|
};
|
|
164
180
|
exports.isFtPageRequest = isFtPageRequest;
|
|
181
|
+
// From: WsPublicCollectionDocumentType
|
|
182
|
+
var FtCollectionDocumentType;
|
|
183
|
+
(function (FtCollectionDocumentType) {
|
|
184
|
+
FtCollectionDocumentType["MAP"] = "MAP";
|
|
185
|
+
FtCollectionDocumentType["DOCUMENT"] = "DOCUMENT";
|
|
186
|
+
FtCollectionDocumentType["TOPIC"] = "TOPIC";
|
|
187
|
+
FtCollectionDocumentType["PERSONAL_BOOK"] = "PERSONAL_BOOK";
|
|
188
|
+
FtCollectionDocumentType["SHARED_BOOK"] = "SHARED_BOOK";
|
|
189
|
+
})(FtCollectionDocumentType = exports.FtCollectionDocumentType || (exports.FtCollectionDocumentType = {}));
|
|
190
|
+
const isFtCollectionDocumentType = (o) => {
|
|
191
|
+
return ["MAP", "DOCUMENT", "TOPIC", "PERSONAL_BOOK", "SHARED_BOOK"].includes(o);
|
|
192
|
+
};
|
|
193
|
+
exports.isFtCollectionDocumentType = isFtCollectionDocumentType;
|
|
165
194
|
const isFtSearchResults = (o) => {
|
|
166
195
|
return isObject(o)
|
|
167
196
|
&& (o.spellcheck == null || (0, exports.isFtSpellcheck)(o.spellcheck))
|
|
197
|
+
&& ((0, exports.isFtSearchResultsPageInfo)(o.paging))
|
|
168
198
|
&& ((Array.isArray(o.results)
|
|
169
199
|
&& o.results.every((v) => (0, exports.isFtSearchResultCluster)(v))))
|
|
170
200
|
&& ((Array.isArray(o.facets)
|
package/dist/fluidtopics.min.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).fluidtopics={})}(this,(function(e){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r={exports:{}},i={exports:{}};!function(e,t){var r=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r)return r;throw new Error("unable to locate global object")}();e.exports=t=r.fetch,r.fetch&&(t.default=r.fetch.bind(r)),t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response}(i,i.exports),function(e,t){const r=i.exports,a=r.default||r,n=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),a.call(this,e,t)};n.ponyfill=!0,e.exports=t=n,t.fetch=n,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,t.default=n}(r,r.exports);const a=r.exports,n=a.fetch.bind({});n.polyfill=!0,t.fetch||(t.fetch=n,t.Response=a.Response,t.Headers=a.Headers,t.Request=a.Request);const s=e=>"object"==typeof e&&null!=e,l=e=>"boolean"==typeof e,o=e=>"number"==typeof e,u=e=>"string"==typeof e,c=e=>s(e)&&u(e.tocId)&&Array.isArray(e.children)&&e.children.every((e=>c(e)))&&u(e.contentId)&&u(e.title);var p;e.FtTopicContentTarget=void 0,(p=e.FtTopicContentTarget||(e.FtTopicContentTarget={})).THIRD_PARTY="THIRD_PARTY",p.OFF_THE_GRID="OFF_THE_GRID";const d=e=>s(e)&&o(e.count)&&u(e.label)&&u(e.lang),h=e=>s(e)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.label)&&u(e.key),y=e=>s(e)&&l(e.negative)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.key);var f;e.FtEditorialType=void 0,(f=e.FtEditorialType||(e.FtEditorialType={})).ARTICLE="ARTICLE",f.BOOK="BOOK";const m=e=>["ARTICLE","BOOK"].includes(e);var g;e.FtOpenMode=void 0,(g=e.FtOpenMode||(e.FtOpenMode={})).FLUIDTOPICS="FLUIDTOPICS",g.EXTERNAL="EXTERNAL";const A=e=>["FLUIDTOPICS","EXTERNAL"].includes(e),T=e=>s(e)&&(null==e.perPage||o(e.perPage))&&o(e.page),b=e=>s(e)&&Array.isArray(e.entries)&&e.entries.every((e=>F(e)))&&(null==e.metadataVariableAxis||u(e.metadataVariableAxis)),F=e=>s(e)&&(null==e.document||R(e.document))&&(null==e.topic||v(e.topic))&&C(e.type)&&(null==e.map||U(e.map)),R=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&A(e.openMode)&&u(e.documentUrl)&&u(e.mimeType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.viewerUrl)&&u(e.contentUrl)&&u(e.filename)&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.documentId)&&u(e.lastEditionDate)&&u(e.htmlExcerpt),U=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&A(e.openMode)&&m(e.editorialType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.mapUrl)&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt),v=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&A(e.openMode)&&u(e.contentId)&&Array.isArray(e.resources)&&e.resources.every((e=>x(e)))&&u(e.title)&&u(e.mapTitle)&&u(e.topicUrl)&&u(e.contentUrl)&&u(e.htmlTitle)&&Array.isArray(e.breadcrumb)&&e.breadcrumb.every((e=>u(e)))&&u(e.tocId)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt);var E;e.FtSearchResultType=void 0,(E=e.FtSearchResultType||(e.FtSearchResultType={})).MAP="MAP",E.DOCUMENT="DOCUMENT",E.TOPIC="TOPIC";const C=e=>["MAP","DOCUMENT","TOPIC"].includes(e),I=e=>s(e)&&l(e.hierarchical)&&u(e.label)&&l(e.multiSelectionable)&&u(e.key)&&Array.isArray(e.rootNodes)&&e.rootNodes.every((e=>S(e))),D=e=>s(e)&&(null==e.maxDepth||o(e.maxDepth))&&u(e.id),S=e=>s(e)&&o(e.totalResultsCount)&&l(e.descendantSelected)&&Array.isArray(e.childNodes)&&e.childNodes.every((e=>S(e)))&&u(e.label)&&u(e.value)&&l(e.selected),k=e=>s(e)&&u(e.key),w=e=>s(e)&&u(e.suggestedQuery)&&u(e.htmlSuggestedQuery),x=e=>s(e)&&u(e.filename)&&u(e.resourceUrl)&&u(e.id)&&u(e.mimeType)&&u(e.resourceContentUrl)&&u(e.viewerUrl),M=e=>s(e)&&(null==e.filenameExtension||u(e.filenameExtension))&&(null==e.editorialType||m(e.editorialType))&&(null==e.mimeType||u(e.mimeType))&&C(e.type)&&u(e.value),P=e=>"object"==typeof e&&null!=e,O=e=>"string"==typeof e,$=e=>P(e)&&(null==e.emailAddress||O(e.emailAddress))&&(null==e.displayName||O(e.displayName))&&Array.isArray(e.roles)&&O(e.userId);async function L(e){if(!e.ok)throw new Error(`${e.status} - ${e.statusText}: ${await e.text()}`);return e}function H(e){return"application/json"===e.headers.get("Content-Type")?e.json():e.text()}class q{tenantBaseUrl;ftCallingApp;authorization={};get defaultHeaders(){return{...this.authorization,"Ft-Calling-App":this.ftCallingApp}}constructor(e,t){this.tenantBaseUrl=e.trim().replace(/\/$/,""),this.ftCallingApp=`ft-public-api/${t}`}setApiKey(e){this.authorization={Authorization:"Bearer "+e}}setCredentials(e,t){var r;this.authorization={Authorization:"Basic "+(r=`${e}:${t}`,"undefined"!=typeof Buffer?Buffer.from(r).toString("base64"):btoa(r))}}clearAuthentication(){this.authorization={}}login(e,t){let r={login:e,password:t,rememberMe:!0};return this.post("/api/authentication/login",r).then((r=>(this.setCredentials(e,t),r)))}logout(){return this.post("/api/authentication/logout").then((()=>this.clearAuthentication()))}getMap(e){return this.get(`/api/khub/maps/${e}`)}getTableOfContent(e){return this.get(`/api/khub/maps/${e}/toc`)}getTopic(e,t){return this.get(`/api/khub/maps/${e}/topics/${t}`)}getTopicHTMLContent(e,t,r){return this.get(`/api/khub/maps/${e}/topics/${t}/content${r?"?target="+r:""}`)}getMapAttachments(e){return this.get(`/api/khub/maps/${e}/attachments`)}getMapAttachmentContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/attachments/${t}/content`)}getMapResources(e){return this.get(`/api/khub/maps/${e}/resources`)}getMapResourceContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/resources/${t}/content`)}getUnstructuredDocument(e){return this.get(`/api/khub/documents/${e}`)}getUnstructuredDocumentContent(e){return this.fetchRawData(`/api/khub/documents/${e}/content`)}getUnstructuredDocumentTextContent(e){return this.get(`/api/khub/documents/${e}/content/text`)}getCollectionDocuments(e,t){return this.get(`/api/users/${e}/collections/${t}/documents`)}getSuggestions(e){return this.post("/api/khub/suggest",e)}search(e){return this.post("/api/khub/clustered-search",e)}getAvailableSearchLocales(){return this.get("/api/khub/locales")}get(e){return this.makeRequest("GET",e)}post(e,t){return this.makeRequest("POST",e,t)}put(e,t){return this.makeRequest("PUT",e,t)}delete(e){return this.makeRequest("DELETE",e)}async fetch(e,t){const r=t;return e.startsWith("/")||(e="/"+e),await fetch(this.tenantBaseUrl+e,{...r??{},headers:{...this.defaultHeaders,...r?.headers??{}}})}makeRequest(e,t,r){return this.fetch(t,{method:e,headers:{...null!=r?{"Content-Type":"application/json"}:{}},body:null!=r?JSON.stringify(r):void 0}).then(L).then(H)}fetchRawData(e){return fetch(this.tenantBaseUrl+e,{headers:this.defaultHeaders}).then(L).then((e=>e.arrayBuffer()))}}e.FluidTopicsApi=q,e.default=q,e.isFtAuthenticatedSession=e=>P(e)&&$(e.profile),e.isFtAuthenticationIdentifier=e=>s(e)&&u(e.identifier)&&u(e.realm),e.isFtCollectionDocument=e=>s(e)&&l(e.deleted)&&(null==e.apiUrl||u(e.apiUrl))&&(null==e.portalUrl||u(e.portalUrl))&&u(e.id)&&u(e.title)&&C(e.type),e.isFtCredentials=e=>s(e)&&u(e.password)&&(null==e.newPassword||u(e.newPassword))&&l(e.rememberMe)&&u(e.login),e.isFtEditorialType=m,e.isFtMap=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&A(e.openMode)&&u(e.topicsApiEndpoint)&&(null==e.description||u(e.description))&&u(e.attachmentsApiEndpoint)&&m(e.editorialType)&&u(e.baseId)&&u(e.clusterId)&&u(e.title)&&u(e.lastPublication)&&u(e.lastEdition)&&u(e.originId)&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtMapAttachment=e=>P(e)&&O(e.file)&&(null==e.size||(e=>"number"==typeof e)(e.size))&&(e=>"boolean"==typeof e)(e.externalLink)&&O(e.name)&&O(e.id)&&(null==e.mimeType||O(e.mimeType))&&(null==e.viewerUrl||O(e.viewerUrl)),e.isFtMapResource=e=>s(e)&&u(e.contentUrl)&&u(e.filename)&&u(e.id)&&u(e.mimeType),e.isFtMetadata=h,e.isFtOpenMode=A,e.isFtPageRequest=T,e.isFtSearchFacet=I,e.isFtSearchFacetConf=D,e.isFtSearchFacetEntry=S,e.isFtSearchFilter=y,e.isFtSearchLocale=d,e.isFtSearchLocales=e=>s(e)&&Array.isArray(e.contentLocales)&&e.contentLocales.every((e=>d(e))),e.isFtSearchRequest=e=>s(e)&&u(e.query)&&T(e.paging)&&Array.isArray(e.filters)&&e.filters.every((e=>y(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>k(e)))&&(null==e.uiLocale||u(e.uiLocale))&&(null==e.contentLocale||u(e.contentLocale))&&Array.isArray(e.facets)&&e.facets.every((e=>D(e))),e.isFtSearchResultCluster=b,e.isFtSearchResultClusterEntry=F,e.isFtSearchResultMap=U,e.isFtSearchResultTopic=v,e.isFtSearchResultType=C,e.isFtSearchResultUnstructuredDocument=R,e.isFtSearchResults=e=>s(e)&&(null==e.spellcheck||w(e.spellcheck))&&Array.isArray(e.results)&&e.results.every((e=>b(e)))&&Array.isArray(e.facets)&&e.facets.every((e=>I(e))),e.isFtSearchSortCriterion=k,e.isFtSpellcheck=w,e.isFtSuggestRequest=e=>s(e)&&u(e.input)&&Array.isArray(e.filters)&&e.filters.every((e=>y(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>k(e)))&&(null==e.maxCount||o(e.maxCount))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSuggestResult=M,e.isFtSuggestResults=e=>s(e)&&Array.isArray(e.suggestions)&&e.suggestions.every((e=>M(e))),e.isFtTocNode=c,e.isFtTopic=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.id)&&u(e.contentApiEndpoint)&&u(e.title),e.isFtTopicContentTarget=e=>["THIRD_PARTY","OFF_THE_GRID"].includes(e),e.isFtTopicResource=x,e.isFtUnstructuredDocument=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.openMode)&&(null==e.description||u(e.description))&&u(e.mimeType)&&(null==e.baseId||u(e.baseId))&&(null==e.clusterId||u(e.clusterId))&&u(e.contentApiEndpoint)&&u(e.title)&&(null==e.lastPublication||u(e.lastPublication))&&u(e.viewerUrl)&&u(e.lastEdition)&&u(e.filename)&&(null==e.originId||u(e.originId))&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtUserProfile=$}));
|
|
1
|
+
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).fluidtopics={})}(this,(function(e){"use strict";var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},r={exports:{}},i={exports:{}};!function(e,t){var r=function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if(void 0!==r)return r;throw new Error("unable to locate global object")}();e.exports=t=r.fetch,r.fetch&&(t.default=r.fetch.bind(r)),t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response}(i,i.exports),function(e,t){const r=i.exports,a=r.default||r,n=function(e,t){return/^\/\//.test(e)&&(e="https:"+e),a.call(this,e,t)};n.ponyfill=!0,e.exports=t=n,t.fetch=n,t.Headers=r.Headers,t.Request=r.Request,t.Response=r.Response,t.default=n}(r,r.exports);const a=r.exports,n=a.fetch.bind({});n.polyfill=!0,t.fetch||(t.fetch=n,t.Response=a.Response,t.Headers=a.Headers,t.Request=a.Request);const s=e=>"object"==typeof e&&null!=e,l=e=>"boolean"==typeof e,o=e=>"number"==typeof e,u=e=>"string"==typeof e,c=e=>s(e)&&u(e.tocId)&&Array.isArray(e.children)&&e.children.every((e=>c(e)))&&u(e.contentId)&&u(e.title);var p;e.FtTopicContentTarget=void 0,(p=e.FtTopicContentTarget||(e.FtTopicContentTarget={})).THIRD_PARTY="THIRD_PARTY",p.OFF_THE_GRID="OFF_THE_GRID";const d=e=>s(e)&&o(e.count)&&u(e.label)&&(null==e.lang||u(e.lang)),h=e=>s(e)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.label)&&u(e.key),y=e=>s(e)&&l(e.negative)&&Array.isArray(e.values)&&e.values.every((e=>u(e)))&&u(e.key),f=e=>s(e)&&o(e.totalResultsCount)&&l(e.lastPage)&&o(e.currentPage)&&o(e.totalClustersCount);var m;e.FtEditorialType=void 0,(m=e.FtEditorialType||(e.FtEditorialType={})).ARTICLE="ARTICLE",m.BOOK="BOOK";const g=e=>["ARTICLE","BOOK"].includes(e);var A;e.FtOpenMode=void 0,(A=e.FtOpenMode||(e.FtOpenMode={})).FLUIDTOPICS="FLUIDTOPICS",A.EXTERNAL="EXTERNAL";const T=e=>["FLUIDTOPICS","EXTERNAL"].includes(e),F=e=>s(e)&&(null==e.perPage||o(e.perPage))&&o(e.page);var b;e.FtCollectionDocumentType=void 0,(b=e.FtCollectionDocumentType||(e.FtCollectionDocumentType={})).MAP="MAP",b.DOCUMENT="DOCUMENT",b.TOPIC="TOPIC",b.PERSONAL_BOOK="PERSONAL_BOOK",b.SHARED_BOOK="SHARED_BOOK";const R=e=>["MAP","DOCUMENT","TOPIC","PERSONAL_BOOK","SHARED_BOOK"].includes(e),C=e=>s(e)&&Array.isArray(e.entries)&&e.entries.every((e=>E(e)))&&(null==e.metadataVariableAxis||u(e.metadataVariableAxis)),E=e=>s(e)&&(null==e.document||U(e.document))&&(null==e.topic||O(e.topic))&&S(e.type)&&(null==e.map||v(e.map)),U=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&T(e.openMode)&&u(e.documentUrl)&&u(e.mimeType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.viewerUrl)&&u(e.contentUrl)&&u(e.filename)&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.documentId)&&u(e.lastEditionDate)&&u(e.htmlExcerpt),v=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&T(e.openMode)&&g(e.editorialType)&&u(e.title)&&(null==e.lastPublicationDate||u(e.lastPublicationDate))&&u(e.htmlTitle)&&(null==e.originUrl||u(e.originUrl))&&u(e.mapUrl)&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt),O=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&T(e.openMode)&&u(e.contentId)&&Array.isArray(e.resources)&&e.resources.every((e=>x(e)))&&u(e.title)&&u(e.mapTitle)&&u(e.topicUrl)&&u(e.contentUrl)&&u(e.htmlTitle)&&Array.isArray(e.breadcrumb)&&e.breadcrumb.every((e=>u(e)))&&u(e.tocId)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&u(e.mapId)&&(null==e.lastEditionDate||u(e.lastEditionDate))&&u(e.htmlExcerpt);var D;e.FtSearchResultType=void 0,(D=e.FtSearchResultType||(e.FtSearchResultType={})).MAP="MAP",D.DOCUMENT="DOCUMENT",D.TOPIC="TOPIC";const S=e=>["MAP","DOCUMENT","TOPIC"].includes(e),I=e=>s(e)&&l(e.hierarchical)&&u(e.label)&&l(e.multiSelectionable)&&u(e.key)&&Array.isArray(e.rootNodes)&&e.rootNodes.every((e=>M(e))),P=e=>s(e)&&(null==e.maxDepth||o(e.maxDepth))&&u(e.id),M=e=>s(e)&&o(e.totalResultsCount)&&l(e.descendantSelected)&&Array.isArray(e.childNodes)&&e.childNodes.every((e=>M(e)))&&u(e.label)&&u(e.value)&&l(e.selected),w=e=>s(e)&&u(e.key),k=e=>s(e)&&u(e.suggestedQuery)&&u(e.htmlSuggestedQuery),x=e=>s(e)&&u(e.filename)&&u(e.resourceUrl)&&u(e.id)&&u(e.mimeType)&&u(e.resourceContentUrl)&&u(e.viewerUrl),L=e=>s(e)&&(null==e.filenameExtension||u(e.filenameExtension))&&(null==e.editorialType||g(e.editorialType))&&(null==e.mimeType||u(e.mimeType))&&S(e.type)&&u(e.value),$=e=>"object"==typeof e&&null!=e,H=e=>"string"==typeof e,N=e=>$(e)&&(null==e.emailAddress||H(e.emailAddress))&&(null==e.displayName||H(e.displayName))&&Array.isArray(e.roles)&&H(e.userId);class B extends Error{status;statusText;body;constructor(e,t,r){super(`${e} - ${t}: ${r}`),this.status=e,this.statusText=t,this.body=r}}async function q(e){if(!e.ok)throw new B(e.status,e.statusText,await e.text());return e}function _(e){return"application/json"===e.headers.get("Content-Type")?e.json():e.text()}class K{tenantBaseUrl;ftCallingApp;authorization={};get defaultHeaders(){return{...this.authorization,"Ft-Calling-App":this.ftCallingApp}}constructor(e,t,r){this.tenantBaseUrl=e.trim().replace(/\/$/,""),r&&"undefined"!=typeof window&&window.location.href.startsWith(e)?this.ftCallingApp=t:this.ftCallingApp=`ft-public-api/${t}`}setApiKey(e){this.authorization={Authorization:"Bearer "+e}}setCredentials(e,t){var r;this.authorization={Authorization:"Basic "+(r=`${e}:${t}`,"undefined"!=typeof Buffer?Buffer.from(r).toString("base64"):btoa(r))}}clearAuthentication(){this.authorization={}}login(e,t){let r={login:e,password:t,rememberMe:!0};return this.post("/api/authentication/login",r).then((r=>(this.setCredentials(e,t),r)))}logout(){return this.post("/api/authentication/logout").then((()=>this.clearAuthentication()))}getMap(e){return this.get(`/api/khub/maps/${e}`)}getTableOfContent(e){return this.get(`/api/khub/maps/${e}/toc`)}getTopic(e,t){return this.get(`/api/khub/maps/${e}/topics/${t}`)}getTopicHTMLContent(e,t,r){return this.get(`/api/khub/maps/${e}/topics/${t}/content${r?"?target="+r:""}`)}getMapAttachments(e){return this.get(`/api/khub/maps/${e}/attachments`)}getMapAttachmentContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/attachments/${t}/content`)}getMapResources(e){return this.get(`/api/khub/maps/${e}/resources`)}getMapResourceContent(e,t){return this.fetchRawData(`/api/khub/maps/${e}/resources/${t}/content`)}getUnstructuredDocument(e){return this.get(`/api/khub/documents/${e}`)}getUnstructuredDocumentContent(e){return this.fetchRawData(`/api/khub/documents/${e}/content`)}getUnstructuredDocumentTextContent(e){return this.get(`/api/khub/documents/${e}/content/text`)}getCollectionDocuments(e,t){return this.get(`/api/users/${e}/collections/${t}/documents`)}getSuggestions(e){return this.post("/api/khub/suggest",e)}search(e){return this.post("/api/khub/clustered-search",e)}getAvailableSearchLocales(){return this.get("/api/khub/locales")}get(e){return this.makeRequest("GET",e)}post(e,t){return this.makeRequest("POST",e,t)}put(e,t){return this.makeRequest("PUT",e,t)}delete(e){return this.makeRequest("DELETE",e)}async fetch(e,t){const r=t;return e.startsWith("/")||(e="/"+e),await fetch(this.tenantBaseUrl+e,{...r??{},headers:{...this.defaultHeaders,...r?.headers??{}}})}makeRequest(e,t,r){return this.fetch(t,{method:e,headers:{...null!=r?{"Content-Type":"application/json"}:{}},body:null!=r?JSON.stringify(r):void 0}).then(q).then(_)}fetchRawData(e){return fetch(this.tenantBaseUrl+e,{headers:this.defaultHeaders}).then(q).then((e=>e.arrayBuffer()))}}e.FluidTopicsApi=K,e.HttpError=B,e.default=K,e.isFtAuthenticatedSession=e=>$(e)&&N(e.profile),e.isFtAuthenticationIdentifier=e=>s(e)&&u(e.identifier)&&u(e.realm),e.isFtCollectionDocument=e=>s(e)&&l(e.deleted)&&(null==e.apiUrl||u(e.apiUrl))&&(null==e.portalUrl||u(e.portalUrl))&&u(e.id)&&u(e.title)&&R(e.type),e.isFtCollectionDocumentType=R,e.isFtCredentials=e=>s(e)&&u(e.password)&&(null==e.newPassword||u(e.newPassword))&&l(e.rememberMe)&&u(e.login),e.isFtEditorialType=g,e.isFtMap=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&T(e.openMode)&&u(e.topicsApiEndpoint)&&(null==e.description||u(e.description))&&u(e.attachmentsApiEndpoint)&&g(e.editorialType)&&u(e.baseId)&&u(e.clusterId)&&u(e.title)&&u(e.lastPublication)&&u(e.lastEdition)&&u(e.originId)&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&u(e.readerUrl)&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtMapAttachment=e=>$(e)&&H(e.file)&&(null==e.size||(e=>"number"==typeof e)(e.size))&&(e=>"boolean"==typeof e)(e.externalLink)&&H(e.name)&&H(e.id)&&(null==e.mimeType||H(e.mimeType))&&(null==e.viewerUrl||H(e.viewerUrl)),e.isFtMapResource=e=>s(e)&&u(e.contentUrl)&&u(e.filename)&&u(e.id)&&u(e.mimeType),e.isFtMetadata=h,e.isFtOpenMode=T,e.isFtPageRequest=F,e.isFtSearchFacet=I,e.isFtSearchFacetConf=P,e.isFtSearchFacetEntry=M,e.isFtSearchFilter=y,e.isFtSearchLocale=d,e.isFtSearchLocales=e=>s(e)&&Array.isArray(e.contentLocales)&&e.contentLocales.every((e=>d(e))),e.isFtSearchPreset=e=>s(e)&&u(e.name)&&Array.isArray(e.filters)&&e.filters.every((e=>y(e)))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSearchRequest=e=>s(e)&&u(e.query)&&F(e.paging)&&Array.isArray(e.filters)&&e.filters.every((e=>y(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>w(e)))&&(null==e.uiLocale||u(e.uiLocale))&&(null==e.contentLocale||u(e.contentLocale))&&Array.isArray(e.facets)&&e.facets.every((e=>P(e))),e.isFtSearchResultCluster=C,e.isFtSearchResultClusterEntry=E,e.isFtSearchResultMap=v,e.isFtSearchResultTopic=O,e.isFtSearchResultType=S,e.isFtSearchResultUnstructuredDocument=U,e.isFtSearchResults=e=>s(e)&&(null==e.spellcheck||k(e.spellcheck))&&f(e.paging)&&Array.isArray(e.results)&&e.results.every((e=>C(e)))&&Array.isArray(e.facets)&&e.facets.every((e=>I(e))),e.isFtSearchResultsPageInfo=f,e.isFtSearchSortCriterion=w,e.isFtSpellcheck=k,e.isFtSuggestRequest=e=>s(e)&&u(e.input)&&Array.isArray(e.filters)&&e.filters.every((e=>y(e)))&&Array.isArray(e.sort)&&e.sort.every((e=>w(e)))&&(null==e.maxCount||o(e.maxCount))&&(null==e.contentLocale||u(e.contentLocale)),e.isFtSuggestResult=L,e.isFtSuggestResults=e=>s(e)&&Array.isArray(e.suggestions)&&e.suggestions.every((e=>L(e))),e.isFtTocNode=c,e.isFtTopic=e=>s(e)&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.id)&&u(e.contentApiEndpoint)&&u(e.title),e.isFtTopicContentTarget=e=>["THIRD_PARTY","OFF_THE_GRID"].includes(e),e.isFtTopicResource=x,e.isFtUnstructuredDocument=e=>s(e)&&(null==e.prettyUrl||u(e.prettyUrl))&&Array.isArray(e.metadata)&&e.metadata.every((e=>h(e)))&&u(e.openMode)&&(null==e.description||u(e.description))&&u(e.mimeType)&&(null==e.baseId||u(e.baseId))&&(null==e.clusterId||u(e.clusterId))&&u(e.contentApiEndpoint)&&u(e.title)&&(null==e.lastPublication||u(e.lastPublication))&&u(e.viewerUrl)&&u(e.lastEdition)&&u(e.filename)&&(null==e.originId||u(e.originId))&&u(e.rightsApiEndpoint)&&(null==e.originUrl||u(e.originUrl))&&(null==e.khubVersion||u(e.khubVersion))&&u(e.id)&&(null==e.lang||u(e.lang)),e.isFtUserProfile=N}));
|
package/dist/mjs/index.d.ts
CHANGED
|
@@ -3,12 +3,18 @@ import { FtCollectionDocument, FtMap, FtMapResource, FtSearchLocales, FtSearchRe
|
|
|
3
3
|
import { FtAuthenticatedSession, FtMapAttachment } from "./types/ft-server/public";
|
|
4
4
|
export * from "./types/ft-common/public";
|
|
5
5
|
export * from "./types/ft-server/public";
|
|
6
|
+
export declare class HttpError extends Error {
|
|
7
|
+
readonly status: number;
|
|
8
|
+
readonly statusText: string;
|
|
9
|
+
readonly body: string;
|
|
10
|
+
constructor(status: number, statusText: string, body: string);
|
|
11
|
+
}
|
|
6
12
|
export declare class FluidTopicsApi {
|
|
7
13
|
private readonly tenantBaseUrl;
|
|
8
14
|
private readonly ftCallingApp;
|
|
9
15
|
private authorization;
|
|
10
16
|
private get defaultHeaders();
|
|
11
|
-
constructor(tenantBaseUrl: string, integrationIdentifier: string);
|
|
17
|
+
constructor(tenantBaseUrl: string, integrationIdentifier: string, overrideIdentifierIfOnTenant?: boolean);
|
|
12
18
|
setApiKey(apiKey: string): void;
|
|
13
19
|
setCredentials(login: string, password: string): void;
|
|
14
20
|
clearAuthentication(): void;
|
package/dist/mjs/index.js
CHANGED
|
@@ -4,9 +4,20 @@ export * from "./types/ft-server/public";
|
|
|
4
4
|
function toBase64(s) {
|
|
5
5
|
return typeof Buffer !== "undefined" ? Buffer.from(s).toString("base64") : btoa(s);
|
|
6
6
|
}
|
|
7
|
+
export class HttpError extends Error {
|
|
8
|
+
status;
|
|
9
|
+
statusText;
|
|
10
|
+
body;
|
|
11
|
+
constructor(status, statusText, body) {
|
|
12
|
+
super(`${status} - ${statusText}: ${body}`);
|
|
13
|
+
this.status = status;
|
|
14
|
+
this.statusText = statusText;
|
|
15
|
+
this.body = body;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
7
18
|
async function handleError(response) {
|
|
8
19
|
if (!response.ok) {
|
|
9
|
-
throw new
|
|
20
|
+
throw new HttpError(response.status, response.statusText, await response.text());
|
|
10
21
|
}
|
|
11
22
|
return response;
|
|
12
23
|
}
|
|
@@ -23,9 +34,14 @@ export class FluidTopicsApi {
|
|
|
23
34
|
"Ft-Calling-App": this.ftCallingApp
|
|
24
35
|
};
|
|
25
36
|
}
|
|
26
|
-
constructor(tenantBaseUrl, integrationIdentifier) {
|
|
37
|
+
constructor(tenantBaseUrl, integrationIdentifier, overrideIdentifierIfOnTenant) {
|
|
27
38
|
this.tenantBaseUrl = tenantBaseUrl.trim().replace(/\/$/, "");
|
|
28
|
-
|
|
39
|
+
if (overrideIdentifierIfOnTenant && typeof window !== "undefined" && window.location.href.startsWith(tenantBaseUrl)) {
|
|
40
|
+
this.ftCallingApp = integrationIdentifier;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
this.ftCallingApp = `ft-public-api/${integrationIdentifier}`;
|
|
44
|
+
}
|
|
29
45
|
}
|
|
30
46
|
setApiKey(apiKey) {
|
|
31
47
|
this.authorization = { "Authorization": "Bearer " + apiKey };
|
|
@@ -11,7 +11,7 @@ export interface FtCollectionDocument {
|
|
|
11
11
|
portalUrl?: string;
|
|
12
12
|
id: string;
|
|
13
13
|
title: string;
|
|
14
|
-
type:
|
|
14
|
+
type: FtCollectionDocumentType;
|
|
15
15
|
}
|
|
16
16
|
export declare const isFtCollectionDocument: (o: any) => o is FtCollectionDocument;
|
|
17
17
|
export interface FtMap {
|
|
@@ -80,7 +80,7 @@ export declare const isFtTopicContentTarget: (o: any) => o is FtTopicContentTarg
|
|
|
80
80
|
export interface FtSearchLocale {
|
|
81
81
|
count: number;
|
|
82
82
|
label: string;
|
|
83
|
-
lang
|
|
83
|
+
lang?: string;
|
|
84
84
|
}
|
|
85
85
|
export declare const isFtSearchLocale: (o: any) => o is FtSearchLocale;
|
|
86
86
|
export interface FtSearchLocales {
|
|
@@ -106,6 +106,19 @@ export interface FtSearchFilter {
|
|
|
106
106
|
key: string;
|
|
107
107
|
}
|
|
108
108
|
export declare const isFtSearchFilter: (o: any) => o is FtSearchFilter;
|
|
109
|
+
export interface FtSearchPreset {
|
|
110
|
+
name: string;
|
|
111
|
+
filters: Array<FtSearchFilter>;
|
|
112
|
+
contentLocale?: string;
|
|
113
|
+
}
|
|
114
|
+
export declare const isFtSearchPreset: (o: any) => o is FtSearchPreset;
|
|
115
|
+
export interface FtSearchResultsPageInfo {
|
|
116
|
+
totalResultsCount: number;
|
|
117
|
+
lastPage: boolean;
|
|
118
|
+
currentPage: number;
|
|
119
|
+
totalClustersCount: number;
|
|
120
|
+
}
|
|
121
|
+
export declare const isFtSearchResultsPageInfo: (o: any) => o is FtSearchResultsPageInfo;
|
|
109
122
|
export declare enum FtEditorialType {
|
|
110
123
|
ARTICLE = "ARTICLE",
|
|
111
124
|
BOOK = "BOOK"
|
|
@@ -121,9 +134,17 @@ export interface FtPageRequest {
|
|
|
121
134
|
page: number;
|
|
122
135
|
}
|
|
123
136
|
export declare const isFtPageRequest: (o: any) => o is FtPageRequest;
|
|
137
|
+
export declare enum FtCollectionDocumentType {
|
|
138
|
+
MAP = "MAP",
|
|
139
|
+
DOCUMENT = "DOCUMENT",
|
|
140
|
+
TOPIC = "TOPIC",
|
|
141
|
+
PERSONAL_BOOK = "PERSONAL_BOOK",
|
|
142
|
+
SHARED_BOOK = "SHARED_BOOK"
|
|
143
|
+
}
|
|
144
|
+
export declare const isFtCollectionDocumentType: (o: any) => o is FtCollectionDocumentType;
|
|
124
145
|
export interface FtSearchResults {
|
|
125
146
|
spellcheck?: FtSpellcheck;
|
|
126
|
-
paging:
|
|
147
|
+
paging: FtSearchResultsPageInfo;
|
|
127
148
|
results: Array<FtSearchResultCluster>;
|
|
128
149
|
facets: Array<FtSearchFacet>;
|
|
129
150
|
}
|
|
@@ -16,7 +16,7 @@ export const isFtCollectionDocument = (o) => {
|
|
|
16
16
|
&& (o.portalUrl == null || isString(o.portalUrl))
|
|
17
17
|
&& (isString(o.id))
|
|
18
18
|
&& (isString(o.title))
|
|
19
|
-
&& (
|
|
19
|
+
&& (isFtCollectionDocumentType(o.type));
|
|
20
20
|
};
|
|
21
21
|
export const isFtMap = (o) => {
|
|
22
22
|
return isObject(o)
|
|
@@ -93,7 +93,7 @@ export const isFtSearchLocale = (o) => {
|
|
|
93
93
|
return isObject(o)
|
|
94
94
|
&& (isNumber(o.count))
|
|
95
95
|
&& (isString(o.label))
|
|
96
|
-
&& (isString(o.lang));
|
|
96
|
+
&& (o.lang == null || isString(o.lang));
|
|
97
97
|
};
|
|
98
98
|
export const isFtSearchLocales = (o) => {
|
|
99
99
|
return isObject(o)
|
|
@@ -121,6 +121,20 @@ export const isFtSearchFilter = (o) => {
|
|
|
121
121
|
&& o.values.every((v) => isString(v))))
|
|
122
122
|
&& (isString(o.key));
|
|
123
123
|
};
|
|
124
|
+
export const isFtSearchPreset = (o) => {
|
|
125
|
+
return isObject(o)
|
|
126
|
+
&& (isString(o.name))
|
|
127
|
+
&& ((Array.isArray(o.filters)
|
|
128
|
+
&& o.filters.every((v) => isFtSearchFilter(v))))
|
|
129
|
+
&& (o.contentLocale == null || isString(o.contentLocale));
|
|
130
|
+
};
|
|
131
|
+
export const isFtSearchResultsPageInfo = (o) => {
|
|
132
|
+
return isObject(o)
|
|
133
|
+
&& (isNumber(o.totalResultsCount))
|
|
134
|
+
&& (isBoolean(o.lastPage))
|
|
135
|
+
&& (isNumber(o.currentPage))
|
|
136
|
+
&& (isNumber(o.totalClustersCount));
|
|
137
|
+
};
|
|
124
138
|
// From: WsEditorialType
|
|
125
139
|
export var FtEditorialType;
|
|
126
140
|
(function (FtEditorialType) {
|
|
@@ -144,9 +158,22 @@ export const isFtPageRequest = (o) => {
|
|
|
144
158
|
&& (o.perPage == null || isNumber(o.perPage))
|
|
145
159
|
&& (isNumber(o.page));
|
|
146
160
|
};
|
|
161
|
+
// From: WsPublicCollectionDocumentType
|
|
162
|
+
export var FtCollectionDocumentType;
|
|
163
|
+
(function (FtCollectionDocumentType) {
|
|
164
|
+
FtCollectionDocumentType["MAP"] = "MAP";
|
|
165
|
+
FtCollectionDocumentType["DOCUMENT"] = "DOCUMENT";
|
|
166
|
+
FtCollectionDocumentType["TOPIC"] = "TOPIC";
|
|
167
|
+
FtCollectionDocumentType["PERSONAL_BOOK"] = "PERSONAL_BOOK";
|
|
168
|
+
FtCollectionDocumentType["SHARED_BOOK"] = "SHARED_BOOK";
|
|
169
|
+
})(FtCollectionDocumentType || (FtCollectionDocumentType = {}));
|
|
170
|
+
export const isFtCollectionDocumentType = (o) => {
|
|
171
|
+
return ["MAP", "DOCUMENT", "TOPIC", "PERSONAL_BOOK", "SHARED_BOOK"].includes(o);
|
|
172
|
+
};
|
|
147
173
|
export const isFtSearchResults = (o) => {
|
|
148
174
|
return isObject(o)
|
|
149
175
|
&& (o.spellcheck == null || isFtSpellcheck(o.spellcheck))
|
|
176
|
+
&& (isFtSearchResultsPageInfo(o.paging))
|
|
150
177
|
&& ((Array.isArray(o.results)
|
|
151
178
|
&& o.results.every((v) => isFtSearchResultCluster(v))))
|
|
152
179
|
&& ((Array.isArray(o.facets)
|