@wix/editor-application 1.337.0 → 1.339.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.
Files changed (38) hide show
  1. package/dist/cjs/environment-api/index.js +154 -65
  2. package/dist/cjs/environment-api/index.js.map +1 -1
  3. package/dist/cjs/index.js +109 -20
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/platform-frame/index.js +112 -45
  6. package/dist/cjs/platform-frame/index.js.map +1 -1
  7. package/dist/cjs/platform-frame-api/index.js +112 -45
  8. package/dist/cjs/platform-frame-api/index.js.map +1 -1
  9. package/dist/cjs/platform-worker/index.js +143 -65
  10. package/dist/cjs/platform-worker/index.js.map +1 -1
  11. package/dist/cjs/platform-worker-api/index.js +132 -54
  12. package/dist/cjs/platform-worker-api/index.js.map +1 -1
  13. package/dist/esm/environment-api/index.js +155 -66
  14. package/dist/esm/environment-api/index.js.map +1 -1
  15. package/dist/esm/index.js +110 -21
  16. package/dist/esm/index.js.map +1 -1
  17. package/dist/esm/platform-frame/index.js +113 -46
  18. package/dist/esm/platform-frame/index.js.map +1 -1
  19. package/dist/esm/platform-frame-api/index.js +113 -46
  20. package/dist/esm/platform-frame-api/index.js.map +1 -1
  21. package/dist/esm/platform-worker/index.js +144 -66
  22. package/dist/esm/platform-worker/index.js.map +1 -1
  23. package/dist/esm/platform-worker-api/index.js +132 -54
  24. package/dist/esm/platform-worker-api/index.js.map +1 -1
  25. package/dist/statics/environment-api/index.js +157 -69
  26. package/dist/statics/environment-api/index.js.map +1 -1
  27. package/dist/statics/index.js +112 -24
  28. package/dist/statics/index.js.map +1 -1
  29. package/dist/statics/platform-frame/index.js +115 -49
  30. package/dist/statics/platform-frame/index.js.map +1 -1
  31. package/dist/statics/platform-frame-api/index.js +115 -49
  32. package/dist/statics/platform-frame-api/index.js.map +1 -1
  33. package/dist/statics/platform-worker/index.js +146 -69
  34. package/dist/statics/platform-worker/index.js.map +1 -1
  35. package/dist/statics/platform-worker-api/index.js +134 -57
  36. package/dist/statics/platform-worker-api/index.js.map +1 -1
  37. package/dist/types/index.d.ts +5 -4
  38. package/package.json +4 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../editor-platform-application-context/dist/esm/index.js","../../../src/Events/WorkerEventsBridge.ts","../../../src/PlatformEnvironmentAPI/AbstractEnvironmentAPI.ts","../../../src/PlatformEnvironmentAPI/PlatformFrameAPI/PlatformFrameAPI.ts","../../../src/errors.ts","../../../src/PlatformApplicationContainer/executeApplication.ts","../../../src/PlatformApplicationContainer/PlatformApplicationContainer.ts","../../../src/PlatformEnvironmentAPI/PlatformWorkerAPI/PlatformWorkerAPI.ts"],"sourcesContent":["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 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 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","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 IPlatformPrivateEvent,\n PlatformAppEventEmitter,\n IPlatformAppEvent,\n} from '@wix/public-editor-platform-events';\nimport {\n EnvironmentContext,\n ApplicationContext,\n PlatformEnvironment,\n} from '@wix/editor-application-context';\n\nimport { WorkerEventsBridge } from '../../Events';\nimport {\n AbstractEnvironmentAPI,\n PlatformConsumerEnvironmentAPIType,\n} from '../AbstractEnvironmentAPI';\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 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}\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 {\n APPLICATION_CONTEXT_KEY,\n EnvironmentContext,\n ApplicationContext,\n} from '@wix/editor-application-context';\nimport {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n} from '@wix/public-editor-platform-events';\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 undefined,\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';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { EditorPlatformApplication } from '../EditorPlatformApplication';\nimport type { IApplicationSpec, IPrivateAPIFixMe } from '../types';\nimport { executeApplication } from './executeApplication';\n\nexport class PlatformApplicationContainer {\n private apps: Record<string, EditorPlatformApplication> = {};\n\n constructor(\n private privateApi: IPrivateAPIFixMe,\n private events: PlatformAppEventEmitter,\n ) {\n this.events.subscribe((event) => {\n switch (event.type) {\n case PlatformAppEvent.HostEvent: {\n if (event.payload.type === EventType.removeAppCompleted) {\n 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(app: IApplicationSpec) {\n const bundle = await this.loadApplication(app);\n const instance = await this.executeApplication(app, bundle);\n\n this.setApplication(app.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 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(app: IApplicationSpec) {\n const url = app.url;\n\n return this.events.withEvent(\n this.events.factories.createApplicationLoadEvent(app, url),\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(app.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(app: IApplicationSpec, bundle: string) {\n return this.events.withEvent(\n this.events.factories.createApplicationExecuteEvent(app, app.url),\n async () => {\n const { instance } = await executeApplication(this.events, app, bundle);\n return instance;\n },\n );\n }\n}\n","import {\n EnvironmentContext,\n PlatformEnvironment,\n} from '@wix/editor-application-context';\n\nimport { 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';\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":["PlatformConsumerEnvironmentAPIType","EditorPlatformApplicationErrorCode"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../src/Events/WorkerEventsBridge.ts","../../../src/PlatformEnvironmentAPI/AbstractEnvironmentAPI.ts","../../../../editor-platform-application-context/dist/esm/index.js","../../../src/PlatformEnvironmentAPI/PlatformFrameAPI/PlatformFrameAPI.ts","../../../src/errors.ts","../../../src/PlatformApplicationContainer/executeApplication.ts","../../../src/PlatformApplicationContainer/PlatformApplicationContainer.ts","../../../src/PlatformEnvironmentAPI/PlatformWorkerAPI/PlatformWorkerAPI.ts"],"sourcesContent":["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 { createErrorBuilder, BaseError } from '@wix/public-editor-platform-errors';\nimport { PlatformAppEvent, PlatformAppEventEmitter } 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\nconst createSDKHost = (props) => {\n const environmentContext = new EnvironmentContext({\n environment: props.environment,\n privateApi: props.privateAPI,\n events: props.events ?? new PlatformAppEventEmitter(),\n applicationAPIs: props.applicationPrivateAPI ? {\n [props.appDefinitionId]: props.applicationPrivateAPI\n } : {}\n });\n const applicationContext = new ApplicationContext(\n {\n appDefinitionId: props.appDefinitionId,\n appDefinitionName: \"\"\n },\n environmentContext\n );\n return {\n environment: {},\n channel: {\n observeState: async () => {\n return {\n disconnect() {\n }\n };\n }\n },\n environmentContext,\n applicationContext\n };\n};\n\nconst auth = (appDefinitionId, privateAPI) => {\n return {\n getAuthHeaders: async () => {\n if (!appDefinitionId) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.ClientAuthError\n );\n }\n const authInstance = await privateAPI.info.getAppInstance(appDefinitionId);\n if (authInstance === void 0) {\n throw createEditorPlatformApplicationContextError(\n EditorPlatformApplicationContextErrorCode.ClientAuthError,\n \"empty auth instance\"\n ).withAppDefinitionId(appDefinitionId);\n }\n return {\n headers: {\n Authorization: authInstance\n }\n };\n }\n };\n};\n\nexport { APPLICATION_CONTEXT_KEY, ApplicationBoundEvents, ApplicationContext, ENVIRONMENT_CONTEXT_KEY, EnvironmentContext, PlatformEnvironment, auth, createSDKHost };\n//# sourceMappingURL=index.js.map\n","import { IPrivateAPIFixMe } from '../../types';\n\nimport {\n IPlatformAppEvent,\n IPlatformPrivateEvent,\n PlatformAppEventEmitter,\n} from '@wix/public-editor-platform-events';\nimport { createClient } from '@wix/sdk';\n\nimport { WorkerEventsBridge } from '../../Events';\nimport {\n AbstractEnvironmentAPI,\n PlatformConsumerEnvironmentAPIType,\n} from '../AbstractEnvironmentAPI';\nimport {\n ApplicationContext,\n createSDKHost,\n auth,\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 * https://github.com/wix-private/public-sdk?tab=readme-ov-file#providing-a-contextual-wixclient\n * init wix client and its contexts,\n * so sdk shapes will be able to use these client instance our of the box\n */\n const client = createClient({\n auth: auth(appDefinitionId, privateAPI),\n host: createSDKHost({\n appDefinitionId,\n privateAPI: this.#privateAPI,\n environment: PlatformEnvironment.Frame,\n events: this.#events,\n applicationPrivateAPI: this.#applicationPrivateAPI,\n }),\n });\n\n client.enableContext('global');\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 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 {\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';\nimport { WixClient } from '@wix/sdk';\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 client: WixClient,\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 '$wixContext',\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 { client },\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';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { EditorPlatformApplication } from '../EditorPlatformApplication';\nimport type { IApplicationSpec, IPrivateAPIFixMe } from '../types';\nimport { executeApplication } from './executeApplication';\nimport { createClient } from '@wix/sdk';\nimport {\n ApplicationContext,\n EnvironmentContext,\n PlatformEnvironment,\n auth,\n createSDKHost,\n} from '@wix/editor-application-context';\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(app: IApplicationSpec) {\n const bundle = await this.loadApplication(app);\n const instance = await this.executeApplication(app, bundle);\n\n this.setApplication(app.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(app: IApplicationSpec) {\n const url = app.url;\n\n return this.#events.withEvent(\n this.#events.factories.createApplicationLoadEvent(app, 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(app.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(app: IApplicationSpec, bundle: string) {\n return this.#events.withEvent(\n this.#events.factories.createApplicationExecuteEvent(app, app.url),\n async () => {\n const client = this.#createWixClient(app.appDefinitionId);\n\n const { instance } = await executeApplication(\n this.#events,\n client,\n app,\n bundle,\n );\n return instance;\n },\n );\n }\n\n #createWixClient(appDefinitionId: string) {\n return createClient({\n auth: auth(appDefinitionId, this.#privateAPI),\n host: createSDKHost({\n appDefinitionId,\n privateAPI: this.#privateAPI,\n environment: PlatformEnvironment.Worker,\n events: this.#events,\n applicationPrivateAPI: {},\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":["PlatformConsumerEnvironmentAPIType","EditorPlatformApplicationErrorCode"],"mappings":"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"}
