@next-core/runtime 1.10.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +3 -2
  2. package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  3. package/dist/cjs/internal/Router.js +5 -7
  4. package/dist/cjs/internal/Router.js.map +1 -1
  5. package/dist/cjs/internal/Runtime.js.map +1 -1
  6. package/dist/cjs/internal/bindListeners.js +5 -4
  7. package/dist/cjs/internal/bindListeners.js.map +1 -1
  8. package/dist/cjs/internal/checkPermissions.js +5 -5
  9. package/dist/cjs/internal/checkPermissions.js.map +1 -1
  10. package/dist/cjs/internal/compute/evaluate.js +6 -6
  11. package/dist/cjs/internal/compute/evaluate.js.map +1 -1
  12. package/dist/cjs/internal/data/getProviderBrick.js +6 -6
  13. package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
  14. package/dist/cjs/internal/data/resolveData.js +3 -2
  15. package/dist/cjs/internal/data/resolveData.js.map +1 -1
  16. package/dist/cjs/internal/hasInstalledApp.js +40 -0
  17. package/dist/cjs/internal/hasInstalledApp.js.map +1 -0
  18. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +3 -2
  19. package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
  20. package/dist/esm/internal/Router.js +6 -8
  21. package/dist/esm/internal/Router.js.map +1 -1
  22. package/dist/esm/internal/Runtime.js.map +1 -1
  23. package/dist/esm/internal/bindListeners.js +5 -4
  24. package/dist/esm/internal/bindListeners.js.map +1 -1
  25. package/dist/esm/internal/checkPermissions.js +5 -5
  26. package/dist/esm/internal/checkPermissions.js.map +1 -1
  27. package/dist/esm/internal/compute/evaluate.js +5 -5
  28. package/dist/esm/internal/compute/evaluate.js.map +1 -1
  29. package/dist/esm/internal/data/getProviderBrick.js +7 -7
  30. package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
  31. package/dist/esm/internal/data/resolveData.js +3 -2
  32. package/dist/esm/internal/data/resolveData.js.map +1 -1
  33. package/dist/esm/internal/hasInstalledApp.js +34 -0
  34. package/dist/esm/internal/hasInstalledApp.js.map +1 -0
  35. package/dist/types/internal/Runtime.d.ts +19 -2
  36. package/dist/types/internal/hasInstalledApp.d.ts +3 -0
  37. package/package.json +6 -7
  38. package/dist/cjs/internal/checkInstalledApps.js +0 -105
  39. package/dist/cjs/internal/checkInstalledApps.js.map +0 -1
  40. package/dist/cjs/internal/compute/collectMemberCallUsage.js +0 -30
  41. package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +0 -1
  42. package/dist/cjs/internal/data/CollectContracts.js +0 -29
  43. package/dist/cjs/internal/data/CollectContracts.js.map +0 -1
  44. package/dist/cjs/internal/data/FlowApi.js +0 -150
  45. package/dist/cjs/internal/data/FlowApi.js.map +0 -1
  46. package/dist/cjs/internal/data/FlowApiProvider.js +0 -122
  47. package/dist/cjs/internal/data/FlowApiProvider.js.map +0 -1
  48. package/dist/esm/internal/checkInstalledApps.js +0 -100
  49. package/dist/esm/internal/checkInstalledApps.js.map +0 -1
  50. package/dist/esm/internal/compute/collectMemberCallUsage.js +0 -22
  51. package/dist/esm/internal/compute/collectMemberCallUsage.js.map +0 -1
  52. package/dist/esm/internal/data/CollectContracts.js +0 -20
  53. package/dist/esm/internal/data/CollectContracts.js.map +0 -1
  54. package/dist/esm/internal/data/FlowApi.js +0 -156
  55. package/dist/esm/internal/data/FlowApi.js.map +0 -1
  56. package/dist/esm/internal/data/FlowApiProvider.js +0 -122
  57. package/dist/esm/internal/data/FlowApiProvider.js.map +0 -1
  58. package/dist/types/internal/checkInstalledApps.d.ts +0 -6
  59. package/dist/types/internal/compute/collectMemberCallUsage.d.ts +0 -8
  60. package/dist/types/internal/data/CollectContracts.d.ts +0 -5
  61. package/dist/types/internal/data/FlowApi.d.ts +0 -30
  62. package/dist/types/internal/data/FlowApiProvider.d.ts +0 -20
