@next-core/runtime 1.0.2
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/CustomProcessors.js +29 -0
- package/dist/cjs/CustomProcessors.js.map +1 -0
- package/dist/cjs/CustomTemplates.js +179 -0
- package/dist/cjs/CustomTemplates.js.map +1 -0
- package/dist/cjs/StoryboardFunctionRegistry.js +118 -0
- package/dist/cjs/StoryboardFunctionRegistry.js.map +1 -0
- package/dist/cjs/auth.js +67 -0
- package/dist/cjs/auth.js.map +1 -0
- package/dist/cjs/fetchByProvider.js +13 -0
- package/dist/cjs/fetchByProvider.js.map +1 -0
- package/dist/cjs/getBasePath.js +15 -0
- package/dist/cjs/getBasePath.js.map +1 -0
- package/dist/cjs/getPageInfo.js +45 -0
- package/dist/cjs/getPageInfo.js.map +1 -0
- package/dist/cjs/handleHttpError.js +97 -0
- package/dist/cjs/handleHttpError.js.map +1 -0
- package/dist/cjs/history.js +27 -0
- package/dist/cjs/history.js.map +1 -0
- package/dist/cjs/index.js +199 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +72 -0
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/constants.js +13 -0
- package/dist/cjs/internal/CustomTemplates/constants.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +122 -0
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +113 -0
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +44 -0
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
- package/dist/cjs/internal/CustomTemplates/utils.js +44 -0
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -0
- package/dist/cjs/internal/Renderer.js +392 -0
- package/dist/cjs/internal/Renderer.js.map +1 -0
- package/dist/cjs/internal/RendererContext.js +433 -0
- package/dist/cjs/internal/RendererContext.js.map +1 -0
- package/dist/cjs/internal/Router.js +448 -0
- package/dist/cjs/internal/Router.js.map +1 -0
- package/dist/cjs/internal/Runtime.js +140 -0
- package/dist/cjs/internal/Runtime.js.map +1 -0
- package/dist/cjs/internal/abortController.js +32 -0
- package/dist/cjs/internal/abortController.js.map +1 -0
- package/dist/cjs/internal/bindListeners.js +433 -0
- package/dist/cjs/internal/bindListeners.js.map +1 -0
- package/dist/cjs/internal/checkInstalledApps.js +105 -0
- package/dist/cjs/internal/checkInstalledApps.js.map +1 -0
- package/dist/cjs/internal/checkPermissions.js +102 -0
- package/dist/cjs/internal/checkPermissions.js.map +1 -0
- package/dist/cjs/internal/compute/StoryboardFunctions.js +16 -0
- package/dist/cjs/internal/compute/StoryboardFunctions.js.map +1 -0
- package/dist/cjs/internal/compute/WidgetFunctions.js +31 -0
- package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -0
- package/dist/cjs/internal/compute/WidgetI18n.js +21 -0
- package/dist/cjs/internal/compute/WidgetI18n.js.map +1 -0
- package/dist/cjs/internal/compute/checkIf.js +36 -0
- package/dist/cjs/internal/compute/checkIf.js.map +1 -0
- package/dist/cjs/internal/compute/collectMemberCallUsage.js +30 -0
- package/dist/cjs/internal/compute/collectMemberCallUsage.js.map +1 -0
- package/dist/cjs/internal/compute/computeRealProperties.js +80 -0
- package/dist/cjs/internal/compute/computeRealProperties.js.map +1 -0
- package/dist/cjs/internal/compute/computeRealValue.js +78 -0
- package/dist/cjs/internal/compute/computeRealValue.js.map +1 -0
- package/dist/cjs/internal/compute/evaluate.js +390 -0
- package/dist/cjs/internal/compute/evaluate.js.map +1 -0
- package/dist/cjs/internal/compute/getGeneralGlobals.js +87 -0
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -0
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js +87 -0
- package/dist/cjs/internal/compute/getNextStateOfUseBrick.js.map +1 -0
- package/dist/cjs/internal/compute/getStorageItem.js +14 -0
- package/dist/cjs/internal/compute/getStorageItem.js.map +1 -0
- package/dist/cjs/internal/compute/getTracks.js +26 -0
- package/dist/cjs/internal/compute/getTracks.js.map +1 -0
- package/dist/cjs/internal/compute/images.js +23 -0
- package/dist/cjs/internal/compute/images.js.map +1 -0
- package/dist/cjs/internal/compute/listenOnTrackingContext.js +40 -0
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -0
- package/dist/cjs/internal/compute/markAsComputed.js +36 -0
- package/dist/cjs/internal/compute/markAsComputed.js.map +1 -0
- package/dist/cjs/internal/compute/setProperties.js +18 -0
- package/dist/cjs/internal/compute/setProperties.js.map +1 -0
- package/dist/cjs/internal/compute/setRealProperties.js +29 -0
- package/dist/cjs/internal/compute/setRealProperties.js.map +1 -0
- package/dist/cjs/internal/data/CollectContracts.js +29 -0
- package/dist/cjs/internal/data/CollectContracts.js.map +1 -0
- package/dist/cjs/internal/data/DataStore.js +190 -0
- package/dist/cjs/internal/data/DataStore.js.map +1 -0
- package/dist/cjs/internal/data/FlowApi.js +150 -0
- package/dist/cjs/internal/data/FlowApi.js.map +1 -0
- package/dist/cjs/internal/data/FlowApiProvider.js +122 -0
- package/dist/cjs/internal/data/FlowApiProvider.js.map +1 -0
- package/dist/cjs/internal/data/getProviderBrick.js +32 -0
- package/dist/cjs/internal/data/getProviderBrick.js.map +1 -0
- package/dist/cjs/internal/data/resolveData.js +96 -0
- package/dist/cjs/internal/data/resolveData.js.map +1 -0
- package/dist/cjs/internal/data/resolveDataStore.js +127 -0
- package/dist/cjs/internal/data/resolveDataStore.js.map +1 -0
- package/dist/cjs/internal/devtools.js +10 -0
- package/dist/cjs/internal/devtools.js.map +1 -0
- package/dist/cjs/internal/enums.js +13 -0
- package/dist/cjs/internal/enums.js.map +1 -0
- package/dist/cjs/internal/historyExtended.js +140 -0
- package/dist/cjs/internal/historyExtended.js.map +1 -0
- package/dist/cjs/internal/interfaces.js +6 -0
- package/dist/cjs/internal/interfaces.js.map +1 -0
- package/dist/cjs/internal/loadBootstrapData.js +227 -0
- package/dist/cjs/internal/loadBootstrapData.js.map +1 -0
- package/dist/cjs/internal/loadCheckLogin.js +17 -0
- package/dist/cjs/internal/loadCheckLogin.js.map +1 -0
- package/dist/cjs/internal/matchPath.js +88 -0
- package/dist/cjs/internal/matchPath.js.map +1 -0
- package/dist/cjs/internal/matchRoutes.js +34 -0
- package/dist/cjs/internal/matchRoutes.js.map +1 -0
- package/dist/cjs/internal/matchStoryboard.js +40 -0
- package/dist/cjs/internal/matchStoryboard.js.map +1 -0
- package/dist/cjs/internal/mediaQuery.js +55 -0
- package/dist/cjs/internal/mediaQuery.js.map +1 -0
- package/dist/cjs/internal/menu/computeMenuData.js +37 -0
- package/dist/cjs/internal/menu/computeMenuData.js.map +1 -0
- package/dist/cjs/internal/menu/constants.js +13 -0
- package/dist/cjs/internal/menu/constants.js.map +1 -0
- package/dist/cjs/internal/menu/fetchMenuById.js +102 -0
- package/dist/cjs/internal/menu/fetchMenuById.js.map +1 -0
- package/dist/cjs/internal/menu/fetchMenuTitle.js +37 -0
- package/dist/cjs/internal/menu/fetchMenuTitle.js.map +1 -0
- package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js +27 -0
- package/dist/cjs/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
- package/dist/cjs/internal/menu/interfaces.js +4 -0
- package/dist/cjs/internal/menu/interfaces.js.map +1 -0
- package/dist/cjs/internal/menu/loadDynamicMenuItems.js +28 -0
- package/dist/cjs/internal/menu/loadDynamicMenuItems.js.map +1 -0
- package/dist/cjs/internal/menu/mergeMenu.js +74 -0
- package/dist/cjs/internal/menu/mergeMenu.js.map +1 -0
- package/dist/cjs/internal/menu/reorderMenuItems.js +20 -0
- package/dist/cjs/internal/menu/reorderMenuItems.js.map +1 -0
- package/dist/cjs/internal/mount.js +90 -0
- package/dist/cjs/internal/mount.js.map +1 -0
- package/dist/cjs/internal/poll.js +83 -0
- package/dist/cjs/internal/poll.js.map +1 -0
- package/dist/cjs/internal/proxyFactories.js +39 -0
- package/dist/cjs/internal/proxyFactories.js.map +1 -0
- package/dist/cjs/internal/registerAppI18n.js +25 -0
- package/dist/cjs/internal/registerAppI18n.js.map +1 -0
- package/dist/cjs/internal/registerCustomTemplates.js +22 -0
- package/dist/cjs/internal/registerCustomTemplates.js.map +1 -0
- package/dist/cjs/internal/secret_internals.js +140 -0
- package/dist/cjs/internal/secret_internals.js.map +1 -0
- package/dist/cjs/themeAndMode.js +97 -0
- package/dist/cjs/themeAndMode.js.map +1 -0
- package/dist/esm/CustomProcessors.js +30 -0
- package/dist/esm/CustomProcessors.js.map +1 -0
- package/dist/esm/CustomTemplates.js +187 -0
- package/dist/esm/CustomTemplates.js.map +1 -0
- package/dist/esm/StoryboardFunctionRegistry.js +116 -0
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -0
- package/dist/esm/auth.js +57 -0
- package/dist/esm/auth.js.map +1 -0
- package/dist/esm/fetchByProvider.js +14 -0
- package/dist/esm/fetchByProvider.js.map +1 -0
- package/dist/esm/getBasePath.js +9 -0
- package/dist/esm/getBasePath.js.map +1 -0
- package/dist/esm/getPageInfo.js +39 -0
- package/dist/esm/getPageInfo.js.map +1 -0
- package/dist/esm/handleHttpError.js +90 -0
- package/dist/esm/handleHttpError.js.map +1 -0
- package/dist/esm/history.js +20 -0
- package/dist/esm/history.js.map +1 -0
- package/dist/esm/index.js +17 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +68 -0
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/constants.js +4 -0
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +117 -0
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +110 -0
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +43 -0
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -0
- package/dist/esm/internal/CustomTemplates/utils.js +37 -0
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -0
- package/dist/esm/internal/Renderer.js +427 -0
- package/dist/esm/internal/Renderer.js.map +1 -0
- package/dist/esm/internal/RendererContext.js +425 -0
- package/dist/esm/internal/RendererContext.js.map +1 -0
- package/dist/esm/internal/Router.js +445 -0
- package/dist/esm/internal/Router.js.map +1 -0
- package/dist/esm/internal/Runtime.js +116 -0
- package/dist/esm/internal/Runtime.js.map +1 -0
- package/dist/esm/internal/abortController.js +24 -0
- package/dist/esm/internal/abortController.js.map +1 -0
- package/dist/esm/internal/bindListeners.js +434 -0
- package/dist/esm/internal/bindListeners.js.map +1 -0
- package/dist/esm/internal/checkInstalledApps.js +100 -0
- package/dist/esm/internal/checkInstalledApps.js.map +1 -0
- package/dist/esm/internal/checkPermissions.js +107 -0
- package/dist/esm/internal/checkPermissions.js.map +1 -0
- package/dist/esm/internal/compute/StoryboardFunctions.js +7 -0
- package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -0
- package/dist/esm/internal/compute/WidgetFunctions.js +23 -0
- package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -0
- package/dist/esm/internal/compute/WidgetI18n.js +14 -0
- package/dist/esm/internal/compute/WidgetI18n.js.map +1 -0
- package/dist/esm/internal/compute/checkIf.js +39 -0
- package/dist/esm/internal/compute/checkIf.js.map +1 -0
- package/dist/esm/internal/compute/collectMemberCallUsage.js +22 -0
- package/dist/esm/internal/compute/collectMemberCallUsage.js.map +1 -0
- package/dist/esm/internal/compute/computeRealProperties.js +87 -0
- package/dist/esm/internal/compute/computeRealProperties.js.map +1 -0
- package/dist/esm/internal/compute/computeRealValue.js +86 -0
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -0
- package/dist/esm/internal/compute/evaluate.js +387 -0
- package/dist/esm/internal/compute/evaluate.js.map +1 -0
- package/dist/esm/internal/compute/getGeneralGlobals.js +82 -0
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -0
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +78 -0
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js.map +1 -0
- package/dist/esm/internal/compute/getStorageItem.js +8 -0
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -0
- package/dist/esm/internal/compute/getTracks.js +20 -0
- package/dist/esm/internal/compute/getTracks.js.map +1 -0
- package/dist/esm/internal/compute/images.js +16 -0
- package/dist/esm/internal/compute/images.js.map +1 -0
- package/dist/esm/internal/compute/listenOnTrackingContext.js +37 -0
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -0
- package/dist/esm/internal/compute/markAsComputed.js +28 -0
- package/dist/esm/internal/compute/markAsComputed.js.map +1 -0
- package/dist/esm/internal/compute/setProperties.js +12 -0
- package/dist/esm/internal/compute/setProperties.js.map +1 -0
- package/dist/esm/internal/compute/setRealProperties.js +23 -0
- package/dist/esm/internal/compute/setRealProperties.js.map +1 -0
- package/dist/esm/internal/data/CollectContracts.js +20 -0
- package/dist/esm/internal/data/CollectContracts.js.map +1 -0
- package/dist/esm/internal/data/DataStore.js +203 -0
- package/dist/esm/internal/data/DataStore.js.map +1 -0
- package/dist/esm/internal/data/FlowApi.js +156 -0
- package/dist/esm/internal/data/FlowApi.js.map +1 -0
- package/dist/esm/internal/data/FlowApiProvider.js +122 -0
- package/dist/esm/internal/data/FlowApiProvider.js.map +1 -0
- package/dist/esm/internal/data/getProviderBrick.js +33 -0
- package/dist/esm/internal/data/getProviderBrick.js.map +1 -0
- package/dist/esm/internal/data/resolveData.js +101 -0
- package/dist/esm/internal/data/resolveData.js.map +1 -0
- package/dist/esm/internal/data/resolveDataStore.js +134 -0
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -0
- package/dist/esm/internal/devtools.js +4 -0
- package/dist/esm/internal/devtools.js.map +1 -0
- package/dist/esm/internal/enums.js +6 -0
- package/dist/esm/internal/enums.js.map +1 -0
- package/dist/esm/internal/historyExtended.js +132 -0
- package/dist/esm/internal/historyExtended.js.map +1 -0
- package/dist/esm/internal/interfaces.js +2 -0
- package/dist/esm/internal/interfaces.js.map +1 -0
- package/dist/esm/internal/loadBootstrapData.js +243 -0
- package/dist/esm/internal/loadBootstrapData.js.map +1 -0
- package/dist/esm/internal/loadCheckLogin.js +18 -0
- package/dist/esm/internal/loadCheckLogin.js.map +1 -0
- package/dist/esm/internal/matchPath.js +81 -0
- package/dist/esm/internal/matchPath.js.map +1 -0
- package/dist/esm/internal/matchRoutes.js +35 -0
- package/dist/esm/internal/matchRoutes.js.map +1 -0
- package/dist/esm/internal/matchStoryboard.js +33 -0
- package/dist/esm/internal/matchStoryboard.js.map +1 -0
- package/dist/esm/internal/mediaQuery.js +44 -0
- package/dist/esm/internal/mediaQuery.js.map +1 -0
- package/dist/esm/internal/menu/computeMenuData.js +38 -0
- package/dist/esm/internal/menu/computeMenuData.js.map +1 -0
- package/dist/esm/internal/menu/constants.js +4 -0
- package/dist/esm/internal/menu/constants.js.map +1 -0
- package/dist/esm/internal/menu/fetchMenuById.js +104 -0
- package/dist/esm/internal/menu/fetchMenuById.js.map +1 -0
- package/dist/esm/internal/menu/fetchMenuTitle.js +38 -0
- package/dist/esm/internal/menu/fetchMenuTitle.js.map +1 -0
- package/dist/esm/internal/menu/getMenusOfStandaloneApp.js +19 -0
- package/dist/esm/internal/menu/getMenusOfStandaloneApp.js.map +1 -0
- package/dist/esm/internal/menu/interfaces.js +4 -0
- package/dist/esm/internal/menu/interfaces.js.map +1 -0
- package/dist/esm/internal/menu/loadDynamicMenuItems.js +28 -0
- package/dist/esm/internal/menu/loadDynamicMenuItems.js.map +1 -0
- package/dist/esm/internal/menu/mergeMenu.js +77 -0
- package/dist/esm/internal/menu/mergeMenu.js.map +1 -0
- package/dist/esm/internal/menu/reorderMenuItems.js +14 -0
- package/dist/esm/internal/menu/reorderMenuItems.js.map +1 -0
- package/dist/esm/internal/mount.js +83 -0
- package/dist/esm/internal/mount.js.map +1 -0
- package/dist/esm/internal/poll.js +85 -0
- package/dist/esm/internal/poll.js.map +1 -0
- package/dist/esm/internal/proxyFactories.js +34 -0
- package/dist/esm/internal/proxyFactories.js.map +1 -0
- package/dist/esm/internal/registerAppI18n.js +20 -0
- package/dist/esm/internal/registerAppI18n.js.map +1 -0
- package/dist/esm/internal/registerCustomTemplates.js +16 -0
- package/dist/esm/internal/registerCustomTemplates.js.map +1 -0
- package/dist/esm/internal/secret_internals.js +145 -0
- package/dist/esm/internal/secret_internals.js.map +1 -0
- package/dist/esm/themeAndMode.js +80 -0
- package/dist/esm/themeAndMode.js.map +1 -0
- package/dist/types/CustomProcessors.d.ts +7 -0
- package/dist/types/CustomTemplates.d.ts +8 -0
- package/dist/types/StoryboardFunctionRegistry.d.ts +44 -0
- package/dist/types/auth.d.ts +19 -0
- package/dist/types/fetchByProvider.d.ts +2 -0
- package/dist/types/getBasePath.d.ts +4 -0
- package/dist/types/getPageInfo.d.ts +14 -0
- package/dist/types/handleHttpError.d.ts +19 -0
- package/dist/types/history.d.ts +7 -0
- package/dist/types/index.d.ts +15 -0
- package/dist/types/internal/CustomTemplates/bindTemplateProxy.d.ts +3 -0
- package/dist/types/internal/CustomTemplates/constants.d.ts +11 -0
- package/dist/types/internal/CustomTemplates/expandCustomTemplate.d.ts +3 -0
- package/dist/types/internal/CustomTemplates/setupTemplateProxy.d.ts +7 -0
- package/dist/types/internal/CustomTemplates/setupUseBrickInTemplate.d.ts +2 -0
- package/dist/types/internal/CustomTemplates/utils.d.ts +7 -0
- package/dist/types/internal/Renderer.d.ts +21 -0
- package/dist/types/internal/RendererContext.d.ts +25 -0
- package/dist/types/internal/Router.d.ts +16 -0
- package/dist/types/internal/Runtime.d.ts +35 -0
- package/dist/types/internal/abortController.d.ts +2 -0
- package/dist/types/internal/bindListeners.d.ts +11 -0
- package/dist/types/internal/checkInstalledApps.d.ts +6 -0
- package/dist/types/internal/checkPermissions.d.ts +17 -0
- package/dist/types/internal/compute/StoryboardFunctions.d.ts +1 -0
- package/dist/types/internal/compute/WidgetFunctions.d.ts +3 -0
- package/dist/types/internal/compute/WidgetI18n.d.ts +3 -0
- package/dist/types/internal/compute/checkIf.d.ts +23 -0
- package/dist/types/internal/compute/collectMemberCallUsage.d.ts +8 -0
- package/dist/types/internal/compute/computeRealProperties.d.ts +4 -0
- package/dist/types/internal/compute/computeRealValue.d.ts +9 -0
- package/dist/types/internal/compute/evaluate.d.ts +21 -0
- package/dist/types/internal/compute/getGeneralGlobals.d.ts +12 -0
- package/dist/types/internal/compute/getNextStateOfUseBrick.d.ts +16 -0
- package/dist/types/internal/compute/getStorageItem.d.ts +1 -0
- package/dist/types/internal/compute/getTracks.d.ts +5 -0
- package/dist/types/internal/compute/images.d.ts +5 -0
- package/dist/types/internal/compute/listenOnTrackingContext.d.ts +9 -0
- package/dist/types/internal/compute/markAsComputed.d.ts +3 -0
- package/dist/types/internal/compute/setProperties.d.ts +2 -0
- package/dist/types/internal/compute/setRealProperties.d.ts +1 -0
- package/dist/types/internal/data/CollectContracts.d.ts +5 -0
- package/dist/types/internal/data/DataStore.d.ts +26 -0
- package/dist/types/internal/data/FlowApi.d.ts +30 -0
- package/dist/types/internal/data/FlowApiProvider.d.ts +20 -0
- package/dist/types/internal/data/getProviderBrick.d.ts +1 -0
- package/dist/types/internal/data/resolveData.d.ts +16 -0
- package/dist/types/internal/data/resolveDataStore.d.ts +11 -0
- package/dist/types/internal/devtools.d.ts +6 -0
- package/dist/types/internal/enums.d.ts +4 -0
- package/dist/types/internal/historyExtended.d.ts +58 -0
- package/dist/types/internal/interfaces.d.ts +92 -0
- package/dist/types/internal/loadBootstrapData.d.ts +10 -0
- package/dist/types/internal/loadCheckLogin.d.ts +1 -0
- package/dist/types/internal/matchPath.d.ts +18 -0
- package/dist/types/internal/matchRoutes.d.ts +9 -0
- package/dist/types/internal/matchStoryboard.d.ts +10 -0
- package/dist/types/internal/mediaQuery.d.ts +14 -0
- package/dist/types/internal/menu/computeMenuData.d.ts +7 -0
- package/dist/types/internal/menu/constants.d.ts +3 -0
- package/dist/types/internal/menu/fetchMenuById.d.ts +3 -0
- package/dist/types/internal/menu/fetchMenuTitle.d.ts +2 -0
- package/dist/types/internal/menu/getMenusOfStandaloneApp.d.ts +2 -0
- package/dist/types/internal/menu/interfaces.d.ts +74 -0
- package/dist/types/internal/menu/loadDynamicMenuItems.d.ts +3 -0
- package/dist/types/internal/menu/mergeMenu.d.ts +3 -0
- package/dist/types/internal/menu/reorderMenuItems.d.ts +2 -0
- package/dist/types/internal/mount.d.ts +3 -0
- package/dist/types/internal/poll.d.ts +10 -0
- package/dist/types/internal/proxyFactories.d.ts +2 -0
- package/dist/types/internal/registerAppI18n.d.ts +3 -0
- package/dist/types/internal/registerCustomTemplates.d.ts +2 -0
- package/dist/types/internal/secret_internals.d.ts +21 -0
- package/dist/types/themeAndMode.d.ts +16 -0
- package/package.json +67 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.hasInstalledApp = hasInstalledApp;
|
|
7
|
+
exports.preCheckInstalledApps = preCheckInstalledApps;
|
|
8
|
+
exports.waitForCheckingApps = waitForCheckingApps;
|
|
9
|
+
var _storyboard = require("@next-core/utils/storyboard");
|
|
10
|
+
var _microAppStandaloneSdk = require("@next-api-sdk/micro-app-standalone-sdk");
|
|
11
|
+
var _compareVersions = require("compare-versions");
|
|
12
|
+
var _collectMemberCallUsage = require("./compute/collectMemberCallUsage.js");
|
|
13
|
+
var _Runtime = require("./Runtime.js");
|
|
14
|
+
const checkingApps = new Map();
|
|
15
|
+
const checkedApps = new Map();
|
|
16
|
+
function preCheckInstalledApps(storyboard) {
|
|
17
|
+
if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {
|
|
18
|
+
const appIds = scanInstalledAppsUsage(storyboard);
|
|
19
|
+
const searchIds = [];
|
|
20
|
+
for (const appId of appIds) {
|
|
21
|
+
// Do not check these apps already checking or in bootstrap.
|
|
22
|
+
if (!checkingApps.has(appId) && !(0, _Runtime._internalApiGetAppInBootstrapData)(appId)) {
|
|
23
|
+
searchIds.push(appId);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (searchIds.length === 0) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
const promise = (0, _microAppStandaloneSdk.RuntimeApi_searchMicroAppStandalone)({
|
|
30
|
+
query: {
|
|
31
|
+
appId: {
|
|
32
|
+
$in: searchIds
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
fields: ["appId", "currentVersion", "installStatus"]
|
|
36
|
+
}).catch(error => {
|
|
37
|
+
// Allow search micro app to fail, and
|
|
38
|
+
// make it not crash when the backend service is not updated.
|
|
39
|
+
// eslint-disable-next-line no-console
|
|
40
|
+
console.error("Get off site standalone micro-apps failed", error);
|
|
41
|
+
});
|
|
42
|
+
for (const appId of searchIds) {
|
|
43
|
+
checkingApps.set(appId, promise.then(result => {
|
|
44
|
+
var _result$list;
|
|
45
|
+
const app = result === null || result === void 0 ? void 0 : (_result$list = result.list) === null || _result$list === void 0 ? void 0 : _result$list.find(item => item.appId === appId);
|
|
46
|
+
const checkedApp = app ? {
|
|
47
|
+
...app,
|
|
48
|
+
id: appId
|
|
49
|
+
} : undefined;
|
|
50
|
+
checkedApps.set(appId, checkedApp);
|
|
51
|
+
return checkedApp;
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
function waitForCheckingApps(appIds) {
|
|
57
|
+
return Promise.all(appIds.map(appId => checkingApps.get(appId)));
|
|
58
|
+
}
|
|
59
|
+
function hasInstalledApp(appId, matchVersion) {
|
|
60
|
+
// First, check whether the app is in bootstrap already.
|
|
61
|
+
let app = (0, _Runtime._internalApiGetAppInBootstrapData)(appId);
|
|
62
|
+
if (!app && window.STANDALONE_MICRO_APPS) {
|
|
63
|
+
app = checkedApps.get(appId);
|
|
64
|
+
}
|
|
65
|
+
if (!app || app.installStatus === "running") {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
// Todo: `currentVersion` maybe `""`
|
|
69
|
+
if (!matchVersion || !app.currentVersion) {
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
// Valid `matchVersion`:
|
|
73
|
+
// >=1.2.3
|
|
74
|
+
// >1.2.3
|
|
75
|
+
// =1.2.3
|
|
76
|
+
// <=1.2.3
|
|
77
|
+
// <1.2.3
|
|
78
|
+
const matches = matchVersion.match(/^([><]=?|=)(.*)$/);
|
|
79
|
+
try {
|
|
80
|
+
if (!matches) {
|
|
81
|
+
throw new TypeError(`Invalid match version: ${matchVersion}`);
|
|
82
|
+
}
|
|
83
|
+
return (0, _compareVersions.compare)(app.currentVersion, matches[2], matches[1]);
|
|
84
|
+
} catch (error) {
|
|
85
|
+
// eslint-disable-next-line no-console
|
|
86
|
+
console.error(error);
|
|
87
|
+
}
|
|
88
|
+
return false;
|
|
89
|
+
}
|
|
90
|
+
function scanInstalledAppsUsage(storyboard) {
|
|
91
|
+
var _storyboard$meta;
|
|
92
|
+
const usage = {
|
|
93
|
+
usedArgs: new Set()
|
|
94
|
+
};
|
|
95
|
+
// `INSTALLED_APPS.has(...)` is not available in storyboard functions
|
|
96
|
+
const {
|
|
97
|
+
customTemplates,
|
|
98
|
+
menus
|
|
99
|
+
} = (_storyboard$meta = storyboard.meta) !== null && _storyboard$meta !== void 0 ? _storyboard$meta : {};
|
|
100
|
+
(0, _storyboard.traverseStoryboardExpressions)([storyboard.routes, customTemplates, menus], (node, parent) => {
|
|
101
|
+
(0, _collectMemberCallUsage.collectInstalledAppsHasUsage)(usage, node, parent);
|
|
102
|
+
}, "INSTALLED_APPS");
|
|
103
|
+
return [...usage.usedArgs];
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=checkInstalledApps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkInstalledApps.js","names":["_storyboard","require","_microAppStandaloneSdk","_compareVersions","_collectMemberCallUsage","_Runtime","checkingApps","Map","checkedApps","preCheckInstalledApps","storyboard","window","STANDALONE_MICRO_APPS","NO_AUTH_GUARD","appIds","scanInstalledAppsUsage","searchIds","appId","has","_internalApiGetAppInBootstrapData","push","length","promise","RuntimeApi_searchMicroAppStandalone","query","$in","fields","catch","error","console","set","then","result","_result$list","app","list","find","item","checkedApp","id","undefined","waitForCheckingApps","Promise","all","map","get","hasInstalledApp","matchVersion","installStatus","currentVersion","matches","match","TypeError","compare","_storyboard$meta","usage","usedArgs","Set","customTemplates","menus","meta","traverseStoryboardExpressions","routes","node","parent","collectInstalledAppsHasUsage"],"sources":["../../../src/internal/checkInstalledApps.ts"],"sourcesContent":["import type { MicroApp, Storyboard } from \"@next-core/types\";\nimport { traverseStoryboardExpressions } from \"@next-core/utils/storyboard\";\nimport { RuntimeApi_searchMicroAppStandalone } from \"@next-api-sdk/micro-app-standalone-sdk\";\nimport { type CompareOperator, compare } from \"compare-versions\";\nimport {\n MemberCallUsage,\n collectInstalledAppsHasUsage,\n} from \"./compute/collectMemberCallUsage.js\";\nimport { _internalApiGetAppInBootstrapData } from \"./Runtime.js\";\n\ntype AppForCheck = Pick<MicroApp, \"id\" | \"currentVersion\" | \"installStatus\">;\n\nconst checkingApps = new Map<string, Promise<AppForCheck | undefined>>();\nconst checkedApps = new Map<string, AppForCheck | undefined>();\n\nexport function preCheckInstalledApps(storyboard: Storyboard) {\n if (window.STANDALONE_MICRO_APPS && !window.NO_AUTH_GUARD) {\n const appIds = scanInstalledAppsUsage(storyboard);\n const searchIds: string[] = [];\n for (const appId of appIds) {\n // Do not check these apps already checking or in bootstrap.\n if (\n !checkingApps.has(appId) &&\n !_internalApiGetAppInBootstrapData(appId)\n ) {\n searchIds.push(appId);\n }\n }\n if (searchIds.length === 0) {\n return;\n }\n const promise = RuntimeApi_searchMicroAppStandalone({\n query: { appId: { $in: searchIds } },\n fields: [\"appId\", \"currentVersion\", \"installStatus\"],\n }).catch((error) => {\n // Allow search micro app to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Get off site standalone micro-apps failed\", error);\n });\n for (const appId of searchIds) {\n checkingApps.set(\n appId,\n promise.then((result) => {\n const app = result?.list?.find((item) => item.appId === appId);\n const checkedApp = app\n ? {\n ...app,\n id: appId,\n }\n : undefined;\n checkedApps.set(appId, checkedApp);\n return checkedApp;\n })\n );\n }\n }\n}\n\nexport function waitForCheckingApps(appIds: string[]) {\n return Promise.all(appIds.map((appId) => checkingApps.get(appId)));\n}\n\nexport function hasInstalledApp(appId: string, matchVersion?: string): boolean {\n // First, check whether the app is in bootstrap already.\n let app = _internalApiGetAppInBootstrapData(appId) as AppForCheck | undefined;\n if (!app && window.STANDALONE_MICRO_APPS) {\n app = checkedApps.get(appId);\n }\n if (!app || app.installStatus === \"running\") {\n return false;\n }\n // Todo: `currentVersion` maybe `\"\"`\n if (!matchVersion || !app.currentVersion) {\n return true;\n }\n // Valid `matchVersion`:\n // >=1.2.3\n // >1.2.3\n // =1.2.3\n // <=1.2.3\n // <1.2.3\n const matches = matchVersion.match(/^([><]=?|=)(.*)$/);\n try {\n if (!matches) {\n throw new TypeError(`Invalid match version: ${matchVersion}`);\n }\n return compare(\n app.currentVersion,\n matches[2],\n matches[1] as CompareOperator\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n return false;\n}\n\nfunction scanInstalledAppsUsage(storyboard: Storyboard) {\n const usage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n // `INSTALLED_APPS.has(...)` is not available in storyboard functions\n const { customTemplates, menus } = storyboard.meta ?? {};\n traverseStoryboardExpressions(\n [storyboard.routes, customTemplates, menus],\n (node, parent) => {\n collectInstalledAppsHasUsage(usage, node, parent);\n },\n \"INSTALLED_APPS\"\n );\n return [...usage.usedArgs];\n}\n"],"mappings":";;;;;;;;AACA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,sBAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,uBAAA,GAAAH,OAAA;AAIA,IAAAI,QAAA,GAAAJ,OAAA;AAIA,MAAMK,YAAY,GAAG,IAAIC,GAAG,EAA4C;AACxE,MAAMC,WAAW,GAAG,IAAID,GAAG,EAAmC;AAEvD,SAASE,qBAAqBA,CAACC,UAAsB,EAAE;EAC5D,IAAIC,MAAM,CAACC,qBAAqB,IAAI,CAACD,MAAM,CAACE,aAAa,EAAE;IACzD,MAAMC,MAAM,GAAGC,sBAAsB,CAACL,UAAU,CAAC;IACjD,MAAMM,SAAmB,GAAG,EAAE;IAC9B,KAAK,MAAMC,KAAK,IAAIH,MAAM,EAAE;MAC1B;MACA,IACE,CAACR,YAAY,CAACY,GAAG,CAACD,KAAK,CAAC,IACxB,CAAC,IAAAE,0CAAiC,EAACF,KAAK,CAAC,EACzC;QACAD,SAAS,CAACI,IAAI,CAACH,KAAK,CAAC;MACvB;IACF;IACA,IAAID,SAAS,CAACK,MAAM,KAAK,CAAC,EAAE;MAC1B;IACF;IACA,MAAMC,OAAO,GAAG,IAAAC,0DAAmC,EAAC;MAClDC,KAAK,EAAE;QAAEP,KAAK,EAAE;UAAEQ,GAAG,EAAET;QAAU;MAAE,CAAC;MACpCU,MAAM,EAAE,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe;IACrD,CAAC,CAAC,CAACC,KAAK,CAAEC,KAAK,IAAK;MAClB;MACA;MACA;MACAC,OAAO,CAACD,KAAK,CAAC,2CAA2C,EAAEA,KAAK,CAAC;IACnE,CAAC,CAAC;IACF,KAAK,MAAMX,KAAK,IAAID,SAAS,EAAE;MAC7BV,YAAY,CAACwB,GAAG,CACdb,KAAK,EACLK,OAAO,CAACS,IAAI,CAAEC,MAAM,IAAK;QAAA,IAAAC,YAAA;QACvB,MAAMC,GAAG,GAAGF,MAAM,aAANA,MAAM,wBAAAC,YAAA,GAAND,MAAM,CAAEG,IAAI,cAAAF,YAAA,uBAAZA,YAAA,CAAcG,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAACpB,KAAK,KAAKA,KAAK,CAAC;QAC9D,MAAMqB,UAAU,GAAGJ,GAAG,GAClB;UACE,GAAGA,GAAG;UACNK,EAAE,EAAEtB;QACN,CAAC,GACDuB,SAAS;QACbhC,WAAW,CAACsB,GAAG,CAACb,KAAK,EAAEqB,UAAU,CAAC;QAClC,OAAOA,UAAU;MACnB,CAAC,CAAC,CACH;IACH;EACF;AACF;AAEO,SAASG,mBAAmBA,CAAC3B,MAAgB,EAAE;EACpD,OAAO4B,OAAO,CAACC,GAAG,CAAC7B,MAAM,CAAC8B,GAAG,CAAE3B,KAAK,IAAKX,YAAY,CAACuC,GAAG,CAAC5B,KAAK,CAAC,CAAC,CAAC;AACpE;AAEO,SAAS6B,eAAeA,CAAC7B,KAAa,EAAE8B,YAAqB,EAAW;EAC7E;EACA,IAAIb,GAAG,GAAG,IAAAf,0CAAiC,EAACF,KAAK,CAA4B;EAC7E,IAAI,CAACiB,GAAG,IAAIvB,MAAM,CAACC,qBAAqB,EAAE;IACxCsB,GAAG,GAAG1B,WAAW,CAACqC,GAAG,CAAC5B,KAAK,CAAC;EAC9B;EACA,IAAI,CAACiB,GAAG,IAAIA,GAAG,CAACc,aAAa,KAAK,SAAS,EAAE;IAC3C,OAAO,KAAK;EACd;EACA;EACA,IAAI,CAACD,YAAY,IAAI,CAACb,GAAG,CAACe,cAAc,EAAE;IACxC,OAAO,IAAI;EACb;EACA;EACA;EACA;EACA;EACA;EACA;EACA,MAAMC,OAAO,GAAGH,YAAY,CAACI,KAAK,CAAC,kBAAkB,CAAC;EACtD,IAAI;IACF,IAAI,CAACD,OAAO,EAAE;MACZ,MAAM,IAAIE,SAAS,CAAE,0BAAyBL,YAAa,EAAC,CAAC;IAC/D;IACA,OAAO,IAAAM,wBAAO,EACZnB,GAAG,CAACe,cAAc,EAClBC,OAAO,CAAC,CAAC,CAAC,EACVA,OAAO,CAAC,CAAC,CAAC,CACX;EACH,CAAC,CAAC,OAAOtB,KAAK,EAAE;IACd;IACAC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;EACtB;EACA,OAAO,KAAK;AACd;AAEA,SAASb,sBAAsBA,CAACL,UAAsB,EAAE;EAAA,IAAA4C,gBAAA;EACtD,MAAMC,KAAsB,GAAG;IAC7BC,QAAQ,EAAE,IAAIC,GAAG;EACnB,CAAC;EACD;EACA,MAAM;IAAEC,eAAe;IAAEC;EAAM,CAAC,IAAAL,gBAAA,GAAG5C,UAAU,CAACkD,IAAI,cAAAN,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC;EACxD,IAAAO,yCAA6B,EAC3B,CAACnD,UAAU,CAACoD,MAAM,EAAEJ,eAAe,EAAEC,KAAK,CAAC,EAC3C,CAACI,IAAI,EAAEC,MAAM,KAAK;IAChB,IAAAC,oDAA4B,EAACV,KAAK,EAAEQ,IAAI,EAAEC,MAAM,CAAC;EACnD,CAAC,EACD,gBAAgB,CACjB;EACD,OAAO,CAAC,GAAGT,KAAK,CAACC,QAAQ,CAAC;AAC5B"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.checkPermissions = checkPermissions;
|
|
7
|
+
exports.preCheckPermissions = preCheckPermissions;
|
|
8
|
+
exports.preCheckPermissionsForAny = preCheckPermissionsForAny;
|
|
9
|
+
exports.preCheckPermissionsForBrickOrRoute = preCheckPermissionsForBrickOrRoute;
|
|
10
|
+
exports.resetPermissionPreChecks = resetPermissionPreChecks;
|
|
11
|
+
exports.validatePermissions = validatePermissions;
|
|
12
|
+
var _lodash = require("lodash");
|
|
13
|
+
var _storyboard = require("@next-core/utils/storyboard");
|
|
14
|
+
var _microAppSdk = require("@next-api-sdk/micro-app-sdk");
|
|
15
|
+
var _auth = require("../auth.js");
|
|
16
|
+
var _computeRealValue = require("./compute/computeRealValue.js");
|
|
17
|
+
const checkedPermissions = [];
|
|
18
|
+
const permissionMap = new Map();
|
|
19
|
+
function preCheckPermissions(storyboard) {
|
|
20
|
+
if ((0, _auth.isLoggedIn)() && !(0, _auth.getAuth)().isAdmin) {
|
|
21
|
+
const usedActions = (0, _storyboard.scanPermissionActionsInStoryboard)(storyboard);
|
|
22
|
+
return validatePermissions(usedActions);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
async function preCheckPermissionsForBrickOrRoute(container, runtimeContext) {
|
|
26
|
+
if ((0, _auth.isLoggedIn)() && !(0, _auth.getAuth)().isAdmin && Array.isArray(container.permissionsPreCheck)) {
|
|
27
|
+
const actions = await (0, _computeRealValue.asyncComputeRealValue)(container.permissionsPreCheck, runtimeContext);
|
|
28
|
+
return validatePermissions(actions);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
function preCheckPermissionsForAny(data) {
|
|
32
|
+
if ((0, _auth.isLoggedIn)() && !(0, _auth.getAuth)().isAdmin) {
|
|
33
|
+
const usedActions = (0, _storyboard.scanPermissionActionsInAny)(data);
|
|
34
|
+
return validatePermissions(usedActions);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
async function validatePermissions(usedActions) {
|
|
38
|
+
// Do not request known actions.
|
|
39
|
+
const actions = (0, _lodash.difference)(usedActions, [...checkedPermissions]);
|
|
40
|
+
if (actions.length === 0) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
checkedPermissions.push(...actions);
|
|
44
|
+
try {
|
|
45
|
+
const result = await (0, _microAppSdk.PermissionApi_validatePermissions)({
|
|
46
|
+
actions
|
|
47
|
+
});
|
|
48
|
+
for (const item of result.actions) {
|
|
49
|
+
permissionMap.set(item.action, item.authorizationStatus);
|
|
50
|
+
if (item.authorizationStatus === "undefined") {
|
|
51
|
+
// eslint-disable-next-line no-console
|
|
52
|
+
console.error(`Undefined permission action: "${item.action}"`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
} catch (error) {
|
|
56
|
+
// Allow pre-check to fail, and
|
|
57
|
+
// make it not crash when the backend service is not updated.
|
|
58
|
+
// eslint-disable-next-line no-console
|
|
59
|
+
console.error("Pre-check permissions failed", error);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
/**
|
|
64
|
+
* Check the current logged-in user whether to have all
|
|
65
|
+
* permissions of actions passed to it.
|
|
66
|
+
*
|
|
67
|
+
* @param actions - Required permission actions.
|
|
68
|
+
*/
|
|
69
|
+
function checkPermissions(...actions) {
|
|
70
|
+
if (!(0, _auth.isLoggedIn)()) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
if ((0, _auth.getAuth)().isAdmin) {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
for (const action of actions) {
|
|
77
|
+
// Only **exclusively authorized** permissions are ok.
|
|
78
|
+
// Those scenarios below will fail:
|
|
79
|
+
// - unauthorized actions (pre-check results)
|
|
80
|
+
// - undefined actions (pre-check results)
|
|
81
|
+
// - Un-pre-checked or pre-check failed
|
|
82
|
+
switch (permissionMap.get(action)) {
|
|
83
|
+
case "unauthorized":
|
|
84
|
+
case "undefined":
|
|
85
|
+
return false;
|
|
86
|
+
case undefined:
|
|
87
|
+
// eslint-disable-next-line no-console
|
|
88
|
+
console.error(`Un-checked permission action: "${action}", please make sure the permission to check is defined in permissionsPreCheck.`);
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return true;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Reset permission pre-checks after logged-out.
|
|
97
|
+
*/
|
|
98
|
+
function resetPermissionPreChecks() {
|
|
99
|
+
checkedPermissions.length = 0;
|
|
100
|
+
permissionMap.clear();
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=checkPermissions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkPermissions.js","names":["_lodash","require","_storyboard","_microAppSdk","_auth","_computeRealValue","checkedPermissions","permissionMap","Map","preCheckPermissions","storyboard","isLoggedIn","getAuth","isAdmin","usedActions","scanPermissionActionsInStoryboard","validatePermissions","preCheckPermissionsForBrickOrRoute","container","runtimeContext","Array","isArray","permissionsPreCheck","actions","asyncComputeRealValue","preCheckPermissionsForAny","data","scanPermissionActionsInAny","difference","length","push","result","PermissionApi_validatePermissions","item","set","action","authorizationStatus","console","error","checkPermissions","get","undefined","resetPermissionPreChecks","clear"],"sources":["../../../src/internal/checkPermissions.ts"],"sourcesContent":["import { difference } from \"lodash\";\nimport {\n scanPermissionActionsInAny,\n scanPermissionActionsInStoryboard,\n} from \"@next-core/utils/storyboard\";\nimport type { BrickConf, RouteConf, Storyboard } from \"@next-core/types\";\nimport { PermissionApi_validatePermissions } from \"@next-api-sdk/micro-app-sdk\";\nimport { getAuth, isLoggedIn } from \"../auth.js\";\nimport type { RuntimeContext } from \"./interfaces.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\n\ntype PermissionStatus = \"authorized\" | \"unauthorized\" | \"undefined\";\n\nconst checkedPermissions: string[] = [];\nconst permissionMap = new Map<string, PermissionStatus>();\n\nexport function preCheckPermissions(\n storyboard: Storyboard\n): Promise<void> | undefined {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function preCheckPermissionsForBrickOrRoute(\n container: BrickConf | RouteConf,\n runtimeContext: RuntimeContext\n) {\n if (\n isLoggedIn() &&\n !getAuth().isAdmin &&\n Array.isArray(container.permissionsPreCheck)\n ) {\n const actions = (await asyncComputeRealValue(\n container.permissionsPreCheck,\n runtimeContext\n )) as string[];\n return validatePermissions(actions);\n }\n}\n\nexport function preCheckPermissionsForAny(\n data: unknown\n): Promise<void> | undefined {\n if (isLoggedIn() && !getAuth().isAdmin) {\n const usedActions = scanPermissionActionsInAny(data);\n return validatePermissions(usedActions);\n }\n}\n\nexport async function validatePermissions(\n usedActions: string[]\n): Promise<void> {\n // Do not request known actions.\n const actions = difference(usedActions, [...checkedPermissions]);\n if (actions.length === 0) {\n return;\n }\n checkedPermissions.push(...actions);\n try {\n const result = await PermissionApi_validatePermissions({ actions });\n for (const item of result.actions!) {\n permissionMap.set(item.action!, item.authorizationStatus!);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n }\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions(...actions: string[]): boolean {\n if (!isLoggedIn()) {\n return false;\n }\n\n if (getAuth().isAdmin) {\n return true;\n }\n\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(\n `Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks(): void {\n checkedPermissions.length = 0;\n permissionMap.clear();\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.storyboardFunctions = exports.registerStoryboardFunctions = exports.checkPermissionsUsage = void 0;
|
|
7
|
+
var _StoryboardFunctionRegistry = require("../../StoryboardFunctionRegistry.js");
|
|
8
|
+
const {
|
|
9
|
+
storyboardFunctions,
|
|
10
|
+
registerStoryboardFunctions,
|
|
11
|
+
checkPermissionsUsage
|
|
12
|
+
} = (0, _StoryboardFunctionRegistry.StoryboardFunctionRegistryFactory)();
|
|
13
|
+
exports.checkPermissionsUsage = checkPermissionsUsage;
|
|
14
|
+
exports.registerStoryboardFunctions = registerStoryboardFunctions;
|
|
15
|
+
exports.storyboardFunctions = storyboardFunctions;
|
|
16
|
+
//# sourceMappingURL=StoryboardFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StoryboardFunctions.js","names":["_StoryboardFunctionRegistry","require","storyboardFunctions","registerStoryboardFunctions","checkPermissionsUsage","StoryboardFunctionRegistryFactory","exports"],"sources":["../../../../src/internal/compute/StoryboardFunctions.ts"],"sourcesContent":["import { StoryboardFunctionRegistryFactory } from \"../../StoryboardFunctionRegistry.js\";\n\nexport const {\n storyboardFunctions,\n registerStoryboardFunctions,\n checkPermissionsUsage,\n} = StoryboardFunctionRegistryFactory();\n"],"mappings":";;;;;;AAAA,IAAAA,2BAAA,GAAAC,OAAA;AAEO,MAAM;EACXC,mBAAmB;EACnBC,2BAA2B;EAC3BC;AACF,CAAC,GAAG,IAAAC,6DAAiC,GAAE;AAACC,OAAA,CAAAF,qBAAA,GAAAA,qBAAA;AAAAE,OAAA,CAAAH,2BAAA,GAAAA,2BAAA;AAAAG,OAAA,CAAAJ,mBAAA,GAAAA,mBAAA"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.registerWidgetFunctions = registerWidgetFunctions;
|
|
7
|
+
exports.widgetFunctions = void 0;
|
|
8
|
+
var _StoryboardFunctionRegistry = require("../../StoryboardFunctionRegistry.js");
|
|
9
|
+
const widgetFunctionRegistry = new Map();
|
|
10
|
+
const widgetFunctions = new Proxy(Object.freeze({}), {
|
|
11
|
+
get(target, key) {
|
|
12
|
+
return widgetFunctionRegistry.get(key);
|
|
13
|
+
}
|
|
14
|
+
});
|
|
15
|
+
exports.widgetFunctions = widgetFunctions;
|
|
16
|
+
function registerWidgetFunctions(widgetId, functions, widgetVersion) {
|
|
17
|
+
if (widgetFunctionRegistry.has(widgetId)) {
|
|
18
|
+
// eslint-disable-next-line no-console
|
|
19
|
+
throw new Error(`Widget functions of "${widgetId}" already registered`);
|
|
20
|
+
}
|
|
21
|
+
const {
|
|
22
|
+
storyboardFunctions,
|
|
23
|
+
registerStoryboardFunctions
|
|
24
|
+
} = (0, _StoryboardFunctionRegistry.StoryboardFunctionRegistryFactory)({
|
|
25
|
+
widgetId,
|
|
26
|
+
widgetVersion
|
|
27
|
+
});
|
|
28
|
+
widgetFunctionRegistry.set(widgetId, storyboardFunctions);
|
|
29
|
+
registerStoryboardFunctions(functions);
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=WidgetFunctions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetFunctions.js","names":["_StoryboardFunctionRegistry","require","widgetFunctionRegistry","Map","widgetFunctions","Proxy","Object","freeze","get","target","key","exports","registerWidgetFunctions","widgetId","functions","widgetVersion","has","Error","storyboardFunctions","registerStoryboardFunctions","StoryboardFunctionRegistryFactory","set"],"sources":["../../../../src/internal/compute/WidgetFunctions.ts"],"sourcesContent":["import { StoryboardFunction } from \"@next-core/types\";\nimport {\n ReadonlyStoryboardFunctions,\n StoryboardFunctionRegistryFactory,\n} from \"../../StoryboardFunctionRegistry.js\";\n\nconst widgetFunctionRegistry = new Map<string, ReadonlyStoryboardFunctions>();\n\nexport const widgetFunctions = new Proxy(Object.freeze({}), {\n get(target, key: string) {\n return widgetFunctionRegistry.get(key);\n },\n}) as Readonly<Record<string, ReadonlyStoryboardFunctions>>;\n\nexport function registerWidgetFunctions(\n widgetId: string,\n functions: StoryboardFunction[],\n widgetVersion?: string\n): void {\n if (widgetFunctionRegistry.has(widgetId)) {\n // eslint-disable-next-line no-console\n throw new Error(`Widget functions of \"${widgetId}\" already registered`);\n }\n const { storyboardFunctions, registerStoryboardFunctions } =\n StoryboardFunctionRegistryFactory({ widgetId, widgetVersion });\n widgetFunctionRegistry.set(widgetId, storyboardFunctions);\n registerStoryboardFunctions(functions);\n}\n"],"mappings":";;;;;;;AACA,IAAAA,2BAAA,GAAAC,OAAA;AAKA,MAAMC,sBAAsB,GAAG,IAAIC,GAAG,EAAuC;AAEtE,MAAMC,eAAe,GAAG,IAAIC,KAAK,CAACC,MAAM,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;EAC1DC,GAAGA,CAACC,MAAM,EAAEC,GAAW,EAAE;IACvB,OAAOR,sBAAsB,CAACM,GAAG,CAACE,GAAG,CAAC;EACxC;AACF,CAAC,CAA0D;AAACC,OAAA,CAAAP,eAAA,GAAAA,eAAA;AAErD,SAASQ,uBAAuBA,CACrCC,QAAgB,EAChBC,SAA+B,EAC/BC,aAAsB,EAChB;EACN,IAAIb,sBAAsB,CAACc,GAAG,CAACH,QAAQ,CAAC,EAAE;IACxC;IACA,MAAM,IAAII,KAAK,CAAE,wBAAuBJ,QAAS,sBAAqB,CAAC;EACzE;EACA,MAAM;IAAEK,mBAAmB;IAAEC;EAA4B,CAAC,GACxD,IAAAC,6DAAiC,EAAC;IAAEP,QAAQ;IAAEE;EAAc,CAAC,CAAC;EAChEb,sBAAsB,CAACmB,GAAG,CAACR,QAAQ,EAAEK,mBAAmB,CAAC;EACzDC,2BAA2B,CAACL,SAAS,CAAC;AACxC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.registerWidgetI18n = registerWidgetI18n;
|
|
7
|
+
exports.widgetI18nFactory = widgetI18nFactory;
|
|
8
|
+
var _i18n = require("@next-core/i18n");
|
|
9
|
+
var _registerAppI18n = require("../registerAppI18n.js");
|
|
10
|
+
// import i18next, { getFixedT, TFunction } from "i18next";
|
|
11
|
+
|
|
12
|
+
function registerWidgetI18n(widgetId, i18nData) {
|
|
13
|
+
const ns = (0, _registerAppI18n.getI18nNamespace)("widget", widgetId);
|
|
14
|
+
Object.entries(i18nData).forEach(([lang, resources]) => {
|
|
15
|
+
_i18n.i18n.addResourceBundle(lang, ns, resources);
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
function widgetI18nFactory(widgetId) {
|
|
19
|
+
return _i18n.i18n.getFixedT(null, (0, _registerAppI18n.getI18nNamespace)("widget", widgetId));
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=WidgetI18n.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WidgetI18n.js","names":["_i18n","require","_registerAppI18n","registerWidgetI18n","widgetId","i18nData","ns","getI18nNamespace","Object","entries","forEach","lang","resources","i18n","addResourceBundle","widgetI18nFactory","getFixedT"],"sources":["../../../../src/internal/compute/WidgetI18n.ts"],"sourcesContent":["// import i18next, { getFixedT, TFunction } from \"i18next\";\nimport { i18n } from \"@next-core/i18n\";\nimport type { MetaI18n } from \"@next-core/types\";\nimport { getI18nNamespace } from \"../registerAppI18n.js\";\n\nexport function registerWidgetI18n(widgetId: string, i18nData: MetaI18n): void {\n const ns = getI18nNamespace(\"widget\", widgetId);\n Object.entries(i18nData).forEach(([lang, resources]) => {\n i18n.addResourceBundle(lang, ns, resources);\n });\n}\n\nexport function widgetI18nFactory(widgetId: string) {\n return i18n.getFixedT(null, getI18nNamespace(\"widget\", widgetId));\n}\n"],"mappings":";;;;;;;AACA,IAAAA,KAAA,GAAAC,OAAA;AAEA,IAAAC,gBAAA,GAAAD,OAAA;AAHA;;AAKO,SAASE,kBAAkBA,CAACC,QAAgB,EAAEC,QAAkB,EAAQ;EAC7E,MAAMC,EAAE,GAAG,IAAAC,iCAAgB,EAAC,QAAQ,EAAEH,QAAQ,CAAC;EAC/CI,MAAM,CAACC,OAAO,CAACJ,QAAQ,CAAC,CAACK,OAAO,CAAC,CAAC,CAACC,IAAI,EAAEC,SAAS,CAAC,KAAK;IACtDC,UAAI,CAACC,iBAAiB,CAACH,IAAI,EAAEL,EAAE,EAAEM,SAAS,CAAC;EAC7C,CAAC,CAAC;AACJ;AAEO,SAASG,iBAAiBA,CAACX,QAAgB,EAAE;EAClD,OAAOS,UAAI,CAACG,SAAS,CAAC,IAAI,EAAE,IAAAT,iCAAgB,EAAC,QAAQ,EAAEH,QAAQ,CAAC,CAAC;AACnE"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.asyncCheckBrickIf = asyncCheckBrickIf;
|
|
7
|
+
exports.asyncCheckIf = asyncCheckIf;
|
|
8
|
+
exports.checkIf = checkIf;
|
|
9
|
+
exports.checkIfByTransform = checkIfByTransform;
|
|
10
|
+
exports.checkIfOfComputed = checkIfOfComputed;
|
|
11
|
+
var _general = require("@next-core/utils/general");
|
|
12
|
+
var _computeRealValue = require("./computeRealValue.js");
|
|
13
|
+
var _evaluate = require("./evaluate.js");
|
|
14
|
+
var _resolveData = require("../data/resolveData.js");
|
|
15
|
+
async function asyncCheckIf(ifContainer, runtimeContext) {
|
|
16
|
+
return !(0, _general.hasOwnProperty)(ifContainer, "if") || !!(typeof ifContainer.if === "string" || (0, _evaluate.isPreEvaluated)(ifContainer.if) ? await (0, _computeRealValue.asyncComputeRealValue)(ifContainer.if, runtimeContext) : ifContainer.if);
|
|
17
|
+
}
|
|
18
|
+
function checkIf(ifContainer, runtimeContext) {
|
|
19
|
+
return !(0, _general.hasOwnProperty)(ifContainer, "if") || !!(typeof ifContainer.if === "string" || (0, _evaluate.isPreEvaluated)(ifContainer.if) ? (0, _computeRealValue.computeRealValue)(ifContainer.if, runtimeContext) : ifContainer.if);
|
|
20
|
+
}
|
|
21
|
+
function checkIfOfComputed(ifContainer) {
|
|
22
|
+
return !(0, _general.hasOwnProperty)(ifContainer, "if") || !!ifContainer.if;
|
|
23
|
+
}
|
|
24
|
+
async function asyncCheckBrickIf(brickConf, runtimeContext) {
|
|
25
|
+
if ((0, _general.isObject)(brickConf.if) && !(0, _evaluate.isPreEvaluated)(brickConf.if)) {
|
|
26
|
+
const resolved = await (0, _resolveData.resolveData)(brickConf.if, runtimeContext);
|
|
27
|
+
return checkIfOfComputed(resolved);
|
|
28
|
+
}
|
|
29
|
+
return asyncCheckIf(brickConf, runtimeContext);
|
|
30
|
+
}
|
|
31
|
+
function checkIfByTransform(ifContainer, data) {
|
|
32
|
+
return checkIf(ifContainer, {
|
|
33
|
+
data
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=checkIf.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkIf.js","names":["_general","require","_computeRealValue","_evaluate","_resolveData","asyncCheckIf","ifContainer","runtimeContext","hasOwnProperty","if","isPreEvaluated","asyncComputeRealValue","checkIf","computeRealValue","checkIfOfComputed","asyncCheckBrickIf","brickConf","isObject","resolved","resolveData","checkIfByTransform","data"],"sources":["../../../../src/internal/compute/checkIf.ts"],"sourcesContent":["import { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport type { BrickConf, ResolveConf } from \"@next-core/types\";\nimport { asyncComputeRealValue, computeRealValue } from \"./computeRealValue.js\";\nimport { isPreEvaluated } from \"./evaluate.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\n\n/**\n * 包含 `if` 条件判断的对象。\n */\nexport interface IfContainer {\n /**\n * 条件判断,可以为表达式字符串。\n *\n * @example\n *\n * ```yaml\n * - brick: your.any-brick\n * if: '<% FLAGS[\"your-feature-flag\"] %>'\n * ```\n */\n if?: unknown;\n}\n\nexport async function asyncCheckIf(\n ifContainer: IfContainer,\n runtimeContext: RuntimeContext\n): Promise<boolean> {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n !!(typeof ifContainer.if === \"string\" || isPreEvaluated(ifContainer.if)\n ? await asyncComputeRealValue(ifContainer.if, runtimeContext)\n : ifContainer.if)\n );\n}\n\nexport function checkIf(\n ifContainer: IfContainer,\n runtimeContext: RuntimeContext\n): boolean {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n !!(typeof ifContainer.if === \"string\" || isPreEvaluated(ifContainer.if)\n ? computeRealValue(ifContainer.if, runtimeContext)\n : ifContainer.if)\n );\n}\n\nexport function checkIfOfComputed(ifContainer: IfContainer): boolean {\n return !hasOwnProperty(ifContainer, \"if\") || !!ifContainer.if;\n}\n\nexport async function asyncCheckBrickIf(\n brickConf: BrickConf,\n runtimeContext: RuntimeContext\n): Promise<boolean> {\n if (isObject(brickConf.if) && !isPreEvaluated(brickConf.if)) {\n const resolved = (await resolveData(\n brickConf.if as ResolveConf,\n runtimeContext\n )) as { if?: unknown };\n return checkIfOfComputed(resolved);\n }\n return asyncCheckIf(brickConf, runtimeContext);\n}\n\nexport function checkIfByTransform(ifContainer: IfContainer, data: unknown) {\n return checkIf(ifContainer, { data } as RuntimeContext);\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAEA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAoBO,eAAeI,YAAYA,CAChCC,WAAwB,EACxBC,cAA8B,EACZ;EAClB,OACE,CAAC,IAAAC,uBAAc,EAACF,WAAW,EAAE,IAAI,CAAC,IAClC,CAAC,EAAE,OAAOA,WAAW,CAACG,EAAE,KAAK,QAAQ,IAAI,IAAAC,wBAAc,EAACJ,WAAW,CAACG,EAAE,CAAC,GACnE,MAAM,IAAAE,uCAAqB,EAACL,WAAW,CAACG,EAAE,EAAEF,cAAc,CAAC,GAC3DD,WAAW,CAACG,EAAE,CAAC;AAEvB;AAEO,SAASG,OAAOA,CACrBN,WAAwB,EACxBC,cAA8B,EACrB;EACT,OACE,CAAC,IAAAC,uBAAc,EAACF,WAAW,EAAE,IAAI,CAAC,IAClC,CAAC,EAAE,OAAOA,WAAW,CAACG,EAAE,KAAK,QAAQ,IAAI,IAAAC,wBAAc,EAACJ,WAAW,CAACG,EAAE,CAAC,GACnE,IAAAI,kCAAgB,EAACP,WAAW,CAACG,EAAE,EAAEF,cAAc,CAAC,GAChDD,WAAW,CAACG,EAAE,CAAC;AAEvB;AAEO,SAASK,iBAAiBA,CAACR,WAAwB,EAAW;EACnE,OAAO,CAAC,IAAAE,uBAAc,EAACF,WAAW,EAAE,IAAI,CAAC,IAAI,CAAC,CAACA,WAAW,CAACG,EAAE;AAC/D;AAEO,eAAeM,iBAAiBA,CACrCC,SAAoB,EACpBT,cAA8B,EACZ;EAClB,IAAI,IAAAU,iBAAQ,EAACD,SAAS,CAACP,EAAE,CAAC,IAAI,CAAC,IAAAC,wBAAc,EAACM,SAAS,CAACP,EAAE,CAAC,EAAE;IAC3D,MAAMS,QAAQ,GAAI,MAAM,IAAAC,wBAAW,EACjCH,SAAS,CAACP,EAAE,EACZF,cAAc,CACM;IACtB,OAAOO,iBAAiB,CAACI,QAAQ,CAAC;EACpC;EACA,OAAOb,YAAY,CAACW,SAAS,EAAET,cAAc,CAAC;AAChD;AAEO,SAASa,kBAAkBA,CAACd,WAAwB,EAAEe,IAAa,EAAE;EAC1E,OAAOT,OAAO,CAACN,WAAW,EAAE;IAAEe;EAAK,CAAC,CAAmB;AACzD"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.collectInstalledAppsHasUsage = exports.collectAppGetMenuUsage = void 0;
|
|
7
|
+
function collectMemberCallUsageFactory(object, property) {
|
|
8
|
+
return function collectMemberCallUsage(usage, node, parent) {
|
|
9
|
+
if (node.name === object) {
|
|
10
|
+
const memberParent = parent[parent.length - 1];
|
|
11
|
+
const callParent = parent[parent.length - 2];
|
|
12
|
+
if ((callParent === null || callParent === void 0 ? void 0 : callParent.node.type) === "CallExpression" && (callParent === null || callParent === void 0 ? void 0 : callParent.key) === "callee" && (memberParent === null || memberParent === void 0 ? void 0 : memberParent.node.type) === "MemberExpression" && memberParent.key === "object" && (memberParent.node.computed ? memberParent.node.property.type === "Literal" && memberParent.node.property.value === property : memberParent.node.property.type === "Identifier" && memberParent.node.property.name === property)) {
|
|
13
|
+
const args = callParent.node.arguments;
|
|
14
|
+
if (args.length > 0) {
|
|
15
|
+
const firstArg = args[0];
|
|
16
|
+
if (firstArg.type === "Literal" && typeof firstArg.value === "string") {
|
|
17
|
+
usage.usedArgs.add(firstArg.value);
|
|
18
|
+
} else {
|
|
19
|
+
usage.hasNonStaticUsage = true;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const collectAppGetMenuUsage = collectMemberCallUsageFactory("APP", "getMenu");
|
|
27
|
+
exports.collectAppGetMenuUsage = collectAppGetMenuUsage;
|
|
28
|
+
const collectInstalledAppsHasUsage = collectMemberCallUsageFactory("INSTALLED_APPS", "has");
|
|
29
|
+
exports.collectInstalledAppsHasUsage = collectInstalledAppsHasUsage;
|
|
30
|
+
//# sourceMappingURL=collectMemberCallUsage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collectMemberCallUsage.js","names":["collectMemberCallUsageFactory","object","property","collectMemberCallUsage","usage","node","parent","name","memberParent","length","callParent","type","key","computed","value","args","arguments","firstArg","usedArgs","add","hasNonStaticUsage","collectAppGetMenuUsage","exports","collectInstalledAppsHasUsage"],"sources":["../../../../src/internal/compute/collectMemberCallUsage.ts"],"sourcesContent":["import type { Identifier } from \"@babel/types\";\nimport type { EstreeLiteral, EstreeParent } from \"@next-core/cook\";\n\nexport interface MemberCallUsage {\n usedArgs: Set<string>;\n hasNonStaticUsage?: boolean;\n}\n\nfunction collectMemberCallUsageFactory(object: string, property: string) {\n return function collectMemberCallUsage(\n usage: MemberCallUsage,\n node: Identifier,\n parent: EstreeParent\n ) {\n if (node.name === object) {\n const memberParent = parent[parent.length - 1];\n const callParent = parent[parent.length - 2];\n if (\n callParent?.node.type === \"CallExpression\" &&\n callParent?.key === \"callee\" &&\n memberParent?.node.type === \"MemberExpression\" &&\n memberParent.key === \"object\" &&\n (memberParent.node.computed\n ? (memberParent.node.property as any).type === \"Literal\" &&\n (memberParent.node.property as any).value === property\n : memberParent.node.property.type === \"Identifier\" &&\n memberParent.node.property.name === property)\n ) {\n const args = callParent.node.arguments as unknown as EstreeLiteral[];\n if (args.length > 0) {\n const firstArg = args[0];\n if (\n firstArg.type === \"Literal\" &&\n typeof firstArg.value === \"string\"\n ) {\n usage.usedArgs.add(firstArg.value);\n } else {\n usage.hasNonStaticUsage = true;\n }\n }\n }\n }\n };\n}\n\nexport const collectAppGetMenuUsage = collectMemberCallUsageFactory(\n \"APP\",\n \"getMenu\"\n);\n\nexport const collectInstalledAppsHasUsage = collectMemberCallUsageFactory(\n \"INSTALLED_APPS\",\n \"has\"\n);\n"],"mappings":";;;;;;AAQA,SAASA,6BAA6BA,CAACC,MAAc,EAAEC,QAAgB,EAAE;EACvE,OAAO,SAASC,sBAAsBA,CACpCC,KAAsB,EACtBC,IAAgB,EAChBC,MAAoB,EACpB;IACA,IAAID,IAAI,CAACE,IAAI,KAAKN,MAAM,EAAE;MACxB,MAAMO,YAAY,GAAGF,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;MAC9C,MAAMC,UAAU,GAAGJ,MAAM,CAACA,MAAM,CAACG,MAAM,GAAG,CAAC,CAAC;MAC5C,IACE,CAAAC,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEL,IAAI,CAACM,IAAI,MAAK,gBAAgB,IAC1C,CAAAD,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAEE,GAAG,MAAK,QAAQ,IAC5B,CAAAJ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEH,IAAI,CAACM,IAAI,MAAK,kBAAkB,IAC9CH,YAAY,CAACI,GAAG,KAAK,QAAQ,KAC5BJ,YAAY,CAACH,IAAI,CAACQ,QAAQ,GACtBL,YAAY,CAACH,IAAI,CAACH,QAAQ,CAASS,IAAI,KAAK,SAAS,IACrDH,YAAY,CAACH,IAAI,CAACH,QAAQ,CAASY,KAAK,KAAKZ,QAAQ,GACtDM,YAAY,CAACH,IAAI,CAACH,QAAQ,CAACS,IAAI,KAAK,YAAY,IAChDH,YAAY,CAACH,IAAI,CAACH,QAAQ,CAACK,IAAI,KAAKL,QAAQ,CAAC,EACjD;QACA,MAAMa,IAAI,GAAGL,UAAU,CAACL,IAAI,CAACW,SAAuC;QACpE,IAAID,IAAI,CAACN,MAAM,GAAG,CAAC,EAAE;UACnB,MAAMQ,QAAQ,GAAGF,IAAI,CAAC,CAAC,CAAC;UACxB,IACEE,QAAQ,CAACN,IAAI,KAAK,SAAS,IAC3B,OAAOM,QAAQ,CAACH,KAAK,KAAK,QAAQ,EAClC;YACAV,KAAK,CAACc,QAAQ,CAACC,GAAG,CAACF,QAAQ,CAACH,KAAK,CAAC;UACpC,CAAC,MAAM;YACLV,KAAK,CAACgB,iBAAiB,GAAG,IAAI;UAChC;QACF;MACF;IACF;EACF,CAAC;AACH;AAEO,MAAMC,sBAAsB,GAAGrB,6BAA6B,CACjE,KAAK,EACL,SAAS,CACV;AAACsB,OAAA,CAAAD,sBAAA,GAAAA,sBAAA;AAEK,MAAME,4BAA4B,GAAGvB,6BAA6B,CACvE,gBAAgB,EAChB,KAAK,CACN;AAACsB,OAAA,CAAAC,4BAAA,GAAAA,4BAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.asyncComputeRealProperties = asyncComputeRealProperties;
|
|
7
|
+
exports.computeRealProperties = computeRealProperties;
|
|
8
|
+
var _general = require("@next-core/utils/general");
|
|
9
|
+
var _computeRealValue = require("./computeRealValue.js");
|
|
10
|
+
var _getNextStateOfUseBrick = require("./getNextStateOfUseBrick.js");
|
|
11
|
+
var _getTracks = require("./getTracks.js");
|
|
12
|
+
async function asyncComputeRealProperties(properties, runtimeContext, trackingContextList) {
|
|
13
|
+
if ((0, _general.isObject)(properties)) {
|
|
14
|
+
return Object.fromEntries((await Promise.all(Object.entries(properties).map(async ([propName, propValue]) => {
|
|
15
|
+
if (Array.isArray(trackingContextList)) {
|
|
16
|
+
const {
|
|
17
|
+
contextNames,
|
|
18
|
+
stateNames,
|
|
19
|
+
formStateNames
|
|
20
|
+
} = (0, _getTracks.getTracks)(propValue);
|
|
21
|
+
if (contextNames || stateNames || formStateNames) {
|
|
22
|
+
trackingContextList.push({
|
|
23
|
+
contextNames,
|
|
24
|
+
stateNames,
|
|
25
|
+
formStateNames,
|
|
26
|
+
propName,
|
|
27
|
+
propValue
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Related: https://github.com/facebook/react/issues/11347
|
|
32
|
+
const realValue = await (0, _computeRealValue.asyncComputeRealValue)(propValue, runtimeContext, {
|
|
33
|
+
$$lazyForUseBrick: true,
|
|
34
|
+
$$stateOfUseBrick: propName === "useBrick" ? _getNextStateOfUseBrick.StateOfUseBrick.USE_BRICK : _getNextStateOfUseBrick.StateOfUseBrick.INITIAL
|
|
35
|
+
});
|
|
36
|
+
if (realValue !== undefined) {
|
|
37
|
+
// For `style` and `dataset`, only object is acceptable.
|
|
38
|
+
if (propName !== "style" && propName !== "dataset" || (0, _general.isObject)(realValue)) {
|
|
39
|
+
return [propName, realValue];
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}))).filter(Boolean));
|
|
43
|
+
}
|
|
44
|
+
return {};
|
|
45
|
+
}
|
|
46
|
+
function computeRealProperties(properties, runtimeContext, trackingContextList) {
|
|
47
|
+
if ((0, _general.isObject)(properties)) {
|
|
48
|
+
return Object.fromEntries(Object.entries(properties).map(([propName, propValue]) => {
|
|
49
|
+
if (Array.isArray(trackingContextList)) {
|
|
50
|
+
const {
|
|
51
|
+
contextNames,
|
|
52
|
+
stateNames,
|
|
53
|
+
formStateNames
|
|
54
|
+
} = (0, _getTracks.getTracks)(propValue);
|
|
55
|
+
if (contextNames || stateNames || formStateNames) {
|
|
56
|
+
trackingContextList.push({
|
|
57
|
+
contextNames,
|
|
58
|
+
stateNames,
|
|
59
|
+
formStateNames,
|
|
60
|
+
propName,
|
|
61
|
+
propValue
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Related: https://github.com/facebook/react/issues/11347
|
|
66
|
+
const realValue = (0, _computeRealValue.computeRealValue)(propValue, runtimeContext, {
|
|
67
|
+
$$lazyForUseBrick: true,
|
|
68
|
+
$$stateOfUseBrick: propName === "useBrick" ? _getNextStateOfUseBrick.StateOfUseBrick.USE_BRICK : _getNextStateOfUseBrick.StateOfUseBrick.INITIAL
|
|
69
|
+
});
|
|
70
|
+
if (realValue !== undefined) {
|
|
71
|
+
// For `style` and `dataset`, only object is acceptable.
|
|
72
|
+
if (propName !== "style" && propName !== "dataset" || (0, _general.isObject)(realValue)) {
|
|
73
|
+
return [propName, realValue];
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}).filter(Boolean));
|
|
77
|
+
}
|
|
78
|
+
return {};
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=computeRealProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeRealProperties.js","names":["_general","require","_computeRealValue","_getNextStateOfUseBrick","_getTracks","asyncComputeRealProperties","properties","runtimeContext","trackingContextList","isObject","Object","fromEntries","Promise","all","entries","map","propName","propValue","Array","isArray","contextNames","stateNames","formStateNames","getTracks","push","realValue","asyncComputeRealValue","$$lazyForUseBrick","$$stateOfUseBrick","StateOfUseBrick","USE_BRICK","INITIAL","undefined","filter","Boolean","computeRealProperties","computeRealValue"],"sources":["../../../../src/internal/compute/computeRealProperties.ts"],"sourcesContent":["import { isObject } from \"@next-core/utils/general\";\nimport { asyncComputeRealValue, computeRealValue } from \"./computeRealValue.js\";\nimport { TrackingContextItem } from \"./listenOnTrackingContext.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { StateOfUseBrick } from \"./getNextStateOfUseBrick.js\";\nimport { getTracks } from \"./getTracks.js\";\n\nexport async function asyncComputeRealProperties(\n properties: Record<string, unknown> | undefined,\n runtimeContext: RuntimeContext,\n trackingContextList?: TrackingContextItem[]\n): Promise<Record<string, unknown>> {\n if (isObject(properties)) {\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(properties).map<\n Promise<[string, unknown] | undefined>\n >(async ([propName, propValue]) => {\n if (Array.isArray(trackingContextList)) {\n const { contextNames, stateNames, formStateNames } =\n getTracks(propValue);\n if (contextNames || stateNames || formStateNames) {\n trackingContextList.push({\n contextNames,\n stateNames,\n formStateNames,\n propName,\n propValue,\n });\n }\n }\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = await asyncComputeRealValue(\n propValue,\n runtimeContext,\n {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick:\n propName === \"useBrick\"\n ? StateOfUseBrick.USE_BRICK\n : StateOfUseBrick.INITIAL,\n }\n );\n if (realValue !== undefined) {\n // For `style` and `dataset`, only object is acceptable.\n if (\n (propName !== \"style\" && propName !== \"dataset\") ||\n isObject(realValue)\n ) {\n return [propName, realValue];\n }\n }\n })\n )\n ).filter(Boolean) as [string, unknown][]\n );\n }\n\n return {};\n}\n\nexport function computeRealProperties(\n properties: Record<string, unknown> | undefined,\n runtimeContext: RuntimeContext,\n trackingContextList?: TrackingContextItem[]\n): Record<string, unknown> {\n if (isObject(properties)) {\n return Object.fromEntries(\n Object.entries(properties)\n .map<[string, unknown] | undefined>(([propName, propValue]) => {\n if (Array.isArray(trackingContextList)) {\n const { contextNames, stateNames, formStateNames } =\n getTracks(propValue);\n if (contextNames || stateNames || formStateNames) {\n trackingContextList.push({\n contextNames,\n stateNames,\n formStateNames,\n propName,\n propValue,\n });\n }\n }\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = computeRealValue(propValue, runtimeContext, {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick:\n propName === \"useBrick\"\n ? StateOfUseBrick.USE_BRICK\n : StateOfUseBrick.INITIAL,\n });\n if (realValue !== undefined) {\n // For `style` and `dataset`, only object is acceptable.\n if (\n (propName !== \"style\" && propName !== \"dataset\") ||\n isObject(realValue)\n ) {\n return [propName, realValue];\n }\n }\n })\n .filter(Boolean) as [string, unknown][]\n );\n }\n\n return {};\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.asyncComputeRealValue = asyncComputeRealValue;
|
|
7
|
+
exports.computeRealValue = computeRealValue;
|
|
8
|
+
var _cook = require("@next-core/cook");
|
|
9
|
+
var _general = require("@next-core/utils/general");
|
|
10
|
+
var _inject = require("@next-core/inject");
|
|
11
|
+
var _evaluate = require("./evaluate.js");
|
|
12
|
+
var _getNextStateOfUseBrick = require("./getNextStateOfUseBrick.js");
|
|
13
|
+
var _markAsComputed = require("./markAsComputed.js");
|
|
14
|
+
async function asyncComputeRealValue(value, runtimeContext, internalOptions = {}) {
|
|
15
|
+
const preEvaluated = (0, _evaluate.isPreEvaluated)(value);
|
|
16
|
+
if (preEvaluated || typeof value === "string") {
|
|
17
|
+
// For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,
|
|
18
|
+
// are kept and to be evaluated later.
|
|
19
|
+
const lazy = internalOptions.$$lazyForUseBrick && (0, _getNextStateOfUseBrick.isLazyContentInUseBrick)(internalOptions.$$stateOfUseBrick);
|
|
20
|
+
let result;
|
|
21
|
+
let dismissMarkingComputed = lazy;
|
|
22
|
+
if (preEvaluated || (0, _cook.isEvaluable)(value)) {
|
|
23
|
+
result = await (0, _evaluate.asyncEvaluate)(value, runtimeContext, {
|
|
24
|
+
lazy
|
|
25
|
+
});
|
|
26
|
+
dismissMarkingComputed = (0, _evaluate.shouldDismissMarkingComputed)(value);
|
|
27
|
+
} else {
|
|
28
|
+
result = lazy ? value : (0, _inject.transformAndInject)(value, runtimeContext);
|
|
29
|
+
}
|
|
30
|
+
if (!dismissMarkingComputed) {
|
|
31
|
+
(0, _markAsComputed.markAsComputed)(result);
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value)) {
|
|
36
|
+
return value;
|
|
37
|
+
}
|
|
38
|
+
if (Array.isArray(value)) {
|
|
39
|
+
const nextOptions = getNextComputeOptions(internalOptions, true);
|
|
40
|
+
return Promise.all(value.map(v => asyncComputeRealValue(v, runtimeContext, nextOptions)));
|
|
41
|
+
}
|
|
42
|
+
return Object.fromEntries((await Promise.all(Object.entries(value).map(([k, v]) => Promise.all([asyncComputeRealValue(k, runtimeContext), asyncComputeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))])))).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));
|
|
43
|
+
}
|
|
44
|
+
function computeRealValue(value, runtimeContext, internalOptions = {}) {
|
|
45
|
+
const preEvaluated = (0, _evaluate.isPreEvaluated)(value);
|
|
46
|
+
if (preEvaluated || typeof value === "string") {
|
|
47
|
+
// For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,
|
|
48
|
+
// are kept and to be evaluated later.
|
|
49
|
+
const lazy = internalOptions.$$lazyForUseBrick && (0, _getNextStateOfUseBrick.isLazyContentInUseBrick)(internalOptions.$$stateOfUseBrick);
|
|
50
|
+
let result;
|
|
51
|
+
let dismissMarkingComputed = lazy;
|
|
52
|
+
if (preEvaluated || (0, _cook.isEvaluable)(value)) {
|
|
53
|
+
result = (0, _evaluate.evaluate)(value, runtimeContext);
|
|
54
|
+
dismissMarkingComputed = (0, _evaluate.shouldDismissMarkingComputed)(value);
|
|
55
|
+
} else {
|
|
56
|
+
result = lazy ? value : (0, _inject.transformAndInject)(value, runtimeContext);
|
|
57
|
+
}
|
|
58
|
+
if (!dismissMarkingComputed) {
|
|
59
|
+
(0, _markAsComputed.markAsComputed)(result);
|
|
60
|
+
}
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
if (!(0, _general.isObject)(value) || (0, _markAsComputed.hasBeenComputed)(value)) {
|
|
64
|
+
return value;
|
|
65
|
+
}
|
|
66
|
+
if (Array.isArray(value)) {
|
|
67
|
+
const nextOptions = getNextComputeOptions(internalOptions, true);
|
|
68
|
+
return value.map(v => computeRealValue(v, runtimeContext, nextOptions));
|
|
69
|
+
}
|
|
70
|
+
return Object.fromEntries(Object.entries(value).map(([k, v]) => [computeRealValue(k, runtimeContext), computeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))]).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));
|
|
71
|
+
}
|
|
72
|
+
function getNextComputeOptions(internalOptions, isArray, key) {
|
|
73
|
+
return internalOptions.$$lazyForUseBrick ? {
|
|
74
|
+
...internalOptions,
|
|
75
|
+
$$stateOfUseBrick: (0, _getNextStateOfUseBrick.getNextStateOfUseBrick)(internalOptions.$$stateOfUseBrick, isArray, key)
|
|
76
|
+
} : internalOptions;
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=computeRealValue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeRealValue.js","names":["_cook","require","_general","_inject","_evaluate","_getNextStateOfUseBrick","_markAsComputed","asyncComputeRealValue","value","runtimeContext","internalOptions","preEvaluated","isPreEvaluated","lazy","$$lazyForUseBrick","isLazyContentInUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","isEvaluable","asyncEvaluate","shouldDismissMarkingComputed","transformAndInject","markAsComputed","isObject","hasBeenComputed","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","evaluate","key","getNextStateOfUseBrick"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { transformAndInject } from \"@next-core/inject\";\nimport {\n asyncEvaluate,\n isPreEvaluated,\n evaluate,\n shouldDismissMarkingComputed,\n} from \"./evaluate.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport {\n StateOfUseBrick,\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n} from \"./getNextStateOfUseBrick.js\";\nimport { hasBeenComputed, markAsComputed } from \"./markAsComputed.js\";\n\nexport interface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n ignoreSymbols?: boolean;\n}\n\nexport async function asyncComputeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): Promise<unknown> {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = await asyncEvaluate(value, runtimeContext, { lazy });\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy ? value : transformAndInject(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return Promise.all(\n value.map((v) => asyncComputeRealValue(v, runtimeContext, nextOptions))\n );\n }\n\n return Object.fromEntries(\n (\n await Promise.all(\n Object.entries(value).map(([k, v]) =>\n Promise.all([\n asyncComputeRealValue(k, runtimeContext),\n asyncComputeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n )\n )\n ).concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nexport function computeRealValue(\n value: unknown,\n runtimeContext: RuntimeContext,\n internalOptions: ComputeOptions = {}\n): unknown {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissMarkingComputed = lazy;\n\n if (preEvaluated || isEvaluable(value as string)) {\n result = evaluate(value, runtimeContext);\n dismissMarkingComputed = shouldDismissMarkingComputed(value);\n } else {\n result = lazy ? value : transformAndInject(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (!isObject(value) || hasBeenComputed(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextComputeOptions(internalOptions, true);\n return value.map((v) => computeRealValue(v, runtimeContext, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(value)\n .map(([k, v]) => [\n computeRealValue(k, runtimeContext),\n computeRealValue(\n v,\n runtimeContext,\n getNextComputeOptions(internalOptions, false, k)\n ),\n ])\n .concat(\n internalOptions.ignoreSymbols\n ? []\n : Object.getOwnPropertySymbols(value).map((k) => [\n k,\n (value as Record<string | symbol, unknown>)[k],\n ])\n )\n );\n}\n\nfunction getNextComputeOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n"],"mappings":"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"}
|