@next-core/runtime 1.5.1 → 1.5.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/internal/Runtime.js +20 -5
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/injected.js +13 -0
- package/dist/cjs/internal/injected.js.map +1 -0
- package/dist/esm/internal/Runtime.js +34 -5
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/injected.js +6 -0
- package/dist/esm/internal/injected.js.map +1 -0
- package/dist/types/internal/Runtime.d.ts +3 -2
- package/dist/types/internal/injected.d.ts +2 -0
- package/package.json +6 -6
- package/dist/cjs/internal/bootstrapData.js +0 -13
- package/dist/cjs/internal/bootstrapData.js.map +0 -1
- package/dist/esm/internal/bootstrapData.js +0 -6
- package/dist/esm/internal/bootstrapData.js.map +0 -1
- package/dist/types/internal/bootstrapData.d.ts +0 -2
|
@@ -27,11 +27,11 @@ var _Router = require("./Router.js");
|
|
|
27
27
|
var _i18n2 = require("./i18n.js");
|
|
28
28
|
var _Notification = require("../Notification.js");
|
|
29
29
|
var _Dialog = require("../Dialog.js");
|
|
30
|
-
var
|
|
30
|
+
var _injected = require("./injected.js");
|
|
31
31
|
let runtime;
|
|
32
32
|
|
|
33
33
|
// Allow inject bootstrap data in a runtime other than Brick Next.
|
|
34
|
-
let bootstrapData
|
|
34
|
+
let bootstrapData;
|
|
35
35
|
let router;
|
|
36
36
|
let hooks;
|
|
37
37
|
exports.hooks = hooks;
|
|
@@ -53,14 +53,27 @@ function getRuntime() {
|
|
|
53
53
|
return runtime;
|
|
54
54
|
}
|
|
55
55
|
class Runtime {
|
|
56
|
+
#initialized = false;
|
|
57
|
+
#bootstrapped = false;
|
|
56
58
|
initialize(data) {
|
|
59
|
+
if (this.#initialized) {
|
|
60
|
+
throw new Error("The runtime cannot be initialized more than once");
|
|
61
|
+
}
|
|
62
|
+
this.#initialized = true;
|
|
57
63
|
normalizeBootstrapData(data);
|
|
58
64
|
bootstrapData = data;
|
|
59
65
|
// Todo: allow configuration of notification bricks.
|
|
60
66
|
(0, _Notification.loadNotificationService)("shoelace.show-notification", this.loadBricks);
|
|
61
67
|
(0, _Dialog.loadDialogService)("shoelace.show-dialog", this.loadBricks);
|
|
62
68
|
}
|
|
63
|
-
async bootstrap() {
|
|
69
|
+
async bootstrap(data) {
|
|
70
|
+
if (data) {
|
|
71
|
+
this.initialize(data);
|
|
72
|
+
}
|
|
73
|
+
if (this.#bootstrapped) {
|
|
74
|
+
throw new Error("The runtime cannot be bootstrapped more than once");
|
|
75
|
+
}
|
|
76
|
+
this.#bootstrapped = true;
|
|
64
77
|
router = new _Router.Router(bootstrapData.storyboards);
|
|
65
78
|
await router.bootstrap();
|
|
66
79
|
}
|
|
@@ -156,11 +169,13 @@ function normalizeBootstrapData(data) {
|
|
|
156
169
|
if ((0, _general.isObject)(data.settings)) {
|
|
157
170
|
(0, _general.deepFreeze)(data.settings);
|
|
158
171
|
}
|
|
159
|
-
|
|
172
|
+
if (data.brickPackages) {
|
|
173
|
+
(0, _general.deepFreeze)(data.brickPackages);
|
|
174
|
+
}
|
|
160
175
|
}
|
|
161
176
|
function getBrickPackages() {
|
|
162
177
|
var _bootstrapData$brickP, _bootstrapData7;
|
|
163
|
-
return (_bootstrapData$brickP = (_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages) !== null && _bootstrapData$brickP !== void 0 ? _bootstrapData$brickP :
|
|
178
|
+
return (_bootstrapData$brickP = (_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages) !== null && _bootstrapData$brickP !== void 0 ? _bootstrapData$brickP : _injected.injectedBrickPackages;
|
|
164
179
|
}
|
|
165
180
|
function _internalApiLoadBricks(bricks) {
|
|
166
181
|
return (0, _loader.loadBricksImperatively)(bricks, getBrickPackages());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runtime.js","names":["_i18n","require","_loader","_general","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_i18n2","_Notification","_Dialog","_bootstrapData10","runtime","bootstrapData","injectedBootstrapData","router","hooks","exports","createRuntime","options","Error","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntime","initialize","data","normalizeBootstrapData","loadNotificationService","loadBricks","loadDialogService","bootstrap","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData","_bootstrapData$settin","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","settings","featureFlags","config","getMiscSettings","_bootstrapData2","_bootstrapData2$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData3","_bootstrapData3$setti","base_title","brand","getLaunchpadSettings","_bootstrapData4","_bootstrapData4$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","bricks","loadBricksImperatively","getBrickPackages","Array","isArray","app","ns","id","Object","entries","forEach","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","isObject","deepFreeze","brickPackages","_bootstrapData$brickP","_bootstrapData7","_internalApiLoadBricks","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData9","_bootstrapData9$story","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} 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 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 { injectedBootstrapData } from \"./bootstrapData.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData = injectedBootstrapData;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface RuntimeHooks {\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\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 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\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n initialize(data: BootstrapData) {\n normalizeBootstrapData(data);\n bootstrapData = data;\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\", this.loadBricks);\n loadDialogService(\"shoelace.show-dialog\", this.loadBricks);\n }\n\n async bootstrap() {\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 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 // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\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\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\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n data.brickPackages = deepFreeze(data.brickPackages);\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? [];\n}\n\nexport function _internalApiLoadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\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: Partial<BootstrapData>) => void;\n\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","require","_loader","_general","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_i18n2","_Notification","_Dialog","_injected","runtime","bootstrapData","router","hooks","exports","createRuntime","options","Error","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntime","initialized","bootstrapped","initialize","data","normalizeBootstrapData","loadNotificationService","loadBricks","loadDialogService","bootstrap","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData","_bootstrapData$settin","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","settings","featureFlags","config","getMiscSettings","_bootstrapData2","_bootstrapData2$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData3","_bootstrapData3$setti","base_title","brand","getLaunchpadSettings","_bootstrapData4","_bootstrapData4$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","bricks","loadBricksImperatively","getBrickPackages","Array","isArray","app","ns","id","Object","entries","forEach","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","isObject","deepFreeze","brickPackages","_bootstrapData$brickP","_bootstrapData7","injectedBrickPackages","_internalApiLoadBricks","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData9","_bootstrapData9$story","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} 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 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\";\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 RuntimeHooks {\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\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 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\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\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 // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\", this.loadBricks);\n loadDialogService(\"shoelace.show-dialog\", this.loadBricks);\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 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 // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\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\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 bootstrapData?.brickPackages ?? injectedBrickPackages;\n}\n\nexport function _internalApiLoadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\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\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,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.injectedBrickPackages = void 0;
|
|
7
|
+
// Allow inject brick packages in a runtime other than Brick Next.
|
|
8
|
+
const injectedBrickPackages =
|
|
9
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
+
// @ts-ignore
|
|
11
|
+
typeof BRICK_PACKAGES !== "undefined" ? BRICK_PACKAGES : [];
|
|
12
|
+
exports.injectedBrickPackages = injectedBrickPackages;
|
|
13
|
+
//# sourceMappingURL=injected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injected.js","names":["injectedBrickPackages","BRICK_PACKAGES","exports"],"sources":["../../../src/internal/injected.ts"],"sourcesContent":["import type { BrickPackage } from \"@next-core/types\";\n\n// Allow inject brick packages in a runtime other than Brick Next.\nexport const injectedBrickPackages: BrickPackage[] =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof BRICK_PACKAGES !== \"undefined\" ? BRICK_PACKAGES : [];\n"],"mappings":";;;;;;AAEA;AACO,MAAMA,qBAAqC;AAChD;AACA;AACA,OAAOC,cAAc,KAAK,WAAW,GAAGA,cAAc,GAAG,EAAE;AAACC,OAAA,CAAAF,qBAAA,GAAAA,qBAAA"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
|
+
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
4
|
+
import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet";
|
|
5
|
+
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
|
|
3
6
|
import { i18n, initializeI18n } from "@next-core/i18n";
|
|
4
7
|
import { loadBricksImperatively } from "@next-core/loader";
|
|
5
8
|
import { deepFreeze, isObject } from "@next-core/utils/general";
|
|
@@ -11,11 +14,11 @@ import { Router } from "./Router.js";
|
|
|
11
14
|
import { NS, locales } from "./i18n.js";
|
|
12
15
|
import { loadNotificationService } from "../Notification.js";
|
|
13
16
|
import { loadDialogService } from "../Dialog.js";
|
|
14
|
-
import {
|
|
17
|
+
import { injectedBrickPackages } from "./injected.js";
|
|
15
18
|
var runtime;
|
|
16
19
|
|
|
17
20
|
// Allow inject bootstrap data in a runtime other than Brick Next.
|
|
18
|
-
var bootstrapData
|
|
21
|
+
var bootstrapData;
|
|
19
22
|
var router;
|
|
20
23
|
export var hooks;
|
|
21
24
|
export function createRuntime(options) {
|
|
@@ -35,16 +38,40 @@ export function createRuntime(options) {
|
|
|
35
38
|
export function getRuntime() {
|
|
36
39
|
return runtime;
|
|
37
40
|
}
|
|
41
|
+
var _initialized = /*#__PURE__*/new WeakMap();
|
|
42
|
+
var _bootstrapped = /*#__PURE__*/new WeakMap();
|
|
38
43
|
export class Runtime {
|
|
44
|
+
constructor() {
|
|
45
|
+
_classPrivateFieldInitSpec(this, _initialized, {
|
|
46
|
+
writable: true,
|
|
47
|
+
value: false
|
|
48
|
+
});
|
|
49
|
+
_classPrivateFieldInitSpec(this, _bootstrapped, {
|
|
50
|
+
writable: true,
|
|
51
|
+
value: false
|
|
52
|
+
});
|
|
53
|
+
}
|
|
39
54
|
initialize(data) {
|
|
55
|
+
if (_classPrivateFieldGet(this, _initialized)) {
|
|
56
|
+
throw new Error("The runtime cannot be initialized more than once");
|
|
57
|
+
}
|
|
58
|
+
_classPrivateFieldSet(this, _initialized, true);
|
|
40
59
|
normalizeBootstrapData(data);
|
|
41
60
|
bootstrapData = data;
|
|
42
61
|
// Todo: allow configuration of notification bricks.
|
|
43
62
|
loadNotificationService("shoelace.show-notification", this.loadBricks);
|
|
44
63
|
loadDialogService("shoelace.show-dialog", this.loadBricks);
|
|
45
64
|
}
|
|
46
|
-
bootstrap() {
|
|
65
|
+
bootstrap(data) {
|
|
66
|
+
var _this = this;
|
|
47
67
|
return _asyncToGenerator(function* () {
|
|
68
|
+
if (data) {
|
|
69
|
+
_this.initialize(data);
|
|
70
|
+
}
|
|
71
|
+
if (_classPrivateFieldGet(_this, _bootstrapped)) {
|
|
72
|
+
throw new Error("The runtime cannot be bootstrapped more than once");
|
|
73
|
+
}
|
|
74
|
+
_classPrivateFieldSet(_this, _bootstrapped, true);
|
|
48
75
|
router = new Router(bootstrapData.storyboards);
|
|
49
76
|
yield router.bootstrap();
|
|
50
77
|
})();
|
|
@@ -133,11 +160,13 @@ function normalizeBootstrapData(data) {
|
|
|
133
160
|
if (isObject(data.settings)) {
|
|
134
161
|
deepFreeze(data.settings);
|
|
135
162
|
}
|
|
136
|
-
|
|
163
|
+
if (data.brickPackages) {
|
|
164
|
+
deepFreeze(data.brickPackages);
|
|
165
|
+
}
|
|
137
166
|
}
|
|
138
167
|
export function getBrickPackages() {
|
|
139
168
|
var _bootstrapData$brickP, _bootstrapData7;
|
|
140
|
-
return (_bootstrapData$brickP = (_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages) !== null && _bootstrapData$brickP !== void 0 ? _bootstrapData$brickP :
|
|
169
|
+
return (_bootstrapData$brickP = (_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages) !== null && _bootstrapData$brickP !== void 0 ? _bootstrapData$brickP : injectedBrickPackages;
|
|
141
170
|
}
|
|
142
171
|
export function _internalApiLoadBricks(bricks) {
|
|
143
172
|
return loadBricksImperatively(bricks, getBrickPackages());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Runtime.js","names":["i18n","initializeI18n","loadBricksImperatively","deepFreeze","isObject","moment","createHistory","matchStoryboard","Router","NS","locales","loadNotificationService","loadDialogService","injectedBootstrapData","runtime","bootstrapData","router","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntime","initialize","data","normalizeBootstrapData","loadBricks","bootstrap","_asyncToGenerator","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData","_bootstrapData$settin","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","_objectSpread","settings","featureFlags","config","getMiscSettings","_bootstrapData2","_bootstrapData2$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData3","_bootstrapData3$setti","base_title","brand","getLaunchpadSettings","_bootstrapData4","_bootstrapData4$setti","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","Array","isArray","_loop","app","ns","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","brickPackages","_bootstrapData$brickP","_bootstrapData7","_internalApiLoadBricks","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData9","_bootstrapData9$story","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} 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 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 { injectedBootstrapData } from \"./bootstrapData.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData = injectedBootstrapData;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface RuntimeHooks {\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\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 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\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n initialize(data: BootstrapData) {\n normalizeBootstrapData(data);\n bootstrapData = data;\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\", this.loadBricks);\n loadDialogService(\"shoelace.show-dialog\", this.loadBricks);\n }\n\n async bootstrap() {\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 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 // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\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\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\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n data.brickPackages = deepFreeze(data.brickPackages);\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? [];\n}\n\nexport function _internalApiLoadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\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: Partial<BootstrapData>) => void;\n\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","runtime","bootstrapData","router","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntime","_initialized","WeakMap","_bootstrapped","constructor","_classPrivateFieldInitSpec","writable","value","initialize","data","_classPrivateFieldGet","_classPrivateFieldSet","normalizeBootstrapData","loadBricks","bootstrap","_this","_asyncToGenerator","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData","_bootstrapData$settin","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","_objectSpread","settings","featureFlags","config","getMiscSettings","_bootstrapData2","_bootstrapData2$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData3","_bootstrapData3$setti","base_title","brand","getLaunchpadSettings","_bootstrapData4","_bootstrapData4$setti","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","Array","isArray","_loop","app","ns","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","brickPackages","_bootstrapData$brickP","_bootstrapData7","_internalApiLoadBricks","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData9","_bootstrapData9$story","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} 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 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\";\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 RuntimeHooks {\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\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 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\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\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 // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\", this.loadBricks);\n loadDialogService(\"shoelace.show-dialog\", this.loadBricks);\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 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 // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\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\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 bootstrapData?.brickPackages ?? injectedBrickPackages;\n}\n\nexport function _internalApiLoadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\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\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":";;;;;AAMA,SAASA,IAAI,EAAEC,cAAc,QAAQ,iBAAiB;AACtD,SAASC,sBAAsB,QAAQ,mBAAmB;AAC1D,SAASC,UAAU,EAAEC,QAAQ,QAAQ,0BAA0B;AAC/D,OAAOC,MAAM,MAAM,QAAQ;AAC3B,OAAO,wBAAwB;AAC/B,SAASC,aAAa,QAAQ,eAAe;AAC7C,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,MAAM,QAAQ,aAAa;AACpC,SAASC,EAAE,EAAEC,OAAO,QAAQ,WAAW;AACvC,SAASC,uBAAuB,QAAQ,oBAAoB;AAC5D,SAASC,iBAAiB,QAAQ,cAAc;AAChD,SAASC,qBAAqB,QAAQ,eAAe;AAErD,IAAIC,OAAgB;;AAEpB;AACA,IAAIC,aAAwC;AAC5C,IAAIC,MAA0B;AAU9B,OAAO,IAAIC,KAA+B;AAE1C,OAAO,SAASC,aAAaA,CAACC,OAAwB,EAAE;EACtD,IAAIL,OAAO,EAAE;IACX,MAAM,IAAIM,KAAK,CAAC,iCAAiC,CAAC;EACpD;EACAH,KAAK,GAAGE,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEF,KAAK;EACtBhB,cAAc,CAACQ,EAAE,EAAEC,OAAO,CAAC;EAC3BL,MAAM,CAACgB,MAAM,CAACrB,IAAI,CAACsB,QAAQ,CAAC;EAC5BtB,IAAI,CAACuB,EAAE,CAAC,iBAAiB,EAAE,MAAM;IAC/BlB,MAAM,CAACgB,MAAM,CAACrB,IAAI,CAACsB,QAAQ,CAAC;EAC9B,CAAC,CAAC;EACFhB,aAAa,EAAE;EACfQ,OAAO,GAAG,IAAIU,OAAO,EAAE;EACvB,OAAOV,OAAO;AAChB;AAEA,OAAO,SAASW,UAAUA,CAAA,EAAG;EAC3B,OAAOX,OAAO;AAChB;AAAC,IAAAY,YAAA,oBAAAC,OAAA;AAAA,IAAAC,aAAA,oBAAAD,OAAA;AAED,OAAO,MAAMH,OAAO,CAAC;EAAAK,YAAA;IAAAC,0BAAA,OAAAJ,YAAA;MAAAK,QAAA;MAAAC,KAAA,EACJ;IAAK;IAAAF,0BAAA,OAAAF,aAAA;MAAAG,QAAA;MAAAC,KAAA,EACJ;IAAK;EAAA;EAErBC,UAAUA,CAACC,IAAmB,EAAE;IAC9B,IAAAC,qBAAA,CAAI,IAAI,EAAAT,YAAA,GAAe;MACrB,MAAM,IAAIN,KAAK,CAAC,kDAAkD,CAAC;IACrE;IACAgB,qBAAA,KAAI,EAAAV,YAAA,EAAgB,IAAI;IACxBW,sBAAsB,CAACH,IAAI,CAAC;IAC5BnB,aAAa,GAAGmB,IAAI;IACpB;IACAvB,uBAAuB,CAAC,4BAA4B,EAAE,IAAI,CAAC2B,UAAU,CAAC;IACtE1B,iBAAiB,CAAC,sBAAsB,EAAE,IAAI,CAAC0B,UAAU,CAAC;EAC5D;EAEMC,SAASA,CAACL,IAAoB,EAAE;IAAA,IAAAM,KAAA;IAAA,OAAAC,iBAAA;MACpC,IAAIP,IAAI,EAAE;QACRM,KAAI,CAACP,UAAU,CAACC,IAAI,CAAC;MACvB;MACA,IAAAC,qBAAA,CAAIK,KAAI,EAAAZ,aAAA,GAAgB;QACtB,MAAM,IAAIR,KAAK,CAAC,mDAAmD,CAAC;MACtE;MACAgB,qBAAA,CAAAI,KAAI,EAAAZ,aAAA,EAAiB,IAAI;MACzBZ,MAAM,GAAG,IAAIR,MAAM,CAACO,aAAa,CAAE2B,WAAW,CAAE;MAChD,MAAM1B,MAAM,CAACuB,SAAS,EAAE;IAAC;EAC3B;EAEAI,aAAaA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,OAAA;IACd,QAAAD,qBAAA,IAAAC,OAAA,GAAO7B,MAAM,cAAA6B,OAAA,uBAANA,OAAA,CAAQF,aAAa,EAAE,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EACtC;EAEAE,aAAaA,CAAA,EAAG;IAAA,IAAAC,QAAA;IACd,QAAAA,QAAA,GAAO/B,MAAM,cAAA+B,QAAA,uBAANA,QAAA,CAAQJ,aAAa,EAAE,CAACK,UAAU;EAC3C;EAEAC,eAAeA,CAAA,EAAiB;IAAA,IAAAC,cAAA,EAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAC9B,OAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,MAAAN,cAAA,GACKnC,aAAa,cAAAmC,cAAA,wBAAAC,qBAAA,GAAbD,cAAA,CAAeO,QAAQ,cAAAN,qBAAA,uBAAvBA,qBAAA,CAAyBO,YAAY,IAAAN,QAAA,GAEtCpC,MAAM,cAAAoC,QAAA,wBAAAC,qBAAA,GAAND,QAAA,CAAQT,aAAa,EAAE,CAACK,UAAU,cAAAK,qBAAA,wBAAAC,sBAAA,GAAlCD,qBAAA,CAAoCM,MAAM,cAAAL,sBAAA,wBAAAC,sBAAA,GAA1CD,sBAAA,CACIG,QAAQ,cAAAF,sBAAA,uBAFXA,sBAAA,CAGAG,YAAY;MACf,0BAA0B,EAAE;IAAI;EAEpC;EAEAE,eAAeA,CAAA,EAAG;IAAA,IAAAC,eAAA,EAAAC,qBAAA,EAAAC,QAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAChB,OAAAV,aAAA,CAAAA,aAAA,MAAAK,eAAA,GACK9C,aAAa,cAAA8C,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAeJ,QAAQ,cAAAK,qBAAA,uBAAvBA,qBAAA,CAAyBK,IAAI,IAAAJ,QAAA,GAE9B/C,MAAM,cAAA+C,QAAA,wBAAAC,qBAAA,GAAND,QAAA,CAAQpB,aAAa,EAAE,CAACK,UAAU,cAAAgB,qBAAA,wBAAAC,sBAAA,GAAlCD,qBAAA,CAAoCL,MAAM,cAAAM,sBAAA,wBAAAC,sBAAA,GAA1CD,sBAAA,CACIR,QAAQ,cAAAS,sBAAA,uBAFXA,sBAAA,CAGAC,IAAI;EAEX;EAEAC,gBAAgBA,CAAA,EAA2B;IAAA,IAAAC,eAAA,EAAAC,qBAAA;IACzC,OAAAd,aAAA;MACEe,UAAU,EAAE;IAAa,IAAAF,eAAA,GACrBtD,aAAa,cAAAsD,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAeZ,QAAQ,cAAAa,qBAAA,uBAAvBA,qBAAA,CAAyBE,KAAK;EAKtC;EAEAC,oBAAoBA,CAAA,EAAG;IAAA,IAAAC,eAAA,EAAAC,qBAAA;IACrB,OAAAnB,aAAA;MACEoB,OAAO,EAAE,CAAC;MACVC,IAAI,EAAE;IAAC,IAAAH,eAAA,GACJ3D,aAAa,cAAA2D,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAejB,QAAQ,cAAAkB,qBAAA,uBAAvBA,qBAAA,CAAyBG,SAAS;EAEzC;EAEAC,WAAWA,CAAA,EAAc;IAAA,IAAAC,qBAAA,EAAAC,eAAA;IACvB,QAAAD,qBAAA,IAAAC,eAAA,GAAOlE,aAAa,cAAAkE,eAAA,uBAAbA,eAAA,CAAeC,QAAQ,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EACtC;EAEAG,mBAAmBA,CAAA,EAAc;IAAA,IAAAC,qBAAA,EAAAC,eAAA;IAC/B,QAAAD,qBAAA,IAAAC,eAAA,GAAOtE,aAAa,cAAAsE,eAAA,uBAAbA,eAAA,CAAeC,QAAQ,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EACtC;EAEAG,qBAAqBA,CAACC,IAAa,EAAQ;IACzCC,QAAQ,CAACC,IAAI,CAACC,SAAS,CAACC,MAAM,CAAC,gBAAgB,EAAEJ,IAAI,CAAC;EACxD;EAEAK,cAAcA,CAACC,SAAiB,EAAQ;IACtC,IAAMC,SAAS,GAAG,IAAI,CAAC3B,gBAAgB,EAAE,CAACG,UAAU;IACpDkB,QAAQ,CAACO,KAAK,GAAGF,SAAS,MAAAG,MAAA,CAAMH,SAAS,SAAAG,MAAA,CAAMF,SAAS,IAAKA,SAAS;EACxE;EAEAG,YAAYA,CAAA,EAAG;IAAA,IAAAC,QAAA;IACb,QAAAA,QAAA,GAAOnF,MAAM,cAAAmF,QAAA,uBAANA,QAAA,CAAQD,YAAY,EAAE;EAC/B;EAEA5D,UAAUA,CAAC8D,MAA8B,EAAE;IACzC,OAAOlG,sBAAsB,CAACkG,MAAM,EAAEC,gBAAgB,EAAE,CAAC;EAC3D;AACF;AAEA,SAAShE,sBAAsBA,CAACH,IAAmB,EAAE;EACnD,IAAIoE,KAAK,CAACC,OAAO,CAACrE,IAAI,CAACQ,WAAW,CAAC,EAAE;IAAA,IAAA8D,KAAA,YAAAA,CAAA,EACK;MACtC,IAAIC,GAAG,CAAC/F,OAAO,EAAE;QACf;QACA,IAAMgG,EAAE,UAAAT,MAAA,CAAUQ,GAAG,CAACE,EAAE,CAAE;QAC1B;QACAC,MAAM,CAACC,OAAO,CAACJ,GAAG,CAAC/F,OAAO,CAAC,CAACoG,OAAO,CAACC,IAAA,IAAuB;UAAA,IAAtB,CAACC,IAAI,EAAEC,SAAS,CAAC,GAAAF,IAAA;UACpD/G,IAAI,CAACkH,iBAAiB,CAACF,IAAI,EAAEN,EAAE,EAAEO,SAAS,CAAC;QAC7C,CAAC,CAAC;QACF;QACAR,GAAG,CAACU,UAAU,GAAGnH,IAAI,CAACoH,SAAS,CAAC,IAAI,EAAEV,EAAE,CAAC,CAAC,MAAM,EAAED,GAAG,CAACY,IAAI,CAAW;QACrE;QACAT,MAAM,CAACU,IAAI,CAACb,GAAG,CAAC/F,OAAO,CAAC,CAACoG,OAAO,CAAEE,IAAI,IAAK;UACzChH,IAAI,CAACuH,oBAAoB,CAACP,IAAI,EAAEN,EAAE,CAAC;QACrC,CAAC,CAAC;MACJ,CAAC,MAAM;QACLD,GAAG,CAACU,UAAU,GAAGV,GAAG,CAACY,IAAI;MAC3B;IACF,CAAC;IAjBD,KAAK,IAAM;MAAEZ;IAAI,CAAC,IAAIvE,IAAI,CAACQ,WAAW;MAAA8D,KAAA;IAAA;EAkBxC;EACA,IAAIpG,QAAQ,CAAC8B,IAAI,CAACuB,QAAQ,CAAC,EAAE;IAC3BtD,UAAU,CAAC+B,IAAI,CAACuB,QAAQ,CAAC;EAC3B;EACA,IAAIvB,IAAI,CAACsF,aAAa,EAAE;IACtBrH,UAAU,CAAC+B,IAAI,CAACsF,aAAa,CAAC;EAChC;AACF;AAEA,OAAO,SAASnB,gBAAgBA,CAAA,EAAG;EAAA,IAAAoB,qBAAA,EAAAC,eAAA;EACjC,QAAAD,qBAAA,IAAAC,eAAA,GAAO3G,aAAa,cAAA2G,eAAA,uBAAbA,eAAA,CAAeF,aAAa,cAAAC,qBAAA,cAAAA,qBAAA,GAAI5G,qBAAqB;AAC9D;AAEA,OAAO,SAAS8G,sBAAsBA,CAACvB,MAA8B,EAAE;EACrE,OAAOlG,sBAAsB,CAACkG,MAAM,EAAEC,gBAAgB,EAAE,CAAC;AAC3D;AAEA,OAAO,SAASuB,uBAAuBA,CAAA,EAAuB;EAAA,IAAAC,QAAA;EAC5D,QAAAA,QAAA,GAAO7G,MAAM,cAAA6G,QAAA,uBAANA,QAAA,CAAQC,WAAW,EAAE;AAC9B;AAEA,OAAO,SAASC,2BAA2BA,CACzCC,QAAgB,EACe;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EAC/B,OAAO3H,eAAe,EAAA0H,qBAAA,IAAAC,eAAA,GAACnH,aAAa,cAAAmH,eAAA,uBAAbA,eAAA,CAAexF,WAAW,cAAAuF,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAAED,QAAQ,CAAC;AACpE;AAEA,OAAO,SAASG,6BAA6BA,CAAA,EAAG;EAAA,IAAAC,QAAA;EAC9C,QAAAA,QAAA,GAAOpH,MAAM,cAAAoH,QAAA,uBAANA,QAAA,CAAQC,iBAAiB,EAAE;AACpC;AAEA,OAAO,SAASC,wCAAwCA,CAACC,KAAa,EAAE;EAAA,IAAAC,eAAA,EAAAC,qBAAA;EACtE,QAAAD,eAAA,GAAOzH,aAAa,cAAAyH,eAAA,wBAAAC,qBAAA,GAAbD,eAAA,CAAe9F,WAAW,cAAA+F,qBAAA,uBAA1BA,qBAAA,CAA4BC,IAAI,CACpCC,UAAU,IAAKA,UAAU,CAAClC,GAAG,CAACE,EAAE,KAAK4B,KAAK,CAC5C;AACH;AAEA,OAAO,SAASK,iCAAiCA,CAACL,KAAa,EAAE;EAAA,IAAAM,qBAAA;EAC/D,QAAAA,qBAAA,GAAOP,wCAAwC,CAACC,KAAK,CAAC,cAAAM,qBAAA,uBAA/CA,qBAAA,CAAiDpC,GAAG;AAC7D;AAEA,OAAO,IAAIqC,2BAA0D;AAErE,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;EACnCH,2BAA2B,GAAI5G,IAAI,IAAK;IACtCnB,aAAa,GAAGmB,IAAqB;EACvC,CAAC;AACH"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Allow inject brick packages in a runtime other than Brick Next.
|
|
2
|
+
export var injectedBrickPackages =
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
+
// @ts-ignore
|
|
5
|
+
typeof BRICK_PACKAGES !== "undefined" ? BRICK_PACKAGES : [];
|
|
6
|
+
//# sourceMappingURL=injected.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"injected.js","names":["injectedBrickPackages","BRICK_PACKAGES"],"sources":["../../../src/internal/injected.ts"],"sourcesContent":["import type { BrickPackage } from \"@next-core/types\";\n\n// Allow inject brick packages in a runtime other than Brick Next.\nexport const injectedBrickPackages: BrickPackage[] =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof BRICK_PACKAGES !== \"undefined\" ? BRICK_PACKAGES : [];\n"],"mappings":"AAEA;AACA,OAAO,IAAMA,qBAAqC;AAChD;AACA;AACA,OAAOC,cAAc,KAAK,WAAW,GAAGA,cAAc,GAAG,EAAE"}
|
|
@@ -10,8 +10,9 @@ export declare let hooks: RuntimeHooks | undefined;
|
|
|
10
10
|
export declare function createRuntime(options?: RuntimeOptions): Runtime;
|
|
11
11
|
export declare function getRuntime(): Runtime;
|
|
12
12
|
export declare class Runtime {
|
|
13
|
+
#private;
|
|
13
14
|
initialize(data: BootstrapData): void;
|
|
14
|
-
bootstrap(): Promise<void>;
|
|
15
|
+
bootstrap(data?: BootstrapData): Promise<void>;
|
|
15
16
|
getRecentApps(): {};
|
|
16
17
|
getCurrentApp(): import("@next-core/types").MicroApp | undefined;
|
|
17
18
|
getFeatureFlags(): FeatureFlags;
|
|
@@ -39,4 +40,4 @@ export declare function _internalApiMatchStoryboard(pathname: string): RuntimeSt
|
|
|
39
40
|
export declare function _internalApiGetRuntimeContext(): import("./interfaces.js").RuntimeContext | undefined;
|
|
40
41
|
export declare function _internalApiGetStoryboardInBootstrapData(appId: string): import("@next-core/types").Storyboard | undefined;
|
|
41
42
|
export declare function _internalApiGetAppInBootstrapData(appId: string): import("@next-core/types").MicroApp | undefined;
|
|
42
|
-
export declare let _test_only_setBootstrapData: (data:
|
|
43
|
+
export declare let _test_only_setBootstrapData: (data: BootstrapData) => void;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/runtime",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.3",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/master/packages/runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -49,12 +49,12 @@
|
|
|
49
49
|
"@next-api-sdk/micro-app-standalone-sdk": "^1.1.0",
|
|
50
50
|
"@next-core/cook": "^2.0.4",
|
|
51
51
|
"@next-core/http": "^1.0.4",
|
|
52
|
-
"@next-core/i18n": "^1.0.
|
|
53
|
-
"@next-core/inject": "^1.0.
|
|
52
|
+
"@next-core/i18n": "^1.0.10",
|
|
53
|
+
"@next-core/inject": "^1.0.8",
|
|
54
54
|
"@next-core/loader": "^1.3.0",
|
|
55
55
|
"@next-core/supply": "^2.0.4",
|
|
56
|
-
"@next-core/types": "^1.1.
|
|
57
|
-
"@next-core/utils": "^1.2.
|
|
56
|
+
"@next-core/types": "^1.1.2",
|
|
57
|
+
"@next-core/utils": "^1.2.5",
|
|
58
58
|
"@ungap/event-target": "^0.2.3",
|
|
59
59
|
"compare-versions": "^5.0.3",
|
|
60
60
|
"history": "^4.10.1",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"@next-core/build-next-libs": "^1.0.3",
|
|
68
68
|
"@next-core/test-next": "^1.0.4"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "fde5b07768bfcebb0fddfb4e0cf887c894fdb017"
|
|
71
71
|
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.injectedBootstrapData = void 0;
|
|
7
|
-
// Allow inject bootstrap data in a runtime other than Brick Next.
|
|
8
|
-
const injectedBootstrapData =
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
10
|
-
// @ts-ignore
|
|
11
|
-
typeof BOOTSTRAP_DATA !== "undefined" ? BOOTSTRAP_DATA : undefined;
|
|
12
|
-
exports.injectedBootstrapData = injectedBootstrapData;
|
|
13
|
-
//# sourceMappingURL=bootstrapData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapData.js","names":["injectedBootstrapData","BOOTSTRAP_DATA","undefined","exports"],"sources":["../../../src/internal/bootstrapData.ts"],"sourcesContent":["import type { BootstrapData } from \"@next-core/types\";\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nexport const injectedBootstrapData: BootstrapData | undefined =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof BOOTSTRAP_DATA !== \"undefined\" ? BOOTSTRAP_DATA : undefined;\n"],"mappings":";;;;;;AAEA;AACO,MAAMA,qBAAgD;AAC3D;AACA;AACA,OAAOC,cAAc,KAAK,WAAW,GAAGA,cAAc,GAAGC,SAAS;AAACC,OAAA,CAAAH,qBAAA,GAAAA,qBAAA"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
// Allow inject bootstrap data in a runtime other than Brick Next.
|
|
2
|
-
export var injectedBootstrapData =
|
|
3
|
-
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
4
|
-
// @ts-ignore
|
|
5
|
-
typeof BOOTSTRAP_DATA !== "undefined" ? BOOTSTRAP_DATA : undefined;
|
|
6
|
-
//# sourceMappingURL=bootstrapData.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bootstrapData.js","names":["injectedBootstrapData","BOOTSTRAP_DATA","undefined"],"sources":["../../../src/internal/bootstrapData.ts"],"sourcesContent":["import type { BootstrapData } from \"@next-core/types\";\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nexport const injectedBootstrapData: BootstrapData | undefined =\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n typeof BOOTSTRAP_DATA !== \"undefined\" ? BOOTSTRAP_DATA : undefined;\n"],"mappings":"AAEA;AACA,OAAO,IAAMA,qBAAgD;AAC3D;AACA;AACA,OAAOC,cAAc,KAAK,WAAW,GAAGA,cAAc,GAAGC,SAAS"}
|