@@ -10,8 +10,9 @@ var _DataStore = require("../data/DataStore.js");
10
10
  var _setupTemplateProxy = require("./setupTemplateProxy.js");
11
11
  var _setupUseBrickInTemplate = require("./setupUseBrickInTemplate.js");
12
12
  var _Renderer = require("../Renderer.js");
13
- var _CollectContracts = require("../data/CollectContracts.js");
13
+ var _Runtime = require("../Runtime.js");
14
14
  function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHostProperties) {
15
+ var _hooks$flowApi;
15
16
  const tplStateStoreId = (0, _lodash.uniqueId)("tpl-state-");
16
17
  const runtimeContext = {
17
18
  ...hostBrick.runtimeContext,
@@ -32,7 +33,7 @@ function expandCustomTemplate(tplTagName, brickConf, hostBrick, asyncHostPropert
32
33
  state,
33
34
  contracts
34
35
  } = _CustomTemplates.customTemplates.get(tplTagName);
35
- (0, _CollectContracts.collectWidgetContract)(contracts);
36
+ _Runtime.hooks === null || _Runtime.hooks === void 0 ? void 0 : (_hooks$flowApi = _Runtime.hooks.flowApi) === null || _hooks$flowApi === void 0 ? void 0 : _hooks$flowApi.collectWidgetContract(contracts);
36
37
  tplStateStore.define(state, runtimeContext, asyncHostProperties);
37
38
  const {
38
39
  slots: originalExternalSlots,
@@ -1 +1 @@
1
- {"version":3,"file":"expandCustomTemplate.js","names":["_lodash","require","_CustomTemplates","_DataStore","_setupTemplateProxy","_setupUseBrickInTemplate","_Renderer","_CollectContracts","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","uniqueId","runtimeContext","forEachItem","formStateStoreId","tplStateStore","DataStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","customTemplates","get","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","childrenToSlots","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","transpiledSlots","fromEntries","slotName","slotConf","_slotConf$bricks","setupUseBrickInTemplate","setupTemplateProxy"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { collectWidgetContract } from \"../data/CollectContracts.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEachItem` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.formStateStoreId;\n\n const tplStateStore = new DataStore(\"STATE\", hostBrick);\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostProperties);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostProperties,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, hostContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n hostContext: TemplateHostContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots),\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"expandCustomTemplate.js","names":["_lodash","require","_CustomTemplates","_DataStore","_setupTemplateProxy","_setupUseBrickInTemplate","_Renderer","_Runtime","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","_hooks$flowApi","tplStateStoreId","uniqueId","runtimeContext","forEachItem","formStateStoreId","tplStateStore","DataStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","customTemplates","get","hooks","flowApi","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","childrenToSlots","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","transpiledSlots","fromEntries","slotName","slotConf","_slotConf$bricks","setupUseBrickInTemplate","setupTemplateProxy"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { hooks } from \"../Runtime.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEachItem` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.formStateStoreId;\n\n const tplStateStore = new DataStore(\"STATE\", hostBrick);\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n hooks?.flowApi?.collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostProperties);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostProperties,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, hostContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n hostContext: TemplateHostContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots),\n };\n}\n"],"mappings":"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"}
@@ -31,10 +31,8 @@ var _markAsComputed = require("./compute/markAsComputed.js");
31
31
  var _handleHttpError = require("../handleHttpError.js");
32
32
  var _abortController = require("./abortController.js");
33
33
  var _registerCustomTemplates = require("./registerCustomTemplates.js");
34
- var _CollectContracts = require("./data/CollectContracts.js");
35
34
  var _fulfilStoryboard = require("./fulfilStoryboard.js");
36
35
  var _enums = require("./enums.js");
37
- var _checkInstalledApps = require("./checkInstalledApps.js");
38
36
  var _insertPreviewRoutes = require("./insertPreviewRoutes.js");
39
37
  var _storyboards = /*#__PURE__*/new WeakMap();
40
38
  var _rendering = /*#__PURE__*/new WeakMap();
@@ -247,11 +245,11 @@ async function _queuedRender2(location) {
247
245
  }
248
246
  }
249
247
  async function _render2(location) {
250
- var _classPrivateFieldGet5;
248
+ var _hooks$flowApi, _classPrivateFieldGet5;
251
249
  (0, _classPrivateFieldSet2.default)(this, _renderId, (0, _lodash.uniqueId)("render-id-1"));
252
250
  (0, _markAsComputed.resetAllComputedMarks)();
253
251
  (0, _resolveData.clearResolveCache)();
254
- (0, _CollectContracts.clearCollectWidgetContract)();
252
+ _Runtime.hooks === null || _Runtime.hooks === void 0 ? void 0 : (_hooks$flowApi = _Runtime.hooks.flowApi) === null || _hooks$flowApi === void 0 ? void 0 : _hooks$flowApi.clearCollectWidgetContract();
255
253
  const history = (0, _history3.getHistory)();
256
254
  history.unblock();
257
255
  const storyboard = (0, _matchStoryboard.matchStoryboard)((0, _classPrivateFieldGet6.default)(this, _storyboards), location.pathname);
@@ -312,8 +310,8 @@ async function _render2(location) {
312
310
  }
313
311
  };
314
312
  if (currentApp) {
315
- var _storyboard$meta, _storyboard$meta2;
316
- (0, _checkInstalledApps.preCheckInstalledApps)(storyboard);
313
+ var _hooks$checkInstalled, _storyboard$meta, _hooks$flowApi2, _storyboard$meta2;
314
+ _Runtime.hooks === null || _Runtime.hooks === void 0 ? void 0 : (_hooks$checkInstalled = _Runtime.hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 ? void 0 : _hooks$checkInstalled.preCheckInstalledApps(storyboard, appId => !!(0, _Runtime._internalApiGetAppInBootstrapData)(appId));
317
315
  const runtimeContext = (0, _classPrivateFieldSet2.default)(this, _runtimeContext, {
318
316
  app: currentApp,
319
317
  location,
@@ -332,7 +330,7 @@ async function _render2(location) {
332
330
  (0, _classPrivateFieldSet2.default)(this, _navConfig, undefined);
333
331
  (0, _registerCustomTemplates.registerCustomTemplates)(storyboard);
334
332
  (0, _StoryboardFunctions.registerStoryboardFunctions)((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
335
- (0, _CollectContracts.collectContract)((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
333
+ _Runtime.hooks === null || _Runtime.hooks === void 0 ? void 0 : (_hooks$flowApi2 = _Runtime.hooks.flowApi) === null || _hooks$flowApi2 === void 0 ? void 0 : _hooks$flowApi2.collectContract((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
336
334
  let failed = false;
337
335
  let output;
338
336
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","names":["_history2","require","_loader","_http","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_checkPermissions","_RendererContext","_themeAndMode","_Runtime","_auth","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_registerCustomTemplates","_CollectContracts","_fulfilStoryboard","_enums","_checkInstalledApps","_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","_classPrivateFieldGet6","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","listen","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet3","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","locationsAreEqual","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","pathname","isOutsideApp","reload","_queuedRender2","catch","handleHttpError","exports","detail","_classPrivateFieldGet4","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","search","process","env","NODE_ENV","console","error","Error","replace","_render2","nextLocation","_classPrivateFieldGet5","uniqueId","resetAllComputedMarks","clearResolveCache","clearCollectWidgetContract","app","fulfilStoryboard","appChanged","id","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","unmountTree","item","dispatchOnUnmount","dispose","clear","setTheme","getLocalAppsTheme","theme","setMode","dispatchEvent","CustomEvent","_storyboard$meta","_storyboard$meta2","preCheckInstalledApps","runtimeContext","query","URLSearchParams","sys","getAuth","getPageInfo","ctxStore","DataStore","pendingPermissionsPreCheck","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","rendererContext","RendererContext","registerCustomTemplates","registerStoryboardFunctions","meta","functions","collectContract","contracts","failed","output","renderRoutes","insertPreviewRoutes","routes","unauthenticated","redirect","path","flushStableLoadBricks","Promise","all","blockingList","values","map","store","waitForAll","menuConfs","menuRequests","mergeMenuConfs","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","node","BRICK","type","properties","textContent","httpErrorToString","return","child","route","dispatchBeforePageLoad","applyTheme","applyMode","mountTree","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","isLoggedIn","navConfig","breadcrumb","menuConf","overwrite","items","push"],"sources":["../../../src/internal/Router.ts"],"sourcesContent":["import { Action, locationsAreEqual } from \"history\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\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 { RenderOutput, renderRoutes } 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 { preCheckPermissions } from \"./checkPermissions.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport {\n applyMode,\n applyTheme,\n getLocalAppsTheme,\n setMode,\n setTheme,\n} from \"../themeAndMode.js\";\nimport { getRuntime } from \"./Runtime.js\";\nimport { getAuth, isLoggedIn } from \"../auth.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 {\n clearCollectWidgetContract,\n collectContract,\n} from \"./data/CollectContracts.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { preCheckInstalledApps } from \"./checkInstalledApps.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 history.listen((location, action) => {\n let ignoreRendering = false;\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 if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n abortPendingRequest();\n this.#prevLocation = location;\n this.#rendererContext?.dispatchPageLeave();\n // this.locationContext.messageDispatcher.reset();\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 clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\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 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\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\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 if (currentApp) {\n preCheckInstalledApps(storyboard);\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...getAuth(),\n ...getPageInfo(),\n },\n ctxStore: new DataStore(\"CTX\"),\n pendingPermissionsPreCheck: [preCheckPermissions(storyboard)],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n });\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\"\n ));\n this.#navConfig = undefined;\n\n registerCustomTemplates(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, currentApp);\n collectContract(storyboard.meta?.contracts);\n\n let failed = false;\n let output: RenderOutput;\n try {\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext\n );\n if (output.unauthenticated) {\n redirectToLogin();\n return;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n ...[\n runtimeContext.ctxStore,\n ...runtimeContext.tplStateStoreMap.values(),\n ...runtimeContext.formStateStoreMap.values(),\n ].map((store) => store.waitForAll()),\n // Todo: load processors only when they would used in current rendering.\n // loadProcessorsImperatively(\n // strictCollectMemberUsage(\n // [storyboard.routes, storyboard.meta?.customTemplates],\n // \"PROCESSORS\",\n // 2\n // ),\n // getBrickPackages()\n // ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n const menuConfs = await Promise.all(output.menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n\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 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: renderRoot,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\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 }\n\n return;\n }\n } else if (!window.NO_AUTH_GUARD && !isLoggedIn()) {\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 }\n}\n\nfunction mergeMenuConfs(menuConfs: (StaticMenuConf | undefined)[]) {\n const navConfig = {\n breadcrumb: [] as BreadcrumbItemConf[],\n };\n for (const menuConf of menuConfs) {\n if (menuConf) {\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 }\n return navConfig;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Router.js","names":["_history2","require","_loader","_http","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_checkPermissions","_RendererContext","_themeAndMode","_Runtime","_auth","_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","_classPrivateFieldGet6","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","listen","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet3","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","locationsAreEqual","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","pathname","isOutsideApp","reload","_queuedRender2","catch","handleHttpError","exports","detail","_classPrivateFieldGet4","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","search","process","env","NODE_ENV","console","error","Error","replace","_render2","nextLocation","_hooks$flowApi","_classPrivateFieldGet5","uniqueId","resetAllComputedMarks","clearResolveCache","hooks","flowApi","clearCollectWidgetContract","app","fulfilStoryboard","appChanged","id","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","unmountTree","item","dispatchOnUnmount","dispose","clear","setTheme","getLocalAppsTheme","theme","setMode","dispatchEvent","CustomEvent","_hooks$checkInstalled","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","appId","_internalApiGetAppInBootstrapData","runtimeContext","query","URLSearchParams","sys","getAuth","getPageInfo","ctxStore","DataStore","pendingPermissionsPreCheck","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","rendererContext","RendererContext","registerCustomTemplates","registerStoryboardFunctions","meta","functions","collectContract","contracts","failed","output","renderRoutes","insertPreviewRoutes","routes","unauthenticated","redirect","path","flushStableLoadBricks","Promise","all","blockingList","values","map","store","waitForAll","menuConfs","menuRequests","mergeMenuConfs","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","node","BRICK","type","properties","textContent","httpErrorToString","return","child","route","dispatchBeforePageLoad","applyTheme","applyMode","mountTree","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","isLoggedIn","navConfig","breadcrumb","menuConf","overwrite","items","push"],"sources":["../../../src/internal/Router.ts"],"sourcesContent":["import { Action, locationsAreEqual } from \"history\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\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 { RenderOutput, renderRoutes } 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 { preCheckPermissions } from \"./checkPermissions.js\";\nimport { RendererContext } 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 { getAuth, isLoggedIn } from \"../auth.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 history.listen((location, action) => {\n let ignoreRendering = false;\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 if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n abortPendingRequest();\n this.#prevLocation = location;\n this.#rendererContext?.dispatchPageLeave();\n // this.locationContext.messageDispatcher.reset();\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 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 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\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\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 if (currentApp) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...getAuth(),\n ...getPageInfo(),\n },\n ctxStore: new DataStore(\"CTX\"),\n pendingPermissionsPreCheck: [preCheckPermissions(storyboard)],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n });\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\"\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 try {\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext\n );\n if (output.unauthenticated) {\n redirectToLogin();\n return;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n ...[\n runtimeContext.ctxStore,\n ...runtimeContext.tplStateStoreMap.values(),\n ...runtimeContext.formStateStoreMap.values(),\n ].map((store) => store.waitForAll()),\n // Todo: load processors only when they would used in current rendering.\n // loadProcessorsImperatively(\n // strictCollectMemberUsage(\n // [storyboard.routes, storyboard.meta?.customTemplates],\n // \"PROCESSORS\",\n // 2\n // ),\n // getBrickPackages()\n // ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n const menuConfs = await Promise.all(output.menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n\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 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: renderRoot,\n },\n blockingList: [],\n menuRequests: [],\n };\n }\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 }\n\n return;\n }\n } else if (!window.NO_AUTH_GUARD && !isLoggedIn()) {\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 }\n}\n\nfunction mergeMenuConfs(menuConfs: (StaticMenuConf | undefined)[]) {\n const navConfig = {\n breadcrumb: [] as BreadcrumbItemConf[],\n };\n for (const menuConf of menuConfs) {\n if (menuConf) {\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 }\n return navConfig;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Runtime.js","names":["_i18n","require","_loader","_general","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_i18n2","_Notification","_Dialog","_injected","runtime","bootstrapData","router","hooks","exports","createRuntime","options","Error","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntime","initialized","bootstrapped","initialize","data","_data$settings$preset","_data$settings","normalizeBootstrapData","notification","dialog","settings","presetBricks","loadNotificationService","loadBricks","loadDialogService","bootstrap","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData","_bootstrapData$settin","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","featureFlags","config","getMiscSettings","_bootstrapData2","_bootstrapData2$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData3","_bootstrapData3$setti","base_title","brand","getLaunchpadSettings","_bootstrapData4","_bootstrapData4$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","bricks","loadBricksImperatively","getBrickPackages","Array","isArray","app","ns","id","Object","entries","forEach","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","isObject","deepFreeze","brickPackages","_bootstrapData$brickP","_bootstrapData7","injectedBrickPackages","_internalApiLoadBricks","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData9","_bootstrapData9$story","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n} from \"@next-core/types\";\nimport { i18n, initializeI18n } from \"@next-core/i18n\";\nimport { loadBricksImperatively } from \"@next-core/loader\";\nimport { deepFreeze, isObject } from \"@next-core/utils/general\";\nimport moment from \"moment\";\nimport \"moment/locale/zh-cn.js\";\nimport { createHistory } from \"../history.js\";\nimport { matchStoryboard } from \"./matchStoryboard.js\";\nimport { Router } from \"./Router.js\";\nimport { NS, locales } from \"./i18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\nimport { injectedBrickPackages } from \"./injected.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface RuntimeHooks {\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\n\n initialize(data: BootstrapData) {\n if (this.#initialized) {\n throw new Error(\"The runtime cannot be initialized more than once\");\n }\n this.#initialized = true;\n normalizeBootstrapData(data);\n bootstrapData = data;\n const { notification, dialog } = (data.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\n if (notification !== false) {\n loadNotificationService(\n notification ?? \"shoelace.show-notification\",\n this.loadBricks\n );\n }\n if (dialog !== false) {\n loadDialogService(dialog ?? \"shoelace.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 getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? injectedBrickPackages;\n}\n\nexport function _internalApiLoadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Runtime.js","names":["_i18n","require","_loader","_general","_moment","_interopRequireDefault","_history","_matchStoryboard","_Router","_i18n2","_Notification","_Dialog","_injected","runtime","bootstrapData","router","hooks","exports","createRuntime","options","Error","initializeI18n","NS","locales","moment","locale","i18n","language","on","createHistory","Runtime","getRuntime","initialized","bootstrapped","initialize","data","_data$settings$preset","_data$settings","normalizeBootstrapData","notification","dialog","settings","presetBricks","loadNotificationService","loadBricks","loadDialogService","bootstrap","Router","storyboards","getRecentApps","_router$getRecentApps","_router","getCurrentApp","_router2","currentApp","getFeatureFlags","_bootstrapData","_bootstrapData$settin","_router3","_router3$getRecentApp","_router3$getRecentApp2","_router3$getRecentApp3","featureFlags","config","getMiscSettings","_bootstrapData2","_bootstrapData2$setti","_router4","_router4$getRecentApp","_router4$getRecentApp2","_router4$getRecentApp3","misc","getBrandSettings","_bootstrapData3","_bootstrapData3$setti","base_title","brand","getLaunchpadSettings","_bootstrapData4","_bootstrapData4$setti","columns","rows","launchpad","getDesktops","_bootstrapData$deskto","_bootstrapData5","desktops","getLaunchpadSiteMap","_bootstrapData$siteSo","_bootstrapData6","siteSort","toggleLaunchpadEffect","open","document","body","classList","toggle","applyPageTitle","pageTitle","baseTitle","title","getNavConfig","_router5","bricks","loadBricksImperatively","getBrickPackages","Array","isArray","app","ns","id","Object","entries","forEach","lang","resources","addResourceBundle","localeName","getFixedT","name","keys","removeResourceBundle","isObject","deepFreeze","brickPackages","_bootstrapData$brickP","_bootstrapData7","injectedBrickPackages","_internalApiLoadBricks","_internalApiGetRenderId","_router6","getRenderId","_internalApiMatchStoryboard","pathname","_bootstrapData$storyb","_bootstrapData8","matchStoryboard","_internalApiGetRuntimeContext","_router7","getRuntimeContext","_internalApiGetStoryboardInBootstrapData","appId","_bootstrapData9","_bootstrapData9$story","find","storyboard","_internalApiGetAppInBootstrapData","_internalApiGetStoryb","_test_only_setBootstrapData","process","env","NODE_ENV"],"sources":["../../../src/internal/Runtime.ts"],"sourcesContent":["import type {\n RuntimeStoryboard,\n BootstrapSettings,\n FeatureFlags,\n BootstrapData,\n Contract,\n Storyboard,\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 } from \"./hasInstalledApp.js\";\n\nlet runtime: Runtime;\n\n// Allow inject bootstrap data in a runtime other than Brick Next.\nlet bootstrapData: BootstrapData | undefined;\nlet router: Router | undefined;\n\nexport interface RuntimeOptions {\n hooks?: RuntimeHooks;\n}\n\nexport interface RuntimeHooks {\n fulfilStoryboard?: (storyboard: RuntimeStoryboard) => Promise<void>;\n validatePermissions?: typeof PermissionApi_validatePermissions;\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}\n\nexport let hooks: RuntimeHooks | undefined;\n\nexport function createRuntime(options?: RuntimeOptions) {\n if (runtime) {\n throw new Error(\"Cannot create multiple runtimes\");\n }\n hooks = options?.hooks;\n initializeI18n(NS, locales);\n moment.locale(i18n.language);\n i18n.on(\"languageChanged\", () => {\n moment.locale(i18n.language);\n });\n createHistory();\n runtime = new Runtime();\n return runtime;\n}\n\nexport function getRuntime() {\n return runtime;\n}\n\nexport class Runtime {\n #initialized = false;\n #bootstrapped = false;\n\n initialize(data: BootstrapData) {\n if (this.#initialized) {\n throw new Error(\"The runtime cannot be initialized more than once\");\n }\n this.#initialized = true;\n normalizeBootstrapData(data);\n bootstrapData = data;\n const { notification, dialog } = (data.settings?.presetBricks ?? {}) as {\n notification?: string | false;\n dialog?: string | false;\n };\n if (notification !== false) {\n loadNotificationService(\n notification ?? \"shoelace.show-notification\",\n this.loadBricks\n );\n }\n if (dialog !== false) {\n loadDialogService(dialog ?? \"shoelace.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 getFeatureFlags(): FeatureFlags {\n return {\n ...bootstrapData?.settings?.featureFlags,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.featureFlags,\n \"migrate-to-brick-next-v3\": true,\n };\n }\n\n getMiscSettings() {\n return {\n ...bootstrapData?.settings?.misc,\n ...(\n router?.getRecentApps().currentApp?.config\n ?.settings as BootstrapSettings\n )?.misc,\n };\n }\n\n getBrandSettings(): Record<string, string> {\n return {\n base_title: \"DevOps 管理专家\",\n ...(bootstrapData?.settings?.brand as Record<string, string>),\n // ...(kernel.getOriginFaviconHref()\n // ? { favicon: kernel.getOriginFaviconHref() }\n // : {})\n };\n }\n\n getLaunchpadSettings() {\n return {\n columns: 7,\n rows: 4,\n ...bootstrapData?.settings?.launchpad,\n };\n }\n\n getDesktops(): unknown[] {\n return bootstrapData?.desktops ?? [];\n }\n\n getLaunchpadSiteMap(): unknown[] {\n return bootstrapData?.siteSort ?? [];\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n\n getNavConfig() {\n return router?.getNavConfig();\n }\n\n loadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n }\n}\n\nfunction normalizeBootstrapData(data: BootstrapData) {\n if (Array.isArray(data.storyboards)) {\n for (const { app } of data.storyboards) {\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `tmp/${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18n.getFixedT(null, ns)(\"name\", app.name) as string;\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18n.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n if (isObject(data.settings)) {\n deepFreeze(data.settings);\n }\n if (data.brickPackages) {\n deepFreeze(data.brickPackages);\n }\n}\n\nexport function getBrickPackages() {\n return bootstrapData?.brickPackages ?? injectedBrickPackages;\n}\n\nexport function _internalApiLoadBricks(bricks: string[] | Set<string>) {\n return loadBricksImperatively(bricks, getBrickPackages());\n}\n\nexport function _internalApiGetRenderId(): string | undefined {\n return router?.getRenderId();\n}\n\nexport function _internalApiMatchStoryboard(\n pathname: string\n): RuntimeStoryboard | undefined {\n return matchStoryboard(bootstrapData?.storyboards ?? [], pathname);\n}\n\nexport function _internalApiGetRuntimeContext() {\n return router?.getRuntimeContext();\n}\n\nexport function _internalApiGetStoryboardInBootstrapData(appId: string) {\n return bootstrapData?.storyboards?.find(\n (storyboard) => storyboard.app.id === appId\n );\n}\n\nexport function _internalApiGetAppInBootstrapData(appId: string) {\n return _internalApiGetStoryboardInBootstrapData(appId)?.app;\n}\n\nexport let _test_only_setBootstrapData: (data: BootstrapData) => void;\n\nif (process.env.NODE_ENV === \"test\") {\n _test_only_setBootstrapData = (data) => {\n bootstrapData = data as BootstrapData;\n };\n}\n"],"mappings":"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"}
@@ -14,6 +14,7 @@ exports.isUseProviderHandler = isUseProviderHandler;
14
14
  exports.listenerFactory = listenerFactory;
15
15
  exports.unbindListeners = unbindListeners;
16
16
  var _cook = require("@next-core/cook");
17
+ var _general = require("@next-core/utils/general");
17
18
  var _checkIf = require("./compute/checkIf.js");
18
19
  var _computeRealValue = require("./compute/computeRealValue.js");
19
20
  var _history = require("../history.js");
@@ -24,10 +25,9 @@ var _setProperties = require("./compute/setProperties.js");
24
25
  var _themeAndMode = require("../themeAndMode.js");
25
26
  var _utils = require("./CustomTemplates/utils.js");
26
27
  var _handleHttpError = require("../handleHttpError.js");
27
- var _FlowApi = require("./data/FlowApi.js");
28
28
  var _Notification = require("../Notification.js");
29
29
  var _utils2 = require("./FormRenderer/utils.js");
30
- var _general = require("@next-core/utils/general");
30
+ var _Runtime = require("./Runtime.js");
31
31
  function bindListeners(brick, eventsMap, runtimeContext) {
32
32
  if (!eventsMap) {
33
33
  return;
@@ -293,9 +293,10 @@ async function brickCallback(event, target, handler, method, runtimeContext, run
293
293
  return;
294
294
  }
295
295
  const task = async () => {
296
+ var _hooks$flowApi;
296
297
  let computedArgs = argsFactory(handler.args, runtimeContext, event, options);
297
- if (isUseProviderHandler(handler)) {
298
- computedArgs = await (0, _FlowApi.getArgsOfFlowApi)(handler.useProvider, computedArgs, method);
298
+ if (isUseProviderHandler(handler) && _Runtime.hooks !== null && _Runtime.hooks !== void 0 && (_hooks$flowApi = _Runtime.hooks.flowApi) !== null && _hooks$flowApi !== void 0 && _hooks$flowApi.isFlowApiProvider(handler.useProvider)) {
299
+ computedArgs = await _Runtime.hooks.flowApi.getArgsOfFlowApi(handler.useProvider, computedArgs, method);
299
300
  }
300
301
  return target[method](...computedArgs);
301
302
  };