@wix/editor-platform-contexts 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +7 -6
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +7 -6
- package/dist/esm/index.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/index.js
CHANGED
|
@@ -104,7 +104,9 @@ const WAIT_INJECTED_TIMEOUT = 200;
|
|
|
104
104
|
const WAIT_INJECTED_RETRY_COUNT = 50;
|
|
105
105
|
class ContextInjectionStatus {
|
|
106
106
|
injectionUUID;
|
|
107
|
+
injectionUUID_Deprecated;
|
|
107
108
|
constructor(uuid) {
|
|
109
|
+
this.injectionUUID_Deprecated = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;
|
|
108
110
|
this.injectionUUID = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY#0.1`;
|
|
109
111
|
const promise = this.#getGlobalInjectionPromise();
|
|
110
112
|
if (!promise) {
|
|
@@ -113,7 +115,7 @@ class ContextInjectionStatus {
|
|
|
113
115
|
}
|
|
114
116
|
#getGlobalInjectionPromise() {
|
|
115
117
|
const ref = globalThis[this.injectionUUID];
|
|
116
|
-
return ref?.promise
|
|
118
|
+
return ref?.promise;
|
|
117
119
|
}
|
|
118
120
|
#createGlobalInjectionPromise() {
|
|
119
121
|
let _resolve;
|
|
@@ -124,6 +126,9 @@ class ContextInjectionStatus {
|
|
|
124
126
|
promise,
|
|
125
127
|
resolve: _resolve
|
|
126
128
|
};
|
|
129
|
+
globalThis[this.injectionUUID_Deprecated] = new Promise((resolve) => {
|
|
130
|
+
promise.then(resolve);
|
|
131
|
+
});
|
|
127
132
|
}
|
|
128
133
|
resolveInjected() {
|
|
129
134
|
globalThis[this.injectionUUID]?.resolve();
|
|
@@ -161,11 +166,7 @@ class ContextInjectionStatus {
|
|
|
161
166
|
}, WAIT_INJECTED_TIMEOUT);
|
|
162
167
|
};
|
|
163
168
|
timeout();
|
|
164
|
-
|
|
165
|
-
// @ts-expect-error xxx
|
|
166
|
-
globalThis[this.injectionUUID].promise
|
|
167
|
-
);
|
|
168
|
-
_waitContextInjectedPromise.then(() => {
|
|
169
|
+
this.#getGlobalInjectionPromise()?.then(() => {
|
|
169
170
|
injected = true;
|
|
170
171
|
clearTimeout(timeoutId);
|
|
171
172
|
resolve();
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/errors.ts","../../src/ApplicationBoundEvents/transformEventPayload.ts","../../src/ApplicationBoundEvents/ApplicationBoundEvents.ts","../../src/contexts/ContextInjectionStatus.ts","../../src/contexts/EnvironmentContext.ts","../../src/contexts/ApplicationContext.ts"],"sourcesContent":["import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformContextErrorCode {\n IncorrectEnvironment = 'IncorrectEnvironment',\n}\n\nclass EditorPlatformContextError extends BaseError<EditorPlatformContextErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformContextErrorCode) {\n super(message, code, 'EP Context 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\nexport const createEditorPlatformContextError = createErrorBuilder<\n EditorPlatformContextErrorCode,\n EditorPlatformContextError\n>(EditorPlatformContextError);\n","import type { ComponentRef } from '@wix/public-editor-platform-interfaces';\nimport {\n AllowedEvents,\n AppEventPayload,\n IComponent,\n PrivateAPIFixMe,\n} from './types';\n\nexport async function transformEventPayload<T extends AllowedEvents>(\n eventPayload: Record<string, string>,\n privateAPI: PrivateAPIFixMe,\n): Promise<AppEventPayload<T>> {\n if (!eventPayload?.type) {\n return eventPayload as AppEventPayload<T>;\n }\n\n switch (eventPayload.type) {\n case 'componentSelectionChanged':\n const componentRefs = (eventPayload.componentRefs ||\n []) as unknown as ComponentRef[];\n\n const components = (await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n }),\n )) as IComponent[];\n\n return {\n type: eventPayload.type,\n components,\n } as AppEventPayload<T>;\n\n default:\n return eventPayload as AppEventPayload<T>;\n }\n}\n","import {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n IPlatformAppEvent,\n} from '@wix/public-editor-platform-events';\nimport { AllowedEvents, AppEventPayload, PrivateAPIFixMe } from './types';\nimport { transformEventPayload } from './transformEventPayload';\n\nexport type OmitEventMeta<T> = T extends { meta: any } ? Omit<T, 'meta'> : T;\n\n/**\n * TODO: should not be in this package\n */\nexport class ApplicationBoundEvents {\n private events: PlatformAppEventEmitter;\n public subscribe;\n public commit;\n public startTransaction;\n public silent;\n\n constructor(\n private appDefinitionId: string,\n events: PlatformAppEventEmitter,\n private privateAPI: PrivateAPIFixMe,\n ) {\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\n public notify(event: OmitEventMeta<IPlatformAppEvent>) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId,\n },\n } as IPlatformAppEvent);\n }\n\n notifyCustomEvent(type: string, payload: Record<string, string>) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type,\n },\n });\n }\n\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n public addEventListener<EventType extends AllowedEvents>(\n eventType: EventType,\n fn: (payload: AppEventPayload<EventType>) => void,\n ) {\n return this.events.subscribe(async (event) => {\n const isAppMatch =\n event.meta?.appDefinitionId === this.appDefinitionId ||\n event.meta?.appDefinitionId === null;\n\n const transformPayload = () =>\n transformEventPayload<EventType>(event.payload, this.privateAPI);\n\n // as an exception to skip autocomplete\n if ((eventType as string) === '*') {\n fn(await transformPayload());\n /**\n * We need to check for app match here to not listen app's own events\n */\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","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\n\nexport class ContextInjectionStatus {\n injectionUUID: string;\n\n constructor(uuid: string) {\n this.injectionUUID = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY#0.1`;\n\n const promise = this.#getGlobalInjectionPromise();\n\n if (!promise) {\n this.#createGlobalInjectionPromise();\n }\n }\n\n #getGlobalInjectionPromise() {\n // @ts-expect-error xxx\n const ref = globalThis[this.injectionUUID];\n return ref?.promise ? ref : null;\n }\n\n #createGlobalInjectionPromise() {\n let _resolve;\n\n const promise = new Promise<void>((resolve) => {\n _resolve = resolve;\n });\n\n // @ts-expect-error xxx\n globalThis[this.injectionUUID] = {\n promise,\n resolve: _resolve,\n };\n }\n\n resolveInjected() {\n // @ts-expect-error xxx\n globalThis[this.injectionUUID]?.resolve();\n }\n\n waitInjected() {\n return new Promise<void>((resolve, reject) => {\n let injected = false;\n let timeoutId: ReturnType<typeof setTimeout>;\n let retryCount = 0;\n\n const timeout = () => {\n if (injected) {\n return;\n }\n\n timeoutId = setTimeout(() => {\n retryCount++;\n\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n /**\n * just log that we are re-trying to connect (each 2 sec+-)\n */\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, still re-trying',\n ).withMessage(`try number ${retryCount}`).message,\n );\n }\n\n timeout();\n\n return;\n }\n\n if (!injected) {\n const error = createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, threw by timeout',\n );\n\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n\n timeout();\n\n const _waitContextInjectedPromise =\n // @ts-expect-error xxx\n globalThis[this.injectionUUID].promise;\n\n _waitContextInjectedPromise.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n","import { PlatformAppEventEmitter } from '@wix/public-editor-platform-events';\nimport { WithPromiseFunctions } from '@wix/editor-platform-transport';\nimport {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport type IPrivateAPIFixMe = any; // TODO: replace with the real type\n\nexport const ENVIRONMENT_CONTEXT_KEY = '__ENVIRONMENT_CONTEXT_KEY';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __ENVIRONMENT_CONTEXT_KEY: EnvironmentContext;\n}\n\nexport enum PlatformEnvironment {\n Worker = 'Worker',\n Frame = 'Frame',\n // TODO - rename to MainThread\n ComponentPanel = 'ComponentPanel',\n}\n\nexport interface IEnvironmentContext {\n environment: PlatformEnvironment;\n privateApi: WithPromiseFunctions<IPrivateAPIFixMe>;\n events: PlatformAppEventEmitter;\n /**\n * Probably, we need to rename this prop\n */\n applicationAPIs?: Record<string, any>;\n}\n\nexport class EnvironmentContext {\n private static status = new ContextInjectionStatus('environment');\n\n static async inject(context: IEnvironmentContext) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Environment context already exists and should not be overridden',\n );\n }\n\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n\n static async getInstance(): Promise<EnvironmentContext> {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n\n constructor(private environmentContext: IEnvironmentContext) {}\n\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n\n getEvents() {\n return this.environmentContext.events;\n }\n\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nimport { ApplicationBoundEvents } from '../ApplicationBoundEvents';\nimport { EnvironmentContext, PlatformEnvironment } from './EnvironmentContext';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport const APPLICATION_CONTEXT_KEY = '__APPLICATION_CONTEXT_KEY';\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_CONTEXT_KEY: ApplicationContext<IApplicationContext>;\n}\n\nexport type IEditorApplicationContext = {\n appDefinitionId: string;\n};\n\nexport type IAddonContext = {\n appDefinitionId: string;\n appDefinitionName: string;\n data: {\n toolPanelConfig: {\n url: string;\n width: string;\n height: string;\n initialPosition: {\n x: string;\n y: string;\n };\n };\n };\n};\n\nexport type IApplicationContext = IEditorApplicationContext | IAddonContext;\n\nexport class ApplicationContext<TContext extends IApplicationContext> {\n private static status = new ContextInjectionStatus('application');\n\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject<TContext extends IApplicationContext>(context: TContext) {\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n // throw createEditorPlatformContextError(\n // EditorPlatformContextErrorCode.IncorrectEnvironment,\n // 'Application context can be injected only in frame environment',\n // );\n // }\n\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Application context already exists and should not be overridden',\n );\n }\n\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance(),\n );\n\n this.status.resolveInjected();\n }\n\n static async getInstance<TContext extends IApplicationContext>() {\n if (typeof __APPLICATION_CONTEXT_KEY !== 'undefined') {\n /**\n * NOTE it is taken not from global\n * __APPLICATION_CONTEXT_KEY is the variable which set during\n * application bundle execution using new Function() approach\n */\n return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n }\n\n await this.status.waitInjected();\n\n return globalThis[APPLICATION_CONTEXT_KEY] as ApplicationContext<TContext>;\n\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n // await this.status.waitInjected();\n // return globalThis[\n // APPLICATION_CONTEXT_KEY\n // ] as ApplicationContext<TContext>;\n // } else {\n // /**\n // * NOTE it is taken not from global\n // * __APPLICATION_CONTEXT_KEY is the variable which set during\n // * application bundle execution using new Function() approach\n // */\n // return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n // }\n }\n\n private events: ApplicationBoundEvents;\n\n constructor(\n private applicationContext: TContext,\n private environment: EnvironmentContext,\n ) {\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI(),\n );\n }\n\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n\n getBindings() {\n return this.applicationContext;\n }\n\n getEvents() {\n return this.events;\n }\n\n getEnvironmentContext() {\n return this.environment;\n }\n\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n\n if (!appDefinitionId) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'appDefinitionId is not available',\n );\n }\n\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n"],"names":["EditorPlatformContextErrorCode","BaseError","createErrorBuilder","PlatformAppEvent","PlatformEnvironment"],"mappings":";;;;;AAKY,IAAA,8BAAA,qBAAAA,+BAAL,KAAA;AACL,EAAAA,gCAAA,sBAAuB,CAAA,GAAA,sBAAA,CAAA;AADb,EAAAA,OAAAA,+BAAAA,CAAAA;AAAA,CAAA,EAAA,8BAAA,IAAA,EAAA,CAAA,CAAA;AAIZ,MAAM,mCAAmCC,oCAA0C,CAAA;AAAA,EACjF,QAGK,EAAC,CAAA;AAAA,EAEN,WAAA,CAAY,SAAiB,IAAsC,EAAA;AACjE,IAAM,KAAA,CAAA,OAAA,EAAS,MAAM,kBAAkB,CAAA,CAAA;AAAA,GACzC;AAAA,EAEA,QAAQ,GAAa,EAAA;AACnB,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,GAAG,IAAA,CAAK,OAAO,GAAI,EAAA,CAAA;AAClC,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAAA,EAEA,oBAAoB,eAAyB,EAAA;AAC3C,IAAA,IAAA,CAAK,KAAQ,GAAA,EAAE,GAAG,IAAA,CAAK,OAAO,eAAgB,EAAA,CAAA;AAC9C,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AACF,CAAA;AAEa,MAAA,gCAAA,GAAmCC,8CAG9C,0BAA0B,CAAA;;ACzBN,eAAA,qBAAA,CACpB,cACA,UAC6B,EAAA;AAC7B,EAAI,IAAA,CAAC,cAAc,IAAM,EAAA;AACvB,IAAO,OAAA,YAAA,CAAA;AAAA,GACT;AAEA,EAAA,QAAQ,aAAa,IAAM;AAAA,IACzB,KAAK,2BAAA;AACH,MAAM,MAAA,aAAA,GAAiB,YAAa,CAAA,aAAA,IAClC,EAAC,CAAA;AAEH,MAAM,MAAA,UAAA,GAAc,MAAM,OAAQ,CAAA,GAAA;AAAA,QAChC,aAAA,CAAc,GAAI,CAAA,CAAC,GAAQ,KAAA;AACzB,UAAO,OAAA,UAAA,CAAW,UAAW,CAAA,YAAA,CAAa,GAAG,CAAA,CAAA;AAAA,SAC9C,CAAA;AAAA,OACH,CAAA;AAEA,MAAO,OAAA;AAAA,QACL,MAAM,YAAa,CAAA,IAAA;AAAA,QACnB,UAAA;AAAA,OACF,CAAA;AAAA,IAEF;AACE,MAAO,OAAA,YAAA,CAAA;AAAA,GACX;AACF;;ACtBO,MAAM,sBAAuB,CAAA;AAAA,EAOlC,WAAA,CACU,eACR,EAAA,MAAA,EACQ,UACR,EAAA;AAHQ,IAAA,IAAA,CAAA,eAAA,GAAA,eAAA,CAAA;AAEA,IAAA,IAAA,CAAA,UAAA,GAAA,UAAA,CAAA;AAER,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAA;AACd,IAAA,IAAA,CAAK,SAAY,GAAA,MAAA,CAAO,SAAU,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAC7C,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AACvC,IAAA,IAAA,CAAK,gBAAmB,GAAA,MAAA,CAAO,gBAAiB,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAC3D,IAAA,IAAA,CAAK,MAAS,GAAA,MAAA,CAAO,MAAO,CAAA,IAAA,CAAK,MAAM,CAAA,CAAA;AAAA,GACzC;AAAA,EAhBQ,MAAA,CAAA;AAAA,EACD,SAAA,CAAA;AAAA,EACA,MAAA,CAAA;AAAA,EACA,gBAAA,CAAA;AAAA,EACA,MAAA,CAAA;AAAA,EAcA,OAAO,KAAyC,EAAA;AACrD,IAAA,IAAA,CAAK,OAAO,MAAO,CAAA;AAAA,MACjB,MAAM,KAAM,CAAA,IAAA;AAAA,MACZ,SAAS,KAAM,CAAA,OAAA;AAAA,MACf,IAAM,EAAA;AAAA,QACJ,iBAAiB,IAAK,CAAA,eAAA;AAAA,OACxB;AAAA,KACoB,CAAA,CAAA;AAAA,GACxB;AAAA,EAEA,iBAAA,CAAkB,MAAc,OAAiC,EAAA;AAC/D,IAAA,IAAA,CAAK,MAAO,CAAA;AAAA,MACV,MAAMC,2CAAiB,CAAA,WAAA;AAAA,MACvB,OAAS,EAAA;AAAA,QACP,GAAG,OAAA;AAAA,QACH,IAAA;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMO,gBAAA,CACL,WACA,EACA,EAAA;AACA,IAAA,OAAO,IAAK,CAAA,MAAA,CAAO,SAAU,CAAA,OAAO,KAAU,KAAA;AAC5C,MAAM,MAAA,UAAA,GACJ,MAAM,IAAM,EAAA,eAAA,KAAoB,KAAK,eACrC,IAAA,KAAA,CAAM,MAAM,eAAoB,KAAA,IAAA,CAAA;AAElC,MAAA,MAAM,mBAAmB,MACvB,qBAAA,CAAiC,KAAM,CAAA,OAAA,EAAS,KAAK,UAAU,CAAA,CAAA;AAGjE,MAAA,IAAK,cAAyB,GAAK,EAAA;AACjC,QAAG,EAAA,CAAA,MAAM,kBAAkB,CAAA,CAAA;AAAA,OAIlB,MAAA,IAAA,KAAA,CAAM,IAAS,KAAAA,2CAAA,CAAiB,WAAa,EAAA;AACtD,QAAA,IAAI,SAAc,KAAA,KAAA,CAAM,OAAS,EAAA,IAAA,IAAQ,CAAC,UAAY,EAAA;AACpD,UAAG,EAAA,CAAA,MAAM,kBAAkB,CAAA,CAAA;AAAA,SAC7B;AAAA,OACS,MAAA,IAAA,KAAA,CAAM,IAAS,KAAAA,2CAAA,CAAiB,SAAW,EAAA;AACpD,QAAA,IAAI,SAAc,KAAA,KAAA,CAAM,OAAS,EAAA,IAAA,IAAQ,UAAY,EAAA;AACnD,UAAG,EAAA,CAAA,MAAM,kBAAkB,CAAA,CAAA;AAAA,SAC7B;AAAA,OACF;AAAA,KACD,CAAA,CAAA;AAAA,GACH;AACF;;AChFA,MAAM,qBAAwB,GAAA,GAAA,CAAA;AAC9B,MAAM,yBAA4B,GAAA,EAAA,CAAA;AAE3B,MAAM,sBAAuB,CAAA;AAAA,EAClC,aAAA,CAAA;AAAA,EAEA,YAAY,IAAc,EAAA;AACxB,IAAK,IAAA,CAAA,aAAA,GAAgB,KAAK,IAAI,CAAA,iCAAA,CAAA,CAAA;AAE9B,IAAM,MAAA,OAAA,GAAU,KAAK,0BAA2B,EAAA,CAAA;AAEhD,IAAA,IAAI,CAAC,OAAS,EAAA;AACZ,MAAA,IAAA,CAAK,6BAA8B,EAAA,CAAA;AAAA,KACrC;AAAA,GACF;AAAA,EAEA,0BAA6B,GAAA;AAE3B,IAAM,MAAA,GAAA,GAAM,UAAW,CAAA,IAAA,CAAK,aAAa,CAAA,CAAA;AACzC,IAAO,OAAA,GAAA,EAAK,UAAU,GAAM,GAAA,IAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,6BAAgC,GAAA;AAC9B,IAAI,IAAA,QAAA,CAAA;AAEJ,IAAA,MAAM,OAAU,GAAA,IAAI,OAAc,CAAA,CAAC,OAAY,KAAA;AAC7C,MAAW,QAAA,GAAA,OAAA,CAAA;AAAA,KACZ,CAAA,CAAA;AAGD,IAAW,UAAA,CAAA,IAAA,CAAK,aAAa,CAAI,GAAA;AAAA,MAC/B,OAAA;AAAA,MACA,OAAS,EAAA,QAAA;AAAA,KACX,CAAA;AAAA,GACF;AAAA,EAEA,eAAkB,GAAA;AAEhB,IAAW,UAAA,CAAA,IAAA,CAAK,aAAa,CAAA,EAAG,OAAQ,EAAA,CAAA;AAAA,GAC1C;AAAA,EAEA,YAAe,GAAA;AACb,IAAA,OAAO,IAAI,OAAA,CAAc,CAAC,OAAA,EAAS,MAAW,KAAA;AAC5C,MAAA,IAAI,QAAW,GAAA,KAAA,CAAA;AACf,MAAI,IAAA,SAAA,CAAA;AACJ,MAAA,IAAI,UAAa,GAAA,CAAA,CAAA;AAEjB,MAAA,MAAM,UAAU,MAAM;AACpB,QAAA,IAAI,QAAU,EAAA;AACZ,UAAA,OAAA;AAAA,SACF;AAEA,QAAA,SAAA,GAAY,WAAW,MAAM;AAC3B,UAAA,UAAA,EAAA,CAAA;AAEA,UAAA,IAAI,aAAa,yBAA2B,EAAA;AAI1C,YAAI,IAAA,UAAA,GAAa,OAAO,CAAG,EAAA;AACzB,cAAQ,OAAA,CAAA,GAAA;AAAA,gBACN,gCAAA;AAAA,kBACE,8BAA+B,CAAA,oBAAA;AAAA,kBAC/B,4CAAA;AAAA,iBACA,CAAA,WAAA,CAAY,CAAc,WAAA,EAAA,UAAU,EAAE,CAAE,CAAA,OAAA;AAAA,eAC5C,CAAA;AAAA,aACF;AAEA,YAAQ,OAAA,EAAA,CAAA;AAER,YAAA,OAAA;AAAA,WACF;AAEA,UAAA,IAAI,CAAC,QAAU,EAAA;AACb,YAAA,MAAM,KAAQ,GAAA,gCAAA;AAAA,cACZ,8BAA+B,CAAA,oBAAA;AAAA,cAC/B,6CAAA;AAAA,aACF,CAAA;AAEA,YAAA,MAAA,CAAO,KAAK,CAAA,CAAA;AAAA,WACd;AAAA,WACC,qBAAqB,CAAA,CAAA;AAAA,OAC1B,CAAA;AAEA,MAAQ,OAAA,EAAA,CAAA;AAER,MAAM,MAAA,2BAAA;AAAA;AAAA,QAEJ,UAAA,CAAW,IAAK,CAAA,aAAa,CAAE,CAAA,OAAA;AAAA,OAAA,CAAA;AAEjC,MAAA,2BAAA,CAA4B,KAAK,MAAM;AACrC,QAAW,QAAA,GAAA,IAAA,CAAA;AACX,QAAA,YAAA,CAAa,SAAS,CAAA,CAAA;AACtB,QAAQ,OAAA,EAAA,CAAA;AAAA,OACT,CAAA,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GACH;AACF;;AC5FO,MAAM,uBAA0B,GAAA,4BAAA;AAO3B,IAAA,mBAAA,qBAAAC,oBAAL,KAAA;AACL,EAAAA,qBAAA,QAAS,CAAA,GAAA,QAAA,CAAA;AACT,EAAAA,qBAAA,OAAQ,CAAA,GAAA,OAAA,CAAA;AAER,EAAAA,qBAAA,gBAAiB,CAAA,GAAA,gBAAA,CAAA;AAJP,EAAAA,OAAAA,oBAAAA,CAAAA;AAAA,CAAA,EAAA,mBAAA,IAAA,EAAA,EAAA;AAiBL,MAAM,kBAAmB,CAAA;AAAA,EAoB9B,YAAoB,kBAAyC,EAAA;AAAzC,IAAA,IAAA,CAAA,kBAAA,GAAA,kBAAA,CAAA;AAAA,GAA0C;AAAA,EAnB9D,OAAe,MAAA,GAAS,IAAI,sBAAA,CAAuB,aAAa,CAAA,CAAA;AAAA,EAEhE,aAAa,OAAO,OAA8B,EAAA;AAChD,IAAI,IAAA,UAAA,CAAW,uBAAuB,CAAG,EAAA;AACvC,MAAM,MAAA,gCAAA;AAAA,QACJ,8BAA+B,CAAA,oBAAA;AAAA,QAC/B,iEAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEA,IAAA,UAAA,CAAW,uBAAuB,CAAA,GAAI,IAAI,kBAAA,CAAmB,OAAO,CAAA,CAAA;AACpE,IAAA,IAAA,CAAK,OAAO,eAAgB,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,aAAa,WAA2C,GAAA;AACtD,IAAM,MAAA,IAAA,CAAK,OAAO,YAAa,EAAA,CAAA;AAC/B,IAAA,OAAO,WAAW,uBAAuB,CAAA,CAAA;AAAA,GAC3C;AAAA,EAIA,aAAgB,GAAA;AACd,IAAA,OAAO,KAAK,kBAAmB,CAAA,UAAA,CAAA;AAAA,GACjC;AAAA,EAEA,SAAY,GAAA;AACV,IAAA,OAAO,KAAK,kBAAmB,CAAA,MAAA,CAAA;AAAA,GACjC;AAAA,EAEA,kBAAqB,GAAA;AACnB,IAAO,OAAA,IAAA,CAAK,kBAAmB,CAAA,eAAA,IAAmB,EAAC,CAAA;AAAA,GACrD;AAAA,EAEA,cAAiB,GAAA;AACf,IAAA,OAAO,KAAK,kBAAmB,CAAA,WAAA,CAAA;AAAA,GACjC;AACF;;AC9DO,MAAM,uBAA0B,GAAA,4BAAA;AA4BhC,MAAM,kBAAyD,CAAA;AAAA,EAkEpE,WAAA,CACU,oBACA,WACR,EAAA;AAFQ,IAAA,IAAA,CAAA,kBAAA,GAAA,kBAAA,CAAA;AACA,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA,CAAA;AAER,IAAA,IAAA,CAAK,SAAS,IAAI,sBAAA;AAAA,MAChB,KAAK,kBAAmB,CAAA,eAAA;AAAA,MACxB,IAAA,CAAK,YAAY,SAAU,EAAA;AAAA,MAC3B,IAAA,CAAK,YAAY,aAAc,EAAA;AAAA,KACjC,CAAA;AAAA,GACF;AAAA,EA1EA,OAAe,MAAA,GAAS,IAAI,sBAAA,CAAuB,aAAa,CAAA,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOhE,aAAa,OAA6C,OAAmB,EAAA;AAU3E,IAAI,IAAA,UAAA,CAAW,uBAAuB,CAAG,EAAA;AACvC,MAAM,MAAA,gCAAA;AAAA,QACJ,8BAA+B,CAAA,oBAAA;AAAA,QAC/B,iEAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEA,IAAW,UAAA,CAAA,uBAAuB,IAAI,IAAI,kBAAA;AAAA,MACxC,OAAA;AAAA,MACA,MAAM,mBAAmB,WAAY,EAAA;AAAA,KACvC,CAAA;AAEA,IAAA,IAAA,CAAK,OAAO,eAAgB,EAAA,CAAA;AAAA,GAC9B;AAAA,EAEA,aAAa,WAAoD,GAAA;AAC/D,IAAI,IAAA,OAAO,8BAA8B,WAAa,EAAA;AAMpD,MAAO,OAAA,yBAAA,CAAA;AAAA,KACT;AAEA,IAAM,MAAA,IAAA,CAAK,OAAO,YAAa,EAAA,CAAA;AAE/B,IAAA,OAAO,WAAW,uBAAuB,CAAA,CAAA;AAAA,GAiB3C;AAAA,EAEQ,MAAA,CAAA;AAAA,EAaR,kBAAqB,GAAA;AACnB,IAAA,OAAO,KAAK,kBAAmB,CAAA,eAAA,CAAA;AAAA,GACjC;AAAA,EAEA,WAAc,GAAA;AACZ,IAAA,OAAO,IAAK,CAAA,kBAAA,CAAA;AAAA,GACd;AAAA,EAEA,SAAY,GAAA;AACV,IAAA,OAAO,IAAK,CAAA,MAAA,CAAA;AAAA,GACd;AAAA,EAEA,qBAAwB,GAAA;AACtB,IAAA,OAAO,IAAK,CAAA,WAAA,CAAA;AAAA,GACd;AAAA,EAEA,aAAgB,GAAA;AACd,IAAO,OAAA,IAAA,CAAK,YAAY,aAAc,EAAA,CAAA;AAAA,GACxC;AAAA,EAEA,wBAA2B,GAAA;AACzB,IAAM,MAAA,eAAA,GAAkB,KAAK,kBAAmB,EAAA,CAAA;AAEhD,IAAA,IAAI,CAAC,eAAiB,EAAA;AACpB,MAAM,MAAA,gCAAA;AAAA,QACJ,8BAA+B,CAAA,oBAAA;AAAA,QAC/B,kCAAA;AAAA,OACF,CAAA;AAAA,KACF;AAEA,IAAA,OAAO,IAAK,CAAA,WAAA,CAAY,kBAAmB,EAAA,CAAE,eAAe,CAAA,CAAA;AAAA,GAC9D;AACF;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/errors.ts","../../src/ApplicationBoundEvents/transformEventPayload.ts","../../src/ApplicationBoundEvents/ApplicationBoundEvents.ts","../../src/contexts/ContextInjectionStatus.ts","../../src/contexts/EnvironmentContext.ts","../../src/contexts/ApplicationContext.ts"],"sourcesContent":["import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformContextErrorCode {\n IncorrectEnvironment = 'IncorrectEnvironment',\n}\n\nclass EditorPlatformContextError extends BaseError<EditorPlatformContextErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformContextErrorCode) {\n super(message, code, 'EP Context 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\nexport const createEditorPlatformContextError = createErrorBuilder<\n EditorPlatformContextErrorCode,\n EditorPlatformContextError\n>(EditorPlatformContextError);\n","import type { ComponentRef } from '@wix/public-editor-platform-interfaces';\nimport {\n AllowedEvents,\n AppEventPayload,\n IComponent,\n PrivateAPIFixMe,\n} from './types';\n\nexport async function transformEventPayload<T extends AllowedEvents>(\n eventPayload: Record<string, string>,\n privateAPI: PrivateAPIFixMe,\n): Promise<AppEventPayload<T>> {\n if (!eventPayload?.type) {\n return eventPayload as AppEventPayload<T>;\n }\n\n switch (eventPayload.type) {\n case 'componentSelectionChanged':\n const componentRefs = (eventPayload.componentRefs ||\n []) as unknown as ComponentRef[];\n\n const components = (await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n }),\n )) as IComponent[];\n\n return {\n type: eventPayload.type,\n components,\n } as AppEventPayload<T>;\n\n default:\n return eventPayload as AppEventPayload<T>;\n }\n}\n","import {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n IPlatformAppEvent,\n} from '@wix/public-editor-platform-events';\nimport { AllowedEvents, AppEventPayload, PrivateAPIFixMe } from './types';\nimport { transformEventPayload } from './transformEventPayload';\n\nexport type OmitEventMeta<T> = T extends { meta: any } ? Omit<T, 'meta'> : T;\n\n/**\n * TODO: should not be in this package\n */\nexport class ApplicationBoundEvents {\n private events: PlatformAppEventEmitter;\n public subscribe;\n public commit;\n public startTransaction;\n public silent;\n\n constructor(\n private appDefinitionId: string,\n events: PlatformAppEventEmitter,\n private privateAPI: PrivateAPIFixMe,\n ) {\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\n public notify(event: OmitEventMeta<IPlatformAppEvent>) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId,\n },\n } as IPlatformAppEvent);\n }\n\n notifyCustomEvent(type: string, payload: Record<string, string>) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type,\n },\n });\n }\n\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n public addEventListener<EventType extends AllowedEvents>(\n eventType: EventType,\n fn: (payload: AppEventPayload<EventType>) => void,\n ) {\n return this.events.subscribe(async (event) => {\n const isAppMatch =\n event.meta?.appDefinitionId === this.appDefinitionId ||\n event.meta?.appDefinitionId === null;\n\n const transformPayload = () =>\n transformEventPayload<EventType>(event.payload, this.privateAPI);\n\n // as an exception to skip autocomplete\n if ((eventType as string) === '*') {\n fn(await transformPayload());\n /**\n * We need to check for app match here to not listen app's own events\n */\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","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\n\nexport class ContextInjectionStatus {\n injectionUUID: string;\n injectionUUID_Deprecated: string;\n\n constructor(uuid: string) {\n this.injectionUUID_Deprecated = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;\n this.injectionUUID = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY#0.1`;\n\n const promise = this.#getGlobalInjectionPromise();\n\n if (!promise) {\n this.#createGlobalInjectionPromise();\n }\n }\n\n #getGlobalInjectionPromise() {\n // @ts-expect-error xxx\n const ref = globalThis[this.injectionUUID];\n return ref?.promise;\n }\n\n #createGlobalInjectionPromise() {\n let _resolve;\n\n const promise = new Promise<void>((resolve) => {\n _resolve = resolve;\n });\n\n // @ts-expect-error xxx\n globalThis[this.injectionUUID] = {\n promise,\n resolve: _resolve,\n };\n\n /**\n * as soon as new latest-version promise is created\n * override existing deprecated promise and resolve it\n * as soon as latest is resolved\n */\n // @ts-expect-error xxx\n globalThis[this.injectionUUID_Deprecated] = new Promise((resolve) => {\n promise.then(resolve);\n });\n }\n\n resolveInjected() {\n // @ts-expect-error xxx\n globalThis[this.injectionUUID]?.resolve();\n }\n\n waitInjected() {\n return new Promise<void>((resolve, reject) => {\n let injected = false;\n let timeoutId: ReturnType<typeof setTimeout>;\n let retryCount = 0;\n\n const timeout = () => {\n if (injected) {\n return;\n }\n\n timeoutId = setTimeout(() => {\n retryCount++;\n\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n /**\n * just log that we are re-trying to connect (each 2 sec+-)\n */\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, still re-trying',\n ).withMessage(`try number ${retryCount}`).message,\n );\n }\n\n timeout();\n\n return;\n }\n\n if (!injected) {\n const error = createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, threw by timeout',\n );\n\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n\n timeout();\n\n this.#getGlobalInjectionPromise()?.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n","import { PlatformAppEventEmitter } from '@wix/public-editor-platform-events';\nimport { WithPromiseFunctions } from '@wix/editor-platform-transport';\nimport {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport type IPrivateAPIFixMe = any; // TODO: replace with the real type\n\nexport const ENVIRONMENT_CONTEXT_KEY = '__ENVIRONMENT_CONTEXT_KEY';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __ENVIRONMENT_CONTEXT_KEY: EnvironmentContext;\n}\n\nexport enum PlatformEnvironment {\n Worker = 'Worker',\n Frame = 'Frame',\n // TODO - rename to MainThread\n ComponentPanel = 'ComponentPanel',\n}\n\nexport interface IEnvironmentContext {\n environment: PlatformEnvironment;\n privateApi: WithPromiseFunctions<IPrivateAPIFixMe>;\n events: PlatformAppEventEmitter;\n /**\n * Probably, we need to rename this prop\n */\n applicationAPIs?: Record<string, any>;\n}\n\nexport class EnvironmentContext {\n private static status = new ContextInjectionStatus('environment');\n\n static async inject(context: IEnvironmentContext) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Environment context already exists and should not be overridden',\n );\n }\n\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n\n static async getInstance(): Promise<EnvironmentContext> {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n\n constructor(private environmentContext: IEnvironmentContext) {}\n\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n\n getEvents() {\n return this.environmentContext.events;\n }\n\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nimport { ApplicationBoundEvents } from '../ApplicationBoundEvents';\nimport { EnvironmentContext, PlatformEnvironment } from './EnvironmentContext';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport const APPLICATION_CONTEXT_KEY = '__APPLICATION_CONTEXT_KEY';\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_CONTEXT_KEY: ApplicationContext<IApplicationContext>;\n}\n\nexport type IEditorApplicationContext = {\n appDefinitionId: string;\n};\n\nexport type IAddonContext = {\n appDefinitionId: string;\n appDefinitionName: string;\n data: {\n toolPanelConfig: {\n url: string;\n width: string;\n height: string;\n initialPosition: {\n x: string;\n y: string;\n };\n };\n };\n};\n\nexport type IApplicationContext = IEditorApplicationContext | IAddonContext;\n\nexport class ApplicationContext<TContext extends IApplicationContext> {\n private static status = new ContextInjectionStatus('application');\n\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject<TContext extends IApplicationContext>(context: TContext) {\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n // throw createEditorPlatformContextError(\n // EditorPlatformContextErrorCode.IncorrectEnvironment,\n // 'Application context can be injected only in frame environment',\n // );\n // }\n\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Application context already exists and should not be overridden',\n );\n }\n\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance(),\n );\n\n this.status.resolveInjected();\n }\n\n static async getInstance<TContext extends IApplicationContext>() {\n if (typeof __APPLICATION_CONTEXT_KEY !== 'undefined') {\n /**\n * NOTE it is taken not from global\n * __APPLICATION_CONTEXT_KEY is the variable which set during\n * application bundle execution using new Function() approach\n */\n return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n }\n\n await this.status.waitInjected();\n\n return globalThis[APPLICATION_CONTEXT_KEY] as ApplicationContext<TContext>;\n\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n // await this.status.waitInjected();\n // return globalThis[\n // APPLICATION_CONTEXT_KEY\n // ] as ApplicationContext<TContext>;\n // } else {\n // /**\n // * NOTE it is taken not from global\n // * __APPLICATION_CONTEXT_KEY is the variable which set during\n // * application bundle execution using new Function() approach\n // */\n // return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n // }\n }\n\n private events: ApplicationBoundEvents;\n\n constructor(\n private applicationContext: TContext,\n private environment: EnvironmentContext,\n ) {\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI(),\n );\n }\n\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n\n getBindings() {\n return this.applicationContext;\n }\n\n getEvents() {\n return this.events;\n }\n\n getEnvironmentContext() {\n return this.environment;\n }\n\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n\n if (!appDefinitionId) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'appDefinitionId is not available',\n );\n }\n\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n"],"names":["EditorPlatformContextErrorCode","BaseError","createErrorBuilder","PlatformAppEvent","PlatformEnvironment"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -102,7 +102,9 @@ const WAIT_INJECTED_TIMEOUT = 200;
|
|
|
102
102
|
const WAIT_INJECTED_RETRY_COUNT = 50;
|
|
103
103
|
class ContextInjectionStatus {
|
|
104
104
|
injectionUUID;
|
|
105
|
+
injectionUUID_Deprecated;
|
|
105
106
|
constructor(uuid) {
|
|
107
|
+
this.injectionUUID_Deprecated = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;
|
|
106
108
|
this.injectionUUID = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY#0.1`;
|
|
107
109
|
const promise = this.#getGlobalInjectionPromise();
|
|
108
110
|
if (!promise) {
|
|
@@ -111,7 +113,7 @@ class ContextInjectionStatus {
|
|
|
111
113
|
}
|
|
112
114
|
#getGlobalInjectionPromise() {
|
|
113
115
|
const ref = globalThis[this.injectionUUID];
|
|
114
|
-
return ref?.promise
|
|
116
|
+
return ref?.promise;
|
|
115
117
|
}
|
|
116
118
|
#createGlobalInjectionPromise() {
|
|
117
119
|
let _resolve;
|
|
@@ -122,6 +124,9 @@ class ContextInjectionStatus {
|
|
|
122
124
|
promise,
|
|
123
125
|
resolve: _resolve
|
|
124
126
|
};
|
|
127
|
+
globalThis[this.injectionUUID_Deprecated] = new Promise((resolve) => {
|
|
128
|
+
promise.then(resolve);
|
|
129
|
+
});
|
|
125
130
|
}
|
|
126
131
|
resolveInjected() {
|
|
127
132
|
globalThis[this.injectionUUID]?.resolve();
|
|
@@ -159,11 +164,7 @@ class ContextInjectionStatus {
|
|
|
159
164
|
}, WAIT_INJECTED_TIMEOUT);
|
|
160
165
|
};
|
|
161
166
|
timeout();
|
|
162
|
-
|
|
163
|
-
// @ts-expect-error xxx
|
|
164
|
-
globalThis[this.injectionUUID].promise
|
|
165
|
-
);
|
|
166
|
-
_waitContextInjectedPromise.then(() => {
|
|
167
|
+
this.#getGlobalInjectionPromise()?.then(() => {
|
|
167
168
|
injected = true;
|
|
168
169
|
clearTimeout(timeoutId);
|
|
169
170
|
resolve();
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/errors.ts","../../src/ApplicationBoundEvents/transformEventPayload.ts","../../src/ApplicationBoundEvents/ApplicationBoundEvents.ts","../../src/contexts/ContextInjectionStatus.ts","../../src/contexts/EnvironmentContext.ts","../../src/contexts/ApplicationContext.ts"],"sourcesContent":["import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformContextErrorCode {\n IncorrectEnvironment = 'IncorrectEnvironment',\n}\n\nclass EditorPlatformContextError extends BaseError<EditorPlatformContextErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformContextErrorCode) {\n super(message, code, 'EP Context 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\nexport const createEditorPlatformContextError = createErrorBuilder<\n EditorPlatformContextErrorCode,\n EditorPlatformContextError\n>(EditorPlatformContextError);\n","import type { ComponentRef } from '@wix/public-editor-platform-interfaces';\nimport {\n AllowedEvents,\n AppEventPayload,\n IComponent,\n PrivateAPIFixMe,\n} from './types';\n\nexport async function transformEventPayload<T extends AllowedEvents>(\n eventPayload: Record<string, string>,\n privateAPI: PrivateAPIFixMe,\n): Promise<AppEventPayload<T>> {\n if (!eventPayload?.type) {\n return eventPayload as AppEventPayload<T>;\n }\n\n switch (eventPayload.type) {\n case 'componentSelectionChanged':\n const componentRefs = (eventPayload.componentRefs ||\n []) as unknown as ComponentRef[];\n\n const components = (await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n }),\n )) as IComponent[];\n\n return {\n type: eventPayload.type,\n components,\n } as AppEventPayload<T>;\n\n default:\n return eventPayload as AppEventPayload<T>;\n }\n}\n","import {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n IPlatformAppEvent,\n} from '@wix/public-editor-platform-events';\nimport { AllowedEvents, AppEventPayload, PrivateAPIFixMe } from './types';\nimport { transformEventPayload } from './transformEventPayload';\n\nexport type OmitEventMeta<T> = T extends { meta: any } ? Omit<T, 'meta'> : T;\n\n/**\n * TODO: should not be in this package\n */\nexport class ApplicationBoundEvents {\n private events: PlatformAppEventEmitter;\n public subscribe;\n public commit;\n public startTransaction;\n public silent;\n\n constructor(\n private appDefinitionId: string,\n events: PlatformAppEventEmitter,\n private privateAPI: PrivateAPIFixMe,\n ) {\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\n public notify(event: OmitEventMeta<IPlatformAppEvent>) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId,\n },\n } as IPlatformAppEvent);\n }\n\n notifyCustomEvent(type: string, payload: Record<string, string>) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type,\n },\n });\n }\n\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n public addEventListener<EventType extends AllowedEvents>(\n eventType: EventType,\n fn: (payload: AppEventPayload<EventType>) => void,\n ) {\n return this.events.subscribe(async (event) => {\n const isAppMatch =\n event.meta?.appDefinitionId === this.appDefinitionId ||\n event.meta?.appDefinitionId === null;\n\n const transformPayload = () =>\n transformEventPayload<EventType>(event.payload, this.privateAPI);\n\n // as an exception to skip autocomplete\n if ((eventType as string) === '*') {\n fn(await transformPayload());\n /**\n * We need to check for app match here to not listen app's own events\n */\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","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\n\nexport class ContextInjectionStatus {\n injectionUUID: string;\n\n constructor(uuid: string) {\n this.injectionUUID = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY#0.1`;\n\n const promise = this.#getGlobalInjectionPromise();\n\n if (!promise) {\n this.#createGlobalInjectionPromise();\n }\n }\n\n #getGlobalInjectionPromise() {\n // @ts-expect-error xxx\n const ref = globalThis[this.injectionUUID];\n return ref?.promise ? ref : null;\n }\n\n #createGlobalInjectionPromise() {\n let _resolve;\n\n const promise = new Promise<void>((resolve) => {\n _resolve = resolve;\n });\n\n // @ts-expect-error xxx\n globalThis[this.injectionUUID] = {\n promise,\n resolve: _resolve,\n };\n }\n\n resolveInjected() {\n // @ts-expect-error xxx\n globalThis[this.injectionUUID]?.resolve();\n }\n\n waitInjected() {\n return new Promise<void>((resolve, reject) => {\n let injected = false;\n let timeoutId: ReturnType<typeof setTimeout>;\n let retryCount = 0;\n\n const timeout = () => {\n if (injected) {\n return;\n }\n\n timeoutId = setTimeout(() => {\n retryCount++;\n\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n /**\n * just log that we are re-trying to connect (each 2 sec+-)\n */\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, still re-trying',\n ).withMessage(`try number ${retryCount}`).message,\n );\n }\n\n timeout();\n\n return;\n }\n\n if (!injected) {\n const error = createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, threw by timeout',\n );\n\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n\n timeout();\n\n const _waitContextInjectedPromise =\n // @ts-expect-error xxx\n globalThis[this.injectionUUID].promise;\n\n _waitContextInjectedPromise.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n","import { PlatformAppEventEmitter } from '@wix/public-editor-platform-events';\nimport { WithPromiseFunctions } from '@wix/editor-platform-transport';\nimport {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport type IPrivateAPIFixMe = any; // TODO: replace with the real type\n\nexport const ENVIRONMENT_CONTEXT_KEY = '__ENVIRONMENT_CONTEXT_KEY';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __ENVIRONMENT_CONTEXT_KEY: EnvironmentContext;\n}\n\nexport enum PlatformEnvironment {\n Worker = 'Worker',\n Frame = 'Frame',\n // TODO - rename to MainThread\n ComponentPanel = 'ComponentPanel',\n}\n\nexport interface IEnvironmentContext {\n environment: PlatformEnvironment;\n privateApi: WithPromiseFunctions<IPrivateAPIFixMe>;\n events: PlatformAppEventEmitter;\n /**\n * Probably, we need to rename this prop\n */\n applicationAPIs?: Record<string, any>;\n}\n\nexport class EnvironmentContext {\n private static status = new ContextInjectionStatus('environment');\n\n static async inject(context: IEnvironmentContext) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Environment context already exists and should not be overridden',\n );\n }\n\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n\n static async getInstance(): Promise<EnvironmentContext> {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n\n constructor(private environmentContext: IEnvironmentContext) {}\n\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n\n getEvents() {\n return this.environmentContext.events;\n }\n\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nimport { ApplicationBoundEvents } from '../ApplicationBoundEvents';\nimport { EnvironmentContext, PlatformEnvironment } from './EnvironmentContext';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport const APPLICATION_CONTEXT_KEY = '__APPLICATION_CONTEXT_KEY';\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_CONTEXT_KEY: ApplicationContext<IApplicationContext>;\n}\n\nexport type IEditorApplicationContext = {\n appDefinitionId: string;\n};\n\nexport type IAddonContext = {\n appDefinitionId: string;\n appDefinitionName: string;\n data: {\n toolPanelConfig: {\n url: string;\n width: string;\n height: string;\n initialPosition: {\n x: string;\n y: string;\n };\n };\n };\n};\n\nexport type IApplicationContext = IEditorApplicationContext | IAddonContext;\n\nexport class ApplicationContext<TContext extends IApplicationContext> {\n private static status = new ContextInjectionStatus('application');\n\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject<TContext extends IApplicationContext>(context: TContext) {\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n // throw createEditorPlatformContextError(\n // EditorPlatformContextErrorCode.IncorrectEnvironment,\n // 'Application context can be injected only in frame environment',\n // );\n // }\n\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Application context already exists and should not be overridden',\n );\n }\n\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance(),\n );\n\n this.status.resolveInjected();\n }\n\n static async getInstance<TContext extends IApplicationContext>() {\n if (typeof __APPLICATION_CONTEXT_KEY !== 'undefined') {\n /**\n * NOTE it is taken not from global\n * __APPLICATION_CONTEXT_KEY is the variable which set during\n * application bundle execution using new Function() approach\n */\n return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n }\n\n await this.status.waitInjected();\n\n return globalThis[APPLICATION_CONTEXT_KEY] as ApplicationContext<TContext>;\n\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n // await this.status.waitInjected();\n // return globalThis[\n // APPLICATION_CONTEXT_KEY\n // ] as ApplicationContext<TContext>;\n // } else {\n // /**\n // * NOTE it is taken not from global\n // * __APPLICATION_CONTEXT_KEY is the variable which set during\n // * application bundle execution using new Function() approach\n // */\n // return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n // }\n }\n\n private events: ApplicationBoundEvents;\n\n constructor(\n private applicationContext: TContext,\n private environment: EnvironmentContext,\n ) {\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI(),\n );\n }\n\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n\n getBindings() {\n return this.applicationContext;\n }\n\n getEvents() {\n return this.events;\n }\n\n getEnvironmentContext() {\n return this.environment;\n }\n\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n\n if (!appDefinitionId) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'appDefinitionId is not available',\n );\n }\n\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n"],"names":["EditorPlatformContextErrorCode","PlatformEnvironment"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/errors.ts","../../src/ApplicationBoundEvents/transformEventPayload.ts","../../src/ApplicationBoundEvents/ApplicationBoundEvents.ts","../../src/contexts/ContextInjectionStatus.ts","../../src/contexts/EnvironmentContext.ts","../../src/contexts/ApplicationContext.ts"],"sourcesContent":["import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformContextErrorCode {\n IncorrectEnvironment = 'IncorrectEnvironment',\n}\n\nclass EditorPlatformContextError extends BaseError<EditorPlatformContextErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformContextErrorCode) {\n super(message, code, 'EP Context 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\nexport const createEditorPlatformContextError = createErrorBuilder<\n EditorPlatformContextErrorCode,\n EditorPlatformContextError\n>(EditorPlatformContextError);\n","import type { ComponentRef } from '@wix/public-editor-platform-interfaces';\nimport {\n AllowedEvents,\n AppEventPayload,\n IComponent,\n PrivateAPIFixMe,\n} from './types';\n\nexport async function transformEventPayload<T extends AllowedEvents>(\n eventPayload: Record<string, string>,\n privateAPI: PrivateAPIFixMe,\n): Promise<AppEventPayload<T>> {\n if (!eventPayload?.type) {\n return eventPayload as AppEventPayload<T>;\n }\n\n switch (eventPayload.type) {\n case 'componentSelectionChanged':\n const componentRefs = (eventPayload.componentRefs ||\n []) as unknown as ComponentRef[];\n\n const components = (await Promise.all(\n componentRefs.map((ref) => {\n return privateAPI.components.getComponent(ref);\n }),\n )) as IComponent[];\n\n return {\n type: eventPayload.type,\n components,\n } as AppEventPayload<T>;\n\n default:\n return eventPayload as AppEventPayload<T>;\n }\n}\n","import {\n PlatformAppEvent,\n PlatformAppEventEmitter,\n IPlatformAppEvent,\n} from '@wix/public-editor-platform-events';\nimport { AllowedEvents, AppEventPayload, PrivateAPIFixMe } from './types';\nimport { transformEventPayload } from './transformEventPayload';\n\nexport type OmitEventMeta<T> = T extends { meta: any } ? Omit<T, 'meta'> : T;\n\n/**\n * TODO: should not be in this package\n */\nexport class ApplicationBoundEvents {\n private events: PlatformAppEventEmitter;\n public subscribe;\n public commit;\n public startTransaction;\n public silent;\n\n constructor(\n private appDefinitionId: string,\n events: PlatformAppEventEmitter,\n private privateAPI: PrivateAPIFixMe,\n ) {\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\n public notify(event: OmitEventMeta<IPlatformAppEvent>) {\n this.events.notify({\n type: event.type,\n payload: event.payload,\n meta: {\n appDefinitionId: this.appDefinitionId,\n },\n } as IPlatformAppEvent);\n }\n\n notifyCustomEvent(type: string, payload: Record<string, string>) {\n this.notify({\n type: PlatformAppEvent.CustomEvent,\n payload: {\n ...payload,\n type,\n },\n });\n }\n\n /**\n * TODO: we should use same interface for all events\n * (subscribe vs addEventListener)\n */\n public addEventListener<EventType extends AllowedEvents>(\n eventType: EventType,\n fn: (payload: AppEventPayload<EventType>) => void,\n ) {\n return this.events.subscribe(async (event) => {\n const isAppMatch =\n event.meta?.appDefinitionId === this.appDefinitionId ||\n event.meta?.appDefinitionId === null;\n\n const transformPayload = () =>\n transformEventPayload<EventType>(event.payload, this.privateAPI);\n\n // as an exception to skip autocomplete\n if ((eventType as string) === '*') {\n fn(await transformPayload());\n /**\n * We need to check for app match here to not listen app's own events\n */\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","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nconst WAIT_INJECTED_TIMEOUT = 200;\nconst WAIT_INJECTED_RETRY_COUNT = 50;\n\nexport class ContextInjectionStatus {\n injectionUUID: string;\n injectionUUID_Deprecated: string;\n\n constructor(uuid: string) {\n this.injectionUUID_Deprecated = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY`;\n this.injectionUUID = `__${uuid}_CONTEXT_INJECTION_STATUS_KEY#0.1`;\n\n const promise = this.#getGlobalInjectionPromise();\n\n if (!promise) {\n this.#createGlobalInjectionPromise();\n }\n }\n\n #getGlobalInjectionPromise() {\n // @ts-expect-error xxx\n const ref = globalThis[this.injectionUUID];\n return ref?.promise;\n }\n\n #createGlobalInjectionPromise() {\n let _resolve;\n\n const promise = new Promise<void>((resolve) => {\n _resolve = resolve;\n });\n\n // @ts-expect-error xxx\n globalThis[this.injectionUUID] = {\n promise,\n resolve: _resolve,\n };\n\n /**\n * as soon as new latest-version promise is created\n * override existing deprecated promise and resolve it\n * as soon as latest is resolved\n */\n // @ts-expect-error xxx\n globalThis[this.injectionUUID_Deprecated] = new Promise((resolve) => {\n promise.then(resolve);\n });\n }\n\n resolveInjected() {\n // @ts-expect-error xxx\n globalThis[this.injectionUUID]?.resolve();\n }\n\n waitInjected() {\n return new Promise<void>((resolve, reject) => {\n let injected = false;\n let timeoutId: ReturnType<typeof setTimeout>;\n let retryCount = 0;\n\n const timeout = () => {\n if (injected) {\n return;\n }\n\n timeoutId = setTimeout(() => {\n retryCount++;\n\n if (retryCount < WAIT_INJECTED_RETRY_COUNT) {\n /**\n * just log that we are re-trying to connect (each 2 sec+-)\n */\n if (retryCount % 10 === 0) {\n console.log(\n createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, still re-trying',\n ).withMessage(`try number ${retryCount}`).message,\n );\n }\n\n timeout();\n\n return;\n }\n\n if (!injected) {\n const error = createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'contexts are not resolved, threw by timeout',\n );\n\n reject(error);\n }\n }, WAIT_INJECTED_TIMEOUT);\n };\n\n timeout();\n\n this.#getGlobalInjectionPromise()?.then(() => {\n injected = true;\n clearTimeout(timeoutId);\n resolve();\n });\n });\n }\n}\n","import { PlatformAppEventEmitter } from '@wix/public-editor-platform-events';\nimport { WithPromiseFunctions } from '@wix/editor-platform-transport';\nimport {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport type IPrivateAPIFixMe = any; // TODO: replace with the real type\n\nexport const ENVIRONMENT_CONTEXT_KEY = '__ENVIRONMENT_CONTEXT_KEY';\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __ENVIRONMENT_CONTEXT_KEY: EnvironmentContext;\n}\n\nexport enum PlatformEnvironment {\n Worker = 'Worker',\n Frame = 'Frame',\n // TODO - rename to MainThread\n ComponentPanel = 'ComponentPanel',\n}\n\nexport interface IEnvironmentContext {\n environment: PlatformEnvironment;\n privateApi: WithPromiseFunctions<IPrivateAPIFixMe>;\n events: PlatformAppEventEmitter;\n /**\n * Probably, we need to rename this prop\n */\n applicationAPIs?: Record<string, any>;\n}\n\nexport class EnvironmentContext {\n private static status = new ContextInjectionStatus('environment');\n\n static async inject(context: IEnvironmentContext) {\n if (globalThis[ENVIRONMENT_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Environment context already exists and should not be overridden',\n );\n }\n\n globalThis[ENVIRONMENT_CONTEXT_KEY] = new EnvironmentContext(context);\n this.status.resolveInjected();\n }\n\n static async getInstance(): Promise<EnvironmentContext> {\n await this.status.waitInjected();\n return globalThis[ENVIRONMENT_CONTEXT_KEY];\n }\n\n constructor(private environmentContext: IEnvironmentContext) {}\n\n getPrivateAPI() {\n return this.environmentContext.privateApi;\n }\n\n getEvents() {\n return this.environmentContext.events;\n }\n\n getApplicationAPIs() {\n return this.environmentContext.applicationAPIs ?? {};\n }\n\n getEnvironment() {\n return this.environmentContext.environment;\n }\n}\n","import {\n createEditorPlatformContextError,\n EditorPlatformContextErrorCode,\n} from '../errors';\n\nimport { ApplicationBoundEvents } from '../ApplicationBoundEvents';\nimport { EnvironmentContext, PlatformEnvironment } from './EnvironmentContext';\nimport { ContextInjectionStatus } from './ContextInjectionStatus';\n\nexport const APPLICATION_CONTEXT_KEY = '__APPLICATION_CONTEXT_KEY';\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_CONTEXT_KEY: ApplicationContext<IApplicationContext>;\n}\n\nexport type IEditorApplicationContext = {\n appDefinitionId: string;\n};\n\nexport type IAddonContext = {\n appDefinitionId: string;\n appDefinitionName: string;\n data: {\n toolPanelConfig: {\n url: string;\n width: string;\n height: string;\n initialPosition: {\n x: string;\n y: string;\n };\n };\n };\n};\n\nexport type IApplicationContext = IEditorApplicationContext | IAddonContext;\n\nexport class ApplicationContext<TContext extends IApplicationContext> {\n private static status = new ContextInjectionStatus('application');\n\n /**\n * TODO: use generics for context type\n * - application\n * - editor\n */\n static async inject<TContext extends IApplicationContext>(context: TContext) {\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() !== PlatformEnvironment.Frame) {\n // throw createEditorPlatformContextError(\n // EditorPlatformContextErrorCode.IncorrectEnvironment,\n // 'Application context can be injected only in frame environment',\n // );\n // }\n\n if (globalThis[APPLICATION_CONTEXT_KEY]) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'Application context already exists and should not be overridden',\n );\n }\n\n globalThis[APPLICATION_CONTEXT_KEY] = new ApplicationContext(\n context,\n await EnvironmentContext.getInstance(),\n );\n\n this.status.resolveInjected();\n }\n\n static async getInstance<TContext extends IApplicationContext>() {\n if (typeof __APPLICATION_CONTEXT_KEY !== 'undefined') {\n /**\n * NOTE it is taken not from global\n * __APPLICATION_CONTEXT_KEY is the variable which set during\n * application bundle execution using new Function() approach\n */\n return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n }\n\n await this.status.waitInjected();\n\n return globalThis[APPLICATION_CONTEXT_KEY] as ApplicationContext<TContext>;\n\n // const environment = await EnvironmentContext.getInstance();\n\n // if (environment.getEnvironment() === PlatformEnvironment.Frame) {\n // await this.status.waitInjected();\n // return globalThis[\n // APPLICATION_CONTEXT_KEY\n // ] as ApplicationContext<TContext>;\n // } else {\n // /**\n // * NOTE it is taken not from global\n // * __APPLICATION_CONTEXT_KEY is the variable which set during\n // * application bundle execution using new Function() approach\n // */\n // return __APPLICATION_CONTEXT_KEY as ApplicationContext<TContext>;\n // }\n }\n\n private events: ApplicationBoundEvents;\n\n constructor(\n private applicationContext: TContext,\n private environment: EnvironmentContext,\n ) {\n this.events = new ApplicationBoundEvents(\n this.applicationContext.appDefinitionId,\n this.environment.getEvents(),\n this.environment.getPrivateAPI(),\n );\n }\n\n getAppDefinitionId() {\n return this.applicationContext.appDefinitionId;\n }\n\n getBindings() {\n return this.applicationContext;\n }\n\n getEvents() {\n return this.events;\n }\n\n getEnvironmentContext() {\n return this.environment;\n }\n\n getPrivateAPI() {\n return this.environment.getPrivateAPI();\n }\n\n getPrivateApplicationAPI() {\n const appDefinitionId = this.getAppDefinitionId();\n\n if (!appDefinitionId) {\n throw createEditorPlatformContextError(\n EditorPlatformContextErrorCode.IncorrectEnvironment,\n 'appDefinitionId is not available',\n );\n }\n\n return this.environment.getApplicationAPIs()[appDefinitionId];\n }\n}\n"],"names":["EditorPlatformContextErrorCode","PlatformEnvironment"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/editor-platform-contexts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"typescript": "^5.7.2"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@wix/editor-platform-transport": "1.
|
|
37
|
+
"@wix/editor-platform-transport": "1.12.0",
|
|
38
38
|
"@wix/public-editor-platform-errors": "1.8.0",
|
|
39
39
|
"@wix/public-editor-platform-events": "1.305.0",
|
|
40
40
|
"@wix/public-editor-platform-interfaces": "1.16.0"
|
|
@@ -61,5 +61,5 @@
|
|
|
61
61
|
]
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
|
-
"falconPackageHash": "
|
|
64
|
+
"falconPackageHash": "1e4b0dff56f0e02466b199f9eb026da35b9a59faf746fce4c070f25a"
|
|
65
65
|
}
|