package/dist/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
- import { PlatformAppEvent, PlatformPrivateEvent, PlatformLifecycleEvent, PlatformAppEventEmitter } from '@wix/public-editor-platform-events';
1
+ import { PlatformAppEvent, PlatformAppEventEmitter, PlatformPrivateEvent, PlatformLifecycleEvent } from '@wix/public-editor-platform-events';
2
2
  import { EventType } from '@wix/public-editor-platform-interfaces';
3
3
  import { createErrorBuilder, BaseError } from '@wix/public-editor-platform-errors';
4
+ import { createClient } from '@wix/sdk';
4
5
 
5
6
  class ApplicationLifecycle {
6
7
  constructor(events) {
@@ -51,6 +52,7 @@ var EditorPlatformApplicationErrorCode = /* @__PURE__ */ ((EditorPlatformApplica
51
52
  EditorPlatformApplicationErrorCode2["UndefinedApiMethod"] = "UndefinedApiMethod";
52
53
  EditorPlatformApplicationErrorCode2["ApplicationIsNotMutable"] = "ApplicationIsNotMutable";
53
54
  EditorPlatformApplicationErrorCode2["FailedToGetPrivateAPI"] = "FailedToGetPrivateAPI";
55
+ EditorPlatformApplicationErrorCode2["ClientAuthError"] = "ClientAuthError";
54
56
  return EditorPlatformApplicationErrorCode2;
55
57
  })(EditorPlatformApplicationErrorCode || {});
56
58
  class EditorPlatformApplicationError extends BaseError {
@@ -155,6 +157,7 @@ class EditorPlatformApplication {
155
157
 
156
158
  var EditorPlatformApplicationContextErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationContextErrorCode2) => {
157
159
  EditorPlatformApplicationContextErrorCode2["IncorrectEnvironment"] = "IncorrectEnvironment";
160
+ EditorPlatformApplicationContextErrorCode2["ClientAuthError"] = "ClientAuthError";
158
161
  return EditorPlatformApplicationContextErrorCode2;
159
162
  })(EditorPlatformApplicationContextErrorCode || {});
160
163
  class EditorPlatformApplicationContextError extends BaseError {
@@ -317,6 +320,7 @@ const ENVIRONMENT_CONTEXT_KEY = "__ENVIRONMENT_CONTEXT_KEY";
317
320
  var PlatformEnvironment = /* @__PURE__ */ ((PlatformEnvironment2) => {
318
321
  PlatformEnvironment2["Worker"] = "Worker";
319
322
  PlatformEnvironment2["Frame"] = "Frame";
323
+ PlatformEnvironment2["ComponentPanel"] = "ComponentPanel";
320
324
  return PlatformEnvironment2;
321
325
  })(PlatformEnvironment || {});
322
326
  class EnvironmentContext {
@@ -421,6 +425,59 @@ class ApplicationContext {
421
425
  return this.environment.getApplicationAPIs()[appDefinitionId];
422
426
  }
423
427
  }
428
+ const createSDKHost = (props) => {
429
+ const environmentContext = new EnvironmentContext({
430
+ environment: props.environment,
431
+ privateApi: props.privateAPI,
432
+ events: props.events ?? new PlatformAppEventEmitter(),
433
+ applicationAPIs: props.applicationPrivateAPI ? {
434
+ [props.appDefinitionId]: props.applicationPrivateAPI
435
+ } : {}
436
+ });
437
+ const applicationContext = new ApplicationContext(
438
+ {
439
+ appDefinitionId: props.appDefinitionId,
440
+ appDefinitionName: ""
441
+ },
442
+ environmentContext
443
+ );
444
+ return {
445
+ environment: {},
446
+ channel: {
447
+ observeState: async () => {
448
+ return {
449
+ disconnect() {
450
+ }
451
+ };
452
+ }
453
+ },
454
+ environmentContext,
455
+ applicationContext
456
+ };
457
+ };
458
+ const auth = (appDefinitionId, privateAPI) => {
459
+ return {
460
+ getAuthHeaders: async () => {
461
+ if (!appDefinitionId) {
462
+ throw createEditorPlatformApplicationContextError(
463
+ EditorPlatformApplicationContextErrorCode.ClientAuthError
464
+ );
465
+ }
466
+ const authInstance = await privateAPI.info.getAppInstance(appDefinitionId);
467
+ if (authInstance === void 0) {
468
+ throw createEditorPlatformApplicationContextError(
469
+ EditorPlatformApplicationContextErrorCode.ClientAuthError,
470
+ "empty auth instance"
471
+ ).withAppDefinitionId(appDefinitionId);
472
+ }
473
+ return {
474
+ headers: {
475
+ Authorization: authInstance
476
+ }
477
+ };
478
+ }
479
+ };
480
+ };
424
481
 
425
482
  var ApplicationType = /* @__PURE__ */ ((ApplicationType2) => {
426
483
  ApplicationType2["EditorAddon"] = "EDITOR_ADDON";
@@ -582,6 +639,17 @@ class PlatformFrameAPI extends AbstractEnvironmentAPI {
582
639
  appDefinitionId,
583
640
  appDefinitionName: ""
584
641
  });
642
+ const client = createClient({
643
+ auth: auth(appDefinitionId, privateAPI),
644
+ host: createSDKHost({
645
+ appDefinitionId,
646
+ privateAPI: this.#privateAPI,
647
+ environment: PlatformEnvironment.Frame,
648
+ events: this.#events,
649
+ applicationPrivateAPI: this.#applicationPrivateAPI
650
+ })
651
+ });
652
+ client.enableContext("global");
585
653
  }
586
654
  notify(event) {
587
655
  this.#eventsBridge.notify(event);
@@ -592,8 +660,9 @@ class PlatformFrameAPI extends AbstractEnvironmentAPI {
592
660
  }
593
661
 
594
662
  const APPLICATION_REGISTRY_KEY = "__APPLICATION_REGISTRY_KEY";
595
- async function executeApplication(events, spec, bundle) {
663
+ async function executeApplication(events, client, spec, bundle) {
596
664
  const executable = new Function(
665
+ "$wixContext",
597
666
  APPLICATION_CONTEXT_KEY,
598
667
  APPLICATION_REGISTRY_KEY,
599
668
  bundle
@@ -617,7 +686,7 @@ async function executeApplication(events, spec, bundle) {
617
686
  try {
618
687
  const context = { ...spec };
619
688
  executable.call(
620
- void 0,
689
+ { client },
621
690
  new ApplicationContext(context, await EnvironmentContext.getInstance()),
622
691
  applicationRegistryCallback
623
692
  );
@@ -659,15 +728,18 @@ async function executeApplication(events, spec, bundle) {
659
728
  }
660
729
 
661
730
  class PlatformApplicationContainer {
731
+ #apps = {};
732
+ #privateAPI;
733
+ #events;
662
734
  constructor(privateApi, events) {
663
- this.privateApi = privateApi;
664
- this.events = events;
665
- this.events.subscribe((event) => {
735
+ this.#privateAPI = privateApi;
736
+ this.#events = events;
737
+ this.#events.subscribe((event) => {
666
738
  switch (event.type) {
667
739
  case PlatformAppEvent.HostEvent: {
668
740
  if (event.payload.type === EventType.removeAppCompleted) {
669
- this.events.withEvent(
670
- this.events.factories.createApplicationRemovedEvent(
741
+ void this.#events.withEvent(
742
+ this.#events.factories.createApplicationRemovedEvent(
671
743
  event.payload.appDefinitionId
672
744
  ),
673
745
  () => {
@@ -680,7 +752,6 @@ class PlatformApplicationContainer {
680
752
  }
681
753
  });
682
754
  }
683
- apps = {};
684
755
  async runApplication(app) {
685
756
  const bundle = await this.loadApplication(app);
686
757
  const instance = await this.executeApplication(app, bundle);
@@ -688,32 +759,32 @@ class PlatformApplicationContainer {
688
759
  return instance;
689
760
  }
690
761
  setApplication(appDefId, instance) {
691
- this.apps[appDefId] = instance;
692
- this.events.withEvent(
693
- this.events.factories.createApplicationApiInitEvent(
762
+ this.#apps[appDefId] = instance;
763
+ void this.#events.withEvent(
764
+ this.#events.factories.createApplicationApiInitEvent(
694
765
  appDefId,
695
766
  // TODO: both types are set here...
696
767
  // @ts-expect-error TODO: fix me
697
768
  instance?.api?.private ? "private" : "public"
698
769
  ),
699
770
  () => {
700
- this.privateApi.applicationManager.setApplication(instance);
771
+ this.#privateAPI.applicationManager.setApplication(instance);
701
772
  }
702
773
  );
703
774
  }
704
775
  getApplication(appDefId) {
705
- return this.apps[appDefId];
776
+ return this.#apps[appDefId];
706
777
  }
707
778
  getAppDefinitionIds() {
708
- return Object.keys(this.apps);
779
+ return Object.keys(this.#apps);
709
780
  }
710
781
  removeApplication(appDefinitionId) {
711
- delete this.apps[appDefinitionId];
782
+ delete this.#apps[appDefinitionId];
712
783
  }
713
784
  async loadApplication(app) {
714
785
  const url = app.url;
715
- return this.events.withEvent(
716
- this.events.factories.createApplicationLoadEvent(app, url),
786
+ return this.#events.withEvent(
787
+ this.#events.factories.createApplicationLoadEvent(app, url),
717
788
  async () => {
718
789
  try {
719
790
  return await this.loadApplicationBundle(url);
@@ -738,14 +809,32 @@ class PlatformApplicationContainer {
738
809
  return res.text();
739
810
  }
740
811
  async executeApplication(app, bundle) {
741
- return this.events.withEvent(
742
- this.events.factories.createApplicationExecuteEvent(app, app.url),
812
+ return this.#events.withEvent(
813
+ this.#events.factories.createApplicationExecuteEvent(app, app.url),
743
814
  async () => {
744
- const { instance } = await executeApplication(this.events, app, bundle);
815
+ const client = this.#createWixClient(app.appDefinitionId);
816
+ const { instance } = await executeApplication(
817
+ this.#events,
818
+ client,
819
+ app,
820
+ bundle
821
+ );
745
822
  return instance;
746
823
  }
747
824
  );
748
825
  }
826
+ #createWixClient(appDefinitionId) {
827
+ return createClient({
828
+ auth: auth(appDefinitionId, this.#privateAPI),
829
+ host: createSDKHost({
830
+ appDefinitionId,
831
+ privateAPI: this.#privateAPI,
832
+ environment: PlatformEnvironment.Worker,
833
+ events: this.#events,
834
+ applicationPrivateAPI: {}
835
+ })
836
+ });
837
+ }
749
838
  }
750
839
 
751
840
  class PlatformWorkerAPI extends AbstractEnvironmentAPI {