@next-core/runtime 1.11.0 → 1.12.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.
- package/dist/cjs/auth.js +17 -47
- package/dist/cjs/auth.js.map +1 -1
- package/dist/cjs/index.js +8 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +4 -4
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/Router.js +4 -6
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +2 -0
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +10 -5
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/getGeneralGlobals.js +3 -2
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/cjs/internal/matchRoutes.js +2 -2
- package/dist/cjs/internal/matchRoutes.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +2 -0
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/cjs/internal/test_only.js +22 -0
- package/dist/cjs/internal/test_only.js.map +1 -0
- package/dist/esm/auth.js +20 -46
- package/dist/esm/auth.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/Renderer.js +5 -5
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/Router.js +4 -6
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +2 -0
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +11 -6
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getGeneralGlobals.js +3 -2
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/esm/internal/matchRoutes.js +2 -2
- package/dist/esm/internal/matchRoutes.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +2 -0
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/test_only.js +15 -0
- package/dist/esm/internal/test_only.js.map +1 -0
- package/dist/types/auth.d.ts +8 -19
- package/dist/types/index.d.ts +2 -1
- package/dist/types/internal/Runtime.d.ts +26 -2
- package/dist/types/internal/secret_internals.d.ts +2 -0
- package/dist/types/internal/test_only.d.ts +5 -0
- package/package.json +5 -6
- package/dist/cjs/internal/checkPermissions.js +0 -102
- package/dist/cjs/internal/checkPermissions.js.map +0 -1
- package/dist/cjs/internal/menu/computeMenuData.js +0 -37
- package/dist/cjs/internal/menu/computeMenuData.js.map +0 -1
- package/dist/cjs/internal/menu/constants.js +0 -13
- package/dist/cjs/internal/menu/constants.js.map +0 -1
- package/dist/cjs/internal/menu/fetchMenuById.js +0 -102
- package/dist/cjs/internal/menu/fetchMenuById.js.map +0 -1
- package/dist/cjs/internal/menu/fetchMenuTitle.js +0 -37
- package/dist/cjs/internal/menu/fetchMenuTitle.js.map +0 -1
- package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js +0 -27
- package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js.map +0 -1
- package/dist/cjs/internal/menu/interfaces.js +0 -4
- package/dist/cjs/internal/menu/interfaces.js.map +0 -1
- package/dist/cjs/internal/menu/loadDynamicMenuItems.js +0 -28
- package/dist/cjs/internal/menu/loadDynamicMenuItems.js.map +0 -1
- package/dist/cjs/internal/menu/mergeMenu.js +0 -74
- package/dist/cjs/internal/menu/mergeMenu.js.map +0 -1
- package/dist/cjs/internal/menu/reorderMenuItems.js +0 -20
- package/dist/cjs/internal/menu/reorderMenuItems.js.map +0 -1
- package/dist/esm/internal/checkPermissions.js +0 -107
- package/dist/esm/internal/checkPermissions.js.map +0 -1
- package/dist/esm/internal/menu/computeMenuData.js +0 -38
- package/dist/esm/internal/menu/computeMenuData.js.map +0 -1
- package/dist/esm/internal/menu/constants.js +0 -4
- package/dist/esm/internal/menu/constants.js.map +0 -1
- package/dist/esm/internal/menu/fetchMenuById.js +0 -104
- package/dist/esm/internal/menu/fetchMenuById.js.map +0 -1
- package/dist/esm/internal/menu/fetchMenuTitle.js +0 -38
- package/dist/esm/internal/menu/fetchMenuTitle.js.map +0 -1
- package/dist/esm/internal/menu/getMenusOfStandaloneApp.js +0 -19
- package/dist/esm/internal/menu/getMenusOfStandaloneApp.js.map +0 -1
- package/dist/esm/internal/menu/interfaces.js +0 -8
- package/dist/esm/internal/menu/interfaces.js.map +0 -1
- package/dist/esm/internal/menu/loadDynamicMenuItems.js +0 -28
- package/dist/esm/internal/menu/loadDynamicMenuItems.js.map +0 -1
- package/dist/esm/internal/menu/mergeMenu.js +0 -78
- package/dist/esm/internal/menu/mergeMenu.js.map +0 -1
- package/dist/esm/internal/menu/reorderMenuItems.js +0 -14
- package/dist/esm/internal/menu/reorderMenuItems.js.map +0 -1
- package/dist/types/internal/checkPermissions.d.ts +0 -17
- package/dist/types/internal/menu/computeMenuData.d.ts +0 -7
- package/dist/types/internal/menu/constants.d.ts +0 -3
- package/dist/types/internal/menu/fetchMenuById.d.ts +0 -3
- package/dist/types/internal/menu/fetchMenuTitle.d.ts +0 -2
- package/dist/types/internal/menu/getMenusOfStandaloneApp.d.ts +0 -2
- package/dist/types/internal/menu/interfaces.d.ts +0 -74
- package/dist/types/internal/menu/loadDynamicMenuItems.d.ts +0 -3
- package/dist/types/internal/menu/mergeMenu.d.ts +0 -3
- package/dist/types/internal/menu/reorderMenuItems.d.ts +0 -2
|
@@ -102,6 +102,8 @@ function unmountUseBrick({
|
|
|
102
102
|
rendererContext.dispatchOnUnmount();
|
|
103
103
|
rendererContext.dispose();
|
|
104
104
|
}
|
|
105
|
+
|
|
106
|
+
/** For v2 compatibility of `doTransform` from brick-kit. */
|
|
105
107
|
function legacyDoTransform(data, to, options) {
|
|
106
108
|
if (options) {
|
|
107
109
|
throw new Error("Legacy doTransform does not support options in v3");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret_internals.js","names":["_loader","require","_lodash","_Runtime","_Renderer","_RendererContext","_mount","_enums","_computeRealValue","_isStrictMode","_CustomTemplates","_registerAppI18n","renderUseBrick","useBrick","data","_runtimeContext$tplSt","_runtimeContext$formS","_output$node","tplStateStoreScope","formStateStoreScope","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","transform","strict","isStrictMode","warnAboutStrictMode","output","renderBrick","properties","flushStableLoadBricks","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","legacyDoTransform","to","options","computeRealValue","noInject","updateStoryboard","appId","storyboardPatch","storyboard","_internalApiGetStoryboardInBootstrapData","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","registerAppI18n","updateStoryboardByRoute","newRoute","match","getKey","route","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","customTemplates","define","bricks","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","pick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","length","updateSnippetPreviewSettings","exports","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BrickConf,\n CustomTemplate,\n RouteConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n} from \"./Runtime.js\";\nimport { renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const formStateStoreScope: DataStore<\"FORM_STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n formStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n runtimeContext.formStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"fragment\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...[...tplStateStoreScope, ...formStateStoreScope].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret_internals.js","names":["_loader","require","_lodash","_Runtime","_Renderer","_RendererContext","_mount","_enums","_computeRealValue","_isStrictMode","_CustomTemplates","_registerAppI18n","renderUseBrick","useBrick","data","_runtimeContext$tplSt","_runtimeContext$formS","_output$node","tplStateStoreScope","formStateStoreScope","runtimeContext","_internalApiGetRuntimeContext","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","rendererContext","RendererContext","renderRoot","tag","RenderTag","ROOT","createPortal","transform","strict","isStrictMode","warnAboutStrictMode","output","renderBrick","properties","flushStableLoadBricks","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","element","portalRoot","document","querySelector","createElement","appendChild","mountTree","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","mountResult","unmountTree","remove","dispatchOnUnmount","dispose","legacyDoTransform","to","options","computeRealValue","noInject","updateStoryboard","appId","storyboardPatch","storyboard","_internalApiGetStoryboardInBootstrapData","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","registerAppI18n","updateStoryboardByRoute","newRoute","match","getKey","route","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","customTemplates","define","bricks","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","pick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","length","updateSnippetPreviewSettings","exports","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BrickConf,\n CustomTemplate,\n RouteConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n} from \"./Runtime.js\";\nimport { renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\n\nexport type { RuntimeContext } from \"./interfaces.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const formStateStoreScope: DataStore<\"FORM_STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n formStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n runtimeContext.formStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"fragment\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...[...tplStateStoreScope, ...formStateStoreScope].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\n/** For v2 compatibility of `doTransform` from brick-kit. */\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.__test_only = void 0;
|
|
7
|
+
var _Runtime = require("./Runtime.js");
|
|
8
|
+
var _resolveData = require("./data/resolveData.js");
|
|
9
|
+
var _computeRealValue = require("./compute/computeRealValue.js");
|
|
10
|
+
// istanbul ignore file
|
|
11
|
+
|
|
12
|
+
let __test_only;
|
|
13
|
+
exports.__test_only = __test_only;
|
|
14
|
+
if (process.env.NODE_ENV === "test") {
|
|
15
|
+
exports.__test_only = __test_only = {
|
|
16
|
+
setBootstrapData: _Runtime._test_only_setBootstrapData,
|
|
17
|
+
getStoryboardByAppId: _Runtime._internalApiGetStoryboardInBootstrapData,
|
|
18
|
+
resolveData: _resolveData.resolveData,
|
|
19
|
+
asyncComputeRealValue: _computeRealValue.asyncComputeRealValue
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=test_only.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test_only.js","names":["_Runtime","require","_resolveData","_computeRealValue","__test_only","exports","process","env","NODE_ENV","setBootstrapData","_test_only_setBootstrapData","getStoryboardByAppId","_internalApiGetStoryboardInBootstrapData","resolveData","asyncComputeRealValue"],"sources":["../../../src/internal/test_only.ts"],"sourcesContent":["// istanbul ignore file\nimport type { BootstrapData } from \"@next-core/types\";\nimport {\n RuntimeHooksMenuHelpers,\n _internalApiGetStoryboardInBootstrapData,\n _test_only_setBootstrapData,\n} from \"./Runtime.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\n\nexport let __test_only: RuntimeHooksMenuHelpers & {\n setBootstrapData(data: BootstrapData): void;\n};\n\nif (process.env.NODE_ENV === \"test\") {\n __test_only = {\n setBootstrapData: _test_only_setBootstrapData,\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue,\n };\n}\n"],"mappings":";;;;;;AAEA,IAAAA,QAAA,GAAAC,OAAA;AAKA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,iBAAA,GAAAF,OAAA;AARA;;AAUO,IAAIG,WAEV;AAACC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAEF,IAAIE,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;EACnCH,OAAA,CAAAD,WAAA,GAAAA,WAAW,GAAG;IACZK,gBAAgB,EAAEC,oCAA2B;IAC7CC,oBAAoB,EAAEC,iDAAwC;IAC9DC,WAAW,EAAXA,wBAAW;IACXC,qBAAqB,EAArBA;EACF,CAAC;AACH"}
|
package/dist/esm/auth.js
CHANGED
|
@@ -1,57 +1,31 @@
|
|
|
1
|
-
|
|
2
|
-
//
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
org: newAuth.org,
|
|
13
|
-
username: newAuth.username,
|
|
14
|
-
userInstanceId: newAuth.userInstanceId,
|
|
15
|
-
loginFrom: newAuth.loginFrom,
|
|
16
|
-
accessRule: newAuth.accessRule,
|
|
17
|
-
isAdmin: newAuth.isAdmin,
|
|
18
|
-
csrfToken: newAuth.csrfToken,
|
|
19
|
-
license: newAuth.license,
|
|
20
|
-
userShowValue: newAuth.userShowValue
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// re-init analytics to set user_id
|
|
24
|
-
// if (userAnalytics.initialized) {
|
|
25
|
-
// userAnalytics.setUserId(newAuth.userInstanceId);
|
|
26
|
-
// }
|
|
1
|
+
// istanbul ignore file
|
|
2
|
+
// Todo(steve): This file will be removed in the future.
|
|
3
|
+
import { hooks } from "./internal/Runtime.js";
|
|
4
|
+
|
|
5
|
+
/** @deprecated import it from "@next-core/easyops-runtime" instead */
|
|
6
|
+
export function authenticate() {
|
|
7
|
+
var _hooks$auth, _hooks$auth$authentic;
|
|
8
|
+
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
9
|
+
args[_key] = arguments[_key];
|
|
10
|
+
}
|
|
11
|
+
hooks === null || hooks === void 0 ? void 0 : (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 ? void 0 : (_hooks$auth$authentic = _hooks$auth.authenticate) === null || _hooks$auth$authentic === void 0 ? void 0 : _hooks$auth$authentic.call(_hooks$auth, ...args);
|
|
27
12
|
}
|
|
28
13
|
|
|
29
|
-
/**
|
|
30
|
-
* 获取当前登录认证信息。
|
|
31
|
-
*
|
|
32
|
-
* @returns 当前登录认证信息。
|
|
33
|
-
*/
|
|
14
|
+
/** @deprecated import it from "@next-core/easyops-runtime" instead */
|
|
34
15
|
export function getAuth() {
|
|
35
|
-
|
|
16
|
+
var _hooks$auth2;
|
|
17
|
+
return hooks === null || hooks === void 0 ? void 0 : (_hooks$auth2 = hooks.auth) === null || _hooks$auth2 === void 0 ? void 0 : _hooks$auth2.getAuth();
|
|
36
18
|
}
|
|
37
19
|
|
|
38
|
-
/** @
|
|
20
|
+
/** @deprecated import it from "@next-core/easyops-runtime" instead */
|
|
39
21
|
export function logout() {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
}
|
|
43
|
-
resetPermissionPreChecks();
|
|
44
|
-
|
|
45
|
-
// re-init analytics to clear user_id
|
|
46
|
-
// userAnalytics.setUserId();
|
|
22
|
+
var _hooks$auth3, _hooks$auth3$logout;
|
|
23
|
+
return hooks === null || hooks === void 0 ? void 0 : (_hooks$auth3 = hooks.auth) === null || _hooks$auth3 === void 0 ? void 0 : (_hooks$auth3$logout = _hooks$auth3.logout) === null || _hooks$auth3$logout === void 0 ? void 0 : _hooks$auth3$logout.call(_hooks$auth3);
|
|
47
24
|
}
|
|
48
25
|
|
|
49
|
-
/**
|
|
50
|
-
* 查看当前是否已登录。
|
|
51
|
-
*
|
|
52
|
-
* @returns 当前是否已登录。
|
|
53
|
-
*/
|
|
26
|
+
/** @deprecated import it from "@next-core/easyops-runtime" instead */
|
|
54
27
|
export function isLoggedIn() {
|
|
55
|
-
|
|
28
|
+
var _hooks$auth4;
|
|
29
|
+
return hooks === null || hooks === void 0 ? void 0 : (_hooks$auth4 = hooks.auth) === null || _hooks$auth4 === void 0 ? void 0 : _hooks$auth4.isLoggedIn();
|
|
56
30
|
}
|
|
57
31
|
//# sourceMappingURL=auth.js.map
|
package/dist/esm/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","names":["
|
|
1
|
+
{"version":3,"file":"auth.js","names":["hooks","authenticate","_hooks$auth","_hooks$auth$authentic","_len","arguments","length","args","Array","_key","auth","call","getAuth","_hooks$auth2","logout","_hooks$auth3","_hooks$auth3$logout","isLoggedIn","_hooks$auth4"],"sources":["../../src/auth.ts"],"sourcesContent":["// istanbul ignore file\n// Todo(steve): This file will be removed in the future.\nimport { hooks } from \"./internal/Runtime.js\";\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function authenticate(...args: unknown[]): void {\n hooks?.auth?.authenticate?.(...args);\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function getAuth() {\n return hooks?.auth?.getAuth();\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function logout() {\n return hooks?.auth?.logout?.();\n}\n\n/** @deprecated import it from \"@next-core/easyops-runtime\" instead */\nexport function isLoggedIn() {\n return hooks?.auth?.isLoggedIn();\n}\n"],"mappings":"AAAA;AACA;AACA,SAASA,KAAK,QAAQ,uBAAuB;;AAE7C;AACA,OAAO,SAASC,YAAYA,CAAA,EAA2B;EAAA,IAAAC,WAAA,EAAAC,qBAAA;EAAA,SAAAC,IAAA,GAAAC,SAAA,CAAAC,MAAA,EAAvBC,IAAI,OAAAC,KAAA,CAAAJ,IAAA,GAAAK,IAAA,MAAAA,IAAA,GAAAL,IAAA,EAAAK,IAAA;IAAJF,IAAI,CAAAE,IAAA,IAAAJ,SAAA,CAAAI,IAAA;EAAA;EAClCT,KAAK,aAALA,KAAK,wBAAAE,WAAA,GAALF,KAAK,CAAEU,IAAI,cAAAR,WAAA,wBAAAC,qBAAA,GAAXD,WAAA,CAAaD,YAAY,cAAAE,qBAAA,uBAAzBA,qBAAA,CAAAQ,IAAA,CAAAT,WAAA,EAA4B,GAAGK,IAAI,CAAC;AACtC;;AAEA;AACA,OAAO,SAASK,OAAOA,CAAA,EAAG;EAAA,IAAAC,YAAA;EACxB,OAAOb,KAAK,aAALA,KAAK,wBAAAa,YAAA,GAALb,KAAK,CAAEU,IAAI,cAAAG,YAAA,uBAAXA,YAAA,CAAaD,OAAO,EAAE;AAC/B;;AAEA;AACA,OAAO,SAASE,MAAMA,CAAA,EAAG;EAAA,IAAAC,YAAA,EAAAC,mBAAA;EACvB,OAAOhB,KAAK,aAALA,KAAK,wBAAAe,YAAA,GAALf,KAAK,CAAEU,IAAI,cAAAK,YAAA,wBAAAC,mBAAA,GAAXD,YAAA,CAAaD,MAAM,cAAAE,mBAAA,uBAAnBA,mBAAA,CAAAL,IAAA,CAAAI,YAAA,CAAuB;AAChC;;AAEA;AACA,OAAO,SAASE,UAAUA,CAAA,EAAG;EAAA,IAAAC,YAAA;EAC3B,OAAOlB,KAAK,aAALA,KAAK,wBAAAkB,YAAA,GAALlB,KAAK,CAAEU,IAAI,cAAAQ,YAAA,uBAAXA,YAAA,CAAaD,UAAU,EAAE;AAClC"}
|
package/dist/esm/index.js
CHANGED
|
@@ -10,6 +10,7 @@ export * from "./createRoot.js";
|
|
|
10
10
|
export { createRuntime, getRuntime } from "./internal/Runtime.js";
|
|
11
11
|
import * as __secret_internals from "./internal/secret_internals.js";
|
|
12
12
|
export { __secret_internals };
|
|
13
|
+
export { __test_only } from "./internal/test_only.js";
|
|
13
14
|
export { getCssPropertyValue, getCurrentTheme, getCurrentMode, batchSetAppsLocalTheme, applyTheme } from "./themeAndMode.js";
|
|
14
15
|
export { checkIfOfComputed, checkIfByTransform } from "./internal/compute/checkIf.js";
|
|
15
16
|
export { registerWidgetFunctions } from "./internal/compute/WidgetFunctions.js";
|
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["createRuntime","getRuntime","__secret_internals","getCssPropertyValue","getCurrentTheme","getCurrentMode","batchSetAppsLocalTheme","applyTheme","checkIfOfComputed","checkIfByTransform","registerWidgetFunctions","registerWidgetI18n","StoryboardFunctionRegistryFactory","matchPath","Notification","Dialog"],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./auth.js\";\nexport * from \"./CustomProcessors.js\";\nexport * from \"./CustomTemplates.js\";\nexport * from \"./fetchByProvider.js\";\nexport * from \"./getBasePath.js\";\nexport * from \"./getPageInfo.js\";\nexport * from \"./handleHttpError.js\";\nexport * from \"./history.js\";\nexport * from \"./createRoot.js\";\nexport {\n createRuntime,\n getRuntime,\n type RuntimeOptions,\n type RuntimeHooks,\n} from \"./internal/Runtime.js\";\nimport * as __secret_internals from \"./internal/secret_internals.js\";\nexport { __secret_internals };\nexport {\n getCssPropertyValue,\n getCurrentTheme,\n getCurrentMode,\n batchSetAppsLocalTheme,\n applyTheme,\n} from \"./themeAndMode.js\";\nexport {\n checkIfOfComputed,\n checkIfByTransform,\n} from \"./internal/compute/checkIf.js\";\nexport { registerWidgetFunctions } from \"./internal/compute/WidgetFunctions.js\";\nexport { registerWidgetI18n } from \"./internal/compute/WidgetI18n.js\";\nexport { StoryboardFunctionRegistryFactory } from \"./StoryboardFunctionRegistry.js\";\nexport { matchPath } from \"./internal/matchPath.js\";\nexport { Notification, type NotificationOptions } from \"./Notification.js\";\nexport { Dialog, type DialogOptions } from \"./Dialog.js\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,uBAAuB;AACrC,cAAc,sBAAsB;AACpC,cAAc,sBAAsB;AACpC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,sBAAsB;AACpC,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,SACEA,aAAa,EACbC,UAAU,
|
|
1
|
+
{"version":3,"file":"index.js","names":["createRuntime","getRuntime","__secret_internals","__test_only","getCssPropertyValue","getCurrentTheme","getCurrentMode","batchSetAppsLocalTheme","applyTheme","checkIfOfComputed","checkIfByTransform","registerWidgetFunctions","registerWidgetI18n","StoryboardFunctionRegistryFactory","matchPath","Notification","Dialog"],"sources":["../../src/index.ts"],"sourcesContent":["export * from \"./auth.js\";\nexport * from \"./CustomProcessors.js\";\nexport * from \"./CustomTemplates.js\";\nexport * from \"./fetchByProvider.js\";\nexport * from \"./getBasePath.js\";\nexport * from \"./getPageInfo.js\";\nexport * from \"./handleHttpError.js\";\nexport * from \"./history.js\";\nexport * from \"./createRoot.js\";\nexport {\n createRuntime,\n getRuntime,\n type RuntimeOptions,\n type RuntimeHooks,\n type RuntimeHooksMenuHelpers,\n} from \"./internal/Runtime.js\";\nimport * as __secret_internals from \"./internal/secret_internals.js\";\nexport { __secret_internals };\nexport { __test_only } from \"./internal/test_only.js\";\nexport {\n getCssPropertyValue,\n getCurrentTheme,\n getCurrentMode,\n batchSetAppsLocalTheme,\n applyTheme,\n} from \"./themeAndMode.js\";\nexport {\n checkIfOfComputed,\n checkIfByTransform,\n} from \"./internal/compute/checkIf.js\";\nexport { registerWidgetFunctions } from \"./internal/compute/WidgetFunctions.js\";\nexport { registerWidgetI18n } from \"./internal/compute/WidgetI18n.js\";\nexport { StoryboardFunctionRegistryFactory } from \"./StoryboardFunctionRegistry.js\";\nexport { matchPath } from \"./internal/matchPath.js\";\nexport { Notification, type NotificationOptions } from \"./Notification.js\";\nexport { Dialog, type DialogOptions } from \"./Dialog.js\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,uBAAuB;AACrC,cAAc,sBAAsB;AACpC,cAAc,sBAAsB;AACpC,cAAc,kBAAkB;AAChC,cAAc,kBAAkB;AAChC,cAAc,sBAAsB;AACpC,cAAc,cAAc;AAC5B,cAAc,iBAAiB;AAC/B,SACEA,aAAa,EACbC,UAAU,QAIL,uBAAuB;AAC9B,OAAO,KAAKC,kBAAkB,MAAM,gCAAgC;AACpE,SAASA,kBAAkB;AAC3B,SAASC,WAAW,QAAQ,yBAAyB;AACrD,SACEC,mBAAmB,EACnBC,eAAe,EACfC,cAAc,EACdC,sBAAsB,EACtBC,UAAU,QACL,mBAAmB;AAC1B,SACEC,iBAAiB,EACjBC,kBAAkB,QACb,+BAA+B;AACtC,SAASC,uBAAuB,QAAQ,uCAAuC;AAC/E,SAASC,kBAAkB,QAAQ,kCAAkC;AACrE,SAASC,iCAAiC,QAAQ,iCAAiC;AACnF,SAASC,SAAS,QAAQ,yBAAyB;AACnD,SAASC,YAAY,QAAkC,mBAAmB;AAC1E,SAASC,MAAM,QAA4B,aAAa"}
|
|
@@ -12,14 +12,13 @@ import { asyncCheckBrickIf } from "./compute/checkIf.js";
|
|
|
12
12
|
import { asyncComputeRealProperties } from "./compute/computeRealProperties.js";
|
|
13
13
|
import { resolveData } from "./data/resolveData.js";
|
|
14
14
|
import { asyncComputeRealValue } from "./compute/computeRealValue.js";
|
|
15
|
-
import { preCheckPermissionsForBrickOrRoute } from "./checkPermissions.js";
|
|
16
15
|
import { listenOnTrackingContext } from "./compute/listenOnTrackingContext.js";
|
|
17
16
|
import { matchRoutes } from "./matchRoutes.js";
|
|
18
17
|
import { symbolForAsyncComputedPropsFromHost, symbolForTPlExternalForEachItem, symbolForTplStateStoreId } from "./CustomTemplates/constants.js";
|
|
19
18
|
import { expandCustomTemplate } from "./CustomTemplates/expandCustomTemplate.js";
|
|
20
19
|
import { getTagNameOfCustomTemplate, getTplStateStore } from "./CustomTemplates/utils.js";
|
|
21
20
|
import { customTemplates } from "../CustomTemplates.js";
|
|
22
|
-
import { getBrickPackages } from "./Runtime.js";
|
|
21
|
+
import { getBrickPackages, hooks } from "./Runtime.js";
|
|
23
22
|
import { RenderTag } from "./enums.js";
|
|
24
23
|
import { getTracks } from "./compute/getTracks.js";
|
|
25
24
|
import { isStrictMode, warnAboutStrictMode } from "../isStrictMode.js";
|
|
@@ -45,12 +44,13 @@ function _renderRoutes() {
|
|
|
45
44
|
break;
|
|
46
45
|
default:
|
|
47
46
|
{
|
|
47
|
+
var _hooks$checkPermissio;
|
|
48
48
|
var route = output.route = matched.route;
|
|
49
49
|
var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
|
|
50
50
|
match: matched.match
|
|
51
51
|
});
|
|
52
52
|
runtimeContext.ctxStore.define(route.context, runtimeContext);
|
|
53
|
-
runtimeContext.pendingPermissionsPreCheck.push(preCheckPermissionsForBrickOrRoute(route, runtimeContext));
|
|
53
|
+
runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 ? void 0 : (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissionsForBrickOrRoute(route, value => asyncComputeRealValue(value, runtimeContext)));
|
|
54
54
|
|
|
55
55
|
// Currently, this is only used for brick size-checking: these bricks
|
|
56
56
|
// will be loaded before page rendering, but they will NOT be rendered.
|
|
@@ -129,7 +129,7 @@ export function renderBrick(_x13, _x14, _x15, _x16, _x17, _x18) {
|
|
|
129
129
|
}
|
|
130
130
|
function _renderBrick() {
|
|
131
131
|
_renderBrick = _asyncToGenerator(function* (returnNode, brickConf, _runtimeContext, rendererContext, slotId, key) {
|
|
132
|
-
var _runtimeContext$app;
|
|
132
|
+
var _hooks$checkPermissio2, _runtimeContext$app;
|
|
133
133
|
var tplStack = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : new Map();
|
|
134
134
|
var output = {
|
|
135
135
|
blockingList: [],
|
|
@@ -191,7 +191,7 @@ function _renderBrick() {
|
|
|
191
191
|
runtimeContext.ctxStore.define(context, runtimeContext);
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
|
-
runtimeContext.pendingPermissionsPreCheck.push(preCheckPermissionsForBrickOrRoute(brickConf, runtimeContext));
|
|
194
|
+
runtimeContext.pendingPermissionsPreCheck.push(hooks === null || hooks === void 0 ? void 0 : (_hooks$checkPermissio2 = hooks.checkPermissions) === null || _hooks$checkPermissio2 === void 0 ? void 0 : _hooks$checkPermissio2.preCheckPermissionsForBrickOrRoute(brickConf, value => asyncComputeRealValue(value, runtimeContext)));
|
|
195
195
|
if (!(yield asyncCheckBrickIf(brickConf, runtimeContext))) {
|
|
196
196
|
return output;
|
|
197
197
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","names":["enqueueStableLoadBricks","loadBricksImperatively","isTrackAll","hasOwnProperty","debounce","asyncCheckBrickIf","asyncComputeRealProperties","resolveData","asyncComputeRealValue","preCheckPermissionsForBrickOrRoute","listenOnTrackingContext","matchRoutes","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachItem","symbolForTplStateStoreId","expandCustomTemplate","getTagNameOfCustomTemplate","getTplStateStore","customTemplates","getBrickPackages","RenderTag","getTracks","isStrictMode","warnAboutStrictMode","FORM_RENDERER","symbolForFormStateStoreId","expandFormRenderer","isPreEvaluated","getPreEvaluatedRaw","renderRoutes","_x","_x2","_x3","_x4","_x5","_renderRoutes","apply","arguments","_asyncToGenerator","returnNode","routes","_runtimeContext","rendererContext","slotId","matched","output","blockingList","menuRequests","unauthenticated","route","runtimeContext","_objectSpread","match","ctxStore","define","context","pendingPermissionsPreCheck","push","preLoadBricks","Array","isArray","type","redirectTo","redirect","resolved","transform","console","error","Error","concat","path","loadMenu","menu","newOutput","mergeRenderOutput","renderBricks","bricks","_x6","_x7","_x8","_x9","_x10","_x11","_x12","_renderBricks","tplStack","noMemoize","rendered","Promise","all","map","brickConf","index","renderBrick","Map","forEach","item","hasTrackingControls","memoizeControlNode","node","_x13","_x14","_x15","_x16","_x17","_x18","_renderBrick","key","_runtimeContext$app","length","undefined","brick","template","if","brickIf","permissionsPreCheck","restBrickConf","_objectWithoutProperties","_excluded2","isGeneralizedTrackAll","dataSource","slots","Object","getOwnPropertySymbols","reduce","acc","symbol","tplStateStoreId","formStateStoreId","forEachItem","strict","brickName","startsWith","ensureValidControlBrick","renderControlNode","_ref","_slots$slot","computedDataSource","slot","String","childrenToSlots","children","renderForEach","controlledOutput","contextNames","stateNames","renderId","listener","_ref2","currentRenderId","tplStateStoreMap","values","formStateStoreMap","store","waitForAll","rerenderControlNode","debouncedListener","contextName","onChange","tplStateStore","test","get","catchLoadBrick","unknownBricks","tplTagName","app","id","_tplStack$get","tplCount","set","includes","customElements","FormRendererElement","HTMLElement","$$typeof","tag","BRICK","return","events","portal","iid","ref","formData","confProps","_brickConf$properties","_ref3","properties","_excluded3","trackingContextList","loadProperties","_ref4","computedPropsFromHost","_brick$properties","computed","propName","propValue","entries","asyncProperties","registerBrickLifeCycle","lifeCycle","expandedBrickConf","childRuntimeContext","loadChildren","_ref5","_ref6","childSlotId","slotConf","childrenOutput","child","_x19","_x20","_x21","_x22","_x23","_x24","_x25","_renderForEach","i","j","flat","menuConf","warn","rest","_excluded","last","sibling","assign","originalSlots","newSlots","process","env","NODE_ENV","_child$slot","promise","catch","e"],"sources":["../../../src/internal/Renderer.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n ContextConf,\n MenuConf,\n RouteConf,\n SlotConfOfBricks,\n SlotsConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport {\n enqueueStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { isTrackAll } from \"@next-core/cook\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { debounce } from \"lodash\";\nimport { asyncCheckBrickIf } from \"./compute/checkIf.js\";\nimport { asyncComputeRealProperties } from \"./compute/computeRealProperties.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { preCheckPermissionsForBrickOrRoute } from \"./checkPermissions.js\";\nimport {\n TrackingContextItem,\n listenOnTrackingContext,\n} from \"./compute/listenOnTrackingContext.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { matchRoutes } from \"./matchRoutes.js\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachItem,\n symbolForTplStateStoreId,\n} from \"./CustomTemplates/constants.js\";\nimport { expandCustomTemplate } from \"./CustomTemplates/expandCustomTemplate.js\";\nimport type {\n RenderBrick,\n RenderNode,\n RuntimeBrickConfWithSymbols,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTagNameOfCustomTemplate,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport type { NextHistoryState } from \"./historyExtended.js\";\nimport { getBrickPackages } from \"./Runtime.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { getTracks } from \"./compute/getTracks.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport {\n FORM_RENDERER,\n RuntimeBrickConfOfFormSymbols,\n symbolForFormStateStoreId,\n} from \"./FormRenderer/constants.js\";\nimport { expandFormRenderer } from \"./FormRenderer/expandFormRenderer.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { getPreEvaluatedRaw } from \"./compute/evaluate.js\";\nimport { RuntimeBrickConfOfTplSymbols } from \"./CustomTemplates/constants.js\";\n\nexport interface RenderOutput {\n node?: RenderBrick;\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: NextHistoryState;\n };\n route?: RouteConf;\n blockingList: (Promise<unknown> | undefined)[];\n menuRequests: (Promise<StaticMenuConf | undefined> | undefined)[];\n hasTrackingControls?: boolean;\n}\n\nexport async function renderRoutes(\n returnNode: RenderNode,\n routes: RouteConf[],\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string\n): Promise<RenderOutput> {\n const matched = await matchRoutes(routes, _runtimeContext);\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n output.unauthenticated = true;\n break;\n default: {\n const route = (output.route = matched.route);\n const runtimeContext = {\n ..._runtimeContext,\n match: matched.match,\n };\n runtimeContext.ctxStore.define(route.context, runtimeContext);\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(route, runtimeContext)\n );\n\n // Currently, this is only used for brick size-checking: these bricks\n // will be loaded before page rendering, but they will NOT be rendered.\n const { preLoadBricks } = route as { preLoadBricks?: string[] };\n if (Array.isArray(preLoadBricks)) {\n output.blockingList.push(\n loadBricksImperatively(preLoadBricks, getBrickPackages())\n );\n }\n\n switch (route.type) {\n case \"redirect\": {\n let redirectTo: unknown;\n if (typeof route.redirect === \"string\") {\n redirectTo = await asyncComputeRealValue(\n route.redirect,\n runtimeContext\n );\n } else {\n const resolved = (await resolveData(\n {\n transform: \"redirect\",\n ...route.redirect,\n },\n runtimeContext\n )) as { redirect?: unknown };\n redirectTo = resolved.redirect;\n }\n if (typeof redirectTo !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected redirect result:\", redirectTo);\n throw new Error(\n `Unexpected type of redirect result: ${typeof redirectTo}`\n );\n }\n output.redirect = { path: redirectTo };\n break;\n }\n case \"routes\": {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderRoutes(\n returnNode,\n route.routes,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n break;\n }\n default: {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderBricks(\n returnNode,\n route.bricks,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n }\n }\n }\n }\n return output;\n}\n\nexport async function renderBricks(\n returnNode: RenderNode,\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n tplStack?: Map<string, number>,\n noMemoize?: boolean\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n // 多个构件并行异步转换,但转换的结果按原顺序串行合并。\n const rendered = await Promise.all(\n bricks.map((brickConf, index) =>\n renderBrick(\n returnNode,\n brickConf,\n runtimeContext,\n rendererContext,\n slotId,\n index,\n tplStack && new Map(tplStack)\n )\n )\n );\n\n rendered.forEach((item, index) => {\n if (!noMemoize && item.hasTrackingControls) {\n // Memoize a render node before it's been merged.\n rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);\n }\n mergeRenderOutput(output, item);\n });\n\n return output;\n}\n\nexport async function renderBrick(\n returnNode: RenderNode,\n brickConf: RuntimeBrickConfWithSymbols,\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n key?: number,\n tplStack = new Map<string, number>()\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n if (!brickConf.brick) {\n if ((brickConf as { template?: string }).template) {\n // eslint-disable-next-line no-console\n console.error(\"Legacy templates are dropped in v3:\", brickConf);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Invalid brick:\", brickConf);\n }\n return output;\n }\n\n // Translate `if: \"<%= ... %>\"` to `brick: \":if\", dataSource: \"<%= ... %>\"`.\n // In other words, translate tracking if expressions to tracking control nodes of `:if`.\n const { if: brickIf, permissionsPreCheck, ...restBrickConf } = brickConf;\n if (isGeneralizedTrackAll(brickIf)) {\n return renderBrick(\n returnNode,\n {\n brick: \":if\",\n dataSource: brickIf,\n // `permissionsPreCheck` maybe required before computing `if`.\n permissionsPreCheck,\n slots: {\n \"\": {\n type: \"bricks\",\n bricks: [restBrickConf],\n },\n },\n // These symbols have to be copied to the new brick conf.\n ...Object.getOwnPropertySymbols(brickConf).reduce(\n (acc, symbol) => ({\n ...acc,\n [symbol]: (brickConf as any)[symbol],\n }),\n {} as RuntimeBrickConfOfTplSymbols & RuntimeBrickConfOfFormSymbols\n ),\n },\n _runtimeContext,\n rendererContext,\n slotId,\n key,\n tplStack\n );\n }\n\n const tplStateStoreId = brickConf[symbolForTplStateStoreId];\n const formStateStoreId = brickConf[symbolForFormStateStoreId];\n const runtimeContext = {\n ..._runtimeContext,\n tplStateStoreId,\n formStateStoreId,\n };\n\n if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {\n // The external bricks of a template should restore their `forEachItem`\n // from their host.\n runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];\n }\n\n const { context } = brickConf as { context?: ContextConf[] };\n // istanbul ignore next\n if (Array.isArray(context) && context.length > 0) {\n const strict = isStrictMode(runtimeContext);\n warnAboutStrictMode(\n strict,\n \"Defining context on bricks\",\n \"check your brick:\",\n brickConf\n );\n if (!strict) {\n runtimeContext.ctxStore.define(context, runtimeContext);\n }\n }\n\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(brickConf, runtimeContext)\n );\n\n if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {\n return output;\n }\n\n const brickName = brickConf.brick;\n if (brickName.startsWith(\":\")) {\n ensureValidControlBrick(brickName);\n\n const { dataSource } = brickConf;\n\n const renderControlNode = async () => {\n // First, compute the `dataSource`\n const computedDataSource = await asyncComputeRealValue(\n dataSource,\n runtimeContext\n );\n\n // Then, get the matched slot.\n const slot =\n brickName === \":forEach\"\n ? \"\"\n : brickName === \":switch\"\n ? String(computedDataSource)\n : computedDataSource\n ? \"\"\n : \"else\";\n\n // Don't forget to transpile children to slots.\n const slots = childrenToSlots(brickConf.children, brickConf.slots);\n\n // Then, get the bricks in that matched slot.\n const bricks =\n slots &&\n hasOwnProperty(slots, slot) &&\n (slots[slot] as SlotConfOfBricks)?.bricks;\n\n if (!Array.isArray(bricks)) {\n return output;\n }\n\n switch (brickName) {\n case \":forEach\": {\n if (!Array.isArray(computedDataSource)) {\n return output;\n }\n return renderForEach(\n returnNode,\n computedDataSource,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack\n );\n }\n case \":if\":\n case \":switch\": {\n return renderBricks(\n returnNode,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack,\n true\n );\n }\n }\n };\n\n const controlledOutput = await renderControlNode();\n\n const { contextNames, stateNames } = getTracks(dataSource);\n if (contextNames || stateNames) {\n controlledOutput.hasTrackingControls = true;\n let renderId = 0;\n const listener = async () => {\n const currentRenderId = ++renderId;\n const output = await renderControlNode();\n output.blockingList.push(\n ...[\n ...runtimeContext.tplStateStoreMap.values(),\n ...runtimeContext.formStateStoreMap.values(),\n ].map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n await Promise.all(output.blockingList);\n // Ignore stale renders\n if (renderId === currentRenderId) {\n rendererContext.rerenderControlNode(\n slotId,\n key as number,\n output.node,\n returnNode\n );\n }\n };\n const debouncedListener = debounce(listener);\n if (contextNames) {\n for (const contextName of contextNames) {\n runtimeContext.ctxStore.onChange(contextName, debouncedListener);\n }\n }\n if (stateNames) {\n for (const contextName of stateNames) {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n \"STATE\",\n `: \"${dataSource}\"`\n );\n tplStateStore.onChange(contextName, debouncedListener);\n }\n }\n }\n\n return controlledOutput;\n }\n\n // Widgets need to be defined before rendering.\n if (/\\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {\n await catchLoadBrick(\n loadBricksImperatively([brickName], getBrickPackages()),\n brickName,\n rendererContext.unknownBricks\n );\n }\n\n const tplTagName = getTagNameOfCustomTemplate(\n brickName,\n runtimeContext.app?.id\n );\n\n if (tplTagName) {\n const tplCount = tplStack.get(tplTagName) ?? 0;\n if (tplCount >= 10) {\n throw new Error(\n `Maximum custom template stack overflowed: \"${tplTagName}\"`\n );\n }\n tplStack.set(tplTagName, tplCount + 1);\n } else if (brickName.includes(\"-\") && !customElements.get(brickName)) {\n if (brickName === FORM_RENDERER) {\n customElements.define(\n FORM_RENDERER,\n class FormRendererElement extends HTMLElement {\n get $$typeof(): string {\n return \"form-renderer\";\n }\n }\n );\n } else {\n output.blockingList.push(\n catchLoadBrick(\n enqueueStableLoadBricks([brickName], getBrickPackages()),\n brickName,\n rendererContext.unknownBricks\n )\n );\n }\n }\n\n const brick: RenderBrick = {\n tag: RenderTag.BRICK,\n type: tplTagName || brickName,\n return: returnNode,\n slotId,\n events: brickConf.events,\n runtimeContext,\n portal: brickConf.portal,\n iid: brickConf.iid,\n ref: (brickConf as BrickConfInTemplate).ref,\n };\n\n output.node = brick;\n\n // const confProps = brickConf.properties;\n let formData: unknown;\n let confProps: Record<string, unknown> | undefined;\n if (brickName === FORM_RENDERER) {\n ({ formData, ...confProps } = brickConf.properties ?? {});\n } else {\n confProps = brickConf.properties;\n }\n\n // 加载构件属性和加载子构件等任务,可以并行。\n const blockingList: Promise<unknown>[] = [];\n\n const trackingContextList: TrackingContextItem[] = [];\n const loadProperties = async () => {\n brick.properties = await asyncComputeRealProperties(\n confProps,\n runtimeContext,\n trackingContextList\n );\n const computedPropsFromHost =\n brickConf[symbolForAsyncComputedPropsFromHost];\n if (computedPropsFromHost) {\n brick.properties ??= {};\n const computed = await computedPropsFromHost;\n for (const [propName, propValue] of Object.entries(computed)) {\n brick.properties[propName] = propValue;\n }\n }\n listenOnTrackingContext(brick, trackingContextList);\n return brick.properties;\n };\n const asyncProperties = loadProperties();\n blockingList.push(asyncProperties);\n\n rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n tplTagName,\n brickConf,\n brick,\n asyncProperties\n );\n } else if (brickName === FORM_RENDERER) {\n expandedBrickConf = expandFormRenderer(\n formData,\n brickConf,\n brick,\n asyncProperties\n );\n }\n\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n }\n\n let childRuntimeContext: RuntimeContext;\n if (tplTagName) {\n // There is a boundary for `forEachItem` between template internals and externals.\n childRuntimeContext = {\n ...runtimeContext,\n };\n delete childRuntimeContext.forEachItem;\n } else {\n childRuntimeContext = runtimeContext;\n }\n\n const loadChildren = async () => {\n const slots = childrenToSlots(\n expandedBrickConf.children,\n expandedBrickConf.slots\n );\n if (!slots) {\n return;\n }\n const rendered = await Promise.all(\n Object.entries(slots).map(([childSlotId, slotConf]) =>\n slotConf.type !== \"routes\"\n ? renderBricks(\n brick,\n (slotConf as SlotConfOfBricks).bricks,\n childRuntimeContext,\n rendererContext,\n childSlotId,\n tplStack\n )\n : renderRoutes(\n brick,\n slotConf.routes,\n childRuntimeContext,\n rendererContext,\n childSlotId\n )\n )\n );\n\n const childrenOutput: RenderOutput = {\n ...output,\n node: undefined,\n blockingList: [],\n };\n for (const item of rendered) {\n mergeRenderOutput(childrenOutput, item);\n }\n if (childrenOutput.node) {\n brick.child = childrenOutput.node;\n }\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined,\n });\n };\n blockingList.push(loadChildren());\n\n await Promise.all(blockingList);\n\n return output;\n}\n\nfunction isGeneralizedTrackAll(brickIf: unknown): boolean {\n return typeof brickIf === \"string\"\n ? isTrackAll(brickIf)\n : isPreEvaluated(brickIf) &&\n // istanbul ignore next: covered by e2e tests\n isTrackAll(getPreEvaluatedRaw(brickIf));\n}\n\ntype ValidControlBrick = \":forEach\" | \":if\" | \":switch\";\n\nfunction ensureValidControlBrick(\n brick: string\n): asserts brick is ValidControlBrick {\n if (brick !== \":forEach\" && brick !== \":if\" && brick !== \":switch\") {\n throw new Error(`Unknown storyboard control node: \"${brick}\"`);\n }\n}\n\nasync function renderForEach(\n returnNode: RenderNode,\n dataSource: unknown[],\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId: string | undefined,\n tplStack?: Map<string, number>\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n const rendered = await Promise.all(\n dataSource.map((item, i) =>\n Promise.all(\n bricks.map((brickConf, j) =>\n renderBrick(\n returnNode,\n brickConf,\n {\n ...runtimeContext,\n forEachItem: item,\n },\n rendererContext,\n slotId,\n i * j,\n tplStack && new Map(tplStack)\n )\n )\n )\n )\n );\n\n // 多层构件并行异步转换,但转换的结果按原顺序串行合并。\n for (const item of rendered.flat()) {\n mergeRenderOutput(output, item);\n }\n return output;\n}\n\nfunction loadMenu(\n menuConf: MenuConf | undefined,\n runtimeContext: RuntimeContext\n) {\n if (!menuConf) {\n return;\n }\n\n // istanbul ignore next\n if ((menuConf as { type?: \"brick\" }).type === \"brick\") {\n // eslint-disable-next-line no-console\n console.error(\"Set menu with brick is dropped in v3:\", menuConf);\n throw new Error(\"Set menu with brick is dropped in v3\");\n }\n\n // istanbul ignore next\n if (menuConf.type === \"resolve\") {\n // eslint-disable-next-line no-console\n console.warn(\"Set menu with resolve is not supported in v3 yet:\", menuConf);\n return;\n }\n\n return asyncComputeRealValue(\n menuConf,\n runtimeContext\n ) as Promise<StaticMenuConf>;\n}\n\nfunction mergeRenderOutput(\n output: RenderOutput,\n newOutput: RenderOutput\n): void {\n const { blockingList, node, menuRequests, hasTrackingControls, ...rest } =\n newOutput;\n output.blockingList.push(...blockingList);\n output.menuRequests.push(...menuRequests);\n\n if (node) {\n if (output.node) {\n let last = output.node;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = node;\n } else {\n output.node = node;\n }\n }\n\n Object.assign(output, rest);\n}\n\nexport function childrenToSlots(\n children: BrickConf[] | undefined,\n originalSlots: SlotsConf | undefined\n) {\n let newSlots = originalSlots;\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n children &&\n !Array.isArray(children)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Specified brick children but not array:\",\n `<${typeof children}>`,\n children\n );\n }\n if (Array.isArray(children) && !newSlots) {\n newSlots = {};\n for (const child of children) {\n const slot = child.slot ?? \"\";\n if (!hasOwnProperty(newSlots, slot)) {\n newSlots[slot] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n (newSlots[slot] as SlotConfOfBricks).bricks.push(child);\n }\n }\n return newSlots;\n}\n\nfunction catchLoadBrick(\n promise: Promise<unknown>,\n brickName: string,\n unknownBricks: RendererContext[\"unknownBricks\"]\n) {\n return unknownBricks === \"silent\"\n ? promise.catch((e) => {\n // eslint-disable-next-line no-console\n console.error(`Load brick \"${brickName}\" failed:`, e);\n })\n : promise;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Renderer.js","names":["enqueueStableLoadBricks","loadBricksImperatively","isTrackAll","hasOwnProperty","debounce","asyncCheckBrickIf","asyncComputeRealProperties","resolveData","asyncComputeRealValue","listenOnTrackingContext","matchRoutes","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachItem","symbolForTplStateStoreId","expandCustomTemplate","getTagNameOfCustomTemplate","getTplStateStore","customTemplates","getBrickPackages","hooks","RenderTag","getTracks","isStrictMode","warnAboutStrictMode","FORM_RENDERER","symbolForFormStateStoreId","expandFormRenderer","isPreEvaluated","getPreEvaluatedRaw","renderRoutes","_x","_x2","_x3","_x4","_x5","_renderRoutes","apply","arguments","_asyncToGenerator","returnNode","routes","_runtimeContext","rendererContext","slotId","matched","output","blockingList","menuRequests","unauthenticated","_hooks$checkPermissio","route","runtimeContext","_objectSpread","match","ctxStore","define","context","pendingPermissionsPreCheck","push","checkPermissions","preCheckPermissionsForBrickOrRoute","value","preLoadBricks","Array","isArray","type","redirectTo","redirect","resolved","transform","console","error","Error","concat","path","loadMenu","menu","newOutput","mergeRenderOutput","renderBricks","bricks","_x6","_x7","_x8","_x9","_x10","_x11","_x12","_renderBricks","tplStack","noMemoize","rendered","Promise","all","map","brickConf","index","renderBrick","Map","forEach","item","hasTrackingControls","memoizeControlNode","node","_x13","_x14","_x15","_x16","_x17","_x18","_renderBrick","key","_hooks$checkPermissio2","_runtimeContext$app","length","undefined","brick","template","if","brickIf","permissionsPreCheck","restBrickConf","_objectWithoutProperties","_excluded2","isGeneralizedTrackAll","dataSource","slots","Object","getOwnPropertySymbols","reduce","acc","symbol","tplStateStoreId","formStateStoreId","forEachItem","strict","brickName","startsWith","ensureValidControlBrick","renderControlNode","_ref","_slots$slot","computedDataSource","slot","String","childrenToSlots","children","renderForEach","controlledOutput","contextNames","stateNames","renderId","listener","_ref2","currentRenderId","tplStateStoreMap","values","formStateStoreMap","store","waitForAll","rerenderControlNode","debouncedListener","contextName","onChange","tplStateStore","test","get","catchLoadBrick","unknownBricks","tplTagName","app","id","_tplStack$get","tplCount","set","includes","customElements","FormRendererElement","HTMLElement","$$typeof","tag","BRICK","return","events","portal","iid","ref","formData","confProps","_brickConf$properties","_ref3","properties","_excluded3","trackingContextList","loadProperties","_ref4","computedPropsFromHost","_brick$properties","computed","propName","propValue","entries","asyncProperties","registerBrickLifeCycle","lifeCycle","expandedBrickConf","childRuntimeContext","loadChildren","_ref5","_ref6","childSlotId","slotConf","childrenOutput","child","_x19","_x20","_x21","_x22","_x23","_x24","_x25","_renderForEach","i","j","flat","menuConf","warn","rest","_excluded","last","sibling","assign","originalSlots","newSlots","process","env","NODE_ENV","_child$slot","promise","catch","e"],"sources":["../../../src/internal/Renderer.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n ContextConf,\n MenuConf,\n RouteConf,\n SlotConfOfBricks,\n SlotsConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport {\n enqueueStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { isTrackAll } from \"@next-core/cook\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { debounce } from \"lodash\";\nimport { asyncCheckBrickIf } from \"./compute/checkIf.js\";\nimport { asyncComputeRealProperties } from \"./compute/computeRealProperties.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport {\n TrackingContextItem,\n listenOnTrackingContext,\n} from \"./compute/listenOnTrackingContext.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { matchRoutes } from \"./matchRoutes.js\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachItem,\n symbolForTplStateStoreId,\n} from \"./CustomTemplates/constants.js\";\nimport { expandCustomTemplate } from \"./CustomTemplates/expandCustomTemplate.js\";\nimport type {\n RenderBrick,\n RenderNode,\n RuntimeBrickConfWithSymbols,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTagNameOfCustomTemplate,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport type { NextHistoryState } from \"./historyExtended.js\";\nimport { getBrickPackages, hooks } from \"./Runtime.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { getTracks } from \"./compute/getTracks.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport {\n FORM_RENDERER,\n RuntimeBrickConfOfFormSymbols,\n symbolForFormStateStoreId,\n} from \"./FormRenderer/constants.js\";\nimport { expandFormRenderer } from \"./FormRenderer/expandFormRenderer.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { getPreEvaluatedRaw } from \"./compute/evaluate.js\";\nimport { RuntimeBrickConfOfTplSymbols } from \"./CustomTemplates/constants.js\";\n\nexport interface RenderOutput {\n node?: RenderBrick;\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: NextHistoryState;\n };\n route?: RouteConf;\n blockingList: (Promise<unknown> | undefined)[];\n menuRequests: (Promise<StaticMenuConf | undefined> | undefined)[];\n hasTrackingControls?: boolean;\n}\n\nexport async function renderRoutes(\n returnNode: RenderNode,\n routes: RouteConf[],\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string\n): Promise<RenderOutput> {\n const matched = await matchRoutes(routes, _runtimeContext);\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n output.unauthenticated = true;\n break;\n default: {\n const route = (output.route = matched.route);\n const runtimeContext = {\n ..._runtimeContext,\n match: matched.match,\n };\n runtimeContext.ctxStore.define(route.context, runtimeContext);\n runtimeContext.pendingPermissionsPreCheck.push(\n hooks?.checkPermissions?.preCheckPermissionsForBrickOrRoute(\n route,\n (value) => asyncComputeRealValue(value, runtimeContext)\n )\n );\n\n // Currently, this is only used for brick size-checking: these bricks\n // will be loaded before page rendering, but they will NOT be rendered.\n const { preLoadBricks } = route as { preLoadBricks?: string[] };\n if (Array.isArray(preLoadBricks)) {\n output.blockingList.push(\n loadBricksImperatively(preLoadBricks, getBrickPackages())\n );\n }\n\n switch (route.type) {\n case \"redirect\": {\n let redirectTo: unknown;\n if (typeof route.redirect === \"string\") {\n redirectTo = await asyncComputeRealValue(\n route.redirect,\n runtimeContext\n );\n } else {\n const resolved = (await resolveData(\n {\n transform: \"redirect\",\n ...route.redirect,\n },\n runtimeContext\n )) as { redirect?: unknown };\n redirectTo = resolved.redirect;\n }\n if (typeof redirectTo !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected redirect result:\", redirectTo);\n throw new Error(\n `Unexpected type of redirect result: ${typeof redirectTo}`\n );\n }\n output.redirect = { path: redirectTo };\n break;\n }\n case \"routes\": {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderRoutes(\n returnNode,\n route.routes,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n break;\n }\n default: {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderBricks(\n returnNode,\n route.bricks,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n }\n }\n }\n }\n return output;\n}\n\nexport async function renderBricks(\n returnNode: RenderNode,\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n tplStack?: Map<string, number>,\n noMemoize?: boolean\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n // 多个构件并行异步转换,但转换的结果按原顺序串行合并。\n const rendered = await Promise.all(\n bricks.map((brickConf, index) =>\n renderBrick(\n returnNode,\n brickConf,\n runtimeContext,\n rendererContext,\n slotId,\n index,\n tplStack && new Map(tplStack)\n )\n )\n );\n\n rendered.forEach((item, index) => {\n if (!noMemoize && item.hasTrackingControls) {\n // Memoize a render node before it's been merged.\n rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);\n }\n mergeRenderOutput(output, item);\n });\n\n return output;\n}\n\nexport async function renderBrick(\n returnNode: RenderNode,\n brickConf: RuntimeBrickConfWithSymbols,\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n key?: number,\n tplStack = new Map<string, number>()\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n if (!brickConf.brick) {\n if ((brickConf as { template?: string }).template) {\n // eslint-disable-next-line no-console\n console.error(\"Legacy templates are dropped in v3:\", brickConf);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Invalid brick:\", brickConf);\n }\n return output;\n }\n\n // Translate `if: \"<%= ... %>\"` to `brick: \":if\", dataSource: \"<%= ... %>\"`.\n // In other words, translate tracking if expressions to tracking control nodes of `:if`.\n const { if: brickIf, permissionsPreCheck, ...restBrickConf } = brickConf;\n if (isGeneralizedTrackAll(brickIf)) {\n return renderBrick(\n returnNode,\n {\n brick: \":if\",\n dataSource: brickIf,\n // `permissionsPreCheck` maybe required before computing `if`.\n permissionsPreCheck,\n slots: {\n \"\": {\n type: \"bricks\",\n bricks: [restBrickConf],\n },\n },\n // These symbols have to be copied to the new brick conf.\n ...Object.getOwnPropertySymbols(brickConf).reduce(\n (acc, symbol) => ({\n ...acc,\n [symbol]: (brickConf as any)[symbol],\n }),\n {} as RuntimeBrickConfOfTplSymbols & RuntimeBrickConfOfFormSymbols\n ),\n },\n _runtimeContext,\n rendererContext,\n slotId,\n key,\n tplStack\n );\n }\n\n const tplStateStoreId = brickConf[symbolForTplStateStoreId];\n const formStateStoreId = brickConf[symbolForFormStateStoreId];\n const runtimeContext = {\n ..._runtimeContext,\n tplStateStoreId,\n formStateStoreId,\n };\n\n if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {\n // The external bricks of a template should restore their `forEachItem`\n // from their host.\n runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];\n }\n\n const { context } = brickConf as { context?: ContextConf[] };\n // istanbul ignore next\n if (Array.isArray(context) && context.length > 0) {\n const strict = isStrictMode(runtimeContext);\n warnAboutStrictMode(\n strict,\n \"Defining context on bricks\",\n \"check your brick:\",\n brickConf\n );\n if (!strict) {\n runtimeContext.ctxStore.define(context, runtimeContext);\n }\n }\n\n runtimeContext.pendingPermissionsPreCheck.push(\n hooks?.checkPermissions?.preCheckPermissionsForBrickOrRoute(\n brickConf,\n (value) => asyncComputeRealValue(value, runtimeContext)\n )\n );\n\n if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {\n return output;\n }\n\n const brickName = brickConf.brick;\n if (brickName.startsWith(\":\")) {\n ensureValidControlBrick(brickName);\n\n const { dataSource } = brickConf;\n\n const renderControlNode = async () => {\n // First, compute the `dataSource`\n const computedDataSource = await asyncComputeRealValue(\n dataSource,\n runtimeContext\n );\n\n // Then, get the matched slot.\n const slot =\n brickName === \":forEach\"\n ? \"\"\n : brickName === \":switch\"\n ? String(computedDataSource)\n : computedDataSource\n ? \"\"\n : \"else\";\n\n // Don't forget to transpile children to slots.\n const slots = childrenToSlots(brickConf.children, brickConf.slots);\n\n // Then, get the bricks in that matched slot.\n const bricks =\n slots &&\n hasOwnProperty(slots, slot) &&\n (slots[slot] as SlotConfOfBricks)?.bricks;\n\n if (!Array.isArray(bricks)) {\n return output;\n }\n\n switch (brickName) {\n case \":forEach\": {\n if (!Array.isArray(computedDataSource)) {\n return output;\n }\n return renderForEach(\n returnNode,\n computedDataSource,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack\n );\n }\n case \":if\":\n case \":switch\": {\n return renderBricks(\n returnNode,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack,\n true\n );\n }\n }\n };\n\n const controlledOutput = await renderControlNode();\n\n const { contextNames, stateNames } = getTracks(dataSource);\n if (contextNames || stateNames) {\n controlledOutput.hasTrackingControls = true;\n let renderId = 0;\n const listener = async () => {\n const currentRenderId = ++renderId;\n const output = await renderControlNode();\n output.blockingList.push(\n ...[\n ...runtimeContext.tplStateStoreMap.values(),\n ...runtimeContext.formStateStoreMap.values(),\n ].map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n await Promise.all(output.blockingList);\n // Ignore stale renders\n if (renderId === currentRenderId) {\n rendererContext.rerenderControlNode(\n slotId,\n key as number,\n output.node,\n returnNode\n );\n }\n };\n const debouncedListener = debounce(listener);\n if (contextNames) {\n for (const contextName of contextNames) {\n runtimeContext.ctxStore.onChange(contextName, debouncedListener);\n }\n }\n if (stateNames) {\n for (const contextName of stateNames) {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n \"STATE\",\n `: \"${dataSource}\"`\n );\n tplStateStore.onChange(contextName, debouncedListener);\n }\n }\n }\n\n return controlledOutput;\n }\n\n // Widgets need to be defined before rendering.\n if (/\\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {\n await catchLoadBrick(\n loadBricksImperatively([brickName], getBrickPackages()),\n brickName,\n rendererContext.unknownBricks\n );\n }\n\n const tplTagName = getTagNameOfCustomTemplate(\n brickName,\n runtimeContext.app?.id\n );\n\n if (tplTagName) {\n const tplCount = tplStack.get(tplTagName) ?? 0;\n if (tplCount >= 10) {\n throw new Error(\n `Maximum custom template stack overflowed: \"${tplTagName}\"`\n );\n }\n tplStack.set(tplTagName, tplCount + 1);\n } else if (brickName.includes(\"-\") && !customElements.get(brickName)) {\n if (brickName === FORM_RENDERER) {\n customElements.define(\n FORM_RENDERER,\n class FormRendererElement extends HTMLElement {\n get $$typeof(): string {\n return \"form-renderer\";\n }\n }\n );\n } else {\n output.blockingList.push(\n catchLoadBrick(\n enqueueStableLoadBricks([brickName], getBrickPackages()),\n brickName,\n rendererContext.unknownBricks\n )\n );\n }\n }\n\n const brick: RenderBrick = {\n tag: RenderTag.BRICK,\n type: tplTagName || brickName,\n return: returnNode,\n slotId,\n events: brickConf.events,\n runtimeContext,\n portal: brickConf.portal,\n iid: brickConf.iid,\n ref: (brickConf as BrickConfInTemplate).ref,\n };\n\n output.node = brick;\n\n // const confProps = brickConf.properties;\n let formData: unknown;\n let confProps: Record<string, unknown> | undefined;\n if (brickName === FORM_RENDERER) {\n ({ formData, ...confProps } = brickConf.properties ?? {});\n } else {\n confProps = brickConf.properties;\n }\n\n // 加载构件属性和加载子构件等任务,可以并行。\n const blockingList: Promise<unknown>[] = [];\n\n const trackingContextList: TrackingContextItem[] = [];\n const loadProperties = async () => {\n brick.properties = await asyncComputeRealProperties(\n confProps,\n runtimeContext,\n trackingContextList\n );\n const computedPropsFromHost =\n brickConf[symbolForAsyncComputedPropsFromHost];\n if (computedPropsFromHost) {\n brick.properties ??= {};\n const computed = await computedPropsFromHost;\n for (const [propName, propValue] of Object.entries(computed)) {\n brick.properties[propName] = propValue;\n }\n }\n listenOnTrackingContext(brick, trackingContextList);\n return brick.properties;\n };\n const asyncProperties = loadProperties();\n blockingList.push(asyncProperties);\n\n rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n tplTagName,\n brickConf,\n brick,\n asyncProperties\n );\n } else if (brickName === FORM_RENDERER) {\n expandedBrickConf = expandFormRenderer(\n formData,\n brickConf,\n brick,\n asyncProperties\n );\n }\n\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n }\n\n let childRuntimeContext: RuntimeContext;\n if (tplTagName) {\n // There is a boundary for `forEachItem` between template internals and externals.\n childRuntimeContext = {\n ...runtimeContext,\n };\n delete childRuntimeContext.forEachItem;\n } else {\n childRuntimeContext = runtimeContext;\n }\n\n const loadChildren = async () => {\n const slots = childrenToSlots(\n expandedBrickConf.children,\n expandedBrickConf.slots\n );\n if (!slots) {\n return;\n }\n const rendered = await Promise.all(\n Object.entries(slots).map(([childSlotId, slotConf]) =>\n slotConf.type !== \"routes\"\n ? renderBricks(\n brick,\n (slotConf as SlotConfOfBricks).bricks,\n childRuntimeContext,\n rendererContext,\n childSlotId,\n tplStack\n )\n : renderRoutes(\n brick,\n slotConf.routes,\n childRuntimeContext,\n rendererContext,\n childSlotId\n )\n )\n );\n\n const childrenOutput: RenderOutput = {\n ...output,\n node: undefined,\n blockingList: [],\n };\n for (const item of rendered) {\n mergeRenderOutput(childrenOutput, item);\n }\n if (childrenOutput.node) {\n brick.child = childrenOutput.node;\n }\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined,\n });\n };\n blockingList.push(loadChildren());\n\n await Promise.all(blockingList);\n\n return output;\n}\n\nfunction isGeneralizedTrackAll(brickIf: unknown): boolean {\n return typeof brickIf === \"string\"\n ? isTrackAll(brickIf)\n : isPreEvaluated(brickIf) &&\n // istanbul ignore next: covered by e2e tests\n isTrackAll(getPreEvaluatedRaw(brickIf));\n}\n\ntype ValidControlBrick = \":forEach\" | \":if\" | \":switch\";\n\nfunction ensureValidControlBrick(\n brick: string\n): asserts brick is ValidControlBrick {\n if (brick !== \":forEach\" && brick !== \":if\" && brick !== \":switch\") {\n throw new Error(`Unknown storyboard control node: \"${brick}\"`);\n }\n}\n\nasync function renderForEach(\n returnNode: RenderNode,\n dataSource: unknown[],\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId: string | undefined,\n tplStack?: Map<string, number>\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n const rendered = await Promise.all(\n dataSource.map((item, i) =>\n Promise.all(\n bricks.map((brickConf, j) =>\n renderBrick(\n returnNode,\n brickConf,\n {\n ...runtimeContext,\n forEachItem: item,\n },\n rendererContext,\n slotId,\n i * j,\n tplStack && new Map(tplStack)\n )\n )\n )\n )\n );\n\n // 多层构件并行异步转换,但转换的结果按原顺序串行合并。\n for (const item of rendered.flat()) {\n mergeRenderOutput(output, item);\n }\n return output;\n}\n\nfunction loadMenu(\n menuConf: MenuConf | undefined,\n runtimeContext: RuntimeContext\n) {\n if (!menuConf) {\n return;\n }\n\n // istanbul ignore next\n if ((menuConf as { type?: \"brick\" }).type === \"brick\") {\n // eslint-disable-next-line no-console\n console.error(\"Set menu with brick is dropped in v3:\", menuConf);\n throw new Error(\"Set menu with brick is dropped in v3\");\n }\n\n // istanbul ignore next\n if (menuConf.type === \"resolve\") {\n // eslint-disable-next-line no-console\n console.warn(\"Set menu with resolve is not supported in v3 yet:\", menuConf);\n return;\n }\n\n return asyncComputeRealValue(\n menuConf,\n runtimeContext\n ) as Promise<StaticMenuConf>;\n}\n\nfunction mergeRenderOutput(\n output: RenderOutput,\n newOutput: RenderOutput\n): void {\n const { blockingList, node, menuRequests, hasTrackingControls, ...rest } =\n newOutput;\n output.blockingList.push(...blockingList);\n output.menuRequests.push(...menuRequests);\n\n if (node) {\n if (output.node) {\n let last = output.node;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = node;\n } else {\n output.node = node;\n }\n }\n\n Object.assign(output, rest);\n}\n\nexport function childrenToSlots(\n children: BrickConf[] | undefined,\n originalSlots: SlotsConf | undefined\n) {\n let newSlots = originalSlots;\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n children &&\n !Array.isArray(children)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Specified brick children but not array:\",\n `<${typeof children}>`,\n children\n );\n }\n if (Array.isArray(children) && !newSlots) {\n newSlots = {};\n for (const child of children) {\n const slot = child.slot ?? \"\";\n if (!hasOwnProperty(newSlots, slot)) {\n newSlots[slot] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n (newSlots[slot] as SlotConfOfBricks).bricks.push(child);\n }\n }\n return newSlots;\n}\n\nfunction catchLoadBrick(\n promise: Promise<unknown>,\n brickName: string,\n unknownBricks: RendererContext[\"unknownBricks\"]\n) {\n return unknownBricks === \"silent\"\n ? promise.catch((e) => {\n // eslint-disable-next-line no-console\n console.error(`Load brick \"${brickName}\" failed:`, e);\n })\n : promise;\n}\n"],"mappings":"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"}
|
|
@@ -16,11 +16,9 @@ import { clearResolveCache } from "./data/resolveData.js";
|
|
|
16
16
|
import { mountTree, unmountTree } from "./mount.js";
|
|
17
17
|
import { isOutsideApp, matchStoryboard } from "./matchStoryboard.js";
|
|
18
18
|
import { registerStoryboardFunctions } from "./compute/StoryboardFunctions.js";
|
|
19
|
-
import { preCheckPermissions } from "./checkPermissions.js";
|
|
20
19
|
import { RendererContext } from "./RendererContext.js";
|
|
21
20
|
import { applyMode, applyTheme, getLocalAppsTheme, setMode, setTheme } from "../themeAndMode.js";
|
|
22
21
|
import { _internalApiGetAppInBootstrapData, getRuntime, hooks } from "./Runtime.js";
|
|
23
|
-
import { getAuth, isLoggedIn } from "../auth.js";
|
|
24
22
|
import { getPageInfo } from "../getPageInfo.js";
|
|
25
23
|
import { resetAllComputedMarks } from "./compute/markAsComputed.js";
|
|
26
24
|
import { handleHttpError, httpErrorToString, isUnauthenticatedError } from "../handleHttpError.js";
|
|
@@ -308,16 +306,16 @@ function _render3() {
|
|
|
308
306
|
}
|
|
309
307
|
};
|
|
310
308
|
if (currentApp) {
|
|
311
|
-
var _hooks$checkInstalled, _storyboard$meta, _hooks$flowApi2, _storyboard$meta2;
|
|
309
|
+
var _hooks$checkInstalled, _hooks$auth, _hooks$checkPermissio, _storyboard$meta, _hooks$flowApi2, _storyboard$meta2;
|
|
312
310
|
hooks === null || hooks === void 0 ? void 0 : (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 ? void 0 : _hooks$checkInstalled.preCheckInstalledApps(storyboard, appId => !!_internalApiGetAppInBootstrapData(appId));
|
|
313
311
|
var runtimeContext = _classPrivateFieldSet(this, _runtimeContext, {
|
|
314
312
|
app: currentApp,
|
|
315
313
|
location,
|
|
316
314
|
query: new URLSearchParams(location.search),
|
|
317
315
|
flags,
|
|
318
|
-
sys: _objectSpread(_objectSpread({}, getAuth()), getPageInfo()),
|
|
316
|
+
sys: _objectSpread(_objectSpread({}, hooks === null || hooks === void 0 ? void 0 : (_hooks$auth = hooks.auth) === null || _hooks$auth === void 0 ? void 0 : _hooks$auth.getAuth()), getPageInfo()),
|
|
319
317
|
ctxStore: new DataStore("CTX"),
|
|
320
|
-
pendingPermissionsPreCheck: [preCheckPermissions(storyboard)],
|
|
318
|
+
pendingPermissionsPreCheck: [hooks === null || hooks === void 0 ? void 0 : (_hooks$checkPermissio = hooks.checkPermissions) === null || _hooks$checkPermissio === void 0 ? void 0 : _hooks$checkPermissio.preCheckPermissions(storyboard)],
|
|
321
319
|
tplStateStoreMap: new Map(),
|
|
322
320
|
formStateStoreMap: new Map()
|
|
323
321
|
});
|
|
@@ -403,7 +401,7 @@ function _render3() {
|
|
|
403
401
|
}
|
|
404
402
|
return;
|
|
405
403
|
}
|
|
406
|
-
} else if (!window.NO_AUTH_GUARD && !isLoggedIn()) {
|
|
404
|
+
} else if (!window.NO_AUTH_GUARD && hooks !== null && hooks !== void 0 && hooks.auth && !hooks.auth.isLoggedIn()) {
|
|
407
405
|
// Todo(steve): refine after api-gateway supports fetching storyboards before logged in.
|
|
408
406
|
// Redirect to login if no storyboard is matched.
|
|
409
407
|
redirectToLogin();
|