@next-core/runtime 1.31.1 → 1.32.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.
@@ -3,9 +3,9 @@ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
4
4
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
5
5
  import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
6
- import _classPrivateMethodGet from "@babel/runtime/helpers/classPrivateMethodGet";
7
- import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet";
8
- import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
6
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
7
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
8
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
9
9
  import { i18n, initializeI18n } from "@next-core/i18n";
10
10
  import { loadBricksImperatively } from "@next-core/loader";
11
11
  import { deepFreeze, isObject } from "@next-core/utils/general";
@@ -80,32 +80,26 @@ function getRuntimeV2Factory() {
80
80
  export var getRuntime = getRuntimeV2Factory() || getRuntimeV3;
81
81
  var _initialized = /*#__PURE__*/new WeakMap();
82
82
  var _bootstrapped = /*#__PURE__*/new WeakMap();
83
- var _getPresetBricks = /*#__PURE__*/new WeakSet();
83
+ var _Runtime_brand = /*#__PURE__*/new WeakSet();
84
84
  export class Runtime {
85
85
  constructor() {
86
- _classPrivateMethodInitSpec(this, _getPresetBricks);
87
- _classPrivateFieldInitSpec(this, _initialized, {
88
- writable: true,
89
- value: false
90
- });
91
- _classPrivateFieldInitSpec(this, _bootstrapped, {
92
- writable: true,
93
- value: false
94
- });
86
+ _classPrivateMethodInitSpec(this, _Runtime_brand);
87
+ _classPrivateFieldInitSpec(this, _initialized, false);
88
+ _classPrivateFieldInitSpec(this, _bootstrapped, false);
95
89
  _defineProperty(this, "version", 3);
96
90
  }
97
91
  initialize(data) {
98
92
  var _data$settings;
99
- if (_classPrivateFieldGet(this, _initialized)) {
93
+ if (_classPrivateFieldGet(_initialized, this)) {
100
94
  throw new Error("The runtime cannot be initialized more than once");
101
95
  }
102
- _classPrivateFieldSet(this, _initialized, true);
96
+ _classPrivateFieldSet(_initialized, this, true);
103
97
  normalizeBootstrapData(data);
104
98
  bootstrapData = data;
105
99
  var {
106
100
  notification,
107
101
  dialog
108
- } = _classPrivateMethodGet(this, _getPresetBricks, _getPresetBricks2).call(this);
102
+ } = _assertClassBrand(_Runtime_brand, this, _getPresetBricks).call(this);
109
103
  if (notification !== false) {
110
104
  loadNotificationService(notification !== null && notification !== void 0 ? notification : "basic.show-notification", this.loadBricks);
111
105
  }
@@ -120,10 +114,10 @@ export class Runtime {
120
114
  if (data) {
121
115
  _this.initialize(data);
122
116
  }
123
- if (_classPrivateFieldGet(_this, _bootstrapped)) {
117
+ if (_classPrivateFieldGet(_bootstrapped, _this)) {
124
118
  throw new Error("The runtime cannot be bootstrapped more than once");
125
119
  }
126
- _classPrivateFieldSet(_this, _bootstrapped, true);
120
+ _classPrivateFieldSet(_bootstrapped, _this, true);
127
121
  router = new Router(bootstrapData.storyboards);
128
122
  yield router.bootstrap();
129
123
  })();
@@ -185,7 +179,7 @@ export class Runtime {
185
179
  return loadBricksImperatively(bricks, getBrickPackages());
186
180
  }
187
181
  }
188
- function _getPresetBricks2() {
182
+ function _getPresetBricks() {
189
183
  var _bootstrapData$settin, _bootstrapData10;
190
184
  return (_bootstrapData$settin = (_bootstrapData10 = bootstrapData) === null || _bootstrapData10 === void 0 || (_bootstrapData10 = _bootstrapData10.settings) === null || _bootstrapData10 === void 0 ? void 0 : _bootstrapData10.presetBricks) !== null && _bootstrapData$settin !== void 0 ? _bootstrapData$settin : {};
191
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","names":["i18n","initializeI18n","loadBricksImperatively","deepFreeze","isObject","moment","createHistory","matchStoryboard","Router","NS","locales","loadNotificationService","loadDialogService","injectedBrickPackages","hasInstalledApp","listenDevtoolsEagerly","getV2RuntimeFromDll","customizeColorTheme","runtime","bootstrapData","router","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getRuntimeV2","Proxy","getRuntime","get","key","arguments","length","undefined","Reflect","_initialized","WeakMap","_bootstrapped","_getPresetBricks","WeakSet","constructor","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","writable","value","_defineProperty","initialize","data","_data$settings","_classPrivateFieldGet","_classPrivateFieldSet","normalizeBootstrapData","notification","dialog","_classPrivateMethodGet","_getPresetBricks2","call","loadBricks","settings","misc","theme","bootstrap","_this","_asyncToGenerator","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","_objectSpread","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","concat","getNavConfig","_router5","bricks","getBrickPackages","_bootstrapData$settin","_bootstrapData10","presetBricks","Array","isArray","_loop","app","ns","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","brickPackages","_ref2","_ref3","_bootstrapData$brickP","_bootstrapData7","window","STANDALONE_BRICK_PACKAGES","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\n BrickConf,\n RouteConf,\n ResolveConf,\n BrickPackage,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport type { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { type AppForCheck, hasInstalledApp } from \"./hasInstalledApp.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\nimport { ThemeSettings, customizeColorTheme } from \"./customizeColorTheme.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface ImagesFactory {\n get(name: string): string;\n}\n\nexport interface PageViewInfo {\n status: \"ok\" | \"failed\" | \"redirected\" | \"not-found\";\n path?: string;\n pageTitle?: string;\n}\n\nexport interface RuntimeHooks {\n auth?: {\n getAuth(): object;\n isLoggedIn(): boolean;\n authenticate?(...args: unknown[]): unknown;\n logout?(...args: unknown[]): unknown;\n };\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\n checkPermissions?: {\n checkPermissions(...actions: string[]): boolean;\n preCheckPermissions(storyboard: Storyboard): Promise<void> | undefined;\n preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n asyncComputeRealValue: (value: unknown) => Promise<unknown>\n ): Promise<void> | undefined;\n };\n checkInstalledApps?: {\n preCheckInstalledApps(\n storyboard: Storyboard,\n hasAppInBootstrap: (appId: string) => boolean\n ): void;\n waitForCheckingApps(appIds: string[]): Promise<void>;\n getCheckedApp(appId: string): AppForCheck | undefined;\n };\n flowApi?: {\n FLOW_API_PROVIDER: string;\n registerFlowApiProvider(): void;\n isFlowApiProvider(provider: string): boolean;\n getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n ): Promise<unknown[]>;\n collectContract(contracts: Contract[] | undefined): void;\n collectWidgetContract(contracts: Contract[] | undefined): void;\n clearCollectWidgetContract(): void;\n };\n menu?: {\n getMenuById(menuId: string): unknown;\n fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n runtimeHelpers: RuntimeHooksMenuHelpers\n ): Promise<unknown>;\n };\n images?: {\n imagesFactory(\n appId: string,\n isBuildPush?: boolean,\n version?: string\n ): ImagesFactory;\n widgetImagesFactory(\n widgetId: string,\n widgetVersion?: string\n ): ImagesFactory;\n };\n messageDispatcher?: {\n subscribe(...args: unknown[]): Promise<unknown>;\n unsubscribe(...args: unknown[]): Promise<unknown>;\n onMessage(channel: string, listener: (data: unknown) => void): void;\n onClose(listener: () => void): void;\n reset(): void;\n };\n pageView?: {\n create(): (info: PageViewInfo) => void;\n };\n}\n\nexport interface RuntimeHooksMenuHelpers {\n getStoryboardByAppId(appId: string): Storyboard | undefined;\n resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext\n ): Promise<unknown>;\n asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n options?: { ignoreSymbols?: boolean; noInject?: boolean }\n ): Promise<unknown>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get(...args) {\n const key = args[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"getRecentApps\":\n case \"hasInstalledApp\":\n case \"getDesktops\":\n case \"getLaunchpadSettings\":\n case \"getLaunchpadSiteMap\":\n case \"toggleLaunchpadEffect\":\n case \"applyPageTitle\":\n case \"getNavConfig\":\n case \"getFeatureFlags\":\n case \"getMiscSettings\":\n case \"getBrandSettings\":\n return Reflect.get(...args);\n }\n },\n }) as unknown as Runtime;\n };\n }\n}\n\n// istanbul ignore next\nexport const getRuntime = getRuntimeV2Factory() || getRuntimeV3;\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\n\n readonly version: number | undefined = 3;\n\n initialize(data: BootstrapData) {\n if (this.#initialized) {\n throw new Error(\"The runtime cannot be initialized more than once\");\n }\n this.#initialized = true;\n normalizeBootstrapData(data);\n bootstrapData = data;\n const { notification, dialog } = this.#getPresetBricks();\n if (notification !== false) {\n loadNotificationService(\n notification ?? \"basic.show-notification\",\n this.loadBricks\n );\n }\n if (dialog !== false) {\n loadDialogService(dialog ?? \"basic.show-dialog\", this.loadBricks);\n }\n customizeColorTheme(data.settings?.misc?.theme as ThemeSettings);\n }\n\n async bootstrap(data?: BootstrapData) {\n if (data) {\n this.initialize(data);\n }\n if (this.#bootstrapped) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n this.#bootstrapped = true;\n router = new Router(bootstrapData!.storyboards!);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return hasInstalledApp(appId, matchVersion);\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n\n #getPresetBricks() {\n return (bootstrapData?.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return (\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[]) ??\n []\n );\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Runtime.js","names":["i18n","initializeI18n","loadBricksImperatively","deepFreeze","isObject","moment","createHistory","matchStoryboard","Router","NS","locales","loadNotificationService","loadDialogService","injectedBrickPackages","hasInstalledApp","listenDevtoolsEagerly","getV2RuntimeFromDll","customizeColorTheme","runtime","bootstrapData","router","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getRuntimeV2","Proxy","getRuntime","get","key","arguments","length","undefined","Reflect","_initialized","WeakMap","_bootstrapped","_Runtime_brand","WeakSet","constructor","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_defineProperty","initialize","data","_data$settings","_classPrivateFieldGet","_classPrivateFieldSet","normalizeBootstrapData","notification","dialog","_assertClassBrand","_getPresetBricks","call","loadBricks","settings","misc","theme","bootstrap","_this","_asyncToGenerator","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","_objectSpread","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","concat","getNavConfig","_router5","bricks","getBrickPackages","_bootstrapData$settin","_bootstrapData10","presetBricks","Array","isArray","_loop","app","ns","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","brickPackages","_ref2","_ref3","_bootstrapData$brickP","_bootstrapData7","window","STANDALONE_BRICK_PACKAGES","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\n BrickConf,\n RouteConf,\n ResolveConf,\n BrickPackage,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport type { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { type AppForCheck, hasInstalledApp } from \"./hasInstalledApp.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\nimport { ThemeSettings, customizeColorTheme } from \"./customizeColorTheme.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface ImagesFactory {\n get(name: string): string;\n}\n\nexport interface PageViewInfo {\n status: \"ok\" | \"failed\" | \"redirected\" | \"not-found\";\n path?: string;\n pageTitle?: string;\n}\n\nexport interface RuntimeHooks {\n auth?: {\n getAuth(): object;\n isLoggedIn(): boolean;\n authenticate?(...args: unknown[]): unknown;\n logout?(...args: unknown[]): unknown;\n };\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\n checkPermissions?: {\n checkPermissions(...actions: string[]): boolean;\n preCheckPermissions(storyboard: Storyboard): Promise<void> | undefined;\n preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n asyncComputeRealValue: (value: unknown) => Promise<unknown>\n ): Promise<void> | undefined;\n };\n checkInstalledApps?: {\n preCheckInstalledApps(\n storyboard: Storyboard,\n hasAppInBootstrap: (appId: string) => boolean\n ): void;\n waitForCheckingApps(appIds: string[]): Promise<void>;\n getCheckedApp(appId: string): AppForCheck | undefined;\n };\n flowApi?: {\n FLOW_API_PROVIDER: string;\n registerFlowApiProvider(): void;\n isFlowApiProvider(provider: string): boolean;\n getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n ): Promise<unknown[]>;\n collectContract(contracts: Contract[] | undefined): void;\n collectWidgetContract(contracts: Contract[] | undefined): void;\n clearCollectWidgetContract(): void;\n };\n menu?: {\n getMenuById(menuId: string): unknown;\n fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n runtimeHelpers: RuntimeHooksMenuHelpers\n ): Promise<unknown>;\n };\n images?: {\n imagesFactory(\n appId: string,\n isBuildPush?: boolean,\n version?: string\n ): ImagesFactory;\n widgetImagesFactory(\n widgetId: string,\n widgetVersion?: string\n ): ImagesFactory;\n };\n messageDispatcher?: {\n subscribe(...args: unknown[]): Promise<unknown>;\n unsubscribe(...args: unknown[]): Promise<unknown>;\n onMessage(channel: string, listener: (data: unknown) => void): void;\n onClose(listener: () => void): void;\n reset(): void;\n };\n pageView?: {\n create(): (info: PageViewInfo) => void;\n };\n}\n\nexport interface RuntimeHooksMenuHelpers {\n getStoryboardByAppId(appId: string): Storyboard | undefined;\n resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext\n ): Promise<unknown>;\n asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n options?: { ignoreSymbols?: boolean; noInject?: boolean }\n ): Promise<unknown>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get(...args) {\n const key = args[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"getRecentApps\":\n case \"hasInstalledApp\":\n case \"getDesktops\":\n case \"getLaunchpadSettings\":\n case \"getLaunchpadSiteMap\":\n case \"toggleLaunchpadEffect\":\n case \"applyPageTitle\":\n case \"getNavConfig\":\n case \"getFeatureFlags\":\n case \"getMiscSettings\":\n case \"getBrandSettings\":\n return Reflect.get(...args);\n }\n },\n }) as unknown as Runtime;\n };\n }\n}\n\n// istanbul ignore next\nexport const getRuntime = getRuntimeV2Factory() || getRuntimeV3;\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\n\n readonly version: number | undefined = 3;\n\n initialize(data: BootstrapData) {\n if (this.#initialized) {\n throw new Error(\"The runtime cannot be initialized more than once\");\n }\n this.#initialized = true;\n normalizeBootstrapData(data);\n bootstrapData = data;\n const { notification, dialog } = this.#getPresetBricks();\n if (notification !== false) {\n loadNotificationService(\n notification ?? \"basic.show-notification\",\n this.loadBricks\n );\n }\n if (dialog !== false) {\n loadDialogService(dialog ?? \"basic.show-dialog\", this.loadBricks);\n }\n customizeColorTheme(data.settings?.misc?.theme as ThemeSettings);\n }\n\n async bootstrap(data?: BootstrapData) {\n if (data) {\n this.initialize(data);\n }\n if (this.#bootstrapped) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n this.#bootstrapped = true;\n router = new Router(bootstrapData!.storyboards!);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return hasInstalledApp(appId, matchVersion);\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n\n #getPresetBricks() {\n return (bootstrapData?.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return (\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[]) ??\n []\n );\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
+ import { loadBricksImperatively } from "@next-core/loader";
3
+ import { getBrickPackages, getRuntime, hooks } from "./internal/Runtime.js";
4
+ import { omit } from "lodash";
5
+ var brick;
6
+ export var WATEMARK_BRICKNAME = "basic.show-watermark";
7
+ export function setWatermark() {
8
+ var _window$APP_ROOT, _username, _hooks$auth, _settings$watermarkCo, _watermarkConfig$cont, _watermarkConfig$flag, _watermarkConfig$flag2;
9
+ var flags = getRuntime().getFeatureFlags();
10
+ var settings = getRuntime().getMiscSettings();
11
+ if (!flags["show-watermark"]) {
12
+ return;
13
+ }
14
+ var isDeveloper = ((_window$APP_ROOT = window.APP_ROOT) === null || _window$APP_ROOT === void 0 || (_window$APP_ROOT = _window$APP_ROOT.match(/versions\/([^/]+)\//)) === null || _window$APP_ROOT === void 0 ? void 0 : _window$APP_ROOT[1]) === "0.0.0";
15
+ var username = (_username = hooks === null || hooks === void 0 || (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 || (_hooks$auth = _hooks$auth.getAuth()) === null || _hooks$auth === void 0 ? void 0 : _hooks$auth.username) !== null && _username !== void 0 ? _username : "";
16
+ var watermarkConfig = (_settings$watermarkCo = settings.watermarkConfig) !== null && _settings$watermarkCo !== void 0 ? _settings$watermarkCo : {
17
+ flags: {}
18
+ };
19
+ var defaultProps = _objectSpread({
20
+ content: [...(typeof watermarkConfig.content === "string" ? [watermarkConfig.content] : (_watermarkConfig$cont = watermarkConfig.content) !== null && _watermarkConfig$cont !== void 0 ? _watermarkConfig$cont : []), (_watermarkConfig$flag = watermarkConfig.flags) !== null && _watermarkConfig$flag !== void 0 && _watermarkConfig$flag["show-development"] && isDeveloper ? "Development" : "", (_watermarkConfig$flag2 = watermarkConfig.flags) !== null && _watermarkConfig$flag2 !== void 0 && _watermarkConfig$flag2["show-user"] ? username : ""].filter(Boolean),
21
+ zIndex: 1001,
22
+ width: 200,
23
+ font: {
24
+ fontSize: 28
25
+ },
26
+ gap: [190, 190]
27
+ }, omit(watermarkConfig, ["content", "flags"]));
28
+ if (brick) {
29
+ brick.resolve(defaultProps);
30
+ } else {
31
+ loadBricksImperatively([WATEMARK_BRICKNAME], getBrickPackages()).then(() => {
32
+ brick = document.createElement(WATEMARK_BRICKNAME);
33
+ brick.resolve(defaultProps);
34
+ }, error => {
35
+ // eslint-disable-next-line no-console
36
+ console.error("Load watermark service failed:", error);
37
+ });
38
+ }
39
+ }
40
+ //# sourceMappingURL=setWatermark.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setWatermark.js","names":["loadBricksImperatively","getBrickPackages","getRuntime","hooks","omit","brick","WATEMARK_BRICKNAME","setWatermark","_window$APP_ROOT","_username","_hooks$auth","_settings$watermarkCo","_watermarkConfig$cont","_watermarkConfig$flag","_watermarkConfig$flag2","flags","getFeatureFlags","settings","getMiscSettings","isDeveloper","window","APP_ROOT","match","username","auth","getAuth","watermarkConfig","defaultProps","_objectSpread","content","filter","Boolean","zIndex","width","font","fontSize","gap","resolve","then","document","createElement","error","console"],"sources":["../../src/setWatermark.ts"],"sourcesContent":["import { loadBricksImperatively } from \"@next-core/loader\";\nimport { getBrickPackages, getRuntime, hooks } from \"./internal/Runtime.js\";\nimport { omit } from \"lodash\";\n\ninterface WaterMarkProps {\n container?: HTMLElement;\n content?: string | string[];\n zIndex?: number;\n rotate?: number;\n width?: number;\n height?: number;\n image?: string;\n font?: {\n color?: CanvasFillStrokeStyles[\"fillStyle\"];\n fontSize?: number | string;\n fontWeight?: \"normal\" | \"light\" | \"weight\" | number;\n fontStyle?: \"none\" | \"normal\" | \"italic\" | \"oblique\";\n fontFamily?: string;\n textAlign?: CanvasTextAlign;\n };\n style?: React.CSSProperties;\n gap?: [number, number];\n offset?: [number, number];\n}\n\nlet brick: {\n resolve(options: WaterMarkProps): void;\n};\n\nexport const WATEMARK_BRICKNAME = \"basic.show-watermark\";\n\nexport function setWatermark() {\n const flags = getRuntime().getFeatureFlags();\n const settings = getRuntime().getMiscSettings();\n if (!flags[\"show-watermark\"]) {\n return;\n }\n const isDeveloper =\n window.APP_ROOT?.match(/versions\\/([^/]+)\\//)?.[1] === \"0.0.0\";\n const username =\n (hooks?.auth?.getAuth() as Record<string, any>)?.username ?? \"\";\n const watermarkConfig = (settings.watermarkConfig ?? {\n flags: {},\n }) as WaterMarkProps & {\n flags: {\n \"show-development\"?: boolean;\n \"show-user\"?: boolean;\n };\n };\n\n const defaultProps: WaterMarkProps = {\n content: [\n ...(typeof watermarkConfig.content === \"string\"\n ? [watermarkConfig.content]\n : watermarkConfig.content ?? []),\n watermarkConfig.flags?.[\"show-development\"] && isDeveloper\n ? \"Development\"\n : \"\",\n watermarkConfig.flags?.[\"show-user\"] ? username : \"\",\n ].filter(Boolean),\n zIndex: 1001,\n width: 200,\n font: {\n fontSize: 28,\n },\n gap: [190, 190],\n ...omit(watermarkConfig, [\"content\", \"flags\"]),\n };\n if (brick) {\n brick.resolve(defaultProps);\n } else {\n loadBricksImperatively([WATEMARK_BRICKNAME], getBrickPackages()).then(\n () => {\n brick = document.createElement(WATEMARK_BRICKNAME) as any;\n\n brick.resolve(defaultProps);\n },\n (error: unknown) => {\n // eslint-disable-next-line no-console\n console.error(\"Load watermark service failed:\", error);\n }\n );\n }\n}\n"],"mappings":";AAAA,SAASA,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,gBAAgB,EAAEC,UAAU,EAAEC,KAAK,QAAQ,uBAAuB;AAC3E,SAASC,IAAI,QAAQ,QAAQ;AAuB7B,IAAIC,KAEH;AAED,OAAO,IAAMC,kBAAkB,GAAG,sBAAsB;AAExD,OAAO,SAASC,YAAYA,CAAA,EAAG;EAAA,IAAAC,gBAAA,EAAAC,SAAA,EAAAC,WAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,sBAAA;EAC7B,IAAMC,KAAK,GAAGb,UAAU,CAAC,CAAC,CAACc,eAAe,CAAC,CAAC;EAC5C,IAAMC,QAAQ,GAAGf,UAAU,CAAC,CAAC,CAACgB,eAAe,CAAC,CAAC;EAC/C,IAAI,CAACH,KAAK,CAAC,gBAAgB,CAAC,EAAE;IAC5B;EACF;EACA,IAAMI,WAAW,GACf,EAAAX,gBAAA,GAAAY,MAAM,CAACC,QAAQ,cAAAb,gBAAA,gBAAAA,gBAAA,GAAfA,gBAAA,CAAiBc,KAAK,CAAC,qBAAqB,CAAC,cAAAd,gBAAA,uBAA7CA,gBAAA,CAAgD,CAAC,CAAC,MAAK,OAAO;EAChE,IAAMe,QAAQ,IAAAd,SAAA,GACXN,KAAK,aAALA,KAAK,gBAAAO,WAAA,GAALP,KAAK,CAAEqB,IAAI,cAAAd,WAAA,gBAAAA,WAAA,GAAXA,WAAA,CAAae,OAAO,CAAC,CAAC,cAAAf,WAAA,uBAAvBA,WAAA,CAAiDa,QAAQ,cAAAd,SAAA,cAAAA,SAAA,GAAI,EAAE;EACjE,IAAMiB,eAAe,IAAAf,qBAAA,GAAIM,QAAQ,CAACS,eAAe,cAAAf,qBAAA,cAAAA,qBAAA,GAAI;IACnDI,KAAK,EAAE,CAAC;EACV,CAKC;EAED,IAAMY,YAA4B,GAAAC,aAAA;IAChCC,OAAO,EAAE,CACP,IAAI,OAAOH,eAAe,CAACG,OAAO,KAAK,QAAQ,GAC3C,CAACH,eAAe,CAACG,OAAO,CAAC,IAAAjB,qBAAA,GACzBc,eAAe,CAACG,OAAO,cAAAjB,qBAAA,cAAAA,qBAAA,GAAI,EAAE,CAAC,EAClC,CAAAC,qBAAA,GAAAa,eAAe,CAACX,KAAK,cAAAF,qBAAA,eAArBA,qBAAA,CAAwB,kBAAkB,CAAC,IAAIM,WAAW,GACtD,aAAa,GACb,EAAE,EACN,CAAAL,sBAAA,GAAAY,eAAe,CAACX,KAAK,cAAAD,sBAAA,eAArBA,sBAAA,CAAwB,WAAW,CAAC,GAAGS,QAAQ,GAAG,EAAE,CACrD,CAACO,MAAM,CAACC,OAAO,CAAC;IACjBC,MAAM,EAAE,IAAI;IACZC,KAAK,EAAE,GAAG;IACVC,IAAI,EAAE;MACJC,QAAQ,EAAE;IACZ,CAAC;IACDC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG;EAAC,GACZhC,IAAI,CAACsB,eAAe,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAC/C;EACD,IAAIrB,KAAK,EAAE;IACTA,KAAK,CAACgC,OAAO,CAACV,YAAY,CAAC;EAC7B,CAAC,MAAM;IACL3B,sBAAsB,CAAC,CAACM,kBAAkB,CAAC,EAAEL,gBAAgB,CAAC,CAAC,CAAC,CAACqC,IAAI,CACnE,MAAM;MACJjC,KAAK,GAAGkC,QAAQ,CAACC,aAAa,CAAClC,kBAAkB,CAAQ;MAEzDD,KAAK,CAACgC,OAAO,CAACV,YAAY,CAAC;IAC7B,CAAC,EACAc,KAAc,IAAK;MAClB;MACAC,OAAO,CAACD,KAAK,CAAC,gCAAgC,EAAEA,KAAK,CAAC;IACxD,CACF,CAAC;EACH;AACF"}
@@ -0,0 +1,2 @@
1
+ export declare const WATEMARK_BRICKNAME = "basic.show-watermark";
2
+ export declare function setWatermark(): void;
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.39.4"
8
+ "packageVersion": "7.42.3"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.31.1",
3
+ "version": "1.32.0",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -44,14 +44,14 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@next-core/color-theme": "^0.4.8",
47
- "@next-core/cook": "^2.2.12",
48
- "@next-core/http": "^1.1.9",
49
- "@next-core/i18n": "^1.0.38",
50
- "@next-core/inject": "^1.0.28",
51
- "@next-core/loader": "^1.5.4",
52
- "@next-core/supply": "^2.1.11",
53
- "@next-core/types": "^1.8.0",
54
- "@next-core/utils": "^1.6.10",
47
+ "@next-core/cook": "^2.2.13",
48
+ "@next-core/http": "^1.1.10",
49
+ "@next-core/i18n": "^1.0.39",
50
+ "@next-core/inject": "^1.0.29",
51
+ "@next-core/loader": "^1.5.5",
52
+ "@next-core/supply": "^2.1.12",
53
+ "@next-core/types": "^1.8.1",
54
+ "@next-core/utils": "^1.6.11",
55
55
  "@ungap/event-target": "^0.2.4",
56
56
  "compare-versions": "^6.1.0",
57
57
  "history": "^4.10.1",
@@ -60,11 +60,11 @@
60
60
  "path-to-regexp": "^6.2.1"
61
61
  },
62
62
  "devDependencies": {
63
- "@microsoft/api-extractor": "^7.39.4",
63
+ "@microsoft/api-extractor": "^7.42.3",
64
64
  "@next-api-sdk/api-gateway-sdk": "^1.1.0",
65
65
  "@next-api-sdk/micro-app-sdk": "^1.2.1",
66
- "@next-core/build-next-libs": "^1.0.12",
67
- "@next-core/test-next": "^1.0.15"
66
+ "@next-core/build-next-libs": "^1.0.13",
67
+ "@next-core/test-next": "^1.0.16"
68
68
  },
69
- "gitHead": "0431d1699d2c31b4595e475e53b7e5535621960f"
69
+ "gitHead": "cfa14c9caddb4a91c446ee007e39a9811fda40f6"
70
70
  }