@api-client/ui 0.0.7 → 0.0.8
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.
|
@@ -212,10 +212,10 @@ export class StoreBindings extends PlatformBindings {
|
|
|
212
212
|
target.addEventListener(EventTypes.Store.History.clearRequest, this.handleHistoryClearRequest.bind(this));
|
|
213
213
|
// project runs
|
|
214
214
|
target.addEventListener(EventTypes.Store.ProjectRuns.add, this.handleAddProjectExecution.bind(this));
|
|
215
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
216
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
217
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
218
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
215
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.list, this.handleProjectExecutionList.bind(this));
|
|
216
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.read, this.handleProjectExecutionRead.bind(this));
|
|
217
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.delete, this.handleProjectExecutionDelete.bind(this));
|
|
218
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.deleteBulk, this.handleProjectExecutionDeleteBulk.bind(this));
|
|
219
219
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearSpace, this.handleProjectExecutionClearSpace.bind(this));
|
|
220
220
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearProject, this.handleProjectExecutionClearProject.bind(this));
|
|
221
221
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/StoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable no-dupe-class-members */\nimport { \n IBackendInfo, ProjectKind, FolderKind, DataFileKind, ContextListOptions, ContextListResult, IFile,\n IFileCreateOptions, AccessOperation, IUser, \n Folder, HttpProject, IAccessPatchInfo, IPatchInfo, IPatchRevision, IApplication, \n IHttpHistory, IHttpHistoryBulkAdd, HistoryListOptions, Project, ListFileKind, DataNamespace, DataFile, \n IBulkOperationResult, ContextChangeRecord,\n ContextDeleteEvent,\n ContextDeleteRecord,\n IProjectExecution,\n IProjectExecutionListOptions,\n ISpace,\n SpaceKind,\n Space,\n PermissionRole,\n HttpCertificate,\n ContextSpaceListOptions,\n IRevision,\n TrashEntry,\n TrashEntryCreate,\n ContextDeleteBulkEvent,\n ICertificate,\n ContextListEvent,\n ContextReadEvent,\n ContextUpdateEvent,\n FileAddOptions,\n FileBreadcrumb,\n IBackendObserveCommand,\n BackendCommandType,\n BackendCommandKind,\n RouteBuilder,\n BroadcastEvent,\n BackendErrorEvent,\n BroadcastFileData,\n HistoryDeletedBroadcastEvent,\n HistoryCreatedBroadcastEvent,\n ProjectExecutionCreatedBroadcastEvent,\n ProjectExecutionDeleteBroadcastEvent,\n DeletedBroadcastEvent,\n BroadcastCreatedEvent,\n} from '@api-client/core/build/browser.js';\nimport { Patch } from '@api-client/json';\nimport { PlatformBindings } from './PlatformBindings.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { IConfigEnvironment, IConfigInit } from '../../lib/config/Config.js';\nimport { ISessionInitInfo, HttpStore } from '../../store/HttpStore.js';\nimport { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';\n\nexport interface EnvironmentSettings {\n /**\n * Initializes the store configuration from the init data.\n * \n * @param init The init data for the store environment.\n */\n init(init: IConfigInit): Promise<void>;\n\n /**\n * Reads the backend information about the store.\n * \n * @param baseUri Store's base URI.\n */\n readStoreInfo(baseUri: string): Promise<IBackendInfo>;\n}\n\nexport interface StoreAuthenticationInit {\n /**\n * The environment to authenticate. Default to globally set environment.\n */\n env?: IConfigEnvironment; \n /**\n * Whether to update environment in application configuration after authentication.\n */\n updateEnvironment?: boolean;\n /**\n * Whether to force authentication even when the user is already authenticated.\n */\n force?: boolean;\n}\n\ninterface StoreAuthentication {\n /**\n * Checks whether the user is authenticated in the store for the environment\n * @param env Optional environment if different than the global environment\n * @returns True if the user is authenticated in the store.\n */\n isAuthenticated(env?: IConfigEnvironment): Promise<boolean>;\n\n /**\n * Authenticates the global environment with the store.\n * \n * @param updateEnvironment When true it stores the environment data when the session was renewed.\n */\n authenticate(options?: StoreAuthenticationInit): Promise<ISessionInitInfo>;\n\n getToken(): Promise<string | undefined>;\n}\n\n/**\n * The base class for API store bindings.\n */\nexport abstract class StoreBindings extends PlatformBindings {\n /**\n * This is used by the client side (main thread or the renderer process)\n * to define the current space the app is using. \n * This space is used in some APIs instead of adding the space to the events system.\n */\n space = '';\n\n /**\n * The currently used environment for all store calls.\n * This can be changed via the `Events.Global.setEnv()`\n */\n globalEnvironment?: IConfigEnvironment;\n\n /**\n * Initialized with the `globalEnvironment`.\n * The store with initialized SDK for the global environment\n */\n store?: HttpStore;\n\n filesChannel = new BroadcastChannel(StoreBroadcast.files);\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);\n\n trashChannel = new BroadcastChannel(StoreBroadcast.trash);\n\n historyChannel = new BroadcastChannel(StoreBroadcast.history);\n\n projectExeChannel = new BroadcastChannel(StoreBroadcast.projectRuns);\n\n certificatesChannel = new BroadcastChannel(StoreBroadcast.certificates);\n\n async initializeStore(): Promise<void> {\n // ...\n }\n\n async initialize(): Promise<void> {\n const target = document.body;\n\n window.addEventListener(EventTypes.Store.initEnvironment, this.handleInitializeEnvironment.bind(this));\n window.addEventListener(EventTypes.Store.info, this.handleStoreInfo.bind(this));\n window.addEventListener(EventTypes.Store.Global.setEnv, this.setGlobalEnvHandler.bind(this));\n window.addEventListener(EventTypes.Store.Global.getEnv, this.getGlobalEnvHandler.bind(this));\n \n // Auth\n window.addEventListener(EventTypes.Store.Auth.authenticate, this.storeAuthHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.isAuthenticated, this.storeIsAuthenticatedHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.getToken, this.getTokenHandler.bind(this));\n\n // Files\n window.addEventListener(EventTypes.Store.File.list, this.handleFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listShared, this.handleSharedFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.create, this.handleFileCreate.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.createDefault, this.fileCreateDefaultHandler.bind(this));\n window.addEventListener(EventTypes.Store.File.read, this.handleFileRead.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patch, this.handleFilePatch.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.delete, this.handleFileDelete.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patchUsers, this.handleFilePatchUser.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listUsers, this.handleListFileUsers.bind(this) as EventListener);\n\n // User\n window.addEventListener(EventTypes.Store.User.me, this.handlerMe.bind(this));\n window.addEventListener(EventTypes.Store.User.list, this.handleUsersList.bind(this));\n window.addEventListener(EventTypes.Store.User.read, this.handleUserRead.bind(this));\n\n // history\n target.addEventListener(EventTypes.Store.History.create, this.handleHistoryCreate.bind(this));\n target.addEventListener(EventTypes.Store.History.createBulk, this.handleHistoryCreateBulk.bind(this));\n target.addEventListener(EventTypes.Store.History.delete, this.handleHistoryDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.deleteBulk, this.handleHistoryDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.list, this.handleHistoryList.bind(this));\n target.addEventListener(EventTypes.Store.History.read, this.handleHistoryRead.bind(this));\n target.addEventListener(EventTypes.Store.History.clearSpace, this.handleHistoryClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearProject, this.handleHistoryClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearRequest, this.handleHistoryClearRequest.bind(this) as EventListener);\n\n // project runs\n target.addEventListener(EventTypes.Store.ProjectRuns.add, this.handleAddProjectExecution.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.delete, this.handleProjectExecutionRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.deleteBulk, this.handleProjectExecutionList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.list, this.handleProjectExecutionDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.read, this.handleProjectExecutionDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearSpace, this.handleProjectExecutionClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearProject, this.handleProjectExecutionClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this) as EventListener);\n\n // certificates\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.list, this.handleCertificateList.bind(this) as EventListener);\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.insert, this.handleCertificateInsert.bind(this) as EventListener);\n }\n\n abstract environment: EnvironmentSettings;\n\n auth: StoreAuthentication = {\n isAuthenticated: async (env?: IConfigEnvironment): Promise<boolean> => {\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store.isAuthenticated(env);\n },\n\n authenticate: async (options: StoreAuthenticationInit = {}): Promise<ISessionInitInfo> => {\n const { env, force, updateEnvironment } = options;\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const result = await store.getStoreSessionToken(undefined, force);\n if (updateEnvironment && result.new) {\n await Events.Config.Environment.update(env || this.globalEnvironment as IConfigEnvironment);\n }\n return result;\n },\n\n /**\n * @returns The current store token or undefined if no store is set.\n */\n getToken: async (): Promise<string | undefined> => {\n const { store } = this;\n return store && store.sdk && store.sdk.token || undefined;\n },\n }\n\n global = {\n /**\n * Sets the store environment to be used globally by the application.\n * This initializes the store with the configuration.\n * \n * Note, this won't initialize the session with the store.\n * \n * @param env The environment to set. Note, it must have the `location` set.\n */\n set: async (env: IConfigEnvironment): Promise<void> => {\n if (!env.location) {\n throw new Error(`The location is required for store environment configuration.`);\n }\n this.globalEnvironment = env;\n const store = new HttpStore(env);\n this.store = store;\n },\n\n get: async (): Promise<IConfigEnvironment> => {\n const { globalEnvironment } = this;\n if (!globalEnvironment) {\n throw new Error(`The current environment is not set.`);\n }\n return globalEnvironment;\n },\n }\n\n protected handleInitializeEnvironment(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n const copy = { ...e.detail };\n e.detail.result = this.environment.init(copy);\n }\n\n protected handleStoreInfo(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.environment.readStoreInfo(e.detail.baseUri);\n }\n\n protected storeAuthHandler(input: Event): void {\n const e = input as CustomEvent<{ options?: StoreAuthenticationInit, result: Promise<ISessionInitInfo> }>;\n e.preventDefault();\n e.detail.result = this.auth.authenticate(e.detail.options);\n }\n\n protected storeIsAuthenticatedHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.isAuthenticated(e.detail.env);\n }\n\n protected setGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.set(e.detail.env);\n }\n\n protected getGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.get();\n }\n\n protected getTokenHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.getToken();\n }\n\n protected handleFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.file.list(space, kinds as ListFileKind[], options);\n }\n\n protected handleSharedFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.shared.list(space, kinds, options);\n }\n\n protected handleFileCreate(event: CustomEvent<{ meta: IFile, media?: unknown, opts?: IFileCreateOptions, result: Promise<ContextChangeRecord<IFile>> }>): void {\n event.preventDefault();\n const { meta, media, opts } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.create(meta, media, this.space, opts);\n } else {\n event.detail.result = this.getStore().sdk.file.createMeta(meta, this.space, opts);\n }\n }\n\n protected fileCreateDefaultHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.createDefaultFile(e.detail.name, e.detail.kind, e.detail.opts);\n }\n\n protected handleFileRead(event: CustomEvent<{ key: string, media: boolean, result: Promise<IFile | unknown> }>): void {\n event.preventDefault();\n const { media, key } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as true);\n } else {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as false);\n }\n }\n\n protected handleFilePatch(event: CustomEvent<{ key: string, id: string, value: Patch.JsonPatch, app: IApplication, media?: boolean, result: Promise<IPatchRevision> }>): void {\n event.preventDefault();\n const { key, id, value, app, media } = event.detail;\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n\n event.detail.result = this.getStore().sdk.file.patch(this.space, key, info, media as false);\n }\n\n protected handleFileDelete(event: CustomEvent<{ key: string, result: Promise<string> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.delete(this.space, event.detail.key);\n }\n\n protected handleFilePatchUser(event: CustomEvent<{ key: string, id: string, value: AccessOperation[], app: IApplication, result: Promise<void> }>): void {\n event.preventDefault();\n const { key, id, value } = event.detail;\n const info: IAccessPatchInfo = {\n patch: value,\n id,\n };\n event.detail.result = this.getStore().sdk.file.patchUsers(this.space, key, info);\n }\n\n protected handleListFileUsers(event: CustomEvent<{ key: string, result: Promise<ContextListResult<IUser>> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.listUsers(this.space, event.detail.key);\n }\n\n\n protected handlerMe(input: Event): void {\n const e = input as CustomEvent<{ result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.me();\n }\n\n protected handleUsersList(input: Event): void {\n const e = input as CustomEvent<{ options?: ContextListOptions, result: Promise<ContextListResult<IUser>> }>;\n e.preventDefault();\n e.detail.result = this.users.list(e.detail.options);\n }\n\n\n protected handleUserRead(input: Event): void {\n const e = input as CustomEvent<{ key: string, result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.read(e.detail.key);\n }\n\n protected handleHistoryCreate(input: Event): void {\n const e = input as CustomEvent<{ history: IHttpHistory, result: Promise<ContextChangeRecord<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.history };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.add(cp);\n }\n\n protected handleHistoryCreateBulk(input: Event): void {\n const e = input as CustomEvent<{ info: IHttpHistoryBulkAdd, result: Promise<IBulkOperationResult<ContextChangeRecord<IHttpHistory>>> }>;\n e.preventDefault();\n const cp = { ...e.detail.info };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.createBulk(cp);\n }\n\n protected handleHistoryDelete(input: Event): void {\n const e = input as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.deleteHistory(e.detail.key);\n }\n\n protected handleHistoryList(input: Event): void {\n const e = input as CustomEvent<{ init: HistoryListOptions, result: Promise<ContextListResult<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.init } as HistoryListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.list(cp);\n }\n\n protected handleHistoryRead(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.getStore().sdk.history.read(e.detail.key);\n }\n\n protected handleHistoryDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.deleteBulk(event.detail.keys);\n }\n\n protected handleHistoryClearSpace(event: CustomEvent<{ result: Promise<void>, space: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearSpace(event.detail.space);\n }\n\n protected handleHistoryClearProject(event: CustomEvent<{ result: Promise<void>, space: string, project: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearProject(event.detail.space, event.detail.project);\n }\n\n protected handleHistoryClearRequest(event: CustomEvent<{ result: Promise<void>, space: string, project: string, request: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearRequest(event.detail.space, event.detail.project, event.detail.request);\n }\n\n async deleteHistory(key: string): Promise<ContextDeleteRecord> {\n await this.getStore().sdk.history.delete(key);\n return {\n key,\n };\n }\n\n protected handleAddProjectExecution(event: CustomEvent<{ item: IProjectExecution, result: Promise<ContextChangeRecord<IProjectExecution>> }>): void {\n event.preventDefault();\n const { item } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.add(this.space, item);\n }\n\n protected handleProjectExecutionRead(event: CustomEvent<{ key: string, result: Promise<IProjectExecution> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.read(key);\n }\n\n protected handleProjectExecutionList(event: CustomEvent<{ options: IProjectExecutionListOptions, result: Promise<ContextListResult<IProjectExecution>> }>): void {\n event.preventDefault();\n const { options } = event.detail;\n const cp = { ...options };\n if (!cp.space) {\n cp.space = this.space;\n }\n event.detail.result = this.getStore().sdk.projectExecution.list(cp);\n }\n\n protected handleProjectExecutionDelete(event: CustomEvent<{ key: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.delete(key);\n }\n\n protected handleProjectExecutionDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n const { keys } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.deleteBulk(keys);\n }\n\n protected handleProjectExecutionClearSpace(event: CustomEvent<{ space: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearSpace(space);\n }\n\n protected handleProjectExecutionClearProject(event: CustomEvent<{ space: string, project: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearProject(space, project);\n }\n\n protected handleProjectExecutionClearFolder(event: CustomEvent<{ space: string, project: string, folder: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project, folder } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearParent(space, project, folder);\n }\n\n /**\n * A logic that creates an empty (default) file from its name and the file kind.\n * \n * @param name The name of the file.\n * @param kind The kind of the file.\n * @param opts Optional create options\n * @returns The key of the created file.\n */\n async createDefaultFile(space: string, name: string, kind: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n switch (kind) {\n case ProjectKind: return this.createDefaultProject(space, name, opts);\n case FolderKind: return this.createDefaultFolder(space, name, opts);\n case DataFileKind: return this.createDefaultDataNamespace(space, name, opts);\n default: \n throw new Error(`Unrecognized file kind: ${kind}`);\n }\n }\n\n /**\n * Creates a default HttpProject from a name\n * \n * @param name The name of the project\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultProject(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = HttpProject.fromName(name);\n const file = Project.fromProject(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default DataNamespace from a name\n * \n * @param name The name of the DataNamespace\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultDataNamespace(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = DataNamespace.fromName(name);\n const file = DataFile.fromDataNamespace(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default Folder from a name\n * \n * @param name The name of the space\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultFolder(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const folder = Folder.fromName(name, space);\n return store.sdk.file.createMeta(folder.toJSON(), space, opts);\n }\n\n getStore(): HttpStore {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store;\n }\n\n spaces = {\n list: (options?: ContextListOptions): Promise<ContextListResult<ISpace>> => this.getStore().sdk.spaces.list(options),\n add: (nameOrObject: string | ISpace): Promise<ContextChangeRecord<ISpace>> => {\n let space: ISpace;\n if (typeof nameOrObject === 'string') {\n space = Space.fromName(nameOrObject).toJSON();\n } else {\n space = nameOrObject as ISpace;\n }\n return this.getStore().sdk.spaces.add(space);\n },\n read: (key: string): Promise<ISpace> => this.getStore().sdk.spaces.read(key),\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.spaces.delete(key);\n return {\n key,\n kind: SpaceKind,\n };\n },\n addUser: (space: string, otherUserKey: string, role: PermissionRole, expires?: number): Promise<void> => this.getStore().sdk.spaces.addUser(this.space || space, otherUserKey, role, expires),\n removeUser: (space: string, otherUserKey: string): Promise<void> => this.getStore().sdk.spaces.removeUser(this.space || space, otherUserKey),\n patchUsers: (space: string, value: IAccessPatchInfo): Promise<void> => this.getStore().sdk.spaces.patchUsers(this.space || space, value),\n }\n\n certificates = {\n add: (value: HttpCertificate, space: string): Promise<ContextChangeRecord<HttpCertificate>> => this.getStore().sdk.certificates.add(value, this.space || space),\n addBulk: (values: HttpCertificate[], space: string): Promise<IBulkOperationResult<ContextChangeRecord<HttpCertificate>>> => this.getStore().sdk.certificates.addBulk(values, this.space || space),\n read: (key: string): Promise<HttpCertificate> => this.getStore().sdk.certificates.read(key),\n list: (options?: ContextSpaceListOptions): Promise<ContextListResult<HttpCertificate>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.certificates.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.certificates.delete(key);\n return {\n key,\n };\n },\n deleteBulk: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.certificates.deleteBulk(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.certificates.empty(this.space || space),\n }\n\n trash = {\n add: (entry: TrashEntryCreate, space: string): Promise<ContextChangeRecord<TrashEntry>> => this.getStore().sdk.trash.add(entry, this.space || space),\n list: (options: ContextSpaceListOptions): Promise<ContextListResult<TrashEntry>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.trash.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.trash.delete(key);\n return { key };\n },\n batchDelete: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.trash.batchDelete(keys),\n restore: (key: string): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.trash.restore(key),\n batchRestore: (keys: string[]): Promise<IBulkOperationResult<ContextChangeRecord<IFile>>> => this.getStore().sdk.trash.batchDelete(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.trash.empty(this.space || space),\n }\n\n revisions = {\n list: (key: string, options: ContextSpaceListOptions): Promise<ContextListResult<IRevision>> => this.getStore().sdk.revisions.list(key, options),\n }\n\n media = {\n add: (key: string, contents: unknown, mime: string): Promise<void> => this.getStore().sdk.file.createMedia(contents, this.space, key, { mime }),\n read: (key: string): Promise<unknown> => this.getStore().sdk.file.read(this.space, key, true),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, true),\n }\n\n files = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.file.list(this.space, kinds, options),\n add: (input: IFile, opts?: FileAddOptions): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.file.createMeta(input, this.space, opts),\n read: (key: string): Promise<IFile> => this.getStore().sdk.file.read(this.space, key, false),\n readBulk: (keys: string[]): Promise<IBulkOperationResult<IFile>> => this.getStore().sdk.file.readBulk(this.space, keys),\n delete: (key: string): Promise<string> => this.getStore().sdk.file.delete(this.space, key),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, false),\n breadcrumbs: (key: string): Promise<ContextListResult<FileBreadcrumb>> => this.getStore().sdk.file.breadcrumbs(this.space, key),\n }\n\n shared = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.shared.list(this.space, kinds, options),\n }\n\n users = {\n list: (options?: ContextListOptions): Promise<ContextListResult<IUser>> => this.getStore().sdk.user.list(options),\n me: (): Promise<IUser> => this.getStore().sdk.user.me(),\n read: (key: string): Promise<IUser> => this.getStore().sdk.user.read(key),\n }\n\n protected handleCertificateList(event: Event): void {\n const e = event as ContextListEvent<ICertificate>;\n e.preventDefault();\n const options: ContextSpaceListOptions = {\n ...e.detail,\n space: this.space,\n }\n e.detail.result = this.certificates.list(options);\n }\n\n protected handleCertificateRead(event: Event): void {\n const e = event as ContextReadEvent<ICertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.read(e.detail.key);\n }\n\n protected handleCertificateDelete(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.certificates.delete(e.detail.key);\n }\n\n protected handleCertificateInsert(event: Event): void {\n const e = event as ContextUpdateEvent<HttpCertificate, HttpCertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.add(e.detail.item, this.space);\n }\n\n async observeCertificates(): Promise<void> {\n await this.observePath(RouteBuilder.certificates());\n }\n\n async unobserveCertificates(): Promise<void> {\n await this.unobservePath(RouteBuilder.certificates());\n }\n\n async observeSpaces(): Promise<void> {\n await this.observePath(RouteBuilder.spaces());\n }\n\n async unobserveSpaces(): Promise<void> {\n await this.unobservePath(RouteBuilder.spaces());\n }\n\n async observeFiles(): Promise<void> {\n await this.observePath(RouteBuilder.files());\n }\n\n async unobserveFiles(): Promise<void> {\n await this.unobservePath(RouteBuilder.files());\n }\n\n async observeFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.observePath(`${path}?alt=${alt}`);\n }\n\n async unobserveFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.unobservePath(`${path}?alt=${alt}`);\n }\n\n async observeHistory(): Promise<void> {\n await this.observePath(RouteBuilder.history());\n }\n\n async unobserveHistory(): Promise<void> {\n await this.unobservePath(RouteBuilder.history());\n }\n\n async observeProjectExecutions(): Promise<void> {\n await this.observePath(RouteBuilder.projectExecutions());\n }\n\n async unobserveProjectExecutions(): Promise<void> {\n await this.unobservePath(RouteBuilder.projectExecutions());\n }\n\n async observeTrash(): Promise<void> {\n await this.observePath(RouteBuilder.trash());\n }\n\n async unobserveTrash(): Promise<void> {\n await this.unobservePath(RouteBuilder.trash());\n }\n\n async sendSocket(ws: WebSocket, command: unknown): Promise<void> {\n ws.send(JSON.stringify(command));\n }\n\n protected async observePath(path: string): Promise<void> {\n const { space } = this;\n const url = new URL(path, 'http://localhost');\n url.searchParams.set('space', space);\n const fullPath = `${url.pathname}${url.search}`\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.observe,\n kind: BackendCommandKind,\n path: fullPath,\n };\n await this.sendSocket(socket, cmd);\n }\n\n protected async unobservePath(path: string): Promise<void> {\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.unobserve,\n kind: BackendCommandKind,\n path,\n };\n await this.sendSocket(socket, cmd);\n }\n\n eventsSocket?: WebSocket;\n\n async getEventsSocket(): Promise<WebSocket> {\n if (!this.eventsSocket) {\n const store = this.getStore();\n const { token } = store.sdk;\n const url = store.sdk.getUrl('/events');\n this.eventsSocket = await store.sdk.ws.createAndConnect(url.toString(), token) as WebSocket;\n this.eventsSocket.addEventListener('message', this.storeEventHandler.bind(this));\n }\n return this.eventsSocket;\n }\n\n async closeEventsSocket(): Promise<void> {\n const { eventsSocket } = this;\n if (!eventsSocket) {\n return;\n }\n this.eventsSocket = undefined;\n eventsSocket.close();\n }\n\n protected storeEventHandler(e: MessageEvent): void {\n const event = JSON.parse(e.data) as BroadcastEvent | BackendErrorEvent;\n if (event.type === 'error') {\n // TODO: Report an error somehow\n throw new Error(event.cause);\n }\n if (event.path === RouteBuilder.spaces()) {\n this.spacesChannel.postMessage(event);\n } else if (event.path === RouteBuilder.files()) {\n this.filesChannel.postMessage(event);\n } else if (event.path.startsWith(RouteBuilder.files())) {\n const typed = event as BroadcastFileData & BroadcastEvent;\n if (typed.alt === 'media') {\n this.mediaChannel.postMessage(event);\n } else {\n this.filesChannel.postMessage(event);\n }\n } else if (event.path === RouteBuilder.trash()) {\n this.trashChannel.postMessage(event);\n } else if (event.path === RouteBuilder.history()) {\n this.handleHistoryBroadcast(event);\n this.historyChannel.postMessage(event);\n } else if (event.path === RouteBuilder.projectExecutions()) {\n this.handleProjectRunBroadcast(event);\n this.projectExeChannel.postMessage(event);\n } else if (event.path === RouteBuilder.certificates()) {\n this.handleCertificateBroadcast(event);\n this.certificatesChannel.postMessage(event);\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Broadcast path not handled`, event.path, event)\n }\n }\n\n protected handleHistoryBroadcast(event: BroadcastEvent): void {\n if (event.space !== this.space) {\n return;\n }\n switch (event.operation) {\n case 'created': this.handleHistoryCreated(event as HistoryCreatedBroadcastEvent); break;\n case 'deleted': this.handleHistoryDeleted(event as HistoryDeletedBroadcastEvent); break;\n default:\n }\n }\n\n protected handleHistoryCreated(event: HistoryCreatedBroadcastEvent): void {\n const item = event.data as IHttpHistory;\n Events.Store.History.State.create({\n key: event.key,\n item,\n kind: item.kind,\n parent: event.request,\n space: event.space,\n });\n }\n\n protected handleHistoryDeleted(event: HistoryDeletedBroadcastEvent): void {\n Events.Store.History.State.delete({\n key: event.key,\n kind: event.kind,\n parent: event.request,\n });\n }\n\n protected handleProjectRunBroadcast(event: BroadcastEvent): void {\n if (event.space !== this.space) {\n return;\n }\n switch (event.operation) {\n case 'created': this.handleProjectRunCreated(event as ProjectExecutionCreatedBroadcastEvent); break;\n case 'deleted': this.handleProjectRunDeleted(event as ProjectExecutionDeleteBroadcastEvent); break;\n default:\n }\n }\n\n protected handleProjectRunCreated(event: ProjectExecutionCreatedBroadcastEvent): void {\n const item = event.data as IProjectExecution;\n Events.Store.ProjectRuns.State.create({\n key: event.key,\n item,\n kind: item.kind,\n parent: event.project,\n space: event.space,\n });\n }\n\n protected handleProjectRunDeleted(event: ProjectExecutionDeleteBroadcastEvent): void {\n Events.Store.ProjectRuns.State.delete({\n key: event.key,\n kind: event.kind,\n parent: event.project,\n });\n }\n\n protected handleCertificateBroadcast(event: BroadcastEvent): void {\n if (event.space !== this.space) {\n return;\n }\n switch (event.operation) {\n case 'created': this.handleCertificateCreated((event as BroadcastCreatedEvent).data as ICertificate); break;\n case 'deleted': this.handleCertificateDeleted(event as DeletedBroadcastEvent); break;\n default:\n }\n }\n\n protected handleCertificateCreated(item: ICertificate): void {\n Events.HttpClient.Model.Certificate.State.update({\n key: item.key,\n kind: item.kind,\n item,\n parent: this.space,\n });\n }\n\n protected handleCertificateDeleted(event: DeletedBroadcastEvent): void {\n Events.HttpClient.Model.Certificate.State.delete({\n key: event.key,\n kind: event.kind,\n parent: this.space,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/StoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable no-dupe-class-members */\nimport { \n IBackendInfo, ProjectKind, FolderKind, DataFileKind, ContextListOptions, ContextListResult, IFile,\n IFileCreateOptions, AccessOperation, IUser, \n Folder, HttpProject, IAccessPatchInfo, IPatchInfo, IPatchRevision, IApplication, \n IHttpHistory, IHttpHistoryBulkAdd, HistoryListOptions, Project, ListFileKind, DataNamespace, DataFile, \n IBulkOperationResult, ContextChangeRecord,\n ContextDeleteEvent,\n ContextDeleteRecord,\n IProjectExecution,\n IProjectExecutionListOptions,\n ISpace,\n SpaceKind,\n Space,\n PermissionRole,\n HttpCertificate,\n ContextSpaceListOptions,\n IRevision,\n TrashEntry,\n TrashEntryCreate,\n ContextDeleteBulkEvent,\n ICertificate,\n ContextListEvent,\n ContextReadEvent,\n ContextUpdateEvent,\n FileAddOptions,\n FileBreadcrumb,\n IBackendObserveCommand,\n BackendCommandType,\n BackendCommandKind,\n RouteBuilder,\n BroadcastEvent,\n BackendErrorEvent,\n BroadcastFileData,\n HistoryDeletedBroadcastEvent,\n HistoryCreatedBroadcastEvent,\n ProjectExecutionCreatedBroadcastEvent,\n ProjectExecutionDeleteBroadcastEvent,\n DeletedBroadcastEvent,\n BroadcastCreatedEvent,\n} from '@api-client/core/build/browser.js';\nimport { Patch } from '@api-client/json';\nimport { PlatformBindings } from './PlatformBindings.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { IConfigEnvironment, IConfigInit } from '../../lib/config/Config.js';\nimport { ISessionInitInfo, HttpStore } from '../../store/HttpStore.js';\nimport { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';\n\nexport interface EnvironmentSettings {\n /**\n * Initializes the store configuration from the init data.\n * \n * @param init The init data for the store environment.\n */\n init(init: IConfigInit): Promise<void>;\n\n /**\n * Reads the backend information about the store.\n * \n * @param baseUri Store's base URI.\n */\n readStoreInfo(baseUri: string): Promise<IBackendInfo>;\n}\n\nexport interface StoreAuthenticationInit {\n /**\n * The environment to authenticate. Default to globally set environment.\n */\n env?: IConfigEnvironment; \n /**\n * Whether to update environment in application configuration after authentication.\n */\n updateEnvironment?: boolean;\n /**\n * Whether to force authentication even when the user is already authenticated.\n */\n force?: boolean;\n}\n\ninterface StoreAuthentication {\n /**\n * Checks whether the user is authenticated in the store for the environment\n * @param env Optional environment if different than the global environment\n * @returns True if the user is authenticated in the store.\n */\n isAuthenticated(env?: IConfigEnvironment): Promise<boolean>;\n\n /**\n * Authenticates the global environment with the store.\n * \n * @param updateEnvironment When true it stores the environment data when the session was renewed.\n */\n authenticate(options?: StoreAuthenticationInit): Promise<ISessionInitInfo>;\n\n getToken(): Promise<string | undefined>;\n}\n\n/**\n * The base class for API store bindings.\n */\nexport abstract class StoreBindings extends PlatformBindings {\n /**\n * This is used by the client side (main thread or the renderer process)\n * to define the current space the app is using. \n * This space is used in some APIs instead of adding the space to the events system.\n */\n space = '';\n\n /**\n * The currently used environment for all store calls.\n * This can be changed via the `Events.Global.setEnv()`\n */\n globalEnvironment?: IConfigEnvironment;\n\n /**\n * Initialized with the `globalEnvironment`.\n * The store with initialized SDK for the global environment\n */\n store?: HttpStore;\n\n filesChannel = new BroadcastChannel(StoreBroadcast.files);\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);\n\n trashChannel = new BroadcastChannel(StoreBroadcast.trash);\n\n historyChannel = new BroadcastChannel(StoreBroadcast.history);\n\n projectExeChannel = new BroadcastChannel(StoreBroadcast.projectRuns);\n\n certificatesChannel = new BroadcastChannel(StoreBroadcast.certificates);\n\n async initializeStore(): Promise<void> {\n // ...\n }\n\n async initialize(): Promise<void> {\n const target = document.body;\n\n window.addEventListener(EventTypes.Store.initEnvironment, this.handleInitializeEnvironment.bind(this));\n window.addEventListener(EventTypes.Store.info, this.handleStoreInfo.bind(this));\n window.addEventListener(EventTypes.Store.Global.setEnv, this.setGlobalEnvHandler.bind(this));\n window.addEventListener(EventTypes.Store.Global.getEnv, this.getGlobalEnvHandler.bind(this));\n \n // Auth\n window.addEventListener(EventTypes.Store.Auth.authenticate, this.storeAuthHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.isAuthenticated, this.storeIsAuthenticatedHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.getToken, this.getTokenHandler.bind(this));\n\n // Files\n window.addEventListener(EventTypes.Store.File.list, this.handleFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listShared, this.handleSharedFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.create, this.handleFileCreate.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.createDefault, this.fileCreateDefaultHandler.bind(this));\n window.addEventListener(EventTypes.Store.File.read, this.handleFileRead.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patch, this.handleFilePatch.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.delete, this.handleFileDelete.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patchUsers, this.handleFilePatchUser.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listUsers, this.handleListFileUsers.bind(this) as EventListener);\n\n // User\n window.addEventListener(EventTypes.Store.User.me, this.handlerMe.bind(this));\n window.addEventListener(EventTypes.Store.User.list, this.handleUsersList.bind(this));\n window.addEventListener(EventTypes.Store.User.read, this.handleUserRead.bind(this));\n\n // history\n target.addEventListener(EventTypes.Store.History.create, this.handleHistoryCreate.bind(this));\n target.addEventListener(EventTypes.Store.History.createBulk, this.handleHistoryCreateBulk.bind(this));\n target.addEventListener(EventTypes.Store.History.delete, this.handleHistoryDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.deleteBulk, this.handleHistoryDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.list, this.handleHistoryList.bind(this));\n target.addEventListener(EventTypes.Store.History.read, this.handleHistoryRead.bind(this));\n target.addEventListener(EventTypes.Store.History.clearSpace, this.handleHistoryClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearProject, this.handleHistoryClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearRequest, this.handleHistoryClearRequest.bind(this) as EventListener);\n\n // project runs\n target.addEventListener(EventTypes.Store.ProjectRuns.add, this.handleAddProjectExecution.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.list, this.handleProjectExecutionList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.read, this.handleProjectExecutionRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.delete, this.handleProjectExecutionDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.deleteBulk, this.handleProjectExecutionDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearSpace, this.handleProjectExecutionClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearProject, this.handleProjectExecutionClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this) as EventListener);\n\n // certificates\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.list, this.handleCertificateList.bind(this) as EventListener);\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.HttpClient.Model.Certificate.insert, this.handleCertificateInsert.bind(this) as EventListener);\n }\n\n abstract environment: EnvironmentSettings;\n\n auth: StoreAuthentication = {\n isAuthenticated: async (env?: IConfigEnvironment): Promise<boolean> => {\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store.isAuthenticated(env);\n },\n\n authenticate: async (options: StoreAuthenticationInit = {}): Promise<ISessionInitInfo> => {\n const { env, force, updateEnvironment } = options;\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const result = await store.getStoreSessionToken(undefined, force);\n if (updateEnvironment && result.new) {\n await Events.Config.Environment.update(env || this.globalEnvironment as IConfigEnvironment);\n }\n return result;\n },\n\n /**\n * @returns The current store token or undefined if no store is set.\n */\n getToken: async (): Promise<string | undefined> => {\n const { store } = this;\n return store && store.sdk && store.sdk.token || undefined;\n },\n }\n\n global = {\n /**\n * Sets the store environment to be used globally by the application.\n * This initializes the store with the configuration.\n * \n * Note, this won't initialize the session with the store.\n * \n * @param env The environment to set. Note, it must have the `location` set.\n */\n set: async (env: IConfigEnvironment): Promise<void> => {\n if (!env.location) {\n throw new Error(`The location is required for store environment configuration.`);\n }\n this.globalEnvironment = env;\n const store = new HttpStore(env);\n this.store = store;\n },\n\n get: async (): Promise<IConfigEnvironment> => {\n const { globalEnvironment } = this;\n if (!globalEnvironment) {\n throw new Error(`The current environment is not set.`);\n }\n return globalEnvironment;\n },\n }\n\n protected handleInitializeEnvironment(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n const copy = { ...e.detail };\n e.detail.result = this.environment.init(copy);\n }\n\n protected handleStoreInfo(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.environment.readStoreInfo(e.detail.baseUri);\n }\n\n protected storeAuthHandler(input: Event): void {\n const e = input as CustomEvent<{ options?: StoreAuthenticationInit, result: Promise<ISessionInitInfo> }>;\n e.preventDefault();\n e.detail.result = this.auth.authenticate(e.detail.options);\n }\n\n protected storeIsAuthenticatedHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.isAuthenticated(e.detail.env);\n }\n\n protected setGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.set(e.detail.env);\n }\n\n protected getGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.get();\n }\n\n protected getTokenHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.getToken();\n }\n\n protected handleFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.file.list(space, kinds as ListFileKind[], options);\n }\n\n protected handleSharedFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.shared.list(space, kinds, options);\n }\n\n protected handleFileCreate(event: CustomEvent<{ meta: IFile, media?: unknown, opts?: IFileCreateOptions, result: Promise<ContextChangeRecord<IFile>> }>): void {\n event.preventDefault();\n const { meta, media, opts } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.create(meta, media, this.space, opts);\n } else {\n event.detail.result = this.getStore().sdk.file.createMeta(meta, this.space, opts);\n }\n }\n\n protected fileCreateDefaultHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.createDefaultFile(e.detail.name, e.detail.kind, e.detail.opts);\n }\n\n protected handleFileRead(event: CustomEvent<{ key: string, media: boolean, result: Promise<IFile | unknown> }>): void {\n event.preventDefault();\n const { media, key } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as true);\n } else {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as false);\n }\n }\n\n protected handleFilePatch(event: CustomEvent<{ key: string, id: string, value: Patch.JsonPatch, app: IApplication, media?: boolean, result: Promise<IPatchRevision> }>): void {\n event.preventDefault();\n const { key, id, value, app, media } = event.detail;\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n\n event.detail.result = this.getStore().sdk.file.patch(this.space, key, info, media as false);\n }\n\n protected handleFileDelete(event: CustomEvent<{ key: string, result: Promise<string> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.delete(this.space, event.detail.key);\n }\n\n protected handleFilePatchUser(event: CustomEvent<{ key: string, id: string, value: AccessOperation[], app: IApplication, result: Promise<void> }>): void {\n event.preventDefault();\n const { key, id, value } = event.detail;\n const info: IAccessPatchInfo = {\n patch: value,\n id,\n };\n event.detail.result = this.getStore().sdk.file.patchUsers(this.space, key, info);\n }\n\n protected handleListFileUsers(event: CustomEvent<{ key: string, result: Promise<ContextListResult<IUser>> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.listUsers(this.space, event.detail.key);\n }\n\n\n protected handlerMe(input: Event): void {\n const e = input as CustomEvent<{ result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.me();\n }\n\n protected handleUsersList(input: Event): void {\n const e = input as CustomEvent<{ options?: ContextListOptions, result: Promise<ContextListResult<IUser>> }>;\n e.preventDefault();\n e.detail.result = this.users.list(e.detail.options);\n }\n\n\n protected handleUserRead(input: Event): void {\n const e = input as CustomEvent<{ key: string, result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.read(e.detail.key);\n }\n\n protected handleHistoryCreate(input: Event): void {\n const e = input as CustomEvent<{ history: IHttpHistory, result: Promise<ContextChangeRecord<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.history };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.add(cp);\n }\n\n protected handleHistoryCreateBulk(input: Event): void {\n const e = input as CustomEvent<{ info: IHttpHistoryBulkAdd, result: Promise<IBulkOperationResult<ContextChangeRecord<IHttpHistory>>> }>;\n e.preventDefault();\n const cp = { ...e.detail.info };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.createBulk(cp);\n }\n\n protected handleHistoryDelete(input: Event): void {\n const e = input as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.deleteHistory(e.detail.key);\n }\n\n protected handleHistoryList(input: Event): void {\n const e = input as CustomEvent<{ init: HistoryListOptions, result: Promise<ContextListResult<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.init } as HistoryListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.list(cp);\n }\n\n protected handleHistoryRead(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.getStore().sdk.history.read(e.detail.key);\n }\n\n protected handleHistoryDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.deleteBulk(event.detail.keys);\n }\n\n protected handleHistoryClearSpace(event: CustomEvent<{ result: Promise<void>, space: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearSpace(event.detail.space);\n }\n\n protected handleHistoryClearProject(event: CustomEvent<{ result: Promise<void>, space: string, project: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearProject(event.detail.space, event.detail.project);\n }\n\n protected handleHistoryClearRequest(event: CustomEvent<{ result: Promise<void>, space: string, project: string, request: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearRequest(event.detail.space, event.detail.project, event.detail.request);\n }\n\n async deleteHistory(key: string): Promise<ContextDeleteRecord> {\n await this.getStore().sdk.history.delete(key);\n return {\n key,\n };\n }\n\n protected handleAddProjectExecution(event: CustomEvent<{ item: IProjectExecution, result: Promise<ContextChangeRecord<IProjectExecution>> }>): void {\n event.preventDefault();\n const { item } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.add(this.space, item);\n }\n\n protected handleProjectExecutionRead(event: CustomEvent<{ key: string, result: Promise<IProjectExecution> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.read(key);\n }\n\n protected handleProjectExecutionList(event: CustomEvent<{ options: IProjectExecutionListOptions, result: Promise<ContextListResult<IProjectExecution>> }>): void {\n event.preventDefault();\n const { options } = event.detail;\n const cp = { ...options };\n if (!cp.space) {\n cp.space = this.space;\n }\n event.detail.result = this.getStore().sdk.projectExecution.list(cp);\n }\n\n protected handleProjectExecutionDelete(event: CustomEvent<{ key: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.delete(key);\n }\n\n protected handleProjectExecutionDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n const { keys } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.deleteBulk(keys);\n }\n\n protected handleProjectExecutionClearSpace(event: CustomEvent<{ space: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearSpace(space);\n }\n\n protected handleProjectExecutionClearProject(event: CustomEvent<{ space: string, project: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearProject(space, project);\n }\n\n protected handleProjectExecutionClearFolder(event: CustomEvent<{ space: string, project: string, folder: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project, folder } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearParent(space, project, folder);\n }\n\n /**\n * A logic that creates an empty (default) file from its name and the file kind.\n * \n * @param name The name of the file.\n * @param kind The kind of the file.\n * @param opts Optional create options\n * @returns The key of the created file.\n */\n async createDefaultFile(space: string, name: string, kind: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n switch (kind) {\n case ProjectKind: return this.createDefaultProject(space, name, opts);\n case FolderKind: return this.createDefaultFolder(space, name, opts);\n case DataFileKind: return this.createDefaultDataNamespace(space, name, opts);\n default: \n throw new Error(`Unrecognized file kind: ${kind}`);\n }\n }\n\n /**\n * Creates a default HttpProject from a name\n * \n * @param name The name of the project\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultProject(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = HttpProject.fromName(name);\n const file = Project.fromProject(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default DataNamespace from a name\n * \n * @param name The name of the DataNamespace\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultDataNamespace(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = DataNamespace.fromName(name);\n const file = DataFile.fromDataNamespace(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default Folder from a name\n * \n * @param name The name of the space\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultFolder(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const folder = Folder.fromName(name, space);\n return store.sdk.file.createMeta(folder.toJSON(), space, opts);\n }\n\n getStore(): HttpStore {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store;\n }\n\n spaces = {\n list: (options?: ContextListOptions): Promise<ContextListResult<ISpace>> => this.getStore().sdk.spaces.list(options),\n add: (nameOrObject: string | ISpace): Promise<ContextChangeRecord<ISpace>> => {\n let space: ISpace;\n if (typeof nameOrObject === 'string') {\n space = Space.fromName(nameOrObject).toJSON();\n } else {\n space = nameOrObject as ISpace;\n }\n return this.getStore().sdk.spaces.add(space);\n },\n read: (key: string): Promise<ISpace> => this.getStore().sdk.spaces.read(key),\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.spaces.delete(key);\n return {\n key,\n kind: SpaceKind,\n };\n },\n addUser: (space: string, otherUserKey: string, role: PermissionRole, expires?: number): Promise<void> => this.getStore().sdk.spaces.addUser(this.space || space, otherUserKey, role, expires),\n removeUser: (space: string, otherUserKey: string): Promise<void> => this.getStore().sdk.spaces.removeUser(this.space || space, otherUserKey),\n patchUsers: (space: string, value: IAccessPatchInfo): Promise<void> => this.getStore().sdk.spaces.patchUsers(this.space || space, value),\n }\n\n certificates = {\n add: (value: HttpCertificate, space: string): Promise<ContextChangeRecord<HttpCertificate>> => this.getStore().sdk.certificates.add(value, this.space || space),\n addBulk: (values: HttpCertificate[], space: string): Promise<IBulkOperationResult<ContextChangeRecord<HttpCertificate>>> => this.getStore().sdk.certificates.addBulk(values, this.space || space),\n read: (key: string): Promise<HttpCertificate> => this.getStore().sdk.certificates.read(key),\n list: (options?: ContextSpaceListOptions): Promise<ContextListResult<HttpCertificate>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.certificates.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.certificates.delete(key);\n return {\n key,\n };\n },\n deleteBulk: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.certificates.deleteBulk(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.certificates.empty(this.space || space),\n }\n\n trash = {\n add: (entry: TrashEntryCreate, space: string): Promise<ContextChangeRecord<TrashEntry>> => this.getStore().sdk.trash.add(entry, this.space || space),\n list: (options: ContextSpaceListOptions): Promise<ContextListResult<TrashEntry>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.trash.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.trash.delete(key);\n return { key };\n },\n batchDelete: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.trash.batchDelete(keys),\n restore: (key: string): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.trash.restore(key),\n batchRestore: (keys: string[]): Promise<IBulkOperationResult<ContextChangeRecord<IFile>>> => this.getStore().sdk.trash.batchDelete(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.trash.empty(this.space || space),\n }\n\n revisions = {\n list: (key: string, options: ContextSpaceListOptions): Promise<ContextListResult<IRevision>> => this.getStore().sdk.revisions.list(key, options),\n }\n\n media = {\n add: (key: string, contents: unknown, mime: string): Promise<void> => this.getStore().sdk.file.createMedia(contents, this.space, key, { mime }),\n read: (key: string): Promise<unknown> => this.getStore().sdk.file.read(this.space, key, true),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, true),\n }\n\n files = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.file.list(this.space, kinds, options),\n add: (input: IFile, opts?: FileAddOptions): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.file.createMeta(input, this.space, opts),\n read: (key: string): Promise<IFile> => this.getStore().sdk.file.read(this.space, key, false),\n readBulk: (keys: string[]): Promise<IBulkOperationResult<IFile>> => this.getStore().sdk.file.readBulk(this.space, keys),\n delete: (key: string): Promise<string> => this.getStore().sdk.file.delete(this.space, key),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, false),\n breadcrumbs: (key: string): Promise<ContextListResult<FileBreadcrumb>> => this.getStore().sdk.file.breadcrumbs(this.space, key),\n }\n\n shared = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.shared.list(this.space, kinds, options),\n }\n\n users = {\n list: (options?: ContextListOptions): Promise<ContextListResult<IUser>> => this.getStore().sdk.user.list(options),\n me: (): Promise<IUser> => this.getStore().sdk.user.me(),\n read: (key: string): Promise<IUser> => this.getStore().sdk.user.read(key),\n }\n\n protected handleCertificateList(event: Event): void {\n const e = event as ContextListEvent<ICertificate>;\n e.preventDefault();\n const options: ContextSpaceListOptions = {\n ...e.detail,\n space: this.space,\n }\n e.detail.result = this.certificates.list(options);\n }\n\n protected handleCertificateRead(event: Event): void {\n const e = event as ContextReadEvent<ICertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.read(e.detail.key);\n }\n\n protected handleCertificateDelete(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.certificates.delete(e.detail.key);\n }\n\n protected handleCertificateInsert(event: Event): void {\n const e = event as ContextUpdateEvent<HttpCertificate, HttpCertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.add(e.detail.item, this.space);\n }\n\n async observeCertificates(): Promise<void> {\n await this.observePath(RouteBuilder.certificates());\n }\n\n async unobserveCertificates(): Promise<void> {\n await this.unobservePath(RouteBuilder.certificates());\n }\n\n async observeSpaces(): Promise<void> {\n await this.observePath(RouteBuilder.spaces());\n }\n\n async unobserveSpaces(): Promise<void> {\n await this.unobservePath(RouteBuilder.spaces());\n }\n\n async observeFiles(): Promise<void> {\n await this.observePath(RouteBuilder.files());\n }\n\n async unobserveFiles(): Promise<void> {\n await this.unobservePath(RouteBuilder.files());\n }\n\n async observeFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.observePath(`${path}?alt=${alt}`);\n }\n\n async unobserveFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.unobservePath(`${path}?alt=${alt}`);\n }\n\n async observeHistory(): Promise<void> {\n await this.observePath(RouteBuilder.history());\n }\n\n async unobserveHistory(): Promise<void> {\n await this.unobservePath(RouteBuilder.history());\n }\n\n async observeProjectExecutions(): Promise<void> {\n await this.observePath(RouteBuilder.projectExecutions());\n }\n\n async unobserveProjectExecutions(): Promise<void> {\n await this.unobservePath(RouteBuilder.projectExecutions());\n }\n\n async observeTrash(): Promise<void> {\n await this.observePath(RouteBuilder.trash());\n }\n\n async unobserveTrash(): Promise<void> {\n await this.unobservePath(RouteBuilder.trash());\n }\n\n async sendSocket(ws: WebSocket, command: unknown): Promise<void> {\n ws.send(JSON.stringify(command));\n }\n\n protected async observePath(path: string): Promise<void> {\n const { space } = this;\n const url = new URL(path, 'http://localhost');\n url.searchParams.set('space', space);\n const fullPath = `${url.pathname}${url.search}`\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.observe,\n kind: BackendCommandKind,\n path: fullPath,\n };\n await this.sendSocket(socket, cmd);\n }\n\n protected async unobservePath(path: string): Promise<void> {\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.unobserve,\n kind: BackendCommandKind,\n path,\n };\n await this.sendSocket(socket, cmd);\n }\n\n eventsSocket?: WebSocket;\n\n async getEventsSocket(): Promise<WebSocket> {\n if (!this.eventsSocket) {\n const store = this.getStore();\n const { token } = store.sdk;\n const url = store.sdk.getUrl('/events');\n this.eventsSocket = await store.sdk.ws.createAndConnect(url.toString(), token) as WebSocket;\n this.eventsSocket.addEventListener('message', this.storeEventHandler.bind(this));\n }\n return this.eventsSocket;\n }\n\n async closeEventsSocket(): Promise<void> {\n const { eventsSocket } = this;\n if (!eventsSocket) {\n return;\n }\n this.eventsSocket = undefined;\n eventsSocket.close();\n }\n\n protected storeEventHandler(e: MessageEvent): void {\n const event = JSON.parse(e.data) as BroadcastEvent | BackendErrorEvent;\n if (event.type === 'error') {\n // TODO: Report an error somehow\n throw new Error(event.cause);\n }\n if (event.path === RouteBuilder.spaces()) {\n this.spacesChannel.postMessage(event);\n } else if (event.path === RouteBuilder.files()) {\n this.filesChannel.postMessage(event);\n } else if (event.path.startsWith(RouteBuilder.files())) {\n const typed = event as BroadcastFileData & BroadcastEvent;\n if (typed.alt === 'media') {\n this.mediaChannel.postMessage(event);\n } else {\n this.filesChannel.postMessage(event);\n }\n } else if (event.path === RouteBuilder.trash()) {\n this.trashChannel.postMessage(event);\n } else if (event.path === RouteBuilder.history()) {\n this.handleHistoryBroadcast(event);\n this.historyChannel.postMessage(event);\n } else if (event.path === RouteBuilder.projectExecutions()) {\n this.handleProjectRunBroadcast(event);\n this.projectExeChannel.postMessage(event);\n } else if (event.path === RouteBuilder.certificates()) {\n this.handleCertificateBroadcast(event);\n this.certificatesChannel.postMessage(event);\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Broadcast path not handled`, event.path, event)\n }\n }\n\n protected handleHistoryBroadcast(event: BroadcastEvent): void {\n if (event.space !== this.space) {\n return;\n }\n switch (event.operation) {\n case 'created': this.handleHistoryCreated(event as HistoryCreatedBroadcastEvent); break;\n case 'deleted': this.handleHistoryDeleted(event as HistoryDeletedBroadcastEvent); break;\n default:\n }\n }\n\n protected handleHistoryCreated(event: HistoryCreatedBroadcastEvent): void {\n const item = event.data as IHttpHistory;\n Events.Store.History.State.create({\n key: event.key,\n item,\n kind: item.kind,\n parent: event.request,\n space: event.space,\n });\n }\n\n protected handleHistoryDeleted(event: HistoryDeletedBroadcastEvent): void {\n Events.Store.History.State.delete({\n key: event.key,\n kind: event.kind,\n parent: event.request,\n });\n }\n\n protected handleProjectRunBroadcast(event: BroadcastEvent): void {\n if (event.space !== this.space) {\n return;\n }\n switch (event.operation) {\n case 'created': this.handleProjectRunCreated(event as ProjectExecutionCreatedBroadcastEvent); break;\n case 'deleted': this.handleProjectRunDeleted(event as ProjectExecutionDeleteBroadcastEvent); break;\n default:\n }\n }\n\n protected handleProjectRunCreated(event: ProjectExecutionCreatedBroadcastEvent): void {\n const item = event.data as IProjectExecution;\n Events.Store.ProjectRuns.State.create({\n key: event.key,\n item,\n kind: item.kind,\n parent: event.project,\n space: event.space,\n });\n }\n\n protected handleProjectRunDeleted(event: ProjectExecutionDeleteBroadcastEvent): void {\n Events.Store.ProjectRuns.State.delete({\n key: event.key,\n kind: event.kind,\n parent: event.project,\n });\n }\n\n protected handleCertificateBroadcast(event: BroadcastEvent): void {\n if (event.space !== this.space) {\n return;\n }\n switch (event.operation) {\n case 'created': this.handleCertificateCreated((event as BroadcastCreatedEvent).data as ICertificate); break;\n case 'deleted': this.handleCertificateDeleted(event as DeletedBroadcastEvent); break;\n default:\n }\n }\n\n protected handleCertificateCreated(item: ICertificate): void {\n Events.HttpClient.Model.Certificate.State.update({\n key: item.key,\n kind: item.kind,\n item,\n parent: this.space,\n });\n }\n\n protected handleCertificateDeleted(event: DeletedBroadcastEvent): void {\n Events.HttpClient.Model.Certificate.State.delete({\n key: event.key,\n kind: event.kind,\n parent: this.space,\n });\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -181,10 +181,10 @@ export abstract class StoreBindings extends PlatformBindings {
|
|
|
181
181
|
|
|
182
182
|
// project runs
|
|
183
183
|
target.addEventListener(EventTypes.Store.ProjectRuns.add, this.handleAddProjectExecution.bind(this) as EventListener);
|
|
184
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
185
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
186
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
187
|
-
target.addEventListener(EventTypes.Store.ProjectRuns.
|
|
184
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.list, this.handleProjectExecutionList.bind(this) as EventListener);
|
|
185
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.read, this.handleProjectExecutionRead.bind(this) as EventListener);
|
|
186
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.delete, this.handleProjectExecutionDelete.bind(this) as EventListener);
|
|
187
|
+
target.addEventListener(EventTypes.Store.ProjectRuns.deleteBulk, this.handleProjectExecutionDeleteBulk.bind(this) as EventListener);
|
|
188
188
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearSpace, this.handleProjectExecutionClearSpace.bind(this) as EventListener);
|
|
189
189
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearProject, this.handleProjectExecutionClearProject.bind(this) as EventListener);
|
|
190
190
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this) as EventListener);
|