@wix/editor-application 1.11.0 → 1.12.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 +18 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +18 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/statics/index.js +18 -1
- package/dist/statics/index.js.map +1 -1
- package/package.json +3 -3
package/dist/cjs/index.js
CHANGED
|
@@ -5,6 +5,23 @@ var publicEditorPlatformInterfaces = require('@wix/public-editor-platform-interf
|
|
|
5
5
|
var publicEditorPlatformErrors = require('@wix/public-editor-platform-errors');
|
|
6
6
|
var editorPlatformContexts = require('@wix/editor-platform-contexts');
|
|
7
7
|
|
|
8
|
+
function hash() {
|
|
9
|
+
const _performance = globalThis["performance"];
|
|
10
|
+
if (_performance && _performance.now) {
|
|
11
|
+
return _performance.now();
|
|
12
|
+
}
|
|
13
|
+
let result = "";
|
|
14
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
15
|
+
const charactersLength = characters.length;
|
|
16
|
+
let counter = 0;
|
|
17
|
+
const length = 10;
|
|
18
|
+
while (counter < length) {
|
|
19
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
20
|
+
counter += 1;
|
|
21
|
+
}
|
|
22
|
+
return result;
|
|
23
|
+
}
|
|
24
|
+
|
|
8
25
|
class ApplicationLifecycle {
|
|
9
26
|
constructor(events) {
|
|
10
27
|
this.events = events;
|
|
@@ -23,7 +40,7 @@ class ApplicationLifecycle {
|
|
|
23
40
|
if (!this.callbacks[event]) {
|
|
24
41
|
this.callbacks[event] = [];
|
|
25
42
|
}
|
|
26
|
-
const id = `${
|
|
43
|
+
const id = `${hash()}`;
|
|
27
44
|
this.callbacks[event].push({
|
|
28
45
|
id,
|
|
29
46
|
fn
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${performance.now()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","export enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["PlatformAppEvent","EditorPlatformApplicationErrorCode","BaseError","createErrorBuilder","EventType","ApplicationType","ApplicationContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/hash.ts","../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["/**\n * it would be good to use performance.now()\n * but it some cases performance API is not available\n */\nexport function hash() {\n const _performance = globalThis['performance'];\n\n if (_performance && _performance.now) {\n return _performance.now();\n }\n\n let result = '';\n const characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const charactersLength = characters.length;\n\n let counter = 0;\n\n const length = 10;\n while (counter < length) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n counter += 1;\n }\n\n return result;\n}\n","import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\nimport { hash } from '../hash';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${hash()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","export enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["PlatformAppEvent","EditorPlatformApplicationErrorCode","BaseError","createErrorBuilder","EventType","ApplicationType","ApplicationContext"],"mappings":"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"}
|
package/dist/esm/index.js
CHANGED
|
@@ -3,6 +3,23 @@ import { EventType } from '@wix/public-editor-platform-interfaces';
|
|
|
3
3
|
import { createErrorBuilder, BaseError } from '@wix/public-editor-platform-errors';
|
|
4
4
|
import { ApplicationContext } from '@wix/editor-platform-contexts';
|
|
5
5
|
|
|
6
|
+
function hash() {
|
|
7
|
+
const _performance = globalThis["performance"];
|
|
8
|
+
if (_performance && _performance.now) {
|
|
9
|
+
return _performance.now();
|
|
10
|
+
}
|
|
11
|
+
let result = "";
|
|
12
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
13
|
+
const charactersLength = characters.length;
|
|
14
|
+
let counter = 0;
|
|
15
|
+
const length = 10;
|
|
16
|
+
while (counter < length) {
|
|
17
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
18
|
+
counter += 1;
|
|
19
|
+
}
|
|
20
|
+
return result;
|
|
21
|
+
}
|
|
22
|
+
|
|
6
23
|
class ApplicationLifecycle {
|
|
7
24
|
constructor(events) {
|
|
8
25
|
this.events = events;
|
|
@@ -21,7 +38,7 @@ class ApplicationLifecycle {
|
|
|
21
38
|
if (!this.callbacks[event]) {
|
|
22
39
|
this.callbacks[event] = [];
|
|
23
40
|
}
|
|
24
|
-
const id = `${
|
|
41
|
+
const id = `${hash()}`;
|
|
25
42
|
this.callbacks[event].push({
|
|
26
43
|
id,
|
|
27
44
|
fn
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${performance.now()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","export enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["EditorPlatformApplicationErrorCode","ApplicationType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/hash.ts","../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["/**\n * it would be good to use performance.now()\n * but it some cases performance API is not available\n */\nexport function hash() {\n const _performance = globalThis['performance'];\n\n if (_performance && _performance.now) {\n return _performance.now();\n }\n\n let result = '';\n const characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const charactersLength = characters.length;\n\n let counter = 0;\n\n const length = 10;\n while (counter < length) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n counter += 1;\n }\n\n return result;\n}\n","import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\nimport { hash } from '../hash';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${hash()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","export enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["EditorPlatformApplicationErrorCode","ApplicationType"],"mappings":"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"}
|
package/dist/statics/index.js
CHANGED
|
@@ -4,6 +4,23 @@
|
|
|
4
4
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.EditorPlatformApplicationRuntime = {}, global.publicEditorPlatformEvents, global.publicEditorPlatformInterfaces, global.publicEditorPlatformErrors, global.editorPlatformContexts));
|
|
5
5
|
})(this, (function (exports, publicEditorPlatformEvents, publicEditorPlatformInterfaces, publicEditorPlatformErrors, editorPlatformContexts) { 'use strict';
|
|
6
6
|
|
|
7
|
+
function hash() {
|
|
8
|
+
const _performance = globalThis["performance"];
|
|
9
|
+
if (_performance && _performance.now) {
|
|
10
|
+
return _performance.now();
|
|
11
|
+
}
|
|
12
|
+
let result = "";
|
|
13
|
+
const characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
|
|
14
|
+
const charactersLength = characters.length;
|
|
15
|
+
let counter = 0;
|
|
16
|
+
const length = 10;
|
|
17
|
+
while (counter < length) {
|
|
18
|
+
result += characters.charAt(Math.floor(Math.random() * charactersLength));
|
|
19
|
+
counter += 1;
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
|
|
7
24
|
class ApplicationLifecycle {
|
|
8
25
|
constructor(events) {
|
|
9
26
|
this.events = events;
|
|
@@ -22,7 +39,7 @@
|
|
|
22
39
|
if (!this.callbacks[event]) {
|
|
23
40
|
this.callbacks[event] = [];
|
|
24
41
|
}
|
|
25
|
-
const id = `${
|
|
42
|
+
const id = `${hash()}`;
|
|
26
43
|
this.callbacks[event].push({
|
|
27
44
|
id,
|
|
28
45
|
fn
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${performance.now()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","export enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["PlatformAppEvent","EditorPlatformApplicationErrorCode","BaseError","createErrorBuilder","EventType","ApplicationType","ApplicationContext"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/hash.ts","../../src/ApplicationLifecycle/ApplicationLifecycle.ts","../../src/errors.ts","../../src/EditorPlatformApplication/EditorPlatformApplication.ts","../../src/types.ts","../../src/EditorPlatformApplication/WixEditorPlatformApplication.ts","../../src/EditorPlatformApplication/WixEditorPlatformAddon.ts"],"sourcesContent":["/**\n * it would be good to use performance.now()\n * but it some cases performance API is not available\n */\nexport function hash() {\n const _performance = globalThis['performance'];\n\n if (_performance && _performance.now) {\n return _performance.now();\n }\n\n let result = '';\n const characters =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\n const charactersLength = characters.length;\n\n let counter = 0;\n\n const length = 10;\n while (counter < length) {\n result += characters.charAt(Math.floor(Math.random() * charactersLength));\n counter += 1;\n }\n\n return result;\n}\n","import {\n PlatformAppEvent,\n IPlatformEditorReadyEvent,\n} from '@wix/public-editor-platform-events';\nimport type { ApplicationBoundEvents } from '@wix/editor-platform-contexts';\nimport { hash } from '../hash';\n\nexport class ApplicationLifecycle {\n private callbacks: Partial<\n Record<\n PlatformAppEvent,\n {\n id: string;\n fn: (payload: any) => void;\n }[]\n >\n > = {};\n\n constructor(private events: ApplicationBoundEvents) {\n this.subscribe();\n }\n\n private subscribe() {\n this.events.subscribe((event) => {\n const { type, payload } = event;\n if (this.callbacks[type]) {\n this.callbacks[type]!.forEach(({ fn }) => fn(payload));\n }\n });\n }\n\n private addCallback(event: PlatformAppEvent, fn: (payload: any) => void) {\n if (!this.callbacks[event]) {\n this.callbacks[event] = [];\n }\n\n const id = `${hash()}`;\n\n this.callbacks[event]!.push({\n id,\n fn,\n });\n\n return () => {\n this.callbacks[event] = this.callbacks[event]!.filter(\n (cb) => cb.id !== id,\n );\n };\n }\n\n /**\n * NOTE: currently, we return function to unsubscribe from the event,\n * probably it is better to return `this` to allow chaining\n * and provide another way to unsubscribe from events.\n */\n public onEditorReady(\n fn: (payload: IPlatformEditorReadyEvent['payload']) => void,\n ) {\n return this.addCallback(PlatformAppEvent.EditorReady, fn);\n }\n}\n","import {\n BaseError,\n createErrorBuilder,\n} from '@wix/public-editor-platform-errors';\n\nexport enum EditorPlatformApplicationErrorCode {\n ApplicationRuntimeError = 'ApplicationRuntimeError',\n}\n\nclass EditorPlatformApplicationError extends BaseError<EditorPlatformApplicationErrorCode> {\n state: Partial<{\n url: string;\n appDefinitionId: string;\n apiMethod: string;\n apiType: string;\n }> = {};\n\n constructor(message: string, code: EditorPlatformApplicationErrorCode) {\n super(message, code, 'EP Application Error');\n }\n\n withUrl(url: string) {\n this.state = { ...this.state, url };\n return this;\n }\n\n withAppDefinitionId(appDefinitionId: string) {\n this.state = { ...this.state, appDefinitionId };\n return this;\n }\n\n withApiMethod(apiMethod: string) {\n this.state = { ...this.state, apiMethod };\n return this;\n }\n\n withApiType(apiType: string) {\n this.state = { ...this.state, apiType };\n return this;\n }\n}\n\nexport const createEditorPlatformApplicationError = createErrorBuilder<\n EditorPlatformApplicationErrorCode,\n EditorPlatformApplicationError\n>(EditorPlatformApplicationError);\n","import { PlatformAppEvent } from '@wix/public-editor-platform-events';\nimport {\n ApplicationContext,\n IApplicationContext,\n} from '@wix/editor-platform-contexts';\nimport { EventType } from '@wix/public-editor-platform-interfaces';\nimport { ApplicationLifecycle } from '../ApplicationLifecycle';\nimport {\n createEditorPlatformApplicationError,\n EditorPlatformApplicationErrorCode,\n} from '../errors';\nimport { ApplicationType } from '../types';\n\n/**\n * TODO: duplicated type to get rid of extra dependency\n */\nexport type IApplicationRegistry = (\n instance: EditorPlatformApplication,\n) => void;\n\ndeclare global {\n // eslint-disable-next-line no-var\n var __APPLICATION_REGISTRY_KEY: IApplicationRegistry;\n}\n\nexport interface IApplicationAPI<TPublicAPI, TPrivateAPI> {\n public?: TPublicAPI;\n private?: TPrivateAPI;\n}\n\nclass ChainAPIConfiguration<TPublicAPI, TPrivateAPI> {\n constructor(private api: IApplicationAPI<TPublicAPI, TPrivateAPI>) {}\n\n exposePublicAPI(api: TPublicAPI) {\n this.api.public = api;\n return this;\n }\n\n exposePrivateAPI(api: TPrivateAPI) {\n this.api.private = api;\n return this;\n }\n}\n\n/**\n * TODO: should accept generic type\n */\nexport abstract class EditorPlatformApplication<\n TContext extends IApplicationContext = IApplicationContext,\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> {\n public appDefinitionId: string;\n public state: 'READY' | 'REMOVED' = 'READY';\n\n public lifecycle: ApplicationLifecycle;\n\n #applicationAPI: IApplicationAPI<TPublicAPI, TPrivateAPI> = {};\n #chainAPIConfiguration = new ChainAPIConfiguration<TPublicAPI, TPrivateAPI>(\n this.#applicationAPI,\n );\n\n #manifest: any;\n #context: ApplicationContext<TContext>;\n\n protected constructor(\n public readonly type: ApplicationType,\n context: ApplicationContext<TContext>,\n ) {\n this.#context = context;\n const bindings = this.#context.getBindings();\n\n this.appDefinitionId = bindings.appDefinitionId;\n\n const events = this.#context.getEvents();\n this.lifecycle = new ApplicationLifecycle(events);\n\n /**\n * TODO: application should not listen such event, we should manage its state outside\n */\n events.addEventListener(EventType.removeAppCompleted, (e) => {\n if (e.appDefinitionId === this.appDefinitionId) {\n this.state = 'REMOVED';\n }\n });\n\n // This line is used to get the application registry from the function scope\n // that is creating dynamically by using the `new Function` constructor\n // e.g. new Function('__APPLICATION_REGISTRY_KEY', '// our app code')\n const applicationRegister = __APPLICATION_REGISTRY_KEY;\n applicationRegister(this);\n\n events.notify({\n type: PlatformAppEvent.ApplicationInit,\n payload: {},\n });\n }\n\n protected get context() {\n return this.#context;\n }\n public get events() {\n return this.#context.getEvents();\n }\n\n public setManifest(manifest: any) {\n this.#manifest = manifest;\n }\n\n public getManifest() {\n return this.#manifest;\n }\n\n public exposePublicAPI(api: TPublicAPI) {\n return this.#chainAPIConfiguration.exposePublicAPI(api);\n }\n\n public exposePrivateAPI(api: TPrivateAPI) {\n return this.#chainAPIConfiguration.exposePrivateAPI(api);\n }\n\n public getPublicAPI() {\n return this.#applicationAPI.public;\n }\n\n public getPrivateAPI() {\n return this.#applicationAPI.private;\n }\n\n public ready() {}\n\n buildApplicationError(message: string) {\n return createEditorPlatformApplicationError(\n EditorPlatformApplicationErrorCode.ApplicationRuntimeError,\n message,\n ).withAppDefinitionId(this.appDefinitionId);\n }\n}\n","export enum ApplicationType {\n EditorAddon = 'EDITOR_ADDON',\n Platform = 'PLATFORM',\n}\n","import {\n ApplicationContext,\n IEditorApplicationContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformApplication<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<\n IEditorApplicationContext,\n TPublicAPI,\n TPrivateAPI\n> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>() {\n return new WixEditorPlatformApplication<TPublicAPI, TPrivateAPI>(\n await ApplicationContext.getInstance(),\n );\n }\n\n constructor(context: ApplicationContext<IEditorApplicationContext>) {\n super(ApplicationType.Platform, context);\n }\n}\n","import {\n ApplicationContext,\n IAddonContext,\n} from '@wix/editor-platform-contexts';\n\nimport { EditorPlatformApplication } from './EditorPlatformApplication';\nimport { ApplicationType } from '../types';\n\nexport class WixEditorPlatformAddon<\n TPublicAPI = unknown,\n TPrivateAPI = unknown,\n> extends EditorPlatformApplication<IAddonContext, TPublicAPI, TPrivateAPI> {\n static async create<TPublicAPI = unknown, TPrivateAPI = unknown>(): Promise<\n WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>\n > {\n const context = await ApplicationContext.getInstance<IAddonContext>();\n\n return new WixEditorPlatformAddon<TPublicAPI, TPrivateAPI>(context);\n }\n\n constructor(context: ApplicationContext<IAddonContext>) {\n super(ApplicationType.EditorAddon, context);\n }\n}\n"],"names":["PlatformAppEvent","EditorPlatformApplicationErrorCode","BaseError","createErrorBuilder","EventType","ApplicationType","ApplicationContext"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/editor-application",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/cjs/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"typescript": "^5.7.3"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@wix/editor-platform-contexts": "1.
|
|
43
|
+
"@wix/editor-platform-contexts": "1.12.0",
|
|
44
44
|
"@wix/public-editor-platform-errors": "1.8.0",
|
|
45
45
|
"@wix/public-editor-platform-events": "1.306.0",
|
|
46
46
|
"@wix/public-editor-platform-interfaces": "1.17.0"
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
]
|
|
68
68
|
}
|
|
69
69
|
},
|
|
70
|
-
"falconPackageHash": "
|
|
70
|
+
"falconPackageHash": "57e274d444c9b3bbd90f90c442a69d0bc9e1e02cda597531fb671544"
|
|
71
71
|
}
|