@visactor/vrender 1.1.0 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. package/cjs/entries/browser.js +5 -3
  2. package/cjs/entries/browser.js.map +1 -1
  3. package/cjs/entries/miniapp.js +5 -3
  4. package/cjs/entries/miniapp.js.map +1 -1
  5. package/cjs/entries/node.js +5 -3
  6. package/cjs/entries/node.js.map +1 -1
  7. package/cjs/entries/runtime-contribution.d.ts +19 -0
  8. package/cjs/entries/runtime-contribution.js +78 -0
  9. package/cjs/entries/runtime-contribution.js.map +1 -0
  10. package/cjs/entries/shared-browser-lite.js +6 -3
  11. package/cjs/entries/shared-browser-lite.js.map +1 -1
  12. package/cjs/entries/shared-browser.js +5 -3
  13. package/cjs/entries/shared-browser.js.map +1 -1
  14. package/cjs/entries/shared-registry.d.ts +1 -0
  15. package/cjs/entries/shared-registry.js +12 -2
  16. package/cjs/entries/shared-registry.js.map +1 -1
  17. package/cjs/index.d.ts +1 -1
  18. package/cjs/index.js +1 -1
  19. package/cjs/index.js.map +1 -1
  20. package/dist/index.es.js +209 -84
  21. package/dist/index.js +209 -83
  22. package/dist/index.min.js +1 -1
  23. package/es/entries/browser.js +4 -2
  24. package/es/entries/browser.js.map +1 -1
  25. package/es/entries/miniapp.js +4 -2
  26. package/es/entries/miniapp.js.map +1 -1
  27. package/es/entries/node.js +4 -2
  28. package/es/entries/node.js.map +1 -1
  29. package/es/entries/runtime-contribution.d.ts +19 -0
  30. package/es/entries/runtime-contribution.js +49 -0
  31. package/es/entries/runtime-contribution.js.map +1 -0
  32. package/es/entries/shared-browser-lite.js +5 -2
  33. package/es/entries/shared-browser-lite.js.map +1 -1
  34. package/es/entries/shared-browser.js +5 -2
  35. package/es/entries/shared-browser.js.map +1 -1
  36. package/es/entries/shared-registry.d.ts +1 -0
  37. package/es/entries/shared-registry.js +10 -0
  38. package/es/entries/shared-registry.js.map +1 -1
  39. package/es/index.d.ts +1 -1
  40. package/es/index.js +1 -1
  41. package/es/index.js.map +1 -1
  42. package/package.json +12 -7
@@ -12,8 +12,10 @@ import { createBrowserApp } from "@visactor/vrender-core/entries/browser";
12
12
 
13
13
  import { bootstrapVRenderBrowserApp } from "./bootstrap";
14
14
 
15
+ import { installPendingRuntimeContributionModulesToApp } from "./runtime-contribution";
16
+
15
17
  export function createBrowserVRenderApp(options = {}) {
16
- const {envParams: envParams} = options, entryOptions = __rest(options, [ "envParams" ]);
17
- return bootstrapVRenderBrowserApp(createBrowserApp(entryOptions), envParams);
18
+ const {envParams: envParams} = options, entryOptions = __rest(options, [ "envParams" ]), app = bootstrapVRenderBrowserApp(createBrowserApp(entryOptions), envParams);
19
+ return installPendingRuntimeContributionModulesToApp(app), app;
18
20
  }
19
21
  //# sourceMappingURL=browser.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entries/browser.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAMzD,MAAM,UAAU,uBAAuB,CAAC,UAA0C,EAAE;IAClF,MAAM,EAAE,SAAS,KAAsB,OAAO,EAAxB,YAAY,UAAK,OAAO,EAAxC,aAA8B,CAAU,CAAC;IAE/C,OAAO,0BAA0B,CAAC,gBAAgB,CAAC,YAAmB,CAAoB,EAAE,SAAS,CAAC,CAAC;AACzG,CAAC","file":"browser.js","sourcesContent":["import type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { createBrowserApp } from '@visactor/vrender-core/entries/browser';\nimport { bootstrapVRenderBrowserApp } from './bootstrap';\n\nexport type TVRenderBrowserAppEntryOptions = IEntryOptions & {\n envParams?: IEnvParamsMap['browser'];\n};\n\nexport function createBrowserVRenderApp(options: TVRenderBrowserAppEntryOptions = {}): IApp {\n const { envParams, ...entryOptions } = options;\n\n return bootstrapVRenderBrowserApp(createBrowserApp(entryOptions as any) as unknown as IApp, envParams);\n}\n"]}
