@api-client/ui 0.0.11 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +8 -0
- package/demo/elements/index.html +3 -0
- package/demo/elements/store/file-picker.html +15 -0
- package/demo/elements/store/file-picker.ts +134 -0
- package/demo/elements/store/index.html +19 -0
- package/demo/store/StorePlugin.js +1 -0
- package/dist/bindings/base/StoreBindings.d.ts +5 -0
- package/dist/bindings/base/StoreBindings.d.ts.map +1 -1
- package/dist/bindings/base/StoreBindings.js +15 -1
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/define/store/file-picker.d.ts +9 -0
- package/dist/define/store/file-picker.d.ts.map +1 -0
- package/dist/define/store/file-picker.js +10 -0
- package/dist/define/store/file-picker.js.map +1 -0
- package/dist/define/{files → store}/share-file.d.ts +1 -1
- package/dist/define/store/share-file.d.ts.map +1 -0
- package/dist/define/{files → store}/share-file.js +2 -2
- package/dist/define/store/share-file.js.map +1 -0
- package/dist/elements/store/FilePicker.element.d.ts +87 -0
- package/dist/elements/store/FilePicker.element.d.ts.map +1 -0
- package/dist/elements/store/FilePicker.element.js +263 -0
- package/dist/elements/store/FilePicker.element.js.map +1 -0
- package/dist/elements/store/FilePicker.styles.d.ts +3 -0
- package/dist/elements/store/FilePicker.styles.d.ts.map +1 -0
- package/dist/elements/store/FilePicker.styles.js +72 -0
- package/dist/elements/store/FilePicker.styles.js.map +1 -0
- package/dist/elements/store/FilesLib.d.ts +10 -0
- package/dist/elements/store/FilesLib.d.ts.map +1 -0
- package/dist/elements/store/FilesLib.js +38 -0
- package/dist/elements/store/FilesLib.js.map +1 -0
- package/dist/elements/{files/ShareFile.d.ts → store/ShareFile.element.d.ts} +1 -1
- package/dist/elements/store/ShareFile.element.d.ts.map +1 -0
- package/dist/elements/{files/ShareFile.js → store/ShareFile.element.js} +1 -1
- package/dist/elements/store/ShareFile.element.js.map +1 -0
- package/dist/elements/store/ShareFile.styles.d.ts.map +1 -0
- package/dist/elements/{files → store}/ShareFile.styles.js.map +1 -1
- package/dist/events/EventTypes.d.ts +1 -0
- package/dist/events/EventTypes.d.ts.map +1 -1
- package/dist/events/EventTypes.js +1 -0
- package/dist/events/EventTypes.js.map +1 -1
- package/dist/events/Events.d.ts +1 -0
- package/dist/events/Events.d.ts.map +1 -1
- package/dist/events/StoreEvents.d.ts +8 -1
- package/dist/events/StoreEvents.d.ts.map +1 -1
- package/dist/events/StoreEvents.js +19 -0
- package/dist/events/StoreEvents.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +4 -2
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.d.ts +0 -6
- package/dist/pages/api-client/ApiClient.screen.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +16 -29
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +2 -2
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +6 -35
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +32 -141
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Shared.page.d.ts +1 -5
- package/dist/pages/api-client/pages/Shared.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Shared.page.js +1 -40
- package/dist/pages/api-client/pages/Shared.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.d.ts +7 -0
- package/dist/pages/demo/DemoPage.d.ts.map +1 -1
- package/dist/pages/demo/DemoPage.js +14 -0
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/store/FileSystem.d.ts +90 -0
- package/dist/store/FileSystem.d.ts.map +1 -0
- package/dist/store/FileSystem.js +260 -0
- package/dist/store/FileSystem.js.map +1 -0
- package/dist/styles/global-styles.d.ts.map +1 -1
- package/dist/styles/global-styles.js +7 -0
- package/dist/styles/global-styles.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +2 -1
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +1 -0
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/list/UiDropdownList.d.ts +9 -1
- package/dist/ui/list/UiDropdownList.d.ts.map +1 -1
- package/dist/ui/list/UiDropdownList.js +39 -17
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.d.ts +6 -1
- package/dist/ui/list/UiList.d.ts.map +1 -1
- package/dist/ui/list/UiList.js +24 -9
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/table/DataTable.d.ts +4 -0
- package/dist/ui/table/DataTable.d.ts.map +1 -1
- package/dist/ui/table/DataTable.js +23 -1
- package/dist/ui/table/DataTable.js.map +1 -1
- package/package.json +1 -1
- package/src/bindings/base/StoreBindings.ts +16 -1
- package/src/define/store/file-picker.ts +12 -0
- package/src/define/{files → store}/share-file.ts +2 -2
- package/src/elements/store/FilePicker.element.ts +297 -0
- package/src/elements/store/FilePicker.styles.ts +72 -0
- package/src/elements/store/FilesLib.ts +32 -0
- package/src/events/EventTypes.ts +1 -0
- package/src/events/StoreEvents.ts +21 -1
- package/src/pages/ApplicationScreen.ts +5 -3
- package/src/pages/api-client/ApiClient.screen.ts +16 -31
- package/src/pages/api-client/Authenticate.screen.ts +2 -2
- package/src/pages/api-client/pages/Files.page.ts +37 -164
- package/src/pages/api-client/pages/Shared.page.ts +2 -40
- package/src/pages/demo/DemoPage.ts +17 -0
- package/src/store/FileSystem.ts +325 -0
- package/src/styles/global-styles.ts +7 -0
- package/src/ui/icons/Icons.ts +2 -1
- package/src/ui/list/UiDropdownList.ts +44 -17
- package/src/ui/list/UiList.ts +26 -10
- package/src/ui/table/DataTable.ts +29 -3
- package/test/elements/store/FilePicker.test.ts +241 -0
- package/test/env.js +3 -0
- package/test/helpers/StoreHelper.ts +390 -0
- package/tsconfig.eslint.json +3 -1
- package/web-test-runner.config.mjs +49 -3
- package/dist/define/files/share-file.d.ts.map +0 -1
- package/dist/define/files/share-file.js.map +0 -1
- package/dist/elements/files/ShareFile.d.ts.map +0 -1
- package/dist/elements/files/ShareFile.js.map +0 -1
- package/dist/elements/files/ShareFile.styles.d.ts.map +0 -1
- /package/dist/elements/{files → store}/ShareFile.styles.d.ts +0 -0
- /package/dist/elements/{files → store}/ShareFile.styles.js +0 -0
- /package/src/elements/{files/ShareFile.ts → store/ShareFile.element.ts} +0 -0
- /package/src/elements/{files → store}/ShareFile.styles.ts +0 -0
|
@@ -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} 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.Store.Certificate.list, this.handleCertificateList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.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.space && event.space !== this.space) {\n return;\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.historyChannel.postMessage(event);\n } else if (event.path === RouteBuilder.projectExecutions()) {\n this.projectExeChannel.postMessage(event);\n } else if (event.path === RouteBuilder.certificates()) {\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"]}
|
|
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} 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 initialized = false;\n\n async initializeStore(): Promise<void> {\n // ...\n }\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\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 window.addEventListener(EventTypes.Store.File.breadcrumbs, this.handleFileBreadcrumbs.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.Store.Certificate.list, this.handleCertificateList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.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 protected handleFileBreadcrumbs(event: CustomEvent<{ key: string, result: Promise<ContextListResult<FileBreadcrumb>> }>): void {\n event.preventDefault();\n event.detail.result = this.files.breadcrumbs(event.detail.key)\n // this.getStore().sdk.file.breadcrumbs(this.space, event.detail.key);\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 throw new Error(event.cause);\n }\n if (event.space && event.space !== this.space) {\n // we allow files here to support shared files.\n if (event.path === RouteBuilder.files()) {\n this.filesChannel.postMessage(event);\n }\n return;\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.historyChannel.postMessage(event);\n } else if (event.path === RouteBuilder.projectExecutions()) {\n this.projectExeChannel.postMessage(event);\n } else if (event.path === RouteBuilder.certificates()) {\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../../src/define/store/file-picker.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,4CAA4C,CAAC;AAEjE,qBACa,iBAAkB,SAAQ,OAAO;CAC7C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,OAAO,CAAC;KACxB;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from "lit/decorators.js";
|
|
3
|
+
import Element from "../../elements/store/FilePicker.element.js";
|
|
4
|
+
let FilePickerElement = class FilePickerElement extends Element {
|
|
5
|
+
};
|
|
6
|
+
FilePickerElement = __decorate([
|
|
7
|
+
customElement('file-picker')
|
|
8
|
+
], FilePickerElement);
|
|
9
|
+
export { FilePickerElement };
|
|
10
|
+
//# sourceMappingURL=file-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-picker.js","sourceRoot":"","sources":["../../../src/define/store/file-picker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,4CAA4C,CAAC;AAG1D,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,OAAO;CAC7C,CAAA;AADY,iBAAiB;IAD7B,aAAa,CAAC,aAAa,CAAC;GAChB,iBAAiB,CAC7B;SADY,iBAAiB","sourcesContent":["import { customElement } from \"lit/decorators.js\";\nimport Element from \"../../elements/store/FilePicker.element.js\";\n\n@customElement('file-picker')\nexport class FilePickerElement extends Element {\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'file-picker': Element;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-file.d.ts","sourceRoot":"","sources":["../../../src/define/store/share-file.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,2CAA2C,CAAC;AAIhE,qBACa,gBAAiB,SAAQ,OAAO;IAC3C,OAAgB,MAAM,4BAA0B;CACjD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,OAAO,CAAC;KACvB;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { customElement } from 'lit/decorators.js';
|
|
3
|
-
import Element from "../../elements/
|
|
4
|
-
import styles from "../../elements/
|
|
3
|
+
import Element from "../../elements/store/ShareFile.element.js";
|
|
4
|
+
import styles from "../../elements/store/ShareFile.styles.js";
|
|
5
5
|
import dialogStyles from '../../ui/dialog/UiDialog.styles.js';
|
|
6
6
|
let ShareFileElement = class ShareFileElement extends Element {
|
|
7
7
|
static { this.styles = [dialogStyles, styles]; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-file.js","sourceRoot":"","sources":["../../../src/define/store/share-file.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,2CAA2C,CAAC;AAChE,OAAO,MAAM,MAAM,0CAA0C,CAAC;AAC9D,OAAO,YAAY,MAAM,oCAAoC,CAAC;AAGvD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,OAAO;aAC3B,WAAM,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;;AADrC,gBAAgB;IAD5B,aAAa,CAAC,YAAY,CAAC;GACf,gBAAgB,CAE5B;SAFY,gBAAgB","sourcesContent":["import { customElement } from 'lit/decorators.js';\nimport Element from \"../../elements/store/ShareFile.element.js\";\nimport styles from \"../../elements/store/ShareFile.styles.js\";\nimport dialogStyles from '../../ui/dialog/UiDialog.styles.js';\n\n@customElement('share-file')\nexport class ShareFileElement extends Element {\n static override styles = [dialogStyles, styles];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'share-file': Element;\n }\n}\n"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { IFile, ListFileKind } from "@api-client/core/build/browser.js";
|
|
2
|
+
import { CSSResult, TemplateResult } from "lit";
|
|
3
|
+
import ApiElement from "../ApiElement.js";
|
|
4
|
+
import type UiList from "../../ui/list/UiList.js";
|
|
5
|
+
import type { UiListSelection } from "../../ui/list/UiList.js";
|
|
6
|
+
import { FileSystem } from "../../store/FileSystem.js";
|
|
7
|
+
import '../../define/ui/ui-divider.js';
|
|
8
|
+
import '../../define/ui/ui-button.js';
|
|
9
|
+
import '../../define/ui/ui-icon-button.js';
|
|
10
|
+
import '../../define/ui/ui-icon.js';
|
|
11
|
+
import '../../define/ui/ui-list.js';
|
|
12
|
+
import '../../define/ui/ui-list-item.js';
|
|
13
|
+
import '../../define/ui/ui-progress.js';
|
|
14
|
+
export interface FilePickerClosingReason {
|
|
15
|
+
/**
|
|
16
|
+
* Whether the picker was canceled.
|
|
17
|
+
*/
|
|
18
|
+
canceled: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* The file selected by the user. This is always and only selected when the `canceled` is false.
|
|
21
|
+
*/
|
|
22
|
+
file?: IFile;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A portable element that allow to pick a file from the Store.
|
|
26
|
+
*
|
|
27
|
+
* @fires close - When a file is selected or the user cancelled the dialog. The detail object is the picked file object. Note, this event bubbles.
|
|
28
|
+
* @fires querycomplete - When the page of results was loaded.
|
|
29
|
+
*/
|
|
30
|
+
export default class FilePicker extends ApiElement {
|
|
31
|
+
static get styles(): CSSResult[];
|
|
32
|
+
/**
|
|
33
|
+
* The key of the parent folder to query for files.
|
|
34
|
+
* @attribute
|
|
35
|
+
*/
|
|
36
|
+
get folder(): string | undefined;
|
|
37
|
+
set folder(value: string | undefined);
|
|
38
|
+
/**
|
|
39
|
+
* The page limit. Defaults to the store defaults.
|
|
40
|
+
* @attribute
|
|
41
|
+
*/
|
|
42
|
+
set limit(value: number | undefined);
|
|
43
|
+
get limit(): number | undefined;
|
|
44
|
+
/**
|
|
45
|
+
* The timeout for the page query debouncer.
|
|
46
|
+
* @attribute
|
|
47
|
+
*/
|
|
48
|
+
get debounceTimeout(): number;
|
|
49
|
+
set debounceTimeout(value: number);
|
|
50
|
+
/**
|
|
51
|
+
* The list of file kinds to list.
|
|
52
|
+
* Folders are always included.
|
|
53
|
+
*/
|
|
54
|
+
get kinds(): ListFileKind[] | undefined;
|
|
55
|
+
set kinds(value: ListFileKind[] | undefined);
|
|
56
|
+
protected list?: UiList;
|
|
57
|
+
/**
|
|
58
|
+
* The currently selected in the picker file.
|
|
59
|
+
*/
|
|
60
|
+
protected selectedFile?: IFile;
|
|
61
|
+
errorMessage?: string;
|
|
62
|
+
/**
|
|
63
|
+
* When set it does not query for files when attached to the DOM.
|
|
64
|
+
* It will still query for files when attributes change. This is primarily used in tests.
|
|
65
|
+
* @attribute
|
|
66
|
+
*/
|
|
67
|
+
manualQuery?: boolean;
|
|
68
|
+
get selectedKey(): string | undefined;
|
|
69
|
+
fs: FileSystem;
|
|
70
|
+
constructor();
|
|
71
|
+
connectedCallback(): void;
|
|
72
|
+
disconnectedCallback(): void;
|
|
73
|
+
focus(options?: FocusOptions | undefined): void;
|
|
74
|
+
protected handleFileSelect(e: CustomEvent<UiListSelection>): void;
|
|
75
|
+
protected handleParentUp(): void;
|
|
76
|
+
protected notifyClose(canceled: boolean): void;
|
|
77
|
+
protected handleSelect(): void;
|
|
78
|
+
protected handleCancel(): void;
|
|
79
|
+
protected handleListScroll(e: Event): void;
|
|
80
|
+
protected render(): TemplateResult;
|
|
81
|
+
protected renderHeader(): TemplateResult;
|
|
82
|
+
protected renderFiles(): TemplateResult;
|
|
83
|
+
protected renderEmptyList(): TemplateResult;
|
|
84
|
+
protected renderFileItem(item: IFile): TemplateResult;
|
|
85
|
+
protected renderActions(): TemplateResult;
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=FilePicker.element.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FilePicker.element.d.ts","sourceRoot":"","sources":["../../../src/elements/store/FilePicker.element.ts"],"names":[],"mappings":"AAAA,OAAO,EACO,KAAK,EACjB,YAAY,EACb,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAiB,cAAc,EAAE,MAAM,KAAK,CAAC;AAG/D,OAAO,UAAU,MAAM,kBAAkB,CAAC;AAG1C,OAAO,KAAK,MAAM,MAAM,yBAAyB,CAAC;AAClD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,+BAA+B,CAAC;AACvC,OAAO,8BAA8B,CAAC;AACtC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,4BAA4B,CAAC;AACpC,OAAO,4BAA4B,CAAC;AACpC,OAAO,iCAAiC,CAAC;AACzC,OAAO,gCAAgC,CAAC;AAExC,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,IAAI,CAAC,EAAE,KAAK,CAAC;CACd;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,UAAU;IAChD,WAAoB,MAAM,IAAI,SAAS,EAAE,CAExC;IAED;;;OAGG;IACH,IACI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAEnC;IAED;;;OAGG;IACH,IACI,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAElC;IAED,IAAI,KAAK,IAAI,MAAM,GAAG,SAAS,CAE9B;IAED;;;OAGG;IACH,IACI,eAAe,IAAI,MAAM,CAE5B;IAED,IAAI,eAAe,CAAC,KAAK,EAAE,MAAM,EAEhC;IAED;;;OAGG;IACH,IACI,KAAK,IAAI,YAAY,EAAE,GAAG,SAAS,CAEtC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,SAAS,EAI1C;IAEiB,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAE1C;;OAEG;IACM,SAAS,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC;IAE/B,YAAY,CAAC,EAAE,MAAM,CAAC;IAE/B;;;;OAIG;IAC0B,WAAW,CAAC,EAAE,OAAO,CAAC;IAEnD,IAAI,WAAW,IAAI,MAAM,GAAG,SAAS,CAEpC;IAED,EAAE,aAAoB;;IAqBb,iBAAiB,IAAI,IAAI;IAWzB,oBAAoB,IAAI,IAAI;IAK5B,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI;IAOxD,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,WAAW,CAAC,eAAe,CAAC,GAAG,IAAI;IAejE,SAAS,CAAC,cAAc,IAAI,IAAI;IAKhC,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAoB9C,SAAS,CAAC,YAAY,IAAI,IAAI;IAI9B,SAAS,CAAC,YAAY,IAAI,IAAI;IAK9B,SAAS,CAAC,gBAAgB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;cAOvB,MAAM,IAAI,cAAc;IAa3C,SAAS,CAAC,YAAY,IAAI,cAAc;IA4BxC,SAAS,CAAC,WAAW,IAAI,cAAc;IAYvC,SAAS,CAAC,eAAe,IAAI,cAAc;IAM3C,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,GAAG,cAAc;IAUrD,SAAS,CAAC,aAAa,IAAI,cAAc;CAU1C"}
|