@next-core/runtime 1.22.12 → 1.22.14

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.
@@ -31,6 +31,7 @@ var _registerCustomTemplates = require("./registerCustomTemplates.js");
31
31
  var _fulfilStoryboard = require("./fulfilStoryboard.js");
32
32
  var _enums = require("./enums.js");
33
33
  var _insertPreviewRoutes = require("./insertPreviewRoutes.js");
34
+ var _devtools = require("./devtools.js");
34
35
  var _storyboards = /*#__PURE__*/new WeakMap();
35
36
  var _rendering = /*#__PURE__*/new WeakMap();
36
37
  var _prevLocation = /*#__PURE__*/new WeakMap();
@@ -202,7 +203,7 @@ class Router {
202
203
  if ((0, _classPrivateFieldGet7.default)(this, _rendering)) {
203
204
  (0, _classPrivateFieldSet2.default)(this, _nextLocation, location);
204
205
  } else {
205
- // devtoolsHookEmit("locationChange");
206
+ (0, _devtools.devtoolsHookEmit)("locationChange");
206
207
  (0, _classPrivateMethodGet2.default)(this, _queuedRender, _queuedRender2).call(this, location).catch(_handleHttpError.handleHttpError);
207
208
  }
208
209
  });
@@ -459,6 +460,7 @@ async function _render2(location) {
459
460
  status: "failed"
460
461
  });
461
462
  }
463
+ (0, _devtools.devtoolsHookEmit)("rendered");
462
464
  return;
463
465
  }