1
+ {"version":3,"sources":["../src/entries/browser.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,6CAA6C,EAAE,MAAM,wBAAwB,CAAC;AAMvF,MAAM,UAAU,uBAAuB,CAAC,UAA0C,EAAE;IAClF,MAAM,EAAE,SAAS,KAAsB,OAAO,EAAxB,YAAY,UAAK,OAAO,EAAxC,aAA8B,CAAU,CAAC;IAC/C,MAAM,GAAG,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,YAAmB,CAAoB,EAAE,SAAS,CAAC,CAAC;IAE5G,6CAA6C,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC","file":"browser.js","sourcesContent":["import type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { createBrowserApp } from '@visactor/vrender-core/entries/browser';\nimport { bootstrapVRenderBrowserApp } from './bootstrap';\nimport { installPendingRuntimeContributionModulesToApp } from './runtime-contribution';\n\nexport type TVRenderBrowserAppEntryOptions = IEntryOptions & {\n envParams?: IEnvParamsMap['browser'];\n};\n\nexport function createBrowserVRenderApp(options: TVRenderBrowserAppEntryOptions = {}): IApp {\n const { envParams, ...entryOptions } = options;\n const app = bootstrapVRenderBrowserApp(createBrowserApp(entryOptions as any) as unknown as IApp, envParams);\n\n installPendingRuntimeContributionModulesToApp(app);\n return app;\n}\n"]}
@@ -12,11 +12,13 @@ import * as VRenderCore from "@visactor/vrender-core";
12
12
 
13
13
  import { bootstrapVRenderMiniApp } from "./bootstrap";
14
14
 
15
+ import { installPendingRuntimeContributionModulesToApp } from "./runtime-contribution";
16
+
15
17
  const {createMiniappApp: createMiniappApp} = VRenderCore;
16
18
 
17
19
  function createMiniEnvVRenderApp(env, options = {}) {
18
- const {envParams: envParams} = options, entryOptions = __rest(options, [ "envParams" ]);
19
- return bootstrapVRenderMiniApp(createMiniappApp(entryOptions), env, envParams);
20
+ const {envParams: envParams} = options, entryOptions = __rest(options, [ "envParams" ]), app = bootstrapVRenderMiniApp(createMiniappApp(entryOptions), env, envParams);
21
+ return installPendingRuntimeContributionModulesToApp(app), app;
20
22
  }
21
23
 
22
24
  export function createTaroVRenderApp(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entries/miniapp.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAQtD,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAE5B,CAAC;AAEF,SAAS,uBAAuB,CAC9B,GAAS,EACT,UAA6C,EAAE;IAE/C,MAAM,EAAE,SAAS,KAAsB,OAAO,EAAxB,YAAY,UAAK,OAAO,EAAxC,aAA8B,CAAU,CAAC;IAE/C,OAAO,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;AACjF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAA+C,EAAE;IACpF,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAiD,EAAE;IACxF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAA6C,EAAE;IAChF,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAA6C,EAAE;IAChF,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAA+C,EAAE;IACpF,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAkD,EAAE;IAC1F,OAAO,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC","file":"miniapp.js","sourcesContent":["import * as VRenderCore from '@visactor/vrender-core';\nimport type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { bootstrapVRenderMiniApp } from './bootstrap';\n\ntype TAppScopedMiniEnv = 'taro' | 'feishu' | 'tt' | 'wx' | 'lynx' | 'harmony';\n\nexport type TVRenderMiniAppEntryOptions<TEnv extends TAppScopedMiniEnv> = IEntryOptions & {\n envParams?: IEnvParamsMap[TEnv];\n};\n\nconst { createMiniappApp } = VRenderCore as typeof VRenderCore & {\n createMiniappApp: (options?: IEntryOptions) => IApp;\n};\n\nfunction createMiniEnvVRenderApp<TEnv extends TAppScopedMiniEnv>(\n env: TEnv,\n options: TVRenderMiniAppEntryOptions<TEnv> = {}\n): IApp {\n const { envParams, ...entryOptions } = options;\n\n return bootstrapVRenderMiniApp(createMiniappApp(entryOptions), env, envParams);\n}\n\nexport function createTaroVRenderApp(options: TVRenderMiniAppEntryOptions<'taro'> = {}): IApp {\n return createMiniEnvVRenderApp('taro', options);\n}\n\nexport function createFeishuVRenderApp(options: TVRenderMiniAppEntryOptions<'feishu'> = {}): IApp {\n return createMiniEnvVRenderApp('feishu', options);\n}\n\nexport function createTTVRenderApp(options: TVRenderMiniAppEntryOptions<'tt'> = {}): IApp {\n return createMiniEnvVRenderApp('tt', options);\n}\n\nexport function createWxVRenderApp(options: TVRenderMiniAppEntryOptions<'wx'> = {}): IApp {\n return createMiniEnvVRenderApp('wx', options);\n}\n\nexport function createLynxVRenderApp(options: TVRenderMiniAppEntryOptions<'lynx'> = {}): IApp {\n return createMiniEnvVRenderApp('lynx', options);\n}\n\nexport function createHarmonyVRenderApp(options: TVRenderMiniAppEntryOptions<'harmony'> = {}): IApp {\n return createMiniEnvVRenderApp('harmony', options);\n}\n"]}
1
+ {"version":3,"sources":["../src/entries/miniapp.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,6CAA6C,EAAE,MAAM,wBAAwB,CAAC;AAQvF,MAAM,EAAE,gBAAgB,EAAE,GAAG,WAE5B,CAAC;AAEF,SAAS,uBAAuB,CAC9B,GAAS,EACT,UAA6C,EAAE;IAE/C,MAAM,EAAE,SAAS,KAAsB,OAAO,EAAxB,YAAY,UAAK,OAAO,EAAxC,aAA8B,CAAU,CAAC;IAC/C,MAAM,GAAG,GAAG,uBAAuB,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC;IAEpF,6CAA6C,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAA+C,EAAE;IACpF,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,UAAiD,EAAE;IACxF,OAAO,uBAAuB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAA6C,EAAE;IAChF,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,UAA6C,EAAE;IAChF,OAAO,uBAAuB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,UAA+C,EAAE;IACpF,OAAO,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAAkD,EAAE;IAC1F,OAAO,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;AACrD,CAAC","file":"miniapp.js","sourcesContent":["import * as VRenderCore from '@visactor/vrender-core';\nimport type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { bootstrapVRenderMiniApp } from './bootstrap';\nimport { installPendingRuntimeContributionModulesToApp } from './runtime-contribution';\n\ntype TAppScopedMiniEnv = 'taro' | 'feishu' | 'tt' | 'wx' | 'lynx' | 'harmony';\n\nexport type TVRenderMiniAppEntryOptions<TEnv extends TAppScopedMiniEnv> = IEntryOptions & {\n envParams?: IEnvParamsMap[TEnv];\n};\n\nconst { createMiniappApp } = VRenderCore as typeof VRenderCore & {\n createMiniappApp: (options?: IEntryOptions) => IApp;\n};\n\nfunction createMiniEnvVRenderApp<TEnv extends TAppScopedMiniEnv>(\n env: TEnv,\n options: TVRenderMiniAppEntryOptions<TEnv> = {}\n): IApp {\n const { envParams, ...entryOptions } = options;\n const app = bootstrapVRenderMiniApp(createMiniappApp(entryOptions), env, envParams);\n\n installPendingRuntimeContributionModulesToApp(app);\n return app;\n}\n\nexport function createTaroVRenderApp(options: TVRenderMiniAppEntryOptions<'taro'> = {}): IApp {\n return createMiniEnvVRenderApp('taro', options);\n}\n\nexport function createFeishuVRenderApp(options: TVRenderMiniAppEntryOptions<'feishu'> = {}): IApp {\n return createMiniEnvVRenderApp('feishu', options);\n}\n\nexport function createTTVRenderApp(options: TVRenderMiniAppEntryOptions<'tt'> = {}): IApp {\n return createMiniEnvVRenderApp('tt', options);\n}\n\nexport function createWxVRenderApp(options: TVRenderMiniAppEntryOptions<'wx'> = {}): IApp {\n return createMiniEnvVRenderApp('wx', options);\n}\n\nexport function createLynxVRenderApp(options: TVRenderMiniAppEntryOptions<'lynx'> = {}): IApp {\n return createMiniEnvVRenderApp('lynx', options);\n}\n\nexport function createHarmonyVRenderApp(options: TVRenderMiniAppEntryOptions<'harmony'> = {}): IApp {\n return createMiniEnvVRenderApp('harmony', options);\n}\n"]}
@@ -12,10 +12,12 @@ import * as VRenderCore from "@visactor/vrender-core";
12
12
 
13
13
  import { bootstrapVRenderNodeApp } from "./bootstrap";
14
14
 
15
+ import { installPendingRuntimeContributionModulesToApp } from "./runtime-contribution";
16
+
15
17
  const {createNodeApp: createNodeApp} = VRenderCore;
16
18
 
17
19
  export function createNodeVRenderApp(options = {}) {
18
- const {envParams: envParams} = options, entryOptions = __rest(options, [ "envParams" ]);
19
- return bootstrapVRenderNodeApp(createNodeApp(entryOptions), envParams);
20
+ const {envParams: envParams} = options, entryOptions = __rest(options, [ "envParams" ]), app = bootstrapVRenderNodeApp(createNodeApp(entryOptions), envParams);
21
+ return installPendingRuntimeContributionModulesToApp(app), app;
20
22
  }
21
23
  //# sourceMappingURL=node.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entries/node.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAUtD,MAAM,EAAE,aAAa,EAAE,GAAG,WAEzB,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,EAAE,SAAS,KAAsB,OAAO,EAAxB,YAAY,UAAK,OAAO,EAAxC,aAA8B,CAAU,CAAC;IAE/C,OAAO,uBAAuB,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;AACzE,CAAC","file":"node.js","sourcesContent":["import * as VRenderCore from '@visactor/vrender-core';\nimport type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { bootstrapVRenderNodeApp } from './bootstrap';\n\nexport type TVRenderNodeAppEntryOptions = IEntryOptions & {\n /**\n * Node runtime parameters. In normal Node rendering this should be the\n * node-canvas package object, matching `vglobal.setEnv('node', CanvasPkg)`.\n */\n envParams?: IEnvParamsMap['node'];\n};\n\nconst { createNodeApp } = VRenderCore as typeof VRenderCore & {\n createNodeApp: (options?: IEntryOptions) => IApp;\n};\n\nexport function createNodeVRenderApp(options: TVRenderNodeAppEntryOptions = {}): IApp {\n const { envParams, ...entryOptions } = options;\n\n return bootstrapVRenderNodeApp(createNodeApp(entryOptions), envParams);\n}\n"]}
1
+ {"version":3,"sources":["../src/entries/node.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,6CAA6C,EAAE,MAAM,wBAAwB,CAAC;AAUvF,MAAM,EAAE,aAAa,EAAE,GAAG,WAEzB,CAAC;AAEF,MAAM,UAAU,oBAAoB,CAAC,UAAuC,EAAE;IAC5E,MAAM,EAAE,SAAS,KAAsB,OAAO,EAAxB,YAAY,UAAK,OAAO,EAAxC,aAA8B,CAAU,CAAC;IAC/C,MAAM,GAAG,GAAG,uBAAuB,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC,CAAC;IAE5E,6CAA6C,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC","file":"node.js","sourcesContent":["import * as VRenderCore from '@visactor/vrender-core';\nimport type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { bootstrapVRenderNodeApp } from './bootstrap';\nimport { installPendingRuntimeContributionModulesToApp } from './runtime-contribution';\n\nexport type TVRenderNodeAppEntryOptions = IEntryOptions & {\n /**\n * Node runtime parameters. In normal Node rendering this should be the\n * node-canvas package object, matching `vglobal.setEnv('node', CanvasPkg)`.\n */\n envParams?: IEnvParamsMap['node'];\n};\n\nconst { createNodeApp } = VRenderCore as typeof VRenderCore & {\n createNodeApp: (options?: IEntryOptions) => IApp;\n};\n\nexport function createNodeVRenderApp(options: TVRenderNodeAppEntryOptions = {}): IApp {\n const { envParams, ...entryOptions } = options;\n const app = bootstrapVRenderNodeApp(createNodeApp(entryOptions), envParams);\n\n installPendingRuntimeContributionModulesToApp(app);\n return app;\n}\n"]}
@@ -0,0 +1,19 @@
1
+ import type { IApp, IGraphicPicker, ILegacyBindingContext, ServiceIdentifier } from '@visactor/vrender-core';
2
+ export type TRuntimeContributionModuleRegistry = (bind: ILegacyBindingContext['bind'], unbind: (serviceIdentifier: ServiceIdentifier) => void, isBound: ILegacyBindingContext['isBound'], rebind: ILegacyBindingContext['rebind']) => void;
3
+ export type TRuntimeContributionModule = ((context: ILegacyBindingContext) => void) | {
4
+ registry: TRuntimeContributionModuleRegistry;
5
+ };
6
+ export type TRuntimeContributionInstallTarget = 'graphic-renderer' | 'draw-contribution' | {
7
+ picker: ServiceIdentifier<IGraphicPicker>;
8
+ };
9
+ export interface IRuntimeContributionModuleInstallOptions {
10
+ app?: IApp;
11
+ legacy?: boolean;
12
+ targets?: TRuntimeContributionInstallTarget[];
13
+ }
14
+ export interface ISharedRuntimeContributionModuleInstallOptions extends Omit<IRuntimeContributionModuleInstallOptions, 'app'> {
15
+ app?: IApp;
16
+ installExistingSharedApps?: boolean;
17
+ }
18
+ export declare function installPendingRuntimeContributionModulesToApp(app: IApp): void;
19
+ export declare function installRuntimeContributionModule(module: TRuntimeContributionModule, { app, installExistingSharedApps, ...runtimeOptions }?: ISharedRuntimeContributionModuleInstallOptions): void;
@@ -0,0 +1,49 @@
1
+ var __rest = this && this.__rest || function(s, e) {
2
+ var t = {};
3
+ for (var p in s) Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0 && (t[p] = s[p]);
4
+ if (null != s && "function" == typeof Object.getOwnPropertySymbols) {
5
+ var i = 0;
6
+ for (p = Object.getOwnPropertySymbols(s); i < p.length; i++) e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]) && (t[p[i]] = s[p[i]]);
7
+ }
8
+ return t;
9
+ };
10
+
11
+ import * as runtimeInstaller from "@visactor/vrender-core/entries/runtime-installer";
12
+
13
+ import { getAllSharedApps } from "./shared-registry";
14
+
15
+ const installCoreRuntimeContributionModule = runtimeInstaller.installRuntimeContributionModule, pendingRuntimeContributionModules = [], pendingRuntimeContributionModuleMap = new WeakMap;
16
+
17
+ function getRuntimeContributionModuleIdentity(module) {
18
+ return module;
19
+ }
20
+
21
+ function addPendingRuntimeContributionModule(module, options) {
22
+ const identity = getRuntimeContributionModuleIdentity(module), existing = pendingRuntimeContributionModuleMap.get(identity);
23
+ if (existing) return void (existing.options = options);
24
+ const entry = {
25
+ module: module,
26
+ options: options
27
+ };
28
+ pendingRuntimeContributionModuleMap.set(identity, entry), pendingRuntimeContributionModules.push(entry);
29
+ }
30
+
31
+ export function installPendingRuntimeContributionModulesToApp(app) {
32
+ pendingRuntimeContributionModules.forEach((({module: module, options: options}) => {
33
+ installCoreRuntimeContributionModule(module, Object.assign(Object.assign({}, options), {
34
+ app: app
35
+ }));
36
+ }));
37
+ }
38
+
39
+ export function installRuntimeContributionModule(module, _a = {}) {
40
+ var {app: app, installExistingSharedApps: installExistingSharedApps = !0} = _a, runtimeOptions = __rest(_a, [ "app", "installExistingSharedApps" ]);
41
+ app ? installCoreRuntimeContributionModule(module, Object.assign(Object.assign({}, runtimeOptions), {
42
+ app: app
43
+ })) : (addPendingRuntimeContributionModule(module, runtimeOptions), installExistingSharedApps && getAllSharedApps().forEach((targetApp => {
44
+ installCoreRuntimeContributionModule(module, Object.assign(Object.assign({}, runtimeOptions), {
45
+ app: targetApp
46
+ }));
47
+ })));
48
+ }
49
+ //# sourceMappingURL=runtime-contribution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/entries/runtime-contribution.ts"],"names":[],"mappings":";;;;;;;;;;;AACA,OAAO,KAAK,gBAAgB,MAAM,kDAAkD,CAAC;AACrF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4CrD,MAAM,oCAAoC,GACxC,gBAGD,CAAC,gCAAgC,CAAC;AACnC,MAAM,iCAAiC,GAAwC,EAAE,CAAC;AAClF,MAAM,mCAAmC,GAAG,IAAI,OAAO,EAA6C,CAAC;AAErG,SAAS,oCAAoC,CAAC,MAAkC;IAC9E,OAAO,MAAgB,CAAC;AAC1B,CAAC;AAED,SAAS,mCAAmC,CAC1C,MAAkC,EAClC,OAA8D;IAE9D,MAAM,QAAQ,GAAG,oCAAoC,CAAC,MAAM,CAAC,CAAC;IAC9D,MAAM,QAAQ,GAAG,mCAAmC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEnE,IAAI,QAAQ,EAAE;QACZ,QAAQ,CAAC,OAAO,GAAG,OAAO,CAAC;QAC3B,OAAO;KACR;IAED,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAClC,mCAAmC,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACzD,iCAAiC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,6CAA6C,CAAC,GAAS;IACrE,iCAAiC,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE;QAChE,oCAAoC,CAAC,MAAM,kCACtC,OAAO,KACV,GAAG,IACH,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gCAAgC,CAC9C,MAAkC,EAClC,KAA+G,EAAE;QAAjH,EAAE,GAAG,EAAE,yBAAyB,GAAG,IAAI,OAA0E,EAArE,cAAc,cAA1D,oCAA4D,CAAF;IAE1D,IAAI,GAAG,EAAE;QACP,oCAAoC,CAAC,MAAM,kCACtC,cAAc,KACjB,GAAG,IACH,CAAC;QACH,OAAO;KACR;IAED,mCAAmC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAE5D,IAAI,yBAAyB,EAAE;QAC7B,gBAAgB,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE;YACrC,oCAAoC,CAAC,MAAM,kCACtC,cAAc,KACjB,GAAG,EAAE,SAAS,IACd,CAAC;QACL,CAAC,CAAC,CAAC;KACJ;AACH,CAAC","file":"runtime-contribution.js","sourcesContent":["import type { IApp, IGraphicPicker, ILegacyBindingContext, ServiceIdentifier } from '@visactor/vrender-core';\nimport * as runtimeInstaller from '@visactor/vrender-core/entries/runtime-installer';\nimport { getAllSharedApps } from './shared-registry';\n\nexport type TRuntimeContributionModuleRegistry = (\n bind: ILegacyBindingContext['bind'],\n unbind: (serviceIdentifier: ServiceIdentifier) => void,\n isBound: ILegacyBindingContext['isBound'],\n rebind: ILegacyBindingContext['rebind']\n) => void;\n\nexport type TRuntimeContributionModule =\n | ((context: ILegacyBindingContext) => void)\n | {\n registry: TRuntimeContributionModuleRegistry;\n };\n\nexport type TRuntimeContributionInstallTarget =\n | 'graphic-renderer'\n | 'draw-contribution'\n | {\n picker: ServiceIdentifier<IGraphicPicker>;\n };\n\nexport interface IRuntimeContributionModuleInstallOptions {\n app?: IApp;\n legacy?: boolean;\n targets?: TRuntimeContributionInstallTarget[];\n}\n\nexport interface ISharedRuntimeContributionModuleInstallOptions\n extends Omit<IRuntimeContributionModuleInstallOptions, 'app'> {\n app?: IApp;\n installExistingSharedApps?: boolean;\n}\n\ntype TCoreRuntimeContributionModuleInstaller = (\n module: TRuntimeContributionModule,\n options?: IRuntimeContributionModuleInstallOptions\n) => void;\n\ntype TPendingRuntimeContributionModule = {\n module: TRuntimeContributionModule;\n options: Omit<IRuntimeContributionModuleInstallOptions, 'app'>;\n};\n\nconst installCoreRuntimeContributionModule = (\n runtimeInstaller as unknown as {\n installRuntimeContributionModule: TCoreRuntimeContributionModuleInstaller;\n }\n).installRuntimeContributionModule;\nconst pendingRuntimeContributionModules: TPendingRuntimeContributionModule[] = [];\nconst pendingRuntimeContributionModuleMap = new WeakMap<object, TPendingRuntimeContributionModule>();\n\nfunction getRuntimeContributionModuleIdentity(module: TRuntimeContributionModule): object {\n return module as object;\n}\n\nfunction addPendingRuntimeContributionModule(\n module: TRuntimeContributionModule,\n options: Omit<IRuntimeContributionModuleInstallOptions, 'app'>\n): void {\n const identity = getRuntimeContributionModuleIdentity(module);\n const existing = pendingRuntimeContributionModuleMap.get(identity);\n\n if (existing) {\n existing.options = options;\n return;\n }\n\n const entry = { module, options };\n pendingRuntimeContributionModuleMap.set(identity, entry);\n pendingRuntimeContributionModules.push(entry);\n}\n\nexport function installPendingRuntimeContributionModulesToApp(app: IApp): void {\n pendingRuntimeContributionModules.forEach(({ module, options }) => {\n installCoreRuntimeContributionModule(module, {\n ...options,\n app\n });\n });\n}\n\nexport function installRuntimeContributionModule(\n module: TRuntimeContributionModule,\n { app, installExistingSharedApps = true, ...runtimeOptions }: ISharedRuntimeContributionModuleInstallOptions = {}\n): void {\n if (app) {\n installCoreRuntimeContributionModule(module, {\n ...runtimeOptions,\n app\n });\n return;\n }\n\n addPendingRuntimeContributionModule(module, runtimeOptions);\n\n if (installExistingSharedApps) {\n getAllSharedApps().forEach(targetApp => {\n installCoreRuntimeContributionModule(module, {\n ...runtimeOptions,\n app: targetApp\n });\n });\n }\n}\n"]}
@@ -2,14 +2,17 @@ import { createBrowserApp } from "@visactor/vrender-core/entries/browser";
2
2
 
3
3
  import { bootstrapVRenderSharedBrowserLiteApp } from "./bootstrap-browser-lite";
4
4
 
5
+ import { installPendingRuntimeContributionModulesToApp } from "./runtime-contribution";
6
+
5
7
  import { acquireSharedApp, getSharedApp, releaseSharedApp } from "./shared-registry";
6
8
 
7
9
  const SHARED_BROWSER_LITE_REGISTRY_ENV = "browser-lite-shared";
8
10
 
9
11
  function createSharedBrowserLiteApp(options) {
10
12
  const {envParams: envParams} = options, entryOptions = Object.assign({}, options);
11
- return delete entryOptions.env, delete entryOptions.envParams, delete entryOptions.key,
12
- bootstrapVRenderSharedBrowserLiteApp(createBrowserApp(entryOptions), envParams);
13
+ delete entryOptions.env, delete entryOptions.envParams, delete entryOptions.key;
14
+ const app = bootstrapVRenderSharedBrowserLiteApp(createBrowserApp(entryOptions), envParams);
15
+ return installPendingRuntimeContributionModulesToApp(app), app;
13
16
  }
14
17
 
15
18
  export function acquireSharedBrowserLiteVRenderApp(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entries/shared-browser-lite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,gCAAgC,GAAG,qBAAqB,CAAC;AAc/D,SAAS,0BAA0B,CAAC,OAA4C;IAC9E,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,YAAY,qBAAQ,OAAO,CAAE,CAAC;IACpC,OAAO,YAAY,CAAC,GAAG,CAAC;IACxB,OAAO,YAAY,CAAC,SAAS,CAAC;IAC9B,OAAO,YAAY,CAAC,GAAG,CAAC;IAExB,OAAO,oCAAoC,CAAC,gBAAgB,CAAC,YAAmB,CAAoB,EAAE,SAAS,CAAC,CAAC;AACnH,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,UAA+C,EAAE;IAEjD,OAAO,gBAAgB,CAAC,gCAAgC,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAA0B;IACvE,OAAO,YAAY,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,GAA0B;IAC3E,gBAAgB,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,EACL,kCAAkC,IAAI,uBAAuB,EAC7D,8BAA8B,IAAI,mBAAmB,EACrD,kCAAkC,IAAI,uBAAuB,EAC9D,CAAC","file":"shared-browser-lite.js","sourcesContent":["import type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { createBrowserApp } from '@visactor/vrender-core/entries/browser';\nimport { bootstrapVRenderSharedBrowserLiteApp } from './bootstrap-browser-lite';\nimport {\n acquireSharedApp,\n getSharedApp,\n releaseSharedApp,\n type TVRenderSharedAppHandle,\n type TVRenderSharedAppKey\n} from './shared-registry';\n\nconst SHARED_BROWSER_LITE_REGISTRY_ENV = 'browser-lite-shared';\n\nexport type TVRenderSharedBrowserLiteAppOptions = IEntryOptions & {\n env?: 'browser';\n envParams?: IEnvParamsMap['browser'];\n /**\n * Shared identity inside the current JS runtime. Use a stable app/page/container key\n * when multiple products, such as VChart and VTable, should share one VRender app.\n */\n key?: TVRenderSharedAppKey;\n};\n\nexport type TVRenderSharedBrowserLiteAppHandle = TVRenderSharedAppHandle<'browser'>;\n\nfunction createSharedBrowserLiteApp(options: TVRenderSharedBrowserLiteAppOptions): IApp {\n const { envParams } = options;\n const entryOptions = { ...options };\n delete entryOptions.env;\n delete entryOptions.envParams;\n delete entryOptions.key;\n\n return bootstrapVRenderSharedBrowserLiteApp(createBrowserApp(entryOptions as any) as unknown as IApp, envParams);\n}\n\nexport function acquireSharedBrowserLiteVRenderApp(\n options: TVRenderSharedBrowserLiteAppOptions = {}\n): TVRenderSharedBrowserLiteAppHandle {\n return acquireSharedApp(SHARED_BROWSER_LITE_REGISTRY_ENV, options, createSharedBrowserLiteApp, 'browser');\n}\n\nexport function getSharedBrowserLiteVRenderApp(key?: TVRenderSharedAppKey): IApp | null {\n return getSharedApp(SHARED_BROWSER_LITE_REGISTRY_ENV, key);\n}\n\nexport function releaseSharedBrowserLiteVRenderApp(key?: TVRenderSharedAppKey): void {\n releaseSharedApp(SHARED_BROWSER_LITE_REGISTRY_ENV, key);\n}\n\nexport {\n acquireSharedBrowserLiteVRenderApp as acquireSharedVRenderApp,\n getSharedBrowserLiteVRenderApp as getSharedVRenderApp,\n releaseSharedBrowserLiteVRenderApp as releaseSharedVRenderApp\n};\n"]}
1
+ {"version":3,"sources":["../src/entries/shared-browser-lite.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,oCAAoC,EAAE,MAAM,0BAA0B,CAAC;AAChF,OAAO,EAAE,6CAA6C,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,gCAAgC,GAAG,qBAAqB,CAAC;AAc/D,SAAS,0BAA0B,CAAC,OAA4C;IAC9E,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,YAAY,qBAAQ,OAAO,CAAE,CAAC;IACpC,OAAO,YAAY,CAAC,GAAG,CAAC;IACxB,OAAO,YAAY,CAAC,SAAS,CAAC;IAC9B,OAAO,YAAY,CAAC,GAAG,CAAC;IACxB,MAAM,GAAG,GAAG,oCAAoC,CAAC,gBAAgB,CAAC,YAAmB,CAAoB,EAAE,SAAS,CAAC,CAAC;IAEtH,6CAA6C,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,kCAAkC,CAChD,UAA+C,EAAE;IAEjD,OAAO,gBAAgB,CAAC,gCAAgC,EAAE,OAAO,EAAE,0BAA0B,EAAE,SAAS,CAAC,CAAC;AAC5G,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAA0B;IACvE,OAAO,YAAY,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC;AAED,MAAM,UAAU,kCAAkC,CAAC,GAA0B;IAC3E,gBAAgB,CAAC,gCAAgC,EAAE,GAAG,CAAC,CAAC;AAC1D,CAAC;AAED,OAAO,EACL,kCAAkC,IAAI,uBAAuB,EAC7D,8BAA8B,IAAI,mBAAmB,EACrD,kCAAkC,IAAI,uBAAuB,EAC9D,CAAC","file":"shared-browser-lite.js","sourcesContent":["import type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { createBrowserApp } from '@visactor/vrender-core/entries/browser';\nimport { bootstrapVRenderSharedBrowserLiteApp } from './bootstrap-browser-lite';\nimport { installPendingRuntimeContributionModulesToApp } from './runtime-contribution';\nimport {\n acquireSharedApp,\n getSharedApp,\n releaseSharedApp,\n type TVRenderSharedAppHandle,\n type TVRenderSharedAppKey\n} from './shared-registry';\n\nconst SHARED_BROWSER_LITE_REGISTRY_ENV = 'browser-lite-shared';\n\nexport type TVRenderSharedBrowserLiteAppOptions = IEntryOptions & {\n env?: 'browser';\n envParams?: IEnvParamsMap['browser'];\n /**\n * Shared identity inside the current JS runtime. Use a stable app/page/container key\n * when multiple products, such as VChart and VTable, should share one VRender app.\n */\n key?: TVRenderSharedAppKey;\n};\n\nexport type TVRenderSharedBrowserLiteAppHandle = TVRenderSharedAppHandle<'browser'>;\n\nfunction createSharedBrowserLiteApp(options: TVRenderSharedBrowserLiteAppOptions): IApp {\n const { envParams } = options;\n const entryOptions = { ...options };\n delete entryOptions.env;\n delete entryOptions.envParams;\n delete entryOptions.key;\n const app = bootstrapVRenderSharedBrowserLiteApp(createBrowserApp(entryOptions as any) as unknown as IApp, envParams);\n\n installPendingRuntimeContributionModulesToApp(app);\n return app;\n}\n\nexport function acquireSharedBrowserLiteVRenderApp(\n options: TVRenderSharedBrowserLiteAppOptions = {}\n): TVRenderSharedBrowserLiteAppHandle {\n return acquireSharedApp(SHARED_BROWSER_LITE_REGISTRY_ENV, options, createSharedBrowserLiteApp, 'browser');\n}\n\nexport function getSharedBrowserLiteVRenderApp(key?: TVRenderSharedAppKey): IApp | null {\n return getSharedApp(SHARED_BROWSER_LITE_REGISTRY_ENV, key);\n}\n\nexport function releaseSharedBrowserLiteVRenderApp(key?: TVRenderSharedAppKey): void {\n releaseSharedApp(SHARED_BROWSER_LITE_REGISTRY_ENV, key);\n}\n\nexport {\n acquireSharedBrowserLiteVRenderApp as acquireSharedVRenderApp,\n getSharedBrowserLiteVRenderApp as getSharedVRenderApp,\n releaseSharedBrowserLiteVRenderApp as releaseSharedVRenderApp\n};\n"]}
@@ -2,14 +2,17 @@ import { createBrowserApp } from "@visactor/vrender-core/entries/browser";
2
2
 
3
3
  import { bootstrapVRenderSharedBrowserApp } from "./bootstrap-browser";
4
4
 
5
+ import { installPendingRuntimeContributionModulesToApp } from "./runtime-contribution";
6
+
5
7
  import { acquireSharedApp, getSharedApp, releaseSharedApp } from "./shared-registry";
6
8
 
7
9
  const SHARED_BROWSER_REGISTRY_ENV = "browser-shared";
8
10
 
9
11
  function createSharedBrowserApp(options) {
10
12
  const {envParams: envParams} = options, entryOptions = Object.assign({}, options);
11
- return delete entryOptions.env, delete entryOptions.envParams, delete entryOptions.key,
12
- bootstrapVRenderSharedBrowserApp(createBrowserApp(entryOptions), envParams);
13
+ delete entryOptions.env, delete entryOptions.envParams, delete entryOptions.key;
14
+ const app = bootstrapVRenderSharedBrowserApp(createBrowserApp(entryOptions), envParams);
15
+ return installPendingRuntimeContributionModulesToApp(app), app;
13
16
  }
14
17
 
15
18
  export function acquireSharedBrowserVRenderApp(options = {}) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entries/shared-browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AAcrD,SAAS,sBAAsB,CAAC,OAAwC;IACtE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,YAAY,qBAAQ,OAAO,CAAE,CAAC;IACpC,OAAO,YAAY,CAAC,GAAG,CAAC;IACxB,OAAO,YAAY,CAAC,SAAS,CAAC;IAC9B,OAAO,YAAY,CAAC,GAAG,CAAC;IAExB,OAAO,gCAAgC,CAAC,gBAAgB,CAAC,YAAmB,CAAoB,EAAE,SAAS,CAAC,CAAC;AAC/G,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,UAA2C,EAAE;IAE7C,OAAO,gBAAgB,CAAC,2BAA2B,EAAE,OAAO,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,GAA0B;IACnE,OAAO,YAAY,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAA0B;IACvE,gBAAgB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,OAAO,EACL,8BAA8B,IAAI,uBAAuB,EACzD,0BAA0B,IAAI,mBAAmB,EACjD,8BAA8B,IAAI,uBAAuB,EAC1D,CAAC","file":"shared-browser.js","sourcesContent":["import type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { createBrowserApp } from '@visactor/vrender-core/entries/browser';\nimport { bootstrapVRenderSharedBrowserApp } from './bootstrap-browser';\nimport {\n acquireSharedApp,\n getSharedApp,\n releaseSharedApp,\n type TVRenderSharedAppHandle,\n type TVRenderSharedAppKey\n} from './shared-registry';\n\nconst SHARED_BROWSER_REGISTRY_ENV = 'browser-shared';\n\nexport type TVRenderSharedBrowserAppOptions = IEntryOptions & {\n env?: 'browser';\n envParams?: IEnvParamsMap['browser'];\n /**\n * Shared identity inside the current JS runtime. Use a stable app/page/container key\n * when multiple products, such as VChart and VTable, should share one VRender app.\n */\n key?: TVRenderSharedAppKey;\n};\n\nexport type TVRenderSharedBrowserAppHandle = TVRenderSharedAppHandle<'browser'>;\n\nfunction createSharedBrowserApp(options: TVRenderSharedBrowserAppOptions): IApp {\n const { envParams } = options;\n const entryOptions = { ...options };\n delete entryOptions.env;\n delete entryOptions.envParams;\n delete entryOptions.key;\n\n return bootstrapVRenderSharedBrowserApp(createBrowserApp(entryOptions as any) as unknown as IApp, envParams);\n}\n\nexport function acquireSharedBrowserVRenderApp(\n options: TVRenderSharedBrowserAppOptions = {}\n): TVRenderSharedBrowserAppHandle {\n return acquireSharedApp(SHARED_BROWSER_REGISTRY_ENV, options, createSharedBrowserApp, 'browser');\n}\n\nexport function getSharedBrowserVRenderApp(key?: TVRenderSharedAppKey): IApp | null {\n return getSharedApp(SHARED_BROWSER_REGISTRY_ENV, key);\n}\n\nexport function releaseSharedBrowserVRenderApp(key?: TVRenderSharedAppKey): void {\n releaseSharedApp(SHARED_BROWSER_REGISTRY_ENV, key);\n}\n\nexport {\n acquireSharedBrowserVRenderApp as acquireSharedVRenderApp,\n getSharedBrowserVRenderApp as getSharedVRenderApp,\n releaseSharedBrowserVRenderApp as releaseSharedVRenderApp\n};\n"]}
1
+ {"version":3,"sources":["../src/entries/shared-browser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,gCAAgC,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,EAAE,6CAA6C,EAAE,MAAM,wBAAwB,CAAC;AACvF,OAAO,EACL,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAGjB,MAAM,mBAAmB,CAAC;AAE3B,MAAM,2BAA2B,GAAG,gBAAgB,CAAC;AAcrD,SAAS,sBAAsB,CAAC,OAAwC;IACtE,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC;IAC9B,MAAM,YAAY,qBAAQ,OAAO,CAAE,CAAC;IACpC,OAAO,YAAY,CAAC,GAAG,CAAC;IACxB,OAAO,YAAY,CAAC,SAAS,CAAC;IAC9B,OAAO,YAAY,CAAC,GAAG,CAAC;IACxB,MAAM,GAAG,GAAG,gCAAgC,CAAC,gBAAgB,CAAC,YAAmB,CAAoB,EAAE,SAAS,CAAC,CAAC;IAElH,6CAA6C,CAAC,GAAG,CAAC,CAAC;IACnD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,UAA2C,EAAE;IAE7C,OAAO,gBAAgB,CAAC,2BAA2B,EAAE,OAAO,EAAE,sBAAsB,EAAE,SAAS,CAAC,CAAC;AACnG,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,GAA0B;IACnE,OAAO,YAAY,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,8BAA8B,CAAC,GAA0B;IACvE,gBAAgB,CAAC,2BAA2B,EAAE,GAAG,CAAC,CAAC;AACrD,CAAC;AAED,OAAO,EACL,8BAA8B,IAAI,uBAAuB,EACzD,0BAA0B,IAAI,mBAAmB,EACjD,8BAA8B,IAAI,uBAAuB,EAC1D,CAAC","file":"shared-browser.js","sourcesContent":["import type { IApp, IEntryOptions, IEnvParamsMap } from '@visactor/vrender-core';\nimport { createBrowserApp } from '@visactor/vrender-core/entries/browser';\nimport { bootstrapVRenderSharedBrowserApp } from './bootstrap-browser';\nimport { installPendingRuntimeContributionModulesToApp } from './runtime-contribution';\nimport {\n acquireSharedApp,\n getSharedApp,\n releaseSharedApp,\n type TVRenderSharedAppHandle,\n type TVRenderSharedAppKey\n} from './shared-registry';\n\nconst SHARED_BROWSER_REGISTRY_ENV = 'browser-shared';\n\nexport type TVRenderSharedBrowserAppOptions = IEntryOptions & {\n env?: 'browser';\n envParams?: IEnvParamsMap['browser'];\n /**\n * Shared identity inside the current JS runtime. Use a stable app/page/container key\n * when multiple products, such as VChart and VTable, should share one VRender app.\n */\n key?: TVRenderSharedAppKey;\n};\n\nexport type TVRenderSharedBrowserAppHandle = TVRenderSharedAppHandle<'browser'>;\n\nfunction createSharedBrowserApp(options: TVRenderSharedBrowserAppOptions): IApp {\n const { envParams } = options;\n const entryOptions = { ...options };\n delete entryOptions.env;\n delete entryOptions.envParams;\n delete entryOptions.key;\n const app = bootstrapVRenderSharedBrowserApp(createBrowserApp(entryOptions as any) as unknown as IApp, envParams);\n\n installPendingRuntimeContributionModulesToApp(app);\n return app;\n}\n\nexport function acquireSharedBrowserVRenderApp(\n options: TVRenderSharedBrowserAppOptions = {}\n): TVRenderSharedBrowserAppHandle {\n return acquireSharedApp(SHARED_BROWSER_REGISTRY_ENV, options, createSharedBrowserApp, 'browser');\n}\n\nexport function getSharedBrowserVRenderApp(key?: TVRenderSharedAppKey): IApp | null {\n return getSharedApp(SHARED_BROWSER_REGISTRY_ENV, key);\n}\n\nexport function releaseSharedBrowserVRenderApp(key?: TVRenderSharedAppKey): void {\n releaseSharedApp(SHARED_BROWSER_REGISTRY_ENV, key);\n}\n\nexport {\n acquireSharedBrowserVRenderApp as acquireSharedVRenderApp,\n getSharedBrowserVRenderApp as getSharedVRenderApp,\n releaseSharedBrowserVRenderApp as releaseSharedVRenderApp\n};\n"]}
@@ -13,4 +13,5 @@ export declare function acquireSharedApp<TRegistryEnv extends string, THandleEnv
13
13
  key?: TVRenderSharedAppKey;
14
14
  }>(registryEnv: TRegistryEnv, options: TOptions, createApp: (options: TOptions) => IApp, handleEnv?: THandleEnv): TVRenderSharedAppHandle<THandleEnv>;
15
15
  export declare function getSharedApp<TEnv extends string>(env: TEnv, key?: TVRenderSharedAppKey): IApp | null;
16
+ export declare function getAllSharedApps(): IApp[];
16
17
  export declare function releaseSharedApp<TEnv extends string>(env: TEnv, key?: TVRenderSharedAppKey): void;
@@ -71,6 +71,16 @@ export function getSharedApp(env, key = "default") {
71
71
  return !record || record.released || record.app.released ? null : record.app;
72
72
  }
73
73
 
74
+ export function getAllSharedApps() {
75
+ const apps = [], seen = new Set;
76
+ return getSharedAppRegistry().forEach((envRegistry => {
77
+ envRegistry.forEach((record => {
78
+ record.released || record.app.released || seen.has(record.app) || (seen.add(record.app),
79
+ apps.push(record.app));
80
+ }));
81
+ })), apps;
82
+ }
83
+
74
84
  export function releaseSharedApp(env, key = "default") {
75
85
  var _a;
76
86
  const record = null === (_a = getSharedAppEnvRegistry(env, !1)) || void 0 === _a ? void 0 : _a.get(key);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/entries/shared-registry.ts"],"names":[],"mappings":"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","file":"shared-registry.js","sourcesContent":["import type { IApp } from '@visactor/vrender-core';\n\nexport type TVRenderSharedAppKey = string | symbol;\n\nexport type TVRenderSharedAppHandle<TEnv extends string = string> = {\n readonly app: IApp;\n readonly env: TEnv;\n readonly key: TVRenderSharedAppKey;\n release: () => void;\n};\n\ntype TSharedAppRecord = {\n app: IApp;\n refCount: number;\n released: boolean;\n releaseApp: () => void;\n};\n\ntype TSharedAppRegistry<TEnv extends string = string> = Map<TEnv, Map<TVRenderSharedAppKey, TSharedAppRecord>>;\ntype TGlobalSharedAppRegistry = typeof globalThis & Record<symbol, TSharedAppRegistry | undefined>;\n\nexport const DEFAULT_SHARED_APP_KEY = 'default';\n\nconst SHARED_APP_REGISTRY_KEY = Symbol.for('visactor.vrender.sharedAppRegistry');\n\nfunction getSharedAppRegistry<TEnv extends string>(): TSharedAppRegistry<TEnv> {\n const target = globalThis as TGlobalSharedAppRegistry;\n const registry = target[SHARED_APP_REGISTRY_KEY] ?? new Map();\n target[SHARED_APP_REGISTRY_KEY] = registry;\n return registry as TSharedAppRegistry<TEnv>;\n}\n\nfunction getSharedAppEnvRegistry<TEnv extends string>(\n env: TEnv,\n create: boolean\n): Map<TVRenderSharedAppKey, TSharedAppRecord> | undefined {\n const registry = getSharedAppRegistry<TEnv>();\n const envRegistry = registry.get(env);\n\n if (envRegistry || !create) {\n return envRegistry;\n }\n\n const nextEnvRegistry = new Map<TVRenderSharedAppKey, TSharedAppRecord>();\n registry.set(env, nextEnvRegistry);\n return nextEnvRegistry;\n}\n\nfunction getOrCreateSharedAppEnvRegistry<TEnv extends string>(env: TEnv): Map<TVRenderSharedAppKey, TSharedAppRecord> {\n return getSharedAppEnvRegistry(env, true) as Map<TVRenderSharedAppKey, TSharedAppRecord>;\n}\n\nfunction removeSharedAppRecord<TEnv extends string>(env: TEnv, key: TVRenderSharedAppKey, record: TSharedAppRecord) {\n const registry = getSharedAppRegistry<TEnv>();\n const envRegistry = registry.get(env);\n\n if (envRegistry?.get(key) === record) {\n envRegistry.delete(key);\n if (!envRegistry.size) {\n registry.delete(env);\n }\n }\n}\n\nfunction releaseSharedAppRecord<TEnv extends string>(env: TEnv, key: TVRenderSharedAppKey, record: TSharedAppRecord) {\n if (record.released) {\n return;\n }\n\n record.released = true;\n record.refCount = 0;\n removeSharedAppRecord(env, key, record);\n record.releaseApp();\n}\n\nfunction createSharedAppRecord<TEnv extends string, TOptions>(\n env: TEnv,\n key: TVRenderSharedAppKey,\n options: TOptions,\n createApp: (options: TOptions) => IApp\n): TSharedAppRecord {\n const app = createApp(options);\n const originalRelease = app.release.bind(app);\n const record: TSharedAppRecord = {\n app,\n refCount: 0,\n released: false,\n releaseApp: originalRelease\n };\n\n app.release = () => releaseSharedAppRecord(env, key, record);\n return record;\n}\n\nfunction createSharedAppHandle<TEnv extends string>(\n registryEnv: string,\n handleEnv: TEnv,\n key: TVRenderSharedAppKey,\n record: TSharedAppRecord\n): TVRenderSharedAppHandle<TEnv> {\n let released = false;\n\n return {\n app: record.app,\n env: handleEnv,\n key,\n release() {\n if (released) {\n return;\n }\n released = true;\n\n const envRegistry = getSharedAppEnvRegistry(registryEnv, false);\n if (envRegistry?.get(key) !== record || record.released) {\n return;\n }\n\n record.refCount -= 1;\n if (record.refCount <= 0) {\n releaseSharedAppRecord(registryEnv, key, record);\n }\n }\n };\n}\n\nexport function acquireSharedApp<\n TRegistryEnv extends string,\n THandleEnv extends string = TRegistryEnv,\n TOptions extends { key?: TVRenderSharedAppKey } = { key?: TVRenderSharedAppKey }\n>(\n registryEnv: TRegistryEnv,\n options: TOptions,\n createApp: (options: TOptions) => IApp,\n handleEnv: THandleEnv = registryEnv as unknown as THandleEnv\n): TVRenderSharedAppHandle<THandleEnv> {\n const key = options.key ?? DEFAULT_SHARED_APP_KEY;\n const envRegistry = getOrCreateSharedAppEnvRegistry(registryEnv);\n let record = envRegistry.get(key);\n\n if (record?.app.released) {\n releaseSharedAppRecord(registryEnv, key, record);\n record = undefined;\n }\n\n if (!record) {\n record = createSharedAppRecord(registryEnv, key, options, createApp);\n envRegistry.set(key, record);\n }\n\n record.refCount += 1;\n return createSharedAppHandle(registryEnv, handleEnv, key, record);\n}\n\nexport function getSharedApp<TEnv extends string>(\n env: TEnv,\n key: TVRenderSharedAppKey = DEFAULT_SHARED_APP_KEY\n): IApp | null {\n const record = getSharedAppEnvRegistry(env, false)?.get(key);\n if (!record || record.released || record.app.released) {\n return null;\n }\n return record.app;\n}\n\nexport function releaseSharedApp<TEnv extends string>(\n env: TEnv,\n key: TVRenderSharedAppKey = DEFAULT_SHARED_APP_KEY\n): void {\n const record = getSharedAppEnvRegistry(env, false)?.get(key);\n if (record) {\n releaseSharedAppRecord(env, key, record);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/entries/shared-registry.ts"],"names":[],"mappings":"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","file":"shared-registry.js","sourcesContent":["import type { IApp } from '@visactor/vrender-core';\n\nexport type TVRenderSharedAppKey = string | symbol;\n\nexport type TVRenderSharedAppHandle<TEnv extends string = string> = {\n readonly app: IApp;\n readonly env: TEnv;\n readonly key: TVRenderSharedAppKey;\n release: () => void;\n};\n\ntype TSharedAppRecord = {\n app: IApp;\n refCount: number;\n released: boolean;\n releaseApp: () => void;\n};\n\ntype TSharedAppRegistry<TEnv extends string = string> = Map<TEnv, Map<TVRenderSharedAppKey, TSharedAppRecord>>;\ntype TGlobalSharedAppRegistry = typeof globalThis & Record<symbol, TSharedAppRegistry | undefined>;\n\nexport const DEFAULT_SHARED_APP_KEY = 'default';\n\nconst SHARED_APP_REGISTRY_KEY = Symbol.for('visactor.vrender.sharedAppRegistry');\n\nfunction getSharedAppRegistry<TEnv extends string>(): TSharedAppRegistry<TEnv> {\n const target = globalThis as TGlobalSharedAppRegistry;\n const registry = target[SHARED_APP_REGISTRY_KEY] ?? new Map();\n target[SHARED_APP_REGISTRY_KEY] = registry;\n return registry as TSharedAppRegistry<TEnv>;\n}\n\nfunction getSharedAppEnvRegistry<TEnv extends string>(\n env: TEnv,\n create: boolean\n): Map<TVRenderSharedAppKey, TSharedAppRecord> | undefined {\n const registry = getSharedAppRegistry<TEnv>();\n const envRegistry = registry.get(env);\n\n if (envRegistry || !create) {\n return envRegistry;\n }\n\n const nextEnvRegistry = new Map<TVRenderSharedAppKey, TSharedAppRecord>();\n registry.set(env, nextEnvRegistry);\n return nextEnvRegistry;\n}\n\nfunction getOrCreateSharedAppEnvRegistry<TEnv extends string>(env: TEnv): Map<TVRenderSharedAppKey, TSharedAppRecord> {\n return getSharedAppEnvRegistry(env, true) as Map<TVRenderSharedAppKey, TSharedAppRecord>;\n}\n\nfunction removeSharedAppRecord<TEnv extends string>(env: TEnv, key: TVRenderSharedAppKey, record: TSharedAppRecord) {\n const registry = getSharedAppRegistry<TEnv>();\n const envRegistry = registry.get(env);\n\n if (envRegistry?.get(key) === record) {\n envRegistry.delete(key);\n if (!envRegistry.size) {\n registry.delete(env);\n }\n }\n}\n\nfunction releaseSharedAppRecord<TEnv extends string>(env: TEnv, key: TVRenderSharedAppKey, record: TSharedAppRecord) {\n if (record.released) {\n return;\n }\n\n record.released = true;\n record.refCount = 0;\n removeSharedAppRecord(env, key, record);\n record.releaseApp();\n}\n\nfunction createSharedAppRecord<TEnv extends string, TOptions>(\n env: TEnv,\n key: TVRenderSharedAppKey,\n options: TOptions,\n createApp: (options: TOptions) => IApp\n): TSharedAppRecord {\n const app = createApp(options);\n const originalRelease = app.release.bind(app);\n const record: TSharedAppRecord = {\n app,\n refCount: 0,\n released: false,\n releaseApp: originalRelease\n };\n\n app.release = () => releaseSharedAppRecord(env, key, record);\n return record;\n}\n\nfunction createSharedAppHandle<TEnv extends string>(\n registryEnv: string,\n handleEnv: TEnv,\n key: TVRenderSharedAppKey,\n record: TSharedAppRecord\n): TVRenderSharedAppHandle<TEnv> {\n let released = false;\n\n return {\n app: record.app,\n env: handleEnv,\n key,\n release() {\n if (released) {\n return;\n }\n released = true;\n\n const envRegistry = getSharedAppEnvRegistry(registryEnv, false);\n if (envRegistry?.get(key) !== record || record.released) {\n return;\n }\n\n record.refCount -= 1;\n if (record.refCount <= 0) {\n releaseSharedAppRecord(registryEnv, key, record);\n }\n }\n };\n}\n\nexport function acquireSharedApp<\n TRegistryEnv extends string,\n THandleEnv extends string = TRegistryEnv,\n TOptions extends { key?: TVRenderSharedAppKey } = { key?: TVRenderSharedAppKey }\n>(\n registryEnv: TRegistryEnv,\n options: TOptions,\n createApp: (options: TOptions) => IApp,\n handleEnv: THandleEnv = registryEnv as unknown as THandleEnv\n): TVRenderSharedAppHandle<THandleEnv> {\n const key = options.key ?? DEFAULT_SHARED_APP_KEY;\n const envRegistry = getOrCreateSharedAppEnvRegistry(registryEnv);\n let record = envRegistry.get(key);\n\n if (record?.app.released) {\n releaseSharedAppRecord(registryEnv, key, record);\n record = undefined;\n }\n\n if (!record) {\n record = createSharedAppRecord(registryEnv, key, options, createApp);\n envRegistry.set(key, record);\n }\n\n record.refCount += 1;\n return createSharedAppHandle(registryEnv, handleEnv, key, record);\n}\n\nexport function getSharedApp<TEnv extends string>(\n env: TEnv,\n key: TVRenderSharedAppKey = DEFAULT_SHARED_APP_KEY\n): IApp | null {\n const record = getSharedAppEnvRegistry(env, false)?.get(key);\n if (!record || record.released || record.app.released) {\n return null;\n }\n return record.app;\n}\n\nexport function getAllSharedApps(): IApp[] {\n const apps: IApp[] = [];\n const seen = new Set<IApp>();\n const registry = getSharedAppRegistry<string>();\n\n registry.forEach(envRegistry => {\n envRegistry.forEach(record => {\n if (record.released || record.app.released || seen.has(record.app)) {\n return;\n }\n seen.add(record.app);\n apps.push(record.app);\n });\n });\n\n return apps;\n}\n\nexport function releaseSharedApp<TEnv extends string>(\n env: TEnv,\n key: TVRenderSharedAppKey = DEFAULT_SHARED_APP_KEY\n): void {\n const record = getSharedAppEnvRegistry(env, false)?.get(key);\n if (record) {\n releaseSharedAppRecord(env, key, record);\n }\n}\n"]}
package/es/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Direction } from '@visactor/vrender-core';
2
- export declare const version = "1.1.0";
2
+ export declare const version = "1.1.1";
3
3
  export * from '@visactor/vrender-core';
4
4
  export * from '@visactor/vrender-kits';
5
5
  export * from '@visactor/vrender-animate';
package/es/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import { Direction } from "@visactor/vrender-core";
2
2
 
3
- export const version = "1.1.0";
3
+ export const version = "1.1.1";
4
4
 
5
5
  export * from "@visactor/vrender-core";
6
6
 
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,CAAC","file":"index.js","sourcesContent":["import { Direction } from '@visactor/vrender-core';\n// 导出版本号\nexport const version = \"1.1.0\";\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\nexport * from '@visactor/vrender-animate';\nexport * from '@visactor/vrender-components';\nexport * from './entries';\nexport { createStage } from './legacy';\n\n// avoid naming conflicts with 'State' & 'Direction' in '@visactor/vrender-components'\nexport { State } from '@visactor/vrender-animate';\nexport { Direction };\n"]}
1
+ {"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,WAAW,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,CAAC","file":"index.js","sourcesContent":["import { Direction } from '@visactor/vrender-core';\n// 导出版本号\nexport const version = \"1.1.1\";\n\nexport * from '@visactor/vrender-core';\nexport * from '@visactor/vrender-kits';\nexport * from '@visactor/vrender-animate';\nexport * from '@visactor/vrender-components';\nexport * from './entries';\nexport { createStage } from './legacy';\n\n// avoid naming conflicts with 'State' & 'Direction' in '@visactor/vrender-components'\nexport { State } from '@visactor/vrender-animate';\nexport { Direction };\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@visactor/vrender",
3
- "version": "1.1.0",
3
+ "version": "1.1.1",
4
4
  "description": "",
5
5
  "sideEffects": true,
6
6
  "main": "cjs/index.js",
@@ -22,10 +22,10 @@
22
22
  "dist"
23
23
  ],
24
24
  "dependencies": {
25
- "@visactor/vrender-core": "1.1.0",
26
- "@visactor/vrender-kits": "1.1.0",
27
- "@visactor/vrender-animate": "1.1.0",
28
- "@visactor/vrender-components": "1.1.0"
25
+ "@visactor/vrender-core": "1.1.1",
26
+ "@visactor/vrender-kits": "1.1.1",
27
+ "@visactor/vrender-animate": "1.1.1",
28
+ "@visactor/vrender-components": "1.1.1"
29
29
  },
30
30
  "devDependencies": {
31
31
  "@rushstack/eslint-patch": "~1.1.4",
@@ -46,9 +46,9 @@
46
46
  "typescript": "4.9.5",
47
47
  "zrender": "5.4.0",
48
48
  "cross-env": "^7.0.3",
49
- "@internal/ts-config": "0.0.1",
49
+ "@internal/eslint-config": "0.0.1",
50
50
  "@internal/bundler": "0.0.1",
51
- "@internal/eslint-config": "0.0.1"
51
+ "@internal/ts-config": "0.0.1"
52
52
  },
53
53
  "keywords": [
54
54
  "VisActor",
@@ -88,6 +88,11 @@
88
88
  "import": "./es/entries/miniapp.js",
89
89
  "require": "./cjs/entries/miniapp.js"
90
90
  },
91
+ "./entries/runtime-contribution": {
92
+ "types": "./es/entries/runtime-contribution.d.ts",
93
+ "import": "./es/entries/runtime-contribution.js",
94
+ "require": "./cjs/entries/runtime-contribution.js"
95
+ },
91
96
  "./entries/node": {
92
97
  "types": "./es/entries/node.d.ts",
93
98
  "import": "./es/entries/node.js",