@next-core/runtime 1.54.9 → 1.54.11
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/CustomTemplates.js +1 -1
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/createRoot.js +2 -16
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/internal/ErrorNode.js +148 -0
- package/dist/cjs/internal/ErrorNode.js.map +1 -0
- package/dist/cjs/internal/Renderer.js +3 -17
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +4 -0
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js +5 -26
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +17 -28
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/i18n.js +23 -2
- package/dist/cjs/internal/i18n.js.map +1 -1
- package/dist/esm/CustomTemplates.js +1 -1
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/createRoot.js +2 -16
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/internal/ErrorNode.js +140 -0
- package/dist/esm/internal/ErrorNode.js.map +1 -0
- package/dist/esm/internal/Renderer.js +3 -17
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +4 -0
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +6 -27
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +9 -13
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/i18n.js +23 -2
- package/dist/esm/internal/i18n.js.map +1 -1
- package/dist/types/internal/ErrorNode.d.ts +8 -0
- package/dist/types/internal/RendererContext.d.ts +8 -4
- package/dist/types/internal/Runtime.d.ts +5 -0
- package/dist/types/internal/i18n.d.ts +8 -1
- package/package.json +3 -3
|
@@ -19,7 +19,7 @@ import { applyMode, applyTheme, getLocalAppsTheme, setMode, setTheme } from "../
|
|
|
19
19
|
import { _internalApiGetAppInBootstrapData, getRuntime, hooks } from "./Runtime.js";
|
|
20
20
|
import { getPageInfo } from "../getPageInfo.js";
|
|
21
21
|
import { resetAllComputedMarks } from "./compute/markAsComputed.js";
|
|
22
|
-
import { handleHttpError,
|
|
22
|
+
import { handleHttpError, isUnauthenticatedError } from "../handleHttpError.js";
|
|
23
23
|
import { abortPendingRequest, initAbortController } from "./abortController.js";
|
|
24
24
|
import { setLoginStateCookie } from "../setLoginStateCookie.js";
|
|
25
25
|
import { registerCustomTemplates } from "./registerCustomTemplates.js";
|
|
@@ -31,6 +31,7 @@ import { setUIVersion } from "../setUIVersion.js";
|
|
|
31
31
|
import { setAppVariable } from "../setAppVariable.js";
|
|
32
32
|
import { setWatermark } from "../setWatermark.js";
|
|
33
33
|
import { clearMatchedRoutes } from "./routeMatchedMap.js";
|
|
34
|
+
import { ErrorNode, PageNotFoundError } from "./ErrorNode.js";
|
|
34
35
|
var _storyboards = /*#__PURE__*/new WeakMap();
|
|
35
36
|
var _rendering = /*#__PURE__*/new WeakMap();
|
|
36
37
|
var _nextRender = /*#__PURE__*/new WeakMap();
|
|
@@ -328,7 +329,7 @@ async function _render(location) {
|
|
|
328
329
|
detail: _classPrivateFieldGet(_navConfig, this)
|
|
329
330
|
}));
|
|
330
331
|
},
|
|
331
|
-
catch: (error, returnNode) => {
|
|
332
|
+
catch: async (error, returnNode) => {
|
|
332
333
|
if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {
|
|
333
334
|
redirectToLogin();
|
|
334
335
|
return;
|
|
@@ -346,21 +347,7 @@ async function _render(location) {
|
|
|
346
347
|
return {
|
|
347
348
|
failed: true,
|
|
348
349
|
output: {
|
|
349
|
-
node:
|
|
350
|
-
tag: RenderTag.BRICK,
|
|
351
|
-
type: "div",
|
|
352
|
-
properties: {
|
|
353
|
-
textContent: httpErrorToString(error),
|
|
354
|
-
dataset: {
|
|
355
|
-
errorBoundary: ""
|
|
356
|
-
},
|
|
357
|
-
style: {
|
|
358
|
-
color: "var(--color-error)"
|
|
359
|
-
}
|
|
360
|
-
},
|
|
361
|
-
runtimeContext: null,
|
|
362
|
-
return: returnNode
|
|
363
|
-
},
|
|
350
|
+
node: await ErrorNode(error, returnNode, true),
|
|
364
351
|
blockingList: []
|
|
365
352
|
}
|
|
366
353
|
};
|
|
@@ -410,7 +397,7 @@ async function _render(location) {
|
|
|
410
397
|
} catch (error) {
|
|
411
398
|
// eslint-disable-next-line no-console
|
|
412
399
|
console.error("Router failed:", error);
|
|
413
|
-
const result = routeHelper.catch(error, renderRoot);
|
|
400
|
+
const result = await routeHelper.catch(error, renderRoot);
|
|
414
401
|
if (!result) {
|
|
415
402
|
return;
|
|
416
403
|
}
|
|
@@ -467,15 +454,7 @@ async function _render(location) {
|
|
|
467
454
|
}
|
|
468
455
|
applyTheme();
|
|
469
456
|
applyMode();
|
|
470
|
-
const node =
|
|
471
|
-
tag: RenderTag.BRICK,
|
|
472
|
-
type: "div",
|
|
473
|
-
properties: {
|
|
474
|
-
textContent: "Page not found"
|
|
475
|
-
},
|
|
476
|
-
runtimeContext: null,
|
|
477
|
-
return: renderRoot
|
|
478
|
-
};
|
|
457
|
+
const node = await ErrorNode(new PageNotFoundError(currentApp ? "page not found" : "app not found"), renderRoot, true);
|
|
479
458
|
renderRoot.child = node;
|
|
480
459
|
mountTree(renderRoot);
|
|
481
460
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","names":["locationsAreEqual","HttpAbortError","clearExpressionASTCache","clearFunctionASTCache","uniqueId","getHistory","getDataStores","postAsyncRender","renderRoutes","DataStore","clearResolveCache","mountTree","unmountTree","isOutsideApp","matchStoryboard","registerStoryboardFunctions","RendererContext","applyMode","applyTheme","getLocalAppsTheme","setMode","setTheme","_internalApiGetAppInBootstrapData","getRuntime","hooks","getPageInfo","resetAllComputedMarks","handleHttpError","httpErrorToString","isUnauthenticatedError","abortPendingRequest","initAbortController","setLoginStateCookie","registerCustomTemplates","fulfilStoryboard","RenderTag","insertPreviewRoutes","devtoolsHookEmit","setUIVersion","setAppVariable","setWatermark","clearMatchedRoutes","_storyboards","WeakMap","_rendering","_nextRender","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_Router_brand","WeakSet","Router","constructor","storyboards","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Set","_classPrivateFieldSet","history","window","addEventListener","event","message","_assertClassBrand","_getBlockMessageBeforePageLave","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","nextPrevLocation","listen","prevLocation","_queuedRender","catch","detail","_classPrivateFieldGet2","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect","to","state","from","_this$redirectCount","_this$redirectCount2","pathname","search","hash","process","env","NODE_ENV","console","error","Error","replace","next","_preRender","nextRender","undefined","_ref","_prevLocation$state","_location$state","_location$state2","_classPrivateFieldGet4","ignoreRendering","omittedLocationProps","key","notify","noIncremental","_classPrivateFieldGet3","didPerformIncrementalRender","dispatchPageLeave","storyboard","reload","_render","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet5","_storyboard$app","renderId","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","currentAppId","id","BOOTSTRAP_UNION_FILE","appId","version","currentVersion","appChanged","flags","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","theme","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","NO_AUTH_GUARD","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","dataset","errorBoundary","style","color","runtimeContext","return","blockingList","rendererContext","query","URLSearchParams","sys","auth","getAuth","settings","brand","getBrandSettings","ctxStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","meta","functions","collectContract","contracts","stores","rootMenuRequestNode","routes","child","menuRequestNode","setInitialMenuRequestNode","getMenuRequests","result","route","dispatchBeforePageLoad","uiVersion","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","pageTitle","title","isLoggedIn","navConfig","breadcrumb","menuConf","overwrite","items","push"],"sources":["../../../src/internal/Router.ts"],"sourcesContent":["import { Action, locationsAreEqual } from \"history\";\nimport type {\n BreadcrumbItemConf,\n MicroApp,\n StaticMenuConf,\n Storyboard,\n} from \"@next-core/types\";\nimport { HttpAbortError } from \"@next-core/http\";\nimport {\n clearExpressionASTCache,\n clearFunctionASTCache,\n} from \"@next-core/cook\";\nimport { uniqueId } from \"lodash\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport {\n RenderOutput,\n getDataStores,\n postAsyncRender,\n renderRoutes,\n} from \"./Renderer.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { clearResolveCache } from \"./data/resolveData.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { isOutsideApp, matchStoryboard } from \"./matchStoryboard.js\";\nimport { registerStoryboardFunctions } from \"./compute/StoryboardFunctions.js\";\nimport { RendererContext, RouteHelper } from \"./RendererContext.js\";\nimport {\n applyMode,\n applyTheme,\n getLocalAppsTheme,\n setMode,\n setTheme,\n} from \"../themeAndMode.js\";\nimport {\n _internalApiGetAppInBootstrapData,\n getRuntime,\n hooks,\n} from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport type {\n MenuRequestNode,\n RenderBrick,\n RenderRoot,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport {\n handleHttpError,\n httpErrorToString,\n isUnauthenticatedError,\n} from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\nimport { clearMatchedRoutes } from \"./routeMatchedMap.js\";\n\ntype RenderTask = InitialRenderTask | SubsequentRenderTask;\n\ninterface InitialRenderTask {\n location: NextLocation;\n prevLocation?: undefined;\n action?: undefined;\n}\n\ninterface SubsequentRenderTask {\n location: NextLocation;\n prevLocation: NextLocation;\n action: Action;\n}\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #nextRender?: RenderTask;\n #runtimeContext?: RuntimeContext;\n #rendererContext?: RendererContext;\n #rendererContextTrashCan = new Set<RendererContext | undefined>();\n #redirectCount = 0;\n #renderId?: string;\n #currentApp?: MicroApp;\n #previousApp?: MicroApp;\n #navConfig?: {\n breadcrumb?: BreadcrumbItemConf[];\n };\n\n constructor(storyboards: Storyboard[]) {\n this.#storyboards = storyboards;\n\n const history = getHistory();\n window.addEventListener(\"beforeunload\", (event) => {\n const message = this.#getBlockMessageBeforePageLave({});\n // See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload\n if (message) {\n // Cancel the event\n // If you prevent default behavior in Mozilla Firefox prompt will always be shown\n event.preventDefault();\n // Chrome requires returnValue to be set\n event.returnValue = \"\";\n } else {\n // the absence of a returnValue property on the event will guarantee the browser unload happens\n delete event.returnValue;\n }\n });\n\n history.block((location, action) =>\n this.#getBlockMessageBeforePageLave({ location, action })\n );\n }\n\n getRenderId() {\n return this.#renderId;\n }\n\n getRuntimeContext() {\n return this.#runtimeContext;\n }\n\n getRecentApps() {\n return {\n currentApp: this.#currentApp,\n previousApp: this.#previousApp,\n };\n }\n\n getNavConfig() {\n return this.#navConfig;\n }\n\n #getBlockMessageBeforePageLave(detail: {\n location?: NextLocation;\n action?: Action;\n }): string | undefined {\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n this.#rendererContext?.dispatchBeforePageLeave(detail);\n const message = history.getBlockMessage();\n if (!previousMessage && message) {\n // Auto unblock only if new block was introduced by `onBeforePageLeave`.\n history.unblock();\n }\n return message;\n }\n\n #safeRedirect(\n to: string,\n state: NextHistoryState | undefined,\n from: NextLocation\n ): void {\n if (this.#redirectCount++ > 10) {\n const message = `Infinite redirect detected: from \"${from.pathname}${from.search}${from.hash}\" to \"${to}\"`;\n // istanbul ignore else: error cannot be caught in test\n if (process.env.NODE_ENV === \"test\") {\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n } else {\n throw new Error(message);\n }\n }\n getHistory().replace(to, state);\n }\n\n bootstrap() {\n initAbortController();\n const history = getHistory();\n let nextPrevLocation = history.location;\n history.listen((location, action) => {\n const prevLocation = nextPrevLocation;\n nextPrevLocation = location;\n if (this.#rendering) {\n this.#nextRender = { location, prevLocation, action };\n } else {\n this.#queuedRender({\n location,\n prevLocation,\n action,\n }).catch(handleHttpError);\n }\n });\n return this.#queuedRender({ location: history.location });\n }\n\n async #queuedRender(next: RenderTask) {\n this.#rendering = true;\n try {\n await this.#preRender(next);\n } finally {\n this.#rendering = false;\n if (this.#nextRender) {\n const nextRender = this.#nextRender;\n this.#nextRender = undefined;\n await this.#queuedRender(nextRender);\n }\n }\n }\n\n async #preRender({ location, prevLocation, action }: RenderTask) {\n if (prevLocation) {\n let ignoreRendering: boolean | undefined;\n const omittedLocationProps: Partial<NextLocation> = {\n hash: undefined,\n state: undefined,\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n (action === \"POP\" &&\n // and the previous location was triggered by hash link,\n (prevLocation.key === undefined ||\n // or the previous location specified notify false.\n prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...prevLocation, ...omittedLocationProps },\n { ...location, ...omittedLocationProps }\n ) ||\n (action !== \"POP\" && location.state?.notify === false)\n ) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n\n if (!ignoreRendering && !location.state?.noIncremental) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(\n location,\n prevLocation\n );\n }\n\n if (ignoreRendering) {\n return;\n }\n\n abortPendingRequest();\n this.#rendererContext?.dispatchPageLeave();\n\n if (action === \"POP\") {\n const storyboard = matchStoryboard(\n this.#storyboards,\n location.pathname\n );\n // When a browser action of goBack or goForward is performing,\n // force reload when the target page is a page of an outside app.\n if (isOutsideApp(storyboard)) {\n window.location.reload();\n return;\n }\n }\n\n devtoolsHookEmit(\"locationChange\");\n }\n\n return this.#render(location);\n }\n\n async #render(location: NextLocation): Promise<void> {\n const renderId = (this.#renderId = uniqueId(\"render-id-\"));\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks?.pageView?.create();\n\n const storyboard = matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n const currentAppId = storyboard?.app?.id;\n // dynamically change the value of the APP variable, if it's union app\n if (\n window.BOOTSTRAP_UNION_FILE &&\n currentAppId &&\n currentAppId !== previousApp?.id\n ) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion!,\n });\n }\n\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n\n const currentApp = (this.#currentApp = storyboard?.app);\n\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged =\n previousApp && currentApp\n ? previousApp.id !== currentApp.id\n : previousApp !== currentApp;\n\n clearExpressionASTCache();\n if (appChanged) {\n clearFunctionASTCache();\n }\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = this.#rendererContext;\n\n const redirectTo = (to: string, state?: NextHistoryState): void => {\n finishPageView?.({\n status: \"redirected\",\n });\n this.#rendererContextTrashCan.add(prevRendererContext);\n this.#safeRedirect(to, state, location);\n };\n\n const redirectToLogin = (): void => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, { from: location });\n };\n\n const main = document.querySelector(\"#main-mount-point\") as HTMLElement;\n const portal = document.querySelector(\"#portal-mount-point\") as HTMLElement;\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal,\n };\n\n const cleanUpPreviousRender = (): void => {\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n this.#rendererContextTrashCan.add(prevRendererContext);\n for (const item of this.#rendererContextTrashCan) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n this.#rendererContextTrashCan.clear();\n hooks?.messageDispatcher?.reset();\n\n if (appChanged) {\n this.#previousApp = previousApp;\n window.dispatchEvent(\n new CustomEvent(\"app.change\", {\n detail: {\n previousApp,\n currentApp,\n },\n })\n );\n }\n };\n\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\n\n if (currentApp) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const routeHelper: RouteHelper = {\n bailout: (output) => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n },\n mergeMenus: async (menuRequests) => {\n const menuConfs = await Promise.all(menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n window.dispatchEvent(\n new CustomEvent(\"navConfig.change\", { detail: this.#navConfig })\n );\n },\n catch: (error, returnNode) => {\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n redirectToLogin();\n return;\n } else if (error instanceof HttpAbortError) {\n this.#rendererContextTrashCan.add(prevRendererContext);\n return;\n } else {\n const noAuthGuardLoginPath =\n getRuntime().getMiscSettings().noAuthGuardLoginPath;\n if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {\n redirectTo(noAuthGuardLoginPath as string, { from: location });\n return;\n }\n return {\n failed: true,\n output: {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper, renderId }\n ));\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...hooks?.auth?.getAuth(),\n ...getPageInfo(),\n settings: {\n brand: getRuntime().getBrandSettings(),\n },\n },\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [\n hooks?.checkPermissions?.preCheckPermissions(storyboard),\n ],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n });\n\n this.#navConfig = undefined;\n\n registerCustomTemplates(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, currentApp);\n hooks?.flowApi?.collectContract(storyboard.meta?.contracts);\n\n let failed = false;\n let output: RenderOutput;\n let stores: DataStore<\"CTX\" | \"STATE\" | \"FORM_STATE\">[] = [];\n\n try {\n clearMatchedRoutes();\n const rootMenuRequestNode: MenuRequestNode = {};\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n [],\n rootMenuRequestNode\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n\n const result = routeHelper.catch(error, renderRoot);\n if (!result) {\n return;\n }\n ({ failed, output } = result);\n }\n renderRoot.child = output.node;\n\n cleanUpPreviousRender();\n\n if ((output.route && output.route.type !== \"routes\") || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n setUIVersion(currentApp?.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n finishPageView?.({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title,\n });\n } else {\n finishPageView?.({ status: \"failed\" });\n }\n devtoolsHookEmit(\"rendered\");\n\n return;\n }\n } else if (\n !window.NO_AUTH_GUARD &&\n hooks?.auth &&\n !hooks.auth.isLoggedIn()\n ) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n\n applyTheme();\n applyMode();\n\n const node: RenderBrick = {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: \"Page not found\",\n },\n runtimeContext: null!,\n return: renderRoot,\n };\n renderRoot.child = node;\n\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView?.({ status: \"not-found\" });\n devtoolsHookEmit(\"rendered\");\n }\n}\n\nfunction mergeMenuConfs(menuConfs: StaticMenuConf[]) {\n const navConfig = {\n breadcrumb: [] as BreadcrumbItemConf[],\n };\n for (const menuConf of menuConfs) {\n const { breadcrumb } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Router.js","names":["locationsAreEqual","HttpAbortError","clearExpressionASTCache","clearFunctionASTCache","uniqueId","getHistory","getDataStores","postAsyncRender","renderRoutes","DataStore","clearResolveCache","mountTree","unmountTree","isOutsideApp","matchStoryboard","registerStoryboardFunctions","RendererContext","applyMode","applyTheme","getLocalAppsTheme","setMode","setTheme","_internalApiGetAppInBootstrapData","getRuntime","hooks","getPageInfo","resetAllComputedMarks","handleHttpError","isUnauthenticatedError","abortPendingRequest","initAbortController","setLoginStateCookie","registerCustomTemplates","fulfilStoryboard","RenderTag","insertPreviewRoutes","devtoolsHookEmit","setUIVersion","setAppVariable","setWatermark","clearMatchedRoutes","ErrorNode","PageNotFoundError","_storyboards","WeakMap","_rendering","_nextRender","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_Router_brand","WeakSet","Router","constructor","storyboards","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","Set","_classPrivateFieldSet","history","window","addEventListener","event","message","_assertClassBrand","_getBlockMessageBeforePageLave","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","nextPrevLocation","listen","prevLocation","_queuedRender","catch","detail","_classPrivateFieldGet2","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect","to","state","from","_this$redirectCount","_this$redirectCount2","pathname","search","hash","process","env","NODE_ENV","console","error","Error","replace","next","_preRender","nextRender","undefined","_ref","_prevLocation$state","_location$state","_location$state2","_classPrivateFieldGet4","ignoreRendering","omittedLocationProps","key","notify","noIncremental","_classPrivateFieldGet3","didPerformIncrementalRender","dispatchPageLeave","storyboard","reload","_render","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet5","_storyboard$app","renderId","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","currentAppId","id","BOOTSTRAP_UNION_FILE","appId","version","currentVersion","appChanged","flags","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","theme","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","NO_AUTH_GUARD","noAuthGuardLoginPath","getMiscSettings","failed","node","blockingList","rendererContext","runtimeContext","query","URLSearchParams","sys","auth","getAuth","settings","brand","getBrandSettings","ctxStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","meta","functions","collectContract","contracts","stores","rootMenuRequestNode","routes","child","menuRequestNode","setInitialMenuRequestNode","getMenuRequests","result","route","type","dispatchBeforePageLoad","uiVersion","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","pageTitle","title","isLoggedIn","navConfig","breadcrumb","menuConf","overwrite","items","push"],"sources":["../../../src/internal/Router.ts"],"sourcesContent":["import { Action, locationsAreEqual } from \"history\";\nimport type {\n BreadcrumbItemConf,\n MicroApp,\n StaticMenuConf,\n Storyboard,\n} from \"@next-core/types\";\nimport { HttpAbortError } from \"@next-core/http\";\nimport {\n clearExpressionASTCache,\n clearFunctionASTCache,\n} from \"@next-core/cook\";\nimport { uniqueId } from \"lodash\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport {\n RenderOutput,\n getDataStores,\n postAsyncRender,\n renderRoutes,\n} from \"./Renderer.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { clearResolveCache } from \"./data/resolveData.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { isOutsideApp, matchStoryboard } from \"./matchStoryboard.js\";\nimport { registerStoryboardFunctions } from \"./compute/StoryboardFunctions.js\";\nimport { RendererContext, RouteHelper } from \"./RendererContext.js\";\nimport {\n applyMode,\n applyTheme,\n getLocalAppsTheme,\n setMode,\n setTheme,\n} from \"../themeAndMode.js\";\nimport {\n _internalApiGetAppInBootstrapData,\n getRuntime,\n hooks,\n} from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport type {\n MenuRequestNode,\n RenderRoot,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport { handleHttpError, isUnauthenticatedError } from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\nimport { clearMatchedRoutes } from \"./routeMatchedMap.js\";\nimport { ErrorNode, PageNotFoundError } from \"./ErrorNode.js\";\n\ntype RenderTask = InitialRenderTask | SubsequentRenderTask;\n\ninterface InitialRenderTask {\n location: NextLocation;\n prevLocation?: undefined;\n action?: undefined;\n}\n\ninterface SubsequentRenderTask {\n location: NextLocation;\n prevLocation: NextLocation;\n action: Action;\n}\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #nextRender?: RenderTask;\n #runtimeContext?: RuntimeContext;\n #rendererContext?: RendererContext;\n #rendererContextTrashCan = new Set<RendererContext | undefined>();\n #redirectCount = 0;\n #renderId?: string;\n #currentApp?: MicroApp;\n #previousApp?: MicroApp;\n #navConfig?: {\n breadcrumb?: BreadcrumbItemConf[];\n };\n\n constructor(storyboards: Storyboard[]) {\n this.#storyboards = storyboards;\n\n const history = getHistory();\n window.addEventListener(\"beforeunload\", (event) => {\n const message = this.#getBlockMessageBeforePageLave({});\n // See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload\n if (message) {\n // Cancel the event\n // If you prevent default behavior in Mozilla Firefox prompt will always be shown\n event.preventDefault();\n // Chrome requires returnValue to be set\n event.returnValue = \"\";\n } else {\n // the absence of a returnValue property on the event will guarantee the browser unload happens\n delete event.returnValue;\n }\n });\n\n history.block((location, action) =>\n this.#getBlockMessageBeforePageLave({ location, action })\n );\n }\n\n getRenderId() {\n return this.#renderId;\n }\n\n getRuntimeContext() {\n return this.#runtimeContext;\n }\n\n getRecentApps() {\n return {\n currentApp: this.#currentApp,\n previousApp: this.#previousApp,\n };\n }\n\n getNavConfig() {\n return this.#navConfig;\n }\n\n #getBlockMessageBeforePageLave(detail: {\n location?: NextLocation;\n action?: Action;\n }): string | undefined {\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n this.#rendererContext?.dispatchBeforePageLeave(detail);\n const message = history.getBlockMessage();\n if (!previousMessage && message) {\n // Auto unblock only if new block was introduced by `onBeforePageLeave`.\n history.unblock();\n }\n return message;\n }\n\n #safeRedirect(\n to: string,\n state: NextHistoryState | undefined,\n from: NextLocation\n ): void {\n if (this.#redirectCount++ > 10) {\n const message = `Infinite redirect detected: from \"${from.pathname}${from.search}${from.hash}\" to \"${to}\"`;\n // istanbul ignore else: error cannot be caught in test\n if (process.env.NODE_ENV === \"test\") {\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n } else {\n throw new Error(message);\n }\n }\n getHistory().replace(to, state);\n }\n\n bootstrap() {\n initAbortController();\n const history = getHistory();\n let nextPrevLocation = history.location;\n history.listen((location, action) => {\n const prevLocation = nextPrevLocation;\n nextPrevLocation = location;\n if (this.#rendering) {\n this.#nextRender = { location, prevLocation, action };\n } else {\n this.#queuedRender({\n location,\n prevLocation,\n action,\n }).catch(handleHttpError);\n }\n });\n return this.#queuedRender({ location: history.location });\n }\n\n async #queuedRender(next: RenderTask) {\n this.#rendering = true;\n try {\n await this.#preRender(next);\n } finally {\n this.#rendering = false;\n if (this.#nextRender) {\n const nextRender = this.#nextRender;\n this.#nextRender = undefined;\n await this.#queuedRender(nextRender);\n }\n }\n }\n\n async #preRender({ location, prevLocation, action }: RenderTask) {\n if (prevLocation) {\n let ignoreRendering: boolean | undefined;\n const omittedLocationProps: Partial<NextLocation> = {\n hash: undefined,\n state: undefined,\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n (action === \"POP\" &&\n // and the previous location was triggered by hash link,\n (prevLocation.key === undefined ||\n // or the previous location specified notify false.\n prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...prevLocation, ...omittedLocationProps },\n { ...location, ...omittedLocationProps }\n ) ||\n (action !== \"POP\" && location.state?.notify === false)\n ) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n\n if (!ignoreRendering && !location.state?.noIncremental) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(\n location,\n prevLocation\n );\n }\n\n if (ignoreRendering) {\n return;\n }\n\n abortPendingRequest();\n this.#rendererContext?.dispatchPageLeave();\n\n if (action === \"POP\") {\n const storyboard = matchStoryboard(\n this.#storyboards,\n location.pathname\n );\n // When a browser action of goBack or goForward is performing,\n // force reload when the target page is a page of an outside app.\n if (isOutsideApp(storyboard)) {\n window.location.reload();\n return;\n }\n }\n\n devtoolsHookEmit(\"locationChange\");\n }\n\n return this.#render(location);\n }\n\n async #render(location: NextLocation): Promise<void> {\n const renderId = (this.#renderId = uniqueId(\"render-id-\"));\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks?.pageView?.create();\n\n const storyboard = matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n const currentAppId = storyboard?.app?.id;\n // dynamically change the value of the APP variable, if it's union app\n if (\n window.BOOTSTRAP_UNION_FILE &&\n currentAppId &&\n currentAppId !== previousApp?.id\n ) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion!,\n });\n }\n\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n\n const currentApp = (this.#currentApp = storyboard?.app);\n\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged =\n previousApp && currentApp\n ? previousApp.id !== currentApp.id\n : previousApp !== currentApp;\n\n clearExpressionASTCache();\n if (appChanged) {\n clearFunctionASTCache();\n }\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = this.#rendererContext;\n\n const redirectTo = (to: string, state?: NextHistoryState): void => {\n finishPageView?.({\n status: \"redirected\",\n });\n this.#rendererContextTrashCan.add(prevRendererContext);\n this.#safeRedirect(to, state, location);\n };\n\n const redirectToLogin = (): void => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, { from: location });\n };\n\n const main = document.querySelector(\"#main-mount-point\") as HTMLElement;\n const portal = document.querySelector(\"#portal-mount-point\") as HTMLElement;\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal,\n };\n\n const cleanUpPreviousRender = (): void => {\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n this.#rendererContextTrashCan.add(prevRendererContext);\n for (const item of this.#rendererContextTrashCan) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n this.#rendererContextTrashCan.clear();\n hooks?.messageDispatcher?.reset();\n\n if (appChanged) {\n this.#previousApp = previousApp;\n window.dispatchEvent(\n new CustomEvent(\"app.change\", {\n detail: {\n previousApp,\n currentApp,\n },\n })\n );\n }\n };\n\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\n\n if (currentApp) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const routeHelper: RouteHelper = {\n bailout: (output) => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n },\n mergeMenus: async (menuRequests) => {\n const menuConfs = await Promise.all(menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n window.dispatchEvent(\n new CustomEvent(\"navConfig.change\", { detail: this.#navConfig })\n );\n },\n catch: async (error, returnNode) => {\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n redirectToLogin();\n return;\n } else if (error instanceof HttpAbortError) {\n this.#rendererContextTrashCan.add(prevRendererContext);\n return;\n } else {\n const noAuthGuardLoginPath =\n getRuntime().getMiscSettings().noAuthGuardLoginPath;\n if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {\n redirectTo(noAuthGuardLoginPath as string, { from: location });\n return;\n }\n return {\n failed: true,\n output: {\n node: await ErrorNode(error, returnNode, true),\n blockingList: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper, renderId }\n ));\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...hooks?.auth?.getAuth(),\n ...getPageInfo(),\n settings: {\n brand: getRuntime().getBrandSettings(),\n },\n },\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [\n hooks?.checkPermissions?.preCheckPermissions(storyboard),\n ],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n });\n\n this.#navConfig = undefined;\n\n registerCustomTemplates(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, currentApp);\n hooks?.flowApi?.collectContract(storyboard.meta?.contracts);\n\n let failed = false;\n let output: RenderOutput;\n let stores: DataStore<\"CTX\" | \"STATE\" | \"FORM_STATE\">[] = [];\n\n try {\n clearMatchedRoutes();\n const rootMenuRequestNode: MenuRequestNode = {};\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n [],\n rootMenuRequestNode\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n\n const result = await routeHelper.catch(error, renderRoot);\n if (!result) {\n return;\n }\n ({ failed, output } = result);\n }\n renderRoot.child = output.node;\n\n cleanUpPreviousRender();\n\n if ((output.route && output.route.type !== \"routes\") || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n setUIVersion(currentApp?.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n finishPageView?.({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title,\n });\n } else {\n finishPageView?.({ status: \"failed\" });\n }\n devtoolsHookEmit(\"rendered\");\n\n return;\n }\n } else if (\n !window.NO_AUTH_GUARD &&\n hooks?.auth &&\n !hooks.auth.isLoggedIn()\n ) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n\n applyTheme();\n applyMode();\n\n const node = await ErrorNode(\n new PageNotFoundError(currentApp ? \"page not found\" : \"app not found\"),\n renderRoot,\n true\n );\n renderRoot.child = node;\n\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView?.({ status: \"not-found\" });\n devtoolsHookEmit(\"rendered\");\n }\n}\n\nfunction mergeMenuConfs(menuConfs: StaticMenuConf[]) {\n const navConfig = {\n breadcrumb: [] as BreadcrumbItemConf[],\n };\n for (const menuConf of menuConfs) {\n const { breadcrumb } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
|
|
2
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
3
2
|
import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
|
|
4
|
-
import _assertClassBrand from "@babel/runtime/helpers/assertClassBrand";
|
|
5
3
|
import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet2";
|
|
6
4
|
import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet2";
|
|
7
5
|
import { i18n, initializeI18n } from "@next-core/i18n";
|
|
@@ -79,10 +77,8 @@ function getRuntimeV2Factory() {
|
|
|
79
77
|
export const getRuntime = getRuntimeV2Factory() || getRuntimeV3;
|
|
80
78
|
var _initialized = /*#__PURE__*/new WeakMap();
|
|
81
79
|
var _bootstrapped = /*#__PURE__*/new WeakMap();
|
|
82
|
-
var _Runtime_brand = /*#__PURE__*/new WeakSet();
|
|
83
80
|
export class Runtime {
|
|
84
81
|
constructor() {
|
|
85
|
-
_classPrivateMethodInitSpec(this, _Runtime_brand);
|
|
86
82
|
_classPrivateFieldInitSpec(this, _initialized, false);
|
|
87
83
|
_classPrivateFieldInitSpec(this, _bootstrapped, false);
|
|
88
84
|
_defineProperty(this, "version", 3);
|
|
@@ -98,7 +94,7 @@ export class Runtime {
|
|
|
98
94
|
const {
|
|
99
95
|
notification,
|
|
100
96
|
dialog
|
|
101
|
-
} =
|
|
97
|
+
} = _internalApiGetPresetBricks();
|
|
102
98
|
if (notification !== false) {
|
|
103
99
|
loadNotificationService(notification ?? "basic.show-notification", this.loadBricks);
|
|
104
100
|
}
|
|
@@ -183,10 +179,6 @@ export class Runtime {
|
|
|
183
179
|
return loadBricksImperatively(bricks, getBrickPackages());
|
|
184
180
|
}
|
|
185
181
|
}
|
|
186
|
-
function _getPresetBricks() {
|
|
187
|
-
var _bootstrapData10;
|
|
188
|
-
return ((_bootstrapData10 = bootstrapData) === null || _bootstrapData10 === void 0 || (_bootstrapData10 = _bootstrapData10.settings) === null || _bootstrapData10 === void 0 ? void 0 : _bootstrapData10.presetBricks) ?? {};
|
|
189
|
-
}
|
|
190
182
|
function normalizeBootstrapData(data) {
|
|
191
183
|
if (isObject(data.settings)) {
|
|
192
184
|
deepFreeze(data.settings);
|
|
@@ -216,21 +208,25 @@ export function getBrickPackages() {
|
|
|
216
208
|
processedBrickPackages ?? (processedBrickPackages = processPublicDepsPackages(((_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages) ?? injectedBrickPackages ?? window.STANDALONE_BRICK_PACKAGES ?? [], window.PUBLIC_DEPS))
|
|
217
209
|
);
|
|
218
210
|
}
|
|
211
|
+
export function _internalApiGetPresetBricks() {
|
|
212
|
+
var _bootstrapData8;
|
|
213
|
+
return ((_bootstrapData8 = bootstrapData) === null || _bootstrapData8 === void 0 || (_bootstrapData8 = _bootstrapData8.settings) === null || _bootstrapData8 === void 0 ? void 0 : _bootstrapData8.presetBricks) ?? {};
|
|
214
|
+
}
|
|
219
215
|
export function _internalApiGetRenderId() {
|
|
220
216
|
var _router7;
|
|
221
217
|
return (_router7 = router) === null || _router7 === void 0 ? void 0 : _router7.getRenderId();
|
|
222
218
|
}
|
|
223
219
|
export function _internalApiMatchStoryboard(pathname) {
|
|
224
|
-
var
|
|
225
|
-
return matchStoryboard(((
|
|
220
|
+
var _bootstrapData9;
|
|
221
|
+
return matchStoryboard(((_bootstrapData9 = bootstrapData) === null || _bootstrapData9 === void 0 ? void 0 : _bootstrapData9.storyboards) ?? [], pathname);
|
|
226
222
|
}
|
|
227
223
|
export function _internalApiGetRuntimeContext() {
|
|
228
224
|
var _router8;
|
|
229
225
|
return (_router8 = router) === null || _router8 === void 0 ? void 0 : _router8.getRuntimeContext();
|
|
230
226
|
}
|
|
231
227
|
export function _internalApiGetStoryboardInBootstrapData(appId) {
|
|
232
|
-
var
|
|
233
|
-
return (
|
|
228
|
+
var _bootstrapData10;
|
|
229
|
+
return (_bootstrapData10 = bootstrapData) === null || _bootstrapData10 === void 0 || (_bootstrapData10 = _bootstrapData10.storyboards) === null || _bootstrapData10 === void 0 ? void 0 : _bootstrapData10.find(storyboard => storyboard.app.id === appId);
|
|
234
230
|
}
|
|
235
231
|
export function _internalApiGetAppInBootstrapData(appId) {
|
|
236
232
|
var _internalApiGetStoryb;
|
|
@@ -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","processedBrickPackages","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","storyboards","getRecentApps","_router","getCurrentApp","_router2","currentApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","_router5","baseTitle","title","localeTitle","getNavConfig","_router6","bricks","getBrickPackages","_bootstrapData10","presetBricks","brickPackages","processPublicDepsPackages","pubDeps","bricksMap","Map","forEach","pkg","pkgName","filePath","split","has","set","Array","from","values","_bootstrapData7","window","STANDALONE_BRICK_PACKAGES","PUBLIC_DEPS","_internalApiGetRenderId","_router7","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData8","_internalApiGetRuntimeContext","_router8","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","app","id","_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;\nlet processedBrickPackages: BrickPackage[] | 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 stream?: boolean\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\n document.title =\n (router?.getRecentApps().currentApp?.localeTitle as string) ||\n (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 (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nfunction processPublicDepsPackages(\n brickPackages: BrickPackage[],\n pubDeps: BrickPackage[] | undefined\n): BrickPackage[] {\n if (!pubDeps?.length) return brickPackages;\n\n const bricksMap = new Map();\n\n // bootstrapData 数据和 pubDeps 中可能同时存在同一个包名,需要过滤去重, 以 pubDeps 中的包为准\n [...pubDeps, ...brickPackages].forEach((pkg) => {\n const pkgName = pkg.filePath.split(\"/\")[1];\n // 始终将 pubDeps 放在前面\n if (!bricksMap.has(pkgName)) {\n bricksMap.set(pkgName, pkg);\n }\n });\n\n return Array.from(bricksMap.values());\n}\n\nexport function getBrickPackages(): BrickPackage[] {\n return (\n // Not necessary to process brick packages multiple times.\n processedBrickPackages ??\n (processedBrickPackages = processPublicDepsPackages(\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[] | undefined) ??\n [],\n window.PUBLIC_DEPS as BrickPackage[] | undefined\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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","ignoreList":[]}
|
|
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","processedBrickPackages","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getRuntimeV2","Proxy","getRuntime","get","key","arguments","length","undefined","Reflect","_initialized","WeakMap","_bootstrapped","constructor","_classPrivateFieldInitSpec","_defineProperty","initialize","data","_data$settings","_classPrivateFieldGet","_classPrivateFieldSet","normalizeBootstrapData","notification","dialog","_internalApiGetPresetBricks","loadBricks","settings","misc","theme","bootstrap","storyboards","getRecentApps","_router","getCurrentApp","_router2","currentApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","_router5","baseTitle","title","localeTitle","getNavConfig","_router6","bricks","getBrickPackages","brickPackages","processPublicDepsPackages","pubDeps","bricksMap","Map","forEach","pkg","pkgName","filePath","split","has","set","Array","from","values","_bootstrapData7","window","STANDALONE_BRICK_PACKAGES","PUBLIC_DEPS","_bootstrapData8","presetBricks","_internalApiGetRenderId","_router7","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData9","_internalApiGetRuntimeContext","_router8","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData10","find","storyboard","app","id","_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;\nlet processedBrickPackages: BrickPackage[] | 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 stream?: boolean\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 } = _internalApiGetPresetBricks();\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\n document.title =\n (router?.getRecentApps().currentApp?.localeTitle as string) ||\n (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 (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nfunction processPublicDepsPackages(\n brickPackages: BrickPackage[],\n pubDeps: BrickPackage[] | undefined\n): BrickPackage[] {\n if (!pubDeps?.length) return brickPackages;\n\n const bricksMap = new Map();\n\n // bootstrapData 数据和 pubDeps 中可能同时存在同一个包名,需要过滤去重, 以 pubDeps 中的包为准\n [...pubDeps, ...brickPackages].forEach((pkg) => {\n const pkgName = pkg.filePath.split(\"/\")[1];\n // 始终将 pubDeps 放在前面\n if (!bricksMap.has(pkgName)) {\n bricksMap.set(pkgName, pkg);\n }\n });\n\n return Array.from(bricksMap.values());\n}\n\nexport function getBrickPackages(): BrickPackage[] {\n return (\n // Not necessary to process brick packages multiple times.\n processedBrickPackages ??\n (processedBrickPackages = processPublicDepsPackages(\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[] | undefined) ??\n [],\n window.PUBLIC_DEPS as BrickPackage[] | undefined\n ))\n );\n}\n\nexport function _internalApiGetPresetBricks() {\n return (bootstrapData?.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n error?: string | false;\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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","ignoreList":[]}
|
|
@@ -3,19 +3,40 @@ export let K = /*#__PURE__*/function (K) {
|
|
|
3
3
|
K["SOMETHING_WENT_WRONG"] = "SOMETHING_WENT_WRONG";
|
|
4
4
|
K["LOGIN_TIMEOUT_MESSAGE"] = "LOGIN_TIMEOUT_MESSAGE";
|
|
5
5
|
K["NETWORK_ERROR"] = "NETWORK_ERROR";
|
|
6
|
+
K["LICENSE_EXPIRED"] = "LICENSE_EXPIRED";
|
|
7
|
+
K["NO_PERMISSION"] = "NO_PERMISSION";
|
|
8
|
+
K["PAGE_NOT_FOUND"] = "PAGE_NOT_FOUND";
|
|
9
|
+
K["APP_NOT_FOUND"] = "APP_NOT_FOUND";
|
|
10
|
+
K["UNKNOWN_ERROR"] = "UNKNOWN_ERROR";
|
|
11
|
+
K["GO_BACK_TO_PREVIOUS_PAGE"] = "GO_BACK_TO_PREVIOUS_PAGE";
|
|
12
|
+
K["GO_BACK_HOME"] = "GO_BACK_HOME";
|
|
6
13
|
return K;
|
|
7
14
|
}({});
|
|
8
15
|
const en = {
|
|
9
16
|
[K.REQUEST_FAILED]: "Request Failed",
|
|
10
17
|
[K.SOMETHING_WENT_WRONG]: "Something went wrong!",
|
|
11
18
|
[K.LOGIN_TIMEOUT_MESSAGE]: "You haven't logged in or your login session has expired. Login right now?",
|
|
12
|
-
[K.NETWORK_ERROR]: "Network error, please check your network."
|
|
19
|
+
[K.NETWORK_ERROR]: "Network error, please check your network.",
|
|
20
|
+
[K.LICENSE_EXPIRED]: "The license authorization has expired, please contact the platform administrator",
|
|
21
|
+
[K.NO_PERMISSION]: "Unauthorized access, unable to retrieve the required resources for this page",
|
|
22
|
+
[K.PAGE_NOT_FOUND]: "Page not found, please check the URL",
|
|
23
|
+
[K.APP_NOT_FOUND]: "App not found, maybe the URL is wrong or you don't have permission to access",
|
|
24
|
+
[K.UNKNOWN_ERROR]: "Oops! Something went wrong",
|
|
25
|
+
[K.GO_BACK_TO_PREVIOUS_PAGE]: "Go back to previous page",
|
|
26
|
+
[K.GO_BACK_HOME]: "Go back to home page"
|
|
13
27
|
};
|
|
14
28
|
const zh = {
|
|
15
29
|
[K.REQUEST_FAILED]: "请求失败",
|
|
16
30
|
[K.SOMETHING_WENT_WRONG]: "出现了一些问题!",
|
|
17
31
|
[K.LOGIN_TIMEOUT_MESSAGE]: "您还未登录或登录信息已过期,现在重新登录?",
|
|
18
|
-
[K.NETWORK_ERROR]: "网络错误,请检查您的网络连接。"
|
|
32
|
+
[K.NETWORK_ERROR]: "网络错误,请检查您的网络连接。",
|
|
33
|
+
[K.LICENSE_EXPIRED]: "License 授权失效,请联系平台管理员",
|
|
34
|
+
[K.NO_PERMISSION]: "没有权限,无法获取页面所需要的资源",
|
|
35
|
+
[K.PAGE_NOT_FOUND]: "请求的页面未找到,请确认 URL 是否正确",
|
|
36
|
+
[K.APP_NOT_FOUND]: "请求的微应用无法找到, 可能是 URL 错误或者无权限访问",
|
|
37
|
+
[K.UNKNOWN_ERROR]: "糟糕!页面出现了一些问题",
|
|
38
|
+
[K.GO_BACK_TO_PREVIOUS_PAGE]: "回到上一页",
|
|
39
|
+
[K.GO_BACK_HOME]: "回到首页"
|
|
19
40
|
};
|
|
20
41
|
export const NS = "core/runtime";
|
|
21
42
|
export const locales = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","names":["K","en","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","zh","NS","locales"],"sources":["../../../src/internal/i18n.ts"],"sourcesContent":["export enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n NETWORK_ERROR = \"NETWORK_ERROR\",\n}\n\nconst en: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n};\n\nconst zh: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n};\n\nexport const NS = \"core/runtime\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n"],"mappings":"AAAA,WAAYA,CAAC,0BAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAAA,OAADA,CAAC;AAAA;
|
|
1
|
+
{"version":3,"file":"i18n.js","names":["K","en","REQUEST_FAILED","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","LICENSE_EXPIRED","NO_PERMISSION","PAGE_NOT_FOUND","APP_NOT_FOUND","UNKNOWN_ERROR","GO_BACK_TO_PREVIOUS_PAGE","GO_BACK_HOME","zh","NS","locales"],"sources":["../../../src/internal/i18n.ts"],"sourcesContent":["export enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n NETWORK_ERROR = \"NETWORK_ERROR\",\n LICENSE_EXPIRED = \"LICENSE_EXPIRED\",\n NO_PERMISSION = \"NO_PERMISSION\",\n PAGE_NOT_FOUND = \"PAGE_NOT_FOUND\",\n APP_NOT_FOUND = \"APP_NOT_FOUND\",\n UNKNOWN_ERROR = \"UNKNOWN_ERROR\",\n GO_BACK_TO_PREVIOUS_PAGE = \"GO_BACK_TO_PREVIOUS_PAGE\",\n GO_BACK_HOME = \"GO_BACK_HOME\",\n}\n\nconst en: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n [K.LICENSE_EXPIRED]:\n \"The license authorization has expired, please contact the platform administrator\",\n [K.NO_PERMISSION]:\n \"Unauthorized access, unable to retrieve the required resources for this page\",\n [K.PAGE_NOT_FOUND]: \"Page not found, please check the URL\",\n [K.APP_NOT_FOUND]:\n \"App not found, maybe the URL is wrong or you don't have permission to access\",\n [K.UNKNOWN_ERROR]: \"Oops! Something went wrong\",\n [K.GO_BACK_TO_PREVIOUS_PAGE]: \"Go back to previous page\",\n [K.GO_BACK_HOME]: \"Go back to home page\",\n};\n\nconst zh: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n [K.LICENSE_EXPIRED]: \"License 授权失效,请联系平台管理员\",\n [K.NO_PERMISSION]: \"没有权限,无法获取页面所需要的资源\",\n [K.PAGE_NOT_FOUND]: \"请求的页面未找到,请确认 URL 是否正确\",\n [K.APP_NOT_FOUND]: \"请求的微应用无法找到, 可能是 URL 错误或者无权限访问\",\n [K.UNKNOWN_ERROR]: \"糟糕!页面出现了一些问题\",\n [K.GO_BACK_TO_PREVIOUS_PAGE]: \"回到上一页\",\n [K.GO_BACK_HOME]: \"回到首页\",\n};\n\nexport const NS = \"core/runtime\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [key in K]: string };\n"],"mappings":"AAAA,WAAYA,CAAC,0BAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAADA,CAAC;EAAA,OAADA,CAAC;AAAA;AAcb,MAAMC,EAAU,GAAG;EACjB,CAACD,CAAC,CAACE,cAAc,GAAG,gBAAgB;EACpC,CAACF,CAAC,CAACG,oBAAoB,GAAG,uBAAuB;EACjD,CAACH,CAAC,CAACI,qBAAqB,GACtB,2EAA2E;EAC7E,CAACJ,CAAC,CAACK,aAAa,GAAG,2CAA2C;EAC9D,CAACL,CAAC,CAACM,eAAe,GAChB,kFAAkF;EACpF,CAACN,CAAC,CAACO,aAAa,GACd,8EAA8E;EAChF,CAACP,CAAC,CAACQ,cAAc,GAAG,sCAAsC;EAC1D,CAACR,CAAC,CAACS,aAAa,GACd,8EAA8E;EAChF,CAACT,CAAC,CAACU,aAAa,GAAG,4BAA4B;EAC/C,CAACV,CAAC,CAACW,wBAAwB,GAAG,0BAA0B;EACxD,CAACX,CAAC,CAACY,YAAY,GAAG;AACpB,CAAC;AAED,MAAMC,EAAU,GAAG;EACjB,CAACb,CAAC,CAACE,cAAc,GAAG,MAAM;EAC1B,CAACF,CAAC,CAACG,oBAAoB,GAAG,UAAU;EACpC,CAACH,CAAC,CAACI,qBAAqB,GAAG,uBAAuB;EAClD,CAACJ,CAAC,CAACK,aAAa,GAAG,iBAAiB;EACpC,CAACL,CAAC,CAACM,eAAe,GAAG,uBAAuB;EAC5C,CAACN,CAAC,CAACO,aAAa,GAAG,mBAAmB;EACtC,CAACP,CAAC,CAACQ,cAAc,GAAG,uBAAuB;EAC3C,CAACR,CAAC,CAACS,aAAa,GAAG,+BAA+B;EAClD,CAACT,CAAC,CAACU,aAAa,GAAG,cAAc;EACjC,CAACV,CAAC,CAACW,wBAAwB,GAAG,OAAO;EACrC,CAACX,CAAC,CAACY,YAAY,GAAG;AACpB,CAAC;AAED,OAAO,MAAME,EAAE,GAAG,cAAc;AAEhC,OAAO,MAAMC,OAAO,GAAG;EAAEd,EAAE;EAAEY;AAAG,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { RenderChildNode, RenderReturnNode } from "./interfaces.js";
|
|
2
|
+
export declare class PageNotFoundError extends Error {
|
|
3
|
+
constructor(message: "page not found" | "app not found");
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Will always resolve
|
|
7
|
+
*/
|
|
8
|
+
export declare function ErrorNode(error: unknown, returnNode: RenderReturnNode, pageLevel?: boolean): Promise<RenderChildNode>;
|
|
@@ -12,10 +12,11 @@ export interface RendererContextOptions {
|
|
|
12
12
|
export interface RouteHelper {
|
|
13
13
|
bailout: (output: RenderOutput) => true | undefined;
|
|
14
14
|
mergeMenus: (menuRequests: Promise<StaticMenuConf>[]) => Promise<void>;
|
|
15
|
-
|
|
15
|
+
/** Will always resolve */
|
|
16
|
+
catch: (error: unknown, returnNode: RenderReturnNode) => Promise<undefined | {
|
|
16
17
|
failed: true;
|
|
17
18
|
output: RenderOutput;
|
|
18
|
-
}
|
|
19
|
+
}>;
|
|
19
20
|
}
|
|
20
21
|
export declare class RendererContext {
|
|
21
22
|
#private;
|
|
@@ -32,10 +33,13 @@ export declare class RendererContext {
|
|
|
32
33
|
getMenuRequests(): Promise<StaticMenuConf>[];
|
|
33
34
|
reMergeMenuRequestNodes(parentMenuRequestNode: MenuRequestNode, routes: RouteConf[], menuRequestNode?: MenuRequestNode): Promise<void>;
|
|
34
35
|
reBailout(output: RenderOutput): true | undefined;
|
|
35
|
-
|
|
36
|
+
/**
|
|
37
|
+
* Will always resolve
|
|
38
|
+
*/
|
|
39
|
+
reCatch(error: unknown, returnNode: RenderReturnNode): Promise<{
|
|
36
40
|
failed: true;
|
|
37
41
|
output: RenderOutput;
|
|
38
|
-
} | undefined
|
|
42
|
+
} | undefined>;
|
|
39
43
|
didPerformIncrementalRender(location: Location<NextHistoryState>, prevLocation: Location<NextHistoryState>): Promise<boolean>;
|
|
40
44
|
/**
|
|
41
45
|
* When `callback` resolved to `true` which means incremental rendering is performed,
|
|
@@ -99,6 +99,11 @@ export declare class Runtime {
|
|
|
99
99
|
loadBricks(bricks: string[] | Set<string>): Promise<void>;
|
|
100
100
|
}
|
|
101
101
|
export declare function getBrickPackages(): BrickPackage[];
|
|
102
|
+
export declare function _internalApiGetPresetBricks(): {
|
|
103
|
+
notification?: string | false;
|
|
104
|
+
dialog?: string | false;
|
|
105
|
+
error?: string | false;
|
|
106
|
+
};
|
|
102
107
|
export declare function _internalApiGetRenderId(): string | undefined;
|
|
103
108
|
export declare function _internalApiMatchStoryboard(pathname: string): RuntimeStoryboard | undefined;
|
|
104
109
|
export declare function _internalApiGetRuntimeContext(): RuntimeContext | undefined;
|
|
@@ -2,7 +2,14 @@ export declare enum K {
|
|
|
2
2
|
REQUEST_FAILED = "REQUEST_FAILED",
|
|
3
3
|
SOMETHING_WENT_WRONG = "SOMETHING_WENT_WRONG",
|
|
4
4
|
LOGIN_TIMEOUT_MESSAGE = "LOGIN_TIMEOUT_MESSAGE",
|
|
5
|
-
NETWORK_ERROR = "NETWORK_ERROR"
|
|
5
|
+
NETWORK_ERROR = "NETWORK_ERROR",
|
|
6
|
+
LICENSE_EXPIRED = "LICENSE_EXPIRED",
|
|
7
|
+
NO_PERMISSION = "NO_PERMISSION",
|
|
8
|
+
PAGE_NOT_FOUND = "PAGE_NOT_FOUND",
|
|
9
|
+
APP_NOT_FOUND = "APP_NOT_FOUND",
|
|
10
|
+
UNKNOWN_ERROR = "UNKNOWN_ERROR",
|
|
11
|
+
GO_BACK_TO_PREVIOUS_PAGE = "GO_BACK_TO_PREVIOUS_PAGE",
|
|
12
|
+
GO_BACK_HOME = "GO_BACK_HOME"
|
|
6
13
|
}
|
|
7
14
|
export declare const NS = "core/runtime";
|
|
8
15
|
export declare const locales: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/runtime",
|
|
3
|
-
"version": "1.54.
|
|
3
|
+
"version": "1.54.11",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
"@next-core/http": "^1.2.6",
|
|
50
50
|
"@next-core/i18n": "^1.0.62",
|
|
51
51
|
"@next-core/inject": "^1.0.41",
|
|
52
|
-
"@next-core/loader": "^1.6.
|
|
52
|
+
"@next-core/loader": "^1.6.7",
|
|
53
53
|
"@next-core/supply": "^2.1.20",
|
|
54
54
|
"@next-core/types": "^1.12.1",
|
|
55
55
|
"@next-core/utils": "^1.7.20",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"@next-core/build-next-libs": "^1.0.18",
|
|
68
68
|
"@next-core/test-next": "^1.1.5"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "647c083402a96021b288e13703295422bbe1b52e"
|
|
71
71
|
}
|