@wix/editor-application 1.393.0 → 1.395.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +23 -605
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +23 -602
- package/dist/esm/index.js.map +1 -1
- package/dist/statics/index.js +26 -609
- package/dist/statics/index.js.map +1 -1
- package/dist/types/index.d.ts +18 -192
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +11 -36
- package/dist/cjs/environment-api/index.js +0 -634
- package/dist/cjs/environment-api/index.js.map +0 -1
- package/dist/cjs/platform-frame/index.js +0 -403
- package/dist/cjs/platform-frame/index.js.map +0 -1
- package/dist/cjs/platform-frame-api/index.js +0 -377
- package/dist/cjs/platform-frame-api/index.js.map +0 -1
- package/dist/cjs/platform-worker/index.js +0 -580
- package/dist/cjs/platform-worker/index.js.map +0 -1
- package/dist/cjs/platform-worker-api/index.js +0 -579
- package/dist/cjs/platform-worker-api/index.js.map +0 -1
- package/dist/esm/environment-api/index.js +0 -630
- package/dist/esm/environment-api/index.js.map +0 -1
- package/dist/esm/platform-frame/index.js +0 -401
- package/dist/esm/platform-frame/index.js.map +0 -1
- package/dist/esm/platform-frame-api/index.js +0 -375
- package/dist/esm/platform-frame-api/index.js.map +0 -1
- package/dist/esm/platform-worker/index.js +0 -578
- package/dist/esm/platform-worker/index.js.map +0 -1
- package/dist/esm/platform-worker-api/index.js +0 -577
- package/dist/esm/platform-worker-api/index.js.map +0 -1
- package/dist/statics/environment-api/index.js +0 -636
- package/dist/statics/environment-api/index.js.map +0 -1
- package/dist/statics/platform-frame/index.js +0 -404
- package/dist/statics/platform-frame/index.js.map +0 -1
- package/dist/statics/platform-frame-api/index.js +0 -380
- package/dist/statics/platform-frame-api/index.js.map +0 -1
- package/dist/statics/platform-worker/index.js +0 -581
- package/dist/statics/platform-worker/index.js.map +0 -1
- package/dist/statics/platform-worker-api/index.js +0 -581
- package/dist/statics/platform-worker-api/index.js.map +0 -1
- package/dist/types/environment-api/index.d.ts +0 -59
- package/dist/types/environment-api/index.d.ts.map +0 -1
- package/dist/types/platform-frame/index.d.ts +0 -59
- package/dist/types/platform-frame/index.d.ts.map +0 -1
- package/dist/types/platform-frame-api/index.d.ts +0 -59
- package/dist/types/platform-frame-api/index.d.ts.map +0 -1
- package/dist/types/platform-worker/index.d.ts +0 -59
- package/dist/types/platform-worker/index.d.ts.map +0 -1
- package/dist/types/platform-worker-api/index.d.ts +0 -59
- package/dist/types/platform-worker-api/index.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../../editor-platform-application-context/dist/esm/index.js","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts","../../src/Events/WorkerEventsBridge.ts","../../src/PlatformEnvironmentAPI/AbstractEnvironmentAPI.ts","../../src/PlatformEnvironmentAPI/PlatformFrameAPI/PlatformFrameAPI.ts","../../src/PlatformApplicationContainer/executeApplication.ts","../../src/PlatformApplicationContainer/PlatformApplicationContainer.ts","../../src/PlatformEnvironmentAPI/PlatformWorkerAPI/PlatformWorkerAPI.ts"],"sourcesContent":["import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport { ApplicationBoundEvents } from '@wix/editor-application-context';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${performance.now()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n ApplicationCreationError = 'ApplicationCreationError',\n ApplicationLoadError = 'ApplicationLoadError',\n ApplicationFetchError = 'ApplicationFetchError',\n ApplicationExecuteError = 'ApplicationExecuteError',\n ApplicationWasRemoved = 'ApplicationWasRemoved',\n UndefinedApiMethod = 'UndefinedApiMethod',\n ApplicationIsNotMutable = 'ApplicationIsNotMutable',\n FailedToGetPrivateAPI = 'FailedToGetPrivateAPI',\n ClientAuthError = 'ClientAuthError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'Editor Platform Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-application-context';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","import { createErrorBuilder, BaseError } from '@wix/public-editor-platform-errors';\nimport { PlatformAppEvent } from '@wix/public-editor-platform-events';\n\nvar EditorPlatformApplicationContextErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationContextErrorCode2) => {\n EditorPlatformApplicationContextErrorCode2[\"IncorrectEnvironment\"] = \"IncorrectEnvironment\";\n EditorPlatformApplicationContextErrorCode2[\"ClientAuthError\"] = \"ClientAuthError\";\n return EditorPlatformApplicationContextErrorCode2;\n})(EditorPlatformApplicationContextErrorCode || {});\nclass EditorPlatformApplicationContextError extends BaseError {\n state = {};\n constructor(message, code) {\n super(message, code, \"Editor Platform Application Context Error\");\n }\n withUrl(url) {\n this.state = { ...this.state, url };\n return this;\n }\n withAppDefinitionId(appDefinitionId) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n}\nconst createEditorPlatformApplicationContextError = createErrorBuilder(EditorPlatformApplicationContextError);\n\nasync function transformEventPayload(eventPayload, privateAPI) {\n if (!eventPayload?.type) {\n return eventPayload;\n }\n switch (eventPayload.type) {\n case \"componentSelectionChanged\":\n const componentRefs = eventPayload.componentRefs || [];\n const components = await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n })\n );\n return {\n type: eventPayload.type,\n components\n };\n default:\n return eventPayload;\n }\n}\n\nclass ApplicationBoundEvents {\n constructor(appDefinitionId, events, privateAPI) {\n this.appDefinitionId = appDefinitionId;\n this.privateAPI = privateAPI;\n this.events = events;\n this.subscribe = events.subscribe.bind(events);\n this.commit = events.commit.bind(events);\n this.startTransaction = events.startTransaction.bind(events);\n this.silent = events.silent.bind(events);\n }\n events;\n subscribe;\n commit;\n startTransaction;\n silent;\n notify(event) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId\n }\n });\n }\n notifyCustomEvent(type, payload) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type\n }\n });\n }\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n addEventListener(eventType, fn) {\n return this.events.subscribe(async (event) => {\n const isAppMatch = event.meta?.appDefinitionId === this.appDefinitionId || event.meta?.appDefinitionId === null;\n const transformPayload = () => transformEventPayload(event.payload, this.privateAPI);\n if (eventType === \"*\") {\n fn(await transformPayload());\n } else if (event.type === PlatformAppEvent.CustomEvent) {\n if (eventType === event.payload?.type && !isAppMatch) {\n fn(await transformPayload());\n }\n } else if (event.type === PlatformAppEvent.HostEvent) {\n if (eventType === event.payload?.type && isAppMatch) {\n fn(await transformPayload());\n }\n }\n });\n }\n}\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\nclass ContextInjectionStatus {\n _resolveContextInjected = () => {\n };\n _isInjected = false;\n key;\n constructor(uuid) {\n this.key = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;\n if (!globalThis[this.key]) {\n globalThis[this.key] = new Promise((resolve) => {\n this._resolveContextInjected = () => {\n this._isInjected = true;\n resolve();\n };\n });\n }\n }\n isInjected() {\n return !!this._isInjected;\n }\n resolveInjected() {\n this._resolveContextInjected?.();\n }\n waitInjected() {\n return new Promise((resolve, reject) => {\n let injected = false;\n let timeoutId;\n let retryCount = 0;\n const timeout = () => {\n if (injected) {\n return;\n }\n timeoutId = setTimeout(() => {\n retryCount++;\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"contexts are not resolved, still re-trying\"\n ).withMessage(`try number ${retryCount}`).message\n );\n }\n timeout();\n return;\n }\n if (!injected) {\n const error = createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"contexts are not resolved, threw by timeout\"\n );\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n timeout();\n const _waitContextInjectedPromise = globalThis[this.key];\n _waitContextInjectedPromise.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n\nconst ENVIRONMENT_CONTEXT_KEY = \"__ENVIRONMENT_CONTEXT_KEY\";\nvar PlatformEnvironment = /* @__PURE__ */ ((PlatformEnvironment2) => {\n PlatformEnvironment2[\"Worker\"] = \"Worker\";\n PlatformEnvironment2[\"Frame\"] = \"Frame\";\n PlatformEnvironment2[\"ComponentPanel\"] = \"ComponentPanel\";\n return PlatformEnvironment2;\n})(PlatformEnvironment || {});\nclass EnvironmentContext {\n constructor(environmentContext) {\n this.environmentContext = environmentContext;\n }\n static status = new ContextInjectionStatus(\"environment\");\n static async inject(context) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Environment context already exists and should not be overridden\"\n );\n }\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n static async getInstance() {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n getEvents() {\n return this.environmentContext.events;\n }\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n\nconst APPLICATION_CONTEXT_KEY = \"__APPLICATION_CONTEXT_KEY\";\nclass ApplicationContext {\n constructor(applicationContext, environment) {\n this.applicationContext = applicationContext;\n this.environment = environment;\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI()\n );\n }\n static status = new ContextInjectionStatus(\"application\");\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject(context) {\n const environment = await EnvironmentContext.getInstance();\n if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Application context can be injected only in frame environment\"\n );\n }\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"Application context already exists and should not be overridden\"\n );\n }\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance()\n );\n this.status.resolveInjected();\n }\n static async getInstance() {\n const environment = await EnvironmentContext.getInstance();\n if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n await this.status.waitInjected();\n return globalThis[APPLICATION_CONTEXT_KEY];\n } else {\n return __APPLICATION_CONTEXT_KEY;\n }\n }\n events;\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n getBindings() {\n return this.applicationContext;\n }\n getEvents() {\n return this.events;\n }\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n if (!appDefinitionId) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.IncorrectEnvironment,\n \"appDefinitionId is not available\"\n );\n }\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n\nexport { APPLICATION_CONTEXT_KEY, ApplicationBoundEvents, ApplicationContext, ENVIRONMENT_CONTEXT_KEY, EnvironmentContext, PlatformEnvironment };\n//# sourceMappingURL=index.js.map\n","export type IPrivateAPIFixMe = any; // TODO: replace with the real type WrappedPrivateAPI\n// TODO: fix any\nexport type IApplicationSpec = any;\n\nexport enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-application-context';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-application-context';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n","import {\n IPlatformPrivateEvent,\n PlatformLifecycleEvent,\n PlatformPrivateEvent,\n // --\n IPlatformAppEvent,\n PlatformAppEvent,\n PlatformAppEventEmitter,\n} from '@wix/public-editor-platform-events';\n\n/**\n * The events bridge between platform events (private) and app events\n */\nexport class WorkerEventsBridge {\n constructor(private platformAppEvents: PlatformAppEventEmitter) {}\n\n /**\n * Notify by event from Worker Manager (platform infrastructure)\n */\n public notify(event: IPlatformPrivateEvent) {\n switch (event.type) {\n case PlatformLifecycleEvent.EditorReady:\n this.platformAppEvents.notify({\n ...event,\n // @ts-expect-error TODO: fix me\n type: PlatformAppEvent.EditorReady,\n });\n break;\n case PlatformPrivateEvent.HostEvent:\n this.platformAppEvents.notify({\n ...event,\n type: PlatformAppEvent.HostEvent,\n });\n break;\n }\n }\n\n /**\n * Subscribe to Worker (Application) event\n */\n public subscribe(cb: (event: IPlatformAppEvent) => void) {\n this.platformAppEvents.subscribe((event) => {\n cb(event);\n });\n }\n}\n","export enum PlatformConsumerEnvironmentAPIType {\n Frame = 'PLATFORM_FRAME_API',\n Worker = 'PLATFORM_WORKER_API',\n}\n\n/**\n * rename these entities -> API to Env\n */\nexport abstract class AbstractEnvironmentAPI<\n TEnv extends PlatformConsumerEnvironmentAPIType,\n> {\n /**\n * NOTE: we can't `type` declare getter within current abstract class\n * because then after transferring API between threads this getter becomes promise,\n * which is not expected\n *\n * get type() {\n * return this.env;\n * }\n */\n public abstract type: TEnv;\n\n protected constructor(protected env: TEnv) {\n this.create();\n }\n\n abstract create(): void;\n abstract initEnvironment(props: unknown): void;\n}\n","import { IPrivateAPIFixMe } from '../../types';\n\nimport {\n IPlatformAppEvent,\n IPlatformPrivateEvent,\n PlatformAppEventEmitter,\n} from '@wix/public-editor-platform-events';\n\nimport { WorkerEventsBridge } from '../../Events';\nimport {\n AbstractEnvironmentAPI,\n PlatformConsumerEnvironmentAPIType,\n} from '../AbstractEnvironmentAPI';\nimport {\n ApplicationContext,\n EnvironmentContext,\n PlatformEnvironment,\n} from '@wix/editor-application-context';\n\nconst DESIGN_SYSTEM_STYLES_MAP = {\n classic:\n 'https://www.unpkg.com/@wix/design-system/dist/statics/tokens-default.global.css',\n studio:\n 'https://www.unpkg.com/@wix/design-system/dist/statics/tokens-studio.global.css',\n};\n\nexport class PlatformFrameAPI extends AbstractEnvironmentAPI<PlatformConsumerEnvironmentAPIType.Frame> {\n public type: PlatformConsumerEnvironmentAPIType.Frame =\n PlatformConsumerEnvironmentAPIType.Frame;\n\n #events = new PlatformAppEventEmitter();\n #eventsBridge = new WorkerEventsBridge(this.#events);\n #privateAPI: IPrivateAPIFixMe;\n #applicationPrivateAPI: any;\n\n constructor() {\n super(PlatformConsumerEnvironmentAPIType.Frame);\n }\n\n create() {\n if (typeof globalThis?.document?.head?.prepend === 'function') {\n const params = new URL(globalThis.location.href).searchParams;\n\n // TODO: check all possible editorType values\n const host =\n params.get('editorType') === 'CLASSIC' ? 'classic' : 'studio';\n\n const url = DESIGN_SYSTEM_STYLES_MAP[host];\n\n const isAlreadyLoaded =\n url &&\n !!document.querySelectorAll(`link[type=\"text/css\"][href=\"${url}\"]`)\n ?.length;\n\n if (url && !isAlreadyLoaded) {\n const link: HTMLLinkElement = document.createElement('link');\n\n link.setAttribute('rel', 'stylesheet');\n link.setAttribute('type', 'text/css');\n link.setAttribute('href', url);\n\n globalThis.document.head.prepend(link);\n }\n }\n }\n\n async initEnvironment(props: {\n appDefinitionId: string;\n privateAPI: IPrivateAPIFixMe;\n applicationPrivateAPI: any;\n }) {\n const { applicationPrivateAPI, privateAPI, appDefinitionId } = props;\n\n this.#applicationPrivateAPI = applicationPrivateAPI;\n this.#privateAPI = privateAPI;\n\n await EnvironmentContext.inject({\n environment: PlatformEnvironment.Frame,\n privateApi: privateAPI,\n events: this.#events,\n applicationAPIs: {\n [appDefinitionId]: this.#applicationPrivateAPI,\n },\n });\n\n await ApplicationContext.inject({\n appDefinitionId,\n appDefinitionName: '',\n });\n }\n\n notify(event: IPlatformPrivateEvent) {\n this.#eventsBridge.notify(event);\n }\n\n subscribe(cb: (event: IPlatformAppEvent) => void) {\n this.#eventsBridge.subscribe(cb);\n }\n}\n","import {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n} from '@wix/public-editor-platform-events';\nimport {\n APPLICATION_CONTEXT_KEY,\n EnvironmentContext,\n ApplicationContext,\n} from '@wix/editor-application-context';\n\nimport type { EditorPlatformApplication } from '../EditorPlatformApplication';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { IApplicationSpec } from '../types';\n\nexport const APPLICATION_REGISTRY_KEY = '__APPLICATION_REGISTRY_KEY';\n\nexport type IApplicationRegistry = (\n _instance: EditorPlatformApplication,\n) => void;\n\nexport async function executeApplication(\n events: PlatformAppEventEmitter,\n spec: IApplicationSpec,\n bundle: string,\n): Promise<{\n instance: EditorPlatformApplication;\n}> {\n // eslint-disable-next-line no-new-func\n const executable = new Function(\n APPLICATION_CONTEXT_KEY,\n APPLICATION_REGISTRY_KEY,\n bundle,\n );\n\n let instance: EditorPlatformApplication | undefined;\n\n const applicationRegistryCallback: IApplicationRegistry = (_instance) => {\n if (instance) {\n throw createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationExecuteError,\n 'Application registry called more than once',\n ).withAppDefinitionId(spec.appDefinitionId);\n }\n\n if (_instance.type !== spec.type) {\n throw createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationExecuteError,\n 'Application has different type',\n )\n .withMessage('expected type', spec.type)\n .withMessage('received type', _instance.type);\n }\n\n instance = _instance;\n };\n\n try {\n const context = { ...spec };\n\n executable.call(\n null,\n new ApplicationContext(context, await EnvironmentContext.getInstance()),\n applicationRegistryCallback,\n );\n } catch (e: unknown) {\n throw createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationExecuteError,\n (e as Error).message,\n )\n .withAppDefinitionId(spec.appDefinitionId)\n .withParentError(e as Error);\n }\n\n return new Promise((resolve, reject) => {\n const unsubscribe = events.subscribe((event) => {\n const timeoutId = setTimeout(() => {\n clearTimeout(timeoutId);\n unsubscribe();\n\n if (!instance) {\n reject(\n createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationExecuteError,\n 'Application registry was not called, threw by timeout',\n ).withAppDefinitionId(spec.appDefinitionId),\n );\n }\n }, 5000);\n\n if (\n event.type === PlatformAppEvent.ApplicationInit &&\n event.meta.appDefinitionId === spec.appDefinitionId\n ) {\n clearTimeout(timeoutId);\n unsubscribe();\n\n if (!instance) {\n reject(\n createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationExecuteError,\n 'Application registry was not called',\n ).withAppDefinitionId(spec.appDefinitionId),\n );\n }\n\n resolve({ instance: instance! });\n }\n });\n });\n}\n","import {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n} from '@wix/public-editor-platform-events';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\n\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { EditorPlatformApplication } from '../EditorPlatformApplication';\nimport { type IApplicationSpec, type IPrivateAPIFixMe } from '../types';\nimport { executeApplication } from './executeApplication';\n\nexport class PlatformApplicationContainer {\n #apps: Record<string, EditorPlatformApplication> = {};\n\n readonly #privateAPI: IPrivateAPIFixMe;\n readonly #events: PlatformAppEventEmitter;\n\n constructor(privateApi: IPrivateAPIFixMe, events: PlatformAppEventEmitter) {\n this.#privateAPI = privateApi;\n this.#events = events;\n\n this.#events.subscribe((event) => {\n switch (event.type) {\n case PlatformAppEvent.HostEvent: {\n if (event.payload.type === EventType.removeAppCompleted) {\n void this.#events.withEvent(\n this.#events.factories.createApplicationRemovedEvent(\n event.payload.appDefinitionId!,\n ),\n () => {\n return this.removeApplication(event.payload.appDefinitionId!);\n },\n );\n }\n break;\n }\n }\n });\n }\n\n public async runApplication(appSpec: IApplicationSpec) {\n const bundle = await this.loadApplication(appSpec);\n const instance = await this.executeApplication(appSpec, bundle);\n\n this.setApplication(appSpec.appDefinitionId, instance);\n\n return instance;\n }\n\n private setApplication(\n appDefId: string,\n instance: EditorPlatformApplication,\n ) {\n this.#apps[appDefId] = instance;\n\n void this.#events.withEvent(\n this.#events.factories.createApplicationApiInitEvent(\n appDefId,\n // TODO: both types are set here...\n // @ts-expect-error TODO: fix me\n instance?.api?.private ? 'private' : 'public',\n ),\n () => {\n // NOTE: sometimes I saw this method was called while application was not executed\n this.#privateAPI.applicationManager.setApplication(instance);\n },\n );\n }\n\n public getApplication(appDefId: string) {\n return this.#apps[appDefId];\n }\n\n public getAppDefinitionIds() {\n return Object.keys(this.#apps);\n }\n\n private removeApplication(appDefinitionId: string) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.#apps[appDefinitionId];\n }\n\n private async loadApplication(appSpec: IApplicationSpec) {\n const url = appSpec.url;\n\n return this.#events.withEvent(\n this.#events.factories.createApplicationLoadEvent(appSpec, url),\n\n async () => {\n try {\n return await this.loadApplicationBundle(url);\n } catch (e) {\n throw createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationLoadError,\n )\n .withUrl(url)\n .withAppDefinitionId(appSpec.appDefinitionId)\n .withParentError(e as any);\n }\n },\n );\n }\n\n private async loadApplicationBundle(url: string) {\n /**\n * NOTE: we don't use wix http client here\n * because this code is public, while http client is private\n */\n const res = await fetch(url, {\n method: 'GET',\n });\n\n const isSuccessfulResponse = res.status >= 200 && res.status <= 299;\n\n if (!isSuccessfulResponse) {\n throw createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationFetchError,\n ).withUrl(url);\n }\n\n return res.text();\n }\n\n private async executeApplication(appSpec: IApplicationSpec, bundle: string) {\n return this.#events.withEvent(\n this.#events.factories.createApplicationExecuteEvent(\n appSpec,\n appSpec.url,\n ),\n async () => {\n const { instance } = await executeApplication(\n this.#events,\n appSpec,\n bundle,\n );\n return instance;\n },\n );\n }\n}\n","import { IApplicationSpec, IPrivateAPIFixMe } from '../../types';\nimport {\n IPlatformPrivateEvent,\n PlatformAppEventEmitter,\n IPlatformAppEvent,\n} from '@wix/public-editor-platform-events';\n\nimport { WorkerEventsBridge } from '../../Events';\n\nimport { PlatformApplicationContainer } from '../../PlatformApplicationContainer';\nimport {\n AbstractEnvironmentAPI,\n PlatformConsumerEnvironmentAPIType,\n} from '../AbstractEnvironmentAPI';\nimport {\n EnvironmentContext,\n PlatformEnvironment,\n} from '@wix/editor-application-context';\n\nexport class PlatformWorkerAPI extends AbstractEnvironmentAPI<PlatformConsumerEnvironmentAPIType.Worker> {\n public type: PlatformConsumerEnvironmentAPIType.Worker =\n PlatformConsumerEnvironmentAPIType.Worker;\n\n #events = new PlatformAppEventEmitter();\n\n #eventsBridge = new WorkerEventsBridge(this.#events);\n #container: PlatformApplicationContainer | null = null;\n #privateAPI: IPrivateAPIFixMe;\n\n #pendingWaiters: ((value: this) => void)[] = [];\n\n constructor() {\n super(PlatformConsumerEnvironmentAPIType.Worker);\n }\n\n create() {}\n\n async initEnvironment(props: {\n // TODO: should be Promise response in types\n buildPrivateAPI: (config: any) => IPrivateAPIFixMe;\n }) {\n const { buildPrivateAPI } = props;\n this.#privateAPI = await buildPrivateAPI({\n // TODO: should be per application (within the container before app execution)\n type: 'EDITOR_ADDON',\n });\n\n await EnvironmentContext.inject({\n environment: PlatformEnvironment.Worker,\n events: this.#events,\n privateApi: this.#privateAPI,\n applicationAPIs: {},\n });\n\n this.#container = new PlatformApplicationContainer(\n this.#privateAPI,\n this.#events,\n );\n\n this.#pendingWaiters.forEach((res) => res(this));\n }\n\n async notify(event: IPlatformPrivateEvent) {\n await this.waitReady();\n\n this.#eventsBridge.notify(event);\n }\n\n subscribe(cb: (event: IPlatformAppEvent) => void) {\n this.#eventsBridge.subscribe(cb);\n }\n\n async runApplication(app: IApplicationSpec) {\n await this.waitReady();\n\n await this.#container!.runApplication(app);\n }\n\n public waitReady(): Promise<this> {\n return new Promise((res) => {\n if (this.#privateAPI) {\n return res(this);\n }\n\n this.#pendingWaiters.push(res);\n });\n }\n}\n"],"names":["PlatformAppEvent","EditorPlatformApplicationErrorCode","BaseError","createErrorBuilder","EventType","ApplicationType","PlatformLifecycleEvent","PlatformPrivateEvent","PlatformConsumerEnvironmentAPIType","PlatformAppEventEmitter"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/hash.ts","../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["/**\n * it would be good to use performance.now()\n * but it some cases performance API is not available\n */\nexport function hash() {\n const _performance = globalThis['performance'];\n\n if (_performance && _performance.now) {\n return _performance.now();\n }\n\n let result = '';\n const characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const charactersLength = characters.length;\n\n let counter = 0;\n\n const length = 10;\n while (counter < length) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n counter += 1;\n }\n\n return result;\n}\n","import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\nimport { hash } from '../hash';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${hash()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport { ApplicationContext } from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext,\n ) {\n this.#context = context;\n\n this.appDefinitionId = this.#context.getAppDefinitionId()!;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","/**\n * TODO: use this enum\n * import {ApplicationContextType} from \"@wix/editor-platform-contexts\";\n */\nexport enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import { ApplicationContext } from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext) {\n super(ApplicationType.Platform, context);\n }\n}\n","import { ApplicationContext } from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["PlatformAppEvent","EditorPlatformApplicationErrorCode","BaseError","createErrorBuilder","EventType","ApplicationType","ApplicationContext"],"mappings":"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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,123 +1,7 @@
|
|
|
1
1
|
import * as _wix_public_editor_platform_errors from '@wix/public-editor-platform-errors';
|
|
2
|
-
import * as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { ComponentRef } from '@wix/public-editor-platform-interfaces';
|
|
6
|
-
|
|
7
|
-
type PrivateAPIFixMe = any;
|
|
8
|
-
interface Component<TComponentType extends string> {
|
|
9
|
-
compRef: ComponentRef;
|
|
10
|
-
type: TComponentType;
|
|
11
|
-
}
|
|
12
|
-
interface TextComponent extends Component<'text'> {
|
|
13
|
-
text(): Promise<string>;
|
|
14
|
-
text(content: string): Promise<void>;
|
|
15
|
-
}
|
|
16
|
-
interface ImageComponent extends Component<'image'> {
|
|
17
|
-
src(src?: string): Promise<void>;
|
|
18
|
-
}
|
|
19
|
-
interface UnknownComponent extends Component<'unknown'> {
|
|
20
|
-
}
|
|
21
|
-
type IComponent = TextComponent | ImageComponent | UnknownComponent;
|
|
22
|
-
type EventsToAutocomplete = 'componentSelectionChanged';
|
|
23
|
-
type AllowedEvents = Omit<string, EventsToAutocomplete> | EventsToAutocomplete;
|
|
24
|
-
type AppEventPayload<EventType extends AllowedEvents> = EventType extends 'componentSelectionChanged' ? {
|
|
25
|
-
type: EventType;
|
|
26
|
-
components: IComponent[];
|
|
27
|
-
} : Record<string, string>;
|
|
28
|
-
|
|
29
|
-
type OmitEventMeta<T> = T extends {
|
|
30
|
-
meta: any;
|
|
31
|
-
} ? Omit<T, 'meta'> : T;
|
|
32
|
-
declare class ApplicationBoundEvents {
|
|
33
|
-
private appDefinitionId;
|
|
34
|
-
private privateAPI;
|
|
35
|
-
private events;
|
|
36
|
-
subscribe: (callback: (event: IPlatformAppEvent) => void) => () => void;
|
|
37
|
-
commit: () => void;
|
|
38
|
-
startTransaction: () => void;
|
|
39
|
-
silent: (isSilent?: boolean) => void;
|
|
40
|
-
constructor(appDefinitionId: string, events: PlatformAppEventEmitter, privateAPI: PrivateAPIFixMe);
|
|
41
|
-
notify(event: OmitEventMeta<IPlatformAppEvent>): void;
|
|
42
|
-
notifyCustomEvent(type: string, payload: Record<string, string>): void;
|
|
43
|
-
/**
|
|
44
|
-
* TODO: we should use same interface for all events
|
|
45
|
-
* (subscribe vs addEventListener)
|
|
46
|
-
*/
|
|
47
|
-
addEventListener<EventType extends AllowedEvents>(eventType: EventType, fn: (payload: AppEventPayload<EventType>) => void): () => void;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
type IPrivateAPIFixMe$1 = any;
|
|
51
|
-
declare global {
|
|
52
|
-
var __ENVIRONMENT_CONTEXT_KEY: EnvironmentContext;
|
|
53
|
-
}
|
|
54
|
-
declare enum PlatformEnvironment {
|
|
55
|
-
Worker = "Worker",
|
|
56
|
-
Frame = "Frame",
|
|
57
|
-
ComponentPanel = "ComponentPanel"
|
|
58
|
-
}
|
|
59
|
-
interface IEnvironmentContext {
|
|
60
|
-
environment: PlatformEnvironment;
|
|
61
|
-
privateApi: WithPromiseFunctions<IPrivateAPIFixMe$1>;
|
|
62
|
-
events: PlatformAppEventEmitter;
|
|
63
|
-
/**
|
|
64
|
-
* Probably, we need to rename this prop
|
|
65
|
-
*/
|
|
66
|
-
applicationAPIs?: Record<string, any>;
|
|
67
|
-
}
|
|
68
|
-
declare class EnvironmentContext {
|
|
69
|
-
private environmentContext;
|
|
70
|
-
private static status;
|
|
71
|
-
static inject(context: IEnvironmentContext): Promise<void>;
|
|
72
|
-
static getInstance(): Promise<EnvironmentContext>;
|
|
73
|
-
constructor(environmentContext: IEnvironmentContext);
|
|
74
|
-
getPrivateAPI(): WithPromiseFunctions<any>;
|
|
75
|
-
getEvents(): PlatformAppEventEmitter;
|
|
76
|
-
getApplicationAPIs(): Record<string, any>;
|
|
77
|
-
getEnvironment(): PlatformEnvironment;
|
|
78
|
-
}
|
|
79
|
-
declare global {
|
|
80
|
-
var __APPLICATION_CONTEXT_KEY: ApplicationContext<IApplicationContext>;
|
|
81
|
-
}
|
|
82
|
-
type IEditorApplicationContext = {
|
|
83
|
-
appDefinitionId: string;
|
|
84
|
-
};
|
|
85
|
-
type IAddonContext = {
|
|
86
|
-
appDefinitionId: string;
|
|
87
|
-
appDefinitionName: string;
|
|
88
|
-
data: {
|
|
89
|
-
toolPanelConfig: {
|
|
90
|
-
url: string;
|
|
91
|
-
width: string;
|
|
92
|
-
height: string;
|
|
93
|
-
initialPosition: {
|
|
94
|
-
x: string;
|
|
95
|
-
y: string;
|
|
96
|
-
};
|
|
97
|
-
};
|
|
98
|
-
};
|
|
99
|
-
};
|
|
100
|
-
type IApplicationContext = IEditorApplicationContext | IAddonContext;
|
|
101
|
-
declare class ApplicationContext<TContext extends IApplicationContext> {
|
|
102
|
-
private applicationContext;
|
|
103
|
-
private environment;
|
|
104
|
-
private static status;
|
|
105
|
-
/**
|
|
106
|
-
* TODO: use generics for context type
|
|
107
|
-
* - application
|
|
108
|
-
* - editor
|
|
109
|
-
*/
|
|
110
|
-
static inject<TContext extends IApplicationContext>(context: TContext): Promise<void>;
|
|
111
|
-
static getInstance<TContext extends IApplicationContext>(): Promise<ApplicationContext<TContext>>;
|
|
112
|
-
private events;
|
|
113
|
-
constructor(applicationContext: TContext, environment: EnvironmentContext);
|
|
114
|
-
getAppDefinitionId(): string;
|
|
115
|
-
getBindings(): TContext;
|
|
116
|
-
getEvents(): ApplicationBoundEvents;
|
|
117
|
-
getPrivateAPI(): _wix_editor_platform_transport.WithPromiseFunctions<any>;
|
|
118
|
-
getPrivateApplicationAPI(): any;
|
|
119
|
-
}
|
|
120
|
-
//# sourceMappingURL=index.d.ts.map
|
|
2
|
+
import * as _wix_editor_platform_contexts from '@wix/editor-platform-contexts';
|
|
3
|
+
import { ApplicationBoundEvents, ApplicationContext } from '@wix/editor-platform-contexts';
|
|
4
|
+
import { IPlatformEditorReadyEvent } from '@wix/public-editor-platform-events';
|
|
121
5
|
|
|
122
6
|
declare class ApplicationLifecycle {
|
|
123
7
|
private events;
|
|
@@ -134,20 +18,13 @@ declare class ApplicationLifecycle {
|
|
|
134
18
|
}
|
|
135
19
|
|
|
136
20
|
declare enum EditorPlatformApplicationErrorCode {
|
|
137
|
-
ApplicationRuntimeError = "ApplicationRuntimeError"
|
|
138
|
-
ApplicationCreationError = "ApplicationCreationError",
|
|
139
|
-
ApplicationLoadError = "ApplicationLoadError",
|
|
140
|
-
ApplicationFetchError = "ApplicationFetchError",
|
|
141
|
-
ApplicationExecuteError = "ApplicationExecuteError",
|
|
142
|
-
ApplicationWasRemoved = "ApplicationWasRemoved",
|
|
143
|
-
UndefinedApiMethod = "UndefinedApiMethod",
|
|
144
|
-
ApplicationIsNotMutable = "ApplicationIsNotMutable",
|
|
145
|
-
FailedToGetPrivateAPI = "FailedToGetPrivateAPI",
|
|
146
|
-
ClientAuthError = "ClientAuthError"
|
|
21
|
+
ApplicationRuntimeError = "ApplicationRuntimeError"
|
|
147
22
|
}
|
|
148
23
|
|
|
149
|
-
|
|
150
|
-
|
|
24
|
+
/**
|
|
25
|
+
* TODO: use this enum
|
|
26
|
+
* import {ApplicationContextType} from "@wix/editor-platform-contexts";
|
|
27
|
+
*/
|
|
151
28
|
declare enum ApplicationType {
|
|
152
29
|
EditorAddon = "EDITOR_ADDON",
|
|
153
30
|
Platform = "PLATFORM"
|
|
@@ -173,15 +50,15 @@ declare class ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {
|
|
|
173
50
|
/**
|
|
174
51
|
* TODO: should accept generic type
|
|
175
52
|
*/
|
|
176
|
-
declare abstract class EditorPlatformApplication<
|
|
53
|
+
declare abstract class EditorPlatformApplication<TPublicAPI = unknown, TPrivateAPI = unknown> {
|
|
177
54
|
#private;
|
|
178
55
|
readonly type: ApplicationType;
|
|
179
56
|
appDefinitionId: string;
|
|
180
57
|
state: 'READY' | 'REMOVED';
|
|
181
58
|
lifecycle: ApplicationLifecycle;
|
|
182
|
-
protected constructor(type: ApplicationType, context: ApplicationContext
|
|
183
|
-
protected get context(): ApplicationContext
|
|
184
|
-
get events(): ApplicationBoundEvents;
|
|
59
|
+
protected constructor(type: ApplicationType, context: ApplicationContext);
|
|
60
|
+
protected get context(): ApplicationContext;
|
|
61
|
+
get events(): _wix_editor_platform_contexts.ApplicationBoundEvents;
|
|
185
62
|
setManifest(manifest: any): void;
|
|
186
63
|
getManifest(): any;
|
|
187
64
|
exposePublicAPI(api: TPublicAPI): ChainAPIConfiguration<TPublicAPI, TPrivateAPI>;
|
|
@@ -219,67 +96,16 @@ declare abstract class EditorPlatformApplication<TContext extends IApplicationCo
|
|
|
219
96
|
};
|
|
220
97
|
}
|
|
221
98
|
|
|
222
|
-
declare class WixEditorPlatformApplication<TPublicAPI = unknown, TPrivateAPI = unknown> extends EditorPlatformApplication<
|
|
99
|
+
declare class WixEditorPlatformApplication<TPublicAPI = unknown, TPrivateAPI = unknown> extends EditorPlatformApplication<TPublicAPI, TPrivateAPI> {
|
|
223
100
|
static create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>>;
|
|
224
|
-
constructor(context: ApplicationContext
|
|
101
|
+
constructor(context: ApplicationContext);
|
|
225
102
|
}
|
|
226
103
|
|
|
227
|
-
declare class WixEditorPlatformAddon<TPublicAPI = unknown, TPrivateAPI = unknown> extends EditorPlatformApplication<
|
|
104
|
+
declare class WixEditorPlatformAddon<TPublicAPI = unknown, TPrivateAPI = unknown> extends EditorPlatformApplication<TPublicAPI, TPrivateAPI> {
|
|
228
105
|
static create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>>;
|
|
229
|
-
constructor(context: ApplicationContext
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
declare enum PlatformConsumerEnvironmentAPIType {
|
|
233
|
-
Frame = "PLATFORM_FRAME_API",
|
|
234
|
-
Worker = "PLATFORM_WORKER_API"
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* rename these entities -> API to Env
|
|
238
|
-
*/
|
|
239
|
-
declare abstract class AbstractEnvironmentAPI<TEnv extends PlatformConsumerEnvironmentAPIType> {
|
|
240
|
-
protected env: TEnv;
|
|
241
|
-
/**
|
|
242
|
-
* NOTE: we can't `type` declare getter within current abstract class
|
|
243
|
-
* because then after transferring API between threads this getter becomes promise,
|
|
244
|
-
* which is not expected
|
|
245
|
-
*
|
|
246
|
-
* get type() {
|
|
247
|
-
* return this.env;
|
|
248
|
-
* }
|
|
249
|
-
*/
|
|
250
|
-
abstract type: TEnv;
|
|
251
|
-
protected constructor(env: TEnv);
|
|
252
|
-
abstract create(): void;
|
|
253
|
-
abstract initEnvironment(props: unknown): void;
|
|
254
|
-
}
|
|
255
|
-
|
|
256
|
-
declare class PlatformFrameAPI extends AbstractEnvironmentAPI<PlatformConsumerEnvironmentAPIType.Frame> {
|
|
257
|
-
#private;
|
|
258
|
-
type: PlatformConsumerEnvironmentAPIType.Frame;
|
|
259
|
-
constructor();
|
|
260
|
-
create(): void;
|
|
261
|
-
initEnvironment(props: {
|
|
262
|
-
appDefinitionId: string;
|
|
263
|
-
privateAPI: IPrivateAPIFixMe;
|
|
264
|
-
applicationPrivateAPI: any;
|
|
265
|
-
}): Promise<void>;
|
|
266
|
-
notify(event: IPlatformPrivateEvent): void;
|
|
267
|
-
subscribe(cb: (event: IPlatformAppEvent) => void): void;
|
|
268
|
-
}
|
|
269
|
-
|
|
270
|
-
declare class PlatformWorkerAPI extends AbstractEnvironmentAPI<PlatformConsumerEnvironmentAPIType.Worker> {
|
|
271
|
-
#private;
|
|
272
|
-
type: PlatformConsumerEnvironmentAPIType.Worker;
|
|
273
|
-
constructor();
|
|
274
|
-
create(): void;
|
|
275
|
-
initEnvironment(props: {
|
|
276
|
-
buildPrivateAPI: (config: any) => IPrivateAPIFixMe;
|
|
277
|
-
}): Promise<void>;
|
|
278
|
-
notify(event: IPlatformPrivateEvent): Promise<void>;
|
|
279
|
-
subscribe(cb: (event: IPlatformAppEvent) => void): void;
|
|
280
|
-
runApplication(app: IApplicationSpec): Promise<void>;
|
|
281
|
-
waitReady(): Promise<this>;
|
|
106
|
+
constructor(context: ApplicationContext);
|
|
282
107
|
}
|
|
283
108
|
|
|
284
|
-
export { ApplicationType, EditorPlatformApplication,
|
|
109
|
+
export { ApplicationType, EditorPlatformApplication, WixEditorPlatformAddon, WixEditorPlatformApplication };
|
|
110
|
+
export type { IApplicationAPI, IApplicationRegistry };
|
|
285
111
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sources":["../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/types.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\nimport { hash } from '../hash';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${hash()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","/**\n * TODO: use this enum\n * import {ApplicationContextType} from \"@wix/editor-platform-contexts\";\n */\nexport enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport { ApplicationContext } from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext,\n ) {\n this.#context = context;\n\n this.appDefinitionId = this.#context.getAppDefinitionId()!;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","import { ApplicationContext } from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext) {\n super(ApplicationType.Platform, context);\n }\n}\n","import { ApplicationContext } from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":[],"mappings":";;;;;AAEO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACbO;AACP;AACA;;ACHA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;;ACHA;AACA;AACA;AACO;AACP;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClEO;AACP;AACA;AACA;;ACHO;AACP;AACA;AACA;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/editor-application",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.395.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -18,29 +18,6 @@
|
|
|
18
18
|
"import": "./dist/esm/index.js",
|
|
19
19
|
"require": "./dist/cjs/index.js",
|
|
20
20
|
"types": "./dist/types/index.d.ts"
|
|
21
|
-
},
|
|
22
|
-
"./platform-frame": {
|
|
23
|
-
"import": "./dist/esm/platform-frame/index.js",
|
|
24
|
-
"require": "./dist/cjs/platform-frame/index.js"
|
|
25
|
-
},
|
|
26
|
-
"./platform-worker": {
|
|
27
|
-
"import": "./dist/esm/platform-worker/index.js",
|
|
28
|
-
"require": "./dist/cjs/platform-worker/index.js"
|
|
29
|
-
},
|
|
30
|
-
"./environment-api": {
|
|
31
|
-
"import": "./dist/esm/environment-api/index.js",
|
|
32
|
-
"require": "./dist/cjs/environment-api/index.js",
|
|
33
|
-
"types": "./dist/types/environment-api/index.d.ts"
|
|
34
|
-
},
|
|
35
|
-
"./platform-frame-api": {
|
|
36
|
-
"import": "./dist/esm/platform-frame-api/index.js",
|
|
37
|
-
"require": "./dist/cjs/platform-frame-api/index.js",
|
|
38
|
-
"types": "./dist/types/platform-frame-api/index.d.ts"
|
|
39
|
-
},
|
|
40
|
-
"./platform-worker-api": {
|
|
41
|
-
"import": "./dist/esm/platform-worker-api/index.js",
|
|
42
|
-
"require": "./dist/cjs/platform-worker-api/index.js",
|
|
43
|
-
"types": "./dist/types/platform-worker-api/index.d.ts"
|
|
44
21
|
}
|
|
45
22
|
},
|
|
46
23
|
"keywords": [],
|
|
@@ -54,21 +31,19 @@
|
|
|
54
31
|
"license": "UNLICENSED",
|
|
55
32
|
"devDependencies": {
|
|
56
33
|
"@rollup/plugin-node-resolve": "^15.3.1",
|
|
57
|
-
"
|
|
58
|
-
"esbuild": "^0.24.2",
|
|
34
|
+
"esbuild": "^0.25.5",
|
|
59
35
|
"eslint": "^8.57.1",
|
|
60
|
-
"prettier": "^3.
|
|
36
|
+
"prettier": "^3.6.2",
|
|
61
37
|
"rollup": "^3.29.5",
|
|
62
|
-
"rollup-plugin-dts": "^6.
|
|
38
|
+
"rollup-plugin-dts": "^6.2.1",
|
|
63
39
|
"rollup-plugin-esbuild": "^5.0.0",
|
|
64
|
-
"typescript": "^5.
|
|
40
|
+
"typescript": "^5.8.3"
|
|
65
41
|
},
|
|
66
42
|
"dependencies": {
|
|
67
|
-
"@wix/editor-platform-
|
|
68
|
-
"@wix/public-editor-platform-errors": "1.
|
|
69
|
-
"@wix/public-editor-platform-events": "1.
|
|
70
|
-
"@wix/public-editor-platform-interfaces": "1.
|
|
71
|
-
"@wix/sdk": "1.12.9"
|
|
43
|
+
"@wix/editor-platform-contexts": "1.82.0",
|
|
44
|
+
"@wix/public-editor-platform-errors": "1.9.0",
|
|
45
|
+
"@wix/public-editor-platform-events": "1.317.0",
|
|
46
|
+
"@wix/public-editor-platform-interfaces": "1.26.0"
|
|
72
47
|
},
|
|
73
48
|
"publishConfig": {
|
|
74
49
|
"registry": "https://registry.npmjs.org/",
|
|
@@ -81,7 +56,7 @@
|
|
|
81
56
|
"wix": {
|
|
82
57
|
"artifact": {
|
|
83
58
|
"groupId": "com.wixpress",
|
|
84
|
-
"artifactId": "
|
|
59
|
+
"artifactId": "editor-platform-application",
|
|
85
60
|
"targets": {
|
|
86
61
|
"static": true
|
|
87
62
|
}
|
|
@@ -92,5 +67,5 @@
|
|
|
92
67
|
]
|
|
93
68
|
}
|
|
94
69
|
},
|
|
95
|
-
"falconPackageHash": "
|
|
70
|
+
"falconPackageHash": "ba42579e506a2686ece75df9e89ba6bff406e7d7e410c392de8da32d"
|
|
96
71
|
}
|