jamespot-user-api 1.0.117 → 1.0.119
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/documentation/assets/search.js +1 -1
- package/documentation/classes/AdminLicenseApi.html +11 -11
- package/documentation/classes/AdminStoreApi.html +1 -1
- package/documentation/classes/AdminUtilsApi.html +1 -1
- package/documentation/classes/JApplicationApi.html +8 -8
- package/documentation/classes/JArticleApi.html +1 -1
- package/documentation/classes/JAssetReservation.html +1 -1
- package/documentation/classes/JAudienceApi.html +1 -1
- package/documentation/classes/JBaseApi.html +1 -1
- package/documentation/classes/JBookmarkApi.html +1 -1
- package/documentation/classes/JCommunityApi.html +1 -1
- package/documentation/classes/JDiapazoneApi.html +1 -1
- package/documentation/classes/JFaqApi.html +1 -1
- package/documentation/classes/JFileApi.html +6 -6
- package/documentation/classes/JFilebankApi.html +1 -1
- package/documentation/classes/JGroupApi.html +9 -9
- package/documentation/classes/JLandApi.html +1 -1
- package/documentation/classes/JMessengerApi.html +1 -1
- package/documentation/classes/JSearchApi.html +6 -6
- package/documentation/classes/JShareApi.html +1 -1
- package/documentation/classes/JTaxonomyApi.html +2 -2
- package/documentation/classes/JUserApi.html +4 -4
- package/documentation/classes/JWedocApi.html +1 -1
- package/documentation/classes/JamespotUserApi.html +1 -1
- package/documentation/classes/Network.html +1 -1
- package/documentation/classes/TVDisplayApi.html +1 -1
- package/documentation/classes/WindowBrowser.html +1 -1
- package/documentation/enums/StudioApplicationStatus.html +1 -1
- package/documentation/index.html +1 -1
- package/documentation/interfaces/AccessRightObject.html +1 -1
- package/documentation/interfaces/AdminLicenseUser.html +1 -1
- package/documentation/interfaces/ApiDefaultWrapper.html +1 -1
- package/documentation/interfaces/ApiWrapper.html +1 -1
- package/documentation/interfaces/BaseAutocomplete.html +1 -1
- package/documentation/interfaces/BaseMessage.html +1 -1
- package/documentation/interfaces/Category.html +1 -1
- package/documentation/interfaces/FileBankProps.html +1 -1
- package/documentation/interfaces/FolderProps.html +1 -1
- package/documentation/interfaces/ListFilterSpec.html +1 -1
- package/documentation/interfaces/OF.html +1 -1
- package/documentation/interfaces/ObjectListProps.html +1 -1
- package/documentation/interfaces/PagingResults.html +1 -1
- package/documentation/interfaces/RootFolderProps.html +1 -1
- package/documentation/interfaces/SearchCategoryModel.html +1 -1
- package/documentation/interfaces/SearchCategoryValue.html +1 -1
- package/documentation/interfaces/SearchConfig.html +1 -1
- package/documentation/interfaces/SearchFacetModel.html +1 -1
- package/documentation/interfaces/SearchFacetValueModel.html +1 -1
- package/documentation/interfaces/SearchQuery.html +1 -1
- package/documentation/interfaces/SearchQueryFilterModel.html +1 -1
- package/documentation/interfaces/SearchQueryOption.html +1 -1
- package/documentation/interfaces/SearchQueryResult.html +1 -1
- package/documentation/interfaces/SearchQuerySortModel.html +1 -1
- package/documentation/interfaces/SearchResultCatProps.html +1 -1
- package/documentation/interfaces/SearchResultPropsApp.html +1 -1
- package/documentation/interfaces/SearchResultPropsObject.html +1 -1
- package/documentation/interfaces/SpotProps.html +1 -1
- package/documentation/interfaces/Taxonomy.html +1 -1
- package/documentation/interfaces/TaxonomyCreate.html +1 -1
- package/documentation/interfaces/WindowInterface.html +1 -1
- package/documentation/modules.html +14 -9
- package/lib/jamespot-user-api.js +1 -1
- package/lib/jamespot-user-api.js.map +1 -1
- package/lib/src/apis/article/article.d.ts +3 -11
- package/lib/src/apis/article/article.mock.d.ts +3 -3
- package/lib/src/apis/faq/faq.d.ts +1 -3
- package/lib/src/apis/file/file.d.ts +68 -0
- package/lib/src/apis/file/file.mock.d.ts +8 -0
- package/lib/src/apis/file/file.test.d.ts +1 -0
- package/lib/src/apis/index.d.ts +1 -1
- package/lib/src/apis/jamespotUserApi.d.ts +1 -1
- package/lib/src/apis/wedoc/wedoc.d.ts +1 -0
- package/lib/src/apis/wedoc/wedoc.mock.d.ts +1 -0
- package/lib/src/types/file.d.ts +9 -20
- package/lib/src/types/mediaLibrary.d.ts +3 -7
- package/lib/src/types/widgets.d.ts +9 -10
- package/lib/src/util/Test.d.ts +23 -0
- package/lib/src/util/file.d.ts +23 -7
- package/lib/src/util/file.mock.d.ts +312 -0
- package/lib/src/util/network.d.ts +16 -2
- package/package.json +1 -1
- package/phpunitMock/articleGet-faq-category.json +1 -2
- package/phpunitMock/articleGet-mpArticle-list.json +1 -2
- package/phpunitMock/articleGet-with-widgets.json +161 -0
- package/phpunitMock/articleGetAttachment-success.json +19 -18
- package/phpunitMock/fileCreate-rawLittle.json +17 -0
- package/phpunitMock/fileDelete-default.json +1 -0
- package/phpunitMock/fileDeleteImage-default.json +1 -0
- package/phpunitMock/fileGet-default.json +17 -0
- package/phpunitMock/fileUpdate-rawLittle.json +18 -0
- package/phpunitMock/onlyOfficeCreateVersion-create-version.json +12 -0
- package/phpunitMock/tvDisplayGetChannel-dynamic.json +16 -16
- package/phpunitMock/tvDisplayGetChannel-slideshow.json +16 -14
- package/phpunitMock/tvDisplayGetConfigureChannel-dynamic.json +16 -16
- package/phpunitMock/tvDisplayGetConfigureChannel-slideshow.json +16 -14
- package/lib/src/apis/file.d.ts +0 -62
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jamespot-user-api.js","mappings":"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","sources":["webpack://jamespot-user-api/webpack/bootstrap","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/application/types.ts","webpack://jamespot-user-api/webpack/runtime/define property getters","webpack://jamespot-user-api/webpack/runtime/hasOwnProperty shorthand","webpack://jamespot-user-api/webpack/runtime/make namespace object","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/base.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/admin/license.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/admin/store.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/admin/utils.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/application/application.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/article/article.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/assetReservation/assetReservation.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/audience/audience.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/bookmark/bookmark.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/community.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/diapazone/diapazone.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/faq/faq.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/file.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/filebank.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/group/group.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/asei.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/drive/drive.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/mediaLibrary/mediaLibrary.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/jland/jland.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/messenger.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/search/search.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/taxonomy/taxonomy.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/user/user.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/wedoc/wedoc.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/tvDisplay/tvDisplay.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/share/share.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/jamespotUserApi.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/network.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/window/WindowBrowser.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/types/user.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/ensure.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/file.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/string.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/uri.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/images.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/object.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/taxonomy.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","import { jObjectLittle, Rights, ValueOf } from '../../types';\r\n\r\nexport type ApplicationType = {\r\n name: string;\r\n label: string;\r\n icon: string;\r\n img: string;\r\n url: string;\r\n description: string;\r\n color?: string;\r\n hasLicense: boolean;\r\n sref?: string;\r\n type?: string;\r\n _extend?: {\r\n [key: string]: any;\r\n };\r\n};\r\n\r\nexport type StudioAction = {\r\n action: string;\r\n nameApp: string;\r\n};\r\n\r\nexport interface AccessRightObject extends jObjectLittle {\r\n firstname?: string;\r\n lastname?: string;\r\n mail?: string;\r\n privacy?: string;\r\n category?: string;\r\n description?: string;\r\n image?: string | null;\r\n _values: {\r\n firstname?: string;\r\n lastname?: string;\r\n mail?: string;\r\n title: string;\r\n dateCreation: string;\r\n dateModified: string;\r\n privacy?: number;\r\n category?: string;\r\n };\r\n _cssColor: string;\r\n _cssClass: string;\r\n _right: Rights;\r\n}\r\n\r\nexport type StudioApplicationBase = {\r\n idApp: string;\r\n type?: string;\r\n name?: string;\r\n label?: string;\r\n description?: string;\r\n checkAccess?: boolean;\r\n attrExposed?: Array<string>;\r\n status: StudioApplicationStatusEnumBased;\r\n suspended?: boolean;\r\n view?: string;\r\n author?: string;\r\n columns?: Record<string, string>;\r\n accessRightList?: string[];\r\n accessRightObjectList?: Array<AccessRightObject>;\r\n typeModel?: unknown;\r\n value?: string;\r\n manifest?: StudioManifest;\r\n img?: string;\r\n icon?: string;\r\n color?: string;\r\n url?: string;\r\n types?: string;\r\n urlTarget?: boolean;\r\n order?: number;\r\n dateCreation?: string;\r\n studioVersion?: number;\r\n showImport?: boolean;\r\n showMap?: boolean;\r\n mail2RSE?: boolean;\r\n action?: StudioAction;\r\n display?: string;\r\n};\r\n\r\nexport type StudioManifest = {\r\n dateCreation: string;\r\n author: string;\r\n manifestVersion: number;\r\n version: number;\r\n};\r\n\r\nexport enum StudioApplicationStatus {\r\n local = 'local',\r\n installed = 'installed',\r\n autosaved = 'autosaved',\r\n saved = 'saved',\r\n}\r\n\r\nexport type StudioApplicationStatusEnumBased = ValueOf<StudioApplicationStatus>;\r\n\r\nexport type StudioApplication = StudioApplicationBase & {};\r\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Network } from '../util/network';\nimport type { JamespotUserApi } from './jamespotUserApi';\n\nexport class JBaseApi {\n public jApi: JamespotUserApi;\n public network: Network;\n\n public constructor(jApi: JamespotUserApi) {\n this.jApi = jApi;\n this.network = jApi.network;\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport {\n AdminLicensesAssigned,\n AdminLicensesNotAssigned,\n AdminLicenseUserStats,\n ObjectWithoutLicenseFilter,\n} from '../../types';\n\nexport class AdminLicenseApi extends JBaseApi {\n /**\n * Retrieve the user licenses stats\n */\n public getLicenseUserStatistics() {\n return this.network.post<AdminLicenseUserStats>({\n o: 'licenseManager',\n f: 'userStatistics',\n } as OF);\n }\n\n /**\n * Assigns a license to the content with the provided uri (if any is available)\n * @param uri URI of the object to which a license must be assigned\n * @returns boolean\n */\n public assignLicense(uri: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'assignLicense',\n uri,\n } as OF);\n }\n\n /**\n * Unassigns the license linked to the content with the provided uri\n * @param uri URI of the object to which a license must be unassigned\n * @returns boolean\n */\n public unAssignLicense(uri: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'unassignLicense',\n uri,\n } as OF);\n }\n\n /**\n * Retrieve the assignment license user mode between automatic | manual\n * @param type retrieve the automatic license assignation\n * @returns a string who's the current assignment selected\n */\n public getAssignmentMode(type: string) {\n return this.network.post<string>({\n o: 'licenseManager',\n f: 'getAssignmentMode',\n type,\n } as OF);\n }\n\n /**\n * Change the mode which the license are affected to the users\n * @param type the type of license that would automatically be assigned\n * @param assignmentMode the mode which the license are affected (automatic | manual)\n * @returns boolean\n */\n public setAssignmentMode(type: string, assignmentMode: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'setAssignmentMode',\n value: assignmentMode,\n type,\n } as OF);\n }\n\n /**\n * Assign the available licenses\n * @param type the type of licenses for which we will assign the remaining available one\n * @returns boolean\n */\n public assignPossiblesLicenses(type: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'assignPossiblesLicenses',\n type,\n } as OF);\n }\n\n /**\n * Unassign licenses for inactive users\n * @param type the type of licenses for which we will unassign upon inactive user\n * @returns boolean\n */\n public unAssignUnusedLicenses(type: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'unassignUnusedLicenses',\n type,\n } as OF);\n }\n\n /**\n * Assign available licenses and unassign license for inactive users\n * @param type the type of licenses for which we will unassign and assign the possible licenses\n * @returns boolean\n */\n public optimizeLicenses(type: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'optimizeLicenses',\n type,\n } as OF);\n }\n\n /**\n * Retrieves the number of licenses of a given type available. License type is\n * different from the content type to which it can be assigned to.\n *\n * @param type The type of license for which we want to know the availability\n * @param filter the filters array the request can be called with\n * @returns A promise with the number of object without license\n */\n public getObjectsWithoutLicense(type: string, filter?: ObjectWithoutLicenseFilter[]) {\n return this.network.post<number>({\n o: 'licenseManager',\n f: 'countObjectsWithoutLicense',\n type,\n filter,\n } as OF);\n }\n\n /**\n * Retireve the list of licenses assigned to content of a given type\n *\n * @param type type of content for which we want to retrieve the licenses not assigned\n * @returns The number of licenses depending on the type used as param\n */\n public getLicensesNotAssigned(type: string) {\n return this.network.post<AdminLicensesNotAssigned>({\n o: 'licenseManager',\n f: 'countLicensesNotAssigned',\n type,\n } as OF);\n }\n\n /**\n * Retireve the list of licenses assigned to content of a given type\n *\n * @param type type of content for which we want to retrieve the licenses\n * @returns The list of licenses assigned to content of the provided type\n */\n public getLicensesAssigned(type: string) {\n return this.network.post<AdminLicensesAssigned[]>({\n o: 'licenseManager',\n f: 'getLicensesAssigned',\n type,\n } as OF);\n }\n}\n","import { ApiWrapper, StoreItem, StoreFinalize } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class AdminStoreApi extends JBaseApi {\n public getItem(uri: string): Promise<ApiWrapper<StoreItem>> {\n return this.network.post({\n o: 'adminStore',\n f: 'getItem',\n uri,\n } as OF);\n }\n public checkoutBilling(uri: string): Promise<ApiWrapper<boolean>> {\n return this.network.postCSRF({\n o: 'adminStore',\n f: 'checkoutBilling',\n uri,\n } as OF);\n }\n public checkoutFinalize(uri: string): Promise<ApiWrapper<StoreFinalize>> {\n return this.network.postCSRF({\n o: 'adminStore',\n f: 'checkoutFinalize',\n uri,\n } as OF);\n }\n}\n","import { AdminApps } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class AdminUtilsApi extends JBaseApi {\n /**\n * Request the admin applications and sub applications for the admin panel\n */\n public getApps() {\n return this.network.post<AdminApps>({\n o: 'admin',\n f: 'apps',\n } as OF);\n }\n}\n","import { ApiWrapper, BaseMessages } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport {\n StudioApplication,\n StudioApplicationBase,\n StudioApplicationStatus,\n StudioApplicationStatusEnumBased,\n} from './types';\n\nexport class JApplicationApi extends JBaseApi {\n /**\n * List applications\n * @returns {@link JApplication} objects, in light format\n */\n public list() {\n return this.network.post<Array<StudioApplicationBase>>({ o: 'studio', f: 'list' });\n }\n\n /**\n * Get one application\n * @returns {@link JApplication} object in full format\n */\n public get(idApp: string, status?: StudioApplicationStatusEnumBased) {\n return this.network.post<StudioApplication>({ o: 'studio', f: 'get', idApp, status } as OF);\n }\n\n /**\n * Install this application.\n * If everything is ok, remove previous saved and autosaved versions of this application.\n * @param xmlBody: string XML file\n * @returns {@link JApplication} object in full format\n */\n public install(xmlBody: string) {\n return this.network.postCSRF<StudioApplication>({ o: 'studio', f: 'install', value: xmlBody } as OF);\n }\n\n /**\n * Suspend an installed application.\n * @param idApp: application's id\n * @returns {@link JApplication} object in full format\n */\n public suspend(idApp: string) {\n return this.network.postCSRF<StudioApplication>({ o: 'studio', f: 'suspend', idApp } as OF);\n }\n\n /**\n * Restart an suspended application.\n * @param idApp: application's id\n * @returns {@link JApplication} object in full format\n */\n public restart(idApp: string) {\n return this.network.postCSRF<StudioApplication>({ o: 'studio', f: 'restart', idApp } as OF);\n }\n\n /**\n * Save a 'local', 'saved' or 'autosaved' version of the application\n * Returns a 'save' or 'autosaved' application.\n * @param idApp: application's id\n * @param value: data to be saved\n * @param status: must be either 'saved' or 'autosaved'.\n * @returns {@link JApplication} object in full format\n */\n public save(idApp: string, value: string, status: StudioApplicationStatusEnumBased) {\n if (status === StudioApplicationStatus.saved || status === StudioApplicationStatus.autosaved) {\n return this.network.postCSRF<StudioApplication>({\n o: 'studio',\n f: 'save',\n idApp,\n value,\n status,\n } as OF);\n } else {\n throw 'Invalid status value';\n }\n }\n\n /**\n * Delete a selected status of the application\n * @param idApp application id to delete\n * @param status application status to select\n * @returns message after delete execution\n */\n public async delete(idApp: string, status: StudioApplicationStatusEnumBased): Promise<BaseMessages> {\n return this.network\n .postCSRF<string>({\n o: 'studio',\n f: 'delete',\n idApp,\n status,\n } as OF)\n .then((res) => {\n if (res.error === 0) {\n return res.messages;\n }\n throw res.messages;\n });\n }\n\n /**\n * Get cssClass possible values.\n */\n public cssClassList(): Promise<ApiWrapper<Array<string>>> {\n return this.network.post<Array<string>>({ o: 'studio', f: 'icons' });\n }\n}\n","import { JBaseApi } from '../base';\nimport {\n ApiWrapper,\n BaseMessages,\n Filters,\n jArticleList,\n jArticleLittle,\n jObjectBase,\n MaybeWithToken,\n Orders,\n PagingResults,\n} from '../../types';\nimport { OF } from '../../util';\n\nexport type ArticleListConfig = {\n type: string;\n format?: string;\n query?: string;\n limit?: number;\n page?: number;\n orders?: Orders;\n filters?: Filters | undefined;\n};\n\nexport type ArticleGetConfig = {\n uri?: string;\n idArticle?: number;\n format?: string;\n};\n\nexport type ArticleCreation = {\n title?: string;\n description?: string | null;\n type?: string;\n publishTo?: string;\n idSpot?: Array<string>;\n};\n\nexport type BaseArticle = {\n id: number;\n type: string;\n dateCreation: string;\n dateModified: string;\n title: string;\n uri: string;\n};\n\nexport type FileArticle = jObjectBase & {\n title: string;\n type: 'fileArticle';\n mainType: 'fileArticle';\n _url: string;\n};\n\nexport class JArticleApi extends JBaseApi {\n public list<T extends jArticleLittle = jArticleLittle>(\n config: ArticleListConfig,\n ): Promise<ApiWrapper<PagingResults<T>>> {\n return this.network.post({\n o: 'objectList',\n f: 'jamespotArticleQueryList',\n ...config,\n } as OF);\n }\n\n public get<T extends jArticleLittle = jArticleLittle>(\n config: ArticleGetConfig,\n ): Promise<ApiWrapper<T & { _nbAttachedFiles: number }, BaseMessages>> {\n return this.network.post({\n o: 'article',\n f: 'get',\n ...config,\n } as OF);\n }\n\n public create<R extends jArticleLittle = jArticleLittle, P extends ArticleCreation = ArticleCreation>(\n article: MaybeWithToken<P>,\n format?: string,\n ): Promise<ApiWrapper<Array<R>, BaseMessages>> {\n return this.network.maybePostToken({\n o: 'article',\n f: 'create',\n format: format ?? 'raw-list',\n ...article,\n } as OF);\n }\n\n public update<T extends { uri: string }, U extends jArticleLittle = jArticleList>(\n article: T,\n ): Promise<ApiWrapper<U, BaseMessages>> {\n return this.network.post({\n format: 'raw-list',\n ...article,\n o: 'article',\n f: 'update',\n } as OF);\n }\n\n public delete(id: number): Promise<ApiWrapper<boolean, BaseMessages>> {\n return this.network.postCSRF({\n o: 'article',\n f: 'delete',\n idArticle: id,\n } as OF);\n }\n\n public count(type: string): Promise<ApiWrapper<number>> {\n return this.network.post({\n o: 'article',\n f: 'count',\n type,\n } as OF);\n }\n\n public getAttachments(id: number, type: string, format?: string): Promise<ApiWrapper<FileArticle[]>> {\n return this.network.post({\n o: 'article',\n f: 'getAttachment',\n idArticle: id,\n type,\n format: format || 'attachment',\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { ApiWrapper, BaseMessages, Filters, Orders, PagingResults } from '../../types/utils';\nimport { AssetReservationConfiguration, BookableAssetList, ReservationList } from '../../types/assetReservation';\n\nexport class JAssetReservation extends JBaseApi {\n public configuration(): Promise<ApiWrapper<AssetReservationConfiguration>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'configuration',\n } as OF);\n }\n public createReservation(params: {\n uri: string;\n date: string;\n hourStart: string;\n hourEnd: string;\n uriUser?: string;\n description?: string;\n }): Promise<ApiWrapper<ReservationList, BaseMessages>> {\n return this.network.postCSRF({\n o: 'assetReservation',\n f: 'createReservation',\n format: 'raw-list',\n ...params,\n } as OF);\n }\n\n public getReservations({\n format = 'raw-list',\n ...params\n }: {\n format?: string;\n uri: string;\n dateStart: string;\n dateEnd: string;\n }): Promise<ApiWrapper<ReservationList[], BaseMessages>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'getReservations',\n format,\n ...params,\n } as OF);\n }\n\n public cancelReservation(id: number): Promise<ApiWrapper<ReservationList, BaseMessages>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'cancelReservation',\n format: 'raw-list',\n idArticle: id,\n } as OF);\n }\n\n public bookByDate({\n format = 'raw-list',\n ...params\n }: {\n format?: string;\n date: string;\n hourStart: string;\n hourEnd: string;\n }): Promise<ApiWrapper<BookableAssetList[], BaseMessages>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'BookByDate',\n format,\n ...params,\n } as OF);\n }\n\n public getList({\n format = 'raw-list',\n ...params\n }: {\n format?: string;\n query?: string;\n limit?: number;\n page?: number;\n orders?: Orders;\n filters?: Filters | undefined;\n viewMode?: 'history' | undefined;\n }): Promise<ApiWrapper<PagingResults<ReservationList>, BaseMessages>> {\n return this.network.post({\n o: 'objectList',\n f: 'assetReservationList',\n format,\n ...params,\n } as OF);\n }\n}\n","import { AudienceAutocomplete } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class JAudienceApi extends JBaseApi {\n /**\n * autocomplete\n * return the list of user and Spot\n */\n public autocomplete(query: string): Promise<AudienceAutocomplete[]> {\n return this.network.post({ o: 'autocomplete', f: 'audience', q: query } as OF).then((res) => {\n if (Array.isArray(res.result)) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n}\n","import { ApiWrapper, BaseMessagesOne, Orders, PagingResults } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { BookmarkTypes } from '../../types';\n\nexport interface ListFilterSpec {\n query?: string;\n page?: number;\n limit?: number;\n orders?: Orders;\n}\n\nexport class JBookmarkApi extends JBaseApi {\n public getFormattedList<T extends keyof BookmarkTypes>(filterSpecs: ListFilterSpec, format: T) {\n return this.network.post<PagingResults<BookmarkTypes[typeof format]>>({\n o: 'objectList',\n f: 'bookmarksList',\n format: format,\n ...filterSpecs,\n } as OF);\n }\n\n public addFormattedLink<T extends keyof BookmarkTypes>(targetId: number, targetType: string, format: T) {\n const requestedFormat = format ?? 'list';\n return this.network.post<BookmarkTypes[T]>({\n o: 'custom',\n f: 'actionAdd',\n type: 'bookmarkLink',\n targetId,\n targetType,\n format: requestedFormat,\n } as OF);\n }\n\n public addBookmark(\n bookmark: Pick<BookmarkTypes[keyof BookmarkTypes], 'bookmarkLabel' | 'bookmarkMeta' | 'bookmarkUrl'>,\n format?: keyof BookmarkTypes,\n ) {\n const requestedFormat = format ?? 'list';\n return this.network.postCSRF<BookmarkTypes[typeof requestedFormat], BaseMessagesOne>({\n o: 'bookmarks',\n f: 'add',\n ...bookmark,\n } as OF);\n }\n\n public delete(bookmarkId: number): Promise<ApiWrapper<null, BaseMessagesOne>> {\n return this.network.postCSRF<null, BaseMessagesOne>({\n o: 'bookmarks',\n f: 'delete',\n bookmarkID: bookmarkId,\n } as OF);\n }\n\n public rename(\n bookmarkID: number,\n bookmarkLabel: string,\n bookmarkUrl?: string,\n ): Promise<ApiWrapper<null, BaseMessagesOne>> {\n return this.network.postCSRF<null, BaseMessagesOne>({\n o: 'bookmarks',\n f: 'rename',\n bookmarkID,\n bookmarkLabel,\n bookmarkUrl,\n } as OF);\n }\n\n public move(\n bookmarkID: number,\n bookmarkReference: number,\n position: 'before' | 'after',\n ): Promise<ApiWrapper<null, BaseMessagesOne>> {\n return this.network.postCSRF<null, BaseMessagesOne>({\n o: 'bookmarks',\n f: 'move',\n bookmarkID,\n bookmarkReference,\n bookmarkPosition: position,\n } as OF);\n }\n}\n","import { ApiReturn, CommunityAutocomplete, Format, jObjectLittle } from '../types';\nimport { JBaseApi } from './base';\nimport { OF } from '../util/network';\n\nexport class JCommunityApi extends JBaseApi {\n public get<T extends Format = undefined>(idCommunity: string | number, format?: T) {\n return this.network.post<ApiReturn<T, jObjectLittle, jObjectLittle, jObjectLittle, jObjectLittle>>({\n o: 'community',\n f: 'getCommunity',\n idCommunity,\n format: format || 'raw-little',\n } as OF);\n }\n\n public sendRequest(message: string, idUserTo: number) {\n return this.network.post<boolean, { code: number; msg: string }>({\n o: 'community',\n f: 'sendRequest',\n message,\n idUserTo,\n } as OF);\n }\n\n public autocomplete(q: string): Promise<CommunityAutocomplete[]> {\n return this.network\n .post<CommunityAutocomplete[]>({ o: 'autocomplete', f: 'community', q } as OF)\n .then((res) => res.result);\n }\n}\n","import { JBaseApi } from '../base';\nimport { ApiWrapper, BaseMessages, Filters, Orders, PagingResults, jDiapazoneList } from '../../types';\nimport { OF } from '../../util/network';\n\nexport class JDiapazoneApi extends JBaseApi {\n public create<T>(\n type: string,\n token: string,\n title: string,\n dateStart: string,\n publishTo: Array<string>,\n ): Promise<ApiWrapper<Array<T>, BaseMessages>> {\n return this.network.post({\n o: 'article',\n f: 'create',\n type,\n token,\n title,\n dateStart,\n publishTo,\n } as OF);\n }\n\n public getList(\n query = '',\n filters: Filters = [],\n orders: Orders = [],\n page = 1,\n format = 'raw-list',\n ): Promise<ApiWrapper<PagingResults<jDiapazoneList>>> {\n return this.network.post({\n o: 'objectList',\n f: 'diapazoneQueryList',\n query,\n filters,\n orders,\n page,\n format,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport {\n ApiWrapper,\n CreateFaqCategory,\n EditFaqCategory,\n FaqCategoryView,\n FaqHookProperties,\n FaqTaxonomy,\n jArticleLittle,\n} from '../../types';\nimport { OF } from '../../util';\n\nexport class JFaqApi extends JBaseApi {\n public createCategory<T extends jArticleLittle = FaqCategoryView>(\n params: Omit<CreateFaqCategory, 'type'>,\n format?: string,\n ): Promise<ApiWrapper<Array<T>>> {\n return this.jApi.article.create<T, CreateFaqCategory>({ ...params, type: 'faq' }, format || 'raw-view');\n }\n\n public updateCategory<T extends jArticleLittle = FaqCategoryView>(\n params: Omit<EditFaqCategory, 'type'>,\n format?: string,\n ): Promise<ApiWrapper<T>> {\n return this.jApi.article.update<EditFaqCategory, T>({ ...params, type: 'faq', format: format || 'raw-view' });\n }\n\n public getCategory<T extends jArticleLittle = FaqCategoryView>(\n id: number,\n format?: string,\n ): Promise<ApiWrapper<T & { _nbAttachedFiles: number }>> {\n return this.jApi.article.get<T>({ idArticle: id, format: format || 'raw-view' });\n }\n\n public deleteCategory(id: number): Promise<ApiWrapper<boolean>> {\n return this.jApi.article.delete(id);\n }\n\n public getTaxonomy(): Promise<ApiWrapper<FaqTaxonomy>> {\n return this.network.post({\n o: 'faq',\n f: 'getFaqTaxonomy',\n });\n }\n\n public getHookProperties(properties?: Array<keyof FaqHookProperties>): Promise<ApiWrapper<FaqHookProperties>> {\n return this.network.post({\n o: 'faq',\n f: 'getHookProperties',\n properties: properties || ['_web'],\n } as OF);\n }\n}\n","import { ApiWrapper, FileCropConfig, FileResponse, JFileExtended, UploadConfig } from '../types';\nimport { OF } from '../util/network';\nimport { JBaseApi } from './base';\n\nexport class JFileApi extends JBaseApi {\n /**\n * Upload a file to the server. use the same token to link the file to an article\n * @param config configuration object. One of \"file\" and \"url\" is mandatory\n */\n public upload(config: UploadConfig) {\n const body = new FormData();\n body.append('attrName', config.attrName);\n if (config.file) {\n body.append(config.attrName, config.file);\n } else if (config.url) {\n body.append('url', config.url);\n }\n body.append('token', config.token);\n return this.network.postFile(body);\n }\n\n /**\n * Upload a list of files to the server. use the same token to link the file to an article\n * @param attrName file name (attachment, image, bannerImage, etc.)\n * @param files files\n * @param token token\n */\n public async uploadMany(configArray: Array<UploadConfig>) {\n return Promise.all(configArray.map((config) => this.upload(config)));\n }\n\n public async get<T extends JFileExtended>(idFile: number, format?: string): Promise<ApiWrapper<T>> {\n return this.network.post({\n o: 'file',\n f: 'get',\n idFile,\n format,\n } as OF);\n }\n\n /**\n * Crop an image\n * @param config crop configuration\n * @returns\n */\n public async update(idFile: number | string, type: string, config: FileCropConfig) {\n return this.network\n .post<FileResponse>({\n o: 'file',\n f: 'update',\n idFile,\n type,\n cropDatas: {\n w: config.width,\n h: config.height,\n x: config.x,\n y: config.y,\n rotation: config.rotation,\n rotateBeforeCrop: true,\n },\n killSize: config.killSize,\n } as OF)\n .then((res) => {\n if (!res.result.crop) {\n return res;\n }\n const crop = JSON.parse(res.result.crop as unknown as string);\n return {\n ...res,\n result: {\n ...res.result,\n crop: {\n width: crop.w,\n height: crop.h,\n x: crop.x,\n y: crop.y,\n rotation: crop.rotation,\n },\n },\n };\n });\n }\n\n /**\n * delete file. This action is not automatic. You need to update the content associated with the deleted image with the same token\n * @param idFile file id\n * @param attrName attribute name\n * @param token token\n * @returns\n */\n public async deleteFile(idFile: number | string, attrName: string, token: string, signal?: AbortSignal) {\n return this.network.post<''>(\n {\n o: 'file',\n f: 'delete',\n idFile,\n attrName,\n token,\n } as OF,\n signal,\n );\n }\n\n /**\n * delete the image associated with a content. This action is permanent. There is no two step process with a token\n * @param id content id\n * @param type content type\n * @returns\n */\n public async deleteImage(id: number | string, type: string) {\n return this.network.post<{ id: number }>({\n o: 'file',\n f: 'deleteImage',\n id,\n type,\n } as OF);\n }\n}\n","import { JBaseApi } from './base';\nimport { OF } from '../util/network';\nimport { ApiPagingResults, ApiWrapper, jObjectBase, jObjectLittle, Rights } from '../types';\n\nexport interface RootFolderProps {\n id: number;\n title: string;\n uri: string;\n type: string;\n mainType: string;\n folderColor?: string;\n}\n\nexport interface SpotProps {\n id: number;\n title: string;\n uri: string;\n type: string;\n mainType: string;\n folderColor?: string;\n}\n\nexport interface FileBankProps {\n recents: jObjectLittle[];\n rootFolder: RootFolderProps;\n spot: SpotProps;\n}\n\nexport interface FolderProps extends jObjectLittle {\n mainType: string;\n folderColor?: string;\n parentURI?: string;\n _right: Rights;\n}\n\nexport type FolderType = jObjectLittle & {\n mainType: string;\n folderColor?: string;\n parentURI?: string;\n};\n\nexport type jFileBase = jObjectLittle & { mimetype: string };\nexport type FileBankDocument = jObjectBase & { _attachedFiles: jFileBase[] };\n\nexport class JFilebankApi extends JBaseApi {\n public getBanks(format = 'list'): Promise<Array<FileBankProps>> {\n return this.network.post<Array<FileBankProps>>({ o: 'fileBank', f: 'getBanks', format } as OF).then((res) => {\n return res.result;\n });\n }\n public getFolders(parentURI: string): Promise<ApiWrapper<FolderType[]>> {\n return this.network.post({ o: 'fileBank', f: 'getFolders', parentURI } as OF);\n }\n public getDocuments(uri: string): Promise<ApiPagingResults<FileBankDocument>> {\n return this.network.post({ o: 'fileBank', f: 'getDocuments', parentURI: uri } as OF);\n }\n}\n","import {\n Category,\n CreateGroup,\n GroupList,\n GroupProperties,\n GroupView,\n GroupWidget,\n ResetNotificationConfiguration,\n UpdateGroup,\n} from '../../types/group';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { ApiReturn, Format, PagingResults, jObjectLittle, jSpotAutocomplete } from '../../types';\n\nexport class JGroupApi extends JBaseApi {\n /**\n * autocomplete return a list of groups\n * @param query <string>\n */\n public autocomplete(query: string) {\n return this.network\n .post<Array<jSpotAutocomplete>>({ o: 'autocomplete', f: 'spot', q: query, idToUri: false } as OF)\n .then((res) => {\n return res.result;\n });\n }\n\n /**\n * Create a group from scratch\n * @param group\n * @param format return format\n * @returns\n */\n public create<T extends Format = undefined>(group: CreateGroup, format?: T) {\n return this.network.post<ApiReturn<T, jObjectLittle, GroupList, GroupView, jObjectLittle>>({\n o: 'spot',\n f: 'create',\n ...group,\n format,\n } as OF);\n }\n\n /**\n * Update a group\n * @param group group to update. The uri is mandatory and identify the group to update\n * @param format return format\n * @returns\n */\n public update<T extends Format = undefined>(group: UpdateGroup, format?: T) {\n // remove spotBanner from group because if provided, the spot banner image will be deleted\n const { spotBanner: _spotBanner, ...restGroup } = group;\n\n return this.network.postCSRF<ApiReturn<T, jObjectLittle, GroupList, GroupView, string>>({\n o: 'spot',\n f: 'update',\n ...restGroup,\n format,\n } as OF);\n }\n\n /**\n * Get a spot\n * @param idSpot\n * @param format\n * @returns\n */\n public getSpot<T extends Format = undefined>(idSpot: number | string, format?: T) {\n return this.network.post<ApiReturn<T, jObjectLittle, GroupList, GroupView, string>>({\n o: 'spot',\n f: 'getSpot',\n idSpot,\n format,\n } as OF);\n }\n\n /**\n * Get the properties of a group that are not within the model\n * @param idSpot\n * @returns\n */\n public getProperties(idSpot: number | string) {\n return this.network.post<GroupProperties>({\n o: 'spot',\n f: 'getProperties',\n idSpot,\n } as OF);\n }\n\n /**\n * Get the available applications that can be added to a group\n */\n public getApplications() {\n return this.network.post<Record<string, GroupWidget>>({ o: 'spot', f: 'get-available-widget' });\n }\n\n /**\n * Get the available group categories\n * @returns\n */\n public getCategories() {\n return this.network.post<Category[]>({ o: 'spot', f: 'get-categories' });\n }\n\n /**\n * Get the members of a group\n * @param idSpot spot id\n * @param query query string to search within user names\n * @param limit limit per page\n * @param page page number\n * @return array of User\n */\n public getObjectListJamespotSpotMembers(idSpot: number | string, query?: string, limit?: number, page = 1) {\n return this.network.post<PagingResults<jObjectLittle>>({\n o: 'objectListJamespot',\n f: 'SpotMembers',\n idSpot,\n limit,\n page,\n format: 'raw-little',\n query,\n } as OF);\n }\n\n /**\n * Reset the notifications configuration for all users of the group\n * @param config configuration\n * @returns\n */\n public resetNotifications(config: ResetNotificationConfiguration) {\n return this.network.post<{ members: number; msg: string }>({\n o: 'spot',\n f: 'resetNotifications',\n ...config,\n });\n }\n}\n","import { JBaseApi } from './base';\nimport { OF } from '../util/network';\nimport { AseiGroups, AseiRights, AseiTicket, AseiTicketStatus, Filters, Orders } from '../types';\nimport { ApiWrapper, PagingResults } from '../types';\n\nexport class JAseiApi extends JBaseApi {\n /**\n * List Asei Clearance Tickets\n * @param page page number\n * @param limit number of elements per page\n * @param filters filter object\n * @param orders order object\n */\n public list(\n page: number,\n limit: number,\n filters?: Filters,\n orders: Orders = [{ name: 'dateCreation', sort: 'DESC' }],\n ): Promise<ApiWrapper<PagingResults<AseiTicket>>> {\n return this.jApi.article.list<AseiTicket>({\n type: 'aseiClearanceTicket',\n format: 'raw-view',\n limit,\n page,\n orders,\n filters,\n });\n }\n\n /**\n * change status of an Asei Ticket\n */\n public requestStatus(\n uri: string,\n requestedStatus: AseiTicketStatus,\n audience?: Array<string>,\n ): Promise<AseiTicket> {\n return this.network\n .post<AseiTicket>({ o: 'asei', f: 'setStatus', uri, requestedStatus, audience } as OF)\n .then((res) => {\n if (res && res.result) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n\n /**\n * Get asei dedicated groups (dsi, administrators)\n */\n public getDedicatedGroups(): Promise<AseiGroups> {\n return this.network.post<AseiGroups>({ o: 'asei', f: 'getDedicatedGroups' } as OF).then((res) => {\n if (res && res.result) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n\n /**\n * Get asei configuration (rights to access, rights to publish)\n */\n public getConfiguration(): Promise<AseiRights> {\n return this.network.post<{ right: AseiRights }>({ o: 'asei', f: 'configuration' }).then((res) => {\n if (res && res.result) {\n return res.result.right;\n }\n throw 'Bad response from backend';\n });\n }\n}\n","import { JBaseApi } from '../base';\nimport { ApiWrapper, DriveDocumentParams, DriveItemType, MSGraphGroup, MSGraphSite, MSGraphTenant } from '../../types';\nimport { OF } from '../../util/network';\n\nexport class JDriveApi extends JBaseApi {\n /**\n * Microsoft graph only\n * @returns\n */\n public tenants(): Promise<ApiWrapper<MSGraphTenant[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getTenants',\n } as OF);\n }\n /**\n * Microsoft graph only\n * @returns\n */\n public groups(): Promise<ApiWrapper<MSGraphGroup[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getGroups',\n } as OF);\n }\n /**\n * Microsoft graph only\n * @returns\n */\n public sites(): Promise<ApiWrapper<MSGraphSite[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getSites',\n } as OF);\n }\n\n public documents(service: string, documentParams: DriveDocumentParams): Promise<ApiWrapper<DriveItemType[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getDocuments',\n service,\n documentParams,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\r\nimport { OF } from '../../util/network';\r\nimport { PagingResults, ApiWrapper, MediaLibraryList } from '../../types';\r\n\r\nexport class JMediaLibraryApi extends JBaseApi {\r\n public GetUnclassifiedFiles(format = 'raw-list'): Promise<ApiWrapper<PagingResults<MediaLibraryList>>> {\r\n return this.network.post({\r\n o: 'objectListMediaLibrary',\r\n f: 'GetUnclassifiedFiles',\r\n format: format,\r\n } as OF);\r\n }\r\n}\r\n","import { JBaseApi } from '../base';\nimport { ApiWrapper, jArticleList, License, MaybeWithToken, PagingResults } from '../../types';\nimport { OF } from '../../util/network';\nimport { ArticleCreation } from '../article/article';\n\nexport type JLandLog = {\n idLog: number;\n slug: string;\n dateCreation: string;\n map: string;\n mail: string;\n action: string;\n mode: string;\n};\n\nexport type JLandStat = {\n mail: string;\n cnt: string;\n};\n\nexport type JLandMapFlavor = string;\nexport type JLandMapKind = string;\n\nexport type JLandMap = jArticleList & {\n jlandMapFlavor: JLandMapFlavor;\n jlandMapKind: JLandMapKind;\n waMapUrl?: string;\n limit?: number;\n _extend: {\n licenses: Array<License>;\n };\n};\n\nexport type JLandMapCreation = ArticleCreation & {\n jlandMapAggregated: string;\n type: 'jlandmap';\n};\n\nexport class JLandApi extends JBaseApi {\n public getLogs({\n dateEnd,\n idLogMax,\n }: {\n dateEnd?: string;\n idLogMax?: number;\n }): Promise<ApiWrapper<Array<JLandLog>>> {\n return this.network.post({\n o: 'jLand',\n f: 'adminLogs',\n dateEnd,\n idLogMax,\n } as OF);\n }\n\n public getStats({\n map,\n dateStart,\n dateEnd,\n }: {\n map: string;\n dateStart?: string;\n dateEnd?: string;\n }): Promise<ApiWrapper<Array<JLandStat>>> {\n return this.network.post({\n o: 'jLand',\n f: 'adminStats',\n map,\n dateStart,\n dateEnd,\n } as OF);\n }\n\n public getAllMapsAsAdmin(format = 'raw-list,licenses'): Promise<ApiWrapper<PagingResults<JLandMap>>> {\n return this.network.post({\n o: 'objectListJLand',\n f: 'jLandList',\n format: format,\n } as OF);\n }\n\n public createMap(map: MaybeWithToken<JLandMapCreation>, format = 'raw-list') {\n return this.network.maybePostToken({\n ...map,\n o: 'article',\n f: 'create',\n format: format,\n type: 'jlandmap',\n } as OF);\n }\n}\n","import { ApiWrapper } from '../types';\nimport { JBaseApi } from './base';\nimport { OF } from '../util/network';\n\nexport class JMessengerApi extends JBaseApi {\n // FIXME fix return type, set as is since the return type has not been used yet\n public sendMessage(message: string, idDiscussion: string): Promise<ApiWrapper<Record<string, never>>> {\n return this.network.post({\n o: 'messenger',\n f: 'newMessage',\n idDiscussion,\n msg: { description: message },\n } as OF);\n }\n public getOrCreateDiscussion(idSender: number, idUserTo: number): Promise<ApiWrapper<Record<string, never>>> {\n const idDiscussion = idSender < idUserTo ? `${idSender}.${idUserTo}` : `${idUserTo}.${idSender}`;\n return this.network.post({\n o: 'messenger',\n f: 'getDiscussion',\n idDiscussion,\n type: 'messengerUser',\n idUserTo,\n } as OF);\n }\n}\n","import {\n ApiWrapper,\n SearchConfig,\n SearchQuery,\n SearchQueryResult,\n SearchResultCatProps,\n SearchLastQuery,\n SearchAdminConfig,\n} from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class JSearchApi extends JBaseApi {\n /**\n * return a completed version of the current config, taking in account platform installed modules\n */\n public getConfig(): Promise<ApiWrapper<SearchConfig>> {\n return this.network.post({ o: 'search', f: 'getConfig' });\n }\n\n /**\n * Return a maximum of 8 results for a given text query, classed upon config categories\n * @param query string, words can be preceded by + and - for inclusive/exclusive search\n * @param signal: @AbortSignal to cancel the fetch\n */\n public proposition(\n { query, format }: { query: string; format?: 'list' | 'little' },\n signal?: AbortSignal,\n ): Promise<ApiWrapper<SearchResultCatProps[]>> {\n return this.network.post({ o: 'search', f: 'proposition', query, format: format || 'little' } as OF, signal);\n }\n\n /**\n * Return a page of results based on a text query and various filters.\n * All parameters are optional\n * @param query\n * @param query.keywords string, words can be preceded by + and - for inclusive/exclusive search (default *:*)\n * @param query.category text id of a category from config,if specified: restrict results to these category\n * @param query.facetCategories boolean, if true: count by categories are returned\n * @param query.filters array of @SearchQueryFilterModel @SearchQueryFilterModel.\n * @param query.page integer. default 1. index of returned page (start by 1)\n * @param query.limit integer. default 20. number of result by page\n * @param query.sort @SearchQuerySortModel default score then date\n * @param query.options @SearchQueryOption. extra possible options for the search\n * @param signal: @AbortSignal to cancel the fetch\n\n * // Todo add query.facets (to be specified first)\n */\n public searchQuery(query: SearchQuery, signal?: AbortSignal): Promise<ApiWrapper<SearchQueryResult>> {\n const { keywords, category, facetCategories, filters, page, limit, sort, options } = query;\n return this.network.post(\n {\n o: 'search',\n f: 'query',\n keywords,\n category,\n facetCategories,\n filters,\n page,\n limit,\n sort,\n options,\n } as OF,\n signal,\n );\n }\n\n /**\n * return the five last keywords typed in the searchbar by the user\n */\n public getLastQueries(): Promise<ApiWrapper<SearchLastQuery[]>> {\n return this.network.post({ o: 'search', f: 'getLastQueries' });\n }\n\n /**\n * return the current platform json search-config object\n */\n // FIXME when doing the search admin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getAdminConfig(): Promise<ApiWrapper<SearchAdminConfig>> {\n return this.network.post({ o: 'search', f: 'getAdminConfig' });\n }\n\n /**\n * set the platform search-config to the given json object\n * @param config object. json search config\n */\n // FIXME when doing the search admin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setAdminConfig(config: any): Promise<ApiWrapper<any>> {\n return this.network.post({ o: 'search', f: 'setAdminConfig', config } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util';\nimport { ApiWrapper, BaseMessagesOne, PagingResults } from '../../types';\nimport {\n AutoCompleteConcept,\n AutocompleteHierarchy,\n AutoCompleteList,\n Concept,\n Taxonomy,\n TaxonomyCreate,\n} from './types';\n\nexport class JTaxonomyApi extends JBaseApi {\n /**\n * list all taxonomies (no pagination)\n */\n public list(): Promise<Taxonomy[]> {\n return this.network\n .post<Taxonomy[]>({\n o: 'taxonomy',\n f: 'list',\n } as OF)\n .then((res) => {\n if (Array.isArray(res.result)) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n\n public create(taxonomy: TaxonomyCreate): Promise<ApiWrapper<Taxonomy, BaseMessagesOne>> {\n return this.network.post<Taxonomy, BaseMessagesOne>({\n o: 'taxonomy',\n f: 'create',\n ...taxonomy,\n } as OF);\n }\n\n /**\n * autocomplete return a list of tags\n * @param idTaxonomy taxonomy id\n * @param query search characters\n */\n public autocomplete(idTaxonomy: string, query: string) {\n return this.network.post<Array<AutoCompleteConcept>>({\n o: 'autocomplete',\n f: 'taxonomy',\n q: query,\n idTaxonomy,\n idToUri: false,\n } as OF);\n }\n\n public autocompleteList(payload: AutoCompleteList) {\n return this.network.post<PagingResults<Concept>>({\n o: 'objectListTaxonomy',\n f: 'concept',\n ...payload,\n } as OF);\n }\n\n public autocompleteHierarchy(payload: AutocompleteHierarchy) {\n return this.network.post<PagingResults<AutoCompleteConcept>>({\n o: 'objectListTaxonomyHierarchy',\n f: 'concept',\n ...payload,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport {\n ApiWrapper,\n Little,\n jObjectLittle,\n UserModel,\n UserMapModel,\n jUserAutocomplete,\n ApiPagingResults,\n ApiDefaultWrapper,\n jUserLittle,\n Readable,\n} from '../../types';\n\nexport type User = Little & {\n id: string; // FIXME\n shortUri: string;\n name: string;\n label: string;\n cssClass: string;\n cssColor: string;\n class: string;\n Pseudo: string;\n _values: Record<string, unknown>;\n};\n\nimport { Orders, Filters } from '../../types';\nimport { ArticleCreation } from '../article/article';\n\nexport interface ObjectListProps {\n additionalFilter?: {}; // FIXME\n facets?: {}[]; // FIXME\n filters?: Filters;\n query?: string;\n limit?: number;\n page?: number;\n orders?: Orders;\n format?: string;\n}\n\nexport type UserDirectoryConfiguration = {\n userDirectoryShow: '' | '1';\n contactDirectoryShow: '0' | '1';\n businessContactShow: boolean;\n menu: '0' | '1';\n cardFields: Array<string>;\n tableFields: Array<string>;\n viewFields: Array<string>;\n userGeoloc?: boolean;\n sort: string;\n cnt?: number;\n filters: Array<{\n name: string;\n type: string;\n }>;\n};\n\nexport type BusinessContact = {\n mail: string | undefined;\n title: string;\n firstname: string;\n lastname: string;\n phoneNumber?: string | undefined;\n company?: string | undefined;\n function?: string | undefined;\n uri?: string | undefined;\n field1?: string | undefined;\n field2?: string | undefined;\n field3?: string | undefined;\n field4?: string | undefined;\n field5?: string | undefined;\n};\n\nexport class JUserApi extends JBaseApi {\n /**\n * autocomplete return a list users\n * @param query <string>\n */\n public autocomplete(query: string) {\n return this.network\n .post<Array<jUserAutocomplete>>({ o: 'autocomplete', f: 'user', q: query, idToUri: false } as OF)\n .then((res) => {\n return res.result;\n });\n }\n\n /**\n * Get a user\n * @param uri uri\n * @param format little by default. If another format is provided, the generic types should be defined\n */\n public get<T extends jObjectLittle = jObjectLittle>(uri: string, format = 'little'): Promise<ApiWrapper<T>> {\n return this.network.post<T>({ o: 'user', f: 'get', uri, format } as OF);\n }\n\n public configuration(): Promise<ApiWrapper<UserDirectoryConfiguration>> {\n return this.network.post({ o: 'userDirectory', f: 'configuration' } as OF);\n }\n\n public userList<T extends jObjectLittle = jUserLittle>(\n payload: ObjectListProps,\n signal?: AbortSignal,\n ): Promise<ApiPagingResults<T>> {\n return this.network.post({ o: 'objectList', f: 'JamespotUserList', ...payload } as OF, signal);\n }\n\n public userQueryList<T extends jObjectLittle = jUserLittle>(\n payload: ObjectListProps,\n ): Promise<ApiPagingResults<T>> {\n return this.network.post({ o: 'objectList', f: 'JamespotUserQueryList', ...payload } as OF);\n }\n\n public userMap(payload: ObjectListProps): Promise<ApiPagingResults<UserMapModel>> {\n return this.network.post({ o: 'objectListJamespot', f: 'userMap', ...payload } as OF);\n }\n\n public userBusinessContactQueryList(query: ObjectListProps): Promise<ApiPagingResults<UserModel>> {\n return this.network.post({ o: 'businessContact', f: 'queryList', ...query } as OF);\n }\n\n public userCreateBusinessContact(user: BusinessContact) {\n const userFormatter = {\n ...user,\n pseudo: user.title,\n firstName: user.firstname,\n lastName: user.lastname,\n champ1: user.field1,\n champ2: user.field2,\n champ3: user.field3,\n champ4: user.field4,\n champ5: user.field5,\n };\n const payload = {\n ...userFormatter,\n type: 'businessContactCard',\n publishTo: 'networkPublic/1', // TEMPORARY TILL I FIX J.networks.networkPublic.uri\n };\n return this.jApi.article.create(payload as ArticleCreation);\n }\n\n public userUpdateBusinessContact(user: Readable<BusinessContact & { uri: string }>) {\n const userFormatter = {\n ...user,\n pseudo: user.title,\n firstName: user.firstname,\n lastName: user.lastname,\n champ1: user.field1,\n champ2: user.field2,\n champ3: user.field3,\n champ4: user.field4,\n champ5: user.field5,\n };\n const payload = {\n ...userFormatter,\n uri: user.uri,\n publishTo: 'networkPublic/1', // TEMPORARY TILL I FIX J.networks.networkPublic.uri\n };\n return this.jApi.article.update(payload as { uri: string });\n }\n\n public userDeleteBusinessContact(idArticle: number) {\n return this.jApi.article.delete(idArticle);\n }\n\n public userAddContact(idUser: number): Promise<ApiDefaultWrapper> {\n return this.network.post({ o: 'user', f: 'addContact', idUser } as OF);\n }\n\n public userRemoveContact(idUser: number): Promise<ApiDefaultWrapper> {\n return this.network.post({ o: 'user', f: 'removeContact', idUser } as OF);\n }\n\n /**\n * signIn function returns a Promise of users.\n * @param mail Mail or username\n * @param pwd Password to be validated\n */\n public signIn(mail: string, pwd: string) {\n return this.network.post<jUserAutocomplete>({ o: 'user', f: 'signIn', mail, password: pwd } as OF);\n }\n}\n","import { ApiWrapper, PagingResults, WedocFileType, WedocQueryType, WedocTemplate, jArticleLittle } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class JWedocApi extends JBaseApi {\n public getFiles(query: WedocQueryType): Promise<ApiWrapper<PagingResults<WedocFileType>>> {\n return this.network.post({ o: 'onlyOffice', f: 'getFiles', ...query } as OF);\n }\n\n public getFile(idFile: number, hash?: string): Promise<ApiWrapper<WedocFileType>> {\n return this.network.post({ o: 'onlyOffice', f: 'getFile', idFile, hash } as OF);\n }\n\n public getTemplates(): Promise<ApiWrapper<WedocTemplate[]>> {\n return this.network.post({ o: 'onlyOffice', f: 'getTemplates' } as OF);\n }\n\n public duplicateFile(\n idFile: number,\n title: string,\n publishTo: string[],\n ): Promise<ApiWrapper<{ idFile: number; article: jArticleLittle }>> {\n return this.network.post({ o: 'onlyOffice', f: 'duplicateFile', idFile, title, publishTo } as OF);\n }\n\n public deleteFile(idFile: number, withParent?: boolean): Promise<ApiWrapper<boolean>> {\n return this.network.postCSRF({ o: 'onlyOffice', f: 'deleteFile', idFile, withParent } as OF);\n }\n\n public createFile(\n title: string,\n type: string,\n publishTo: string[],\n ): Promise<ApiWrapper<{ idFile: number; article: jArticleLittle }>> {\n return this.network.post<{ idFile: number; article: jArticleLittle }>({\n o: 'onlyOffice',\n f: 'createFile',\n title,\n type,\n publishTo,\n } as OF);\n }\n\n public updateFile(idFile: number, title: string): Promise<ApiWrapper<boolean>> {\n return this.network.post({ o: 'onlyOffice', f: 'updateFile', idFile, title } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport {\n ApiWrapper,\n BaseMessages,\n MaybeWithToken,\n TVChannelCreation,\n TVChannelList,\n TVChannelLittle,\n TVGetChannelResponse,\n TVGetConfigureChannelResponse,\n} from '../../types';\n\nexport class TVDisplayApi extends JBaseApi {\n public createChannel<R extends TVChannelLittle = TVChannelList>(\n channel: MaybeWithToken<TVChannelCreation>,\n format = 'raw-list',\n ): Promise<ApiWrapper<Array<R>, BaseMessages>> {\n return this.network.maybePostToken({\n ...channel,\n o: 'article',\n f: 'create',\n format: format,\n type: 'tvDisplayChannel',\n });\n }\n\n public getChannel(params: { id: number; key: string }) {\n return this.network.post<TVGetChannelResponse>({\n ...params,\n o: 'tvDisplay',\n f: 'getChannel',\n });\n }\n\n public getConfigureChannel(params: { id: number }) {\n return this.network.post<TVGetConfigureChannelResponse>({\n ...params,\n o: 'tvDisplay',\n f: 'getConfigureChannel',\n });\n }\n}\n","import { ApiWrapper } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { ShareAccessObject, ShareAccessProps, ShareAudienceItem, ShareGeneralAccessRules } from '../../types/share';\n\n/*\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n */\n\nexport class JShareApi extends JBaseApi {\n public setObjectAccessRequest(\n uri: string,\n idUser: number,\n requestAccessValue: 'accept' | 'deny',\n requestResponseMessage?: string,\n ): Promise<ApiWrapper<[]>> {\n return this.network.post({\n o: 'onlyOffice',\n f: 'setObjectAccessRequest',\n uri,\n idUser,\n requestAccessValue,\n requestResponseMessage,\n } as OF);\n }\n\n public getObjectAccessRequest(uri: string, idUser?: number): Promise<ApiWrapper<ShareAudienceItem[]>> {\n return this.network.post<ShareAudienceItem[]>({\n o: 'onlyOffice',\n f: 'getObjectAccessRequest',\n format: 'raw-little',\n uri,\n idUser,\n } as OF);\n }\n\n public getObject(uri: string): Promise<ApiWrapper<ShareAccessObject>> {\n return this.network.post<ShareAccessObject>({ o: 'onlyOffice', f: 'getObject', uri } as OF);\n }\n\n public askObjectAccess(\n uri: string,\n askAccess: 'read' | 'write',\n askMessage?: string,\n ): Promise<ApiWrapper<boolean>> {\n return this.network.post({ o: 'onlyOffice', f: 'askObjectAccess', uri, askAccess, askMessage } as OF);\n }\n\n public setObjectAccess(\n uri: string,\n access: { read: string[]; write: string[] },\n message: string,\n generalAccessRule: ShareGeneralAccessRules,\n ): Promise<ApiWrapper<boolean>> {\n return this.network.post({\n o: 'onlyOffice',\n f: 'setObjectAccess',\n uri,\n access,\n message,\n generalAccessRule,\n } as OF);\n }\n\n public getObjectAccess(uri: string): Promise<ApiWrapper<ShareAccessProps>> {\n return this.network.post<ShareAccessProps>({\n o: 'onlyOffice',\n f: 'getObjectAccess',\n uri,\n } as OF);\n }\n\n public getObjectAccessHash(uri: string): Promise<ApiWrapper<string>> {\n return this.network.post({\n o: 'onlyOffice',\n f: 'getObjectAccessHash',\n uri,\n } as OF);\n }\n}\n","import { AdminLicenseApi, AdminUtilsApi, AdminStoreApi } from './admin';\nimport { JApplicationApi } from './application';\nimport { JArticleApi } from './article/article';\nimport { JAseiApi } from './asei';\nimport { JAssetReservation } from './assetReservation/assetReservation';\nimport { JAudienceApi } from './audience/audience';\nimport { JCommunityApi } from './community';\nimport { JDiapazoneApi } from './diapazone/diapazone';\nimport { JDriveApi } from './drive/drive';\nimport { JFileApi } from './file';\nimport { JFilebankApi } from './filebank';\nimport { JGroupApi } from './group/group';\nimport { JMediaLibraryApi } from './mediaLibrary/mediaLibrary';\nimport { JLandApi } from './jland/jland';\nimport { JMessengerApi } from './messenger';\nimport { JSearchApi } from './search/search';\nimport { JBookmarkApi } from './bookmark/bookmark';\nimport { JTaxonomyApi } from './taxonomy';\nimport { JUserApi } from './user/user';\nimport { JWedocApi } from './wedoc/wedoc';\nimport { Network } from '../util/network';\nimport { TVDisplayApi } from './tvDisplay/tvDisplay';\nimport { JShareApi } from './share/share';\nimport { JFaqApi } from './faq/faq';\n\n/**\n * In browser usage, 'window' should be the window object.\n * In server side usage, 'window' object given must implement the fetch method, used by the Apis.\n * See tests implementation for a working Node sample.\n *\n * Each property (except {@link constants} and {@link window}) is an API providing access to a Jamespot.Pro backend.\n */\nexport class JamespotUserApi {\n public version = '1.0';\n public network: Network;\n public admin: {\n license: AdminLicenseApi;\n store: AdminStoreApi;\n utils: AdminUtilsApi;\n };\n public application: JApplicationApi;\n public article: JArticleApi;\n public asei: JAseiApi;\n public assetReservation: JAssetReservation;\n public audience: JAudienceApi;\n public bookmark: JBookmarkApi;\n public community: JCommunityApi;\n public diapazone: JDiapazoneApi;\n public drive: JDriveApi;\n public faq: JFaqApi;\n public file: JFileApi;\n public filebank: JFilebankApi;\n public group: JGroupApi;\n public jland: JLandApi;\n public mediaLibrary: JMediaLibraryApi;\n public messenger: JMessengerApi;\n public search: JSearchApi;\n public share: JShareApi;\n public taxonomy: JTaxonomyApi;\n public tvDisplay: TVDisplayApi;\n public user: JUserApi;\n public wedoc: JWedocApi;\n\n public constructor(network: Network) {\n this.network = network;\n\n this.admin = {\n license: new AdminLicenseApi(this),\n store: new AdminStoreApi(this),\n utils: new AdminUtilsApi(this),\n };\n this.application = new JApplicationApi(this);\n this.article = new JArticleApi(this);\n this.asei = new JAseiApi(this);\n this.assetReservation = new JAssetReservation(this);\n this.audience = new JAudienceApi(this);\n this.bookmark = new JBookmarkApi(this);\n this.community = new JCommunityApi(this);\n this.diapazone = new JDiapazoneApi(this);\n this.drive = new JDriveApi(this);\n this.faq = new JFaqApi(this);\n this.file = new JFileApi(this);\n this.filebank = new JFilebankApi(this);\n this.group = new JGroupApi(this);\n this.jland = new JLandApi(this);\n this.mediaLibrary = new JMediaLibraryApi(this);\n this.messenger = new JMessengerApi(this);\n this.search = new JSearchApi(this);\n this.share = new JShareApi(this);\n this.taxonomy = new JTaxonomyApi(this);\n this.tvDisplay = new TVDisplayApi(this);\n this.user = new JUserApi(this);\n this.wedoc = new JWedocApi(this);\n }\n}\n","import { ApiWrapper, BaseMessages, FileResponse, MaybeWithToken } from '../types';\nimport { WindowInterface } from '../window/Window';\n\nexport interface OF {\n o: string;\n f: string;\n}\n\nexport type ApiError = { error: number };\nexport type StandardApiError<T = BaseMessages> = ApiError & { errorMsg: string | undefined; messages: T };\nexport type AbortApiError = ApiError & { error: -1; aborted: true };\n\n/**\n * deprecated\n */\nexport class Network {\n private readonly action: string;\n private readonly window: WindowInterface;\n\n public constructor(window: WindowInterface, action = 'api-front') {\n this.window = window;\n this.action = action;\n }\n\n public static _formatPostOptions(body: object): RequestInit {\n const source = body ? { body: JSON.stringify(body) } : undefined;\n return Object.assign({ method: 'POST', credentials: 'same-origin' as const }, source);\n }\n\n public async getUrl(o: string, f: string) {\n const backendUrl = await this.window.getBackendUrl();\n let href;\n try {\n const url = new URL(`/${this.action}/${o}/${f}`, backendUrl);\n href = url.href;\n } catch (e) {\n href = `${backendUrl}/${this.action}/${o}/${f}`;\n }\n return href;\n }\n\n public async getHostname() {\n const splittedBackUrl = (await this.window.getBackendUrl()).split('//');\n return splittedBackUrl.length > 1 ? splittedBackUrl[1] : splittedBackUrl[0];\n }\n\n public async fetch<T>({ o, f, ...body }: OF, signal?: AbortSignal | null) {\n if (signal === undefined) {\n signal = null;\n }\n const url = await this.getUrl(o, f);\n return this.window.fetch<T>(url, { ...Network._formatPostOptions(body), signal });\n }\n\n public post<T, U = BaseMessages>(body: OF, signal?: AbortSignal): Promise<ApiWrapper<T, U>> {\n return this.fetch<ApiWrapper<T, U>>(body, signal)\n .then((res) => res.json())\n .then((res) => {\n if (res.error === 0) {\n return res;\n }\n const error: StandardApiError<U> = {\n error: res.error,\n errorMsg: res.errorMsg,\n messages: res.messages,\n };\n throw error;\n })\n .catch((err) => {\n if (signal && signal.aborted) {\n const abortError: AbortApiError = {\n error: -1,\n aborted: true,\n };\n throw abortError;\n }\n throw err;\n });\n }\n\n public async postFile(body: FormData) {\n const url = await this.getUrl('file', 'create');\n\n if (!body.get('token')) {\n const { result } = await this.token();\n body.append('token', result);\n }\n\n return this.window\n .fetch<ApiWrapper<FileResponse>>(url, {\n method: 'POST',\n credentials: 'same-origin',\n body,\n })\n .then((resp) => resp.json());\n }\n\n public postCSRF<T, U = BaseMessages>(body: OF): Promise<ApiWrapper<T, U>> {\n return this.tokenCSRF().then((tokenCSRF) => this.post(Object.assign(body, { tokenCSRF: tokenCSRF.result })));\n }\n\n public postToken<T, U = BaseMessages>(body: OF): Promise<ApiWrapper<T, U>> {\n return this.token().then((token) => this.post(Object.assign(body, { token: token.result })));\n }\n\n public maybePostToken<T, U = BaseMessages, P extends MaybeWithToken<OF> = MaybeWithToken<OF>>(\n body: P,\n ): Promise<ApiWrapper<T, U>> {\n if ('token' in body && body.token) {\n return this.post(body);\n } else {\n return this.postToken(body);\n }\n }\n\n public token(): Promise<ApiWrapper<string>> {\n return this.post({ o: 'misc', f: 'token' });\n }\n\n public tokenCSRF(): Promise<ApiWrapper<string>> {\n return this.post({ o: 'misc', f: 'tokenCSRF' });\n }\n}\n","import { FetchReturnType, WindowInterface } from './Window';\n\nexport class WindowBrowser implements WindowInterface {\n async getBackendUrl() {\n const location = window.location;\n return `${location.protocol}//${location.host}`;\n }\n\n fetch<T>(url: string, init?: RequestInit): FetchReturnType<T> {\n return window.fetch(url, init) as FetchReturnType<T>;\n }\n}\n","import { WidgetsValue } from './model';\nimport { jObjectLittle } from './utils';\n\n/**\n * @deprecated Use jUserList instead\n */\nexport type UserModel = jObjectLittle & {\n dateCreation: string;\n dateModified: string;\n firstname: string;\n lastname: string;\n active: number;\n mail?: string;\n};\n\nexport type UserMapModel = {\n idInType: number;\n lat: number;\n lng: number;\n};\n\nexport const UserLevel = {\n ADMIN: 9,\n USER: 5,\n EXTERNAL: 3,\n GUEST: 0,\n} as const;\n\nexport type jUserLittle = jObjectLittle & {\n level: (typeof UserLevel)[keyof typeof UserLevel];\n dateCreation: string;\n dateModified: string;\n};\n\nexport type jUserList = jUserLittle & {\n active: number;\n [key: string]: WidgetsValue;\n};\n\nexport type jUserView = jUserList & {};\n","import {\n BookmarkCustom,\n BookmarkLink,\n BookmarkRawList,\n TVChannelDynamicList,\n TVChannelList,\n TVChannelSlideshowList,\n jObjectBase,\n} from '../types';\nimport { AbortApiError, StandardApiError } from './network';\n\nfunction ensureIsBookmarkLink(bookmark: BookmarkCustom | BookmarkLink): bookmark is BookmarkLink {\n return 'targetId' in bookmark && !!bookmark.targetId;\n}\n\nfunction ensureIsBookmarkCustom(bookmark: BookmarkCustom | BookmarkLink): bookmark is BookmarkCustom {\n const bookmarkCustom = bookmark as BookmarkCustom;\n return (\n bookmarkCustom.bookmarkLabel !== undefined ||\n bookmarkCustom.bookmarkMeta !== undefined ||\n bookmarkCustom.bookmarkUrl !== undefined\n );\n}\n\nfunction ensureIsBookmarkRawList(bookmark: jObjectBase | BookmarkRawList): bookmark is BookmarkRawList {\n const asBookmark = bookmark as BookmarkRawList;\n return asBookmark && typeof asBookmark.id === 'number' && typeof asBookmark.targetId === 'number';\n}\n\ntype jObjectTypes = {\n bookmarkLink: BookmarkRawList;\n};\n\nconst ensureFunctions = {\n bookmarkLink: ensureIsBookmarkRawList,\n};\n\nfunction ensureObjectIsType<T extends keyof jObjectTypes>(type: T, object: jObjectBase): object is jObjectTypes[T] {\n return object !== undefined && object !== null && ensureFunctions[type](object);\n}\n\ntype ChannelsTypes = {\n DYNAMIC: TVChannelDynamicList;\n SLIDESHOW: TVChannelSlideshowList;\n};\n\nfunction ensureTVChannelIs<Type extends keyof ChannelsTypes>(\n channel: TVChannelList,\n type: Type,\n): channel is ChannelsTypes[Type] {\n return 'tvChannelType' in channel && channel.tvChannelType === type;\n}\n// FIXME - err:unknown when typescript > 4.9.5\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst ensureIsStandardApiError = (err: any): err is StandardApiError => {\n return (\n typeof err === 'object' &&\n err !== null &&\n 'error' in err &&\n 'errorMsg' in err &&\n 'messages' in err &&\n typeof err.error === 'number' &&\n typeof err.errorMsg === 'string' &&\n Array.isArray(err.messages)\n );\n};\n\n// FIXME - err:unknown when typescript > 4.9.5\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst ensureIsAbortApiError = (err: any): err is AbortApiError => {\n return (\n err !== null &&\n typeof err === 'object' &&\n 'error' in err &&\n 'aborted' in err &&\n err.error === -1 &&\n err.aborted === true\n );\n};\n\nexport const jEnsure = {\n isBookmarkLink: ensureIsBookmarkLink,\n isBookmarkCustom: ensureIsBookmarkCustom,\n isBookmarkRawList: ensureIsBookmarkRawList,\n isTVChannelType: ensureTVChannelIs,\n objectIsType: ensureObjectIsType,\n isStandardApiError: ensureIsStandardApiError,\n isAbortApiError: ensureIsAbortApiError,\n};\n","import { FileResponse, WidgetFileType } from '../types';\n\nexport const allowedFileExtensions = ['docx', 'xlsx', 'pptx', 'pdf', 'jpeg', 'png', 'zip', 'mp3', 'mp4', 'jpg', 'txt'];\nexport const mimetypeMap: Record<string, string> = {\n docx: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n pptx: 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n pdf: 'application/pdf',\n jpeg: 'image/jpeg',\n jpg: 'image/jpg',\n png: 'image/png',\n zip: 'application/zip',\n mp3: 'audio/mp3',\n mp4: 'video/mp4',\n};\n\nexport function getExtensionFromName(name: string | undefined): string | undefined {\n const tryExt = String(name).split('.').pop();\n\n if (tryExt !== undefined) {\n if (allowedFileExtensions.find((ext) => ext === tryExt.toLocaleLowerCase())) {\n return tryExt;\n }\n }\n\n return undefined;\n}\n\nexport function getFileFamily(mime: string): string | undefined {\n // Exceptions for PSD and SVG\n if (mime && (mime.startsWith('image/vnd') || mime.startsWith('image/svg'))) {\n return 'application';\n }\n\n if (mime && mime.startsWith('image/')) {\n return 'image';\n }\n if (mime && mime.startsWith('video/')) {\n return 'video';\n }\n if (mime && mime.startsWith('audio/')) {\n return 'audio';\n }\n if (mime && mime.startsWith('font/')) {\n return 'font';\n }\n if (mime && mime.startsWith('text/')) {\n return 'text';\n }\n\n return 'application';\n}\n\nexport function getMimetypeFromExtension(ext: string | undefined): string {\n const cleanExt = ext !== undefined ? String(ext).toLocaleLowerCase() : 'noExt';\n\n return mimetypeMap[cleanExt] ?? 'txt';\n}\n\nexport function apiFileToWidgetFile(fileResponse: FileResponse): WidgetFileType {\n const fileExtension = getExtensionFromName(fileResponse.name);\n const fileType = getMimetypeFromExtension(fileExtension);\n\n // Store the filename to let user write is own title (without midify the file in bdd)\n return {\n id: parseInt(fileResponse.id),\n filename: fileResponse.name,\n mimetype: fileType,\n dimension: fileResponse.imagesize,\n };\n}\n","export function suffixIfDoesNotExist(str: string | undefined, suffix: string) {\n return str && !str.endsWith(suffix) ? `${str}${suffix}` : str;\n}\n\nexport function removeIfStartsWith(str: string | undefined, prefix: string) {\n return str && str.startsWith(prefix) ? str.split('').slice(prefix.length).join('') : str;\n}\n\nexport function padStartTwoDigits(val: string | number) {\n return val.toString().padStart(2, '0');\n}\n","import { UriOrTypeId } from '../types/uri';\n\nexport function getUri(arg: UriOrTypeId): string {\n if ('uri' in arg && arg.uri) return arg.uri;\n return `${arg.type}/${arg.recordId}`;\n}\n","import { removeIfStartsWith, suffixIfDoesNotExist } from './string';\nimport { getUri } from './uri';\n\n/**\n * @see JRCImgProps\n */\ntype WidthHeight = {\n width?: number;\n height?: number;\n};\n\n/**\n * @see JRCImgProps\n */\ntype Size = {\n size?: string;\n};\n\n/**\n * @see JRCImgProps\n */\ntype Format = { format?: string };\n\n/**\n * @see JRCImgProps\n */\ntype Timestamp = { timestamp?: string | number };\n\ntype Args = Timestamp & { iconColor?: 'white' };\n\n/**\n * @see JRCImgProps\n */\nexport type ImgUrlProps = {\n url?: string;\n fallbackUrl?: string;\n\n size?: string;\n width?: number;\n height?: number;\n maxWidth?: string;\n\n from?: string;\n uri?: string;\n recordId?: string | number;\n type?: string;\n format?: string;\n\n iconColor?: 'white';\n timestamp?: string | number;\n};\n\nexport function getFrom(arg: Pick<ImgUrlProps, 'from'>) {\n return removeIfStartsWith(suffixIfDoesNotExist(arg.from, '/'), '/') || '';\n}\n\nexport function getTimestamp(arg: Timestamp) {\n return arg.timestamp ? `?_=${arg.timestamp}` : '';\n}\n\nexport function getArgs(arg: Args) {\n const params = [];\n if ('timestamp' in arg && arg.timestamp) {\n params.push(`_=${arg.timestamp}`);\n }\n if ('iconColor' in arg && arg.iconColor) {\n params.push(`color=${arg.iconColor}`);\n }\n return params.length ? '?' + params.join('&') : '';\n}\n\nexport function getSize(arg: Size & WidthHeight, dpr = 2): string {\n if ('size' in arg && arg.size) return arg.size;\n else if ('width' in arg && arg.width && 'height' in arg && arg.height)\n return `${arg.width * dpr}x${arg.height * dpr}`;\n return '';\n}\n\nexport function getFormat(arg: Format) {\n return arg.format || 'png';\n}\n\nexport function getUrl(url: string): URL | undefined {\n try {\n return new URL(url);\n } catch (e) {\n /* silent exception */\n }\n\n try {\n return new URL(window.location.origin + '/' + removeIfStartsWith(url, '/'));\n } catch (e) {\n /* silent exception */\n }\n\n return;\n}\n\n/**\n * Format an img url\n * If url arg is provided, it is used, in addition with an optional timestamp\n * If not parsable or not passed, one should provide:\n * - optional from\n * - size in either size or width/height argument.\n * If width & height are provided, the downloaded image take car of the screen resolution\n * - uri or type/recordId\n * - optional format, default png\n * - optional timestamp\n * The final url is {from}/{size}/{uri}.{format}?_={timestamp}\n * @param arg\n * @param dpr device pixel ratio\n */\nexport function formatImgUrl(arg: ImgUrlProps, dpr = 2) {\n if ('url' in arg && arg.url) {\n const url = getUrl(arg.url);\n if (url) {\n if ('timestamp' in arg && arg.timestamp && !url.searchParams.has('_'))\n url.searchParams.append('_', arg.timestamp.toString());\n return url.toString();\n }\n }\n return `/${getFrom(arg)}${getSize(arg, dpr)}/${getUri(arg)}.${getFormat(arg)}${getArgs(arg)}`;\n}\n","const isArray = Array.isArray;\nconst keyList = Object.keys;\nconst hasProp = Object.prototype.hasOwnProperty;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function deepEqual(a: any, b: any, ignoreAttributes?: Array<string>) {\n const ignoreAttributesArr = ignoreAttributes?.map((attribute) => attribute.split('.'));\n\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n const arrA = isArray(a);\n const arrB = isArray(b);\n let i: number;\n let length: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let key: any;\n\n if (arrA && arrB) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n length = (a as Array<any>).length;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (length !== (b as Array<any>).length) return false;\n for (i = length; i-- !== 0; ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!deepEqual((a as Array<any>)[i], (b as Array<any>)[i], ignoreAttributes)) return false;\n }\n return true;\n }\n\n if (arrA !== arrB) return false;\n\n const dateA = a instanceof Date;\n const dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return (a as Date).getTime() === (b as Date).getTime();\n\n const regexpA = a instanceof RegExp;\n const regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n\n const keys = keyList(a).filter(\n (aKey) => !ignoreAttributesArr?.some((attribute) => attribute.length === 1 && attribute[0] === aKey),\n );\n length = keys.length;\n\n if (\n length !==\n keyList(b).filter(\n (aKey) => !ignoreAttributesArr?.some((attribute) => attribute.length === 1 && attribute[0] === aKey),\n ).length\n ) {\n return false;\n }\n\n for (i = length; i-- !== 0; ) {\n if (!hasProp.call(b, keys[i])) return false;\n }\n // end fast-deep-equal\n\n // Custom handling for React\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (\n !deepEqual(\n (a as Record<typeof key, object>)[key],\n (b as Record<typeof key, object>)[key],\n ignoreAttributesArr\n ?.filter((attribute) => attribute.length > 1 && attribute[0] === key)\n .map((attribute) => attribute.splice(1).join('.')),\n )\n ) {\n return false;\n }\n }\n }\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n // eslint-disable-next-line no-self-compare\n return a !== a && b !== b;\n}\n\n/**\n * Remplace la valeur de propriétés par leur typeof, sur toute la profondeur de l'objet.\n * Valorisation avec le typeof pour conserver la vérification du type dans le cas d'une comparaison d'objets.\n * Avantages :\n * - gère l'ensemble de la profondeur de l'objet\n * - peut être intégré à un test toMatchObject qui permet une meilleure\n * lisibilité des erreurs potentielles ({@see validatePhpUnitSnapshot})\n * @param obj objet à modifier\n * @param replacedProperties propriétés à remplacer\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function replacePropertiesWithTypes(obj: any, replacedProperties: string[]): any {\n if (Array.isArray(obj)) {\n return obj.map((i) => replacePropertiesWithTypes(i, replacedProperties));\n } else if (typeof obj === 'object' && obj !== null) {\n let res = {};\n Object.keys(obj).forEach((k) => {\n res = {\n ...res,\n [k]:\n k && replacedProperties.includes(k)\n ? typeof obj[k]\n : replacePropertiesWithTypes(obj[k], replacedProperties),\n };\n });\n return res;\n } else {\n return obj;\n }\n}\n","function propertyIsTag(property: string) {\n return property.startsWith('tag_') || property === 'tags';\n}\nexport function extractTaxonomiesFromObject(objet: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(Object.entries(objet).filter(([name]) => propertyIsTag(name)));\n}\n\nexport function extractTaxonomiesFromObjectAndMapProperty(\n objet: Record<string, unknown>,\n property: string,\n format?: (o: any) => any,\n) {\n return Object.fromEntries(\n Object.entries(objet)\n .filter(([name]) => propertyIsTag(name))\n .map(([name, concepts]) => {\n const v = Array.isArray(concepts)\n ? concepts.map((concept) =>\n typeof concept === 'object' && concept && property in concept ? concept[property] : concept,\n )\n : concepts;\n return [name, format ? format(v) : v];\n }),\n );\n}\n\nexport function extractTaxonomiesFromObjectAndMapUri(objet: Record<string, unknown>): Record<string, unknown> {\n return extractTaxonomiesFromObjectAndMapProperty(objet, 'uri');\n}\n","import { JamespotUserApi } from './apis';\nimport { Network } from './util/network';\nimport { WindowBrowser } from './window';\n\nexport const network = new Network(new WindowBrowser());\nconst JamespotUserApiInstance = new JamespotUserApi(network);\n\ndeclare global {\n interface Window {\n JamespotUserApi: JamespotUserApi;\n }\n}\n\nwindow.JamespotUserApi = JamespotUserApiInstance;\n\nexport { JamespotUserApiInstance };\nexport default JamespotUserApiInstance;\n\nexport * from './apis';\nexport * from './types';\nexport * from './util/';\nexport * from './window';\n\nexport const api = JamespotUserApi;\n"],"names":["StudioApplicationStatus","__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","JBaseApi","jApi","this","network","AdminLicenseApi","getLicenseUserStatistics","post","f","assignLicense","uri","postCSRF","unAssignLicense","getAssignmentMode","type","setAssignmentMode","assignmentMode","assignPossiblesLicenses","unAssignUnusedLicenses","optimizeLicenses","getObjectsWithoutLicense","filter","getLicensesNotAssigned","getLicensesAssigned","AdminStoreApi","getItem","checkoutBilling","checkoutFinalize","AdminUtilsApi","getApps","JApplicationApi","list","idApp","status","install","xmlBody","suspend","restart","save","saved","autosaved","delete","then","res","error","messages","cssClassList","JArticleApi","config","create","article","format","maybePostToken","update","id","idArticle","count","getAttachments","JAssetReservation","configuration","createReservation","params","getReservations","cancelReservation","bookByDate","getList","JAudienceApi","autocomplete","query","q","Array","isArray","result","JBookmarkApi","getFormattedList","filterSpecs","addFormattedLink","targetId","targetType","requestedFormat","addBookmark","bookmark","bookmarkId","bookmarkID","rename","bookmarkLabel","bookmarkUrl","move","bookmarkReference","position","bookmarkPosition","JCommunityApi","idCommunity","sendRequest","message","idUserTo","JDiapazoneApi","token","title","dateStart","publishTo","filters","orders","page","JFaqApi","createCategory","updateCategory","getCategory","deleteCategory","getTaxonomy","getHookProperties","properties","JFileApi","upload","body","FormData","append","attrName","file","url","postFile","uploadMany","configArray","Promise","all","map","idFile","cropDatas","w","width","h","height","x","y","rotation","rotateBeforeCrop","killSize","crop","JSON","parse","deleteFile","signal","deleteImage","JFilebankApi","getBanks","getFolders","parentURI","getDocuments","JGroupApi","idToUri","group","spotBanner","_spotBanner","restGroup","getSpot","idSpot","getProperties","getApplications","getCategories","getObjectListJamespotSpotMembers","limit","resetNotifications","JAseiApi","name","sort","requestStatus","requestedStatus","audience","getDedicatedGroups","getConfiguration","right","JDriveApi","tenants","groups","sites","documents","service","documentParams","JMediaLibraryApi","GetUnclassifiedFiles","JLandApi","getLogs","dateEnd","idLogMax","getStats","getAllMapsAsAdmin","createMap","JMessengerApi","sendMessage","idDiscussion","msg","description","getOrCreateDiscussion","idSender","JSearchApi","getConfig","proposition","searchQuery","keywords","category","facetCategories","options","getLastQueries","getAdminConfig","setAdminConfig","JTaxonomyApi","taxonomy","idTaxonomy","autocompleteList","payload","autocompleteHierarchy","JUserApi","userList","userQueryList","userMap","userBusinessContactQueryList","userCreateBusinessContact","user","userFormatter","pseudo","firstName","firstname","lastName","lastname","champ1","field1","champ2","field2","champ3","field3","champ4","field4","champ5","field5","userUpdateBusinessContact","userDeleteBusinessContact","userAddContact","idUser","userRemoveContact","signIn","mail","pwd","password","JWedocApi","getFiles","getFile","hash","getTemplates","duplicateFile","withParent","createFile","updateFile","TVDisplayApi","createChannel","channel","getChannel","getConfigureChannel","JShareApi","setObjectAccessRequest","requestAccessValue","requestResponseMessage","getObjectAccessRequest","getObject","askObjectAccess","askAccess","askMessage","setObjectAccess","access","generalAccessRule","getObjectAccess","getObjectAccessHash","JamespotUserApi","version","admin","license","store","utils","application","asei","assetReservation","community","diapazone","drive","faq","filebank","jland","mediaLibrary","messenger","search","share","tvDisplay","wedoc","Network","window","action","static","source","stringify","undefined","assign","method","credentials","getUrl","backendUrl","getBackendUrl","href","URL","e","getHostname","splittedBackUrl","split","length","fetch","_formatPostOptions","json","errorMsg","catch","err","aborted","resp","tokenCSRF","postToken","WindowBrowser","location","protocol","host","init","UserLevel","ADMIN","USER","EXTERNAL","GUEST","ensureIsBookmarkRawList","asBookmark","ensureFunctions","bookmarkLink","jEnsure","isBookmarkLink","isBookmarkCustom","bookmarkCustom","bookmarkMeta","isBookmarkRawList","isTVChannelType","tvChannelType","objectIsType","object","isStandardApiError","isAbortApiError","allowedFileExtensions","mimetypeMap","docx","xlsx","pptx","pdf","jpeg","jpg","png","zip","mp3","mp4","getExtensionFromName","tryExt","String","pop","find","ext","toLocaleLowerCase","getFileFamily","mime","startsWith","getMimetypeFromExtension","cleanExt","apiFileToWidgetFile","fileResponse","fileType","parseInt","filename","mimetype","dimension","imagesize","suffixIfDoesNotExist","str","suffix","endsWith","removeIfStartsWith","prefix","slice","join","padStartTwoDigits","val","toString","padStart","getUri","arg","recordId","getFrom","from","getTimestamp","timestamp","getArgs","push","iconColor","getSize","dpr","size","getFormat","origin","formatImgUrl","searchParams","has","keyList","keys","hasProp","deepEqual","a","b","ignoreAttributes","ignoreAttributesArr","attribute","arrA","arrB","i","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","aKey","some","$$typeof","splice","replacePropertiesWithTypes","replacedProperties","forEach","k","includes","propertyIsTag","property","extractTaxonomiesFromObject","objet","fromEntries","entries","extractTaxonomiesFromObjectAndMapProperty","concepts","v","concept","extractTaxonomiesFromObjectAndMapUri","JamespotUserApiInstance","api"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"jamespot-user-api.js","mappings":"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","sources":["webpack://jamespot-user-api/webpack/bootstrap","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/application/types.ts","webpack://jamespot-user-api/webpack/runtime/define property getters","webpack://jamespot-user-api/webpack/runtime/hasOwnProperty shorthand","webpack://jamespot-user-api/webpack/runtime/make namespace object","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/base.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/admin/license.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/admin/store.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/admin/utils.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/application/application.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/article/article.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/assetReservation/assetReservation.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/audience/audience.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/bookmark/bookmark.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/community.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/diapazone/diapazone.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/file/file.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/faq/faq.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/filebank.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/group/group.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/asei.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/drive/drive.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/mediaLibrary/mediaLibrary.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/jland/jland.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/messenger.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/search/search.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/taxonomy/taxonomy.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/user/user.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/wedoc/wedoc.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/tvDisplay/tvDisplay.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/share/share.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/apis/jamespotUserApi.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/network.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/window/WindowBrowser.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/types/user.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/ensure.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/file.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/string.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/uri.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/images.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/object.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/util/taxonomy.ts","webpack://jamespot-user-api/../../../../../react/jamespot-user-api/builds/jamespot/internalDevs/continuousdeployment/jamespot-user-api/src/index.ts"],"sourcesContent":["// The require scope\nvar __webpack_require__ = {};\n\n","import { jObjectLittle, Rights, ValueOf } from '../../types';\r\n\r\nexport type ApplicationType = {\r\n name: string;\r\n label: string;\r\n icon: string;\r\n img: string;\r\n url: string;\r\n description: string;\r\n color?: string;\r\n hasLicense: boolean;\r\n sref?: string;\r\n type?: string;\r\n _extend?: {\r\n [key: string]: any;\r\n };\r\n};\r\n\r\nexport type StudioAction = {\r\n action: string;\r\n nameApp: string;\r\n};\r\n\r\nexport interface AccessRightObject extends jObjectLittle {\r\n firstname?: string;\r\n lastname?: string;\r\n mail?: string;\r\n privacy?: string;\r\n category?: string;\r\n description?: string;\r\n image?: string | null;\r\n _values: {\r\n firstname?: string;\r\n lastname?: string;\r\n mail?: string;\r\n title: string;\r\n dateCreation: string;\r\n dateModified: string;\r\n privacy?: number;\r\n category?: string;\r\n };\r\n _cssColor: string;\r\n _cssClass: string;\r\n _right: Rights;\r\n}\r\n\r\nexport type StudioApplicationBase = {\r\n idApp: string;\r\n type?: string;\r\n name?: string;\r\n label?: string;\r\n description?: string;\r\n checkAccess?: boolean;\r\n attrExposed?: Array<string>;\r\n status: StudioApplicationStatusEnumBased;\r\n suspended?: boolean;\r\n view?: string;\r\n author?: string;\r\n columns?: Record<string, string>;\r\n accessRightList?: string[];\r\n accessRightObjectList?: Array<AccessRightObject>;\r\n typeModel?: unknown;\r\n value?: string;\r\n manifest?: StudioManifest;\r\n img?: string;\r\n icon?: string;\r\n color?: string;\r\n url?: string;\r\n types?: string;\r\n urlTarget?: boolean;\r\n order?: number;\r\n dateCreation?: string;\r\n studioVersion?: number;\r\n showImport?: boolean;\r\n showMap?: boolean;\r\n mail2RSE?: boolean;\r\n action?: StudioAction;\r\n display?: string;\r\n};\r\n\r\nexport type StudioManifest = {\r\n dateCreation: string;\r\n author: string;\r\n manifestVersion: number;\r\n version: number;\r\n};\r\n\r\nexport enum StudioApplicationStatus {\r\n local = 'local',\r\n installed = 'installed',\r\n autosaved = 'autosaved',\r\n saved = 'saved',\r\n}\r\n\r\nexport type StudioApplicationStatusEnumBased = ValueOf<StudioApplicationStatus>;\r\n\r\nexport type StudioApplication = StudioApplicationBase & {};\r\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","import { Network } from '../util/network';\nimport type { JamespotUserApi } from './jamespotUserApi';\n\nexport class JBaseApi {\n public jApi: JamespotUserApi;\n public network: Network;\n\n public constructor(jApi: JamespotUserApi) {\n this.jApi = jApi;\n this.network = jApi.network;\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport {\n AdminLicensesAssigned,\n AdminLicensesNotAssigned,\n AdminLicenseUserStats,\n ObjectWithoutLicenseFilter,\n} from '../../types';\n\nexport class AdminLicenseApi extends JBaseApi {\n /**\n * Retrieve the user licenses stats\n */\n public getLicenseUserStatistics() {\n return this.network.post<AdminLicenseUserStats>({\n o: 'licenseManager',\n f: 'userStatistics',\n } as OF);\n }\n\n /**\n * Assigns a license to the content with the provided uri (if any is available)\n * @param uri URI of the object to which a license must be assigned\n * @returns boolean\n */\n public assignLicense(uri: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'assignLicense',\n uri,\n } as OF);\n }\n\n /**\n * Unassigns the license linked to the content with the provided uri\n * @param uri URI of the object to which a license must be unassigned\n * @returns boolean\n */\n public unAssignLicense(uri: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'unassignLicense',\n uri,\n } as OF);\n }\n\n /**\n * Retrieve the assignment license user mode between automatic | manual\n * @param type retrieve the automatic license assignation\n * @returns a string who's the current assignment selected\n */\n public getAssignmentMode(type: string) {\n return this.network.post<string>({\n o: 'licenseManager',\n f: 'getAssignmentMode',\n type,\n } as OF);\n }\n\n /**\n * Change the mode which the license are affected to the users\n * @param type the type of license that would automatically be assigned\n * @param assignmentMode the mode which the license are affected (automatic | manual)\n * @returns boolean\n */\n public setAssignmentMode(type: string, assignmentMode: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'setAssignmentMode',\n value: assignmentMode,\n type,\n } as OF);\n }\n\n /**\n * Assign the available licenses\n * @param type the type of licenses for which we will assign the remaining available one\n * @returns boolean\n */\n public assignPossiblesLicenses(type: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'assignPossiblesLicenses',\n type,\n } as OF);\n }\n\n /**\n * Unassign licenses for inactive users\n * @param type the type of licenses for which we will unassign upon inactive user\n * @returns boolean\n */\n public unAssignUnusedLicenses(type: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'unassignUnusedLicenses',\n type,\n } as OF);\n }\n\n /**\n * Assign available licenses and unassign license for inactive users\n * @param type the type of licenses for which we will unassign and assign the possible licenses\n * @returns boolean\n */\n public optimizeLicenses(type: string) {\n return this.network.postCSRF<boolean>({\n o: 'licenseManager',\n f: 'optimizeLicenses',\n type,\n } as OF);\n }\n\n /**\n * Retrieves the number of licenses of a given type available. License type is\n * different from the content type to which it can be assigned to.\n *\n * @param type The type of license for which we want to know the availability\n * @param filter the filters array the request can be called with\n * @returns A promise with the number of object without license\n */\n public getObjectsWithoutLicense(type: string, filter?: ObjectWithoutLicenseFilter[]) {\n return this.network.post<number>({\n o: 'licenseManager',\n f: 'countObjectsWithoutLicense',\n type,\n filter,\n } as OF);\n }\n\n /**\n * Retireve the list of licenses assigned to content of a given type\n *\n * @param type type of content for which we want to retrieve the licenses not assigned\n * @returns The number of licenses depending on the type used as param\n */\n public getLicensesNotAssigned(type: string) {\n return this.network.post<AdminLicensesNotAssigned>({\n o: 'licenseManager',\n f: 'countLicensesNotAssigned',\n type,\n } as OF);\n }\n\n /**\n * Retireve the list of licenses assigned to content of a given type\n *\n * @param type type of content for which we want to retrieve the licenses\n * @returns The list of licenses assigned to content of the provided type\n */\n public getLicensesAssigned(type: string) {\n return this.network.post<AdminLicensesAssigned[]>({\n o: 'licenseManager',\n f: 'getLicensesAssigned',\n type,\n } as OF);\n }\n}\n","import { ApiWrapper, StoreItem, StoreFinalize } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class AdminStoreApi extends JBaseApi {\n public getItem(uri: string): Promise<ApiWrapper<StoreItem>> {\n return this.network.post({\n o: 'adminStore',\n f: 'getItem',\n uri,\n } as OF);\n }\n public checkoutBilling(uri: string): Promise<ApiWrapper<boolean>> {\n return this.network.postCSRF({\n o: 'adminStore',\n f: 'checkoutBilling',\n uri,\n } as OF);\n }\n public checkoutFinalize(uri: string): Promise<ApiWrapper<StoreFinalize>> {\n return this.network.postCSRF({\n o: 'adminStore',\n f: 'checkoutFinalize',\n uri,\n } as OF);\n }\n}\n","import { AdminApps } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class AdminUtilsApi extends JBaseApi {\n /**\n * Request the admin applications and sub applications for the admin panel\n */\n public getApps() {\n return this.network.post<AdminApps>({\n o: 'admin',\n f: 'apps',\n } as OF);\n }\n}\n","import { ApiWrapper, BaseMessages } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport {\n StudioApplication,\n StudioApplicationBase,\n StudioApplicationStatus,\n StudioApplicationStatusEnumBased,\n} from './types';\n\nexport class JApplicationApi extends JBaseApi {\n /**\n * List applications\n * @returns {@link JApplication} objects, in light format\n */\n public list() {\n return this.network.post<Array<StudioApplicationBase>>({ o: 'studio', f: 'list' });\n }\n\n /**\n * Get one application\n * @returns {@link JApplication} object in full format\n */\n public get(idApp: string, status?: StudioApplicationStatusEnumBased) {\n return this.network.post<StudioApplication>({ o: 'studio', f: 'get', idApp, status } as OF);\n }\n\n /**\n * Install this application.\n * If everything is ok, remove previous saved and autosaved versions of this application.\n * @param xmlBody: string XML file\n * @returns {@link JApplication} object in full format\n */\n public install(xmlBody: string) {\n return this.network.postCSRF<StudioApplication>({ o: 'studio', f: 'install', value: xmlBody } as OF);\n }\n\n /**\n * Suspend an installed application.\n * @param idApp: application's id\n * @returns {@link JApplication} object in full format\n */\n public suspend(idApp: string) {\n return this.network.postCSRF<StudioApplication>({ o: 'studio', f: 'suspend', idApp } as OF);\n }\n\n /**\n * Restart an suspended application.\n * @param idApp: application's id\n * @returns {@link JApplication} object in full format\n */\n public restart(idApp: string) {\n return this.network.postCSRF<StudioApplication>({ o: 'studio', f: 'restart', idApp } as OF);\n }\n\n /**\n * Save a 'local', 'saved' or 'autosaved' version of the application\n * Returns a 'save' or 'autosaved' application.\n * @param idApp: application's id\n * @param value: data to be saved\n * @param status: must be either 'saved' or 'autosaved'.\n * @returns {@link JApplication} object in full format\n */\n public save(idApp: string, value: string, status: StudioApplicationStatusEnumBased) {\n if (status === StudioApplicationStatus.saved || status === StudioApplicationStatus.autosaved) {\n return this.network.postCSRF<StudioApplication>({\n o: 'studio',\n f: 'save',\n idApp,\n value,\n status,\n } as OF);\n } else {\n throw 'Invalid status value';\n }\n }\n\n /**\n * Delete a selected status of the application\n * @param idApp application id to delete\n * @param status application status to select\n * @returns message after delete execution\n */\n public async delete(idApp: string, status: StudioApplicationStatusEnumBased): Promise<BaseMessages> {\n return this.network\n .postCSRF<string>({\n o: 'studio',\n f: 'delete',\n idApp,\n status,\n } as OF)\n .then((res) => {\n if (res.error === 0) {\n return res.messages;\n }\n throw res.messages;\n });\n }\n\n /**\n * Get cssClass possible values.\n */\n public cssClassList(): Promise<ApiWrapper<Array<string>>> {\n return this.network.post<Array<string>>({ o: 'studio', f: 'icons' });\n }\n}\n","import { JBaseApi } from '../base';\nimport {\n ApiWrapper,\n BaseMessages,\n Filters,\n jArticleList,\n jArticleLittle,\n jFileLittle,\n MaybeWithToken,\n Orders,\n PagingResults,\n} from '../../types';\nimport { OF } from '../../util';\n\nexport type ArticleListConfig = {\n type: string;\n format?: string;\n query?: string;\n limit?: number;\n page?: number;\n orders?: Orders;\n filters?: Filters | undefined;\n};\n\nexport type ArticleGetConfig = {\n uri?: string;\n idArticle?: number;\n format?: string;\n};\n\nexport type ArticleCreation = {\n title?: string;\n description?: string | null;\n type?: string;\n publishTo?: string;\n idSpot?: Array<string>;\n};\n\nexport type BaseArticle = {\n id: number;\n type: string;\n dateCreation: string;\n dateModified: string;\n title: string;\n uri: string;\n};\n\nexport class JArticleApi extends JBaseApi {\n public list<T extends jArticleLittle = jArticleLittle>(\n config: ArticleListConfig,\n ): Promise<ApiWrapper<PagingResults<T>>> {\n return this.network.post({\n o: 'objectList',\n f: 'jamespotArticleQueryList',\n ...config,\n } as OF);\n }\n\n public get<T extends jArticleLittle = jArticleLittle>(\n config: ArticleGetConfig,\n ): Promise<ApiWrapper<T, BaseMessages>> {\n return this.network.post({\n o: 'article',\n f: 'get',\n ...config,\n } as OF);\n }\n\n public create<R extends jArticleLittle = jArticleLittle, P extends ArticleCreation = ArticleCreation>(\n article: MaybeWithToken<P>,\n format?: string,\n ): Promise<ApiWrapper<Array<R>, BaseMessages>> {\n return this.network.maybePostToken({\n o: 'article',\n f: 'create',\n format: format ?? 'raw-list',\n ...article,\n } as OF);\n }\n\n public update<T extends { uri: string }, U extends jArticleLittle = jArticleList>(\n article: T,\n ): Promise<ApiWrapper<U, BaseMessages>> {\n return this.network.post({\n format: 'raw-list',\n ...article,\n o: 'article',\n f: 'update',\n } as OF);\n }\n\n public delete(id: number): Promise<ApiWrapper<boolean, BaseMessages>> {\n return this.network.postCSRF({\n o: 'article',\n f: 'delete',\n idArticle: id,\n } as OF);\n }\n\n public count(type: string): Promise<ApiWrapper<number>> {\n return this.network.post({\n o: 'article',\n f: 'count',\n type,\n } as OF);\n }\n\n public getAttachments(id: number, type: string, format?: string): Promise<ApiWrapper<jFileLittle[]>> {\n return this.network.post({\n o: 'article',\n f: 'getAttachment',\n idArticle: id,\n type,\n format,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { ApiWrapper, BaseMessages, Filters, Orders, PagingResults } from '../../types/utils';\nimport { AssetReservationConfiguration, BookableAssetList, ReservationList } from '../../types/assetReservation';\n\nexport class JAssetReservation extends JBaseApi {\n public configuration(): Promise<ApiWrapper<AssetReservationConfiguration>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'configuration',\n } as OF);\n }\n public createReservation(params: {\n uri: string;\n date: string;\n hourStart: string;\n hourEnd: string;\n uriUser?: string;\n description?: string;\n }): Promise<ApiWrapper<ReservationList, BaseMessages>> {\n return this.network.postCSRF({\n o: 'assetReservation',\n f: 'createReservation',\n format: 'raw-list',\n ...params,\n } as OF);\n }\n\n public getReservations({\n format = 'raw-list',\n ...params\n }: {\n format?: string;\n uri: string;\n dateStart: string;\n dateEnd: string;\n }): Promise<ApiWrapper<ReservationList[], BaseMessages>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'getReservations',\n format,\n ...params,\n } as OF);\n }\n\n public cancelReservation(id: number): Promise<ApiWrapper<ReservationList, BaseMessages>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'cancelReservation',\n format: 'raw-list',\n idArticle: id,\n } as OF);\n }\n\n public bookByDate({\n format = 'raw-list',\n ...params\n }: {\n format?: string;\n date: string;\n hourStart: string;\n hourEnd: string;\n }): Promise<ApiWrapper<BookableAssetList[], BaseMessages>> {\n return this.network.post({\n o: 'assetReservation',\n f: 'BookByDate',\n format,\n ...params,\n } as OF);\n }\n\n public getList({\n format = 'raw-list',\n ...params\n }: {\n format?: string;\n query?: string;\n limit?: number;\n page?: number;\n orders?: Orders;\n filters?: Filters | undefined;\n viewMode?: 'history' | undefined;\n }): Promise<ApiWrapper<PagingResults<ReservationList>, BaseMessages>> {\n return this.network.post({\n o: 'objectList',\n f: 'assetReservationList',\n format,\n ...params,\n } as OF);\n }\n}\n","import { AudienceAutocomplete } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class JAudienceApi extends JBaseApi {\n /**\n * autocomplete\n * return the list of user and Spot\n */\n public autocomplete(query: string): Promise<AudienceAutocomplete[]> {\n return this.network.post({ o: 'autocomplete', f: 'audience', q: query } as OF).then((res) => {\n if (Array.isArray(res.result)) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n}\n","import { ApiWrapper, BaseMessagesOne, Orders, PagingResults } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { BookmarkTypes } from '../../types';\n\nexport interface ListFilterSpec {\n query?: string;\n page?: number;\n limit?: number;\n orders?: Orders;\n}\n\nexport class JBookmarkApi extends JBaseApi {\n public getFormattedList<T extends keyof BookmarkTypes>(filterSpecs: ListFilterSpec, format: T) {\n return this.network.post<PagingResults<BookmarkTypes[typeof format]>>({\n o: 'objectList',\n f: 'bookmarksList',\n format: format,\n ...filterSpecs,\n } as OF);\n }\n\n public addFormattedLink<T extends keyof BookmarkTypes>(targetId: number, targetType: string, format: T) {\n const requestedFormat = format ?? 'list';\n return this.network.post<BookmarkTypes[T]>({\n o: 'custom',\n f: 'actionAdd',\n type: 'bookmarkLink',\n targetId,\n targetType,\n format: requestedFormat,\n } as OF);\n }\n\n public addBookmark(\n bookmark: Pick<BookmarkTypes[keyof BookmarkTypes], 'bookmarkLabel' | 'bookmarkMeta' | 'bookmarkUrl'>,\n format?: keyof BookmarkTypes,\n ) {\n const requestedFormat = format ?? 'list';\n return this.network.postCSRF<BookmarkTypes[typeof requestedFormat], BaseMessagesOne>({\n o: 'bookmarks',\n f: 'add',\n ...bookmark,\n } as OF);\n }\n\n public delete(bookmarkId: number): Promise<ApiWrapper<null, BaseMessagesOne>> {\n return this.network.postCSRF<null, BaseMessagesOne>({\n o: 'bookmarks',\n f: 'delete',\n bookmarkID: bookmarkId,\n } as OF);\n }\n\n public rename(\n bookmarkID: number,\n bookmarkLabel: string,\n bookmarkUrl?: string,\n ): Promise<ApiWrapper<null, BaseMessagesOne>> {\n return this.network.postCSRF<null, BaseMessagesOne>({\n o: 'bookmarks',\n f: 'rename',\n bookmarkID,\n bookmarkLabel,\n bookmarkUrl,\n } as OF);\n }\n\n public move(\n bookmarkID: number,\n bookmarkReference: number,\n position: 'before' | 'after',\n ): Promise<ApiWrapper<null, BaseMessagesOne>> {\n return this.network.postCSRF<null, BaseMessagesOne>({\n o: 'bookmarks',\n f: 'move',\n bookmarkID,\n bookmarkReference,\n bookmarkPosition: position,\n } as OF);\n }\n}\n","import { ApiReturn, CommunityAutocomplete, Format, jObjectLittle } from '../types';\nimport { JBaseApi } from './base';\nimport { OF } from '../util/network';\n\nexport class JCommunityApi extends JBaseApi {\n public get<T extends Format = undefined>(idCommunity: string | number, format?: T) {\n return this.network.post<ApiReturn<T, jObjectLittle, jObjectLittle, jObjectLittle, jObjectLittle>>({\n o: 'community',\n f: 'getCommunity',\n idCommunity,\n format: format || 'raw-little',\n } as OF);\n }\n\n public sendRequest(message: string, idUserTo: number) {\n return this.network.post<boolean, { code: number; msg: string }>({\n o: 'community',\n f: 'sendRequest',\n message,\n idUserTo,\n } as OF);\n }\n\n public autocomplete(q: string): Promise<CommunityAutocomplete[]> {\n return this.network\n .post<CommunityAutocomplete[]>({ o: 'autocomplete', f: 'community', q } as OF)\n .then((res) => res.result);\n }\n}\n","import { JBaseApi } from '../base';\nimport { ApiWrapper, BaseMessages, Filters, Orders, PagingResults, jDiapazoneList } from '../../types';\nimport { OF } from '../../util/network';\n\nexport class JDiapazoneApi extends JBaseApi {\n public create<T>(\n type: string,\n token: string,\n title: string,\n dateStart: string,\n publishTo: Array<string>,\n ): Promise<ApiWrapper<Array<T>, BaseMessages>> {\n return this.network.post({\n o: 'article',\n f: 'create',\n type,\n token,\n title,\n dateStart,\n publishTo,\n } as OF);\n }\n\n public getList(\n query = '',\n filters: Filters = [],\n orders: Orders = [],\n page = 1,\n format = 'raw-list',\n ): Promise<ApiWrapper<PagingResults<jDiapazoneList>>> {\n return this.network.post({\n o: 'objectList',\n f: 'diapazoneQueryList',\n query,\n filters,\n orders,\n page,\n format,\n } as OF);\n }\n}\n","import { ApiWrapper, FileCropConfig, UploadConfig, jFileLittle, jFileLittleCrop } from '../../types';\nimport { OF } from '../../util/network';\nimport { JBaseApi } from '../base';\n\nexport class JFileApi extends JBaseApi {\n /**\n * Upload a file to the server. use the same token to link the file to an article\n * @param config configuration object. One of \"file\" and \"url\" is mandatory\n */\n public upload(config: UploadConfig) {\n const body = new FormData();\n body.append('attrName', config.attrName);\n if (config.file) {\n body.append(config.attrName, config.file);\n } else if (config.url) {\n body.append('url', config.url);\n }\n body.append('token', config.token);\n return this.network.postFile(body);\n }\n\n /**\n * Upload a list of files to the server. use the same token to link the file to an article\n * @param attrName file name (attachment, image, bannerImage, etc.)\n * @param files files\n * @param token token\n */\n public async uploadMany(configArray: Array<UploadConfig>) {\n return Promise.all(configArray.map((config) => this.upload(config)));\n }\n\n public async get<T extends jFileLittle>(idFile: number, format?: string): Promise<ApiWrapper<T>> {\n return this.network.post({\n o: 'file',\n f: 'get',\n idFile,\n format,\n } as OF);\n }\n\n /**\n * Crop an image\n * @param config crop configuration\n * @returns\n */\n public async update(idFile: number | string, type: string, config: FileCropConfig) {\n return this.network.post<jFileLittleCrop>({\n o: 'file',\n f: 'update',\n idFile,\n type,\n cropDatas: {\n ...config,\n rotateBeforeCrop: true,\n },\n killSize: config.killSize,\n format: 'raw-little',\n } as OF);\n }\n\n /**\n * delete file. This action is not automatic. You need to update the content associated with the deleted image with the same token\n * @param idFile file id\n * @param attrName attribute name\n * @param token token\n * @returns\n */\n public async deleteFile(idFile: number | string, attrName: string, token: string, signal?: AbortSignal) {\n return this.network.post<boolean>(\n {\n o: 'file',\n f: 'delete',\n idFile,\n attrName,\n token,\n } as OF,\n signal,\n );\n }\n\n /**\n * delete the image associated with a content. This action is permanent. There is no two step process with a token\n * @param id content id\n * @param type content type\n * @returns\n */\n public async deleteImage(id: number | string, type: string) {\n return this.network.post<{ id: number }>({\n o: 'file',\n f: 'deleteImage',\n id,\n type,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport {\n ApiWrapper,\n CreateFaqCategory,\n EditFaqCategory,\n FaqCategoryView,\n FaqHookProperties,\n FaqTaxonomy,\n jArticleLittle,\n} from '../../types';\nimport { OF } from '../../util';\n\nexport class JFaqApi extends JBaseApi {\n public createCategory<T extends jArticleLittle = FaqCategoryView>(\n params: Omit<CreateFaqCategory, 'type'>,\n format?: string,\n ): Promise<ApiWrapper<Array<T>>> {\n return this.jApi.article.create<T, CreateFaqCategory>({ ...params, type: 'faq' }, format || 'raw-view');\n }\n\n public updateCategory<T extends jArticleLittle = FaqCategoryView>(\n params: Omit<EditFaqCategory, 'type'>,\n format?: string,\n ): Promise<ApiWrapper<T>> {\n return this.jApi.article.update<EditFaqCategory, T>({ ...params, type: 'faq', format: format || 'raw-view' });\n }\n\n public getCategory<T extends jArticleLittle = FaqCategoryView>(\n id: number,\n format?: string,\n ): Promise<ApiWrapper<T>> {\n return this.jApi.article.get<T>({ idArticle: id, format: format || 'raw-view' });\n }\n\n public deleteCategory(id: number): Promise<ApiWrapper<boolean>> {\n return this.jApi.article.delete(id);\n }\n\n public getTaxonomy(): Promise<ApiWrapper<FaqTaxonomy>> {\n return this.network.post({\n o: 'faq',\n f: 'getFaqTaxonomy',\n });\n }\n\n public getHookProperties(properties?: Array<keyof FaqHookProperties>): Promise<ApiWrapper<FaqHookProperties>> {\n return this.network.post({\n o: 'faq',\n f: 'getHookProperties',\n properties: properties || ['_web'],\n } as OF);\n }\n}\n","import { JBaseApi } from './base';\nimport { OF } from '../util/network';\nimport { ApiPagingResults, ApiWrapper, jObjectBase, jObjectLittle, Rights } from '../types';\n\nexport interface RootFolderProps {\n id: number;\n title: string;\n uri: string;\n type: string;\n mainType: string;\n folderColor?: string;\n}\n\nexport interface SpotProps {\n id: number;\n title: string;\n uri: string;\n type: string;\n mainType: string;\n folderColor?: string;\n}\n\nexport interface FileBankProps {\n recents: jObjectLittle[];\n rootFolder: RootFolderProps;\n spot: SpotProps;\n}\n\nexport interface FolderProps extends jObjectLittle {\n mainType: string;\n folderColor?: string;\n parentURI?: string;\n _right: Rights;\n}\n\nexport type FolderType = jObjectLittle & {\n mainType: string;\n folderColor?: string;\n parentURI?: string;\n};\n\nexport type jFileBase = jObjectLittle & { mimetype: string };\nexport type FileBankDocument = jObjectBase & { _attachedFiles: jFileBase[] };\n\nexport class JFilebankApi extends JBaseApi {\n public getBanks(format = 'list'): Promise<Array<FileBankProps>> {\n return this.network.post<Array<FileBankProps>>({ o: 'fileBank', f: 'getBanks', format } as OF).then((res) => {\n return res.result;\n });\n }\n public getFolders(parentURI: string): Promise<ApiWrapper<FolderType[]>> {\n return this.network.post({ o: 'fileBank', f: 'getFolders', parentURI } as OF);\n }\n public getDocuments(uri: string): Promise<ApiPagingResults<FileBankDocument>> {\n return this.network.post({ o: 'fileBank', f: 'getDocuments', parentURI: uri } as OF);\n }\n}\n","import {\n Category,\n CreateGroup,\n GroupList,\n GroupProperties,\n GroupView,\n GroupWidget,\n ResetNotificationConfiguration,\n UpdateGroup,\n} from '../../types/group';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { ApiReturn, Format, PagingResults, jObjectLittle, jSpotAutocomplete } from '../../types';\n\nexport class JGroupApi extends JBaseApi {\n /**\n * autocomplete return a list of groups\n * @param query <string>\n */\n public autocomplete(query: string) {\n return this.network\n .post<Array<jSpotAutocomplete>>({ o: 'autocomplete', f: 'spot', q: query, idToUri: false } as OF)\n .then((res) => {\n return res.result;\n });\n }\n\n /**\n * Create a group from scratch\n * @param group\n * @param format return format\n * @returns\n */\n public create<T extends Format = undefined>(group: CreateGroup, format?: T) {\n return this.network.post<ApiReturn<T, jObjectLittle, GroupList, GroupView, jObjectLittle>>({\n o: 'spot',\n f: 'create',\n ...group,\n format,\n } as OF);\n }\n\n /**\n * Update a group\n * @param group group to update. The uri is mandatory and identify the group to update\n * @param format return format\n * @returns\n */\n public update<T extends Format = undefined>(group: UpdateGroup, format?: T) {\n // remove spotBanner from group because if provided, the spot banner image will be deleted\n const { spotBanner: _spotBanner, ...restGroup } = group;\n\n return this.network.postCSRF<ApiReturn<T, jObjectLittle, GroupList, GroupView, string>>({\n o: 'spot',\n f: 'update',\n ...restGroup,\n format,\n } as OF);\n }\n\n /**\n * Get a spot\n * @param idSpot\n * @param format\n * @returns\n */\n public getSpot<T extends Format = undefined>(idSpot: number | string, format?: T) {\n return this.network.post<ApiReturn<T, jObjectLittle, GroupList, GroupView, string>>({\n o: 'spot',\n f: 'getSpot',\n idSpot,\n format,\n } as OF);\n }\n\n /**\n * Get the properties of a group that are not within the model\n * @param idSpot\n * @returns\n */\n public getProperties(idSpot: number | string) {\n return this.network.post<GroupProperties>({\n o: 'spot',\n f: 'getProperties',\n idSpot,\n } as OF);\n }\n\n /**\n * Get the available applications that can be added to a group\n */\n public getApplications() {\n return this.network.post<Record<string, GroupWidget>>({ o: 'spot', f: 'get-available-widget' });\n }\n\n /**\n * Get the available group categories\n * @returns\n */\n public getCategories() {\n return this.network.post<Category[]>({ o: 'spot', f: 'get-categories' });\n }\n\n /**\n * Get the members of a group\n * @param idSpot spot id\n * @param query query string to search within user names\n * @param limit limit per page\n * @param page page number\n * @return array of User\n */\n public getObjectListJamespotSpotMembers(idSpot: number | string, query?: string, limit?: number, page = 1) {\n return this.network.post<PagingResults<jObjectLittle>>({\n o: 'objectListJamespot',\n f: 'SpotMembers',\n idSpot,\n limit,\n page,\n format: 'raw-little',\n query,\n } as OF);\n }\n\n /**\n * Reset the notifications configuration for all users of the group\n * @param config configuration\n * @returns\n */\n public resetNotifications(config: ResetNotificationConfiguration) {\n return this.network.post<{ members: number; msg: string }>({\n o: 'spot',\n f: 'resetNotifications',\n ...config,\n });\n }\n}\n","import { JBaseApi } from './base';\nimport { OF } from '../util/network';\nimport { AseiGroups, AseiRights, AseiTicket, AseiTicketStatus, Filters, Orders } from '../types';\nimport { ApiWrapper, PagingResults } from '../types';\n\nexport class JAseiApi extends JBaseApi {\n /**\n * List Asei Clearance Tickets\n * @param page page number\n * @param limit number of elements per page\n * @param filters filter object\n * @param orders order object\n */\n public list(\n page: number,\n limit: number,\n filters?: Filters,\n orders: Orders = [{ name: 'dateCreation', sort: 'DESC' }],\n ): Promise<ApiWrapper<PagingResults<AseiTicket>>> {\n return this.jApi.article.list<AseiTicket>({\n type: 'aseiClearanceTicket',\n format: 'raw-view',\n limit,\n page,\n orders,\n filters,\n });\n }\n\n /**\n * change status of an Asei Ticket\n */\n public requestStatus(\n uri: string,\n requestedStatus: AseiTicketStatus,\n audience?: Array<string>,\n ): Promise<AseiTicket> {\n return this.network\n .post<AseiTicket>({ o: 'asei', f: 'setStatus', uri, requestedStatus, audience } as OF)\n .then((res) => {\n if (res && res.result) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n\n /**\n * Get asei dedicated groups (dsi, administrators)\n */\n public getDedicatedGroups(): Promise<AseiGroups> {\n return this.network.post<AseiGroups>({ o: 'asei', f: 'getDedicatedGroups' } as OF).then((res) => {\n if (res && res.result) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n\n /**\n * Get asei configuration (rights to access, rights to publish)\n */\n public getConfiguration(): Promise<AseiRights> {\n return this.network.post<{ right: AseiRights }>({ o: 'asei', f: 'configuration' }).then((res) => {\n if (res && res.result) {\n return res.result.right;\n }\n throw 'Bad response from backend';\n });\n }\n}\n","import { JBaseApi } from '../base';\nimport { ApiWrapper, DriveDocumentParams, DriveItemType, MSGraphGroup, MSGraphSite, MSGraphTenant } from '../../types';\nimport { OF } from '../../util/network';\n\nexport class JDriveApi extends JBaseApi {\n /**\n * Microsoft graph only\n * @returns\n */\n public tenants(): Promise<ApiWrapper<MSGraphTenant[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getTenants',\n } as OF);\n }\n /**\n * Microsoft graph only\n * @returns\n */\n public groups(): Promise<ApiWrapper<MSGraphGroup[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getGroups',\n } as OF);\n }\n /**\n * Microsoft graph only\n * @returns\n */\n public sites(): Promise<ApiWrapper<MSGraphSite[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getSites',\n } as OF);\n }\n\n public documents(service: string, documentParams: DriveDocumentParams): Promise<ApiWrapper<DriveItemType[]>> {\n return this.network.post({\n o: 'drive',\n f: 'getDocuments',\n service,\n documentParams,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\r\nimport { OF } from '../../util/network';\r\nimport { PagingResults, ApiWrapper, MediaLibraryList } from '../../types';\r\n\r\nexport class JMediaLibraryApi extends JBaseApi {\r\n public GetUnclassifiedFiles(format = 'raw-list'): Promise<ApiWrapper<PagingResults<MediaLibraryList>>> {\r\n return this.network.post({\r\n o: 'objectListMediaLibrary',\r\n f: 'GetUnclassifiedFiles',\r\n format: format,\r\n } as OF);\r\n }\r\n}\r\n","import { JBaseApi } from '../base';\nimport { ApiWrapper, jArticleList, License, MaybeWithToken, PagingResults } from '../../types';\nimport { OF } from '../../util/network';\nimport { ArticleCreation } from '../article/article';\n\nexport type JLandLog = {\n idLog: number;\n slug: string;\n dateCreation: string;\n map: string;\n mail: string;\n action: string;\n mode: string;\n};\n\nexport type JLandStat = {\n mail: string;\n cnt: string;\n};\n\nexport type JLandMapFlavor = string;\nexport type JLandMapKind = string;\n\nexport type JLandMap = jArticleList & {\n jlandMapFlavor: JLandMapFlavor;\n jlandMapKind: JLandMapKind;\n waMapUrl?: string;\n limit?: number;\n _extend: {\n licenses: Array<License>;\n };\n};\n\nexport type JLandMapCreation = ArticleCreation & {\n jlandMapAggregated: string;\n type: 'jlandmap';\n};\n\nexport class JLandApi extends JBaseApi {\n public getLogs({\n dateEnd,\n idLogMax,\n }: {\n dateEnd?: string;\n idLogMax?: number;\n }): Promise<ApiWrapper<Array<JLandLog>>> {\n return this.network.post({\n o: 'jLand',\n f: 'adminLogs',\n dateEnd,\n idLogMax,\n } as OF);\n }\n\n public getStats({\n map,\n dateStart,\n dateEnd,\n }: {\n map: string;\n dateStart?: string;\n dateEnd?: string;\n }): Promise<ApiWrapper<Array<JLandStat>>> {\n return this.network.post({\n o: 'jLand',\n f: 'adminStats',\n map,\n dateStart,\n dateEnd,\n } as OF);\n }\n\n public getAllMapsAsAdmin(format = 'raw-list,licenses'): Promise<ApiWrapper<PagingResults<JLandMap>>> {\n return this.network.post({\n o: 'objectListJLand',\n f: 'jLandList',\n format: format,\n } as OF);\n }\n\n public createMap(map: MaybeWithToken<JLandMapCreation>, format = 'raw-list') {\n return this.network.maybePostToken({\n ...map,\n o: 'article',\n f: 'create',\n format: format,\n type: 'jlandmap',\n } as OF);\n }\n}\n","import { ApiWrapper } from '../types';\nimport { JBaseApi } from './base';\nimport { OF } from '../util/network';\n\nexport class JMessengerApi extends JBaseApi {\n // FIXME fix return type, set as is since the return type has not been used yet\n public sendMessage(message: string, idDiscussion: string): Promise<ApiWrapper<Record<string, never>>> {\n return this.network.post({\n o: 'messenger',\n f: 'newMessage',\n idDiscussion,\n msg: { description: message },\n } as OF);\n }\n public getOrCreateDiscussion(idSender: number, idUserTo: number): Promise<ApiWrapper<Record<string, never>>> {\n const idDiscussion = idSender < idUserTo ? `${idSender}.${idUserTo}` : `${idUserTo}.${idSender}`;\n return this.network.post({\n o: 'messenger',\n f: 'getDiscussion',\n idDiscussion,\n type: 'messengerUser',\n idUserTo,\n } as OF);\n }\n}\n","import {\n ApiWrapper,\n SearchConfig,\n SearchQuery,\n SearchQueryResult,\n SearchResultCatProps,\n SearchLastQuery,\n SearchAdminConfig,\n} from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class JSearchApi extends JBaseApi {\n /**\n * return a completed version of the current config, taking in account platform installed modules\n */\n public getConfig(): Promise<ApiWrapper<SearchConfig>> {\n return this.network.post({ o: 'search', f: 'getConfig' });\n }\n\n /**\n * Return a maximum of 8 results for a given text query, classed upon config categories\n * @param query string, words can be preceded by + and - for inclusive/exclusive search\n * @param signal: @AbortSignal to cancel the fetch\n */\n public proposition(\n { query, format }: { query: string; format?: 'list' | 'little' },\n signal?: AbortSignal,\n ): Promise<ApiWrapper<SearchResultCatProps[]>> {\n return this.network.post({ o: 'search', f: 'proposition', query, format: format || 'little' } as OF, signal);\n }\n\n /**\n * Return a page of results based on a text query and various filters.\n * All parameters are optional\n * @param query\n * @param query.keywords string, words can be preceded by + and - for inclusive/exclusive search (default *:*)\n * @param query.category text id of a category from config,if specified: restrict results to these category\n * @param query.facetCategories boolean, if true: count by categories are returned\n * @param query.filters array of @SearchQueryFilterModel @SearchQueryFilterModel.\n * @param query.page integer. default 1. index of returned page (start by 1)\n * @param query.limit integer. default 20. number of result by page\n * @param query.sort @SearchQuerySortModel default score then date\n * @param query.options @SearchQueryOption. extra possible options for the search\n * @param signal: @AbortSignal to cancel the fetch\n\n * // Todo add query.facets (to be specified first)\n */\n public searchQuery(query: SearchQuery, signal?: AbortSignal): Promise<ApiWrapper<SearchQueryResult>> {\n const { keywords, category, facetCategories, filters, page, limit, sort, options } = query;\n return this.network.post(\n {\n o: 'search',\n f: 'query',\n keywords,\n category,\n facetCategories,\n filters,\n page,\n limit,\n sort,\n options,\n } as OF,\n signal,\n );\n }\n\n /**\n * return the five last keywords typed in the searchbar by the user\n */\n public getLastQueries(): Promise<ApiWrapper<SearchLastQuery[]>> {\n return this.network.post({ o: 'search', f: 'getLastQueries' });\n }\n\n /**\n * return the current platform json search-config object\n */\n // FIXME when doing the search admin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getAdminConfig(): Promise<ApiWrapper<SearchAdminConfig>> {\n return this.network.post({ o: 'search', f: 'getAdminConfig' });\n }\n\n /**\n * set the platform search-config to the given json object\n * @param config object. json search config\n */\n // FIXME when doing the search admin\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public setAdminConfig(config: any): Promise<ApiWrapper<any>> {\n return this.network.post({ o: 'search', f: 'setAdminConfig', config } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util';\nimport { ApiWrapper, BaseMessagesOne, PagingResults } from '../../types';\nimport {\n AutoCompleteConcept,\n AutocompleteHierarchy,\n AutoCompleteList,\n Concept,\n Taxonomy,\n TaxonomyCreate,\n} from './types';\n\nexport class JTaxonomyApi extends JBaseApi {\n /**\n * list all taxonomies (no pagination)\n */\n public list(): Promise<Taxonomy[]> {\n return this.network\n .post<Taxonomy[]>({\n o: 'taxonomy',\n f: 'list',\n } as OF)\n .then((res) => {\n if (Array.isArray(res.result)) {\n return res.result;\n }\n throw 'Bad response from backend';\n });\n }\n\n public create(taxonomy: TaxonomyCreate): Promise<ApiWrapper<Taxonomy, BaseMessagesOne>> {\n return this.network.post<Taxonomy, BaseMessagesOne>({\n o: 'taxonomy',\n f: 'create',\n ...taxonomy,\n } as OF);\n }\n\n /**\n * autocomplete return a list of tags\n * @param idTaxonomy taxonomy id\n * @param query search characters\n */\n public autocomplete(idTaxonomy: string, query: string) {\n return this.network.post<Array<AutoCompleteConcept>>({\n o: 'autocomplete',\n f: 'taxonomy',\n q: query,\n idTaxonomy,\n idToUri: false,\n } as OF);\n }\n\n public autocompleteList(payload: AutoCompleteList) {\n return this.network.post<PagingResults<Concept>>({\n o: 'objectListTaxonomy',\n f: 'concept',\n ...payload,\n } as OF);\n }\n\n public autocompleteHierarchy(payload: AutocompleteHierarchy) {\n return this.network.post<PagingResults<AutoCompleteConcept>>({\n o: 'objectListTaxonomyHierarchy',\n f: 'concept',\n ...payload,\n } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport {\n ApiWrapper,\n Little,\n jObjectLittle,\n UserModel,\n UserMapModel,\n jUserAutocomplete,\n ApiPagingResults,\n ApiDefaultWrapper,\n jUserLittle,\n Readable,\n} from '../../types';\n\nexport type User = Little & {\n id: string; // FIXME\n shortUri: string;\n name: string;\n label: string;\n cssClass: string;\n cssColor: string;\n class: string;\n Pseudo: string;\n _values: Record<string, unknown>;\n};\n\nimport { Orders, Filters } from '../../types';\nimport { ArticleCreation } from '../article/article';\n\nexport interface ObjectListProps {\n additionalFilter?: {}; // FIXME\n facets?: {}[]; // FIXME\n filters?: Filters;\n query?: string;\n limit?: number;\n page?: number;\n orders?: Orders;\n format?: string;\n}\n\nexport type UserDirectoryConfiguration = {\n userDirectoryShow: '' | '1';\n contactDirectoryShow: '0' | '1';\n businessContactShow: boolean;\n menu: '0' | '1';\n cardFields: Array<string>;\n tableFields: Array<string>;\n viewFields: Array<string>;\n userGeoloc?: boolean;\n sort: string;\n cnt?: number;\n filters: Array<{\n name: string;\n type: string;\n }>;\n};\n\nexport type BusinessContact = {\n mail: string | undefined;\n title: string;\n firstname: string;\n lastname: string;\n phoneNumber?: string | undefined;\n company?: string | undefined;\n function?: string | undefined;\n uri?: string | undefined;\n field1?: string | undefined;\n field2?: string | undefined;\n field3?: string | undefined;\n field4?: string | undefined;\n field5?: string | undefined;\n};\n\nexport class JUserApi extends JBaseApi {\n /**\n * autocomplete return a list users\n * @param query <string>\n */\n public autocomplete(query: string) {\n return this.network\n .post<Array<jUserAutocomplete>>({ o: 'autocomplete', f: 'user', q: query, idToUri: false } as OF)\n .then((res) => {\n return res.result;\n });\n }\n\n /**\n * Get a user\n * @param uri uri\n * @param format little by default. If another format is provided, the generic types should be defined\n */\n public get<T extends jObjectLittle = jObjectLittle>(uri: string, format = 'little'): Promise<ApiWrapper<T>> {\n return this.network.post<T>({ o: 'user', f: 'get', uri, format } as OF);\n }\n\n public configuration(): Promise<ApiWrapper<UserDirectoryConfiguration>> {\n return this.network.post({ o: 'userDirectory', f: 'configuration' } as OF);\n }\n\n public userList<T extends jObjectLittle = jUserLittle>(\n payload: ObjectListProps,\n signal?: AbortSignal,\n ): Promise<ApiPagingResults<T>> {\n return this.network.post({ o: 'objectList', f: 'JamespotUserList', ...payload } as OF, signal);\n }\n\n public userQueryList<T extends jObjectLittle = jUserLittle>(\n payload: ObjectListProps,\n ): Promise<ApiPagingResults<T>> {\n return this.network.post({ o: 'objectList', f: 'JamespotUserQueryList', ...payload } as OF);\n }\n\n public userMap(payload: ObjectListProps): Promise<ApiPagingResults<UserMapModel>> {\n return this.network.post({ o: 'objectListJamespot', f: 'userMap', ...payload } as OF);\n }\n\n public userBusinessContactQueryList(query: ObjectListProps): Promise<ApiPagingResults<UserModel>> {\n return this.network.post({ o: 'businessContact', f: 'queryList', ...query } as OF);\n }\n\n public userCreateBusinessContact(user: BusinessContact) {\n const userFormatter = {\n ...user,\n pseudo: user.title,\n firstName: user.firstname,\n lastName: user.lastname,\n champ1: user.field1,\n champ2: user.field2,\n champ3: user.field3,\n champ4: user.field4,\n champ5: user.field5,\n };\n const payload = {\n ...userFormatter,\n type: 'businessContactCard',\n publishTo: 'networkPublic/1', // TEMPORARY TILL I FIX J.networks.networkPublic.uri\n };\n return this.jApi.article.create(payload as ArticleCreation);\n }\n\n public userUpdateBusinessContact(user: Readable<BusinessContact & { uri: string }>) {\n const userFormatter = {\n ...user,\n pseudo: user.title,\n firstName: user.firstname,\n lastName: user.lastname,\n champ1: user.field1,\n champ2: user.field2,\n champ3: user.field3,\n champ4: user.field4,\n champ5: user.field5,\n };\n const payload = {\n ...userFormatter,\n uri: user.uri,\n publishTo: 'networkPublic/1', // TEMPORARY TILL I FIX J.networks.networkPublic.uri\n };\n return this.jApi.article.update(payload as { uri: string });\n }\n\n public userDeleteBusinessContact(idArticle: number) {\n return this.jApi.article.delete(idArticle);\n }\n\n public userAddContact(idUser: number): Promise<ApiDefaultWrapper> {\n return this.network.post({ o: 'user', f: 'addContact', idUser } as OF);\n }\n\n public userRemoveContact(idUser: number): Promise<ApiDefaultWrapper> {\n return this.network.post({ o: 'user', f: 'removeContact', idUser } as OF);\n }\n\n /**\n * signIn function returns a Promise of users.\n * @param mail Mail or username\n * @param pwd Password to be validated\n */\n public signIn(mail: string, pwd: string) {\n return this.network.post<jUserAutocomplete>({ o: 'user', f: 'signIn', mail, password: pwd } as OF);\n }\n}\n","import { ApiWrapper, PagingResults, WedocFileType, WedocQueryType, WedocTemplate, jArticleLittle } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\n\nexport class JWedocApi extends JBaseApi {\n public getFiles(query: WedocQueryType): Promise<ApiWrapper<PagingResults<WedocFileType>>> {\n return this.network.post({ o: 'onlyOffice', f: 'getFiles', ...query } as OF);\n }\n\n public getFile(idFile: number, hash?: string): Promise<ApiWrapper<WedocFileType>> {\n return this.network.post({ o: 'onlyOffice', f: 'getFile', idFile, hash } as OF);\n }\n\n public getTemplates(): Promise<ApiWrapper<WedocTemplate[]>> {\n return this.network.post({ o: 'onlyOffice', f: 'getTemplates' } as OF);\n }\n\n public duplicateFile(\n idFile: number,\n title: string,\n publishTo: string[],\n ): Promise<ApiWrapper<{ idFile: number; article: jArticleLittle }>> {\n return this.network.post({ o: 'onlyOffice', f: 'duplicateFile', idFile, title, publishTo } as OF);\n }\n\n public deleteFile(idFile: number, withParent?: boolean): Promise<ApiWrapper<boolean>> {\n return this.network.postCSRF({ o: 'onlyOffice', f: 'deleteFile', idFile, withParent } as OF);\n }\n\n public createFile(\n title: string,\n type: string,\n publishTo: string[],\n ): Promise<ApiWrapper<{ idFile: number; article: jArticleLittle }>> {\n return this.network.post<{ idFile: number; article: jArticleLittle }>({\n o: 'onlyOffice',\n f: 'createFile',\n title,\n type,\n publishTo,\n } as OF);\n }\n\n public updateFile(idFile: number, title: string): Promise<ApiWrapper<boolean>> {\n return this.network.post({ o: 'onlyOffice', f: 'updateFile', idFile, title } as OF);\n }\n\n public createVersion(idFile: number): Promise<ApiWrapper<boolean>> {\n return this.network.post({ o: 'onlyOffice', f: 'createVersion', idFile } as OF);\n }\n}\n","import { JBaseApi } from '../base';\nimport {\n ApiWrapper,\n BaseMessages,\n MaybeWithToken,\n TVChannelCreation,\n TVChannelList,\n TVChannelLittle,\n TVGetChannelResponse,\n TVGetConfigureChannelResponse,\n} from '../../types';\n\nexport class TVDisplayApi extends JBaseApi {\n public createChannel<R extends TVChannelLittle = TVChannelList>(\n channel: MaybeWithToken<TVChannelCreation>,\n format = 'raw-list',\n ): Promise<ApiWrapper<Array<R>, BaseMessages>> {\n return this.network.maybePostToken({\n ...channel,\n o: 'article',\n f: 'create',\n format: format,\n type: 'tvDisplayChannel',\n });\n }\n\n public getChannel(params: { id: number; key: string }) {\n return this.network.post<TVGetChannelResponse>({\n ...params,\n o: 'tvDisplay',\n f: 'getChannel',\n });\n }\n\n public getConfigureChannel(params: { id: number }) {\n return this.network.post<TVGetConfigureChannelResponse>({\n ...params,\n o: 'tvDisplay',\n f: 'getConfigureChannel',\n });\n }\n}\n","import { ApiWrapper } from '../../types';\nimport { JBaseApi } from '../base';\nimport { OF } from '../../util/network';\nimport { ShareAccessObject, ShareAccessProps, ShareAudienceItem, ShareGeneralAccessRules } from '../../types/share';\n\n/*\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n * FOR NOW SHARE ACCESS API LINKED TO ONLYOFFICE\n */\n\nexport class JShareApi extends JBaseApi {\n public setObjectAccessRequest(\n uri: string,\n idUser: number,\n requestAccessValue: 'accept' | 'deny',\n requestResponseMessage?: string,\n ): Promise<ApiWrapper<[]>> {\n return this.network.post({\n o: 'onlyOffice',\n f: 'setObjectAccessRequest',\n uri,\n idUser,\n requestAccessValue,\n requestResponseMessage,\n } as OF);\n }\n\n public getObjectAccessRequest(uri: string, idUser?: number): Promise<ApiWrapper<ShareAudienceItem[]>> {\n return this.network.post<ShareAudienceItem[]>({\n o: 'onlyOffice',\n f: 'getObjectAccessRequest',\n format: 'raw-little',\n uri,\n idUser,\n } as OF);\n }\n\n public getObject(uri: string): Promise<ApiWrapper<ShareAccessObject>> {\n return this.network.post<ShareAccessObject>({ o: 'onlyOffice', f: 'getObject', uri } as OF);\n }\n\n public askObjectAccess(\n uri: string,\n askAccess: 'read' | 'write',\n askMessage?: string,\n ): Promise<ApiWrapper<boolean>> {\n return this.network.post({ o: 'onlyOffice', f: 'askObjectAccess', uri, askAccess, askMessage } as OF);\n }\n\n public setObjectAccess(\n uri: string,\n access: { read: string[]; write: string[] },\n message: string,\n generalAccessRule: ShareGeneralAccessRules,\n ): Promise<ApiWrapper<boolean>> {\n return this.network.post({\n o: 'onlyOffice',\n f: 'setObjectAccess',\n uri,\n access,\n message,\n generalAccessRule,\n } as OF);\n }\n\n public getObjectAccess(uri: string): Promise<ApiWrapper<ShareAccessProps>> {\n return this.network.post<ShareAccessProps>({\n o: 'onlyOffice',\n f: 'getObjectAccess',\n uri,\n } as OF);\n }\n\n public getObjectAccessHash(uri: string): Promise<ApiWrapper<string>> {\n return this.network.post({\n o: 'onlyOffice',\n f: 'getObjectAccessHash',\n uri,\n } as OF);\n }\n}\n","import { AdminLicenseApi, AdminUtilsApi, AdminStoreApi } from './admin';\nimport { JApplicationApi } from './application';\nimport { JArticleApi } from './article/article';\nimport { JAseiApi } from './asei';\nimport { JAssetReservation } from './assetReservation/assetReservation';\nimport { JAudienceApi } from './audience/audience';\nimport { JCommunityApi } from './community';\nimport { JDiapazoneApi } from './diapazone/diapazone';\nimport { JDriveApi } from './drive/drive';\nimport { JFileApi } from './file/file';\nimport { JFilebankApi } from './filebank';\nimport { JGroupApi } from './group/group';\nimport { JMediaLibraryApi } from './mediaLibrary/mediaLibrary';\nimport { JLandApi } from './jland/jland';\nimport { JMessengerApi } from './messenger';\nimport { JSearchApi } from './search/search';\nimport { JBookmarkApi } from './bookmark/bookmark';\nimport { JTaxonomyApi } from './taxonomy';\nimport { JUserApi } from './user/user';\nimport { JWedocApi } from './wedoc/wedoc';\nimport { Network } from '../util/network';\nimport { TVDisplayApi } from './tvDisplay/tvDisplay';\nimport { JShareApi } from './share/share';\nimport { JFaqApi } from './faq/faq';\n\n/**\n * In browser usage, 'window' should be the window object.\n * In server side usage, 'window' object given must implement the fetch method, used by the Apis.\n * See tests implementation for a working Node sample.\n *\n * Each property (except {@link constants} and {@link window}) is an API providing access to a Jamespot.Pro backend.\n */\nexport class JamespotUserApi {\n public version = '1.0';\n public network: Network;\n public admin: {\n license: AdminLicenseApi;\n store: AdminStoreApi;\n utils: AdminUtilsApi;\n };\n public application: JApplicationApi;\n public article: JArticleApi;\n public asei: JAseiApi;\n public assetReservation: JAssetReservation;\n public audience: JAudienceApi;\n public bookmark: JBookmarkApi;\n public community: JCommunityApi;\n public diapazone: JDiapazoneApi;\n public drive: JDriveApi;\n public faq: JFaqApi;\n public file: JFileApi;\n public filebank: JFilebankApi;\n public group: JGroupApi;\n public jland: JLandApi;\n public mediaLibrary: JMediaLibraryApi;\n public messenger: JMessengerApi;\n public search: JSearchApi;\n public share: JShareApi;\n public taxonomy: JTaxonomyApi;\n public tvDisplay: TVDisplayApi;\n public user: JUserApi;\n public wedoc: JWedocApi;\n\n public constructor(network: Network) {\n this.network = network;\n\n this.admin = {\n license: new AdminLicenseApi(this),\n store: new AdminStoreApi(this),\n utils: new AdminUtilsApi(this),\n };\n this.application = new JApplicationApi(this);\n this.article = new JArticleApi(this);\n this.asei = new JAseiApi(this);\n this.assetReservation = new JAssetReservation(this);\n this.audience = new JAudienceApi(this);\n this.bookmark = new JBookmarkApi(this);\n this.community = new JCommunityApi(this);\n this.diapazone = new JDiapazoneApi(this);\n this.drive = new JDriveApi(this);\n this.faq = new JFaqApi(this);\n this.file = new JFileApi(this);\n this.filebank = new JFilebankApi(this);\n this.group = new JGroupApi(this);\n this.jland = new JLandApi(this);\n this.mediaLibrary = new JMediaLibraryApi(this);\n this.messenger = new JMessengerApi(this);\n this.search = new JSearchApi(this);\n this.share = new JShareApi(this);\n this.taxonomy = new JTaxonomyApi(this);\n this.tvDisplay = new TVDisplayApi(this);\n this.user = new JUserApi(this);\n this.wedoc = new JWedocApi(this);\n }\n}\n","import { ApiWrapper, BaseMessages, MaybeWithToken, jFileLittle } from '../types';\nimport { WindowInterface } from '../window/Window';\n\nexport interface OF {\n o: string;\n f: string;\n}\n\nexport type ApiError = { error: number };\nexport type StandardApiError<T = BaseMessages> = ApiError & { errorMsg: string | undefined; messages: T };\nexport type AbortApiError = ApiError & { error: -1; aborted: true };\n\n/**\n * deprecated\n */\nexport class Network {\n private readonly action: string;\n private readonly window: WindowInterface;\n\n public constructor(window: WindowInterface, action = 'api-front') {\n this.window = window;\n this.action = action;\n }\n\n public static _formatPostOptions(body: object): RequestInit {\n const source = body ? { body: JSON.stringify(body) } : undefined;\n return Object.assign({ method: 'POST', credentials: 'same-origin' as const }, source);\n }\n\n public async getUrl(o: string, f: string) {\n const backendUrl = await this.window.getBackendUrl();\n let href;\n try {\n const url = new URL(`/${this.action}/${o}/${f}`, backendUrl);\n href = url.href;\n } catch (e) {\n href = `${backendUrl}/${this.action}/${o}/${f}`;\n }\n return href;\n }\n\n public async getHostname() {\n const splittedBackUrl = (await this.window.getBackendUrl()).split('//');\n return splittedBackUrl.length > 1 ? splittedBackUrl[1] : splittedBackUrl[0];\n }\n\n public async fetch<T>({ o, f, ...body }: OF, signal?: AbortSignal | null) {\n if (signal === undefined) {\n signal = null;\n }\n const url = await this.getUrl(o, f);\n return this.window.fetch<T>(url, { ...Network._formatPostOptions(body), signal });\n }\n\n public post<T, U = BaseMessages>(body: OF, signal?: AbortSignal): Promise<ApiWrapper<T, U>> {\n return this.fetch<ApiWrapper<T, U>>(body, signal)\n .then((res) => res.json())\n .then((res) => {\n if (res.error === 0) {\n return res;\n }\n const error: StandardApiError<U> = {\n error: res.error,\n errorMsg: res.errorMsg,\n messages: res.messages,\n };\n throw error;\n })\n .catch((err) => {\n if (signal && signal.aborted) {\n const abortError: AbortApiError = {\n error: -1,\n aborted: true,\n };\n throw abortError;\n }\n throw err;\n });\n }\n\n public async postFile(body: FormData) {\n const url = await this.getUrl('file', 'create');\n\n body.append('format', 'raw-little');\n\n if (!body.has('token')) {\n const { result } = await this.token();\n body.append('token', result);\n }\n\n const token = body.get('token');\n if (!token || typeof token !== 'string') {\n return Promise.reject('Missing token');\n }\n\n return this.window\n .fetch<ApiWrapper<jFileLittle>>(url, {\n method: 'POST',\n credentials: 'same-origin',\n body,\n })\n .then((resp) => resp.json())\n .then((res) => {\n return { response: res, token: token };\n });\n }\n\n public postCSRF<T, U = BaseMessages>(body: OF): Promise<ApiWrapper<T, U>> {\n return this.tokenCSRF().then((tokenCSRF) => this.post(Object.assign(body, { tokenCSRF: tokenCSRF.result })));\n }\n\n public postToken<T, U = BaseMessages>(body: OF): Promise<ApiWrapper<T, U>> {\n return this.token().then((token) => this.post(Object.assign(body, { token: token.result })));\n }\n\n public maybePostToken<T, U = BaseMessages, P extends MaybeWithToken<OF> = MaybeWithToken<OF>>(\n body: P,\n ): Promise<ApiWrapper<T, U>> {\n if ('token' in body && body.token) {\n return this.post(body);\n } else {\n return this.postToken(body);\n }\n }\n\n public token(): Promise<ApiWrapper<string>> {\n return this.post({ o: 'misc', f: 'token' });\n }\n\n public tokenCSRF(): Promise<ApiWrapper<string>> {\n return this.post({ o: 'misc', f: 'tokenCSRF' });\n }\n}\n","import { FetchReturnType, WindowInterface } from './Window';\n\nexport class WindowBrowser implements WindowInterface {\n async getBackendUrl() {\n const location = window.location;\n return `${location.protocol}//${location.host}`;\n }\n\n fetch<T>(url: string, init?: RequestInit): FetchReturnType<T> {\n return window.fetch(url, init) as FetchReturnType<T>;\n }\n}\n","import { WidgetsValue } from './model';\nimport { jObjectLittle } from './utils';\n\n/**\n * @deprecated Use jUserList instead\n */\nexport type UserModel = jObjectLittle & {\n dateCreation: string;\n dateModified: string;\n firstname: string;\n lastname: string;\n active: number;\n mail?: string;\n};\n\nexport type UserMapModel = {\n idInType: number;\n lat: number;\n lng: number;\n};\n\nexport const UserLevel = {\n ADMIN: 9,\n USER: 5,\n EXTERNAL: 3,\n GUEST: 0,\n} as const;\n\nexport type jUserLittle = jObjectLittle & {\n level: (typeof UserLevel)[keyof typeof UserLevel];\n dateCreation: string;\n dateModified: string;\n};\n\nexport type jUserList = jUserLittle & {\n active: number;\n [key: string]: WidgetsValue;\n};\n\nexport type jUserView = jUserList & {};\n","import {\n BookmarkCustom,\n BookmarkLink,\n BookmarkRawList,\n TVChannelDynamicList,\n TVChannelList,\n TVChannelSlideshowList,\n jObjectBase,\n} from '../types';\nimport { AbortApiError, StandardApiError } from './network';\n\nfunction ensureIsBookmarkLink(bookmark: BookmarkCustom | BookmarkLink): bookmark is BookmarkLink {\n return 'targetId' in bookmark && !!bookmark.targetId;\n}\n\nfunction ensureIsBookmarkCustom(bookmark: BookmarkCustom | BookmarkLink): bookmark is BookmarkCustom {\n const bookmarkCustom = bookmark as BookmarkCustom;\n return (\n bookmarkCustom.bookmarkLabel !== undefined ||\n bookmarkCustom.bookmarkMeta !== undefined ||\n bookmarkCustom.bookmarkUrl !== undefined\n );\n}\n\nfunction ensureIsBookmarkRawList(bookmark: jObjectBase | BookmarkRawList): bookmark is BookmarkRawList {\n const asBookmark = bookmark as BookmarkRawList;\n return asBookmark && typeof asBookmark.id === 'number' && typeof asBookmark.targetId === 'number';\n}\n\ntype jObjectTypes = {\n bookmarkLink: BookmarkRawList;\n};\n\nconst ensureFunctions = {\n bookmarkLink: ensureIsBookmarkRawList,\n};\n\nfunction ensureObjectIsType<T extends keyof jObjectTypes>(type: T, object: jObjectBase): object is jObjectTypes[T] {\n return object !== undefined && object !== null && ensureFunctions[type](object);\n}\n\ntype ChannelsTypes = {\n DYNAMIC: TVChannelDynamicList;\n SLIDESHOW: TVChannelSlideshowList;\n};\n\nfunction ensureTVChannelIs<Type extends keyof ChannelsTypes>(\n channel: TVChannelList,\n type: Type,\n): channel is ChannelsTypes[Type] {\n return 'tvChannelType' in channel && channel.tvChannelType === type;\n}\n// FIXME - err:unknown when typescript > 4.9.5\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst ensureIsStandardApiError = (err: any): err is StandardApiError => {\n return (\n typeof err === 'object' &&\n err !== null &&\n 'error' in err &&\n 'errorMsg' in err &&\n 'messages' in err &&\n typeof err.error === 'number' &&\n typeof err.errorMsg === 'string' &&\n Array.isArray(err.messages)\n );\n};\n\n// FIXME - err:unknown when typescript > 4.9.5\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst ensureIsAbortApiError = (err: any): err is AbortApiError => {\n return (\n err !== null &&\n typeof err === 'object' &&\n 'error' in err &&\n 'aborted' in err &&\n err.error === -1 &&\n err.aborted === true\n );\n};\n\nexport const jEnsure = {\n isBookmarkLink: ensureIsBookmarkLink,\n isBookmarkCustom: ensureIsBookmarkCustom,\n isBookmarkRawList: ensureIsBookmarkRawList,\n isTVChannelType: ensureTVChannelIs,\n objectIsType: ensureObjectIsType,\n isStandardApiError: ensureIsStandardApiError,\n isAbortApiError: ensureIsAbortApiError,\n};\n","import { jFileLittle } from '../types';\n\nexport const mimetypes = [\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/pdf',\n 'application/zip',\n 'application/illustrator',\n 'application/postscript',\n 'application/vnd.ms-opentype',\n 'application/x-font-ttf',\n 'application/octet-stream',\n 'audio/mp3',\n 'audio/mpeg',\n 'font/ttf',\n 'font/otf',\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/vnd.adobe.photoshop',\n 'image/svg+xml',\n 'text/plain',\n 'text/csv',\n 'video/mp4',\n 'video/webm',\n] as const;\n\nexport type MimetypesType = (typeof mimetypes)[number];\n\nexport type fileExtensionTypes =\n | 'docx'\n | 'xlsx'\n | 'csv'\n | 'pptx'\n | 'pdf'\n | 'zip'\n | 'ai'\n | 'mp3'\n | 'mpeg'\n | 'ttf'\n | 'otf'\n | 'jpg'\n | 'jpeg'\n | 'png'\n | 'gif'\n | 'psd'\n | 'svg'\n | 'txt'\n | 'mp4'\n | 'odt'\n | 'webm';\nexport const extensions: fileExtensionTypes[] = [\n 'docx',\n 'xlsx',\n 'csv',\n 'pptx',\n 'pdf',\n 'zip',\n 'ai',\n 'mp3',\n 'mpeg',\n 'ttf',\n 'otf',\n 'jpg',\n 'jpeg',\n 'png',\n 'gif',\n 'psd',\n 'svg',\n 'txt',\n 'mp4',\n 'odt',\n 'webm',\n];\n\nexport type fileFamilyTypes = 'application' | 'gif' | 'image' | 'video' | 'audio' | 'font' | 'text';\n\nexport const mimetypeToExt: Record<string, fileExtensionTypes> = {\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document': 'docx',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xlsx',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation': 'pptx',\n 'application/vnd.oasis.opendocument.text': 'odt',\n 'application/pdf': 'pdf',\n 'application/zip': 'zip',\n 'application/x-zip-compressed': 'zip',\n 'application/illustrator': 'ai',\n 'application/postscript': 'ai',\n 'audio/mp3': 'mp3',\n 'audio/mpeg': 'mpeg',\n 'font/ttf': 'ttf',\n 'font/otf': 'otf',\n 'image/jpeg': 'jpeg',\n 'image/jpg': 'jpg',\n 'image/png': 'png',\n 'image/gif': 'gif',\n 'application/x-font-ttf': 'ttf',\n 'application/vnd.ms-opentype': 'otf',\n 'image/vnd.adobe.photoshop': 'psd',\n 'image/svg+xml': 'svg',\n 'text/plain': 'txt',\n 'text/csv': 'xlsx',\n 'video/mp4': 'mp4',\n 'video/webm': 'mp4',\n};\n\nexport const getMimetypeFromExtension = (fileExt: fileExtensionTypes) => {\n return Object.keys(mimetypeToExt).find((key) => mimetypeToExt[key] === fileExt);\n};\n\nexport const getFileExtensionFromMimetype = (mimetype: string): fileExtensionTypes => {\n return mimetypeToExt[mimetype] ?? undefined;\n};\n\nexport function getExtensionFromName(name: string): fileExtensionTypes {\n const tryExt = String(name).split('.').pop();\n\n return extensions.find((ext) => ext === tryExt) as fileExtensionTypes;\n}\n\n/**\n * This resolve bad/missing (mostly application/octet-stream) mimetype with the file name.\n * If this doesn't match any extension. Return application/octet-stream to get neutral file display\n */\nexport const getMimetypeFromName = (name: string) => {\n const extension = getExtensionFromName(name);\n\n return getMimetypeFromExtension(extension) ?? 'application/octet-stream';\n};\n\n/**\n * Resolve file path. If undefined show file avatar\n */\nexport const resolveFilePath = (file: jFileLittle, size = 'fitx80') => {\n const family = resolveFileFamily(file);\n switch (family) {\n default:\n return undefined;\n case 'video':\n return `/media/${file.id}.mp4?stream=true`;\n case 'audio':\n return `/media/${file.id}.mp3`;\n case 'gif':\n return `/imagecache/${size}/fileArticle/${file.id}.gif`;\n case 'image':\n return `/imagecache/${size}/fileArticle/${file.id}.png`;\n }\n};\n\nexport const getFileFamilyFromName = (name: string): fileFamilyTypes => {\n const ext = getExtensionFromName(name);\n if (ext !== undefined) {\n const mimetype = getMimetypeFromExtension(ext);\n\n return getFileFamily(mimetype);\n }\n\n return 'application';\n};\n\nconst isNotSupported = (mimetype: string) => {\n const list = ['image/vnd', 'image/svg', 'image/heic'];\n return list.findIndex((el) => mimetype.startsWith(el)) !== -1;\n};\n\nexport function getFileFamily(mimetype: string | undefined): fileFamilyTypes {\n if (mimetype === undefined || mimetype === null) {\n return 'application';\n }\n if (isNotSupported(mimetype)) {\n return 'application';\n }\n if (mimetype.startsWith('image/gif')) {\n return 'gif';\n }\n if (mimetype.startsWith('image/')) {\n return 'image';\n }\n if (mimetype.startsWith('video/')) {\n return 'video';\n }\n if (mimetype.startsWith('audio/')) {\n return 'audio';\n }\n if (\n mimetype.startsWith('font/') ||\n mimetype.startsWith('application/x-font-ttf') ||\n mimetype.startsWith('application/vnd.ms-opentype')\n ) {\n return 'font';\n }\n if (mimetype.startsWith('text/')) {\n return 'text';\n }\n\n return 'application';\n}\n\nexport const resolveFileMimetype = (file: jFileLittle) => {\n return file.mimetype === undefined || file.mimetype === 'application/octet-stream'\n ? getMimetypeFromName(file.title)\n : file.mimetype;\n};\n\nexport const resolveFileFamily = (file: jFileLittle) => {\n return file.mimetype === undefined || file.mimetype === 'application/octet-stream'\n ? getFileFamilyFromName(file.title)\n : getFileFamily(file.mimetype);\n};\n","export function suffixIfDoesNotExist(str: string | undefined, suffix: string) {\n return str && !str.endsWith(suffix) ? `${str}${suffix}` : str;\n}\n\nexport function removeIfStartsWith(str: string | undefined, prefix: string) {\n return str && str.startsWith(prefix) ? str.split('').slice(prefix.length).join('') : str;\n}\n\nexport function padStartTwoDigits(val: string | number) {\n return val.toString().padStart(2, '0');\n}\n","import { UriOrTypeId } from '../types/uri';\n\nexport function getUri(arg: UriOrTypeId): string {\n if ('uri' in arg && arg.uri) return arg.uri;\n return `${arg.type}/${arg.recordId}`;\n}\n","import { removeIfStartsWith, suffixIfDoesNotExist } from './string';\nimport { getUri } from './uri';\n\n/**\n * @see JRCImgProps\n */\ntype WidthHeight = {\n width?: number;\n height?: number;\n};\n\n/**\n * @see JRCImgProps\n */\ntype Size = {\n size?: string;\n};\n\n/**\n * @see JRCImgProps\n */\ntype Format = { format?: string };\n\n/**\n * @see JRCImgProps\n */\ntype Timestamp = { timestamp?: string | number };\n\ntype Args = Timestamp & { iconColor?: 'white' };\n\n/**\n * @see JRCImgProps\n */\nexport type ImgUrlProps = {\n url?: string;\n fallbackUrl?: string;\n\n size?: string;\n width?: number;\n height?: number;\n maxWidth?: string;\n\n from?: string;\n uri?: string;\n recordId?: string | number;\n type?: string;\n format?: string;\n\n iconColor?: 'white';\n timestamp?: string | number;\n};\n\nexport function getFrom(arg: Pick<ImgUrlProps, 'from'>) {\n return removeIfStartsWith(suffixIfDoesNotExist(arg.from, '/'), '/') || '';\n}\n\nexport function getTimestamp(arg: Timestamp) {\n return arg.timestamp ? `?_=${arg.timestamp}` : '';\n}\n\nexport function getArgs(arg: Args) {\n const params = [];\n if ('timestamp' in arg && arg.timestamp) {\n params.push(`_=${arg.timestamp}`);\n }\n if ('iconColor' in arg && arg.iconColor) {\n params.push(`color=${arg.iconColor}`);\n }\n return params.length ? '?' + params.join('&') : '';\n}\n\nexport function getSize(arg: Size & WidthHeight, dpr = 2): string {\n if ('size' in arg && arg.size) return arg.size;\n else if ('width' in arg && arg.width && 'height' in arg && arg.height)\n return `${arg.width * dpr}x${arg.height * dpr}`;\n return '';\n}\n\nexport function getFormat(arg: Format) {\n return arg.format || 'png';\n}\n\nexport function getUrl(url: string): URL | undefined {\n try {\n return new URL(url);\n } catch (e) {\n /* silent exception */\n }\n\n try {\n return new URL(window.location.origin + '/' + removeIfStartsWith(url, '/'));\n } catch (e) {\n /* silent exception */\n }\n\n return;\n}\n\n/**\n * Format an img url\n * If url arg is provided, it is used, in addition with an optional timestamp\n * If not parsable or not passed, one should provide:\n * - optional from\n * - size in either size or width/height argument.\n * If width & height are provided, the downloaded image take car of the screen resolution\n * - uri or type/recordId\n * - optional format, default png\n * - optional timestamp\n * The final url is {from}/{size}/{uri}.{format}?_={timestamp}\n * @param arg\n * @param dpr device pixel ratio\n */\nexport function formatImgUrl(arg: ImgUrlProps, dpr = 2) {\n if ('url' in arg && arg.url) {\n const url = getUrl(arg.url);\n if (url) {\n if ('timestamp' in arg && arg.timestamp && !url.searchParams.has('_'))\n url.searchParams.append('_', arg.timestamp.toString());\n return url.toString();\n }\n }\n return `/${getFrom(arg)}${getSize(arg, dpr)}/${getUri(arg)}.${getFormat(arg)}${getArgs(arg)}`;\n}\n","const isArray = Array.isArray;\nconst keyList = Object.keys;\nconst hasProp = Object.prototype.hasOwnProperty;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function deepEqual(a: any, b: any, ignoreAttributes?: Array<string>) {\n const ignoreAttributesArr = ignoreAttributes?.map((attribute) => attribute.split('.'));\n\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n const arrA = isArray(a);\n const arrB = isArray(b);\n let i: number;\n let length: number;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let key: any;\n\n if (arrA && arrB) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n length = (a as Array<any>).length;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (length !== (b as Array<any>).length) return false;\n for (i = length; i-- !== 0; ) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (!deepEqual((a as Array<any>)[i], (b as Array<any>)[i], ignoreAttributes)) return false;\n }\n return true;\n }\n\n if (arrA !== arrB) return false;\n\n const dateA = a instanceof Date;\n const dateB = b instanceof Date;\n if (dateA !== dateB) return false;\n if (dateA && dateB) return (a as Date).getTime() === (b as Date).getTime();\n\n const regexpA = a instanceof RegExp;\n const regexpB = b instanceof RegExp;\n if (regexpA !== regexpB) return false;\n if (regexpA && regexpB) return a.toString() === b.toString();\n\n const keys = keyList(a).filter(\n (aKey) => !ignoreAttributesArr?.some((attribute) => attribute.length === 1 && attribute[0] === aKey),\n );\n length = keys.length;\n\n if (\n length !==\n keyList(b).filter(\n (aKey) => !ignoreAttributesArr?.some((attribute) => attribute.length === 1 && attribute[0] === aKey),\n ).length\n ) {\n return false;\n }\n\n for (i = length; i-- !== 0; ) {\n if (!hasProp.call(b, keys[i])) return false;\n }\n // end fast-deep-equal\n\n // Custom handling for React\n for (i = length; i-- !== 0; ) {\n key = keys[i];\n if (key === '_owner' && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner.\n // _owner contains circular references\n // and is not needed when comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of a react element\n continue;\n } else {\n // all other properties should be traversed as usual\n if (\n !deepEqual(\n (a as Record<typeof key, object>)[key],\n (b as Record<typeof key, object>)[key],\n ignoreAttributesArr\n ?.filter((attribute) => attribute.length > 1 && attribute[0] === key)\n .map((attribute) => attribute.splice(1).join('.')),\n )\n ) {\n return false;\n }\n }\n }\n\n // fast-deep-equal index.js 2.0.1\n return true;\n }\n\n // eslint-disable-next-line no-self-compare\n return a !== a && b !== b;\n}\n\n/**\n * Remplace la valeur de propriétés par leur typeof, sur toute la profondeur de l'objet.\n * Valorisation avec le typeof pour conserver la vérification du type dans le cas d'une comparaison d'objets.\n * Avantages :\n * - gère l'ensemble de la profondeur de l'objet\n * - peut être intégré à un test toMatchObject qui permet une meilleure\n * lisibilité des erreurs potentielles ({@see validatePhpUnitSnapshot})\n * @param obj objet à modifier\n * @param replacedProperties propriétés à remplacer\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function replacePropertiesWithTypes(obj: any, replacedProperties: string[]): any {\n if (Array.isArray(obj)) {\n return obj.map((i) => replacePropertiesWithTypes(i, replacedProperties));\n } else if (typeof obj === 'object' && obj !== null) {\n let res = {};\n Object.keys(obj).forEach((k) => {\n res = {\n ...res,\n [k]:\n k && replacedProperties.includes(k)\n ? typeof obj[k]\n : replacePropertiesWithTypes(obj[k], replacedProperties),\n };\n });\n return res;\n } else {\n return obj;\n }\n}\n","function propertyIsTag(property: string) {\n return property.startsWith('tag_') || property === 'tags';\n}\nexport function extractTaxonomiesFromObject(objet: Record<string, unknown>): Record<string, unknown> {\n return Object.fromEntries(Object.entries(objet).filter(([name]) => propertyIsTag(name)));\n}\n\nexport function extractTaxonomiesFromObjectAndMapProperty(\n objet: Record<string, unknown>,\n property: string,\n format?: (o: any) => any,\n) {\n return Object.fromEntries(\n Object.entries(objet)\n .filter(([name]) => propertyIsTag(name))\n .map(([name, concepts]) => {\n const v = Array.isArray(concepts)\n ? concepts.map((concept) =>\n typeof concept === 'object' && concept && property in concept ? concept[property] : concept,\n )\n : concepts;\n return [name, format ? format(v) : v];\n }),\n );\n}\n\nexport function extractTaxonomiesFromObjectAndMapUri(objet: Record<string, unknown>): Record<string, unknown> {\n return extractTaxonomiesFromObjectAndMapProperty(objet, 'uri');\n}\n","import { JamespotUserApi } from './apis';\nimport { Network } from './util/network';\nimport { WindowBrowser } from './window';\n\nexport const network = new Network(new WindowBrowser());\nconst JamespotUserApiInstance = new JamespotUserApi(network);\n\ndeclare global {\n interface Window {\n JamespotUserApi: JamespotUserApi;\n }\n}\n\nwindow.JamespotUserApi = JamespotUserApiInstance;\n\nexport { JamespotUserApiInstance };\nexport default JamespotUserApiInstance;\n\nexport * from './apis';\nexport * from './types';\nexport * from './util/';\nexport * from './window';\n\nexport const api = JamespotUserApi;\n"],"names":["StudioApplicationStatus","__webpack_require__","exports","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","Symbol","toStringTag","value","JBaseApi","jApi","this","network","AdminLicenseApi","getLicenseUserStatistics","post","f","assignLicense","uri","postCSRF","unAssignLicense","getAssignmentMode","type","setAssignmentMode","assignmentMode","assignPossiblesLicenses","unAssignUnusedLicenses","optimizeLicenses","getObjectsWithoutLicense","filter","getLicensesNotAssigned","getLicensesAssigned","AdminStoreApi","getItem","checkoutBilling","checkoutFinalize","AdminUtilsApi","getApps","JApplicationApi","list","idApp","status","install","xmlBody","suspend","restart","save","saved","autosaved","delete","then","res","error","messages","cssClassList","JArticleApi","config","create","article","format","maybePostToken","update","id","idArticle","count","getAttachments","JAssetReservation","configuration","createReservation","params","getReservations","cancelReservation","bookByDate","getList","JAudienceApi","autocomplete","query","q","Array","isArray","result","JBookmarkApi","getFormattedList","filterSpecs","addFormattedLink","targetId","targetType","requestedFormat","addBookmark","bookmark","bookmarkId","bookmarkID","rename","bookmarkLabel","bookmarkUrl","move","bookmarkReference","position","bookmarkPosition","JCommunityApi","idCommunity","sendRequest","message","idUserTo","JDiapazoneApi","token","title","dateStart","publishTo","filters","orders","page","JFileApi","upload","body","FormData","append","attrName","file","url","postFile","uploadMany","configArray","Promise","all","map","idFile","cropDatas","rotateBeforeCrop","killSize","deleteFile","signal","deleteImage","JFaqApi","createCategory","updateCategory","getCategory","deleteCategory","getTaxonomy","getHookProperties","properties","JFilebankApi","getBanks","getFolders","parentURI","getDocuments","JGroupApi","idToUri","group","spotBanner","_spotBanner","restGroup","getSpot","idSpot","getProperties","getApplications","getCategories","getObjectListJamespotSpotMembers","limit","resetNotifications","JAseiApi","name","sort","requestStatus","requestedStatus","audience","getDedicatedGroups","getConfiguration","right","JDriveApi","tenants","groups","sites","documents","service","documentParams","JMediaLibraryApi","GetUnclassifiedFiles","JLandApi","getLogs","dateEnd","idLogMax","getStats","getAllMapsAsAdmin","createMap","JMessengerApi","sendMessage","idDiscussion","msg","description","getOrCreateDiscussion","idSender","JSearchApi","getConfig","proposition","searchQuery","keywords","category","facetCategories","options","getLastQueries","getAdminConfig","setAdminConfig","JTaxonomyApi","taxonomy","idTaxonomy","autocompleteList","payload","autocompleteHierarchy","JUserApi","userList","userQueryList","userMap","userBusinessContactQueryList","userCreateBusinessContact","user","userFormatter","pseudo","firstName","firstname","lastName","lastname","champ1","field1","champ2","field2","champ3","field3","champ4","field4","champ5","field5","userUpdateBusinessContact","userDeleteBusinessContact","userAddContact","idUser","userRemoveContact","signIn","mail","pwd","password","JWedocApi","getFiles","getFile","hash","getTemplates","duplicateFile","withParent","createFile","updateFile","createVersion","TVDisplayApi","createChannel","channel","getChannel","getConfigureChannel","JShareApi","setObjectAccessRequest","requestAccessValue","requestResponseMessage","getObjectAccessRequest","getObject","askObjectAccess","askAccess","askMessage","setObjectAccess","access","generalAccessRule","getObjectAccess","getObjectAccessHash","JamespotUserApi","version","admin","license","store","utils","application","asei","assetReservation","community","diapazone","drive","faq","filebank","jland","mediaLibrary","messenger","search","share","tvDisplay","wedoc","Network","window","action","static","source","JSON","stringify","undefined","assign","method","credentials","getUrl","backendUrl","getBackendUrl","href","URL","e","getHostname","splittedBackUrl","split","length","fetch","_formatPostOptions","json","errorMsg","catch","err","aborted","has","resp","response","reject","tokenCSRF","postToken","WindowBrowser","location","protocol","host","init","UserLevel","ADMIN","USER","EXTERNAL","GUEST","ensureIsBookmarkRawList","asBookmark","ensureFunctions","bookmarkLink","jEnsure","isBookmarkLink","isBookmarkCustom","bookmarkCustom","bookmarkMeta","isBookmarkRawList","isTVChannelType","tvChannelType","objectIsType","object","isStandardApiError","isAbortApiError","mimetypes","extensions","mimetypeToExt","getMimetypeFromExtension","fileExt","keys","find","getFileExtensionFromMimetype","mimetype","getExtensionFromName","tryExt","String","pop","ext","getMimetypeFromName","extension","resolveFilePath","size","resolveFileFamily","getFileFamilyFromName","getFileFamily","isNotSupported","findIndex","el","startsWith","resolveFileMimetype","suffixIfDoesNotExist","str","suffix","endsWith","removeIfStartsWith","prefix","slice","join","padStartTwoDigits","val","toString","padStart","getUri","arg","recordId","getFrom","from","getTimestamp","timestamp","getArgs","push","iconColor","getSize","dpr","width","height","getFormat","origin","formatImgUrl","searchParams","keyList","hasProp","deepEqual","a","b","ignoreAttributes","ignoreAttributesArr","attribute","arrA","arrB","i","dateA","Date","dateB","getTime","regexpA","RegExp","regexpB","aKey","some","$$typeof","splice","replacePropertiesWithTypes","replacedProperties","forEach","k","includes","propertyIsTag","property","extractTaxonomiesFromObject","objet","fromEntries","entries","extractTaxonomiesFromObjectAndMapProperty","concepts","v","concept","extractTaxonomiesFromObjectAndMapUri","JamespotUserApiInstance","api"],"sourceRoot":""}
|