@wix/editor-application 1.338.0 → 1.340.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"],"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"],"names":["BaseError","createErrorBuilder","PlatformAppEvent","PlatformLifecycleEvent","PlatformPrivateEvent","PlatformConsumerEnvironmentAPIType","PlatformAppEventEmitter"],"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"],"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"],"names":["PlatformLifecycleEvent","PlatformAppEvent","PlatformPrivateEvent","PlatformConsumerEnvironmentAPIType","BaseError","createErrorBuilder","PlatformAppEventEmitter","createClient"],"mappings":";;;;;;EAaO,MAAM,kBAAmB,CAAA;EAAA,EAC9B,YAAoB,iBAA4C,EAAA;EAA5C,IAAA,IAAA,CAAA,iBAAA,GAAA,iBAAA,CAAA;EAAA,GAA6C;EAAA;EAAA;EAAA;EAAA,EAK1D,OAAO,KAA8B,EAAA;EAC1C,IAAA,QAAQ,MAAM,IAAM;EAAA,MAClB,KAAKA,iDAAuB,CAAA,WAAA;EAC1B,QAAA,IAAA,CAAK,kBAAkB,MAAO,CAAA;EAAA,UAC5B,GAAG,KAAA;EAAA;EAAA,UAEH,MAAMC,2CAAiB,CAAA,WAAA;EAAA,SACxB,CAAA,CAAA;EACD,QAAA,MAAA;EAAA,MACF,KAAKC,+CAAqB,CAAA,SAAA;EACxB,QAAA,IAAA,CAAK,kBAAkB,MAAO,CAAA;EAAA,UAC5B,GAAG,KAAA;EAAA,UACH,MAAMD,2CAAiB,CAAA,SAAA;EAAA,SACxB,CAAA,CAAA;EACD,QAAA,MAAA;EAAA,KACJ;EAAA,GACF;EAAA;EAAA;EAAA;EAAA,EAKO,UAAU,EAAwC,EAAA;EACvD,IAAK,IAAA,CAAA,iBAAA,CAAkB,SAAU,CAAA,CAAC,KAAU,KAAA;EAC1C,MAAA,EAAA,CAAG,KAAK,CAAA,CAAA;EAAA,KACT,CAAA,CAAA;EAAA,GACH;EACF;;EC7CY,IAAA,kCAAA,qBAAAE,mCAAL,KAAA;EACL,EAAAA,oCAAA,OAAQ,CAAA,GAAA,oBAAA,CAAA;EACR,EAAAA,oCAAA,QAAS,CAAA,GAAA,qBAAA,CAAA;EAFC,EAAAA,OAAAA,mCAAAA,CAAAA;EAAA,CAAA,EAAA,kCAAA,IAAA,EAAA,CAAA,CAAA;EAQL,MAAe,sBAEpB,CAAA;EAAA,EAYU,YAAsB,GAAW,EAAA;EAAX,IAAA,IAAA,CAAA,GAAA,GAAA,GAAA,CAAA;EAC9B,IAAA,IAAA,CAAK,MAAO,EAAA,CAAA;EAAA,GACd;EAIF;;ECzBA,IAAI,yCAAA,qBAA8D,0CAA+C,KAAA;EAC/G,EAAA,0CAAA,CAA2C,sBAAsB,CAAI,GAAA,sBAAA,CAAA;EACrE,EAAA,0CAAA,CAA2C,iBAAiB,CAAI,GAAA,iBAAA,CAAA;EAChE,EAAO,OAAA,0CAAA,CAAA;EACT,CAAG,EAAA,yCAAA,IAA6C,EAAE,CAAA,CAAA;EAClD,MAAM,8CAA8CC,oCAAU,CAAA;EAAA,EAC5D,QAAQ,EAAC,CAAA;EAAA,EACT,WAAA,CAAY,SAAS,IAAM,EAAA;EACzB,IAAM,KAAA,CAAA,OAAA,EAAS,MAAM,2CAA2C,CAAA,CAAA;EAAA,GAClE;EAAA,EACA,QAAQ,GAAK,EAAA;EACX,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,GAAG,IAAA,CAAK,OAAO,GAAI,EAAA,CAAA;EAClC,IAAO,OAAA,IAAA,CAAA;EAAA,GACT;EAAA,EACA,oBAAoB,eAAiB,EAAA;EACnC,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,GAAG,IAAA,CAAK,OAAO,eAAgB,EAAA,CAAA;EAC9C,IAAO,OAAA,IAAA,CAAA;EAAA,GACT;EACF,CAAA;EACA,MAAM,2CAAA,GAA8CC,8CAAmB,qCAAqC,CAAA,CAAA;EAE5G,eAAe,qBAAA,CAAsB,cAAc,UAAY,EAAA;EAC7D,EAAI,IAAA,CAAC,cAAc,IAAM,EAAA;EACvB,IAAO,OAAA,YAAA,CAAA;EAAA,GACT;EACA,EAAA,QAAQ,aAAa,IAAM;EAAA,IACzB,KAAK,2BAAA;EACH,MAAM,MAAA,aAAA,GAAgB,YAAa,CAAA,aAAA,IAAiB,EAAC,CAAA;EACrD,MAAM,MAAA,UAAA,GAAa,MAAM,OAAQ,CAAA,GAAA;EAAA,QAC/B,aAAA,CAAc,GAAI,CAAA,CAAC,GAAQ,KAAA;EACzB,UAAO,OAAA,UAAA,CAAW,UAAW,CAAA,YAAA,CAAa,GAAG,CAAA,CAAA;EAAA,SAC9C,CAAA;EAAA,OACH,CAAA;EACA,MAAO,OAAA;EAAA,QACL,MAAM,YAAa,CAAA,IAAA;EAAA,QACnB,UAAA;EAAA,OACF,CAAA;EAAA,IACF;EACE,MAAO,OAAA,YAAA,CAAA;EAAA,GACX;EACF,CAAA;EAEA,MAAM,sBAAuB,CAAA;EAAA,EAC3B,WAAA,CAAY,eAAiB,EAAA,MAAA,EAAQ,UAAY,EAAA;EAC/C,IAAA,IAAA,CAAK,eAAkB,GAAA,eAAA,CAAA;EACvB,IAAA,IAAA,CAAK,UAAa,GAAA,UAAA,CAAA;EAClB,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;EACd,IAAA,IAAA,CAAK,SAAY,GAAA,MAAA,CAAO,SAAU,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;EAC7C,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;EACvC,IAAA,IAAA,CAAK,gBAAmB,GAAA,MAAA,CAAO,gBAAiB,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;EAC3D,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;EAAA,GACzC;EAAA,EACA,MAAA,CAAA;EAAA,EACA,SAAA,CAAA;EAAA,EACA,MAAA,CAAA;EAAA,EACA,gBAAA,CAAA;EAAA,EACA,MAAA,CAAA;EAAA,EACA,OAAO,KAAO,EAAA;EACZ,IAAA,IAAA,CAAK,OAAO,MAAO,CAAA;EAAA,MACjB,MAAM,KAAM,CAAA,IAAA;EAAA,MACZ,SAAS,KAAM,CAAA,OAAA;EAAA,MACf,IAAM,EAAA;EAAA,QACJ,iBAAiB,IAAK,CAAA,eAAA;EAAA,OACxB;EAAA,KACD,CAAA,CAAA;EAAA,GACH;EAAA,EACA,iBAAA,CAAkB,MAAM,OAAS,EAAA;EAC/B,IAAA,IAAA,CAAK,MAAO,CAAA;EAAA,MACV,MAAMJ,2CAAiB,CAAA,WAAA;EAAA,MACvB,OAAS,EAAA;EAAA,QACP,GAAG,OAAA;EAAA,QACH,IAAA;EAAA,OACF;EAAA,KACD,CAAA,CAAA;EAAA,GACH;EAAA;EAAA;EAAA;EAAA;EAAA,EAKA,gBAAA,CAAiB,WAAW,EAAI,EAAA;EAC9B,IAAA,OAAO,IAAK,CAAA,MAAA,CAAO,SAAU,CAAA,OAAO,KAAU,KAAA;EAC5C,MAAM,MAAA,UAAA,GAAa,MAAM,IAAM,EAAA,eAAA,KAAoB,KAAK,eAAmB,IAAA,KAAA,CAAM,MAAM,eAAoB,KAAA,IAAA,CAAA;EAC3G,MAAA,MAAM,mBAAmB,MAAM,qBAAA,CAAsB,KAAM,CAAA,OAAA,EAAS,KAAK,UAAU,CAAA,CAAA;EACnF,MAAA,IAAI,cAAc,GAAK,EAAA;EACrB,QAAG,EAAA,CAAA,MAAM,kBAAkB,CAAA,CAAA;EAAA,OAClB,MAAA,IAAA,KAAA,CAAM,IAAS,KAAAA,2CAAA,CAAiB,WAAa,EAAA;EACtD,QAAA,IAAI,SAAc,KAAA,KAAA,CAAM,OAAS,EAAA,IAAA,IAAQ,CAAC,UAAY,EAAA;EACpD,UAAG,EAAA,CAAA,MAAM,kBAAkB,CAAA,CAAA;EAAA,SAC7B;EAAA,OACS,MAAA,IAAA,KAAA,CAAM,IAAS,KAAAA,2CAAA,CAAiB,SAAW,EAAA;EACpD,QAAA,IAAI,SAAc,KAAA,KAAA,CAAM,OAAS,EAAA,IAAA,IAAQ,UAAY,EAAA;EACnD,UAAG,EAAA,CAAA,MAAM,kBAAkB,CAAA,CAAA;EAAA,SAC7B;EAAA,OACF;EAAA,KACD,CAAA,CAAA;EAAA,GACH;EACF,CAAA;EAEA,MAAM,qBAAwB,GAAA,GAAA,CAAA;EAC9B,MAAM,yBAA4B,GAAA,EAAA,CAAA;EAClC,MAAM,sBAAuB,CAAA;EAAA,EAC3B,0BAA0B,MAAM;EAAA,GAChC,CAAA;EAAA,EACA,WAAc,GAAA,KAAA,CAAA;EAAA,EACd,GAAA,CAAA;EAAA,EACA,YAAY,IAAM,EAAA;EAChB,IAAK,IAAA,CAAA,GAAA,GAAM,KAAK,IAAI,CAAA,6BAAA,CAAA,CAAA;EACpB,IAAA,IAAI,CAAC,UAAA,CAAW,IAAK,CAAA,GAAG,CAAG,EAAA;EACzB,MAAA,UAAA,CAAW,KAAK,GAAG,CAAA,GAAI,IAAI,OAAA,CAAQ,CAAC,OAAY,KAAA;EAC9C,QAAA,IAAA,CAAK,0BAA0B,MAAM;EACnC,UAAA,IAAA,CAAK,WAAc,GAAA,IAAA,CAAA;EACnB,UAAQ,OAAA,EAAA,CAAA;EAAA,SACV,CAAA;EAAA,OACD,CAAA,CAAA;EAAA,KACH;EAAA,GACF;EAAA,EACA,UAAa,GAAA;EACX,IAAO,OAAA,CAAC,CAAC,IAAK,CAAA,WAAA,CAAA;EAAA,GAChB;EAAA,EACA,eAAkB,GAAA;EAChB,IAAA,IAAA,CAAK,uBAA0B,IAAA,CAAA;EAAA,GACjC;EAAA,EACA,YAAe,GAAA;EACb,IAAA,OAAO,IAAI,OAAA,CAAQ,CAAC,OAAA,EAAS,MAAW,KAAA;EACtC,MAAA,IAAI,QAAW,GAAA,KAAA,CAAA;EACf,MAAI,IAAA,SAAA,CAAA;EACJ,MAAA,IAAI,UAAa,GAAA,CAAA,CAAA;EACjB,MAAA,MAAM,UAAU,MAAM;EACpB,QAAA,IAAI,QAAU,EAAA;EACZ,UAAA,OAAA;EAAA,SACF;EACA,QAAA,SAAA,GAAY,WAAW,MAAM;EAC3B,UAAA,UAAA,EAAA,CAAA;EACA,UAAA,IAAI,aAAa,yBAA2B,EAAA;EAC1C,YAAI,IAAA,UAAA,GAAa,OAAO,CAAG,EAAA;EACzB,cAAQ,OAAA,CAAA,GAAA;EAAA,gBACN,2CAAA;EAAA,kBACE,yCAA0C,CAAA,oBAAA;EAAA,kBAC1C,4CAAA;EAAA,iBACA,CAAA,WAAA,CAAY,CAAc,WAAA,EAAA,UAAU,EAAE,CAAE,CAAA,OAAA;EAAA,eAC5C,CAAA;EAAA,aACF;EACA,YAAQ,OAAA,EAAA,CAAA;EACR,YAAA,OAAA;EAAA,WACF;EACA,UAAA,IAAI,CAAC,QAAU,EAAA;EACb,YAAA,MAAM,KAAQ,GAAA,2CAAA;EAAA,cACZ,yCAA0C,CAAA,oBAAA;EAAA,cAC1C,6CAAA;EAAA,aACF,CAAA;EACA,YAAA,MAAA,CAAO,KAAK,CAAA,CAAA;EAAA,WACd;EAAA,WACC,qBAAqB,CAAA,CAAA;EAAA,OAC1B,CAAA;EACA,MAAQ,OAAA,EAAA,CAAA;EACR,MAAM,MAAA,2BAAA,GAA8B,UAAW,CAAA,IAAA,CAAK,GAAG,CAAA,CAAA;EACvD,MAAA,2BAAA,CAA4B,KAAK,MAAM;EACrC,QAAW,QAAA,GAAA,IAAA,CAAA;EACX,QAAA,YAAA,CAAa,SAAS,CAAA,CAAA;EACtB,QAAQ,OAAA,EAAA,CAAA;EAAA,OACT,CAAA,CAAA;EAAA,KACF,CAAA,CAAA;EAAA,GACH;EACF,CAAA;EAEA,MAAM,uBAA0B,GAAA,2BAAA,CAAA;EAChC,IAAI,mBAAA,qBAAwC,oBAAyB,KAAA;EACnE,EAAA,oBAAA,CAAqB,QAAQ,CAAI,GAAA,QAAA,CAAA;EACjC,EAAA,oBAAA,CAAqB,OAAO,CAAI,GAAA,OAAA,CAAA;EAChC,EAAA,oBAAA,CAAqB,gBAAgB,CAAI,GAAA,gBAAA,CAAA;EACzC,EAAO,OAAA,oBAAA,CAAA;EACT,CAAG,EAAA,mBAAA,IAAuB,EAAE,CAAA,CAAA;EAC5B,MAAM,kBAAmB,CAAA;EAAA,EACvB,YAAY,kBAAoB,EAAA;EAC9B,IAAA,IAAA,CAAK,kBAAqB,GAAA,kBAAA,CAAA;EAAA,GAC5B;EAAA,EACA,OAAO,MAAA,GAAS,IAAI,sBAAA,CAAuB,aAAa,CAAA,CAAA;EAAA,EACxD,aAAa,OAAO,OAAS,EAAA;EAC3B,IAAI,IAAA,UAAA,CAAW,uBAAuB,CAAG,EAAA;EACvC,MAAM,MAAA,2CAAA;EAAA,QACJ,yCAA0C,CAAA,oBAAA;EAAA,QAC1C,iEAAA;EAAA,OACF,CAAA;EAAA,KACF;EACA,IAAA,UAAA,CAAW,uBAAuB,CAAA,GAAI,IAAI,kBAAA,CAAmB,OAAO,CAAA,CAAA;EACpE,IAAA,IAAA,CAAK,OAAO,eAAgB,EAAA,CAAA;EAAA,GAC9B;EAAA,EACA,aAAa,WAAc,GAAA;EACzB,IAAM,MAAA,IAAA,CAAK,OAAO,YAAa,EAAA,CAAA;EAC/B,IAAA,OAAO,WAAW,uBAAuB,CAAA,CAAA;EAAA,GAC3C;EAAA,EACA,aAAgB,GAAA;EACd,IAAA,OAAO,KAAK,kBAAmB,CAAA,UAAA,CAAA;EAAA,GACjC;EAAA,EACA,SAAY,GAAA;EACV,IAAA,OAAO,KAAK,kBAAmB,CAAA,MAAA,CAAA;EAAA,GACjC;EAAA,EACA,kBAAqB,GAAA;EACnB,IAAO,OAAA,IAAA,CAAK,kBAAmB,CAAA,eAAA,IAAmB,EAAC,CAAA;EAAA,GACrD;EAAA,EACA,cAAiB,GAAA;EACf,IAAA,OAAO,KAAK,kBAAmB,CAAA,WAAA,CAAA;EAAA,GACjC;EACF,CAAA;EAEA,MAAM,uBAA0B,GAAA,2BAAA,CAAA;EAChC,MAAM,kBAAmB,CAAA;EAAA,EACvB,WAAA,CAAY,oBAAoB,WAAa,EAAA;EAC3C,IAAA,IAAA,CAAK,kBAAqB,GAAA,kBAAA,CAAA;EAC1B,IAAA,IAAA,CAAK,WAAc,GAAA,WAAA,CAAA;EACnB,IAAA,IAAA,CAAK,SAAS,IAAI,sBAAA;EAAA,MAChB,KAAK,kBAAmB,CAAA,eAAA;EAAA,MACxB,IAAA,CAAK,YAAY,SAAU,EAAA;EAAA,MAC3B,IAAA,CAAK,YAAY,aAAc,EAAA;EAAA,KACjC,CAAA;EAAA,GACF;EAAA,EACA,OAAO,MAAA,GAAS,IAAI,sBAAA,CAAuB,aAAa,CAAA,CAAA;EAAA;EAAA;EAAA;EAAA;EAAA;EAAA,EAMxD,aAAa,OAAO,OAAS,EAAA;EAC3B,IAAM,MAAA,WAAA,GAAc,MAAM,kBAAA,CAAmB,WAAY,EAAA,CAAA;EACzD,IAAA,IAAI,WAAY,CAAA,cAAA,EAAqB,KAAA,mBAAA,CAAoB,KAAO,EAAA;EAC9D,MAAM,MAAA,2CAAA;EAAA,QACJ,yCAA0C,CAAA,oBAAA;EAAA,QAC1C,+DAAA;EAAA,OACF,CAAA;EAAA,KACF;EACA,IAAI,IAAA,UAAA,CAAW,uBAAuB,CAAG,EAAA;EACvC,MAAM,MAAA,2CAAA;EAAA,QACJ,yCAA0C,CAAA,oBAAA;EAAA,QAC1C,iEAAA;EAAA,OACF,CAAA;EAAA,KACF;EACA,IAAW,UAAA,CAAA,uBAAuB,IAAI,IAAI,kBAAA;EAAA,MACxC,OAAA;EAAA,MACA,MAAM,mBAAmB,WAAY,EAAA;EAAA,KACvC,CAAA;EACA,IAAA,IAAA,CAAK,OAAO,eAAgB,EAAA,CAAA;EAAA,GAC9B;EAAA,EACA,aAAa,WAAc,GAAA;EACzB,IAAM,MAAA,WAAA,GAAc,MAAM,kBAAA,CAAmB,WAAY,EAAA,CAAA;EACzD,IAAA,IAAI,WAAY,CAAA,cAAA,EAAqB,KAAA,mBAAA,CAAoB,KAAO,EAAA;EAC9D,MAAM,MAAA,IAAA,CAAK,OAAO,YAAa,EAAA,CAAA;EAC/B,MAAA,OAAO,WAAW,uBAAuB,CAAA,CAAA;EAAA,KACpC,MAAA;EACL,MAAO,OAAA,yBAAA,CAAA;EAAA,KACT;EAAA,GACF;EAAA,EACA,MAAA,CAAA;EAAA,EACA,kBAAqB,GAAA;EACnB,IAAA,OAAO,KAAK,kBAAmB,CAAA,eAAA,CAAA;EAAA,GACjC;EAAA,EACA,WAAc,GAAA;EACZ,IAAA,OAAO,IAAK,CAAA,kBAAA,CAAA;EAAA,GACd;EAAA,EACA,SAAY,GAAA;EACV,IAAA,OAAO,IAAK,CAAA,MAAA,CAAA;EAAA,GACd;EAAA,EACA,aAAgB,GAAA;EACd,IAAO,OAAA,IAAA,CAAK,YAAY,aAAc,EAAA,CAAA;EAAA,GACxC;EAAA,EACA,wBAA2B,GAAA;EACzB,IAAM,MAAA,eAAA,GAAkB,KAAK,kBAAmB,EAAA,CAAA;EAChD,IAAA,IAAI,CAAC,eAAiB,EAAA;EACpB,MAAM,MAAA,2CAAA;EAAA,QACJ,yCAA0C,CAAA,oBAAA;EAAA,QAC1C,kCAAA;EAAA,OACF,CAAA;EAAA,KACF;EACA,IAAA,OAAO,IAAK,CAAA,WAAA,CAAY,kBAAmB,EAAA,CAAE,eAAe,CAAA,CAAA;EAAA,GAC9D;EACF,CAAA;EAEA,MAAM,aAAA,GAAgB,CAAC,KAAU,KAAA;EAC/B,EAAM,MAAA,kBAAA,GAAqB,IAAI,kBAAmB,CAAA;EAAA,IAChD,aAAa,KAAM,CAAA,WAAA;EAAA,IACnB,YAAY,KAAM,CAAA,UAAA;EAAA,IAClB,MAAQ,EAAA,KAAA,CAAM,MAAU,IAAA,IAAIK,kDAAwB,EAAA;EAAA,IACpD,eAAA,EAAiB,MAAM,qBAAwB,GAAA;EAAA,MAC7C,CAAC,KAAA,CAAM,eAAe,GAAG,KAAM,CAAA,qBAAA;EAAA,QAC7B,EAAC;EAAA,GACN,CAAA,CAAA;EACD,EAAA,MAAM,qBAAqB,IAAI,kBAAA;EAAA,IAC7B;EAAA,MACE,iBAAiB,KAAM,CAAA,eAAA;EAAA,MACvB,iBAAmB,EAAA,EAAA;EAAA,KACrB;EAAA,IACA,kBAAA;EAAA,GACF,CAAA;EACA,EAAO,OAAA;EAAA,IACL,aAAa,EAAC;EAAA,IACd,OAAS,EAAA;EAAA,MACP,cAAc,YAAY;EACxB,QAAO,OAAA;EAAA,UACL,UAAa,GAAA;EAAA,WACb;EAAA,SACF,CAAA;EAAA,OACF;EAAA,KACF;EAAA,IACA,kBAAA;EAAA,IACA,kBAAA;EAAA,GACF,CAAA;EACF,CAAA,CAAA;EAEA,MAAM,IAAA,GAAO,CAAC,eAAA,EAAiB,UAAe,KAAA;EAC5C,EAAO,OAAA;EAAA,IACL,gBAAgB,YAAY;EAC1B,MAAA,IAAI,CAAC,eAAiB,EAAA;EACpB,QAAM,MAAA,2CAAA;EAAA,UACJ,yCAA0C,CAAA,eAAA;EAAA,SAC5C,CAAA;EAAA,OACF;EACA,MAAA,MAAM,YAAe,GAAA,MAAM,UAAW,CAAA,IAAA,CAAK,eAAe,eAAe,CAAA,CAAA;EACzE,MAAA,IAAI,iBAAiB,KAAQ,CAAA,EAAA;EAC3B,QAAM,MAAA,2CAAA;EAAA,UACJ,yCAA0C,CAAA,eAAA;EAAA,UAC1C,qBAAA;EAAA,SACF,CAAE,oBAAoB,eAAe,CAAA,CAAA;EAAA,OACvC;EACA,MAAO,OAAA;EAAA,QACL,OAAS,EAAA;EAAA,UACP,aAAe,EAAA,YAAA;EAAA,SACjB;EAAA,OACF,CAAA;EAAA,KACF;EAAA,GACF,CAAA;EACF,CAAA;;ECtTA,MAAM,wBAA2B,GAAA;EAAA,EAC/B,OACE,EAAA,iFAAA;EAAA,EACF,MACE,EAAA,gFAAA;EACJ,CAAA,CAAA;EAEO,MAAM,yBAAyB,sBAAiE,CAAA;EAAA,EAC9F,OACL,kCAAmC,CAAA,KAAA,CAAA;EAAA,EAErC,OAAA,GAAU,IAAIA,kDAAwB,EAAA,CAAA;EAAA,EACtC,aAAgB,GAAA,IAAI,kBAAmB,CAAA,IAAA,CAAK,OAAO,CAAA,CAAA;EAAA,EACnD,WAAA,CAAA;EAAA,EACA,sBAAA,CAAA;EAAA,EAEA,WAAc,GAAA;EACZ,IAAA,KAAA,CAAM,mCAAmC,KAAK,CAAA,CAAA;EAAA,GAChD;EAAA,EAEA,MAAS,GAAA;EACP,IAAA,IAAI,OAAO,UAAA,EAAY,QAAU,EAAA,IAAA,EAAM,YAAY,UAAY,EAAA;EAC7D,MAAA,MAAM,SAAS,IAAI,GAAA,CAAI,UAAW,CAAA,QAAA,CAAS,IAAI,CAAE,CAAA,YAAA,CAAA;EAGjD,MAAA,MAAM,OACJ,MAAO,CAAA,GAAA,CAAI,YAAY,CAAA,KAAM,YAAY,SAAY,GAAA,QAAA,CAAA;EAEvD,MAAM,MAAA,GAAA,GAAM,yBAAyB,IAAI,CAAA,CAAA;EAEzC,MAAM,MAAA,eAAA,GACJ,OACA,CAAC,CAAC,SAAS,gBAAiB,CAAA,CAAA,4BAAA,EAA+B,GAAG,CAAA,EAAA,CAAI,CAC9D,EAAA,MAAA,CAAA;EAEN,MAAI,IAAA,GAAA,IAAO,CAAC,eAAiB,EAAA;EAC3B,QAAM,MAAA,IAAA,GAAwB,QAAS,CAAA,aAAA,CAAc,MAAM,CAAA,CAAA;EAE3D,QAAK,IAAA,CAAA,YAAA,CAAa,OAAO,YAAY,CAAA,CAAA;EACrC,QAAK,IAAA,CAAA,YAAA,CAAa,QAAQ,UAAU,CAAA,CAAA;EACpC,QAAK,IAAA,CAAA,YAAA,CAAa,QAAQ,GAAG,CAAA,CAAA;EAE7B,QAAW,UAAA,CAAA,QAAA,CAAS,IAAK,CAAA,OAAA,CAAQ,IAAI,CAAA,CAAA;EAAA,OACvC;EAAA,KACF;EAAA,GACF;EAAA,EAEA,MAAM,gBAAgB,KAInB,EAAA;EACD,IAAA,MAAM,EAAE,qBAAA,EAAuB,UAAY,EAAA,eAAA,EAAoB,GAAA,KAAA,CAAA;EAE/D,IAAA,IAAA,CAAK,sBAAyB,GAAA,qBAAA,CAAA;EAC9B,IAAA,IAAA,CAAK,WAAc,GAAA,UAAA,CAAA;EAEnB,IAAA,MAAM,mBAAmB,MAAO,CAAA;EAAA,MAC9B,aAAa,mBAAoB,CAAA,KAAA;EAAA,MACjC,UAAY,EAAA,UAAA;EAAA,MACZ,QAAQ,IAAK,CAAA,OAAA;EAAA,MACb,eAAiB,EAAA;EAAA,QACf,CAAC,eAAe,GAAG,IAAK,CAAA,sBAAA;EAAA,OAC1B;EAAA,KACD,CAAA,CAAA;EAED,IAAA,MAAM,mBAAmB,MAAO,CAAA;EAAA,MAC9B,eAAA;EAAA,MACA,iBAAmB,EAAA,EAAA;EAAA,KACpB,CAAA,CAAA;EAOD,IAAA,MAAM,SAASC,gBAAa,CAAA;EAAA,MAC1B,IAAA,EAAM,IAAK,CAAA,eAAA,EAAiB,UAAU,CAAA;EAAA,MACtC,MAAM,aAAc,CAAA;EAAA,QAClB,eAAA;EAAA,QACA,YAAY,IAAK,CAAA,WAAA;EAAA,QACjB,aAAa,mBAAoB,CAAA,KAAA;EAAA,QACjC,QAAQ,IAAK,CAAA,OAAA;EAAA,QACb,uBAAuB,IAAK,CAAA,sBAAA;EAAA,OAC7B,CAAA;EAAA,KACF,CAAA,CAAA;EAED,IAAA,MAAA,CAAO,cAAc,QAAQ,CAAA,CAAA;EAAA,GAC/B;EAAA,EAEA,OAAO,KAA8B,EAAA;EACnC,IAAK,IAAA,CAAA,aAAA,CAAc,OAAO,KAAK,CAAA,CAAA;EAAA,GACjC;EAAA,EAEA,UAAU,EAAwC,EAAA;EAChD,IAAK,IAAA,CAAA,aAAA,CAAc,UAAU,EAAE,CAAA,CAAA;EAAA,GACjC;EACF;;;;;;;;"}
@@ -1,11 +1,58 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('@wix/editor-platform-transport'), require('@wix/public-editor-platform-events'), require('@wix/public-editor-platform-errors'), require('@wix/public-editor-platform-interfaces')) :
3
- typeof define === 'function' && define.amd ? define(['@wix/editor-platform-transport', '@wix/public-editor-platform-events', '@wix/public-editor-platform-errors', '@wix/public-editor-platform-interfaces'], factory) :
4
- (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.editorPlatformTransport, global.publicEditorPlatformEvents, global.publicEditorPlatformErrors, global.publicEditorPlatformInterfaces));
5
- })(this, (function (editorPlatformTransport, publicEditorPlatformEvents, publicEditorPlatformErrors, publicEditorPlatformInterfaces) { 'use strict';
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('@wix/editor-platform-transport'), require('@wix/public-editor-platform-events'), require('@wix/sdk'), require('@wix/public-editor-platform-errors'), require('@wix/public-editor-platform-interfaces')) :
3
+ typeof define === 'function' && define.amd ? define(['@wix/editor-platform-transport', '@wix/public-editor-platform-events', '@wix/sdk', '@wix/public-editor-platform-errors', '@wix/public-editor-platform-interfaces'], factory) :
4
+ (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.editorPlatformTransport, global.publicEditorPlatformEvents, global.sdk, global.publicEditorPlatformErrors, global.publicEditorPlatformInterfaces));
5
+ })(this, (function (editorPlatformTransport, publicEditorPlatformEvents, sdk, publicEditorPlatformErrors, publicEditorPlatformInterfaces) { 'use strict';
6
+
7
+ class WorkerEventsBridge {
8
+ constructor(platformAppEvents) {
9
+ this.platformAppEvents = platformAppEvents;
10
+ }
11
+ /**
12
+ * Notify by event from Worker Manager (platform infrastructure)
13
+ */
14
+ notify(event) {
15
+ switch (event.type) {
16
+ case publicEditorPlatformEvents.PlatformLifecycleEvent.EditorReady:
17
+ this.platformAppEvents.notify({
18
+ ...event,
19
+ // @ts-expect-error TODO: fix me
20
+ type: publicEditorPlatformEvents.PlatformAppEvent.EditorReady
21
+ });
22
+ break;
23
+ case publicEditorPlatformEvents.PlatformPrivateEvent.HostEvent:
24
+ this.platformAppEvents.notify({
25
+ ...event,
26
+ type: publicEditorPlatformEvents.PlatformAppEvent.HostEvent
27
+ });
28
+ break;
29
+ }
30
+ }
31
+ /**
32
+ * Subscribe to Worker (Application) event
33
+ */
34
+ subscribe(cb) {
35
+ this.platformAppEvents.subscribe((event) => {
36
+ cb(event);
37
+ });
38
+ }
39
+ }
40
+
41
+ var PlatformConsumerEnvironmentAPIType = /* @__PURE__ */ ((PlatformConsumerEnvironmentAPIType2) => {
42
+ PlatformConsumerEnvironmentAPIType2["Frame"] = "PLATFORM_FRAME_API";
43
+ PlatformConsumerEnvironmentAPIType2["Worker"] = "PLATFORM_WORKER_API";
44
+ return PlatformConsumerEnvironmentAPIType2;
45
+ })(PlatformConsumerEnvironmentAPIType || {});
46
+ class AbstractEnvironmentAPI {
47
+ constructor(env) {
48
+ this.env = env;
49
+ this.create();
50
+ }
51
+ }
6
52
 
7
53
  var EditorPlatformApplicationContextErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationContextErrorCode2) => {
8
54
  EditorPlatformApplicationContextErrorCode2["IncorrectEnvironment"] = "IncorrectEnvironment";
55
+ EditorPlatformApplicationContextErrorCode2["ClientAuthError"] = "ClientAuthError";
9
56
  return EditorPlatformApplicationContextErrorCode2;
10
57
  })(EditorPlatformApplicationContextErrorCode || {});
11
58
  class EditorPlatformApplicationContextError extends publicEditorPlatformErrors.BaseError {
@@ -168,6 +215,7 @@
168
215
  var PlatformEnvironment = /* @__PURE__ */ ((PlatformEnvironment2) => {
169
216
  PlatformEnvironment2["Worker"] = "Worker";
170
217
  PlatformEnvironment2["Frame"] = "Frame";
218
+ PlatformEnvironment2["ComponentPanel"] = "ComponentPanel";
171
219
  return PlatformEnvironment2;
172
220
  })(PlatformEnvironment || {});
173
221
  class EnvironmentContext {
@@ -272,52 +320,59 @@
272
320
  return this.environment.getApplicationAPIs()[appDefinitionId];
273
321
  }
274
322
  }
275
-
276
- class WorkerEventsBridge {
277
- constructor(platformAppEvents) {
278
- this.platformAppEvents = platformAppEvents;
279
- }
280
- /**
281
- * Notify by event from Worker Manager (platform infrastructure)
282
- */
283
- notify(event) {
284
- switch (event.type) {
285
- case publicEditorPlatformEvents.PlatformLifecycleEvent.EditorReady:
286
- this.platformAppEvents.notify({
287
- ...event,
288
- // @ts-expect-error TODO: fix me
289
- type: publicEditorPlatformEvents.PlatformAppEvent.EditorReady
290
- });
291
- break;
292
- case publicEditorPlatformEvents.PlatformPrivateEvent.HostEvent:
293
- this.platformAppEvents.notify({
294
- ...event,
295
- type: publicEditorPlatformEvents.PlatformAppEvent.HostEvent
296
- });
297
- break;
323
+ const createSDKHost = (props) => {
324
+ const environmentContext = new EnvironmentContext({
325
+ environment: props.environment,
326
+ privateApi: props.privateAPI,
327
+ events: props.events ?? new publicEditorPlatformEvents.PlatformAppEventEmitter(),
328
+ applicationAPIs: props.applicationPrivateAPI ? {
329
+ [props.appDefinitionId]: props.applicationPrivateAPI
330
+ } : {}
331
+ });
332
+ const applicationContext = new ApplicationContext(
333
+ {
334
+ appDefinitionId: props.appDefinitionId,
335
+ appDefinitionName: ""
336
+ },
337
+ environmentContext
338
+ );
339
+ return {
340
+ environment: {},
341
+ channel: {
342
+ observeState: async () => {
343
+ return {
344
+ disconnect() {
345
+ }
346
+ };
347
+ }
348
+ },
349
+ environmentContext,
350
+ applicationContext
351
+ };
352
+ };
353
+ const auth = (appDefinitionId, privateAPI) => {
354
+ return {
355
+ getAuthHeaders: async () => {
356
+ if (!appDefinitionId) {
357
+ throw createEditorPlatformApplicationContextError(
358
+ EditorPlatformApplicationContextErrorCode.ClientAuthError
359
+ );
360
+ }
361
+ const authInstance = await privateAPI.info.getAppInstance(appDefinitionId);
362
+ if (authInstance === void 0) {
363
+ throw createEditorPlatformApplicationContextError(
364
+ EditorPlatformApplicationContextErrorCode.ClientAuthError,
365
+ "empty auth instance"
366
+ ).withAppDefinitionId(appDefinitionId);
367
+ }
368
+ return {
369
+ headers: {
370
+ Authorization: authInstance
371
+ }
372
+ };
298
373
  }
299
- }
300
- /**
301
- * Subscribe to Worker (Application) event
302
- */
303
- subscribe(cb) {
304
- this.platformAppEvents.subscribe((event) => {
305
- cb(event);
306
- });
307
- }
308
- }
309
-
310
- var PlatformConsumerEnvironmentAPIType = /* @__PURE__ */ ((PlatformConsumerEnvironmentAPIType2) => {
311
- PlatformConsumerEnvironmentAPIType2["Frame"] = "PLATFORM_FRAME_API";
312
- PlatformConsumerEnvironmentAPIType2["Worker"] = "PLATFORM_WORKER_API";
313
- return PlatformConsumerEnvironmentAPIType2;
314
- })(PlatformConsumerEnvironmentAPIType || {});
315
- class AbstractEnvironmentAPI {
316
- constructor(env) {
317
- this.env = env;
318
- this.create();
319
- }
320
- }
374
+ };
375
+ };
321
376
 
322
377
  var EditorPlatformApplicationErrorCode = /* @__PURE__ */ ((EditorPlatformApplicationErrorCode2) => {
323
378
  EditorPlatformApplicationErrorCode2["ApplicationRuntimeError"] = "ApplicationRuntimeError";
@@ -329,6 +384,7 @@
329
384
  EditorPlatformApplicationErrorCode2["UndefinedApiMethod"] = "UndefinedApiMethod";
330
385
  EditorPlatformApplicationErrorCode2["ApplicationIsNotMutable"] = "ApplicationIsNotMutable";
331
386
  EditorPlatformApplicationErrorCode2["FailedToGetPrivateAPI"] = "FailedToGetPrivateAPI";
387
+ EditorPlatformApplicationErrorCode2["ClientAuthError"] = "ClientAuthError";
332
388
  return EditorPlatformApplicationErrorCode2;
333
389
  })(EditorPlatformApplicationErrorCode || {});
334
390
  class EditorPlatformApplicationError extends publicEditorPlatformErrors.BaseError {
@@ -356,8 +412,9 @@
356
412
  const createEditorPlatformApplicationError = publicEditorPlatformErrors.createErrorBuilder(EditorPlatformApplicationError);
357
413
 
358
414
  const APPLICATION_REGISTRY_KEY = "__APPLICATION_REGISTRY_KEY";
359
- async function executeApplication(events, spec, bundle) {
415
+ async function executeApplication(events, client, spec, bundle) {
360
416
  const executable = new Function(
417
+ "$wixContext",
361
418
  APPLICATION_CONTEXT_KEY,
362
419
  APPLICATION_REGISTRY_KEY,
363
420
  bundle
@@ -381,7 +438,7 @@
381
438
  try {
382
439
  const context = { ...spec };
383
440
  executable.call(
384
- void 0,
441
+ { client },
385
442
  new ApplicationContext(context, await EnvironmentContext.getInstance()),
386
443
  applicationRegistryCallback
387
444
  );
@@ -423,15 +480,18 @@
423
480
  }
424
481
 
425
482
  class PlatformApplicationContainer {
483
+ #apps = {};
484
+ #privateAPI;
485
+ #events;
426
486
  constructor(privateApi, events) {
427
- this.privateApi = privateApi;
428
- this.events = events;
429
- this.events.subscribe((event) => {
487
+ this.#privateAPI = privateApi;
488
+ this.#events = events;
489
+ this.#events.subscribe((event) => {
430
490
  switch (event.type) {
431
491
  case publicEditorPlatformEvents.PlatformAppEvent.HostEvent: {
432
492
  if (event.payload.type === publicEditorPlatformInterfaces.EventType.removeAppCompleted) {
433
- this.events.withEvent(
434
- this.events.factories.createApplicationRemovedEvent(
493
+ void this.#events.withEvent(
494
+ this.#events.factories.createApplicationRemovedEvent(
435
495
  event.payload.appDefinitionId
436
496
  ),
437
497
  () => {
@@ -444,7 +504,6 @@
444
504
  }
445
505
  });
446
506
  }
447
- apps = {};
448
507
  async runApplication(app) {
449
508
  const bundle = await this.loadApplication(app);
450
509
  const instance = await this.executeApplication(app, bundle);
@@ -452,32 +511,32 @@
452
511
  return instance;
453
512
  }
454
513
  setApplication(appDefId, instance) {
455
- this.apps[appDefId] = instance;
456
- this.events.withEvent(
457
- this.events.factories.createApplicationApiInitEvent(
514
+ this.#apps[appDefId] = instance;
515
+ void this.#events.withEvent(
516
+ this.#events.factories.createApplicationApiInitEvent(
458
517
  appDefId,
459
518
  // TODO: both types are set here...
460
519
  // @ts-expect-error TODO: fix me
461
520
  instance?.api?.private ? "private" : "public"
462
521
  ),
463
522
  () => {
464
- this.privateApi.applicationManager.setApplication(instance);
523
+ this.#privateAPI.applicationManager.setApplication(instance);
465
524
  }
466
525
  );
467
526
  }
468
527
  getApplication(appDefId) {
469
- return this.apps[appDefId];
528
+ return this.#apps[appDefId];
470
529
  }
471
530
  getAppDefinitionIds() {
472
- return Object.keys(this.apps);
531
+ return Object.keys(this.#apps);
473
532
  }
474
533
  removeApplication(appDefinitionId) {
475
- delete this.apps[appDefinitionId];
534
+ delete this.#apps[appDefinitionId];
476
535
  }
477
536
  async loadApplication(app) {
478
537
  const url = app.url;
479
- return this.events.withEvent(
480
- this.events.factories.createApplicationLoadEvent(app, url),
538
+ return this.#events.withEvent(
539
+ this.#events.factories.createApplicationLoadEvent(app, url),
481
540
  async () => {
482
541
  try {
483
542
  return await this.loadApplicationBundle(url);
@@ -502,14 +561,32 @@
502
561
  return res.text();
503
562
  }
504
563
  async executeApplication(app, bundle) {
505
- return this.events.withEvent(
506
- this.events.factories.createApplicationExecuteEvent(app, app.url),
564
+ return this.#events.withEvent(
565
+ this.#events.factories.createApplicationExecuteEvent(app, app.url),
507
566
  async () => {
508
- const { instance } = await executeApplication(this.events, app, bundle);
567
+ const client = this.#createWixClient(app.appDefinitionId);
568
+ const { instance } = await executeApplication(
569
+ this.#events,
570
+ client,
571
+ app,
572
+ bundle
573
+ );
509
574
  return instance;
510
575
  }
511
576
  );
512
577
  }
578
+ #createWixClient(appDefinitionId) {
579
+ return sdk.createClient({
580
+ auth: auth(appDefinitionId, this.#privateAPI),
581
+ host: createSDKHost({
582
+ appDefinitionId,
583
+ privateAPI: this.#privateAPI,
584
+ environment: PlatformEnvironment.Worker,
585
+ events: this.#events,
586
+ applicationPrivateAPI: {}
587
+ })
588
+ });
589
+ }
513
590
  }
514
591
 
515
592
  class PlatformWorkerAPI extends AbstractEnvironmentAPI {