{"version":3,"file":"chunks/13.22bf303a17f14e713f27.js","mappings":"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","sources":["webpack://core/./base/BaseFactory.ts","webpack://core/./base/BaseApi.service.ts","webpack://core/./base/base-mapper.ts","webpack://core/./base/utils.ts","webpack://core/./base/Base.repository.ts","webpack://core/./base/literals/error-codes.ts","webpack://core/./base/errors/CustomError.ts","webpack://core/./base/errors/ValidationError.ts","webpack://core/./base/errors/ConflictError.ts","webpack://core/./base/errors/NotModifiedError.ts","webpack://core/./base/errors/ForbiddenError.ts","webpack://core/./base/errors/is-error.ts","webpack://core/./base/errors/NotFoundError.ts","webpack://core/./base/BaseCRUD.repository.ts","webpack://core/./base/BaseDocuments.repository.ts","webpack://core/./base/models/DocumentMeta.ts","webpack://core/./base/models/Generic.model.ts","webpack://core/./base/models/BaseDocumentChange.model.ts","webpack://core/./base/models/BaseDocument.model.ts","webpack://core/./base/models/UserAccess.model.ts","webpack://core/./base/models/SearchDocumentResults.model.ts","webpack://core/./base/view-models/Generic.vm.ts","webpack://core/./base/view-models/BaseDocument.vm.ts","webpack://core/./base/create-factory.ts","webpack://core/./base/BaseSse.repository.ts","webpack://core/./base/BaseChanges.service.ts","webpack://core/./base/BaseChart.builder.ts","webpack://core/./base/BaseMigration.service.ts","webpack://core/./base/repositories/Search.repository.ts","webpack://core/./base/services/Search.service.ts","webpack://core/./services/fusionAuthRedirect.ts","webpack://core/./services/httpClients/apiHttpClient.ts","webpack://core/./services/httpClients/createHttpClient.ts","webpack://core/./services/httpClients/meiliHttpClient.ts","webpack://core/./store/modules/common/literals/index.ts"],"sourcesContent":["import { injectable } from 'inversify';\nimport 'reflect-metadata';\n\nexport interface AbstractFactory {\n add(t: T, v: E): void;\n create(t: T, ...a: unknown[]): unknown;\n}\n\n@injectable()\nexport class BaseFactory implements AbstractFactory {\n map: Map = new Map();\n\n add(type: T, value: E) {\n this.map.set(type, value);\n }\n\n create(type: T) {\n if (!this.map.has(type)) {\n throw new Error(`Factory ${this.constructor.name}: ${String(type)} is not found!`);\n }\n\n return this.map.get(type)!;\n }\n}\n","import type { AxiosRequestConfig } from 'axios';\nimport { injectable } from 'inversify';\nimport type { AttachmentId, DocumentId, DocumentRevision, DocumentWithChildren } from '../types';\nimport { forEachTree, uuid } from '../utils';\nimport type { BaseDocumentsRepository } from './BaseDocuments.repository';\nimport { createBaseMapper } from './base-mapper';\nimport type { DocumentResource, SettingsResource } from './interfaces';\nimport type { BaseDocumentModel, DocumentAccess } from './models';\nimport type { CopyRequestArg, GetListOptions, MoveRequestArg } from './types';\nimport type { BaseDocumentVM } from './view-models';\n\n@injectable()\nexport class BaseApiService<\n TEntity extends BaseDocumentVM = BaseDocumentVM,\n TModel extends BaseDocumentModel = BaseDocumentModel,\n> implements DocumentResource\n{\n protected mapper = createBaseMapper();\n\n protected documentsRepo: BaseDocumentsRepository;\n\n protected settingsResource: SettingsResource;\n\n protected async loadSettings(id?: DocumentId, contentId?: DocumentId) {\n if (this.settingsResource && id && contentId) {\n await this.settingsResource.load(id, contentId);\n }\n }\n\n async getWorkspace(id: DocumentId, settingsContentId?: DocumentId, config?: AxiosRequestConfig) {\n const document = await this.get(id, config);\n\n await this.loadSettings(document.settingsId, settingsContentId ?? document.settingsContentId);\n\n return document;\n }\n\n async update(entity: TEntity, config?: AxiosRequestConfig) {\n const model = this.mapper.fromDomain(entity);\n const document = await this.documentsRepo.update(model, config);\n\n return this.mapper.toDomain(document);\n }\n\n async updateMany(entities: TEntity[], config?: AxiosRequestConfig) {\n const models = this.mapper.fromDomainArray(entities);\n const response = await this.documentsRepo.updateMany(models, config);\n\n return response.map(item => ({\n ok: item.ok,\n id: item.id,\n error: item.error,\n document: item.model ? this.mapper.toDomain(item.model) : undefined,\n }));\n }\n\n async copy(body: CopyRequestArg, config?: AxiosRequestConfig) {\n const document = await this.documentsRepo.copy(body, config);\n\n return this.mapper.toDomain(document);\n }\n\n async duplicateWorkspace(id: DocumentId) {\n const model = await this.documentsRepo.duplicateRoot(id);\n\n return this.mapper.toDomain(model);\n }\n\n async move(body: MoveRequestArg, config?: AxiosRequestConfig) {\n const documents = await this.documentsRepo.move(body, config);\n\n return this.mapper.toDomainArray(documents);\n }\n\n async getList(options?: GetListOptions) {\n const data = await this.documentsRepo.getList(options);\n\n if (Array.isArray(data)) {\n return this.mapper.toDomainArray(data);\n }\n\n return {\n ...data,\n items: this.mapper.toDomainArray(data.items),\n };\n }\n\n async createChildren(\n id: DocumentId,\n entities: DocumentWithChildren[],\n config?: AxiosRequestConfig,\n ) {\n const models = this.mapper.fromDomainTree(entities);\n\n const document = await this.documentsRepo.createChildren(id, models, config);\n\n return this.mapper.toDomain(document);\n }\n\n async getChildren(id: DocumentId) {\n const documents = await this.documentsRepo.getChildren(id);\n\n return this.mapper.toDomainArray(documents);\n }\n\n async removeChildren(...args: [DocumentId, DocumentId[], AxiosRequestConfig?]) {\n try {\n const document = await this.documentsRepo.removeChildren(...args);\n\n return {\n ok: true,\n data: this.mapper.toDomain(document),\n };\n } catch (error) {\n return {\n ok: false,\n error,\n };\n }\n }\n\n async getRoot(id?: DocumentId) {\n const idsPath = await this.getPathToRoot(id);\n const [rootId] = idsPath;\n const model = await this.get(rootId);\n\n const children = [];\n while (children.length < idsPath.length) {\n children.push(this.getChildren(idsPath[children.length]));\n }\n\n const documents = await Promise.all(children);\n\n return {\n documents: [model, ...documents.flat()],\n rootId,\n };\n }\n\n async createWorkspace(entity: TEntity) {\n const [model] = this.mapper.fromDomainTree([entity]);\n const document = await this.documentsRepo.createRoot(model);\n\n const root = await this.documentsRepo.createChildren(document._id, model.children || [], {\n headers: {\n 'If-Match': `\"${document._rev}\"`,\n },\n });\n\n return [this.mapper.toDomain(root)];\n }\n\n remove(id: DocumentId, rev: DocumentRevision) {\n return this.documentsRepo.remove(id, rev);\n }\n\n async get(id: DocumentId, config?: AxiosRequestConfig) {\n const document = await this.documentsRepo.get(id, config);\n\n return this.mapper.toDomain(document);\n }\n\n async getTree(id: DocumentId, config?: AxiosRequestConfig) {\n const documents = await this.documentsRepo.getTree(id, config);\n\n return this.mapper.toDomainTree(documents);\n }\n\n import(\n id: DocumentId,\n area: DocumentId,\n entities: DocumentWithChildren[],\n config?: AxiosRequestConfig,\n ) {\n function iterate(item: DocumentWithChildren): DocumentWithChildren {\n return {\n ...item,\n area,\n _rev: undefined,\n _id: uuid(),\n children: item.children?.map((child: DocumentWithChildren) => iterate(child)),\n };\n }\n\n const clearEntities = entities.map(entity => iterate(entity));\n\n return this.createChildren(id, clearEntities, config);\n }\n\n getPathToRoot(id?: DocumentId | undefined) {\n return this.documentsRepo.getPathToRoot(id);\n }\n\n async expandTree(id: DocumentId): Promise<[TEntity[], DocumentId[]]> {\n const tree = await this.getTree(id);\n\n const documents: TEntity[] = [];\n const ids: DocumentId[] = [];\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n forEachTree(tree, ({ children, ...rest }) => {\n documents.push(rest as TEntity);\n ids.push(rest._id);\n });\n\n return [documents, ids];\n }\n\n async getParents(id: DocumentId) {\n const ids = await this.getPathToRoot(id);\n return this.getMany(ids);\n }\n\n async getMany(ids: DocumentId[]) {\n const models = await this.documentsRepo.getMany(ids);\n return this.mapper.toDomainArray(models);\n }\n\n bisect(docId: DocumentId) {\n return this.documentsRepo.bisect(docId);\n }\n\n async updateAccess(entity: TEntity, request: DocumentAccess[]) {\n const model = this.mapper.fromDomain(entity);\n const document = await this.documentsRepo.updateAccess(model, request);\n\n return this.mapper.toDomain(document);\n }\n\n getAccess(id: DocumentId) {\n return this.documentsRepo.getAccess(id);\n }\n\n getAttachmentList(docId: DocumentId) {\n return this.documentsRepo.getAttachmentList(docId);\n }\n\n setAttachment(docId: DocumentId, attachmentId: AttachmentId, _rev: DocumentRevision, file: File) {\n const id = attachmentId || uuid();\n return this.documentsRepo.setAttachment(docId, id, _rev, file);\n }\n\n getAttachment(docId: DocumentId, attachmentId: AttachmentId) {\n return this.documentsRepo.getAttachment(docId, attachmentId);\n }\n\n deleteAttachment(docId: DocumentId, attachmentId: AttachmentId, _rev: DocumentRevision) {\n return this.documentsRepo.deleteAttachment(docId, attachmentId, _rev);\n }\n}\n","import type { DocumentWithChildren } from '../types';\nimport type { BaseMapper } from './interfaces';\n\nexport const createBaseMapper = (): BaseMapper => ({\n toDomain(model: TModel) {\n return model as unknown as TEntity;\n },\n toDomainArray(models: TModel[]) {\n return models as unknown as TEntity[];\n },\n toDomainTree(models: DocumentWithChildren[]) {\n return models as unknown as DocumentWithChildren[];\n },\n fromDomain(entity: TEntity) {\n return entity as unknown as TModel;\n },\n fromDomainArray(entities: TEntity[]) {\n return entities as unknown as TModel[];\n },\n fromDomainTree(entities: DocumentWithChildren[]) {\n return entities as unknown as DocumentWithChildren[];\n },\n});\n","export const combineUrls = (...args: string[]) =>\n args\n .map(str => str.replace(/^\\//, ''))\n .join('/')\n .replace(/\\/$/, '');\n","import { injectable, unmanaged } from 'inversify';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport type { AxiosInstance } from 'axios';\nimport { apiHttpClient as baseHttpClient } from '../services/httpClients/apiHttpClient';\nimport { combineUrls } from './utils';\n\n@injectable()\nexport class BaseRepository {\n protected httpClient: AxiosInstance;\n\n constructor(@unmanaged() serviceUrl: string, httpClient: AxiosInstance = baseHttpClient) {\n const getUrl = (url: string) => combineUrls(serviceUrl, url);\n\n this.httpClient = new Proxy(httpClient, {\n get(target, prop, receiver) {\n // decorate first argument with base service url\n if (typeof target === 'function') {\n return (..._args: never[]) => {\n const [path, ...rest] = _args;\n\n // @ts-ignore\n return Reflect.apply(target[prop], undefined, [getUrl(path), ...rest]);\n };\n }\n\n return Reflect.get(target, prop, receiver);\n },\n });\n }\n}\n","export enum ErrorCodes {\n serverError = 500,\n notModified = 304,\n forbidden = 403,\n notFound = 404,\n conflict = 409,\n validation = 422,\n}\n","import type { ErrorCodes } from '../literals';\n\nexport class CustomError extends Error {\n constructor(public message: string, public status: ErrorCodes, public data?: T) {\n super(message);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, CustomError);\n }\n\n this.name = 'CustomError';\n }\n}\n","import type { FormError } from 'core/components';\nimport { CustomError } from './CustomError';\nimport { ErrorCodes } from '../literals';\n\nexport class ValidationError extends CustomError {\n constructor(public data: FormError[]) {\n super('Validation error', ErrorCodes.validation, data);\n }\n}\n","import { CustomError } from './CustomError';\nimport { ErrorCodes } from '../literals';\n\nexport class ConflictError extends CustomError {\n constructor(public data?: unknown, message = 'Conflict') {\n super(message, ErrorCodes.conflict, data);\n }\n}\n","import { CustomError } from './CustomError';\nimport { ErrorCodes } from '../literals';\n\nexport class NotModifiedError extends CustomError {\n constructor(message = 'Not modified') {\n super(message, ErrorCodes.notModified);\n }\n}\n","import { CustomError } from './CustomError';\nimport { ErrorCodes } from '../literals';\n\nexport class ForbiddenError extends CustomError {\n constructor(public data: unknown[], public message = 'Access forbidden') {\n super(message, ErrorCodes.forbidden, data);\n }\n}\n","import { CustomError } from './CustomError';\nimport { ValidationError } from './ValidationError';\nimport type { ConflictError } from './ConflictError';\nimport { ErrorCodes } from '../literals';\nimport type { NotFoundError } from './NotFoundError';\nimport { ForbiddenError } from './ForbiddenError';\n\n// TODO: maybe we need to use errorType instead of instanceof\nexport const isCustomError = (err: unknown): err is CustomError => err instanceof CustomError;\n\nexport const isValidationError = (err: unknown): err is ValidationError =>\n err instanceof ValidationError && err.status === ErrorCodes.validation;\n\nexport const isConflictError = (err: unknown): err is ConflictError =>\n isCustomError(err) && err.status === ErrorCodes.conflict;\n\nexport const isNotFoundError = (err: unknown): err is NotFoundError =>\n isCustomError(err) && err.status === ErrorCodes.notFound;\n\nexport const isForbiddenError = (err: unknown): err is ValidationError =>\n err instanceof ForbiddenError && err.status === ErrorCodes.forbidden;\n","import { CustomError } from './CustomError';\nimport { ErrorCodes } from '../literals';\n\nexport class NotFoundError extends CustomError {\n constructor(public data?: unknown, message = 'Not found') {\n super(message, ErrorCodes.notFound, data);\n }\n}\n","/* eslint-disable unicorn/filename-case */\nimport type { AxiosRequestConfig } from 'axios';\nimport { injectable } from 'inversify';\nimport type { DocumentId, DocumentRevision } from '../types';\nimport { BaseRepository } from './Base.repository';\nimport { ConflictError, NotModifiedError, CustomError } from './errors';\nimport type { BaseDocumentChangeModel, GenericModel } from './models';\nimport type {\n GetListOptions,\n GetListReturnType,\n PaginationResponse,\n UpdateManyResponse,\n UpdateResponse,\n} from './types';\nimport type { Migration } from './interfaces';\nimport { ErrorCodes } from './literals';\n\n@injectable()\nexport class BaseCRUDRepository extends BaseRepository {\n protected migrator?: Migration;\n\n async duplicateRoot(id: DocumentId): Promise {\n const { data } = await this.httpClient.post(`/workspaces/${id}/copy`);\n\n return data;\n }\n\n async update(model: TModel, config?: AxiosRequestConfig): Promise {\n const { headers } = await this.httpClient.put>(\n `/${model._id}`,\n model,\n {\n ...config,\n headers: {\n 'If-Match': `\"${model._rev}\"`,\n },\n },\n );\n\n return {\n ...model,\n _rev: Number.parseInt(JSON.parse(headers.etag), 10) as DocumentRevision,\n };\n }\n\n async updateMany(\n models: TModel[],\n config?: AxiosRequestConfig,\n ): Promise<{ model?: TModel; id: DocumentId; error?: CustomError | unknown; ok: boolean }[]> {\n const { data } = await this.httpClient.post('/update', models, config);\n return models.map(model => {\n const response = data.find(({ id }) => id === model._id);\n\n if (!response) {\n return {\n ok: false,\n id: model._id,\n error: new NotModifiedError(),\n };\n }\n\n if (response.ok) {\n return {\n ok: true,\n id: model._id,\n model: { ...model, _rev: response.rev },\n };\n }\n\n if (response.reason === 'conflict') {\n return {\n ok: false,\n id: model._id,\n model,\n error: new ConflictError(),\n };\n }\n\n if (response.reason === 'onBeforeDocUpdatedFailed' && response.error) {\n return {\n ok: false,\n id: model._id,\n model,\n error: response.error,\n };\n }\n\n return {\n ok: false,\n id: model._id,\n model,\n error: new CustomError(response.err ?? 'Something went wrong!', ErrorCodes.serverError),\n };\n });\n }\n\n async create(node: Partial): Promise {\n const model = this.migrator ? await this.migrator.apply(node, true) : node;\n\n const { data } = await this.httpClient.post('/', model);\n\n return data;\n }\n\n async remove(id: DocumentId, rev: DocumentRevision): Promise {\n const { data } = await this.httpClient.delete(`/${id}`, {\n headers: {\n 'If-Match': `\"${rev}\"`,\n },\n });\n\n return data;\n }\n\n async get(id: DocumentId, config?: AxiosRequestConfig): Promise {\n const document = await this.httpClient.get(`/${id}`, config).then(({ data }) => data);\n if (this.migrator) {\n return this.migrator.apply(document);\n }\n\n return document;\n }\n\n async getMany(ids: DocumentId[], config?: AxiosRequestConfig) {\n const { data } = await this.httpClient.post('/find', ids, config);\n const documents = data ?? [];\n\n if (this.migrator) {\n return Promise.all(documents.map(document => this.migrator!.apply(document)));\n }\n\n return documents;\n }\n\n /**\n * Method returns list of all entities with pagination if request includes param 'useListResponse=true'\n * Otherwise response with all entities (not recommended)\n */\n async getList(\n options?: D,\n ): Promise | TModel[]> {\n return this.httpClient\n .get>('/', { params: { limit: 150, ...options?.params } })\n .then(({ data }) => data);\n }\n\n getChanges(id: DocumentId, since: DocumentRevision) {\n const options = {\n params: {\n since,\n },\n };\n\n return this.httpClient\n .get[] | null>(`${id}/changes`, options)\n .then(({ data }) => data ?? []);\n }\n}\n","import type { AxiosRequestConfig } from 'axios';\nimport { injectable } from 'inversify';\nimport type { AttachmentId, DocumentId, DocumentRevision, DocumentWithChildren } from '../types';\nimport type {\n BaseDocumentChangeModel,\n BaseDocumentModel,\n UserAccessModel,\n DocumentAccess,\n} from './models';\nimport type { CopyRequestArg, MoveRequestArg, UpdateResponse } from './types';\nimport { fileReadAsync } from '../utils';\nimport type { Migration } from './interfaces';\nimport { BaseCRUDRepository } from './BaseCRUD.repository';\nimport type { MeiliSearchConfig } from './repositories';\n\n@injectable()\nexport class BaseDocumentsRepository<\n TModel extends BaseDocumentModel = BaseDocumentModel,\n> extends BaseCRUDRepository {\n protected migrator?: Migration;\n\n async copy(body: CopyRequestArg, options?: AxiosRequestConfig): Promise {\n const { data } = await this.httpClient.post(`/copy`, body, options);\n\n return this.migrator ? this.migrator.apply(data) : data;\n }\n\n async move(body: MoveRequestArg, options?: AxiosRequestConfig): Promise {\n const { data } = await this.httpClient.post(`/move`, body, options);\n\n return this.migrator ? this.migrator.applyArray(data) : data;\n }\n\n async createChildren(\n id: DocumentId,\n models: DocumentWithChildren[],\n config?: AxiosRequestConfig,\n ): Promise {\n const _models = this.migrator ? await this.migrator.applyTree(models, true) : models;\n\n const { data } = await this.httpClient.post(`/${id}/children`, _models, config);\n\n return this.migrator ? this.migrator.apply(data) : data;\n }\n\n async getChildren(id: DocumentId): Promise {\n const { data } = await this.httpClient.get(`/${id}/children`);\n const documents = data ?? [];\n\n return this.migrator ? this.migrator.applyArray(documents) : documents;\n }\n\n async bisect(id: DocumentId): Promise {\n const { data } = await this.httpClient.get(`/${id}/bisect`);\n const documents = data ?? [];\n\n return documents;\n }\n\n async removeChildren(id: DocumentId, ids: DocumentId[], config?: AxiosRequestConfig) {\n const { data } = await this.httpClient.delete(`/${id}/children`, {\n ...config,\n data: ids,\n });\n\n return this.migrator ? this.migrator.apply(data) : data;\n }\n\n async createRoot(node: TModel): Promise {\n return super.create(node);\n }\n\n async getTree(id: DocumentId, config?: AxiosRequestConfig) {\n const documents = await this.httpClient\n .get[]>(`/${id}/export`, config)\n .then(({ data }) => data);\n\n if (this.migrator) {\n return this.migrator.applyTree(documents);\n }\n\n return documents;\n }\n\n getChanges(id: DocumentId, since: DocumentRevision) {\n const options = {\n params: {\n since,\n },\n };\n\n return this.httpClient\n .get[] | null>(`${id}/changes`, options)\n .then(({ data }) => data ?? []);\n }\n\n getPathToRoot(id?: DocumentId | undefined): Promise {\n if (!id) return Promise.resolve([]);\n\n return this.httpClient.get(`/${id}/locate`).then(({ data }) => data);\n }\n\n async updateAccess(model: TModel, request: DocumentAccess[]) {\n const { _id, _rev, meta } = model;\n const config: AxiosRequestConfig = {\n headers: {\n 'If-Match': `\"${_rev}\"`,\n },\n };\n const { headers } = await this.httpClient.put>(\n `/${_id}/access`,\n request,\n config,\n );\n\n return {\n ...model,\n meta: {\n ...meta,\n access: request,\n },\n _rev: JSON.parse(headers.etag) as DocumentRevision,\n };\n }\n\n getAccess(id: DocumentId) {\n return this.httpClient.get(`/${id}/access`).then(({ data }) => data);\n }\n\n async getAttachmentList(docId: DocumentId) {\n return this.httpClient.get(`/${docId}`).then(({ data }) => data.attachments);\n }\n\n async setAttachment(\n docId: DocumentId,\n attachmentId: AttachmentId,\n _rev: DocumentRevision,\n file: File,\n ): Promise {\n const config: AxiosRequestConfig = {\n headers: {\n 'If-Match': `\"${_rev}\"`,\n 'Content-Type': file.type,\n },\n };\n\n const fileData = await fileReadAsync(file);\n\n const { headers } = await this.httpClient.put>(\n `/${docId}/attachments/${attachmentId}`,\n fileData,\n config,\n );\n\n return JSON.parse(headers.etag) as DocumentRevision;\n }\n\n async deleteAttachment(docId: DocumentId, attachmentId: AttachmentId, _rev: DocumentRevision) {\n const config: AxiosRequestConfig = {\n headers: {\n 'If-Match': `\"${_rev}\"`,\n },\n };\n\n const { headers } = await this.httpClient.delete>(\n `/${docId}/attachments/${attachmentId}`,\n config,\n );\n\n return JSON.parse(headers.etag) as DocumentRevision;\n }\n\n getAttachment(docId: DocumentId, attachmentId: AttachmentId) {\n return this.httpClient.get(`/${docId}/attachments/${attachmentId}`, {\n responseType: 'arraybuffer',\n });\n }\n\n async getSearchConfig() {\n const { data } = await this.httpClient.get(`/meilisearch-key`);\n\n return {\n ...data,\n expiresAt: new Date(data.expiresAt),\n };\n }\n}\n","import { AutoMap } from '@automapper/classes';\n/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport type { DocumentId } from '../../types';\nimport type { UserRoles } from '../types';\n\nexport class DocumentAccess {\n @AutoMap(() => String)\n userID: DocumentId;\n\n @AutoMap(() => [String])\n roles: UserRoles[];\n}\n\nexport class DocumentMeta {\n @AutoMap(() => [String])\n childrenIds?: DocumentId[];\n\n @AutoMap(() => [DocumentAccess])\n access?: DocumentAccess[];\n}\n","/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport { AutoMap } from '@automapper/classes';\nimport type { DocumentId, DocumentRevision } from '../../types';\n\nexport class GenericModel {\n @AutoMap(() => String)\n _id: DocumentId;\n\n @AutoMap(() => Number)\n _rev: DocumentRevision;\n\n @AutoMap(() => String)\n createdBy: DocumentId;\n\n @AutoMap(() => String)\n updatedAt: string;\n\n @AutoMap(() => String)\n createdAt: string;\n\n @AutoMap()\n schemaVersion: number;\n}\n","import type { DocumentId, DocumentRevision } from 'core/types';\nimport type { BaseDocumentModel } from './BaseDocument.model';\n\nexport enum DocumentOperations {\n create = 'create',\n update = 'update',\n delete = 'delete',\n}\n\nexport class BaseDocumentChangeModel {\n docId: DocumentId;\n\n operation: DocumentOperations;\n\n revision: DocumentRevision;\n\n userId: DocumentId;\n\n patch: Partial; // TODO: need to unify models on API side\n\n change: Partial;\n\n createdAtUTC: Date;\n}\n","/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport { AutoMap } from '@automapper/classes';\nimport { DocumentMeta } from './DocumentMeta';\nimport type { DocumentId } from '../../types';\nimport type { DocumentAttachments } from './DocumentAttachment';\nimport { GenericModel } from './Generic.model';\n\nexport class BaseDocumentModel extends GenericModel {\n @AutoMap(() => String)\n area: DocumentId;\n\n @AutoMap(() => String)\n settingsId?: DocumentId;\n\n @AutoMap(() => String)\n settingsContentId?: DocumentId;\n\n @AutoMap(() => DocumentMeta)\n meta: DocumentMeta;\n\n @AutoMap()\n published?: boolean;\n\n @AutoMap()\n composite?: boolean;\n\n @AutoMap()\n type: string;\n\n attachments?: DocumentAttachments;\n}\n","import type { UserModel } from 'core/services';\nimport type { UserRoles } from '../types';\n\nexport class UserAccessModel {\n roles: UserRoles[];\n\n user: UserModel;\n}\n","import type { DocumentId } from '../../types';\nimport type { BaseDocumentModel } from './BaseDocument.model';\n\nexport class SearchDocumentResultHit {\n ancestors?: DocumentId[];\n\n doc: T;\n\n id?: DocumentId;\n}\n\nexport class SearchDocumentResults {\n estimatedTotalHits: number;\n\n limit: number;\n\n offset: number;\n\n processingTimeMs: number;\n\n query: string;\n\n hits: SearchDocumentResultHit[];\n\n docId: DocumentId;\n}\n","/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport { AutoMap } from '@automapper/classes';\nimport type { DocumentId, DocumentRevision } from '../../types';\n\nexport class GenericVM {\n @AutoMap(() => String)\n _id: DocumentId;\n\n @AutoMap(() => Number)\n _rev: DocumentRevision;\n\n @AutoMap(() => String)\n createdBy: DocumentId;\n\n @AutoMap(() => String)\n updatedAt: string;\n\n @AutoMap(() => String)\n createdAt: string;\n\n @AutoMap()\n schemaVersion: number;\n}\n","/* eslint-disable @typescript-eslint/consistent-type-imports */\nimport { AutoMap } from '@automapper/classes';\nimport type { DocumentId } from '../../types';\nimport { GenericVM } from './Generic.vm';\nimport { DocumentMeta } from '../models/DocumentMeta';\n\nexport class BaseDocumentVM extends GenericVM {\n @AutoMap(() => String)\n area: DocumentId;\n\n @AutoMap(() => String)\n settingsId?: DocumentId;\n\n @AutoMap(() => String)\n settingsContentId?: DocumentId;\n\n @AutoMap()\n published?: boolean;\n\n @AutoMap(() => DocumentMeta)\n meta: DocumentMeta;\n\n @AutoMap()\n composite?: boolean;\n\n type: string;\n}\n\n/**\n * @deprecated BaseEntity is deprecated use BaseDocumentVM instead\n */\nexport const BaseEntity = BaseDocumentVM;\n\n/**\n * @deprecated BaseEntity is deprecated use BaseDocumentVM instead\n */\nexport type BaseEntity = BaseDocumentVM;\n","export interface Factory {\n add: (t: T, c: C) => void;\n create: (t: T, a?: any) => C;\n}\n\n// TODO: replace this factory with new plans domain factory\nexport const createFactory = (): Factory => {\n const fields: Map = new Map();\n\n return {\n create(type) {\n if (!fields.has(type)) {\n throw new Error(`Create factory: ${String(type)} is not found!`);\n }\n\n return fields.get(type)!;\n },\n\n add(type: T, component: C) {\n console.warn('Use BaseFactory class instead.');\n fields.set(type, component);\n },\n };\n};\n","import { env } from 'core/utils';\nimport mitt from 'mitt';\nimport { injectable } from 'inversify';\nimport { combineUrls } from './utils';\nimport type { BaseDocumentChangeModel } from './models';\n\nconst EVENTS_LIST = ['open', 'docUpdated', 'userLogout', 'accessRevoked', 'error', 'ping'] as const;\n\ntype Events = {\n docUpdated: BaseDocumentChangeModel;\n open: null;\n userLogout: null;\n accessRevoked: null;\n error: string;\n ping: null;\n};\n\ntype EventNames = (typeof EVENTS_LIST)[number];\n\ntype Handler = (e: Events[T]) => void;\n\n@injectable()\nexport class BaseSseRepository {\n private sse: EventSource;\n\n private readonly baseUrl: string;\n\n private readonly events = mitt();\n\n constructor(url: string) {\n this.baseUrl = combineUrls(env.API_URL, url);\n }\n\n create(id: string) {\n const url = combineUrls(this.baseUrl, id, '/changes/events');\n\n this.sse = new EventSource(url, {\n withCredentials: true,\n });\n\n this.subscribe();\n\n return this;\n }\n\n destroy() {\n this.off('*');\n this.sse.close();\n }\n\n private onMessage = (e: MessageEvent) => {\n this.events.emit(e.type as EventNames, e.data ? JSON.parse(e.data) : null);\n };\n\n private subscribe() {\n EVENTS_LIST.forEach(event => {\n this.sse.addEventListener(event, this.onMessage);\n });\n }\n\n private unsubscribe() {\n EVENTS_LIST.forEach(event => {\n this.sse.removeEventListener(event, this.onMessage);\n });\n }\n\n on(eventName: TEvent, handler: Handler) {\n this.events.on(eventName, handler);\n }\n\n off(eventName: TEvent | '*', handler?: Handler) {\n if (eventName === '*') {\n this.events.all.clear();\n } else {\n this.events.off(eventName, handler);\n }\n }\n}\n","import { injectable } from 'inversify';\nimport mergeWith from 'lodash/mergeWith';\nimport { createBaseMapper } from './base-mapper';\nimport type { BaseDocumentModel } from './models';\nimport type { DocumentId, DocumentRevision } from '../types';\nimport type { BaseSseRepository } from './BaseSse.repository';\nimport { BaseDocumentChangeModel, DocumentOperations } from './models';\nimport type { ChangesResource } from './interfaces';\nimport type { BaseCRUDRepository } from './BaseCRUD.repository';\nimport type { BaseDocumentVM } from './view-models';\n\n@injectable()\nexport class BaseChangesService<\n TEntity extends BaseDocumentVM = BaseDocumentVM,\n TModel extends BaseDocumentModel = BaseDocumentModel,\n> implements ChangesResource\n{\n protected mapper = createBaseMapper();\n\n protected documentsRepo: BaseCRUDRepository;\n\n protected sseRepo: BaseSseRepository;\n\n // eslint-disable-next-line @typescript-eslint/require-await\n async createSSE(id: DocumentId) {\n if (!this.sseRepo) return null;\n\n return this.sseRepo.create(id);\n }\n\n async getMergedChanges(id: DocumentId, since: DocumentRevision) {\n const changes = await this.documentsRepo.getChanges(id, since);\n\n return changes.reduce((acc, change) => {\n if (change.revision === since || change.operation === DocumentOperations.create) return acc;\n\n return BaseChangesService.mergeChanges(acc, change);\n }, new BaseDocumentChangeModel());\n }\n\n async getAndApplyChanges(entity: TEntity) {\n const changes = await this.getMergedChanges(entity._id, entity._rev);\n\n return this.applyChanges([entity], [changes]);\n }\n\n /**\n * Applying changes is possible just on api level because of different models.\n */\n // eslint-disable-next-line @typescript-eslint/require-await\n applyChanges(entities: TEntity[] | null, models: BaseDocumentChangeModel[]) {\n if (!entities) {\n return this.mapper.toDomainArray(models.map(p => (p.patch ?? p.change) as TModel));\n }\n\n const applyPatch = (entity: TEntity, patch: BaseDocumentChangeModel) => {\n const currentRev = entity._rev;\n const patchRev = patch.revision;\n\n if (currentRev >= patchRev) {\n return entity;\n }\n\n // Convert entity to model to be able apply patch\n const model = this.mapper.fromDomain(entity);\n\n const mergedModel = BaseChangesService.mergeChanges(model, {\n ...(patch.patch ?? patch.change),\n _rev: patch.revision,\n });\n\n // Return updated entity\n return this.mapper.toDomain(mergedModel);\n };\n\n return entities.map((entity, i) => applyPatch(entity, models[i]));\n }\n\n static mergeChanges(model: TModel, patch: TPatch) {\n return mergeWith({}, model, patch, (_model: unknown, _patch: unknown) => {\n if (Array.isArray(_model)) {\n return _patch; // if array was changed - override old one\n }\n });\n }\n}\n","export class BaseChartBuilder {\n private readonly options: Highcharts.Options;\n\n constructor(options = {}) {\n this.options = {\n credits: {},\n chart: {},\n title: {},\n xAxis: {},\n yAxis: {},\n series: [],\n exporting: {},\n plotOptions: {},\n tooltip: {},\n ...options,\n };\n }\n\n setCredits(credits: Highcharts.CreditsOptions) {\n this.options.credits = credits;\n return this;\n }\n\n setChart(chart: Highcharts.ChartOptions) {\n this.options.chart = { ...this.options.chart, ...chart };\n return this;\n }\n\n setTitle(title: Highcharts.TitleOptions) {\n this.options.title = { ...this.options.title, ...title };\n return this;\n }\n\n setXAxis(xAxis: Highcharts.XAxisOptions) {\n this.options.xAxis = { ...this.options.xAxis, ...xAxis };\n return this;\n }\n\n setYAxis(yAxis: Highcharts.YAxisOptions) {\n this.options.yAxis = { ...this.options.yAxis, ...yAxis };\n return this;\n }\n\n setSeries(series: Highcharts.SeriesOptionsType[]) {\n this.options.series = series;\n return this;\n }\n\n setExporting(exporting: Highcharts.ExportingOptions) {\n this.options.exporting = { ...this.options.exporting, ...exporting };\n return this;\n }\n\n setPlotOptions(plotOptions: Highcharts.PlotOptions) {\n this.options.plotOptions = { ...this.options.plotOptions, ...plotOptions };\n return this;\n }\n\n setTooltip(tooltip: Highcharts.TooltipOptions) {\n this.options.tooltip = { ...this.options.tooltip, ...tooltip };\n return this;\n }\n\n build() {\n return this.options;\n }\n}\n","import { injectable, unmanaged } from 'inversify';\nimport type { BaseDocumentModel } from './models';\nimport type { Migration } from './interfaces';\nimport type { DocumentWithChildren } from '../types';\n\n@injectable()\nexport abstract class BaseMigrationService\n implements Migration\n{\n #currentVersion: number;\n\n constructor(@unmanaged() currentVersion: number) {\n this.#currentVersion = currentVersion;\n }\n\n getModules(schemaVersion: number) {\n const modules = [];\n let v = schemaVersion;\n while (v < this.#currentVersion) {\n modules.push(this.load(++v));\n }\n return modules;\n }\n\n async apply(node: TModel, isNew = false): Promise {\n if (isNew) {\n node.schemaVersion = this.#currentVersion;\n return node;\n }\n\n if (node.schemaVersion >= this.#currentVersion) {\n return node;\n }\n\n const modules = this.getModules(node.schemaVersion ?? 0);\n const funcs = await Promise.all(modules);\n\n if (!funcs) {\n return node;\n }\n\n const newModel = funcs.reduce((acc, func: unknown) => {\n if (typeof func !== 'function') {\n throw new TypeError(`Migration function wasn't found!`);\n }\n\n const data = func.call(this, acc);\n\n return { ...data };\n }, node);\n\n newModel.schemaVersion = this.#currentVersion;\n\n return newModel;\n }\n\n async applyTree(models: DocumentWithChildren[], isNew = false) {\n type Model = DocumentWithChildren;\n\n const iterate = async (item: Model): Promise => {\n const newItem = await this.apply(item, isNew);\n\n const { children } = item;\n\n return {\n ...newItem,\n children: children ? await Promise.all(children.map(child => iterate(child))) : undefined,\n };\n };\n\n return Promise.all(models.map(document => iterate(document)));\n }\n\n applyArray(models: TModel[], isNew = false) {\n return Promise.all(models.map(model => this.apply(model, isNew)));\n }\n\n get version() {\n return this.#currentVersion;\n }\n\n // eslint-disable-next-line class-methods-use-this\n load(version: number) {\n throw new Error(`Method not implemented v${version}`);\n }\n}\n","import { injectable } from 'inversify';\nimport merge from 'lodash/merge';\nimport { meiliHttpClient } from '../../services/httpClients';\nimport { BaseRepository } from '../Base.repository';\nimport type { BaseDocumentModel, SearchDocumentResults } from '../models';\nimport type { MeiliSearchParams } from '../types';\n\nexport type MeiliSearchConfig = {\n expiresAt: Date;\n key: string;\n name: string;\n baseURL: string;\n};\n\n@injectable()\nexport class SearchRepository<\n TModel extends BaseDocumentModel = BaseDocumentModel,\n> extends BaseRepository {\n constructor(baseURL: string) {\n super(`${baseURL}/indexes`, meiliHttpClient);\n }\n\n async search(\n filteringParams: MeiliSearchParams,\n searchParams: MeiliSearchConfig,\n ): Promise> {\n const { name, key } = searchParams;\n\n const { data } = await this.httpClient.post>(\n `/${name}/search`,\n merge({}, filteringParams, {\n limit: 200, // TEMP default value\n }),\n {\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${key}`,\n },\n },\n );\n\n return data;\n }\n}\n","import { injectable } from 'inversify';\n\nimport type { BaseDocumentModel, SearchDocumentResults } from '../models';\nimport { type MeiliSearchConfig, SearchRepository } from '../repositories';\nimport { createBaseMapper } from '../base-mapper';\nimport type { BaseDocumentVM } from '../view-models';\nimport type { BaseDocumentsRepository } from '../BaseDocuments.repository';\nimport { isForbiddenError } from '../errors';\nimport type { MeiliSearchParams } from '../types';\n\n@injectable()\nexport class BaseSearchService<\n TViewModel extends BaseDocumentVM = BaseDocumentVM,\n TModel extends BaseDocumentModel = BaseDocumentModel,\n> {\n protected mapper = createBaseMapper();\n\n #searchRepo?: SearchRepository;\n\n protected documentsRepo: BaseDocumentsRepository;\n\n #searchParams: MeiliSearchConfig;\n\n protected get searchRepo() {\n if (!this.#searchRepo) {\n this.#searchRepo = new SearchRepository(this.#searchParams.baseURL);\n }\n\n return this.#searchRepo;\n }\n\n protected set searchRepo(repo) {\n this.#searchRepo = repo;\n }\n\n async search(filteringParams: MeiliSearchParams): Promise> {\n if (!this.#searchParams || this.#searchParams.expiresAt <= new Date()) {\n this.#searchParams = await this.documentsRepo.getSearchConfig();\n }\n\n try {\n const searchResult = await this.searchRepo.search(filteringParams, this.#searchParams);\n\n return {\n ...searchResult,\n hits: searchResult.hits.map((h: { doc: TModel }) => {\n return { ...h, doc: this.mapper.toDomain(h.doc) };\n }),\n };\n } catch (error) {\n if (!isForbiddenError(error)) throw error;\n\n this.#searchParams.expiresAt = new Date(0);\n return this.search(filteringParams);\n }\n }\n}\n","let isRedirecting = false;\nexport const fusionAuthRedirect = (path: string, redirectUrl = window.location.href): void => {\n if (isRedirecting) return;\n\n const { location } = window;\n const URL = `${path}?redirect_url=${encodeURIComponent(redirectUrl)}`;\n\n isRedirecting = true;\n // the redirection script a bit waits that the user store data will change.\n setTimeout(() => location.assign(URL));\n};\n","import { createHttpClient } from './createHttpClient';\n\n// In prod mode we send requests directlyc\n\nconst apiHttpClient = createHttpClient();\n\nexport { apiHttpClient };\n","// In dev mode webpack proxies /api requests to API_URL itself\n\nimport type { CreateAxiosDefaults, AxiosResponse, AxiosRequestConfig } from 'axios';\nimport axios from 'axios';\nimport { t } from 'i18next';\nimport { ConflictError, CustomError, ForbiddenError } from 'core/base';\nimport { URL_LIST } from 'core/store/modules/common/literals';\nimport merge from 'lodash/merge';\nimport { fusionAuthRedirect } from '../fusionAuthRedirect';\nimport { env } from '../../utils';\n\nconst defaultConfig = {\n baseURL: env.API_URL,\n headers: { Accept: 'application/json' },\n withCredentials: true,\n adapter: 'xhr',\n};\n\nexport function createHttpClient(config?: CreateAxiosDefaults) {\n const httpClient = axios.create(merge(defaultConfig, config));\n type AxiosError = {\n config: AxiosRequestConfig;\n response: AxiosResponse;\n toString: () => string;\n };\n\n httpClient.interceptors.response.use(\n options => options,\n (error: AxiosError) => {\n const { response } = error;\n\n try {\n switch (response.status) {\n case 401: {\n // 401 Unauthorized\n fusionAuthRedirect(URL_LIST.auth);\n break;\n }\n\n case 409: {\n return Promise.reject(\n new ConflictError({}, response.statusText || response.data.message),\n );\n }\n\n case 403: {\n return Promise.reject(new ForbiddenError(response.data));\n }\n case 500: {\n return Promise.reject(\n new CustomError(t('Errors.Code500'), response.status, response.data),\n );\n }\n\n default: {\n return Promise.reject(\n new CustomError(response.statusText, response.status, response.data),\n );\n }\n }\n } catch (error_) {\n // eslint-disable-next-line no-console\n console.error(error_);\n }\n return Promise.reject(response);\n },\n );\n\n return httpClient;\n}\n","import { createHttpClient } from './createHttpClient';\n\n// In prod mode we send requests directly\nconst adapter = 'fetch';\n\nconst meiliHttpClient = createHttpClient({ adapter });\n\nexport { meiliHttpClient };\n","import { env } from 'core/utils/env';\nimport type { ActionsTypes, ResolvingStatus, UrlList } from 'core/types';\n\nexport enum ActionTypes {\n APP_NAME_SET = 'APP_NAME_SET',\n HIDE_ALERT = 'HIDE_ALERT',\n SHOW_ALERT = 'SHOW_ALERT',\n ASSIGNMENT_WINDOW_SHOW = 'ASSIGNMENT_WINDOW_SHOW',\n ASSIGNMENT_WINDOW_HIDE = 'ASSIGNMENT_WINDOW_HIDE',\n LOADING_SHOW = 'LOADING_SHOW',\n LOADING_HIDE = 'LOADING_HIDE',\n LOADING_SET_MESSAGE = 'LOADING_SET_MESSAGE',\n USER_INFO_REQUEST = 'USER_INFO_REQUEST',\n USER_INFO_SUCCESS = 'USER_INFO_SUCCESS',\n USER_INFO_FAILURE = 'USER_INFO_FAILURE',\n USER_LOGOUT_REQUEST = 'USER_LOGOUT_REQUEST',\n USER_LOGOUT_SUCCESS = 'USER_LOGOUT_SUCCESS',\n USER_LOGOUT_FAILURE = 'USER_LOGOUT_FAILURE',\n USER_SHOW_ALERT_WELCOME = 'USER_SHOW_ALERT_WELCOME',\n POUCH_DB_REMOVE = 'POUCH_DB_REMOVE',\n POUCH_DB_REMOVE_SUCCESS = 'POUCH_DB_REMOVE_SUCCESS',\n POUCH_DB_REMOVE_FAILURE = 'POUCH_DB_REMOVE_FAILURE',\n POUCH_DB_IMPORT = 'POUCH_DB_IMPORT',\n POUCH_DB_IMPORT_SUCCESS = 'POUCH_DB_IMPORT_SUCCESS',\n POUCH_DB_IMPORT_FAILURE = 'POUCH_DB_IMPORT_FAILURE',\n POUCH_DB_GET_WORKSPACES = 'POUCH_DB_GET_WORKSPACES',\n POUCH_DB_GET_WORKSPACES_SUCCESS = 'POUCH_DB_GET_WORKSPACES_SUCCESS',\n POUCH_DB_GET_WORKSPACES_FAILURE = 'POUCH_DB_GET_WORKSPACES_FAILURE',\n POUCH_DB_SET_ITEM = 'POUCH_DB_SET_ITEM',\n POUCH_DB_GET_LIST = 'POUCH_DB_GET_LIST',\n POUCH_DB_GET_LIST_SUCCESS = 'POUCH_DB_GET_LIST_SUCCESS',\n POUCH_DB_GET_LIST_FAILURE = 'POUCH_DB_GET_LIST_FAILURE',\n POUCH_DB_ASSIGNMENT_GET_LIST = 'POUCH_DB_ASSIGNMENT_GET_LIST',\n POUCH_DB_ASSIGNMENT_GET_LIST_SUCCESS = 'POUCH_DB_ASSIGNMENT_GET_LIST_SUCCESS',\n POUCH_DB_ASSIGNMENT_GET_LIST_FAILURE = 'POUCH_DB_ASSIGNMENT_GET_LIST_FAILURE',\n POUCH_DB_SEARCH = 'POUCH_DB_SEARCH',\n POUCH_DB_SEARCH_ENABLED = 'POUCH_DB_SEARCH_ENABLED',\n POUCH_DB_SEARCH_SUCCESS = 'POUCH_DB_SEARCH_SUCCESS',\n POUCH_DB_SEARCH_FAILURE = 'POUCH_DB_SEARCH_FAILURE',\n POUCH_DB_SAVE_ORDER = 'POUCH_DB_SAVE_ORDER',\n POUCH_DB_SAVE_ORDER_SUCCESS = 'POUCH_DB_SAVE_ORDER_SUCCESS',\n POUCH_DB_SAVE_ORDER_FAILURE = 'POUCH_DB_SAVE_ORDER_FAILURE',\n ORGANIZATION_GET_USERS = 'ORGANIZATION_GET_USERS',\n ORGANIZATION_GET_USERS_SUCCESS = 'ORGANIZATION_GET_USERS_SUCCESS',\n ORGANIZATION_GET_USERS_FAILURE = 'ORGANIZATION_GET_USERS_FAILURE',\n POUCH_DB_CREATE_WORKSPACE = 'POUCH_DB_CREATE_WORKSPACE',\n EDITOR_GET_DOCUMENT_ID = 'EDITOR_GET_DOCUMENT_ID',\n EDITOR_GET_DOCUMENT_SUCCESS = 'EDITOR_GET_DOCUMENT_SUCCESS',\n EDITOR_GET_DOCUMENT_FAILURE = 'EDITOR_GET_DOCUMENT_FAILURE',\n EDITOR_UPDATING_DOCUMENT = 'EDITOR_UPDATING_DOCUMENT',\n EDITOR_PUT_DOCUMENT_REV = 'EDITOR_PUT_DOCUMENT_REV',\n EDITOR_PUT_DOCUMENT = 'EDITOR_PUT_DOCUMENT',\n EDITOR_PUT_DOCUMENT_SUCCESS = 'EDITOR_PUT_DOCUMENT_SUCCESS',\n EDITOR_PUT_DOCUMENT_FAILURE = ' EDITOR_PUT_DOCUMENT_FAILURE',\n EDITOR_PLUGINS_SET_CODES = 'EDITOR_PLUGINS_SET_CODES',\n EDITOR_PLUGINS_SET_ATTRIBUTES = 'EDITOR_PLUGINS_SET_ATTRIBUTES',\n EDITOR_CREATE_DOCUMENT = 'EDITOR_CREATE_DOCUMENT',\n EDITOR_CREATE_DOCUMENT_SUCCESS = 'EDITOR_CREATE_DOCUMENT_SUCCESS',\n EDITOR_CREATE_DOCUMENT_FAILURE = 'EDITOR_CREATE_DOCUMENT_FAILURE',\n WORKSPACE_INIT = 'WORKSPACE_INIT',\n WORKSPACE_INIT_SUCCESS = 'WORKSPACE_INIT_SUCCESS',\n WORKSPACE_INIT_FAILURE = 'WORKSPACE_INIT_FAILURE',\n WORKSPACE_LOAD_BY_ITEM_ID = 'WORKSPACE_LOAD_BY_ITEM_ID',\n WORKSPACE_LOAD_BY_ITEM_ID_SUCCESS = 'WORKSPACE_LOAD_BY_ITEM_ID_SUCCESS',\n WORKSPACE_LOAD_BY_ITEM_ID_FAILURE = 'WORKSPACE_LOAD_BY_ITEM_ID_FAILURE',\n WORKSPACE_SET_CHILDREN = 'WORKSPACE_SET_CHILDREN',\n WORKSPACE_SET_PARENTS = 'WORKSPACE_SET_PARENTS',\n WORKSPACE_SET_ID = 'WORKSPACE_SET_ID',\n ASSIGNMENT_SET = 'ASSIGNMENT_SET',\n ASSIGNMENT_SET_RESET_STATUS = 'ASSIGNMENT_SET_RESET_STATUS',\n ASSIGNMENT_SET_SUCCESS = 'ASSIGNMENT_SET_SUCCESS',\n ASSIGNMENT_SET_FAILURE = 'ASSIGNMENT_SET_FAILURE',\n ASSIGNMENT_GET = 'ASSIGNMENT_GET',\n ASSIGNMENT_GET_SUCCESS = 'ASSIGNMENT_GET_SUCCESS',\n ASSIGNMENT_GET_FAILURE = 'ASSIGNMENT_GET_FAILURE',\n SEARCH_PANEL_SHOW = 'SEARCH_PANEL_SHOW',\n SEARCH_PANEL_HIDE = 'SEARCH_PANEL_HIDE',\n SEARCH_PANEL_SHOW_RESULTS = 'SEARCH_PANEL_SHOW_RESULTS',\n CONFLICT_SET = 'CONFLICT_SET',\n TERMINATE_APP = 'TERMINATE_APP',\n}\n\nexport const RESOLVING_STATUS: ResolvingStatus = {\n RESOLVED: 'Resolved',\n UNRESOLVED: 'Unresolved',\n};\n\nexport const RESOLVING_STATUS_ANY: ResolvingStatus = {\n ANY: 'Any',\n ...RESOLVING_STATUS,\n};\n\nexport const ACTION_TYPE: ActionsTypes = {\n SETTINGS: 'settings',\n EDITOR: 'editor',\n NONE: null,\n TREE: 'tree',\n ASSIGNMENT: 'assignment',\n SEARCH: 'search',\n};\n\nexport const PLUGINS_PATH = 'plugins';\n\nexport const USERINFO_INTERVAL = 10 * 60 * 1000; // 10 minute.\nexport const CONFLICT_ERROR_MESSAGE = 'Document update conflict';\nexport const API_ERROR_MESSAGE = 'Something went wrong';\n\nexport const HOME_PAGE_LINK = '/';\n\nexport const URL_LIST: UrlList = {\n auth: `${env.API_URL}/users/authorize`,\n logout: `${env.API_URL}/users/logout`,\n users: `${env.API_URL}/rest/dropdown/usersinorganization`,\n settings: `${env.API_URL}/settings`,\n spaces: `${env.API_URL}/spaces`,\n docs: `/docs`,\n};\n"],"names":["BaseFactory","map","Map","add","type","value","this","set","create","has","Error","constructor","name","String","get","injectable","BaseApiService","mapper","toDomain","model","toDomainArray","models","toDomainTree","fromDomain","entity","fromDomainArray","entities","fromDomainTree","loadSettings","id","contentId","settingsResource","load","getWorkspace","settingsContentId","config","document","settingsId","update","documentsRepo","updateMany","item","ok","error","undefined","copy","body","duplicateWorkspace","duplicateRoot","move","documents","getList","options","data","Array","isArray","items","createChildren","getChildren","removeChildren","args","getRoot","idsPath","getPathToRoot","rootId","children","length","push","Promise","all","flat","createWorkspace","createRoot","root","_id","headers","_rev","remove","rev","getTree","import","area","iterate","uuid","child","clearEntities","expandTree","tree","ids","forEachTree","rest","getParents","getMany","bisect","docId","updateAccess","request","getAccess","getAttachmentList","setAttachment","attachmentId","file","getAttachment","deleteAttachment","combineUrls","str","replace","join","BaseRepository","serviceUrl","httpClient","Proxy","target","prop","receiver","_args","path","Reflect","apply","url","ErrorCodes","unmanaged","CustomError","message","status","super","captureStackTrace","ValidationError","validation","ConflictError","conflict","NotModifiedError","notModified","ForbiddenError","forbidden","isCustomError","err","isValidationError","isConflictError","isNotFoundError","notFound","isForbiddenError","NotFoundError","BaseCRUDRepository","post","put","Number","parseInt","JSON","parse","etag","response","find","reason","serverError","node","migrator","delete","then","params","limit","getChanges","since","BaseDocumentsRepository","applyArray","_models","applyTree","resolve","meta","access","attachments","fileData","fileReadAsync","responseType","getSearchConfig","expiresAt","Date","DocumentAccess","AutoMap","DocumentMeta","GenericModel","DocumentOperations","BaseDocumentModel","BaseDocumentChangeModel","UserAccessModel","SearchDocumentResultHit","SearchDocumentResults","GenericVM","BaseDocumentVM","BaseEntity","createFactory","fields","component","console","warn","EVENTS_LIST","BaseSseRepository","events","onMessage","e","emit","baseUrl","env","API_URL","sse","EventSource","withCredentials","subscribe","destroy","off","close","forEach","event","addEventListener","unsubscribe","removeEventListener","on","eventName","handler","clear","BaseChangesService","createSSE","sseRepo","getMergedChanges","reduce","acc","change","revision","operation","mergeChanges","getAndApplyChanges","changes","applyChanges","p","patch","applyPatch","mergedModel","i","_model","_patch","BaseChartBuilder","credits","chart","title","xAxis","yAxis","series","exporting","plotOptions","tooltip","setCredits","setChart","setTitle","setXAxis","setYAxis","setSeries","setExporting","setPlotOptions","setTooltip","build","BaseMigrationService","currentVersion","getModules","schemaVersion","modules","v","isNew","funcs","newModel","func","TypeError","call","newItem","version","SearchRepository","baseURL","meiliHttpClient","search","filteringParams","searchParams","key","Authorization","BaseSearchService","searchRepo","repo","searchResult","hits","h","doc","isRedirecting","fusionAuthRedirect","redirectUrl","window","location","href","URL","encodeURIComponent","setTimeout","assign","apiHttpClient","createHttpClient","defaultConfig","Accept","adapter","interceptors","use","URL_LIST","auth","reject","statusText","t","error_","ActionTypes","RESOLVING_STATUS","RESOLVED","UNRESOLVED","RESOLVING_STATUS_ANY","ANY","ACTION_TYPE","SETTINGS","EDITOR","NONE","TREE","ASSIGNMENT","SEARCH","PLUGINS_PATH","USERINFO_INTERVAL","CONFLICT_ERROR_MESSAGE","API_ERROR_MESSAGE","HOME_PAGE_LINK","logout","users","settings","spaces","docs"],"sourceRoot":""}