@next-core/runtime 1.44.2 → 1.44.3
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.map +1 -1
- package/dist/cjs/CustomTemplates.js +7 -11
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/createRoot.js +4 -4
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/getPageInfo.js.map +1 -1
- package/dist/cjs/handleHttpError.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/utils.js +2 -2
- package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +8 -14
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +8 -10
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +14 -14
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +2 -3
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +4 -4
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/cjs/internal/compute/getStorageItem.js +1 -2
- package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
- package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/cjs/internal/data/resolveData.js.map +1 -1
- package/dist/cjs/internal/data/resolveDataStore.js +2 -4
- package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
- package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
- package/dist/cjs/internal/historyExtended.js.map +1 -1
- package/dist/cjs/internal/matchPath.js.map +1 -1
- package/dist/cjs/internal/matchRoutes.js.map +1 -1
- package/dist/cjs/internal/matchStoryboard.js +2 -2
- package/dist/cjs/internal/matchStoryboard.js.map +1 -1
- package/dist/cjs/internal/mediaQuery.js.map +1 -1
- package/dist/cjs/internal/mount.js.map +1 -1
- package/dist/cjs/internal/poll.js +3 -3
- package/dist/cjs/internal/poll.js.map +1 -1
- package/dist/cjs/internal/registerAppI18n.js.map +1 -1
- package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +4 -4
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
- package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/cjs/isStrictMode.js.map +1 -1
- package/dist/cjs/setLoginStateCookie.js.map +1 -1
- package/dist/cjs/setWatermark.js +4 -4
- package/dist/cjs/setWatermark.js.map +1 -1
- package/dist/cjs/themeAndMode.js +1 -2
- package/dist/cjs/themeAndMode.js.map +1 -1
- package/dist/esm/CustomProcessors.js +5 -5
- package/dist/esm/CustomProcessors.js.map +1 -1
- package/dist/esm/CustomTemplates.js +48 -58
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/Dialog.js +3 -3
- package/dist/esm/Dialog.js.map +1 -1
- package/dist/esm/Notification.js +2 -2
- package/dist/esm/Notification.js.map +1 -1
- package/dist/esm/StoryboardFunctionRegistry.js +18 -18
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/esm/createRoot.js +125 -129
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/fetchByProvider.js +3 -10
- package/dist/esm/fetchByProvider.js.map +1 -1
- package/dist/esm/getBasePath.js +2 -2
- package/dist/esm/getBasePath.js.map +1 -1
- package/dist/esm/getPageInfo.js +5 -5
- package/dist/esm/getPageInfo.js.map +1 -1
- package/dist/esm/getRealValue.js +7 -6
- package/dist/esm/getRealValue.js.map +1 -1
- package/dist/esm/getV2RuntimeFromDll.js +1 -1
- package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
- package/dist/esm/handleHttpError.js +11 -11
- package/dist/esm/handleHttpError.js.map +1 -1
- package/dist/esm/history.js +4 -4
- package/dist/esm/history.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/constants.js +5 -5
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js +8 -8
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/FormRenderer/constants.js +2 -2
- package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
- package/dist/esm/internal/FormRenderer/utils.js +4 -4
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
- package/dist/esm/internal/Renderer.js +517 -580
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +132 -148
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +325 -346
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +53 -51
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/abortController.js +7 -6
- package/dist/esm/internal/abortController.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +136 -156
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
- package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetI18n.js +4 -4
- package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
- package/dist/esm/internal/compute/checkIf.js +10 -23
- package/dist/esm/internal/compute/checkIf.js.map +1 -1
- package/dist/esm/internal/compute/computeRealProperties.js +22 -35
- package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
- package/dist/esm/internal/compute/computeRealValue.js +42 -49
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +71 -75
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
- package/dist/esm/internal/compute/getStorageItem.js +2 -3
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
- package/dist/esm/internal/compute/getTracks.js +5 -5
- package/dist/esm/internal/compute/getTracks.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/compute/markAsComputed.js +2 -2
- package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
- package/dist/esm/internal/compute/setProperties.js +1 -1
- package/dist/esm/internal/compute/setProperties.js.map +1 -1
- package/dist/esm/internal/compute/setRealProperties.js +3 -3
- package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
- package/dist/esm/internal/customizeColorTheme.js +15 -13
- package/dist/esm/internal/customizeColorTheme.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +161 -177
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/data/getProviderBrick.js +21 -28
- package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
- package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
- package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/esm/internal/data/resolveData.js +89 -103
- package/dist/esm/internal/data/resolveData.js.map +1 -1
- package/dist/esm/internal/data/resolveDataStore.js +53 -67
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
- package/dist/esm/internal/devtools.js +9 -9
- package/dist/esm/internal/devtools.js.map +1 -1
- package/dist/esm/internal/enums.js +1 -1
- package/dist/esm/internal/fulfilStoryboard.js +15 -28
- package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
- package/dist/esm/internal/hasInstalledApp.js +3 -3
- package/dist/esm/internal/hasInstalledApp.js.map +1 -1
- package/dist/esm/internal/historyExtended.js +40 -37
- package/dist/esm/internal/historyExtended.js.map +1 -1
- package/dist/esm/internal/i18n.js +5 -5
- package/dist/esm/internal/i18n.js.map +1 -1
- package/dist/esm/internal/injected.js +1 -1
- package/dist/esm/internal/injected.js.map +1 -1
- package/dist/esm/internal/insertPreviewRoutes.js +3 -3
- package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
- package/dist/esm/internal/matchPath.js +17 -17
- package/dist/esm/internal/matchPath.js.map +1 -1
- package/dist/esm/internal/matchRoutes.js +18 -25
- package/dist/esm/internal/matchRoutes.js.map +1 -1
- package/dist/esm/internal/matchStoryboard.js +6 -6
- package/dist/esm/internal/matchStoryboard.js.map +1 -1
- package/dist/esm/internal/mediaQuery.js +11 -11
- package/dist/esm/internal/mediaQuery.js.map +1 -1
- package/dist/esm/internal/mount.js +7 -7
- package/dist/esm/internal/mount.js.map +1 -1
- package/dist/esm/internal/poll.js +53 -60
- package/dist/esm/internal/poll.js.map +1 -1
- package/dist/esm/internal/proxyFactories.js +4 -4
- package/dist/esm/internal/proxyFactories.js.map +1 -1
- package/dist/esm/internal/registerAppI18n.js +6 -6
- package/dist/esm/internal/registerAppI18n.js.map +1 -1
- package/dist/esm/internal/registerCustomTemplates.js +3 -3
- package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +140 -146
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
- package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/esm/internal/sse.js +24 -53
- package/dist/esm/internal/sse.js.map +1 -1
- package/dist/esm/internal/test_only.js +1 -1
- package/dist/esm/isStrictMode.js +3 -3
- package/dist/esm/isStrictMode.js.map +1 -1
- package/dist/esm/setAppVariable.js +1 -1
- package/dist/esm/setAppVariable.js.map +1 -1
- package/dist/esm/setLoginStateCookie.js +5 -5
- package/dist/esm/setLoginStateCookie.js.map +1 -1
- package/dist/esm/setUIVersion.js +1 -1
- package/dist/esm/setWatermark.js +13 -13
- package/dist/esm/setWatermark.js.map +1 -1
- package/dist/esm/themeAndMode.js +14 -13
- package/dist/esm/themeAndMode.js.map +1 -1
- package/dist/types/tsdoc-metadata.json +1 -1
- package/package.json +12 -12
|
@@ -1,60 +1,52 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
1
|
import { isEvaluable } from "@next-core/cook";
|
|
4
2
|
import { hasOwnProperty, isObject } from "@next-core/utils/general";
|
|
5
3
|
import { transformAndInject, transform, inject } from "@next-core/inject";
|
|
6
4
|
import { asyncEvaluate, isPreEvaluated, evaluate, shouldDismissMarkingComputed } from "./evaluate.js";
|
|
7
5
|
import { getNextStateOfUseBrick, isLazyContentInUseBrick } from "./getNextStateOfUseBrick.js";
|
|
8
6
|
import { hasBeenComputed, markAsComputed } from "./markAsComputed.js";
|
|
9
|
-
export function asyncComputeRealValue(
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
26
|
-
dismissMarkingComputed = shouldDismissMarkingComputed(value);
|
|
27
|
-
} else {
|
|
28
|
-
result = lazy ? value : (hasOwnProperty(runtimeContext, "data") ? internalOptions.noInject ? transform : transformAndInject : internalOptions.noInject ? identity : inject)(value, runtimeContext);
|
|
29
|
-
}
|
|
30
|
-
if (!dismissMarkingComputed) {
|
|
31
|
-
markAsComputed(result);
|
|
32
|
-
}
|
|
33
|
-
return result;
|
|
34
|
-
}
|
|
35
|
-
if (!isObject(value) || hasBeenComputed(value) || typeof value === "function") {
|
|
36
|
-
return value;
|
|
7
|
+
export async function asyncComputeRealValue(value, runtimeContext) {
|
|
8
|
+
let internalOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
9
|
+
const preEvaluated = isPreEvaluated(value);
|
|
10
|
+
if (preEvaluated || typeof value === "string") {
|
|
11
|
+
// For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,
|
|
12
|
+
// are kept and to be evaluated later.
|
|
13
|
+
const lazy = internalOptions.$$lazyForUseBrick && isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);
|
|
14
|
+
let result;
|
|
15
|
+
let dismissMarkingComputed = lazy;
|
|
16
|
+
if (preEvaluated || isEvaluable(value)) {
|
|
17
|
+
result = await asyncEvaluate(value, runtimeContext, {
|
|
18
|
+
lazy
|
|
19
|
+
});
|
|
20
|
+
dismissMarkingComputed = shouldDismissMarkingComputed(value);
|
|
21
|
+
} else {
|
|
22
|
+
result = lazy ? value : (hasOwnProperty(runtimeContext, "data") ? internalOptions.noInject ? transform : transformAndInject : internalOptions.noInject ? identity : inject)(value, runtimeContext);
|
|
37
23
|
}
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
return Promise.all(value.map(v => asyncComputeRealValue(v, runtimeContext, nextOptions)));
|
|
24
|
+
if (!dismissMarkingComputed) {
|
|
25
|
+
markAsComputed(result);
|
|
41
26
|
}
|
|
42
|
-
return
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
27
|
+
return result;
|
|
28
|
+
}
|
|
29
|
+
if (!isObject(value) || hasBeenComputed(value) || typeof value === "function") {
|
|
30
|
+
return value;
|
|
31
|
+
}
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
const nextOptions = getNextComputeOptions(internalOptions, true);
|
|
34
|
+
return Promise.all(value.map(v => asyncComputeRealValue(v, runtimeContext, nextOptions)));
|
|
35
|
+
}
|
|
36
|
+
return Object.fromEntries((await Promise.all(Object.entries(value).map(_ref => {
|
|
37
|
+
let [k, v] = _ref;
|
|
38
|
+
return Promise.all([asyncComputeRealValue(k, runtimeContext), asyncComputeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))]);
|
|
39
|
+
}))).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));
|
|
48
40
|
}
|
|
49
41
|
export function computeRealValue(value, runtimeContext) {
|
|
50
|
-
|
|
51
|
-
|
|
42
|
+
let internalOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
43
|
+
const preEvaluated = isPreEvaluated(value);
|
|
52
44
|
if (preEvaluated || typeof value === "string") {
|
|
53
45
|
// For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,
|
|
54
46
|
// are kept and to be evaluated later.
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
47
|
+
const lazy = internalOptions.$$lazyForUseBrick && isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);
|
|
48
|
+
let result;
|
|
49
|
+
let dismissMarkingComputed = lazy;
|
|
58
50
|
if (preEvaluated || isEvaluable(value)) {
|
|
59
51
|
result = evaluate(value, runtimeContext);
|
|
60
52
|
dismissMarkingComputed = shouldDismissMarkingComputed(value);
|
|
@@ -70,18 +62,19 @@ export function computeRealValue(value, runtimeContext) {
|
|
|
70
62
|
return value;
|
|
71
63
|
}
|
|
72
64
|
if (Array.isArray(value)) {
|
|
73
|
-
|
|
65
|
+
const nextOptions = getNextComputeOptions(internalOptions, true);
|
|
74
66
|
return value.map(v => computeRealValue(v, runtimeContext, nextOptions));
|
|
75
67
|
}
|
|
76
|
-
return Object.fromEntries(Object.entries(value).map(
|
|
77
|
-
|
|
68
|
+
return Object.fromEntries(Object.entries(value).map(_ref2 => {
|
|
69
|
+
let [k, v] = _ref2;
|
|
78
70
|
return [computeRealValue(k, runtimeContext), computeRealValue(v, runtimeContext, getNextComputeOptions(internalOptions, false, k))];
|
|
79
71
|
}).concat(internalOptions.ignoreSymbols ? [] : Object.getOwnPropertySymbols(value).map(k => [k, value[k]])));
|
|
80
72
|
}
|
|
81
73
|
function getNextComputeOptions(internalOptions, isArray, key) {
|
|
82
|
-
return internalOptions.$$lazyForUseBrick ?
|
|
74
|
+
return internalOptions.$$lazyForUseBrick ? {
|
|
75
|
+
...internalOptions,
|
|
83
76
|
$$stateOfUseBrick: getNextStateOfUseBrick(internalOptions.$$stateOfUseBrick, isArray, key)
|
|
84
|
-
}
|
|
77
|
+
} : internalOptions;
|
|
85
78
|
}
|
|
86
79
|
function identity(value) {
|
|
87
80
|
return value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeRealValue.js","names":["isEvaluable","hasOwnProperty","isObject","transformAndInject","transform","inject","asyncEvaluate","isPreEvaluated","evaluate","shouldDismissMarkingComputed","getNextStateOfUseBrick","isLazyContentInUseBrick","hasBeenComputed","markAsComputed","asyncComputeRealValue","_x","_x2","_asyncComputeRealValue","apply","arguments","_asyncToGenerator","value","runtimeContext","internalOptions","length","undefined","preEvaluated","lazy","$$lazyForUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","noInject","identity","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","_ref2","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","_ref","key","_objectSpread"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } 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 noInject?: 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\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\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\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\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\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,cAAc,EAAEC,QAAQ,QAAQ,0BAA0B;AACnE,SAASC,kBAAkB,EAAEC,SAAS,EAAEC,MAAM,QAAQ,mBAAmB;AACzE,SACEC,aAAa,EACbC,cAAc,EACdC,QAAQ,EACRC,4BAA4B,QACvB,eAAe;AAEtB,SAEEC,sBAAsB,EACtBC,uBAAuB,QAClB,6BAA6B;AACpC,SAASC,eAAe,EAAEC,cAAc,QAAQ,qBAAqB;AASrE,gBAAsBC,qBAAqBA,CAAAC,EAAA,EAAAC,GAAA;EAAA,OAAAC,sBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AA6E1C,SAAAF,uBAAA;EAAAA,sBAAA,GAAAG,iBAAA,CA7EM,WACLC,KAAc,EACdC,cAA8B,EAEZ;IAAA,IADlBC,eAA+B,GAAAJ,SAAA,CAAAK,MAAA,QAAAL,SAAA,QAAAM,SAAA,GAAAN,SAAA,MAAG,CAAC,CAAC;IAEpC,IAAMO,YAAY,GAAGnB,cAAc,CAACc,KAAK,CAAC;IAE1C,IAAIK,YAAY,IAAI,OAAOL,KAAK,KAAK,QAAQ,EAAE;MAC7C;MACA;MACA,IAAMM,IAAI,GACRJ,eAAe,CAACK,iBAAiB,IACjCjB,uBAAuB,CAACY,eAAe,CAACM,iBAAiB,CAAC;MAE5D,IAAIC,MAAe;MACnB,IAAIC,sBAAsB,GAAGJ,IAAI;MAEjC,IAAID,YAAY,IAAI1B,WAAW,CAACqB,KAAe,CAAC,EAAE;QAChDS,MAAM,SAASxB,aAAa,CAACe,KAAK,EAAEC,cAAc,EAAE;UAAEK;QAAK,CAAC,CAAC;QAC7DI,sBAAsB,GAAGtB,4BAA4B,CAACY,KAAK,CAAC;MAC9D,CAAC,MAAM;QACLS,MAAM,GAAGH,IAAI,GACTN,KAAK,GACL,CAACpB,cAAc,CAACqB,cAAc,EAAE,MAAM,CAAC,GACnCC,eAAe,CAACS,QAAQ,GACtB5B,SAAS,GACTD,kBAAkB,GACpBoB,eAAe,CAACS,QAAQ,GACxBC,QAAQ,GACR5B,MAAM,EAAEgB,KAAK,EAAEC,cAAc,CAAC;MACxC;MAEA,IAAI,CAACS,sBAAsB,EAAE;QAC3BlB,cAAc,CAACiB,MAAM,CAAC;MACxB;MAEA,OAAOA,MAAM;IACf;IAEA,IACE,CAAC5B,QAAQ,CAACmB,KAAK,CAAC,IAChBT,eAAe,CAACS,KAAK,CAAC,IACtB,OAAOA,KAAK,KAAK,UAAU,EAC3B;MACA,OAAOA,KAAK;IACd;IAEA,IAAIa,KAAK,CAACC,OAAO,CAACd,KAAK,CAAC,EAAE;MACxB,IAAMe,WAAW,GAAGC,qBAAqB,CAACd,eAAe,EAAE,IAAI,CAAC;MAChE,OAAOe,OAAO,CAACC,GAAG,CAChBlB,KAAK,CAACmB,GAAG,CAAEC,CAAC,IAAK3B,qBAAqB,CAAC2B,CAAC,EAAEnB,cAAc,EAAEc,WAAW,CAAC,CACxE,CAAC;IACH;IAEA,OAAOM,MAAM,CAACC,WAAW,CACvB,OACQL,OAAO,CAACC,GAAG,CACfG,MAAM,CAACE,OAAO,CAACvB,KAAK,CAAC,CAACmB,GAAG,CAACK,KAAA;MAAA,IAAC,CAACC,CAAC,EAAEL,CAAC,CAAC,GAAAI,KAAA;MAAA,OAC/BP,OAAO,CAACC,GAAG,CAAC,CACVzB,qBAAqB,CAACgC,CAAC,EAAExB,cAAc,CAAC,EACxCR,qBAAqB,CACnB2B,CAAC,EACDnB,cAAc,EACde,qBAAqB,CAACd,eAAe,EAAE,KAAK,EAAEuB,CAAC,CACjD,CAAC,CACF,CAAC;IAAA,CACJ,CACF,CAAC,EACDC,MAAM,CACNxB,eAAe,CAACyB,aAAa,GACzB,EAAE,GACFN,MAAM,CAACO,qBAAqB,CAAC5B,KAAK,CAAC,CAACmB,GAAG,CAAEM,CAAC,IAAK,CAC7CA,CAAC,EACAzB,KAAK,CAAsCyB,CAAC,CAAC,CAC/C,CACP,CACF,CAAC;EACH,CAAC;EAAA,OAAA7B,sBAAA,CAAAC,KAAA,OAAAC,SAAA;AAAA;AAED,OAAO,SAAS+B,gBAAgBA,CAC9B7B,KAAc,EACdC,cAA8B,EAErB;EAAA,IADTC,eAA+B,GAAAJ,SAAA,CAAAK,MAAA,QAAAL,SAAA,QAAAM,SAAA,GAAAN,SAAA,MAAG,CAAC,CAAC;EAEpC,IAAMO,YAAY,GAAGnB,cAAc,CAACc,KAAK,CAAC;EAE1C,IAAIK,YAAY,IAAI,OAAOL,KAAK,KAAK,QAAQ,EAAE;IAC7C;IACA;IACA,IAAMM,IAAI,GACRJ,eAAe,CAACK,iBAAiB,IACjCjB,uBAAuB,CAACY,eAAe,CAACM,iBAAiB,CAAC;IAE5D,IAAIC,MAAe;IACnB,IAAIC,sBAAsB,GAAGJ,IAAI;IAEjC,IAAID,YAAY,IAAI1B,WAAW,CAACqB,KAAe,CAAC,EAAE;MAChDS,MAAM,GAAGtB,QAAQ,CAACa,KAAK,EAAEC,cAAc,CAAC;MACxCS,sBAAsB,GAAGtB,4BAA4B,CAACY,KAAK,CAAC;IAC9D,CAAC,MAAM;MACLS,MAAM,GAAGH,IAAI,GACTN,KAAK,GACL,CAACpB,cAAc,CAACqB,cAAc,EAAE,MAAM,CAAC,GACnCC,eAAe,CAACS,QAAQ,GACtB5B,SAAS,GACTD,kBAAkB,GACpBoB,eAAe,CAACS,QAAQ,GACxBC,QAAQ,GACR5B,MAAM,EAAEgB,KAAK,EAAEC,cAAc,CAAC;IACxC;IAEA,IAAI,CAACS,sBAAsB,EAAE;MAC3BlB,cAAc,CAACiB,MAAM,CAAC;IACxB;IAEA,OAAOA,MAAM;EACf;EAEA,IACE,CAAC5B,QAAQ,CAACmB,KAAK,CAAC,IAChBT,eAAe,CAACS,KAAK,CAAC,IACtB,OAAOA,KAAK,KAAK,UAAU,EAC3B;IACA,OAAOA,KAAK;EACd;EAEA,IAAIa,KAAK,CAACC,OAAO,CAACd,KAAK,CAAC,EAAE;IACxB,IAAMe,WAAW,GAAGC,qBAAqB,CAACd,eAAe,EAAE,IAAI,CAAC;IAChE,OAAOF,KAAK,CAACmB,GAAG,CAAEC,CAAC,IAAKS,gBAAgB,CAACT,CAAC,EAAEnB,cAAc,EAAEc,WAAW,CAAC,CAAC;EAC3E;EAEA,OAAOM,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACvB,KAAK,CAAC,CAClBmB,GAAG,CAACW,IAAA;IAAA,IAAC,CAACL,CAAC,EAAEL,CAAC,CAAC,GAAAU,IAAA;IAAA,OAAK,CACfD,gBAAgB,CAACJ,CAAC,EAAExB,cAAc,CAAC,EACnC4B,gBAAgB,CACdT,CAAC,EACDnB,cAAc,EACde,qBAAqB,CAACd,eAAe,EAAE,KAAK,EAAEuB,CAAC,CACjD,CAAC,CACF;EAAA,EAAC,CACDC,MAAM,CACLxB,eAAe,CAACyB,aAAa,GACzB,EAAE,GACFN,MAAM,CAACO,qBAAqB,CAAC5B,KAAK,CAAC,CAACmB,GAAG,CAAEM,CAAC,IAAK,CAC7CA,CAAC,EACAzB,KAAK,CAAsCyB,CAAC,CAAC,CAC/C,CACP,CACJ,CAAC;AACH;AAEA,SAAST,qBAAqBA,CAC5Bd,eAA+B,EAC/BY,OAAgB,EAChBiB,GAAY,EACI;EAChB,OAAO7B,eAAe,CAACK,iBAAiB,GAAAyB,aAAA,CAAAA,aAAA,KAE/B9B,eAAe;IAClBM,iBAAiB,EAAEnB,sBAAsB,CACvCa,eAAe,CAACM,iBAAiB,EACjCM,OAAO,EACPiB,GACF;EAAC,KAEH7B,eAAe;AACrB;AAEA,SAASU,QAAQA,CAAIZ,KAAQ,EAAK;EAChC,OAAOA,KAAK;AACd","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"computeRealValue.js","names":["isEvaluable","hasOwnProperty","isObject","transformAndInject","transform","inject","asyncEvaluate","isPreEvaluated","evaluate","shouldDismissMarkingComputed","getNextStateOfUseBrick","isLazyContentInUseBrick","hasBeenComputed","markAsComputed","asyncComputeRealValue","value","runtimeContext","internalOptions","arguments","length","undefined","preEvaluated","lazy","$$lazyForUseBrick","$$stateOfUseBrick","result","dismissMarkingComputed","noInject","identity","Array","isArray","nextOptions","getNextComputeOptions","Promise","all","map","v","Object","fromEntries","entries","_ref","k","concat","ignoreSymbols","getOwnPropertySymbols","computeRealValue","_ref2","key"],"sources":["../../../../src/internal/compute/computeRealValue.ts"],"sourcesContent":["import { isEvaluable } from \"@next-core/cook\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { transformAndInject, transform, inject } 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 noInject?: 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\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\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\n ? value\n : (hasOwnProperty(runtimeContext, \"data\")\n ? internalOptions.noInject\n ? transform\n : transformAndInject\n : internalOptions.noInject\n ? identity\n : inject)(value, runtimeContext);\n }\n\n if (!dismissMarkingComputed) {\n markAsComputed(result);\n }\n\n return result;\n }\n\n if (\n !isObject(value) ||\n hasBeenComputed(value) ||\n typeof value === \"function\"\n ) {\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\nfunction identity<T>(value: T): T {\n return value;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
3
1
|
import { cook, preevaluate, shouldAllowRecursiveEvaluations } from "@next-core/cook";
|
|
4
2
|
import { loadProcessorsImperatively } from "@next-core/loader";
|
|
5
3
|
import { supply } from "@next-core/supply";
|
|
@@ -22,8 +20,8 @@ import { isStrictMode, warnAboutStrictMode } from "../../isStrictMode.js";
|
|
|
22
20
|
import { getFormStateStore } from "../FormRenderer/utils.js";
|
|
23
21
|
import { resolveData } from "../data/resolveData.js";
|
|
24
22
|
import { asyncComputeRealValue } from "./computeRealValue.js";
|
|
25
|
-
|
|
26
|
-
|
|
23
|
+
const symbolForRaw = Symbol.for("pre.evaluated.raw");
|
|
24
|
+
const symbolForContext = Symbol.for("pre.evaluated.context");
|
|
27
25
|
export function isPreEvaluated(raw) {
|
|
28
26
|
return !!(raw !== null && raw !== void 0 && raw[symbolForRaw]);
|
|
29
27
|
}
|
|
@@ -36,30 +34,24 @@ export function shouldDismissMarkingComputed(raw) {
|
|
|
36
34
|
}
|
|
37
35
|
return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);
|
|
38
36
|
}
|
|
39
|
-
|
|
37
|
+
const possibleErrorConstructs = new WeakSet([SyntaxError, TypeError, ReferenceError]);
|
|
40
38
|
export function getCookErrorConstructor(error) {
|
|
41
39
|
return possibleErrorConstructs.has(error.constructor) ? error.constructor : TypeError;
|
|
42
40
|
}
|
|
43
|
-
export function asyncEvaluate(
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
runtimeContext, options)
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
run
|
|
53
|
-
} = lowLevelEvaluate(raw, runtimeContext, options, true);
|
|
54
|
-
yield Promise.all(blockingList);
|
|
55
|
-
return run();
|
|
56
|
-
});
|
|
57
|
-
return _asyncEvaluate.apply(this, arguments);
|
|
41
|
+
export async function asyncEvaluate(raw,
|
|
42
|
+
// string or pre-evaluated object.
|
|
43
|
+
runtimeContext, options) {
|
|
44
|
+
const {
|
|
45
|
+
blockingList,
|
|
46
|
+
run
|
|
47
|
+
} = lowLevelEvaluate(raw, runtimeContext, options, true);
|
|
48
|
+
await Promise.all(blockingList);
|
|
49
|
+
return run();
|
|
58
50
|
}
|
|
59
51
|
export function evaluate(raw,
|
|
60
52
|
// string or pre-evaluated object.
|
|
61
53
|
runtimeContext, options) {
|
|
62
|
-
|
|
54
|
+
const {
|
|
63
55
|
run
|
|
64
56
|
} = lowLevelEvaluate(raw, runtimeContext, options, false);
|
|
65
57
|
return run();
|
|
@@ -67,28 +59,31 @@ runtimeContext, options) {
|
|
|
67
59
|
function lowLevelEvaluate(raw,
|
|
68
60
|
// string or pre-evaluated object.
|
|
69
61
|
runtimeContext) {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
62
|
+
let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
63
|
+
let isAsync = arguments.length > 3 ? arguments[3] : undefined;
|
|
64
|
+
const blockingList = [];
|
|
73
65
|
if (typeof raw !== "string") {
|
|
74
66
|
// If the `raw` is not a string, it must be a pre-evaluated object.
|
|
75
67
|
// Then fulfil the context, and restore the original `raw`.
|
|
76
68
|
|
|
77
|
-
|
|
78
|
-
runtimeContext =
|
|
69
|
+
const passByRuntimeContext = omit(runtimeContext, ["pendingPermissionsPreCheck", "tplStateStoreMap", "tplStateStoreScope", "formStateStoreMap", "formStateStoreScope"]);
|
|
70
|
+
runtimeContext = {
|
|
71
|
+
...raw[symbolForContext],
|
|
72
|
+
...passByRuntimeContext
|
|
73
|
+
};
|
|
79
74
|
raw = raw[symbolForRaw];
|
|
80
75
|
}
|
|
81
76
|
|
|
82
77
|
// Collect `APP.getMenu(...)` usage before evaluating.
|
|
83
|
-
|
|
78
|
+
const menuUsage = {
|
|
84
79
|
usedArgs: new Set()
|
|
85
80
|
};
|
|
86
|
-
|
|
81
|
+
const hasAppUsage = {
|
|
87
82
|
usedArgs: new Set()
|
|
88
83
|
};
|
|
89
84
|
|
|
90
85
|
// A `SyntaxError` maybe thrown.
|
|
91
|
-
|
|
86
|
+
let precooked;
|
|
92
87
|
try {
|
|
93
88
|
precooked = preevaluate(raw, {
|
|
94
89
|
withParent: true,
|
|
@@ -100,18 +95,18 @@ runtimeContext) {
|
|
|
100
95
|
}
|
|
101
96
|
});
|
|
102
97
|
} catch (error) {
|
|
103
|
-
|
|
104
|
-
|
|
98
|
+
const message = `${error.message}, in "${raw}"`;
|
|
99
|
+
const errorConstructor = getCookErrorConstructor(error);
|
|
105
100
|
throw new errorConstructor(message);
|
|
106
101
|
}
|
|
107
102
|
if (menuUsage.hasNonStaticUsage) {
|
|
108
|
-
throw new Error(
|
|
103
|
+
throw new Error(`Non-static usage of "APP.getMenu" is prohibited in v3, check your expression: "${raw}"`);
|
|
109
104
|
}
|
|
110
105
|
if (hasAppUsage.hasNonStaticUsage) {
|
|
111
|
-
throw new Error(
|
|
106
|
+
throw new Error(`Non-static usage of "INSTALLED_APPS.has" is prohibited in v3, check your expression: "${raw}"`);
|
|
112
107
|
}
|
|
113
|
-
|
|
114
|
-
|
|
108
|
+
const globalVariables = {};
|
|
109
|
+
const {
|
|
115
110
|
attemptToVisitGlobals
|
|
116
111
|
} = precooked;
|
|
117
112
|
|
|
@@ -129,22 +124,22 @@ runtimeContext) {
|
|
|
129
124
|
}
|
|
130
125
|
};
|
|
131
126
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
127
|
+
let usedCtx;
|
|
128
|
+
let usedProcessors;
|
|
129
|
+
let usedStates;
|
|
130
|
+
let tplStateStore;
|
|
131
|
+
const strict = isStrictMode(runtimeContext);
|
|
137
132
|
|
|
138
133
|
// For existed TPL usage, treat it as a STATE.
|
|
139
134
|
if (attemptToVisitGlobals.has("STATE") || !strict && attemptToVisitGlobals.has("TPL")) {
|
|
140
|
-
tplStateStore = getTplStateStore(runtimeContext, "STATE",
|
|
135
|
+
tplStateStore = getTplStateStore(runtimeContext, "STATE", `: "${raw}"`);
|
|
141
136
|
}
|
|
142
|
-
|
|
143
|
-
|
|
137
|
+
let usedFormStates;
|
|
138
|
+
let formStateStore;
|
|
144
139
|
if (attemptToVisitGlobals.has("FORM_STATE")) {
|
|
145
|
-
formStateStore = getFormStateStore(runtimeContext, "FORM_STATE",
|
|
140
|
+
formStateStore = getFormStateStore(runtimeContext, "FORM_STATE", `: "${raw}"`);
|
|
146
141
|
}
|
|
147
|
-
|
|
142
|
+
const devHook = getDevHook();
|
|
148
143
|
if (isAsync || devHook) {
|
|
149
144
|
if (attemptToVisitGlobals.has("CTX")) {
|
|
150
145
|
usedCtx = strictCollectMemberUsage(raw, "CTX");
|
|
@@ -154,8 +149,8 @@ runtimeContext) {
|
|
|
154
149
|
usedStates = strictCollectMemberUsage(raw, "STATE");
|
|
155
150
|
// istanbul ignore if
|
|
156
151
|
if (!strict) {
|
|
157
|
-
|
|
158
|
-
for (
|
|
152
|
+
const usedTpls = strictCollectMemberUsage(raw, "TPL");
|
|
153
|
+
for (const tpl of usedTpls) {
|
|
159
154
|
usedStates.add(tpl);
|
|
160
155
|
}
|
|
161
156
|
}
|
|
@@ -171,10 +166,10 @@ runtimeContext) {
|
|
|
171
166
|
}
|
|
172
167
|
}
|
|
173
168
|
if (isAsync) {
|
|
174
|
-
|
|
169
|
+
let attemptToCheckPermissions = attemptToVisitGlobals.has("PERMISSIONS");
|
|
175
170
|
// There maybe `PERMISSIONS.check()` usage in functions
|
|
176
171
|
if (!attemptToCheckPermissions && attemptToVisitGlobals.has("FN")) {
|
|
177
|
-
|
|
172
|
+
const usedFunctions = [...strictCollectMemberUsage(raw, "FN")];
|
|
178
173
|
attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);
|
|
179
174
|
}
|
|
180
175
|
if (attemptToCheckPermissions) {
|
|
@@ -182,7 +177,7 @@ runtimeContext) {
|
|
|
182
177
|
}
|
|
183
178
|
if (menuUsage.usedArgs.size > 0 && hooks !== null && hooks !== void 0 && hooks.menu) {
|
|
184
179
|
// Block evaluating if has `APP.getMenu(...)` usage.
|
|
185
|
-
|
|
180
|
+
const usedMenuIds = [...menuUsage.usedArgs];
|
|
186
181
|
blockingList.push(Promise.all(usedMenuIds.map(menuId => hooks.menu.fetchMenuById(menuId, runtimeContext, {
|
|
187
182
|
getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,
|
|
188
183
|
resolveData,
|
|
@@ -198,8 +193,8 @@ runtimeContext) {
|
|
|
198
193
|
return {
|
|
199
194
|
blockingList,
|
|
200
195
|
run() {
|
|
201
|
-
var
|
|
202
|
-
|
|
196
|
+
var _hooks$menu, _hooks$images;
|
|
197
|
+
const {
|
|
203
198
|
app: currentApp,
|
|
204
199
|
location,
|
|
205
200
|
query,
|
|
@@ -210,8 +205,8 @@ runtimeContext) {
|
|
|
210
205
|
data,
|
|
211
206
|
event
|
|
212
207
|
} = runtimeContext;
|
|
213
|
-
|
|
214
|
-
for (
|
|
208
|
+
const app = runtimeContext.overrideApp ?? currentApp;
|
|
209
|
+
for (const variableName of attemptToVisitGlobals) {
|
|
215
210
|
switch (variableName) {
|
|
216
211
|
// case "ALIAS":
|
|
217
212
|
case "ANCHOR":
|
|
@@ -219,11 +214,12 @@ runtimeContext) {
|
|
|
219
214
|
break;
|
|
220
215
|
case "APP":
|
|
221
216
|
if (app == null) {
|
|
222
|
-
throw new ReferenceError(
|
|
217
|
+
throw new ReferenceError(`APP is not defined, in "${raw}"`);
|
|
223
218
|
}
|
|
224
|
-
globalVariables[variableName] =
|
|
219
|
+
globalVariables[variableName] = {
|
|
220
|
+
...cloneDeep(app),
|
|
225
221
|
getMenu: hooks === null || hooks === void 0 || (_hooks$menu = hooks.menu) === null || _hooks$menu === void 0 ? void 0 : _hooks$menu.getMenuById
|
|
226
|
-
}
|
|
222
|
+
};
|
|
227
223
|
break;
|
|
228
224
|
case "CTX":
|
|
229
225
|
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
@@ -265,10 +261,10 @@ runtimeContext) {
|
|
|
265
261
|
case "ITEM":
|
|
266
262
|
case "INDEX":
|
|
267
263
|
{
|
|
268
|
-
|
|
264
|
+
const property = variableName === "ITEM" ? "forEachItem" : "forEachIndex";
|
|
269
265
|
if (!hasOwnProperty(runtimeContext, property)) {
|
|
270
266
|
// eslint-disable-next-line no-console
|
|
271
|
-
console.error(
|
|
267
|
+
console.error(`Using \`${variableName}\` but no \`:forEach\` is found, check your expression: "${raw}"`);
|
|
272
268
|
} else {
|
|
273
269
|
globalVariables[variableName] = runtimeContext[property];
|
|
274
270
|
}
|
|
@@ -287,12 +283,12 @@ runtimeContext) {
|
|
|
287
283
|
break;
|
|
288
284
|
case "PARAMS":
|
|
289
285
|
if (query == null) {
|
|
290
|
-
throw new ReferenceError(
|
|
286
|
+
throw new ReferenceError(`PARAMS is not defined, in "${raw}"`);
|
|
291
287
|
}
|
|
292
288
|
globalVariables[variableName] = new URLSearchParams(query);
|
|
293
289
|
break;
|
|
294
290
|
case "PATH":
|
|
295
|
-
globalVariables[variableName] = getReadOnlyProxy((
|
|
291
|
+
globalVariables[variableName] = getReadOnlyProxy((match === null || match === void 0 ? void 0 : match.params) ?? {});
|
|
296
292
|
break;
|
|
297
293
|
case "PATH_NAME":
|
|
298
294
|
globalVariables[variableName] = location.pathname;
|
|
@@ -300,9 +296,9 @@ runtimeContext) {
|
|
|
300
296
|
case "PROCESSORS":
|
|
301
297
|
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
302
298
|
get(_target, key) {
|
|
303
|
-
|
|
299
|
+
const pkg = customProcessors.get(key);
|
|
304
300
|
if (!pkg) {
|
|
305
|
-
throw new Error(
|
|
301
|
+
throw new Error(`'PROCESSORS.${key}' is not registered! Have you installed the relevant brick package?`);
|
|
306
302
|
}
|
|
307
303
|
return getDynamicReadOnlyProxy({
|
|
308
304
|
get(_t, k) {
|
|
@@ -314,9 +310,9 @@ runtimeContext) {
|
|
|
314
310
|
});
|
|
315
311
|
},
|
|
316
312
|
ownKeys() {
|
|
317
|
-
|
|
318
|
-
for (
|
|
319
|
-
|
|
313
|
+
const keys = new Set();
|
|
314
|
+
for (const processor of usedProcessors) {
|
|
315
|
+
const namespace = processor.split(".")[0];
|
|
320
316
|
keys.add(namespace);
|
|
321
317
|
}
|
|
322
318
|
return Array.from(keys);
|
|
@@ -325,13 +321,13 @@ runtimeContext) {
|
|
|
325
321
|
break;
|
|
326
322
|
case "QUERY":
|
|
327
323
|
if (query == null) {
|
|
328
|
-
throw new ReferenceError(
|
|
324
|
+
throw new ReferenceError(`QUERY is not defined, in "${raw}"`);
|
|
329
325
|
}
|
|
330
326
|
globalVariables[variableName] = Object.fromEntries(Array.from(query.keys()).map(key => [key, query.get(key)]));
|
|
331
327
|
break;
|
|
332
328
|
case "QUERY_ARRAY":
|
|
333
329
|
if (query == null) {
|
|
334
|
-
throw new ReferenceError(
|
|
330
|
+
throw new ReferenceError(`QUERY_ARRAY is not defined, in "${raw}"`);
|
|
335
331
|
}
|
|
336
332
|
globalVariables[variableName] = Object.fromEntries(Array.from(query.keys()).map(key => [key, query.getAll(key)]));
|
|
337
333
|
// case "SEGUE":
|
|
@@ -343,7 +339,7 @@ runtimeContext) {
|
|
|
343
339
|
break;
|
|
344
340
|
// istanbul ignore next
|
|
345
341
|
case "TPL":
|
|
346
|
-
warnAboutStrictMode(strict, 'Using "TPL" in expression',
|
|
342
|
+
warnAboutStrictMode(strict, 'Using "TPL" in expression', `check your expression: "${raw}"`);
|
|
347
343
|
if (strict) {
|
|
348
344
|
break;
|
|
349
345
|
}
|
|
@@ -359,7 +355,7 @@ runtimeContext) {
|
|
|
359
355
|
});
|
|
360
356
|
break;
|
|
361
357
|
case "SYS":
|
|
362
|
-
globalVariables[variableName] = getReadOnlyProxy(sys
|
|
358
|
+
globalVariables[variableName] = getReadOnlyProxy(sys ?? {});
|
|
363
359
|
break;
|
|
364
360
|
case "__WIDGET_FN__":
|
|
365
361
|
globalVariables[variableName] = widgetFunctions;
|
|
@@ -378,10 +374,10 @@ runtimeContext) {
|
|
|
378
374
|
appendI18nNamespace: runtimeContext.appendI18nNamespace
|
|
379
375
|
}));
|
|
380
376
|
try {
|
|
381
|
-
|
|
377
|
+
const result = cook(precooked.expression, precooked.source, {
|
|
382
378
|
globalVariables: supply(precooked.attemptToVisitGlobals, globalVariables)
|
|
383
379
|
});
|
|
384
|
-
|
|
380
|
+
const detail = {
|
|
385
381
|
raw,
|
|
386
382
|
context: globalVariables,
|
|
387
383
|
result
|
|
@@ -389,9 +385,9 @@ runtimeContext) {
|
|
|
389
385
|
devtoolsHookEmit("evaluation", detail);
|
|
390
386
|
return result;
|
|
391
387
|
} catch (error) {
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
throw new
|
|
388
|
+
const message = `${error.message}, in "${raw}"`;
|
|
389
|
+
const errorConstructor = getCookErrorConstructor(error);
|
|
390
|
+
throw new errorConstructor(message);
|
|
395
391
|
}
|
|
396
392
|
}
|
|
397
393
|
};
|