464
466
  } else if (!window.NO_AUTH_GUARD && _Runtime.hooks !== null && _Runtime.hooks !== void 0 && _Runtime.hooks.auth && !_Runtime.hooks.auth.isLoggedIn()) {
@@ -488,6 +490,7 @@ async function _render2(location) {
488
490
  finishPageView === null || finishPageView === void 0 || finishPageView({
489
491
  status: "not-found"
490
492
  });
493
+ (0, _devtools.devtoolsHookEmit)("rendered");
491
494
  }
492
495
  function mergeMenuConfs(menuConfs) {
493
496
  const navConfig = {
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","names":["_history2","require","_http","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_RendererContext","_themeAndMode","_Runtime","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_registerCustomTemplates","_fulfilStoryboard","_enums","_insertPreviewRoutes","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_getBlockMessageBeforePageLave","WeakSet","_safeRedirect","_queuedRender","_render","Router","constructor","storyboards","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","writable","value","Set","_classPrivateFieldSet2","history","getHistory","window","addEventListener","event","message","_classPrivateMethodGet2","_getBlockMessageBeforePageLave2","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet7","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","renderId","listen","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","locationsAreEqual","_classPrivateFieldGet3","didPerformIncrementalRender","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","pathname","isOutsideApp","reload","_queuedRender2","catch","handleHttpError","exports","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","search","process","env","NODE_ENV","console","error","Error","replace","_render2","nextLocation","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet6","uniqueId","resetAllComputedMarks","clearResolveCache","hooks","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","fulfilStoryboard","appChanged","id","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","unmountTree","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","setTheme","getLocalAppsTheme","theme","setMode","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","appId","_internalApiGetAppInBootstrapData","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","httpErrorToString","runtimeContext","return","blockingList","rendererContext","RendererContext","query","URLSearchParams","sys","auth","getAuth","getPageInfo","settings","brand","getBrandSettings","ctxStore","DataStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","registerCustomTemplates","registerStoryboardFunctions","meta","functions","collectContract","contracts","stores","renderRoutes","insertPreviewRoutes","routes","getDataStores","postAsyncRender","setInitialMenuRequests","result","child","route","dispatchBeforePageLoad","applyTheme","applyMode","mountTree","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 { 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 { RenderBrick, RenderRoot, RuntimeContext } 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 { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #prevLocation!: NextLocation;\n #nextLocation?: NextLocation;\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 this.#prevLocation = history.location;\n let renderId = 0;\n history.listen(async (location, action) => {\n const currentRenderId = ++renderId;\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 (this.#prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.#prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...this.#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) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(location);\n }\n\n // Ignore stale renders\n if (renderId !== currentRenderId) {\n return;\n }\n\n if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n\n abortPendingRequest();\n this.#prevLocation = location;\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 if (this.#rendering) {\n this.#nextLocation = location;\n } else {\n // devtoolsHookEmit(\"locationChange\");\n this.#queuedRender(location).catch(handleHttpError);\n }\n });\n return this.#queuedRender(history.location);\n }\n\n async #queuedRender(location: NextLocation): Promise<void> {\n this.#rendering = true;\n try {\n await this.#render(location);\n } finally {\n this.#rendering = false;\n if (this.#nextLocation) {\n const nextLocation = this.#nextLocation;\n this.#nextLocation = undefined;\n await this.#queuedRender(nextLocation);\n }\n }\n }\n\n async #render(location: NextLocation): Promise<void> {\n this.#renderId = uniqueId(\"render-id-1\");\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 if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = (this.#currentApp = storyboard?.app);\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 // 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 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 },\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 },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n menuRequests: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper }\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 output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n []\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n await routeHelper.mergeMenus(output.menuRequests);\n rendererContext.setInitialMenuRequests(output.menuRequests);\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 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\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 }\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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"}
1
+ {"version":3,"file":"Router.js","names":["_history2","require","_http","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_RendererContext","_themeAndMode","_Runtime","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_registerCustomTemplates","_fulfilStoryboard","_enums","_insertPreviewRoutes","_devtools","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_getBlockMessageBeforePageLave","WeakSet","_safeRedirect","_queuedRender","_render","Router","constructor","storyboards","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","writable","value","Set","_classPrivateFieldSet2","history","getHistory","window","addEventListener","event","message","_classPrivateMethodGet2","_getBlockMessageBeforePageLave2","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet7","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","renderId","listen","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","locationsAreEqual","_classPrivateFieldGet3","didPerformIncrementalRender","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","pathname","isOutsideApp","reload","devtoolsHookEmit","_queuedRender2","catch","handleHttpError","exports","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","search","process","env","NODE_ENV","console","error","Error","replace","_render2","nextLocation","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet6","uniqueId","resetAllComputedMarks","clearResolveCache","hooks","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","fulfilStoryboard","appChanged","id","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","unmountTree","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","setTheme","getLocalAppsTheme","theme","setMode","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","appId","_internalApiGetAppInBootstrapData","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","httpErrorToString","runtimeContext","return","blockingList","rendererContext","RendererContext","query","URLSearchParams","sys","auth","getAuth","getPageInfo","settings","brand","getBrandSettings","ctxStore","DataStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","registerCustomTemplates","registerStoryboardFunctions","meta","functions","collectContract","contracts","stores","renderRoutes","insertPreviewRoutes","routes","getDataStores","postAsyncRender","setInitialMenuRequests","result","child","route","dispatchBeforePageLoad","applyTheme","applyMode","mountTree","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 { 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 { RenderBrick, RenderRoot, RuntimeContext } 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 { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #prevLocation!: NextLocation;\n #nextLocation?: NextLocation;\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 this.#prevLocation = history.location;\n let renderId = 0;\n history.listen(async (location, action) => {\n const currentRenderId = ++renderId;\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 (this.#prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.#prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...this.#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) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(location);\n }\n\n // Ignore stale renders\n if (renderId !== currentRenderId) {\n return;\n }\n\n if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n\n abortPendingRequest();\n this.#prevLocation = location;\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 if (this.#rendering) {\n this.#nextLocation = location;\n } else {\n devtoolsHookEmit(\"locationChange\");\n this.#queuedRender(location).catch(handleHttpError);\n }\n });\n return this.#queuedRender(history.location);\n }\n\n async #queuedRender(location: NextLocation): Promise<void> {\n this.#rendering = true;\n try {\n await this.#render(location);\n } finally {\n this.#rendering = false;\n if (this.#nextLocation) {\n const nextLocation = this.#nextLocation;\n this.#nextLocation = undefined;\n await this.#queuedRender(nextLocation);\n }\n }\n }\n\n async #render(location: NextLocation): Promise<void> {\n this.#renderId = uniqueId(\"render-id-1\");\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 if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = (this.#currentApp = storyboard?.app);\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 // 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 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 },\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 },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n menuRequests: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper }\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 output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n []\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n await routeHelper.mergeMenus(output.menuRequests);\n rendererContext.setInitialMenuRequests(output.menuRequests);\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 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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"}
@@ -65,6 +65,7 @@ function getRuntimeV2Factory() {
65
65
  const key = args[1];
66
66
  switch (key) {
67
67
  case "getCurrentApp":
68
+ case "getRecentApps":
68
69
  case "hasInstalledApp":
69
70
  case "getDesktops":
70
71
  case "getLaunchpadSettings":
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","names":["_i18n","require","_loader","_general","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_i18n2","_Notification","_Dialog","_injected","_hasInstalledApp","_devtools","_getV2RuntimeFromDll","runtime","bootstrapData","router","hooks","exports","createRuntime","options","Error","listenDevtoolsEagerly","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getV2RuntimeFromDll","getRuntimeV2","Proxy","getRuntime","get","args","key","Reflect","initialized","bootstrapped","initialize","data","_data$settings$preset","_data$settings","normalizeBootstrapData","notification","dialog","settings","presetBricks","loadNotificationService","loadBricks","loadDialogService","bootstrap","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","hasInstalledApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","misc","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","bricks","loadBricksImperatively","getBrickPackages","Array","isArray","app","ns","id","Object","entries","forEach","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","isObject","deepFreeze","brickPackages","_ref","_ref2","_bootstrapData$brickP","_bootstrapData7","injectedBrickPackages","window","STANDALONE_BRICK_PACKAGES","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\n BrickConf,\n RouteConf,\n ResolveConf,\n BrickPackage,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport type { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { type AppForCheck, hasInstalledApp } from \"./hasInstalledApp.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface ImagesFactory {\n get(name: string): string;\n}\n\nexport interface PageViewInfo {\n status: \"ok\" | \"failed\" | \"redirected\" | \"not-found\";\n path?: string;\n pageTitle?: string;\n}\n\nexport interface RuntimeHooks {\n auth?: {\n getAuth(): object;\n isLoggedIn(): boolean;\n authenticate?(...args: unknown[]): unknown;\n logout?(...args: unknown[]): unknown;\n };\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\n checkPermissions?: {\n checkPermissions(...actions: string[]): boolean;\n preCheckPermissions(storyboard: Storyboard): Promise<void> | undefined;\n preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n asyncComputeRealValue: (value: unknown) => Promise<unknown>\n ): Promise<void> | undefined;\n };\n checkInstalledApps?: {\n preCheckInstalledApps(\n storyboard: Storyboard,\n hasAppInBootstrap: (appId: string) => boolean\n ): void;\n waitForCheckingApps(appIds: string[]): Promise<void>;\n getCheckedApp(appId: string): AppForCheck | undefined;\n };\n flowApi?: {\n FLOW_API_PROVIDER: string;\n registerFlowApiProvider(): void;\n isFlowApiProvider(provider: string): boolean;\n getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n ): Promise<unknown[]>;\n collectContract(contracts: Contract[] | undefined): void;\n collectWidgetContract(contracts: Contract[] | undefined): void;\n clearCollectWidgetContract(): void;\n };\n menu?: {\n getMenuById(menuId: string): unknown;\n fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n runtimeHelpers: RuntimeHooksMenuHelpers\n ): Promise<unknown>;\n };\n images?: {\n imagesFactory(\n appId: string,\n isBuildPush?: boolean,\n version?: string\n ): ImagesFactory;\n widgetImagesFactory(\n widgetId: string,\n widgetVersion?: string\n ): ImagesFactory;\n };\n messageDispatcher?: {\n subscribe(...args: unknown[]): Promise<unknown>;\n unsubscribe(...args: unknown[]): Promise<unknown>;\n onMessage(channel: string, listener: (data: unknown) => void): void;\n onClose(listener: () => void): void;\n reset(): void;\n };\n pageView?: {\n create(): (info: PageViewInfo) => void;\n };\n}\n\nexport interface RuntimeHooksMenuHelpers {\n getStoryboardByAppId(appId: string): Storyboard | undefined;\n resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext\n ): Promise<unknown>;\n asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n options?: { ignoreSymbols?: boolean; noInject?: boolean }\n ): Promise<unknown>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get(...args) {\n const key = args[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"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 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 } = (data.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\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 }\n\n async bootstrap(data?: BootstrapData) {\n if (data) {\n this.initialize(data);\n }\n if (this.#bootstrapped) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n this.#bootstrapped = true;\n router = new Router(bootstrapData!.storyboards!);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return hasInstalledApp(appId, matchVersion);\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return (\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[]) ??\n []\n );\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;AAYA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAAG,OAAA,GAAAC,sBAAA,CAAAJ,OAAA;AACAA,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,gBAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AACA,IAAAU,OAAA,GAAAV,OAAA;AACA,IAAAW,SAAA,GAAAX,OAAA;AACA,IAAAY,gBAAA,GAAAZ,OAAA;AAEA,IAAAa,SAAA,GAAAb,OAAA;AACA,IAAAc,oBAAA,GAAAd,OAAA;AAEA,IAAIe,OAAgB;;AAEpB;AACA,IAAIC,aAAwC;AAC5C,IAAIC,MAA0B;AAkGvB,IAAIC,KAA+B;AAACC,OAAA,CAAAD,KAAA,GAAAA,KAAA;AAEpC,SAASE,aAAaA,CAACC,OAAwB,EAAE;EACtD,IAAIN,OAAO,EAAE;IACX,MAAM,IAAIO,KAAK,CAAC,iCAAiC,CAAC;EACpD;EACA,IAAAC,+BAAqB,EAAC,CAAC;EACvBJ,OAAA,CAAAD,KAAA,GAAAA,KAAK,GAAGG,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEH,KAAK;EACtB,IAAAM,oBAAc,EAACC,SAAE,EAAEC,cAAO,CAAC;EAC3BC,eAAM,CAACC,MAAM,CAACC,UAAI,CAACC,QAAQ,CAAC;EAC5BD,UAAI,CAACE,EAAE,CAAC,iBAAiB,EAAE,MAAM;IAC/BJ,eAAM,CAACC,MAAM,CAACC,UAAI,CAACC,QAAQ,CAAC;EAC9B,CAAC,CAAC;EACF,IAAAE,sBAAa,EAAC,CAAC;EACfjB,OAAO,GAAG,IAAIkB,OAAO,CAAC,CAAC;EACvB,OAAOlB,OAAO;AAChB;AAEA,SAASmB,YAAYA,CAAA,EAAG;EACtB,OAAOnB,OAAO;AAChB;;AAEA;AACA,SAASoB,mBAAmBA,CAAA,EAAG;EAC7B,MAAMC,KAAK,GAAG,IAAAC,wCAAmB,EAAC,CAAC;EACnC,IAAID,KAAK,EAAE;IACT,OAAO,SAASE,YAAYA,CAAA,EAAG;MAC7B,OAAO,IAAIC,KAAK,CAACH,KAAK,CAACI,UAAU,CAAC,CAAC,EAAE;QACnCC,GAAGA,CAAC,GAAGC,IAAI,EAAE;UACX,MAAMC,GAAG,GAAGD,IAAI,CAAC,CAAC,CAAC;UACnB,QAAQC,GAAG;YACT,KAAK,eAAe;YACpB,KAAK,iBAAiB;YACtB,KAAK,aAAa;YAClB,KAAK,sBAAsB;YAC3B,KAAK,qBAAqB;YAC1B,KAAK,uBAAuB;YAC5B,KAAK,gBAAgB;YACrB,KAAK,cAAc;YACnB,KAAK,iBAAiB;YACtB,KAAK,iBAAiB;YACtB,KAAK,kBAAkB;cACrB,OAAOC,OAAO,CAACH,GAAG,CAAC,GAAGC,IAAI,CAAC;UAC/B;QACF;MACF,CAAC,CAAC;IACJ,CAAC;EACH;AACF;;AAEA;AACO,MAAMF,UAAU,GAAGL,mBAAmB,CAAC,CAAC,IAAID,YAAY;AAACf,OAAA,CAAAqB,UAAA,GAAAA,UAAA;AAEzD,MAAMP,OAAO,CAAC;EACnB,CAACY,WAAW,GAAG,KAAK;EACpB,CAACC,YAAY,GAAG,KAAK;EAErBC,UAAUA,CAACC,IAAmB,EAAE;IAAA,IAAAC,qBAAA,EAAAC,cAAA;IAC9B,IAAI,IAAI,CAAC,CAACL,WAAW,EAAE;MACrB,MAAM,IAAIvB,KAAK,CAAC,kDAAkD,CAAC;IACrE;IACA,IAAI,CAAC,CAACuB,WAAW,GAAG,IAAI;IACxBM,sBAAsB,CAACH,IAAI,CAAC;IAC5BhC,aAAa,GAAGgC,IAAI;IACpB,MAAM;MAAEI,YAAY;MAAEC;IAAO,CAAC,IAAAJ,qBAAA,IAAAC,cAAA,GAAIF,IAAI,CAACM,QAAQ,cAAAJ,cAAA,uBAAbA,cAAA,CAAeK,YAAY,cAAAN,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAGjE;IACD,IAAIG,YAAY,KAAK,KAAK,EAAE;MAC1B,IAAAI,qCAAuB,EACrBJ,YAAY,aAAZA,YAAY,cAAZA,YAAY,GAAI,yBAAyB,EACzC,IAAI,CAACK,UACP,CAAC;IACH;IACA,IAAIJ,MAAM,KAAK,KAAK,EAAE;MACpB,IAAAK,yBAAiB,EAACL,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,mBAAmB,EAAE,IAAI,CAACI,UAAU,CAAC;IACnE;EACF;EAEA,MAAME,SAASA,CAACX,IAAoB,EAAE;IACpC,IAAIA,IAAI,EAAE;MACR,IAAI,CAACD,UAAU,CAACC,IAAI,CAAC;IACvB;IACA,IAAI,IAAI,CAAC,CAACF,YAAY,EAAE;MACtB,MAAM,IAAIxB,KAAK,CAAC,mDAAmD,CAAC;IACtE;IACA,IAAI,CAAC,CAACwB,YAAY,GAAG,IAAI;IACzB7B,MAAM,GAAG,IAAI2C,cAAM,CAAC5C,aAAa,CAAE6C,WAAY,CAAC;IAChD,MAAM5C,MAAM,CAAC0C,SAAS,CAAC,CAAC;EAC1B;EAEAG,aAAaA,CAAA,EAAG;IAAA,IAAAC,qBAAA,EAAAC,OAAA;IACd,QAAAD,qBAAA,IAAAC,OAAA,GAAO/C,MAAM,cAAA+C,OAAA,uBAANA,OAAA,CAAQF,aAAa,CAAC,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,CAAC,CAAC;EACtC;EAEAE,aAAaA,CAAA,EAAG;IAAA,IAAAC,QAAA;IACd,QAAAA,QAAA,GAAOjD,MAAM,cAAAiD,QAAA,uBAANA,QAAA,CAAQJ,aAAa,CAAC,CAAC,CAACK,UAAU;EAC3C;EAEAC,eAAeA,CAACC,KAAa,EAAEC,YAAqB,EAAW;IAC7D,OAAO,IAAAF,gCAAe,EAACC,KAAK,EAAEC,YAAY,CAAC;EAC7C;EAEAC,eAAeA,CAAA,EAAiB;IAAA,IAAAC,cAAA,EAAAC,QAAA;IAC9B,OAAO;MACL,KAAAD,cAAA,GAAGxD,aAAa,cAAAwD,cAAA,gBAAAA,cAAA,GAAbA,cAAA,CAAelB,QAAQ,cAAAkB,cAAA,uBAAvBA,cAAA,CAAyBE,YAAY;MACxC,KAAAD,QAAA,GACExD,MAAM,cAAAwD,QAAA,gBAAAA,QAAA,GAANA,QAAA,CAAQX,aAAa,CAAC,CAAC,CAACK,UAAU,cAAAM,QAAA,gBAAAA,QAAA,GAAlCA,QAAA,CAAoCE,MAAM,cAAAF,QAAA,gBAAAA,QAAA,GAA1CA,QAAA,CACInB,QAAQ,cAAAmB,QAAA,uBAFXA,QAAA,CAGAC,YAAY;MACf,0BAA0B,EAAE;IAC9B,CAAC;EACH;EAEAE,eAAeA,CAAA,EAAG;IAAA,IAAAC,eAAA,EAAAC,QAAA;IAChB,OAAO;MACL,KAAAD,eAAA,GAAG7D,aAAa,cAAA6D,eAAA,gBAAAA,eAAA,GAAbA,eAAA,CAAevB,QAAQ,cAAAuB,eAAA,uBAAvBA,eAAA,CAAyBE,IAAI;MAChC,KAAAD,QAAA,GACE7D,MAAM,cAAA6D,QAAA,gBAAAA,QAAA,GAANA,QAAA,CAAQhB,aAAa,CAAC,CAAC,CAACK,UAAU,cAAAW,QAAA,gBAAAA,QAAA,GAAlCA,QAAA,CAAoCH,MAAM,cAAAG,QAAA,gBAAAA,QAAA,GAA1CA,QAAA,CACIxB,QAAQ,cAAAwB,QAAA,uBAFXA,QAAA,CAGAC,IAAI;IACT,CAAC;EACH;EAEAC,gBAAgBA,CAAA,EAA2B;IAAA,IAAAC,eAAA;IACzC,OAAO;MACLC,UAAU,EAAE,aAAa;MACzB,KAAAD,eAAA,GAAIjE,aAAa,cAAAiE,eAAA,gBAAAA,eAAA,GAAbA,eAAA,CAAe3B,QAAQ,cAAA2B,eAAA,uBAAvBA,eAAA,CAAyBE,KAAK;IACpC,CAAC;EACH;EAEAC,oBAAoBA,CAAA,EAAG;IAAA,IAAAC,eAAA;IACrB,OAAO;MACLC,OAAO,EAAE,CAAC;MACVC,IAAI,EAAE,CAAC;MACP,KAAAF,eAAA,GAAGrE,aAAa,cAAAqE,eAAA,gBAAAA,eAAA,GAAbA,eAAA,CAAe/B,QAAQ,cAAA+B,eAAA,uBAAvBA,eAAA,CAAyBG,SAAS;IACvC,CAAC;EACH;EAEAC,WAAWA,CAAA,EAAc;IAAA,IAAAC,qBAAA,EAAAC,eAAA;IACvB,QAAAD,qBAAA,IAAAC,eAAA,GAAO3E,aAAa,cAAA2E,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,GAAO/E,aAAa,cAAA+E,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,MAAMC,SAAS,GAAG,IAAI,CAACzB,gBAAgB,CAAC,CAAC,CAACE,UAAU;IACpDiB,QAAQ,CAACO,KAAK,GAAGF,SAAS,GAAI,GAAEA,SAAU,MAAKC,SAAU,EAAC,GAAGA,SAAS;EACxE;EAEAE,YAAYA,CAAA,EAAG;IAAA,IAAAC,QAAA;IACb,QAAAA,QAAA,GAAO3F,MAAM,cAAA2F,QAAA,uBAANA,QAAA,CAAQD,YAAY,CAAC,CAAC;EAC/B;EAEAlD,UAAUA,CAACoD,MAA8B,EAAE;IACzC,OAAO,IAAAC,8BAAsB,EAACD,MAAM,EAAEE,gBAAgB,CAAC,CAAC,CAAC;EAC3D;AACF;AAAC5F,OAAA,CAAAc,OAAA,GAAAA,OAAA;AAED,SAASkB,sBAAsBA,CAACH,IAAmB,EAAE;EACnD,IAAIgE,KAAK,CAACC,OAAO,CAACjE,IAAI,CAACa,WAAW,CAAC,EAAE;IACnC,KAAK,MAAM;MAAEqD;IAAI,CAAC,IAAIlE,IAAI,CAACa,WAAW,EAAE;MACtC,IAAIqD,GAAG,CAACxF,OAAO,EAAE;QACf;QACA,MAAMyF,EAAE,GAAI,OAAMD,GAAG,CAACE,EAAG,EAAC;QAC1B;QACAC,MAAM,CAACC,OAAO,CAACJ,GAAG,CAACxF,OAAO,CAAC,CAAC6F,OAAO,CAAC,CAAC,CAACC,IAAI,EAAEC,SAAS,CAAC,KAAK;UACzD5F,UAAI,CAAC6F,iBAAiB,CAACF,IAAI,EAAEL,EAAE,EAAEM,SAAS,CAAC;QAC7C,CAAC,CAAC;QACF;QACAP,GAAG,CAACS,UAAU,GAAG9F,UAAI,CAAC+F,SAAS,CAAC,IAAI,EAAET,EAAE,CAAC,CAAC,MAAM,EAAED,GAAG,CAACW,IAAI,CAAW;QACrE;QACAR,MAAM,CAACS,IAAI,CAACZ,GAAG,CAACxF,OAAO,CAAC,CAAC6F,OAAO,CAAEC,IAAI,IAAK;UACzC3F,UAAI,CAACkG,oBAAoB,CAACP,IAAI,EAAEL,EAAE,CAAC;QACrC,CAAC,CAAC;MACJ,CAAC,MAAM;QACLD,GAAG,CAACS,UAAU,GAAGT,GAAG,CAACW,IAAI;MAC3B;IACF;EACF;EACA,IAAI,IAAAG,iBAAQ,EAAChF,IAAI,CAACM,QAAQ,CAAC,EAAE;IAC3B,IAAA2E,mBAAU,EAACjF,IAAI,CAACM,QAAQ,CAAC;EAC3B;EACA,IAAIN,IAAI,CAACkF,aAAa,EAAE;IACtB,IAAAD,mBAAU,EAACjF,IAAI,CAACkF,aAAa,CAAC;EAChC;AACF;AAEO,SAASnB,gBAAgBA,CAAA,EAAG;EAAA,IAAAoB,IAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,eAAA;EACjC,QAAAH,IAAA,IAAAC,KAAA,IAAAC,qBAAA,IAAAC,eAAA,GACEtH,aAAa,cAAAsH,eAAA,uBAAbA,eAAA,CAAeJ,aAAa,cAAAG,qBAAA,cAAAA,qBAAA,GAC5BE,+BAAqB,cAAAH,KAAA,cAAAA,KAAA,GACpBI,MAAM,CAACC,yBAAyB,cAAAN,IAAA,cAAAA,IAAA,GACjC,EAAE;AAEN;AAEO,SAASO,uBAAuBA,CAAA,EAAuB;EAAA,IAAAC,QAAA;EAC5D,QAAAA,QAAA,GAAO1H,MAAM,cAAA0H,QAAA,uBAANA,QAAA,CAAQC,WAAW,CAAC,CAAC;AAC9B;AAEO,SAASC,2BAA2BA,CACzCC,QAAgB,EACe;EAAA,IAAAC,qBAAA,EAAAC,eAAA;EAC/B,OAAO,IAAAC,gCAAe,GAAAF,qBAAA,IAAAC,eAAA,GAAChI,aAAa,cAAAgI,eAAA,uBAAbA,eAAA,CAAenF,WAAW,cAAAkF,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAAED,QAAQ,CAAC;AACpE;AAEO,SAASI,6BAA6BA,CAAA,EAAG;EAAA,IAAAC,QAAA;EAC9C,QAAAA,QAAA,GAAOlI,MAAM,cAAAkI,QAAA,uBAANA,QAAA,CAAQC,iBAAiB,CAAC,CAAC;AACpC;AAEO,SAASC,wCAAwCA,CAAChF,KAAa,EAAE;EAAA,IAAAiF,eAAA;EACtE,QAAAA,eAAA,GAAOtI,aAAa,cAAAsI,eAAA,gBAAAA,eAAA,GAAbA,eAAA,CAAezF,WAAW,cAAAyF,eAAA,uBAA1BA,eAAA,CAA4BC,IAAI,CACpCC,UAAU,IAAKA,UAAU,CAACtC,GAAG,CAACE,EAAE,KAAK/C,KACxC,CAAC;AACH;AAEO,SAASoF,iCAAiCA,CAACpF,KAAa,EAAE;EAAA,IAAAqF,qBAAA;EAC/D,QAAAA,qBAAA,GAAOL,wCAAwC,CAAChF,KAAK,CAAC,cAAAqF,qBAAA,uBAA/CA,qBAAA,CAAiDxC,GAAG;AAC7D;AAEO,IAAIyC,2BAA0D;;AAErE;AAAAxI,OAAA,CAAAwI,2BAAA,GAAAA,2BAAA;AACA,IAAIC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;EACnC3I,OAAA,CAAAwI,2BAAA,GAAAA,2BAA2B,GAAI3G,IAAI,IAAK;IACtChC,aAAa,GAAGgC,IAAqB;EACvC,CAAC;AACH"}
1
+ {"version":3,"file":"Runtime.js","names":["_i18n","require","_loader","_general","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_i18n2","_Notification","_Dialog","_injected","_hasInstalledApp","_devtools","_getV2RuntimeFromDll","runtime","bootstrapData","router","hooks","exports","createRuntime","options","Error","listenDevtoolsEagerly","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getV2RuntimeFromDll","getRuntimeV2","Proxy","getRuntime","get","args","key","Reflect","initialized","bootstrapped","initialize","data","_data$settings$preset","_data$settings","normalizeBootstrapData","notification","dialog","settings","presetBricks","loadNotificationService","loadBricks","loadDialogService","bootstrap","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","hasInstalledApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","misc","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","bricks","loadBricksImperatively","getBrickPackages","Array","isArray","app","ns","id","Object","entries","forEach","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","isObject","deepFreeze","brickPackages","_ref","_ref2","_bootstrapData$brickP","_bootstrapData7","injectedBrickPackages","window","STANDALONE_BRICK_PACKAGES","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\n BrickConf,\n RouteConf,\n ResolveConf,\n BrickPackage,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport type { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { type AppForCheck, hasInstalledApp } from \"./hasInstalledApp.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface ImagesFactory {\n get(name: string): string;\n}\n\nexport interface PageViewInfo {\n status: \"ok\" | \"failed\" | \"redirected\" | \"not-found\";\n path?: string;\n pageTitle?: string;\n}\n\nexport interface RuntimeHooks {\n auth?: {\n getAuth(): object;\n isLoggedIn(): boolean;\n authenticate?(...args: unknown[]): unknown;\n logout?(...args: unknown[]): unknown;\n };\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\n checkPermissions?: {\n checkPermissions(...actions: string[]): boolean;\n preCheckPermissions(storyboard: Storyboard): Promise<void> | undefined;\n preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n asyncComputeRealValue: (value: unknown) => Promise<unknown>\n ): Promise<void> | undefined;\n };\n checkInstalledApps?: {\n preCheckInstalledApps(\n storyboard: Storyboard,\n hasAppInBootstrap: (appId: string) => boolean\n ): void;\n waitForCheckingApps(appIds: string[]): Promise<void>;\n getCheckedApp(appId: string): AppForCheck | undefined;\n };\n flowApi?: {\n FLOW_API_PROVIDER: string;\n registerFlowApiProvider(): void;\n isFlowApiProvider(provider: string): boolean;\n getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n ): Promise<unknown[]>;\n collectContract(contracts: Contract[] | undefined): void;\n collectWidgetContract(contracts: Contract[] | undefined): void;\n clearCollectWidgetContract(): void;\n };\n menu?: {\n getMenuById(menuId: string): unknown;\n fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n runtimeHelpers: RuntimeHooksMenuHelpers\n ): Promise<unknown>;\n };\n images?: {\n imagesFactory(\n appId: string,\n isBuildPush?: boolean,\n version?: string\n ): ImagesFactory;\n widgetImagesFactory(\n widgetId: string,\n widgetVersion?: string\n ): ImagesFactory;\n };\n messageDispatcher?: {\n subscribe(...args: unknown[]): Promise<unknown>;\n unsubscribe(...args: unknown[]): Promise<unknown>;\n onMessage(channel: string, listener: (data: unknown) => void): void;\n onClose(listener: () => void): void;\n reset(): void;\n };\n pageView?: {\n create(): (info: PageViewInfo) => void;\n };\n}\n\nexport interface RuntimeHooksMenuHelpers {\n getStoryboardByAppId(appId: string): Storyboard | undefined;\n resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext\n ): Promise<unknown>;\n asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n options?: { ignoreSymbols?: boolean; noInject?: boolean }\n ): Promise<unknown>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get(...args) {\n const key = args[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"getRecentApps\":\n case \"hasInstalledApp\":\n case \"getDesktops\":\n case \"getLaunchpadSettings\":\n case \"getLaunchpadSiteMap\":\n case \"toggleLaunchpadEffect\":\n case \"applyPageTitle\":\n case \"getNavConfig\":\n case \"getFeatureFlags\":\n case \"getMiscSettings\":\n case \"getBrandSettings\":\n return Reflect.get(...args);\n }\n },\n }) as unknown as Runtime;\n };\n }\n}\n\n// istanbul ignore next\nexport const getRuntime = getRuntimeV2Factory() || getRuntimeV3;\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\n\n 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 } = (data.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\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 }\n\n async bootstrap(data?: BootstrapData) {\n if (data) {\n this.initialize(data);\n }\n if (this.#bootstrapped) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n this.#bootstrapped = true;\n router = new Router(bootstrapData!.storyboards!);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return hasInstalledApp(appId, matchVersion);\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return (\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[]) ??\n []\n );\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
@@ -26,6 +26,7 @@ import { registerCustomTemplates } from "./registerCustomTemplates.js";
26
26
  import { fulfilStoryboard } from "./fulfilStoryboard.js";
27
27
  import { RenderTag } from "./enums.js";
28
28
  import { insertPreviewRoutes } from "./insertPreviewRoutes.js";
29
+ import { devtoolsHookEmit } from "./devtools.js";
29
30
  var _storyboards = /*#__PURE__*/new WeakMap();
30
31
  var _rendering = /*#__PURE__*/new WeakMap();
31
32
  var _prevLocation = /*#__PURE__*/new WeakMap();
@@ -193,7 +194,7 @@ export class Router {
193
194
  if (_classPrivateFieldGet(_this, _rendering)) {
194
195
  _classPrivateFieldSet(_this, _nextLocation, location);
195
196
  } else {
196
- // devtoolsHookEmit("locationChange");
197
+ devtoolsHookEmit("locationChange");
197
198
  _classPrivateMethodGet(_this, _queuedRender, _queuedRender2).call(_this, location).catch(handleHttpError);
198
199
  }
199
200
  });
@@ -469,6 +470,7 @@ function _render3() {
469
470
  status: "failed"
470
471
  });
471
472
  }
473
+ devtoolsHookEmit("rendered");
472
474
  return;
473
475
  }
474
476
  } else if (!window.NO_AUTH_GUARD && hooks !== null && hooks !== void 0 && hooks.auth && !hooks.auth.isLoggedIn()) {
@@ -498,6 +500,7 @@ function _render3() {
498
500
  finishPageView === null || finishPageView === void 0 || finishPageView({
499
501
  status: "not-found"
500
502
  });
503
+ devtoolsHookEmit("rendered");
501
504
  });
502
505
  return _render3.apply(this, arguments);
503
506
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","names":["locationsAreEqual","HttpAbortError","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","registerCustomTemplates","fulfilStoryboard","RenderTag","insertPreviewRoutes","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_getBlockMessageBeforePageLave","WeakSet","_safeRedirect","_queuedRender","_render","Router","constructor","storyboards","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","writable","value","Set","_classPrivateFieldSet","history","window","addEventListener","event","message","_classPrivateMethodGet","_getBlockMessageBeforePageLave2","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","_this","renderId","listen","_ref","_asyncToGenerator","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","_objectSpread","_classPrivateFieldGet3","didPerformIncrementalRender","dispatchPageLeave","storyboard","pathname","reload","_queuedRender2","catch","_x","_x2","apply","arguments","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","concat","search","process","env","NODE_ENV","console","error","Error","replace","_x3","_queuedRender3","_render2","nextLocation","_x4","_render3","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet6","_this2","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","appChanged","id","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","appId","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","_ref2","menuRequests","menuConfs","Promise","all","mergeMenuConfs","_x5","returnNode","NO_AUTH_GUARD","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","runtimeContext","return","blockingList","rendererContext","query","URLSearchParams","sys","auth","getAuth","settings","brand","getBrandSettings","ctxStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","meta","functions","collectContract","contracts","stores","routes","setInitialMenuRequests","result","child","route","dispatchBeforePageLoad","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 { 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 { RenderBrick, RenderRoot, RuntimeContext } 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 { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #prevLocation!: NextLocation;\n #nextLocation?: NextLocation;\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 this.#prevLocation = history.location;\n let renderId = 0;\n history.listen(async (location, action) => {\n const currentRenderId = ++renderId;\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 (this.#prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.#prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...this.#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) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(location);\n }\n\n // Ignore stale renders\n if (renderId !== currentRenderId) {\n return;\n }\n\n if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n\n abortPendingRequest();\n this.#prevLocation = location;\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 if (this.#rendering) {\n this.#nextLocation = location;\n } else {\n // devtoolsHookEmit(\"locationChange\");\n this.#queuedRender(location).catch(handleHttpError);\n }\n });\n return this.#queuedRender(history.location);\n }\n\n async #queuedRender(location: NextLocation): Promise<void> {\n this.#rendering = true;\n try {\n await this.#render(location);\n } finally {\n this.#rendering = false;\n if (this.#nextLocation) {\n const nextLocation = this.#nextLocation;\n this.#nextLocation = undefined;\n await this.#queuedRender(nextLocation);\n }\n }\n }\n\n async #render(location: NextLocation): Promise<void> {\n this.#renderId = uniqueId(\"render-id-1\");\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 if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = (this.#currentApp = storyboard?.app);\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 // 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 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 },\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 },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n menuRequests: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper }\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 output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n []\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n await routeHelper.mergeMenus(output.menuRequests);\n rendererContext.setInitialMenuRequests(output.menuRequests);\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 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\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 }\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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"}
1
+ {"version":3,"file":"Router.js","names":["locationsAreEqual","HttpAbortError","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","registerCustomTemplates","fulfilStoryboard","RenderTag","insertPreviewRoutes","devtoolsHookEmit","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_getBlockMessageBeforePageLave","WeakSet","_safeRedirect","_queuedRender","_render","Router","constructor","storyboards","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","writable","value","Set","_classPrivateFieldSet","history","window","addEventListener","event","message","_classPrivateMethodGet","_getBlockMessageBeforePageLave2","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","_this","renderId","listen","_ref","_asyncToGenerator","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","_objectSpread","_classPrivateFieldGet3","didPerformIncrementalRender","dispatchPageLeave","storyboard","pathname","reload","_queuedRender2","catch","_x","_x2","apply","arguments","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","concat","search","process","env","NODE_ENV","console","error","Error","replace","_x3","_queuedRender3","_render2","nextLocation","_x4","_render3","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet6","_this2","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","appChanged","id","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","appId","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","_ref2","menuRequests","menuConfs","Promise","all","mergeMenuConfs","_x5","returnNode","NO_AUTH_GUARD","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","runtimeContext","return","blockingList","rendererContext","query","URLSearchParams","sys","auth","getAuth","settings","brand","getBrandSettings","ctxStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","meta","functions","collectContract","contracts","stores","routes","setInitialMenuRequests","result","child","route","dispatchBeforePageLoad","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 { 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 { RenderBrick, RenderRoot, RuntimeContext } 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 { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #prevLocation!: NextLocation;\n #nextLocation?: NextLocation;\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 this.#prevLocation = history.location;\n let renderId = 0;\n history.listen(async (location, action) => {\n const currentRenderId = ++renderId;\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 (this.#prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.#prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...this.#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) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(location);\n }\n\n // Ignore stale renders\n if (renderId !== currentRenderId) {\n return;\n }\n\n if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n\n abortPendingRequest();\n this.#prevLocation = location;\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 if (this.#rendering) {\n this.#nextLocation = location;\n } else {\n devtoolsHookEmit(\"locationChange\");\n this.#queuedRender(location).catch(handleHttpError);\n }\n });\n return this.#queuedRender(history.location);\n }\n\n async #queuedRender(location: NextLocation): Promise<void> {\n this.#rendering = true;\n try {\n await this.#render(location);\n } finally {\n this.#rendering = false;\n if (this.#nextLocation) {\n const nextLocation = this.#nextLocation;\n this.#nextLocation = undefined;\n await this.#queuedRender(nextLocation);\n }\n }\n }\n\n async #render(location: NextLocation): Promise<void> {\n this.#renderId = uniqueId(\"render-id-1\");\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 if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = (this.#currentApp = storyboard?.app);\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 // 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 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 },\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 },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n menuRequests: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper }\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 output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n []\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n await routeHelper.mergeMenus(output.menuRequests);\n rendererContext.setInitialMenuRequests(output.menuRequests);\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 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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"}
@@ -53,6 +53,7 @@ function getRuntimeV2Factory() {
53
53
  var key = arguments.length <= 1 ? undefined : arguments[1];
54
54
  switch (key) {
55
55
  case "getCurrentApp":
56
+ case "getRecentApps":
56
57
  case "hasInstalledApp":
57
58
  case "getDesktops":
58
59
  case "getLaunchpadSettings":
@@ -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","runtime","bootstrapData","router","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getRuntimeV2","Proxy","getRuntime","get","key","arguments","length","undefined","Reflect","_initialized","WeakMap","_bootstrapped","constructor","_classPrivateFieldInitSpec","writable","value","initialize","data","_data$settings$preset","_data$settings","_classPrivateFieldGet","_classPrivateFieldSet","normalizeBootstrapData","notification","dialog","settings","presetBricks","loadBricks","bootstrap","_this","_asyncToGenerator","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","_objectSpread","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","misc","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","concat","getNavConfig","_router5","bricks","getBrickPackages","Array","isArray","_loop","app","ns","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","brickPackages","_ref2","_ref3","_bootstrapData$brickP","_bootstrapData7","window","STANDALONE_BRICK_PACKAGES","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\n BrickConf,\n RouteConf,\n ResolveConf,\n BrickPackage,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport type { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { type AppForCheck, hasInstalledApp } from \"./hasInstalledApp.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface ImagesFactory {\n get(name: string): string;\n}\n\nexport interface PageViewInfo {\n status: \"ok\" | \"failed\" | \"redirected\" | \"not-found\";\n path?: string;\n pageTitle?: string;\n}\n\nexport interface RuntimeHooks {\n auth?: {\n getAuth(): object;\n isLoggedIn(): boolean;\n authenticate?(...args: unknown[]): unknown;\n logout?(...args: unknown[]): unknown;\n };\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\n checkPermissions?: {\n checkPermissions(...actions: string[]): boolean;\n preCheckPermissions(storyboard: Storyboard): Promise<void> | undefined;\n preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n asyncComputeRealValue: (value: unknown) => Promise<unknown>\n ): Promise<void> | undefined;\n };\n checkInstalledApps?: {\n preCheckInstalledApps(\n storyboard: Storyboard,\n hasAppInBootstrap: (appId: string) => boolean\n ): void;\n waitForCheckingApps(appIds: string[]): Promise<void>;\n getCheckedApp(appId: string): AppForCheck | undefined;\n };\n flowApi?: {\n FLOW_API_PROVIDER: string;\n registerFlowApiProvider(): void;\n isFlowApiProvider(provider: string): boolean;\n getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n ): Promise<unknown[]>;\n collectContract(contracts: Contract[] | undefined): void;\n collectWidgetContract(contracts: Contract[] | undefined): void;\n clearCollectWidgetContract(): void;\n };\n menu?: {\n getMenuById(menuId: string): unknown;\n fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n runtimeHelpers: RuntimeHooksMenuHelpers\n ): Promise<unknown>;\n };\n images?: {\n imagesFactory(\n appId: string,\n isBuildPush?: boolean,\n version?: string\n ): ImagesFactory;\n widgetImagesFactory(\n widgetId: string,\n widgetVersion?: string\n ): ImagesFactory;\n };\n messageDispatcher?: {\n subscribe(...args: unknown[]): Promise<unknown>;\n unsubscribe(...args: unknown[]): Promise<unknown>;\n onMessage(channel: string, listener: (data: unknown) => void): void;\n onClose(listener: () => void): void;\n reset(): void;\n };\n pageView?: {\n create(): (info: PageViewInfo) => void;\n };\n}\n\nexport interface RuntimeHooksMenuHelpers {\n getStoryboardByAppId(appId: string): Storyboard | undefined;\n resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext\n ): Promise<unknown>;\n asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n options?: { ignoreSymbols?: boolean; noInject?: boolean }\n ): Promise<unknown>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get(...args) {\n const key = args[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"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 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 } = (data.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\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 }\n\n async bootstrap(data?: BootstrapData) {\n if (data) {\n this.initialize(data);\n }\n if (this.#bootstrapped) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n this.#bootstrapped = true;\n router = new Router(bootstrapData!.storyboards!);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return hasInstalledApp(appId, matchVersion);\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return (\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[]) ??\n []\n );\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Runtime.js","names":["i18n","initializeI18n","loadBricksImperatively","deepFreeze","isObject","moment","createHistory","matchStoryboard","Router","NS","locales","loadNotificationService","loadDialogService","injectedBrickPackages","hasInstalledApp","listenDevtoolsEagerly","getV2RuntimeFromDll","runtime","bootstrapData","router","hooks","createRuntime","options","Error","locale","language","on","Runtime","getRuntimeV3","getRuntimeV2Factory","v2Kit","getRuntimeV2","Proxy","getRuntime","get","key","arguments","length","undefined","Reflect","_initialized","WeakMap","_bootstrapped","constructor","_classPrivateFieldInitSpec","writable","value","initialize","data","_data$settings$preset","_data$settings","_classPrivateFieldGet","_classPrivateFieldSet","normalizeBootstrapData","notification","dialog","settings","presetBricks","loadBricks","bootstrap","_this","_asyncToGenerator","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","appId","matchVersion","getFeatureFlags","_bootstrapData","_router3","_objectSpread","featureFlags","config","getMiscSettings","_bootstrapData2","_router4","misc","getBrandSettings","_bootstrapData3","base_title","brand","getLaunchpadSettings","_bootstrapData4","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","concat","getNavConfig","_router5","bricks","getBrickPackages","Array","isArray","_loop","app","ns","id","Object","entries","forEach","_ref","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","brickPackages","_ref2","_ref3","_bootstrapData$brickP","_bootstrapData7","window","STANDALONE_BRICK_PACKAGES","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","_bootstrapData9","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\n BrickConf,\n RouteConf,\n ResolveConf,\n BrickPackage,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport type { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\nimport { type AppForCheck, hasInstalledApp } from \"./hasInstalledApp.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { listenDevtoolsEagerly } from \"./devtools.js\";\nimport { getV2RuntimeFromDll } from \"../getV2RuntimeFromDll.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface ImagesFactory {\n get(name: string): string;\n}\n\nexport interface PageViewInfo {\n status: \"ok\" | \"failed\" | \"redirected\" | \"not-found\";\n path?: string;\n pageTitle?: string;\n}\n\nexport interface RuntimeHooks {\n auth?: {\n getAuth(): object;\n isLoggedIn(): boolean;\n authenticate?(...args: unknown[]): unknown;\n logout?(...args: unknown[]): unknown;\n };\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\n checkPermissions?: {\n checkPermissions(...actions: string[]): boolean;\n preCheckPermissions(storyboard: Storyboard): Promise<void> | undefined;\n preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n asyncComputeRealValue: (value: unknown) => Promise<unknown>\n ): Promise<void> | undefined;\n };\n checkInstalledApps?: {\n preCheckInstalledApps(\n storyboard: Storyboard,\n hasAppInBootstrap: (appId: string) => boolean\n ): void;\n waitForCheckingApps(appIds: string[]): Promise<void>;\n getCheckedApp(appId: string): AppForCheck | undefined;\n };\n flowApi?: {\n FLOW_API_PROVIDER: string;\n registerFlowApiProvider(): void;\n isFlowApiProvider(provider: string): boolean;\n getArgsOfFlowApi(\n provider: string,\n originalArgs: unknown[],\n method?: string\n ): Promise<unknown[]>;\n collectContract(contracts: Contract[] | undefined): void;\n collectWidgetContract(contracts: Contract[] | undefined): void;\n clearCollectWidgetContract(): void;\n };\n menu?: {\n getMenuById(menuId: string): unknown;\n fetchMenuById(\n menuId: string,\n runtimeContext: RuntimeContext,\n runtimeHelpers: RuntimeHooksMenuHelpers\n ): Promise<unknown>;\n };\n images?: {\n imagesFactory(\n appId: string,\n isBuildPush?: boolean,\n version?: string\n ): ImagesFactory;\n widgetImagesFactory(\n widgetId: string,\n widgetVersion?: string\n ): ImagesFactory;\n };\n messageDispatcher?: {\n subscribe(...args: unknown[]): Promise<unknown>;\n unsubscribe(...args: unknown[]): Promise<unknown>;\n onMessage(channel: string, listener: (data: unknown) => void): void;\n onClose(listener: () => void): void;\n reset(): void;\n };\n pageView?: {\n create(): (info: PageViewInfo) => void;\n };\n}\n\nexport interface RuntimeHooksMenuHelpers {\n getStoryboardByAppId(appId: string): Storyboard | undefined;\n resolveData(\n resolveConf: ResolveConf,\n runtimeContext: RuntimeContext\n ): Promise<unknown>;\n asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n options?: { ignoreSymbols?: boolean; noInject?: boolean }\n ): Promise<unknown>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n listenDevtoolsEagerly();\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nfunction getRuntimeV3() {\n return runtime;\n}\n\n// istanbul ignore next\nfunction getRuntimeV2Factory() {\n const v2Kit = getV2RuntimeFromDll();\n if (v2Kit) {\n return function getRuntimeV2() {\n return new Proxy(v2Kit.getRuntime(), {\n get(...args) {\n const key = args[1];\n switch (key) {\n case \"getCurrentApp\":\n case \"getRecentApps\":\n case \"hasInstalledApp\":\n case \"getDesktops\":\n case \"getLaunchpadSettings\":\n case \"getLaunchpadSiteMap\":\n case \"toggleLaunchpadEffect\":\n case \"applyPageTitle\":\n case \"getNavConfig\":\n case \"getFeatureFlags\":\n case \"getMiscSettings\":\n case \"getBrandSettings\":\n return Reflect.get(...args);\n }\n },\n }) as unknown as Runtime;\n };\n }\n}\n\n// istanbul ignore next\nexport const getRuntime = getRuntimeV2Factory() || getRuntimeV3;\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\n\n 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 } = (data.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\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 }\n\n async bootstrap(data?: BootstrapData) {\n if (data) {\n this.initialize(data);\n }\n if (this.#bootstrapped) {\n throw new Error(\"The runtime cannot be bootstrapped more than once\");\n }\n this.#bootstrapped = true;\n router = new Router(bootstrapData!.storyboards!);\n await router.bootstrap();\n }\n\n getRecentApps() {\n return router?.getRecentApps() ?? {};\n }\n\n getCurrentApp() {\n return router?.getRecentApps().currentApp;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return hasInstalledApp(appId, matchVersion);\n }\n\n getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return (\n bootstrapData?.brickPackages ??\n injectedBrickPackages ??\n (window.STANDALONE_BRICK_PACKAGES as BrickPackage[]) ??\n []\n );\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\n// istanbul ignore next\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@next-core/runtime",
3
- "version": "1.22.12",
3
+ "version": "1.22.14",
4
4
  "homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
5
5
  "license": "GPL-3.0",
6
6
  "repository": {
@@ -65,5 +65,5 @@
65
65
  "@next-core/build-next-libs": "^1.0.7",
66
66
  "@next-core/test-next": "^1.0.10"
67
67
  },
68
- "gitHead": "c5318d26a1be4d4b5e6285897c38f063706cb98e"
68
+ "gitHead": "cf5210ee0a91098c31ca2dbb688f070f503713f2"
69
69
  }